diff --git a/Dockerfile b/Dockerfile index 3e8a33f3fb..9e6bdb4291 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM docker.io/ubuntu:22.04 +FROM docker.io/ubuntu:24.04 LABEL maintainer "DeftDawg " # Disable interactive package configuration diff --git a/README.md b/README.md index 4db8501db4..22f8d26f32 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ -

Orca Slicer

+

Orca Slicer

[![Build all](https://github.com/SoftFever/OrcaSlicer/actions/workflows/build_all.yml/badge.svg?branch=main)](https://github.com/SoftFever/OrcaSlicer/actions/workflows/build_all.yml)
Orca Slicer is an open source slicer for FDM printers. @@ -10,12 +10,16 @@ Join our Discord community here:

🚨🚨🚨Important Security Alert🚨🚨🚨

-Please be aware that "**orcaslicer.net**" or "**orcaslicer.info**" are NOT an official website for OrcaSlicer and may be potentially malicious. This site appears to use AI-generated content, lacking genuine context, and seems to exist solely to profit from advertisements. Worse, it may redirect download links to harmful sources. For your safety, avoid downloading OrcaSlicer from this site as the links may be compromised. +Please be aware that "**orcaslicer.net**", "**orcaslicer.co**" or "**orca-slicer.com**" are NOT an official website for OrcaSlicer and may be potentially malicious. These sites appear to use AI-generated content, lacking genuine context and seems to exist solely to profit from advertisements. Worse, it may redirect download links to harmful sources. For your safety, avoid downloading OrcaSlicer from this site as the links may be compromised. + +If you see the above sites in your searches, report them as spam or unsafe to the search engine. This small action will assist everyone. The only official platforms for OrcaSlicer are our GitHub project page and the official Discord channel . We deeply value our OrcaSlicer community and appreciate all the social groups that support us. However, it is crucial to address the risk posed by any group that falsely claims to be official or misleads its members. If you encounter such a group or are part of one, please assist by encouraging the group owner to add a clear disclaimer or by alerting its members. + + Thank you for your vigilance and support in keeping our community safe! # Main features @@ -129,7 +133,7 @@ resolution: 0.1 ``` # Supports -**Orca Slicer** is an open-source project, and I'm deeply grateful to all my sponsors and backers. +**Orca Slicer** is an open-source project and I'm deeply grateful to all my sponsors and backers. Their generous support enables me to purchase filaments and other essential 3D printing materials for the project. Thank you! :) diff --git a/cmake/modules/Findlibnoise.cmake b/cmake/modules/Findlibnoise.cmake new file mode 100644 index 0000000000..f40ce0fabd --- /dev/null +++ b/cmake/modules/Findlibnoise.cmake @@ -0,0 +1,15 @@ +find_path(LIBNOISE_INCLUDE_DIR libnoise/noise.h) +find_library(LIBNOISE_LIBRARY NAMES libnoise libnoise_static liblibnoise_static) +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(libnoise DEFAULT_MSG + LIBNOISE_LIBRARY + LIBNOISE_INCLUDE_DIR +) + +if(libnoise_FOUND) + add_library(noise::noise STATIC IMPORTED) + set_target_properties(noise::noise PROPERTIES + IMPORTED_LOCATION "${LIBNOISE_LIBRARY}" + INTERFACE_INCLUDE_DIRECTORIES "${LIBNOISE_INCLUDE_DIR}" + ) +endif() \ No newline at end of file diff --git a/deps/CMakeLists.txt b/deps/CMakeLists.txt index 88915369f7..77cae3382b 100644 --- a/deps/CMakeLists.txt +++ b/deps/CMakeLists.txt @@ -293,6 +293,7 @@ include(MPFR/MPFR.cmake) include(CGAL/CGAL.cmake) include(NLopt/NLopt.cmake) +include(libnoise/libnoise.cmake) # I *think* 1.1 is used for *just* md5 hashing? @@ -360,6 +361,7 @@ set(_dep_list ${PNG_PKG} ${ZLIB_PKG} ${EXPAT_PKG} + dep_libnoise ) if (MSVC) diff --git a/deps/libnoise/libnoise.cmake b/deps/libnoise/libnoise.cmake new file mode 100644 index 0000000000..0e19f26926 --- /dev/null +++ b/deps/libnoise/libnoise.cmake @@ -0,0 +1,4 @@ +orcaslicer_add_cmake_project(libnoise + URL https://github.com/SoftFever/Orca-deps-libnoise/archive/refs/tags/1.0.zip + URL_HASH SHA256=96ffd6cc47898dd8147aab53d7d1b1911b507d9dbaecd5613ca2649468afd8b6 +) \ No newline at end of file diff --git a/doc/Calibration.md b/doc/Calibration.md index ac1d6411a7..c072852bfc 100644 --- a/doc/Calibration.md +++ b/doc/Calibration.md @@ -35,7 +35,8 @@ Steps 5. Update the flow ratio in the filament settings using the following equation: `FlowRatio_old*(100 + modifier)/100`. If your previous flow ratio was `0.98` and you selected the block with a flow rate modifier of `+5`, the new value should be calculated as follows: `0.98x(100+5)/100 = 1.029`.** Remember** to save the filament profile. 6. Perform the `Pass 2` calibration. This process is similar to `Pass 1`, but a new project with ten blocks will be generated. The flow rate modifiers for this project will range from `-9 to 0`. -7. Repeat steps 4 and 5. In this case, if your previous flow ratio was 1.029 and you selected the block with a flow rate modifier of -6, the new value should be calculated as follows: `1.029x(100-6)/100 = 0.96726`. ** Remember ** to save the filament profile. +7. Repeat steps 4. and 5. In this case, if your previous flow ratio was 1.029 and you selected the block with a flow rate modifier of -6, the new value should be calculated as follows: `1.029x(100-6)/100 = 0.96726`. **Remember** to save the filament profile. + ![pass2](https://user-images.githubusercontent.com/103989404/210139072-f2fa91a6-4e3b-4d2a-81f2-c50155e1ff6d.jpg) ![-6](https://user-images.githubusercontent.com/103989404/210139131-ee224146-b242-4c1c-ac96-35ef0ca591f1.jpg) ![image](./images/flowcalibration_update_flowrate.jpg) diff --git a/doc/Home.md b/doc/Home.md index 998edbe409..0abdd8fc01 100644 --- a/doc/Home.md +++ b/doc/Home.md @@ -36,3 +36,4 @@ The guide below takes you through the key calibration tests in Orca - flow rate, - [How to build Orca Slicer](./How-to-build) - [Localization and translation guide](Localization_guide) - [Developer Reference](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/developer-reference/Home.md) +- [How to create profiles](./How-to-create-profiles) \ No newline at end of file diff --git a/doc/How-to-create-profiles.md b/doc/How-to-create-profiles.md new file mode 100644 index 0000000000..3161a71633 --- /dev/null +++ b/doc/How-to-create-profiles.md @@ -0,0 +1,180 @@ +# Guide: Develop Profiles for OrcaSlicer + +## Introduction +This guide will help you develop profiles for OrcaSlicer. + +## High-level Overview +OrcaSlicer uses JSON files to store profiles. There are four types of profiles: +1. Printer model (type `machine_model`). Example: `Orca 3D Fuse1.json` +2. Printer variant (type `machine`). Example: `Orca 3D Fuse1 0.2 nozzle.json` +3. Filament (type `filament`). Example: `Generic PLA @Orca 3D Fuse1@.json` +4. Process (type `process`). Example: `0.10mm Standard @Orca 3D Fuse1 0.2.json` + +Additionally, there is an overall meta file for each vendor (`Orca 3D.json`). + +For easier understanding, let's consider a scenario with a printer manufacturer called `Orca 3D`. The manufacturer offers one printer model called `Fuse 1`, which supports 0.2/0.4/0.6/0.8mm nozzles and common market filaments. + +In this case: +- Vendor profile: `Orca 3D` +- Printer profile: `Orca 3D Fuse1` +- Printer variant profile: `Orca 3D Fuse1 0.4 nozzle` +- Filament profile: `Generic PLA @Orca 3D Fuse1@` +- Process profile: `0.20mm Standard @Orca 3D Fuse1 0.4` + +The profile name should be same as the filename without the `.json` extension in principal. +Naming conventions: +1. Vendor profile: `vendor_name.json` +2. Printer profile: `vendor_name` + `printer_name` + `.json` +3. Printer variant profile: `vendor_name` + `printer_variant_name` + `.json` (where `printer_variant_name` typically includes `printer_name` + `nozzle_diameter`) +4. Filament profile: `filament_vendor_name` + `filament_name` + " @" + `vendor_name` + `printer_name`/`printer_variant_name` + `.json` +5. Process profile: `layer_height` + `preset_name` + " @" + `vendor_name` + `printer_name`/`printer_variant_name` + `.json` (`preset_name` typically includes "standard," "fine," "fast," "draft," etc.) + + +A typical file structure for a vendor: +``` +resources\profiles\ + - Orca 3D.json + - Orca 3D\ + - machine\ + - Orca 3D Fuse1.json + - Orca 3D Fuse1 0.2 nozzle.json + - Orca 3D Fuse1 0.4 nozzle.json + - process\ + - 0.10mm Standard @Orca 3D Fuse1 0.2.json + - 0.20mm Standard @Orca 3D Fuse1 0.4.json + - filament\ + - Generic PLA @Orca 3D Fuse1@.json +``` + + +**NOTE 1**: Use short vendor names in filenames to avoid excessive length. +**NOTE 2**: Filament profiles are **optional**. Create them only if the vendor has specifically tuned profiles for the given printer. See [Filament profiles](#filament-profiles) for details. + +## Filament Profiles +OrcaSlicer features a global filament library called `OrcaFilamentLibrary`, which is automatically available for all printers. It includes generic filaments like `Generic PLA @System` and `Generic ABS @System` etc. + +Printer vendors can override specific filaments in the global library for certain printer models by creating new filament profiles. + +Relationship diagram: +```mermaid +graph TD; + OrcaFilamentLibrary-->Orca_3D_filament; + OrcaFilamentLibrary-->Vendor_A_filament; + OrcaFilamentLibrary-->Vendor_B_filament; +``` + +**NOTE**: Create new filament profiles only if you have truly specifically tuned the filament for the given printer. Otherwise, use the global library. The global library has a better chance to receive optimizations and updates from OrcaSlicer contributors, which will benefit users of all printers. + +### Adding Filament Profiles to the Global Library +In this section, we will discuss how to add a new filament profile into the global library. +If you want to add a new generic profile into the global library, you need to create a new file in the `resources\profiles\OrcaFilamentLibrary\filament` folder. If a base type already exists in the global library, you can use this file as a base profile by inheriting it. +The following sample JSON file shows how to create a new generic filament profile `Generic PLA-GF @System` in the global library. + +1. The first step is to create a new file in the `resources\profiles\OrcaFilamentLibrary\filament` folder. The file name should be `Generic PLA-GF @System.json`. Please note that we leave the `compatible_printers` field empty so that it is available for all printers. + +```json +{ + "type": "filament", + "filament_id": "GFL99", + "setting_id": "GFSA05", + "name": "Generic PLA-GF @System", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_pla", + "filament_type": ["PLA-GF"], + "filament_flow_ratio": [ + "0.96" + ], + "compatible_printers": [] +} +``` + +2. Register the profile in `resources\profiles\OrcaFilamentLibrary.json`: + +```json +{ + "name": "OrcaFilamentLibrary", + "version": "02.02.00.04", + "force_update": "0", + "description": "Orca Filament Library", + "filament_list": [ + // ... + { + "name": "Generic PLA-GF @System", + "sub_path": "filament/Generic PLA-GF @System.json" + } + ] +} +``` + +3. The last step is to validate the newly added filament profiles. You can run OrcaSlicer to verify if the filament you just added is available and usable. You can also use the [Orca profile validator](https://github.com/SoftFever/Orca_tools/releases/tag/1) tool to help debug any errors. **NOTE**: You need to delete the `%appdata%/OrcaSlicer/system` folder to force OrcaSlicer to reload your lastest changes. + +The process is the same if you want to add a new brand filament profile into the global library. You need to create a new file in the `resources\profiles\OrcaFilamentLibrary\filament\brand_name` folder. The only difference is that you should put the file into the brand's own subfolder.`resources\profiles\OrcaFilamentLibrary\filament\brand_name`. + +### Adding Filament Profiles to Printer Vendor Library +In this section, we will discuss how to add a new filament profile for a certain vendor. +If you want to add a new filament profile, whether it's a brand new profile or a specialized version of a global filament profile for a given printer, you need to create a new file in the `resources\profiles\vendor_name\filament` folder. If a base type already exists in the global library, you can use this file as a base profile by inheriting it. +Below is a sample JSON file showing how to create a specialized `Generic ABS` filament profile for the ToolChanger printer. +Please note that here we must leave the compatible_printers field non-empty, unlike in the global library. + +```json +{ + "type": "filament", + "setting_id": "GFB99_MTC_0", + "name": "Generic ABS @MyToolChanger", + "from": "system", + "instantiation": "true", + "inherits": "Generic ABS @System", + "filament_cooling_final_speed": [ + "3.5" + ], + "filament_cooling_initial_speed": [ + "10" + ], + "filament_cooling_moves": [ + "2" + ], + "filament_load_time": [ + "10.5" + ], + "filament_loading_speed": [ + "10" + ], + "filament_loading_speed_start": [ + "50" + ], + "filament_multitool_ramming": [ + "1" + ], + "filament_multitool_ramming_flow": [ + "40" + ], + "filament_stamping_distance": [ + "45" + ], + "filament_stamping_loading_speed": [ + "29" + ], + "filament_unload_time": [ + "8.5" + ], + "filament_unloading_speed": [ + "100" + ], + "compatible_printers": [ + "MyToolChanger 0.4 nozzle", + "MyToolChanger 0.2 nozzle", + "MyToolChanger 0.6 nozzle", + "MyToolChanger 0.8 nozzle" + ] +} +``` + +## Process Profiles +WIP... + +## Printer Profiles +WIP... + +## Printer Variant Profiles +WIP... \ No newline at end of file diff --git a/localization/i18n/OrcaSlicer.pot b/localization/i18n/OrcaSlicer.pot index be45f8d755..360f88de53 100644 --- a/localization/i18n/OrcaSlicer.pot +++ b/localization/i18n/OrcaSlicer.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-01-04 17:35+0100\n" +"POT-Creation-Date: 2025-02-14 23:42+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -2714,9 +2714,6 @@ msgstr "" msgid "About %s" msgstr "" -msgid "Orca Slicer" -msgstr "" - msgid "OrcaSlicer is based on BambuStudio, PrusaSlicer, and SuperSlicer." msgstr "" @@ -2764,9 +2761,6 @@ msgstr "" msgid "SN" msgstr "" -msgid "Setting AMS slot information while printing is not supported" -msgstr "" - msgid "Factors of Flow Dynamics Calibration" msgstr "" @@ -2779,6 +2773,9 @@ msgstr "" msgid "Factor N" msgstr "" +msgid "Setting AMS slot information while printing is not supported" +msgstr "" + msgid "Setting Virtual slot information while printing is not supported" msgstr "" @@ -2892,7 +2889,7 @@ msgstr "" msgid "Print with the filament mounted on the back of chassis" msgstr "" -msgid "Current Cabin humidity" +msgid "Current AMS humidity" msgstr "" msgid "" @@ -4814,7 +4811,7 @@ msgstr "" msgid "The printer has been logged out and cannot connect." msgstr "" -msgid "Stopped." +msgid "Video Stopped." msgstr "" msgid "LAN Connection Failed (Failed to start liveview)" @@ -4901,10 +4898,6 @@ msgstr "" msgid "No printers." msgstr "" -#, possible-c-format, possible-boost-format -msgid "Connect failed [%d]!" -msgstr "" - msgid "Loading file list..." msgstr "" @@ -4914,15 +4907,14 @@ msgstr "" msgid "Load failed" msgstr "" -msgid "Initialize failed (Device connection not ready)!" -msgstr "" - msgid "" "Browsing file in SD card is not supported in current firmware. Please update " "the printer firmware." msgstr "" -msgid "Initialize failed (Storage unavailable, insert SD card.)!" +msgid "" +"Please check if the SD card is inserted into the printer.\n" +"If it still cannot be read, you can try formatting the SD card." msgstr "" msgid "LAN Connection Failed (Failed to view sdcard)" @@ -4931,10 +4923,6 @@ msgstr "" msgid "Browsing file in SD card is not supported in LAN Only Mode." msgstr "" -#, possible-c-format, possible-boost-format -msgid "Initialize failed (%s)!" -msgstr "" - #, possible-c-format, possible-boost-format msgid "You are going to delete %u file from printer. Are you sure to continue?" msgid_plural "" @@ -5342,6 +5330,25 @@ msgstr "" msgid "Not for now" msgstr "" +msgid "Server Exception" +msgstr "" + +msgid "" +"The server is unable to respond. Please click the link below to check the " +"server status." +msgstr "" + +msgid "" +"If the server is in a fault state, you can temporarily use offline printing " +"or local network printing." +msgstr "" + +msgid "How to use LAN only mode" +msgstr "" + +msgid "Don't show this dialog again" +msgstr "" + msgid "3D Mouse disconnected." msgstr "" @@ -6000,6 +6007,10 @@ msgstr "" msgid "Import geometry only" msgstr "" +msgid "" +"This option can be changed later in preferences, under 'Load Behaviour'." +msgstr "" + msgid "Only one G-code file can be opened at the same time." msgstr "" @@ -6397,6 +6408,24 @@ msgstr "" msgid "Associate URLs to OrcaSlicer" msgstr "" +msgid "Load All" +msgstr "" + +msgid "Ask When Relevant" +msgstr "" + +msgid "Always Ask" +msgstr "" + +msgid "Load Geometry Only" +msgstr "" + +msgid "Load Behaviour" +msgstr "" + +msgid "Should printer/filament/process settings be loaded when opening a .3mf?" +msgstr "" + msgid "Maximum recent projects" msgstr "" @@ -6924,6 +6953,9 @@ msgstr "" msgid "Bind with Pin Code" msgstr "" +msgid "Bind with Access Code" +msgstr "" + msgid "Send to Printer SD card" msgstr "" @@ -7167,6 +7199,75 @@ msgid "" "Primitive\"->\"Timelapse Wipe Tower\"." msgstr "" +msgid "" +"A copy of the current system preset will be created, which will be detached " +"from the system preset." +msgstr "" + +msgid "" +"The current custom preset will be detached from the parent system preset." +msgstr "" + +msgid "Modifications to the current profile will be saved." +msgstr "" + +msgid "" +"This action is not revertible.\n" +"Do you want to proceed?" +msgstr "" + +msgid "Detach preset" +msgstr "" + +msgid "This is a default preset." +msgstr "" + +msgid "This is a system preset." +msgstr "" + +msgid "Current preset is inherited from the default preset." +msgstr "" + +msgid "Current preset is inherited from" +msgstr "" + +msgid "It can't be deleted or modified." +msgstr "" + +msgid "" +"Any modifications should be saved as a new preset inherited from this one." +msgstr "" + +msgid "To do that please specify a new name for the preset." +msgstr "" + +msgid "Additional information:" +msgstr "" + +msgid "vendor" +msgstr "" + +msgid "printer model" +msgstr "" + +msgid "default print profile" +msgstr "" + +msgid "default filament profile" +msgstr "" + +msgid "default SLA material profile" +msgstr "" + +msgid "default SLA print profile" +msgstr "" + +msgid "full profile name" +msgstr "" + +msgid "symbolic profile name" +msgstr "" + msgid "Line width" msgstr "" @@ -7260,6 +7361,12 @@ msgstr "" msgid "Notes" msgstr "" +msgid "Dependencies" +msgstr "" + +msgid "Profile dependencies" +msgstr "" + msgid "Frequent" msgstr "" @@ -8278,34 +8385,60 @@ msgstr "" msgid "Confirm and Update Nozzle" msgstr "" -msgid "LAN Connection Failed (Sending print file)" +msgid "Connect the printer using IP and access code" msgstr "" msgid "" -"Step 1, please confirm Orca Slicer and your printer are in the same LAN." +"Step 1. Please confirm Orca Slicer and your printer are in the same LAN." msgstr "" msgid "" -"Step 2, if the IP and Access Code below are different from the actual values " +"Step 2. If the IP and Access Code below are different from the actual values " "on your printer, please correct them." msgstr "" +msgid "" +"Step 3. Please obtain the device SN from the printer side; it is usually " +"found in the device information on the printer screen." +msgstr "" + msgid "IP" msgstr "" msgid "Access Code" msgstr "" +msgid "Printer model" +msgstr "" + +msgid "Printer name" +msgstr "" + msgid "Where to find your printer's IP and Access Code?" msgstr "" -msgid "Step 3: Ping the IP address to check for packet loss and latency." +msgid "Connect" msgstr "" -msgid "Test" +msgid "Manual Setup" msgstr "" -msgid "IP and Access Code Verified! You may close the window" +msgid "connecting..." +msgstr "" + +msgid "Failed to connect to printer." +msgstr "" + +msgid "Failed to publish login request." +msgstr "" + +msgid "The printer has already been bound." +msgstr "" + +msgid "The printer mode is incorrect, please switch to LAN Only." +msgstr "" + +msgid "Connecting to printer... The dialog will close later" msgstr "" msgid "Connection failed, please double check IP and Access Code" @@ -9135,35 +9268,44 @@ msgstr "" msgid "Nowhere" msgstr "" -msgid "Force cooling for overhang and bridge" +msgid "Force cooling for overhangs and bridges" msgstr "" msgid "" -"Enable this option to optimize part cooling fan speed for overhang and " -"bridge to get better cooling" +"Enable this option to allow adjustment of the part cooling fan speed for " +"specifically for overhangs, internal and external bridges. Setting the fan " +"speed specifically for these features can improve overall print quality and " +"reduce warping." msgstr "" -msgid "Fan speed for overhang" +msgid "Overhangs and external bridges fan speed" msgstr "" msgid "" -"Force part cooling fan to be this speed when printing bridge or overhang " -"wall which has large overhang degree. Forcing cooling for overhang and " -"bridge can get better quality for these part" +"Use this part cooling fan speed when printing bridges or overhang walls with " +"an overhang threshold that exceeds the value set in the 'Overhangs cooling " +"threshold' parameter above. Increasing the cooling specifically for " +"overhangs and bridges can improve the overall print quality of these " +"features.\n" +"\n" +"Please note, this fan speed is clamped on the lower end by the minimum fan " +"speed threshold set above. It is also adjusted upwards up to the maximum fan " +"speed threshold when the minimum layer time threshold is not met." msgstr "" -msgid "Cooling overhang threshold" +msgid "Overhang cooling activation threshold" msgstr "" -#, possible-c-format +#, possible-c-format, possible-boost-format msgid "" -"Force cooling fan to be specific speed when overhang degree of printed part " -"exceeds this value. Expressed as percentage which indicates how much width " -"of the line without support from lower layer. 0% means forcing cooling for " -"all outer wall no matter how much overhang degree" +"When the overhang exceeds this specified threshold, force the cooling fan to " +"run at the 'Overhang Fan Speed' set below. This threshold is expressed as a " +"percentage, indicating the portion of each line's width that is unsupported " +"by the layer beneath it. Setting this value to 0% forces the cooling fan to " +"run for all outer walls, regardless of the overhang degree." msgstr "" -msgid "Bridge infill direction" +msgid "External bridge infill direction" msgstr "" msgid "" @@ -9172,10 +9314,44 @@ msgid "" "external bridges. Use 180°for zero angle." msgstr "" -msgid "Bridge density" +msgid "Internal bridge infill direction" msgstr "" -msgid "Density of external bridges. 100% means solid bridge. Default is 100%." +msgid "" +"Internal bridging angle override. If left to zero, the bridging angle will " +"be calculated automatically. Otherwise the provided angle will be used for " +"internal bridges. Use 180°for zero angle.\n" +"\n" +"It is recommended to leave it at 0 unless there is a specific model need not " +"to." +msgstr "" + +msgid "External bridge density" +msgstr "" + +msgid "" +"Controls the density (spacing) of external bridge lines. 100% means solid " +"bridge. Default is 100%.\n" +"\n" +"Lower density external bridges can help improve reliability as there is more " +"space for air to circulate around the extruded bridge, improving its cooling " +"speed." +msgstr "" + +msgid "Internal bridge density" +msgstr "" + +msgid "" +"Controls the density (spacing) of internal bridge lines. 100% means solid " +"bridge. Default is 100%.\n" +"\n" +" Lower density internal bridges can help reduce top surface pillowing and " +"improve internal bridge reliability as there is more space for air to " +"circulate around the extruded bridge, improving its cooling speed. \n" +"\n" +"This option works particularly well when combined with the second internal " +"bridge over infill option, further improving internal bridging structure " +"before solid infill is extruded." msgstr "" msgid "Bridge flow ratio" @@ -9228,9 +9404,7 @@ msgstr "" msgid "" "Improve shell precision by adjusting outer wall spacing. This also improves " -"layer consistency.\n" -"Note: This setting will only take effect if the wall sequence is configured " -"to Inner-Outer" +"layer consistency." msgstr "" msgid "Only one wall on top surfaces" @@ -9454,12 +9628,24 @@ msgstr "" msgid "Compatible machine condition" msgstr "" +msgid "" +"A boolean expression using the configuration values of an active printer " +"profile. If this expression evaluates to true, this profile is considered " +"compatible with the active printer profile." +msgstr "" + msgid "Compatible process profiles" msgstr "" msgid "Compatible process profiles condition" msgstr "" +msgid "" +"A boolean expression using the configuration values of an active print " +"profile. If this expression evaluates to true, this profile is considered " +"compatible with the active print profile." +msgstr "" + msgid "Print sequence, layer by layer or object by object" msgstr "" @@ -9544,7 +9730,7 @@ msgid "" "usually can be printing directly without support if not very long" msgstr "" -msgid "Thick bridges" +msgid "Thick external bridges" msgstr "" msgid "" @@ -9562,36 +9748,86 @@ msgid "" "using large nozzles." msgstr "" -msgid "Filter out small internal bridges (beta)" +msgid "Extra bridge layers (beta)" msgstr "" msgid "" -"This option can help reducing pillowing on top surfaces in heavily slanted " -"or curved models.\n" +"This option enables the generation of an extra bridge layer over internal " +"and/or external bridges.\n" +"\n" +"Extra bridge layers help improve bridge appearance and reliability, as the " +"solid infill is better supported. This is especially useful in fast " +"printers, where the bridge and solid infill speeds vary greatly. The extra " +"bridge layer results in reduced pillowing on top surfaces, as well as " +"reduced separation of the external bridge layer from its surrounding " +"perimeters.\n" +"\n" +"It is generally recommended to set this to at least 'External bridge only', " +"unless specific issues with the sliced model are found.\n" +"\n" +"Options:\n" +"1. Disabled - does not generate second bridge layers. This is the default " +"and is set for compatibility purposes.\n" +"2. External bridge only - generates second bridge layers for external-facing " +"bridges only. Please note that small bridges that are shorter or narrower " +"than the set number of perimeters will be skipped as they would not benefit " +"from a second bridge layer. If generated, the second bridge layer will be " +"extruded parallel to the first bridge layer to reinforce the bridge " +"strength.\n" +"3. Internal bridge only - generates second bridge layers for internal " +"bridges over sparse infill only. Please note that the internal bridges count " +"towards the top shell layer count of your model. The second internal bridge " +"layer will be extruded as close to perpendicular to the first as possible. " +"If multiple regions in the same island, with varying bridge angles are " +"present, the last region of that island will be selected as the angle " +"reference.\n" +"4. Apply to all - generates second bridge layers for both internal and " +"external-facing bridges\n" +msgstr "" + +msgid "Disabled" +msgstr "" + +msgid "External bridge only" +msgstr "" + +msgid "Internal bridge only" +msgstr "" + +msgid "Apply to all" +msgstr "" + +msgid "Filter out small internal bridges" +msgstr "" + +msgid "" +"This option can help reduce pillowing on top surfaces in heavily slanted or " +"curved models.\n" "\n" "By default, small internal bridges are filtered out and the internal solid " "infill is printed directly over the sparse infill. This works well in most " "cases, speeding up printing without too much compromise on top surface " "quality. \n" "\n" -"However, in heavily slanted or curved models especially where too low sparse " -"infill density is used, this may result in curling of the unsupported solid " -"infill, causing pillowing.\n" +"However, in heavily slanted or curved models, especially where too low a " +"sparse infill density is used, this may result in curling of the unsupported " +"solid infill, causing pillowing.\n" "\n" -"Disabling this option will print internal bridge layer over slightly " -"unsupported internal solid infill. The options below control the amount of " -"filtering, i.e. the amount of internal bridges created.\n" +"Enabling limited filtering or no filtering will print internal bridge layer " +"over slightly unsupported internal solid infill. The options below control " +"the sensitivity of the filtering, i.e. they control where internal bridges " +"are created.\n" "\n" -"Filter - enable this option. This is the default behavior and works well in " -"most cases.\n" +"1. Filter - enables this option. This is the default behavior and works well " +"in most cases.\n" "\n" -"Limited filtering - creates internal bridges on heavily slanted surfaces, " -"while avoiding creating unnecessary internal bridges. This works well for " -"most difficult models.\n" +"2. Limited filtering - creates internal bridges on heavily slanted surfaces " +"while avoiding unnecessary bridges. This works well for most difficult " +"models.\n" "\n" -"No filtering - creates internal bridges on every potential internal " -"overhang. This option is useful for heavily slanted top surface models. " -"However, in most cases it creates too many unnecessary bridges." +"3. No filtering - creates internal bridges on every potential internal " +"overhang. This option is useful for heavily slanted top surface models; " +"however, in most cases, it creates too many unnecessary bridges." msgstr "" msgid "Filter" @@ -10324,6 +10560,9 @@ msgstr "" msgid "Grid" msgstr "" +msgid "2D Lattice" +msgstr "" + msgid "Line" msgstr "" @@ -10354,6 +10593,25 @@ msgstr "" msgid "Cross Hatch" msgstr "" +msgid "Quarter Cubic" +msgstr "" + +msgid "Lattice angle 1" +msgstr "" + +msgid "" +"The angle of the first set of 2D lattice elements in the Z direction. Zero " +"is vertical." +msgstr "" + +msgid "Lattice angle 2" +msgstr "" + +msgid "" +"The angle of the second set of 2D lattice elements in the Z direction. Zero " +"is vertical." +msgstr "" + msgid "Sparse infill anchor length" msgstr "" @@ -10528,10 +10786,24 @@ msgid "Support interface fan speed" msgstr "" msgid "" -"This fan speed is enforced during all support interfaces, to be able to " -"weaken their bonding with a high fan speed.\n" -"Set to -1 to disable this override.\n" -"Can only be overridden by disable_fan_first_layers." +"This part cooling fan speed is applied when printing support interfaces. " +"Setting this parameter to a higher than regular speed reduces the layer " +"binding strength between supports and the supported part, making them easier " +"to separate.\n" +"Set to -1 to disable it.\n" +"This setting is overridden by disable_fan_first_layers." +msgstr "" + +msgid "Internal bridges fan speed" +msgstr "" + +msgid "" +"The part cooling fan speed used for all internal bridges. Set to -1 to use " +"the overhang fan speed settings instead.\n" +"\n" +"Reducing the internal bridges fan speed, compared to your regular fan speed, " +"can help reduce part warping due to excessive cooling applied over a large " +"surface for a prolonged period of time." msgstr "" msgid "" @@ -10570,6 +10842,59 @@ msgstr "" msgid "Whether to apply fuzzy skin on the first layer" msgstr "" +msgid "Fuzzy skin noise type" +msgstr "" + +msgid "" +"Noise type to use for fuzzy skin generation.\n" +"Classic: Classic uniform random noise.\n" +"Perlin: Perlin noise, which gives a more consistent texture.\n" +"Billow: Similar to perlin noise, but clumpier.\n" +"Ridged Multifractal: Ridged noise with sharp, jagged features. Creates " +"marble-like textures.\n" +"Voronoi: Divides the surface into voronoi cells, and displaces each one by a " +"random amount. Creates a patchwork texture." +msgstr "" + +msgid "Classic" +msgstr "" + +msgid "Perlin" +msgstr "" + +msgid "Billow" +msgstr "" + +msgid "Ridged Multifractal" +msgstr "" + +msgid "Voronoi" +msgstr "" + +msgid "Fuzzy skin feature size" +msgstr "" + +msgid "" +"The base size of the coherent noise features, in mm. Higher values will " +"result in larger features." +msgstr "" + +msgid "Fuzzy Skin Noise Octaves" +msgstr "" + +msgid "" +"The number of octaves of coherent noise to use. Higher values increase the " +"detail of the noise, but also increase computation time." +msgstr "" + +msgid "Fuzzy skin noise persistence" +msgstr "" + +msgid "" +"The decay rate for higher octaves of the coherent noise. Lower values will " +"result in smoother noise." +msgstr "" + msgid "Filter out tiny gaps" msgstr "" @@ -10952,6 +11277,14 @@ msgstr "" msgid "The distance between the lines of ironing" msgstr "" +msgid "Ironing inset" +msgstr "" + +msgid "" +"The distance to keep from the edges. A value of 0 sets this to half of the " +"nozzle diameter" +msgstr "" + msgid "Ironing speed" msgstr "" @@ -11173,7 +11506,17 @@ msgid "" "Default value of 3 works well for most cases. If your printer is stuttering, " "increase this value to reduce the number of adjustments made\n" "\n" -"Allowed values: 1-5" +"Allowed values: 0.5-5" +msgstr "" + +msgid "Apply only on external features" +msgstr "" + +msgid "" +"Applies extrusion rate smoothing only on external perimeters and overhangs. " +"This can help reduce artefacts due to sharp speed transitions on externally " +"visible overhangs without impacting the print speed of features that will " +"not be visible to the user." msgstr "" msgid "Minimum speed for part cooling fan" @@ -11199,9 +11542,9 @@ msgid "Min print speed" msgstr "" msgid "" -"The minimum print speed to which the printer slows down " -"to maintain the minimum layer time defined above " -"when the slowdown for better layer cooling is enabled." +"The minimum print speed to which the printer slows down to maintain the " +"minimum layer time defined above when the slowdown for better layer cooling " +"is enabled." msgstr "" msgid "Diameter of nozzle" @@ -11804,9 +12147,6 @@ msgid "" "with them. To avoid this, increase the skirt distance value.\n" msgstr "" -msgid "Disabled" -msgstr "" - msgid "Enabled" msgstr "" @@ -12036,21 +12376,21 @@ msgid "Enable support generation." msgstr "" msgid "" -"normal(auto) and tree(auto) is used to generate support automatically. If " -"normal(manual) or tree(manual) is selected, only support enforcers are " +"Normal (auto) and Tree (auto) is used to generate support automatically. If " +"Normal (manual) or Tree (manual) is selected, only support enforcers are " "generated" msgstr "" -msgid "normal(auto)" +msgid "Normal (auto)" msgstr "" -msgid "tree(auto)" +msgid "Tree (auto)" msgstr "" -msgid "normal(manual)" +msgid "Normal (manual)" msgstr "" -msgid "tree(manual)" +msgid "Tree (manual)" msgstr "" msgid "Support/object xy distance" @@ -12246,6 +12586,15 @@ msgid "" "threshold." msgstr "" +msgid "Threshold overlap" +msgstr "" + +msgid "" +"If threshold angle is zero, support will be generated for overhangs whose " +"overlap is below the threshold. The smaller this value is, the steeper the " +"overhang that can be printed without support." +msgstr "" + msgid "Tree support branch angle" msgstr "" @@ -12677,9 +13026,6 @@ msgid "" "variable extrusion width" msgstr "" -msgid "Classic" -msgstr "" - msgid "Arachne" msgstr "" @@ -14415,6 +14761,9 @@ msgstr "" msgid "Print Host upload" msgstr "" +msgid "Test" +msgstr "" + msgid "Could not get a valid Printer Host reference" msgstr "" diff --git a/localization/i18n/ca/OrcaSlicer_ca.po b/localization/i18n/ca/OrcaSlicer_ca.po index 7be3f31cc7..00863f88cf 100644 --- a/localization/i18n/ca/OrcaSlicer_ca.po +++ b/localization/i18n/ca/OrcaSlicer_ca.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-01-04 17:35+0100\n" +"POT-Creation-Date: 2025-02-14 23:42+0800\n" "PO-Revision-Date: 2024-07-07 18:43+0200\n" "Last-Translator: \n" "Language-Team: \n" @@ -2851,9 +2851,6 @@ msgstr "" msgid "About %s" msgstr "Sobre %s" -msgid "Orca Slicer" -msgstr "" - msgid "OrcaSlicer is based on BambuStudio, PrusaSlicer, and SuperSlicer." msgstr "OrcaSlicer es basa en BambuStudio, PrusaSlicer i SuperSlicer." @@ -2903,11 +2900,6 @@ msgstr "El valor d'entrada ha de ser superior a %1% i inferior a %2%" msgid "SN" msgstr "SN" -msgid "Setting AMS slot information while printing is not supported" -msgstr "" -"No es permet la configuració de la informació de les ranures AMS mentre " -"s'imprimeix" - msgid "Factors of Flow Dynamics Calibration" msgstr "Factors de Calibratge de les Dinàmiques de Flux" @@ -2920,6 +2912,11 @@ msgstr "Factor K" msgid "Factor N" msgstr "Factor N" +msgid "Setting AMS slot information while printing is not supported" +msgstr "" +"No es permet la configuració de la informació de les ranures AMS mentre " +"s'imprimeix" + msgid "Setting Virtual slot information while printing is not supported" msgstr "" "No es permet la configuració de la informació de les ranures virtuals mentre " @@ -3044,8 +3041,8 @@ msgstr "Desactiva AMS" msgid "Print with the filament mounted on the back of chassis" msgstr "Imprimeix amb el filament muntat a la part posterior del xassís" -msgid "Current Cabin humidity" -msgstr "Humitat de la cabina" +msgid "Current AMS humidity" +msgstr "" msgid "" "Please change the desiccant when it is too wet. The indicator may not " @@ -5164,8 +5161,8 @@ msgstr "" msgid "The printer has been logged out and cannot connect." msgstr "La impressora ha tancat la sessió i no es pot connectar." -msgid "Stopped." -msgstr "Aturat." +msgid "Video Stopped." +msgstr "" msgid "LAN Connection Failed (Failed to start liveview)" msgstr "" @@ -5258,10 +5255,6 @@ msgstr "Tornar a carregar la llista de fitxers des de la impressora." msgid "No printers." msgstr "No hi ha cap Impressora." -#, c-format, boost-format -msgid "Connect failed [%d]!" -msgstr "Connexió fallida [%d]!" - msgid "Loading file list..." msgstr "Carregant llista de fitxers..." @@ -5271,10 +5264,6 @@ msgstr "No hi ha fitxers" msgid "Load failed" msgstr "Càrrega fallida" -msgid "Initialize failed (Device connection not ready)!" -msgstr "" -"Inicialització fallida ( la connexió del Dispositiu no està preparada )!" - msgid "" "Browsing file in SD card is not supported in current firmware. Please update " "the printer firmware." @@ -5282,10 +5271,10 @@ msgstr "" "L'exploració de fitxers a la targeta SD no és compatible amb el firmware " "actual. Actualitzeu el firmware de la impressora." -msgid "Initialize failed (Storage unavailable, insert SD card.)!" +msgid "" +"Please check if the SD card is inserted into the printer.\n" +"If it still cannot be read, you can try formatting the SD card." msgstr "" -"Inicialització fallida (emmagatzematge no disponible, inseriu la targeta " -"SD.)!" msgid "LAN Connection Failed (Failed to view sdcard)" msgstr "Ha fallat la connexió LAN (no s'ha pogut visualitzar sdcard)" @@ -5295,10 +5284,6 @@ msgstr "" "L'exploració de fitxers a la targeta SD no és compatible amb el mode només " "LAN." -#, c-format, boost-format -msgid "Initialize failed (%s)!" -msgstr "Inicialització fallida ( %s )!" - #, c-format, boost-format msgid "You are going to delete %u file from printer. Are you sure to continue?" msgid_plural "" @@ -5744,6 +5729,25 @@ msgstr "Última Versió: " msgid "Not for now" msgstr "No per ara" +msgid "Server Exception" +msgstr "" + +msgid "" +"The server is unable to respond. Please click the link below to check the " +"server status." +msgstr "" + +msgid "" +"If the server is in a fault state, you can temporarily use offline printing " +"or local network printing." +msgstr "" + +msgid "How to use LAN only mode" +msgstr "" + +msgid "Don't show this dialog again" +msgstr "" + msgid "3D Mouse disconnected." msgstr "S'ha desconnectat el ratolí 3D." @@ -6468,6 +6472,10 @@ msgstr "Obre com a projecte" msgid "Import geometry only" msgstr "Importar només la geometria" +msgid "" +"This option can be changed later in preferences, under 'Load Behaviour'." +msgstr "" + msgid "Only one G-code file can be opened at the same time." msgstr "Només es pot obrir un fitxer de Codi-G al mateix temps." @@ -6922,6 +6930,24 @@ msgstr "Associar enllaços web a OrcaSlicer" msgid "Associate URLs to OrcaSlicer" msgstr "Associeu URLs a OrcaSlicer" +msgid "Load All" +msgstr "" + +msgid "Ask When Relevant" +msgstr "" + +msgid "Always Ask" +msgstr "" + +msgid "Load Geometry Only" +msgstr "" + +msgid "Load Behaviour" +msgstr "" + +msgid "Should printer/filament/process settings be loaded when opening a .3mf?" +msgstr "" + msgid "Maximum recent projects" msgstr "Màxim projectes recents" @@ -7499,6 +7525,9 @@ msgstr "Modificant el nom del dispositiu" msgid "Bind with Pin Code" msgstr "Enllaçar amb codi PIN" +msgid "Bind with Access Code" +msgstr "" + msgid "Send to Printer SD card" msgstr "Enviar a la targeta SD de la impressora" @@ -7809,6 +7838,75 @@ msgstr "" "fent clic amb el botó dret a una posició buida de la placa i triant \"Afegir " "primitiva\"->\"Torre de Purga Timelapse\"." +msgid "" +"A copy of the current system preset will be created, which will be detached " +"from the system preset." +msgstr "" + +msgid "" +"The current custom preset will be detached from the parent system preset." +msgstr "" + +msgid "Modifications to the current profile will be saved." +msgstr "" + +msgid "" +"This action is not revertible.\n" +"Do you want to proceed?" +msgstr "" + +msgid "Detach preset" +msgstr "" + +msgid "This is a default preset." +msgstr "" + +msgid "This is a system preset." +msgstr "" + +msgid "Current preset is inherited from the default preset." +msgstr "" + +msgid "Current preset is inherited from" +msgstr "" + +msgid "It can't be deleted or modified." +msgstr "" + +msgid "" +"Any modifications should be saved as a new preset inherited from this one." +msgstr "" + +msgid "To do that please specify a new name for the preset." +msgstr "" + +msgid "Additional information:" +msgstr "" + +msgid "vendor" +msgstr "" + +msgid "printer model" +msgstr "" + +msgid "default print profile" +msgstr "" + +msgid "default filament profile" +msgstr "" + +msgid "default SLA material profile" +msgstr "" + +msgid "default SLA print profile" +msgstr "" + +msgid "full profile name" +msgstr "" + +msgid "symbolic profile name" +msgstr "" + msgid "Line width" msgstr "Amplada de línia" @@ -7906,6 +8004,12 @@ msgstr "Scripts de postprocessament" msgid "Notes" msgstr "Notes" +msgid "Dependencies" +msgstr "" + +msgid "Profile dependencies" +msgstr "" + msgid "Frequent" msgstr "Freqüent" @@ -9025,22 +9129,22 @@ msgstr "Veure Liveview" msgid "Confirm and Update Nozzle" msgstr "Confirmar i Actualitzar el broquet" -msgid "LAN Connection Failed (Sending print file)" +msgid "Connect the printer using IP and access code" msgstr "" -"S'ha produït un error en la Connexió de Xarxa LAN ( Enviant un fitxer " -"d'impressió )" msgid "" -"Step 1, please confirm Orca Slicer and your printer are in the same LAN." +"Step 1. Please confirm Orca Slicer and your printer are in the same LAN." msgstr "" -"Pas 1: Confirmeu que Orca Slicer i la impressora es troben a la mateixa LAN." msgid "" -"Step 2, if the IP and Access Code below are different from the actual values " +"Step 2. If the IP and Access Code below are different from the actual values " "on your printer, please correct them." msgstr "" -"Pas 2: Si la IP i el Codi d'Accés següent són diferents dels valors reals de " -"la impressora, corregiu-los." + +msgid "" +"Step 3. Please obtain the device SN from the printer side; it is usually " +"found in the device information on the printer screen." +msgstr "" msgid "IP" msgstr "IP" @@ -9048,19 +9152,38 @@ msgstr "IP" msgid "Access Code" msgstr "Clau d'Accés" +msgid "Printer model" +msgstr "" + +msgid "Printer name" +msgstr "" + msgid "Where to find your printer's IP and Access Code?" msgstr "On podeu trobar la IP i el Codi d'Accés de la impressora?" -msgid "Step 3: Ping the IP address to check for packet loss and latency." +msgid "Connect" msgstr "" -"Pas 3: Feu ping a l'adreça IP per comprovar si hi ha pèrdua de paquets i " -"latència." -msgid "Test" -msgstr "Test" +msgid "Manual Setup" +msgstr "" -msgid "IP and Access Code Verified! You may close the window" -msgstr "IP i Codi d'Accés verificats! Podeu tancar la finestra" +msgid "connecting..." +msgstr "" + +msgid "Failed to connect to printer." +msgstr "" + +msgid "Failed to publish login request." +msgstr "" + +msgid "The printer has already been bound." +msgstr "" + +msgid "The printer mode is incorrect, please switch to LAN Only." +msgstr "" + +msgid "Connecting to printer... The dialog will close later" +msgstr "" msgid "Connection failed, please double check IP and Access Code" msgstr "S'ha produït un error de Connexió, comproveu la IP i el Codi d'Accés" @@ -10048,47 +10171,45 @@ msgstr "Superfícies superior i inferior" msgid "Nowhere" msgstr "Enlloc" -msgid "Force cooling for overhang and bridge" -msgstr "Força la refrigeració per voladís i pont" +msgid "Force cooling for overhangs and bridges" +msgstr "" msgid "" -"Enable this option to optimize part cooling fan speed for overhang and " -"bridge to get better cooling" +"Enable this option to allow adjustment of the part cooling fan speed for " +"specifically for overhangs, internal and external bridges. Setting the fan " +"speed specifically for these features can improve overall print quality and " +"reduce warping." msgstr "" -"Activeu aquesta opció per optimitzar la velocitat del ventilador de " -"refrigeració de peces per a Voladís i Pont i obtenir una millor refrigeració" -msgid "Fan speed for overhang" -msgstr "Velocitat del ventilador per voladís" +msgid "Overhangs and external bridges fan speed" +msgstr "" msgid "" -"Force part cooling fan to be this speed when printing bridge or overhang " -"wall which has large overhang degree. Forcing cooling for overhang and " -"bridge can get better quality for these part" +"Use this part cooling fan speed when printing bridges or overhang walls with " +"an overhang threshold that exceeds the value set in the 'Overhangs cooling " +"threshold' parameter above. Increasing the cooling specifically for " +"overhangs and bridges can improve the overall print quality of these " +"features.\n" +"\n" +"Please note, this fan speed is clamped on the lower end by the minimum fan " +"speed threshold set above. It is also adjusted upwards up to the maximum fan " +"speed threshold when the minimum layer time threshold is not met." msgstr "" -"Forçar el ventilador de refrigeració de la peça a tenir aquesta velocitat " -"quan imprimeix un pont o un perímetre voladís que tingui un gran grau de " -"voladís. Forçar la refrigeració per voladís i pont pot millorar la qualitat " -"de les peces" -msgid "Cooling overhang threshold" -msgstr "Llindar de voladís de refrigeració" +msgid "Overhang cooling activation threshold" +msgstr "" -#, c-format +#, c-format, boost-format msgid "" -"Force cooling fan to be specific speed when overhang degree of printed part " -"exceeds this value. Expressed as percentage which indicates how much width " -"of the line without support from lower layer. 0% means forcing cooling for " -"all outer wall no matter how much overhang degree" +"When the overhang exceeds this specified threshold, force the cooling fan to " +"run at the 'Overhang Fan Speed' set below. This threshold is expressed as a " +"percentage, indicating the portion of each line's width that is unsupported " +"by the layer beneath it. Setting this value to 0% forces the cooling fan to " +"run for all outer walls, regardless of the overhang degree." msgstr "" -"Força el ventilador de refrigeració a una velocitat específica quan el grau " -"de voladís de la peça impresa excedeix aquest valor. Expressat com a " -"percentatge, indica l'amplada de la línia sense suport de la capa inferior. " -"0%% significa forçar la refrigeració de tot el perímetre exterior sense " -"importar el grau de voladís" -msgid "Bridge infill direction" -msgstr "Angle del farciment del pont" +msgid "External bridge infill direction" +msgstr "" msgid "" "Bridging angle override. If left to zero, the bridging angle will be " @@ -10099,13 +10220,45 @@ msgstr "" "calcularà automàticament. En cas contrari, l'angle proporcionat s'utilitzarà " "per als ponts externs. Utilitzeu 180° per a l'angle zero." -msgid "Bridge density" -msgstr "Densitat del pont" - -msgid "Density of external bridges. 100% means solid bridge. Default is 100%." +msgid "Internal bridge infill direction" +msgstr "" + +msgid "" +"Internal bridging angle override. If left to zero, the bridging angle will " +"be calculated automatically. Otherwise the provided angle will be used for " +"internal bridges. Use 180°for zero angle.\n" +"\n" +"It is recommended to leave it at 0 unless there is a specific model need not " +"to." +msgstr "" + +msgid "External bridge density" +msgstr "" + +msgid "" +"Controls the density (spacing) of external bridge lines. 100% means solid " +"bridge. Default is 100%.\n" +"\n" +"Lower density external bridges can help improve reliability as there is more " +"space for air to circulate around the extruded bridge, improving its cooling " +"speed." +msgstr "" + +msgid "Internal bridge density" +msgstr "" + +msgid "" +"Controls the density (spacing) of internal bridge lines. 100% means solid " +"bridge. Default is 100%.\n" +"\n" +" Lower density internal bridges can help reduce top surface pillowing and " +"improve internal bridge reliability as there is more space for air to " +"circulate around the extruded bridge, improving its cooling speed. \n" +"\n" +"This option works particularly well when combined with the second internal " +"bridge over infill option, further improving internal bridging structure " +"before solid infill is extruded." msgstr "" -"Densitat dels ponts exteriors. 100% significa pont sòlid. Per defecte és del " -"100%." msgid "Bridge flow ratio" msgstr "Ratio de flux del pont" @@ -10157,14 +10310,8 @@ msgstr "Perímetre precís" msgid "" "Improve shell precision by adjusting outer wall spacing. This also improves " -"layer consistency.\n" -"Note: This setting will only take effect if the wall sequence is configured " -"to Inner-Outer" +"layer consistency." msgstr "" -"Millora la precisió de la carcassa ajustant l'espaiat del perímetre més " -"exterior. Això també millora la consistència de la capa.\n" -"Nota: Aquest paràmetre només tindrà efecte si la seqüència de paret està " -"configurada a Interior-Exterior" msgid "Only one wall on top surfaces" msgstr "Només un perímetre a les superfícies superiors" @@ -10422,12 +10569,24 @@ msgstr "màquina compatible ascendent" msgid "Compatible machine condition" msgstr "Condició de màquina compatible" +msgid "" +"A boolean expression using the configuration values of an active printer " +"profile. If this expression evaluates to true, this profile is considered " +"compatible with the active printer profile." +msgstr "" + msgid "Compatible process profiles" msgstr "Perfils de processos compatibles" msgid "Compatible process profiles condition" msgstr "Condició de perfils de procés compatibles" +msgid "" +"A boolean expression using the configuration values of an active print " +"profile. If this expression evaluates to true, this profile is considered " +"compatible with the active print profile." +msgstr "" + msgid "Print sequence, layer by layer or object by object" msgstr "Seqüència d'impressió, capa per capa o objecte per objecte" @@ -10531,8 +10690,8 @@ msgstr "" "Els ponts normalment es poden imprimir directament sense suports si no són " "molt llargs" -msgid "Thick bridges" -msgstr "Ponts gruixuts" +msgid "Thick external bridges" +msgstr "" msgid "" "If enabled, bridges are more reliable, can bridge longer distances, but may " @@ -10555,36 +10714,86 @@ msgstr "" "recomana tenir activada aquesta funció. Tanmateix, penseu a desactivar-lo si " "utilitzeu broquets grans." -msgid "Filter out small internal bridges (beta)" +msgid "Extra bridge layers (beta)" msgstr "" msgid "" -"This option can help reducing pillowing on top surfaces in heavily slanted " -"or curved models.\n" +"This option enables the generation of an extra bridge layer over internal " +"and/or external bridges.\n" +"\n" +"Extra bridge layers help improve bridge appearance and reliability, as the " +"solid infill is better supported. This is especially useful in fast " +"printers, where the bridge and solid infill speeds vary greatly. The extra " +"bridge layer results in reduced pillowing on top surfaces, as well as " +"reduced separation of the external bridge layer from its surrounding " +"perimeters.\n" +"\n" +"It is generally recommended to set this to at least 'External bridge only', " +"unless specific issues with the sliced model are found.\n" +"\n" +"Options:\n" +"1. Disabled - does not generate second bridge layers. This is the default " +"and is set for compatibility purposes.\n" +"2. External bridge only - generates second bridge layers for external-facing " +"bridges only. Please note that small bridges that are shorter or narrower " +"than the set number of perimeters will be skipped as they would not benefit " +"from a second bridge layer. If generated, the second bridge layer will be " +"extruded parallel to the first bridge layer to reinforce the bridge " +"strength.\n" +"3. Internal bridge only - generates second bridge layers for internal " +"bridges over sparse infill only. Please note that the internal bridges count " +"towards the top shell layer count of your model. The second internal bridge " +"layer will be extruded as close to perpendicular to the first as possible. " +"If multiple regions in the same island, with varying bridge angles are " +"present, the last region of that island will be selected as the angle " +"reference.\n" +"4. Apply to all - generates second bridge layers for both internal and " +"external-facing bridges\n" +msgstr "" + +msgid "Disabled" +msgstr "Deshabilitat" + +msgid "External bridge only" +msgstr "" + +msgid "Internal bridge only" +msgstr "" + +msgid "Apply to all" +msgstr "" + +msgid "Filter out small internal bridges" +msgstr "" + +msgid "" +"This option can help reduce pillowing on top surfaces in heavily slanted or " +"curved models.\n" "\n" "By default, small internal bridges are filtered out and the internal solid " "infill is printed directly over the sparse infill. This works well in most " "cases, speeding up printing without too much compromise on top surface " "quality. \n" "\n" -"However, in heavily slanted or curved models especially where too low sparse " -"infill density is used, this may result in curling of the unsupported solid " -"infill, causing pillowing.\n" +"However, in heavily slanted or curved models, especially where too low a " +"sparse infill density is used, this may result in curling of the unsupported " +"solid infill, causing pillowing.\n" "\n" -"Disabling this option will print internal bridge layer over slightly " -"unsupported internal solid infill. The options below control the amount of " -"filtering, i.e. the amount of internal bridges created.\n" +"Enabling limited filtering or no filtering will print internal bridge layer " +"over slightly unsupported internal solid infill. The options below control " +"the sensitivity of the filtering, i.e. they control where internal bridges " +"are created.\n" "\n" -"Filter - enable this option. This is the default behavior and works well in " -"most cases.\n" +"1. Filter - enables this option. This is the default behavior and works well " +"in most cases.\n" "\n" -"Limited filtering - creates internal bridges on heavily slanted surfaces, " -"while avoiding creating unnecessary internal bridges. This works well for " -"most difficult models.\n" +"2. Limited filtering - creates internal bridges on heavily slanted surfaces " +"while avoiding unnecessary bridges. This works well for most difficult " +"models.\n" "\n" -"No filtering - creates internal bridges on every potential internal " -"overhang. This option is useful for heavily slanted top surface models. " -"However, in most cases it creates too many unnecessary bridges." +"3. No filtering - creates internal bridges on every potential internal " +"overhang. This option is useful for heavily slanted top surface models; " +"however, in most cases, it creates too many unnecessary bridges." msgstr "" msgid "Filter" @@ -11500,6 +11709,9 @@ msgstr "Patró de línia per al farciment poc dens" msgid "Grid" msgstr "Graella" +msgid "2D Lattice" +msgstr "" + msgid "Line" msgstr "Lineal" @@ -11530,6 +11742,25 @@ msgstr "Llampec" msgid "Cross Hatch" msgstr "Quadrícula" +msgid "Quarter Cubic" +msgstr "" + +msgid "Lattice angle 1" +msgstr "" + +msgid "" +"The angle of the first set of 2D lattice elements in the Z direction. Zero " +"is vertical." +msgstr "" + +msgid "Lattice angle 2" +msgstr "" + +msgid "" +"The angle of the second set of 2D lattice elements in the Z direction. Zero " +"is vertical." +msgstr "" + msgid "Sparse infill anchor length" msgstr "Longitud d'ancoratge de farciment poc dens" @@ -11750,16 +11981,25 @@ msgid "Support interface fan speed" msgstr "Velocitat del ventilador a la interfície de suport" msgid "" -"This fan speed is enforced during all support interfaces, to be able to " -"weaken their bonding with a high fan speed.\n" -"Set to -1 to disable this override.\n" -"Can only be overridden by disable_fan_first_layers." +"This part cooling fan speed is applied when printing support interfaces. " +"Setting this parameter to a higher than regular speed reduces the layer " +"binding strength between supports and the supported part, making them easier " +"to separate.\n" +"Set to -1 to disable it.\n" +"This setting is overridden by disable_fan_first_layers." +msgstr "" + +msgid "Internal bridges fan speed" +msgstr "" + +msgid "" +"The part cooling fan speed used for all internal bridges. Set to -1 to use " +"the overhang fan speed settings instead.\n" +"\n" +"Reducing the internal bridges fan speed, compared to your regular fan speed, " +"can help reduce part warping due to excessive cooling applied over a large " +"surface for a prolonged period of time." msgstr "" -"Aquesta velocitat del ventilador s'aplica durant totes les interfícies de " -"suport, per poder debilitar la seva unió amb una alta velocitat del " -"ventilador.\n" -"Definiu en -1 per desactivar aquesta sobreescriptura.\n" -"Només es pot anul·lar per disable_fan_first_layers." msgid "" "Randomly jitter while printing the wall, so that the surface has a rough " @@ -11804,6 +12044,59 @@ msgstr "Aplicar Pell Difusa a la primera capa" msgid "Whether to apply fuzzy skin on the first layer" msgstr "Si s'ha d'aplicar Pell Difusa a la primera capa" +msgid "Fuzzy skin noise type" +msgstr "" + +msgid "" +"Noise type to use for fuzzy skin generation.\n" +"Classic: Classic uniform random noise.\n" +"Perlin: Perlin noise, which gives a more consistent texture.\n" +"Billow: Similar to perlin noise, but clumpier.\n" +"Ridged Multifractal: Ridged noise with sharp, jagged features. Creates " +"marble-like textures.\n" +"Voronoi: Divides the surface into voronoi cells, and displaces each one by a " +"random amount. Creates a patchwork texture." +msgstr "" + +msgid "Classic" +msgstr "Clàssic" + +msgid "Perlin" +msgstr "" + +msgid "Billow" +msgstr "" + +msgid "Ridged Multifractal" +msgstr "" + +msgid "Voronoi" +msgstr "" + +msgid "Fuzzy skin feature size" +msgstr "" + +msgid "" +"The base size of the coherent noise features, in mm. Higher values will " +"result in larger features." +msgstr "" + +msgid "Fuzzy Skin Noise Octaves" +msgstr "" + +msgid "" +"The number of octaves of coherent noise to use. Higher values increase the " +"detail of the noise, but also increase computation time." +msgstr "" + +msgid "Fuzzy skin noise persistence" +msgstr "" + +msgid "" +"The decay rate for higher octaves of the coherent noise. Lower values will " +"result in smoother noise." +msgstr "" + msgid "Filter out tiny gaps" msgstr "Filtrar els buits minúsculs" @@ -12279,6 +12572,14 @@ msgstr "Interlineat entre línies de planxa" msgid "The distance between the lines of ironing" msgstr "La distància entre les línies de planxa" +msgid "Ironing inset" +msgstr "" + +msgid "" +"The distance to keep from the edges. A value of 0 sets this to half of the " +"nozzle diameter" +msgstr "" + msgid "Ironing speed" msgstr "Velocitat de planxat" @@ -12549,17 +12850,18 @@ msgid "" "Default value of 3 works well for most cases. If your printer is stuttering, " "increase this value to reduce the number of adjustments made\n" "\n" -"Allowed values: 1-5" +"Allowed values: 0.5-5" +msgstr "" + +msgid "Apply only on external features" +msgstr "" + +msgid "" +"Applies extrusion rate smoothing only on external perimeters and overhangs. " +"This can help reduce artefacts due to sharp speed transitions on externally " +"visible overhangs without impacting the print speed of features that will " +"not be visible to the user." msgstr "" -"Un valor més baix dóna lloc a transicions de velocitat d'extrusió més suaus. " -"Tanmateix, això resulta en un fitxer gcode significativament més gran i més " -"instruccions per processar per a la impressora. \n" -"\n" -"El valor predeterminat a 3 funciona bé en la majoria dels casos. Si la " -"impressora s'entrebanca, augmenteu aquest valor per reduir el nombre " -"d'ajustos realitzats\n" -"\n" -"Valors permesos: 1-5" msgid "Minimum speed for part cooling fan" msgstr "Velocitat mínima per al ventilador de refrigeració de peces" @@ -12591,13 +12893,10 @@ msgid "Min print speed" msgstr "Velocitat d'impressió mínima" msgid "" -"The minimum printing speed that the printer will slow down to to attempt to " -"maintain the minimum layer time above, when slow down for better layer " -"cooling is enabled." +"The minimum print speed to which the printer slows down to maintain the " +"minimum layer time defined above when the slowdown for better layer cooling " +"is enabled." msgstr "" -"La velocitat mínima d'impressió a la qual la impressora disminuirà per " -"intentar mantenir el temps mínim de capa anterior, quan \"alentir per a un " -"millor refredament de la capa\" està habilitat." msgid "Diameter of nozzle" msgstr "Diàmetre del broquet" @@ -13359,9 +13658,6 @@ msgid "" "with them. To avoid this, increase the skirt distance value.\n" msgstr "" -msgid "Disabled" -msgstr "Deshabilitat" - msgid "Enabled" msgstr "Habilitat" @@ -13639,25 +13935,22 @@ msgid "Enable support generation." msgstr "Habilitar la generació de suports." msgid "" -"normal(auto) and tree(auto) is used to generate support automatically. If " -"normal(manual) or tree(manual) is selected, only support enforcers are " +"Normal (auto) and Tree (auto) is used to generate support automatically. If " +"Normal (manual) or Tree (manual) is selected, only support enforcers are " "generated" msgstr "" -"normal( auto ) i arbre( auto ) s'utilitzen per generar suports " -"automàticament. Si se selecciona normal( manual ) o arbre( manual ), només " -"es generen suports forçats" -msgid "normal(auto)" -msgstr "normal( auto )" +msgid "Normal (auto)" +msgstr "" -msgid "tree(auto)" -msgstr "arbre( auto )" +msgid "Tree (auto)" +msgstr "" -msgid "normal(manual)" -msgstr "normal( manual )" +msgid "Normal (manual)" +msgstr "" -msgid "tree(manual)" -msgstr "arbre( manual )" +msgid "Tree (manual)" +msgstr "" msgid "Support/object xy distance" msgstr "Distància suport/objecte a xy" @@ -13889,6 +14182,15 @@ msgstr "" "Es generarà un suport per a voladissos l'angle de pendent dels quals estigui " "per sota del llindar." +msgid "Threshold overlap" +msgstr "" + +msgid "" +"If threshold angle is zero, support will be generated for overhangs whose " +"overlap is below the threshold. The smaller this value is, the steeper the " +"overhang that can be printed without support." +msgstr "" + msgid "Tree support branch angle" msgstr "Angle de branca de suport en arbre" @@ -14455,9 +14757,6 @@ msgstr "" "d'extrusió constant i per a zones molt primes s'usa el farciment de buits. " "El motor Aràcne produeix perímetres amb amplada d'extrusió variable" -msgid "Classic" -msgstr "Clàssic" - msgid "Arachne" msgstr "Aràcne" @@ -16521,6 +16820,9 @@ msgstr "Impressora Física" msgid "Print Host upload" msgstr "Pujada al amfitrió( host ) d'impressió" +msgid "Test" +msgstr "Test" + msgid "Could not get a valid Printer Host reference" msgstr "" "No s'ha pogut aconseguir una referència vàlida d'amfitrió( host ) " @@ -17414,6 +17716,183 @@ msgstr "" "augmentar adequadament la temperatura del llit pot reduir la probabilitat de " "deformació." +#~ msgid "Current Cabin humidity" +#~ msgstr "Humitat de la cabina" + +#~ msgid "Stopped." +#~ msgstr "Aturat." + +#, c-format, boost-format +#~ msgid "Connect failed [%d]!" +#~ msgstr "Connexió fallida [%d]!" + +#~ msgid "Initialize failed (Device connection not ready)!" +#~ msgstr "" +#~ "Inicialització fallida ( la connexió del Dispositiu no està preparada )!" + +#~ msgid "Initialize failed (Storage unavailable, insert SD card.)!" +#~ msgstr "" +#~ "Inicialització fallida (emmagatzematge no disponible, inseriu la targeta " +#~ "SD.)!" + +#, c-format, boost-format +#~ msgid "Initialize failed (%s)!" +#~ msgstr "Inicialització fallida ( %s )!" + +#~ msgid "LAN Connection Failed (Sending print file)" +#~ msgstr "" +#~ "S'ha produït un error en la Connexió de Xarxa LAN ( Enviant un fitxer " +#~ "d'impressió )" + +#~ msgid "" +#~ "Step 1, please confirm Orca Slicer and your printer are in the same LAN." +#~ msgstr "" +#~ "Pas 1: Confirmeu que Orca Slicer i la impressora es troben a la mateixa " +#~ "LAN." + +#~ msgid "" +#~ "Step 2, if the IP and Access Code below are different from the actual " +#~ "values on your printer, please correct them." +#~ msgstr "" +#~ "Pas 2: Si la IP i el Codi d'Accés següent són diferents dels valors reals " +#~ "de la impressora, corregiu-los." + +#~ msgid "Step 3: Ping the IP address to check for packet loss and latency." +#~ msgstr "" +#~ "Pas 3: Feu ping a l'adreça IP per comprovar si hi ha pèrdua de paquets i " +#~ "latència." + +#~ msgid "IP and Access Code Verified! You may close the window" +#~ msgstr "IP i Codi d'Accés verificats! Podeu tancar la finestra" + +#~ msgid "Force cooling for overhang and bridge" +#~ msgstr "Força la refrigeració per voladís i pont" + +#~ msgid "" +#~ "Enable this option to optimize part cooling fan speed for overhang and " +#~ "bridge to get better cooling" +#~ msgstr "" +#~ "Activeu aquesta opció per optimitzar la velocitat del ventilador de " +#~ "refrigeració de peces per a Voladís i Pont i obtenir una millor " +#~ "refrigeració" + +#~ msgid "Fan speed for overhang" +#~ msgstr "Velocitat del ventilador per voladís" + +#~ msgid "" +#~ "Force part cooling fan to be this speed when printing bridge or overhang " +#~ "wall which has large overhang degree. Forcing cooling for overhang and " +#~ "bridge can get better quality for these part" +#~ msgstr "" +#~ "Forçar el ventilador de refrigeració de la peça a tenir aquesta velocitat " +#~ "quan imprimeix un pont o un perímetre voladís que tingui un gran grau de " +#~ "voladís. Forçar la refrigeració per voladís i pont pot millorar la " +#~ "qualitat de les peces" + +#~ msgid "Cooling overhang threshold" +#~ msgstr "Llindar de voladís de refrigeració" + +#, c-format +#~ msgid "" +#~ "Force cooling fan to be specific speed when overhang degree of printed " +#~ "part exceeds this value. Expressed as percentage which indicates how much " +#~ "width of the line without support from lower layer. 0% means forcing " +#~ "cooling for all outer wall no matter how much overhang degree" +#~ msgstr "" +#~ "Força el ventilador de refrigeració a una velocitat específica quan el " +#~ "grau de voladís de la peça impresa excedeix aquest valor. Expressat com a " +#~ "percentatge, indica l'amplada de la línia sense suport de la capa " +#~ "inferior. 0%% significa forçar la refrigeració de tot el perímetre " +#~ "exterior sense importar el grau de voladís" + +#~ msgid "Bridge infill direction" +#~ msgstr "Angle del farciment del pont" + +#~ msgid "Bridge density" +#~ msgstr "Densitat del pont" + +#~ msgid "" +#~ "Density of external bridges. 100% means solid bridge. Default is 100%." +#~ msgstr "" +#~ "Densitat dels ponts exteriors. 100% significa pont sòlid. Per defecte és " +#~ "del 100%." + +#~ msgid "" +#~ "Improve shell precision by adjusting outer wall spacing. This also " +#~ "improves layer consistency.\n" +#~ "Note: This setting will only take effect if the wall sequence is " +#~ "configured to Inner-Outer" +#~ msgstr "" +#~ "Millora la precisió de la carcassa ajustant l'espaiat del perímetre més " +#~ "exterior. Això també millora la consistència de la capa.\n" +#~ "Nota: Aquest paràmetre només tindrà efecte si la seqüència de paret està " +#~ "configurada a Interior-Exterior" + +#~ msgid "Thick bridges" +#~ msgstr "Ponts gruixuts" + +#~ msgid "" +#~ "This fan speed is enforced during all support interfaces, to be able to " +#~ "weaken their bonding with a high fan speed.\n" +#~ "Set to -1 to disable this override.\n" +#~ "Can only be overridden by disable_fan_first_layers." +#~ msgstr "" +#~ "Aquesta velocitat del ventilador s'aplica durant totes les interfícies de " +#~ "suport, per poder debilitar la seva unió amb una alta velocitat del " +#~ "ventilador.\n" +#~ "Definiu en -1 per desactivar aquesta sobreescriptura.\n" +#~ "Només es pot anul·lar per disable_fan_first_layers." + +#~ msgid "" +#~ "A lower value results in smoother extrusion rate transitions. However, " +#~ "this results in a significantly larger gcode file and more instructions " +#~ "for the printer to process. \n" +#~ "\n" +#~ "Default value of 3 works well for most cases. If your printer is " +#~ "stuttering, increase this value to reduce the number of adjustments made\n" +#~ "\n" +#~ "Allowed values: 1-5" +#~ msgstr "" +#~ "Un valor més baix dóna lloc a transicions de velocitat d'extrusió més " +#~ "suaus. Tanmateix, això resulta en un fitxer gcode significativament més " +#~ "gran i més instruccions per processar per a la impressora. \n" +#~ "\n" +#~ "El valor predeterminat a 3 funciona bé en la majoria dels casos. Si la " +#~ "impressora s'entrebanca, augmenteu aquest valor per reduir el nombre " +#~ "d'ajustos realitzats\n" +#~ "\n" +#~ "Valors permesos: 1-5" + +#~ msgid "" +#~ "The minimum printing speed that the printer will slow down to to attempt " +#~ "to maintain the minimum layer time above, when slow down for better layer " +#~ "cooling is enabled." +#~ msgstr "" +#~ "La velocitat mínima d'impressió a la qual la impressora disminuirà per " +#~ "intentar mantenir el temps mínim de capa anterior, quan \"alentir per a " +#~ "un millor refredament de la capa\" està habilitat." + +#~ msgid "" +#~ "normal(auto) and tree(auto) is used to generate support automatically. If " +#~ "normal(manual) or tree(manual) is selected, only support enforcers are " +#~ "generated" +#~ msgstr "" +#~ "normal( auto ) i arbre( auto ) s'utilitzen per generar suports " +#~ "automàticament. Si se selecciona normal( manual ) o arbre( manual ), " +#~ "només es generen suports forçats" + +#~ msgid "normal(auto)" +#~ msgstr "normal( auto )" + +#~ msgid "tree(auto)" +#~ msgstr "arbre( auto )" + +#~ msgid "normal(manual)" +#~ msgstr "normal( manual )" + +#~ msgid "tree(manual)" +#~ msgstr "arbre( manual )" + #~ msgid "ShiftLeft mouse button" #~ msgstr "Màj+Botó esquerre del ratolí" diff --git a/localization/i18n/cs/OrcaSlicer_cs.po b/localization/i18n/cs/OrcaSlicer_cs.po index 8087ede4a3..eff64c389a 100644 --- a/localization/i18n/cs/OrcaSlicer_cs.po +++ b/localization/i18n/cs/OrcaSlicer_cs.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-01-04 17:35+0100\n" +"POT-Creation-Date: 2025-02-14 23:42+0800\n" "PO-Revision-Date: 2024-11-03 20:59+0100\n" "Last-Translator: René Mošner \n" "Language-Team: \n" @@ -2816,9 +2816,6 @@ msgstr "" msgid "About %s" msgstr "O %s" -msgid "Orca Slicer" -msgstr "" - msgid "OrcaSlicer is based on BambuStudio, PrusaSlicer, and SuperSlicer." msgstr "OrcaSlicer je založen na BambuStudio, PrusaSlicer a SuperSlicer." @@ -2869,9 +2866,6 @@ msgstr "Vstupní hodnota by měla být větší než %1% a menší než %2%" msgid "SN" msgstr "SN" -msgid "Setting AMS slot information while printing is not supported" -msgstr "Nastavení informací o slotu AMS při tisku není podporováno" - msgid "Factors of Flow Dynamics Calibration" msgstr "Faktory Kalibrace Dynamiky Průtoku" @@ -2884,6 +2878,9 @@ msgstr "Faktor K" msgid "Factor N" msgstr "Faktor N" +msgid "Setting AMS slot information while printing is not supported" +msgstr "Nastavení informací o slotu AMS při tisku není podporováno" + msgid "Setting Virtual slot information while printing is not supported" msgstr "Nastavení informací o virtuálním slotu během tisku není podporováno" @@ -3003,7 +3000,7 @@ msgstr "Zakázat AMS" msgid "Print with the filament mounted on the back of chassis" msgstr "Tisk s filamentem namontovaným na zadní straně podvozku" -msgid "Current Cabin humidity" +msgid "Current AMS humidity" msgstr "" msgid "" @@ -5063,8 +5060,8 @@ msgstr "" msgid "The printer has been logged out and cannot connect." msgstr "" -msgid "Stopped." -msgstr "Zastaveno." +msgid "Video Stopped." +msgstr "" msgid "LAN Connection Failed (Failed to start liveview)" msgstr "Připojení LAN se nezdařilo (nepodařilo se spustit živé zobrazení)" @@ -5155,10 +5152,6 @@ msgstr "" msgid "No printers." msgstr "Žádné tiskárny." -#, c-format, boost-format -msgid "Connect failed [%d]!" -msgstr "Spojení selhalo [%d]!" - msgid "Loading file list..." msgstr "Načítání seznamu souborů..." @@ -5168,15 +5161,14 @@ msgstr "" msgid "Load failed" msgstr "" -msgid "Initialize failed (Device connection not ready)!" -msgstr "Inicializace se nezdařila (Připojení zařízení není připraveno)!" - msgid "" "Browsing file in SD card is not supported in current firmware. Please update " "the printer firmware." msgstr "" -msgid "Initialize failed (Storage unavailable, insert SD card.)!" +msgid "" +"Please check if the SD card is inserted into the printer.\n" +"If it still cannot be read, you can try formatting the SD card." msgstr "" msgid "LAN Connection Failed (Failed to view sdcard)" @@ -5185,10 +5177,6 @@ msgstr "" msgid "Browsing file in SD card is not supported in LAN Only Mode." msgstr "" -#, c-format, boost-format -msgid "Initialize failed (%s)!" -msgstr "Inicializace se nezdařila (%s)!" - #, c-format, boost-format msgid "You are going to delete %u file from printer. Are you sure to continue?" msgid_plural "" @@ -5619,6 +5607,25 @@ msgstr "" msgid "Not for now" msgstr "" +msgid "Server Exception" +msgstr "" + +msgid "" +"The server is unable to respond. Please click the link below to check the " +"server status." +msgstr "" + +msgid "" +"If the server is in a fault state, you can temporarily use offline printing " +"or local network printing." +msgstr "" + +msgid "How to use LAN only mode" +msgstr "" + +msgid "Don't show this dialog again" +msgstr "" + msgid "3D Mouse disconnected." msgstr "3D myš odpojena." @@ -6335,6 +6342,10 @@ msgstr "Otevřít jako projekt" msgid "Import geometry only" msgstr "Importovat pouze modely" +msgid "" +"This option can be changed later in preferences, under 'Load Behaviour'." +msgstr "" + msgid "Only one G-code file can be opened at the same time." msgstr "Najednou lze otevřít pouze jeden soubor s G-kódem." @@ -6759,6 +6770,24 @@ msgstr "" msgid "Associate URLs to OrcaSlicer" msgstr "" +msgid "Load All" +msgstr "" + +msgid "Ask When Relevant" +msgstr "" + +msgid "Always Ask" +msgstr "" + +msgid "Load Geometry Only" +msgstr "" + +msgid "Load Behaviour" +msgstr "" + +msgid "Should printer/filament/process settings be loaded when opening a .3mf?" +msgstr "" + msgid "Maximum recent projects" msgstr "Maximální počet nedávných projektů" @@ -7313,6 +7342,9 @@ msgstr "Úprava názvu zařízení" msgid "Bind with Pin Code" msgstr "" +msgid "Bind with Access Code" +msgstr "" + msgid "Send to Printer SD card" msgstr "Odeslat do tiskárny SD kartu" @@ -7596,6 +7628,75 @@ msgstr "" "klikněte pravým tlačítkem na prázdnou pozici stavební desky a vyberte " "\"Přidat primitivní\" -> \"Timelapse Wipe Tower\" ." +msgid "" +"A copy of the current system preset will be created, which will be detached " +"from the system preset." +msgstr "" + +msgid "" +"The current custom preset will be detached from the parent system preset." +msgstr "" + +msgid "Modifications to the current profile will be saved." +msgstr "" + +msgid "" +"This action is not revertible.\n" +"Do you want to proceed?" +msgstr "" + +msgid "Detach preset" +msgstr "" + +msgid "This is a default preset." +msgstr "" + +msgid "This is a system preset." +msgstr "" + +msgid "Current preset is inherited from the default preset." +msgstr "" + +msgid "Current preset is inherited from" +msgstr "" + +msgid "It can't be deleted or modified." +msgstr "" + +msgid "" +"Any modifications should be saved as a new preset inherited from this one." +msgstr "" + +msgid "To do that please specify a new name for the preset." +msgstr "" + +msgid "Additional information:" +msgstr "" + +msgid "vendor" +msgstr "" + +msgid "printer model" +msgstr "" + +msgid "default print profile" +msgstr "" + +msgid "default filament profile" +msgstr "" + +msgid "default SLA material profile" +msgstr "" + +msgid "default SLA print profile" +msgstr "" + +msgid "full profile name" +msgstr "" + +msgid "symbolic profile name" +msgstr "" + msgid "Line width" msgstr "Šířka Extruze" @@ -7692,6 +7793,12 @@ msgstr "Post-processing Scripts" msgid "Notes" msgstr "Poznámky" +msgid "Dependencies" +msgstr "" + +msgid "Profile dependencies" +msgstr "" + msgid "Frequent" msgstr "Časté" @@ -8771,20 +8878,22 @@ msgstr "" msgid "Confirm and Update Nozzle" msgstr "" -msgid "LAN Connection Failed (Sending print file)" -msgstr "Připojení k síti LAN se nezdařilo (odesílání tiskového souboru)" - -msgid "" -"Step 1, please confirm Orca Slicer and your printer are in the same LAN." +msgid "Connect the printer using IP and access code" msgstr "" -"Krok 1, potvrďte, že Orca Slicer a vaše tiskárna jsou ve stejné síti LAN." msgid "" -"Step 2, if the IP and Access Code below are different from the actual values " +"Step 1. Please confirm Orca Slicer and your printer are in the same LAN." +msgstr "" + +msgid "" +"Step 2. If the IP and Access Code below are different from the actual values " "on your printer, please correct them." msgstr "" -"Krok 2, pokud se IP a přístupový kód níže liší od skutečných hodnot na " -"tiskárně, opravte je." + +msgid "" +"Step 3. Please obtain the device SN from the printer side; it is usually " +"found in the device information on the printer screen." +msgstr "" msgid "IP" msgstr "IP" @@ -8792,16 +8901,37 @@ msgstr "IP" msgid "Access Code" msgstr "Přístupový kód" +msgid "Printer model" +msgstr "" + +msgid "Printer name" +msgstr "" + msgid "Where to find your printer's IP and Access Code?" msgstr "Kde najít IP a přístupový kód vaší tiskárny?" -msgid "Step 3: Ping the IP address to check for packet loss and latency." +msgid "Connect" msgstr "" -msgid "Test" -msgstr "Test" +msgid "Manual Setup" +msgstr "" -msgid "IP and Access Code Verified! You may close the window" +msgid "connecting..." +msgstr "" + +msgid "Failed to connect to printer." +msgstr "" + +msgid "Failed to publish login request." +msgstr "" + +msgid "The printer has already been bound." +msgstr "" + +msgid "The printer mode is incorrect, please switch to LAN Only." +msgstr "" + +msgid "Connecting to printer... The dialog will close later" msgstr "" msgid "Connection failed, please double check IP and Access Code" @@ -9740,45 +9870,45 @@ msgstr "" msgid "Nowhere" msgstr "" -msgid "Force cooling for overhang and bridge" -msgstr "Vynucené chlazení pro převisy a mosty" +msgid "Force cooling for overhangs and bridges" +msgstr "" msgid "" -"Enable this option to optimize part cooling fan speed for overhang and " -"bridge to get better cooling" +"Enable this option to allow adjustment of the part cooling fan speed for " +"specifically for overhangs, internal and external bridges. Setting the fan " +"speed specifically for these features can improve overall print quality and " +"reduce warping." msgstr "" -"Povolením této možnosti optimalizujete rychlost ventilátoru chlazení dílů " -"pro převis a most, abyste získali lepší chlazení" -msgid "Fan speed for overhang" -msgstr "Rychlost ventilátoru pro převisy" +msgid "Overhangs and external bridges fan speed" +msgstr "" msgid "" -"Force part cooling fan to be this speed when printing bridge or overhang " -"wall which has large overhang degree. Forcing cooling for overhang and " -"bridge can get better quality for these part" +"Use this part cooling fan speed when printing bridges or overhang walls with " +"an overhang threshold that exceeds the value set in the 'Overhangs cooling " +"threshold' parameter above. Increasing the cooling specifically for " +"overhangs and bridges can improve the overall print quality of these " +"features.\n" +"\n" +"Please note, this fan speed is clamped on the lower end by the minimum fan " +"speed threshold set above. It is also adjusted upwards up to the maximum fan " +"speed threshold when the minimum layer time threshold is not met." msgstr "" -"Vynutit ventilátor chlazení na tuto rychlost, když tisknete most nebo " -"převislou stěnu, která má velký přesah. Vynucení chlazení převisu a mostu " -"může získat lepší kvalitu těchto dílů" -msgid "Cooling overhang threshold" -msgstr "Hranice chlazení převisů" +msgid "Overhang cooling activation threshold" +msgstr "" -#, fuzzy, c-format +#, c-format, boost-format msgid "" -"Force cooling fan to be specific speed when overhang degree of printed part " -"exceeds this value. Expressed as percentage which indicates how much width " -"of the line without support from lower layer. 0% means forcing cooling for " -"all outer wall no matter how much overhang degree" +"When the overhang exceeds this specified threshold, force the cooling fan to " +"run at the 'Overhang Fan Speed' set below. This threshold is expressed as a " +"percentage, indicating the portion of each line's width that is unsupported " +"by the layer beneath it. Setting this value to 0% forces the cooling fan to " +"run for all outer walls, regardless of the overhang degree." msgstr "" -"Vynutit chladicí ventilátor na určitou rychlost, když stupeň převisu " -"tištěného dílu překročí tuto hodnotu. Vyjádřeno v procentech, které udává, " -"jak velká šířka extruze bez podpěry spodní vrstvy. 0% znamená vynucení " -"chlazení pro celou vnější stěnu bez ohledu na míru převisu" -msgid "Bridge infill direction" -msgstr "Směr výplně mostu" +msgid "External bridge infill direction" +msgstr "" msgid "" "Bridging angle override. If left to zero, the bridging angle will be " @@ -9789,12 +9919,45 @@ msgstr "" "vypočítán automaticky. Jinak bude poskytnutý úhel použit pro vnější mosty. " "Pro nulový úhel použijte 180°." -msgid "Bridge density" -msgstr "Hustota mostu" - -msgid "Density of external bridges. 100% means solid bridge. Default is 100%." +msgid "Internal bridge infill direction" +msgstr "" + +msgid "" +"Internal bridging angle override. If left to zero, the bridging angle will " +"be calculated automatically. Otherwise the provided angle will be used for " +"internal bridges. Use 180°for zero angle.\n" +"\n" +"It is recommended to leave it at 0 unless there is a specific model need not " +"to." +msgstr "" + +msgid "External bridge density" +msgstr "" + +msgid "" +"Controls the density (spacing) of external bridge lines. 100% means solid " +"bridge. Default is 100%.\n" +"\n" +"Lower density external bridges can help improve reliability as there is more " +"space for air to circulate around the extruded bridge, improving its cooling " +"speed." +msgstr "" + +msgid "Internal bridge density" +msgstr "" + +msgid "" +"Controls the density (spacing) of internal bridge lines. 100% means solid " +"bridge. Default is 100%.\n" +"\n" +" Lower density internal bridges can help reduce top surface pillowing and " +"improve internal bridge reliability as there is more space for air to " +"circulate around the extruded bridge, improving its cooling speed. \n" +"\n" +"This option works particularly well when combined with the second internal " +"bridge over infill option, further improving internal bridging structure " +"before solid infill is extruded." msgstr "" -"Hustota externích mostů. 100 % znamená pevný most. Výchozí hodnota je 100 %." msgid "Bridge flow ratio" msgstr "Průtok mostu" @@ -9846,10 +10009,10 @@ msgstr "Přesná stěna" msgid "" "Improve shell precision by adjusting outer wall spacing. This also improves " -"layer consistency.\n" -"Note: This setting will only take effect if the wall sequence is configured " -"to Inner-Outer" +"layer consistency." msgstr "" +"Zlepšete přesnost skořepiny úpravou vzdálenosti vnějších stěn. To také " +"zlepšuje konzistence vrstev." msgid "Only one wall on top surfaces" msgstr "Pouze jedna stěna na horních plochách" @@ -10095,12 +10258,24 @@ msgstr "nahoru kompatibilní stroj" msgid "Compatible machine condition" msgstr "Stav kompatibilního stroje" +msgid "" +"A boolean expression using the configuration values of an active printer " +"profile. If this expression evaluates to true, this profile is considered " +"compatible with the active printer profile." +msgstr "" + msgid "Compatible process profiles" msgstr "Kompatibilní profily procesů" msgid "Compatible process profiles condition" msgstr "Podmínka kompatibilních procesních profilů" +msgid "" +"A boolean expression using the configuration values of an active print " +"profile. If this expression evaluates to true, this profile is considered " +"compatible with the active print profile." +msgstr "" + msgid "Print sequence, layer by layer or object by object" msgstr "Tisková sekvence, vrstva po vrstvě nebo objekt po objektu" @@ -10196,8 +10371,8 @@ msgstr "" "Nepodpírejte celou oblast mostu, díky čemuž je podpěra velmi velká. Most " "obvykle může tisknout přímo bez podpěry, pokud není příliš dlouhý" -msgid "Thick bridges" -msgstr "Silné přemostění" +msgid "Thick external bridges" +msgstr "" msgid "" "If enabled, bridges are more reliable, can bridge longer distances, but may " @@ -10218,36 +10393,86 @@ msgid "" "using large nozzles." msgstr "" -msgid "Filter out small internal bridges (beta)" +msgid "Extra bridge layers (beta)" msgstr "" msgid "" -"This option can help reducing pillowing on top surfaces in heavily slanted " -"or curved models.\n" +"This option enables the generation of an extra bridge layer over internal " +"and/or external bridges.\n" +"\n" +"Extra bridge layers help improve bridge appearance and reliability, as the " +"solid infill is better supported. This is especially useful in fast " +"printers, where the bridge and solid infill speeds vary greatly. The extra " +"bridge layer results in reduced pillowing on top surfaces, as well as " +"reduced separation of the external bridge layer from its surrounding " +"perimeters.\n" +"\n" +"It is generally recommended to set this to at least 'External bridge only', " +"unless specific issues with the sliced model are found.\n" +"\n" +"Options:\n" +"1. Disabled - does not generate second bridge layers. This is the default " +"and is set for compatibility purposes.\n" +"2. External bridge only - generates second bridge layers for external-facing " +"bridges only. Please note that small bridges that are shorter or narrower " +"than the set number of perimeters will be skipped as they would not benefit " +"from a second bridge layer. If generated, the second bridge layer will be " +"extruded parallel to the first bridge layer to reinforce the bridge " +"strength.\n" +"3. Internal bridge only - generates second bridge layers for internal " +"bridges over sparse infill only. Please note that the internal bridges count " +"towards the top shell layer count of your model. The second internal bridge " +"layer will be extruded as close to perpendicular to the first as possible. " +"If multiple regions in the same island, with varying bridge angles are " +"present, the last region of that island will be selected as the angle " +"reference.\n" +"4. Apply to all - generates second bridge layers for both internal and " +"external-facing bridges\n" +msgstr "" + +msgid "Disabled" +msgstr "Zakázáno" + +msgid "External bridge only" +msgstr "" + +msgid "Internal bridge only" +msgstr "" + +msgid "Apply to all" +msgstr "" + +msgid "Filter out small internal bridges" +msgstr "" + +msgid "" +"This option can help reduce pillowing on top surfaces in heavily slanted or " +"curved models.\n" "\n" "By default, small internal bridges are filtered out and the internal solid " "infill is printed directly over the sparse infill. This works well in most " "cases, speeding up printing without too much compromise on top surface " "quality. \n" "\n" -"However, in heavily slanted or curved models especially where too low sparse " -"infill density is used, this may result in curling of the unsupported solid " -"infill, causing pillowing.\n" +"However, in heavily slanted or curved models, especially where too low a " +"sparse infill density is used, this may result in curling of the unsupported " +"solid infill, causing pillowing.\n" "\n" -"Disabling this option will print internal bridge layer over slightly " -"unsupported internal solid infill. The options below control the amount of " -"filtering, i.e. the amount of internal bridges created.\n" +"Enabling limited filtering or no filtering will print internal bridge layer " +"over slightly unsupported internal solid infill. The options below control " +"the sensitivity of the filtering, i.e. they control where internal bridges " +"are created.\n" "\n" -"Filter - enable this option. This is the default behavior and works well in " -"most cases.\n" +"1. Filter - enables this option. This is the default behavior and works well " +"in most cases.\n" "\n" -"Limited filtering - creates internal bridges on heavily slanted surfaces, " -"while avoiding creating unnecessary internal bridges. This works well for " -"most difficult models.\n" +"2. Limited filtering - creates internal bridges on heavily slanted surfaces " +"while avoiding unnecessary bridges. This works well for most difficult " +"models.\n" "\n" -"No filtering - creates internal bridges on every potential internal " -"overhang. This option is useful for heavily slanted top surface models. " -"However, in most cases it creates too many unnecessary bridges." +"3. No filtering - creates internal bridges on every potential internal " +"overhang. This option is useful for heavily slanted top surface models; " +"however, in most cases, it creates too many unnecessary bridges." msgstr "" msgid "Filter" @@ -11055,6 +11280,9 @@ msgstr "Vzor linek pro vnitřní výplň" msgid "Grid" msgstr "Mřížka" +msgid "2D Lattice" +msgstr "" + msgid "Line" msgstr "Čára" @@ -11085,6 +11313,25 @@ msgstr "Blesky" msgid "Cross Hatch" msgstr "" +msgid "Quarter Cubic" +msgstr "" + +msgid "Lattice angle 1" +msgstr "" + +msgid "" +"The angle of the first set of 2D lattice elements in the Z direction. Zero " +"is vertical." +msgstr "" + +msgid "Lattice angle 2" +msgstr "" + +msgid "" +"The angle of the second set of 2D lattice elements in the Z direction. Zero " +"is vertical." +msgstr "" + msgid "Sparse infill anchor length" msgstr "Délka kotvy vnitřní výplně" @@ -11298,15 +11545,25 @@ msgid "Support interface fan speed" msgstr "Rychlost ventilátoru kontaktních vrstev podpěr" msgid "" -"This fan speed is enforced during all support interfaces, to be able to " -"weaken their bonding with a high fan speed.\n" -"Set to -1 to disable this override.\n" -"Can only be overridden by disable_fan_first_layers." +"This part cooling fan speed is applied when printing support interfaces. " +"Setting this parameter to a higher than regular speed reduces the layer " +"binding strength between supports and the supported part, making them easier " +"to separate.\n" +"Set to -1 to disable it.\n" +"This setting is overridden by disable_fan_first_layers." +msgstr "" + +msgid "Internal bridges fan speed" +msgstr "" + +msgid "" +"The part cooling fan speed used for all internal bridges. Set to -1 to use " +"the overhang fan speed settings instead.\n" +"\n" +"Reducing the internal bridges fan speed, compared to your regular fan speed, " +"can help reduce part warping due to excessive cooling applied over a large " +"surface for a prolonged period of time." msgstr "" -"Tato rychlost ventilátoru je uplatněna během všech kontaktních vrstev, aby " -"bylo možné oslabit jejich spojení vysokou rychlostí ventilátoru.\n" -"Nastavte hodnotu -1 pro zrušení tohoto přepisu.\n" -"Tuto hodnotu lze přepsat pouze pomocí disable_fan_first_layers." msgid "" "Randomly jitter while printing the wall, so that the surface has a rough " @@ -11349,6 +11606,59 @@ msgstr "" msgid "Whether to apply fuzzy skin on the first layer" msgstr "" +msgid "Fuzzy skin noise type" +msgstr "" + +msgid "" +"Noise type to use for fuzzy skin generation.\n" +"Classic: Classic uniform random noise.\n" +"Perlin: Perlin noise, which gives a more consistent texture.\n" +"Billow: Similar to perlin noise, but clumpier.\n" +"Ridged Multifractal: Ridged noise with sharp, jagged features. Creates " +"marble-like textures.\n" +"Voronoi: Divides the surface into voronoi cells, and displaces each one by a " +"random amount. Creates a patchwork texture." +msgstr "" + +msgid "Classic" +msgstr "Klasický" + +msgid "Perlin" +msgstr "" + +msgid "Billow" +msgstr "" + +msgid "Ridged Multifractal" +msgstr "" + +msgid "Voronoi" +msgstr "" + +msgid "Fuzzy skin feature size" +msgstr "" + +msgid "" +"The base size of the coherent noise features, in mm. Higher values will " +"result in larger features." +msgstr "" + +msgid "Fuzzy Skin Noise Octaves" +msgstr "" + +msgid "" +"The number of octaves of coherent noise to use. Higher values increase the " +"detail of the noise, but also increase computation time." +msgstr "" + +msgid "Fuzzy skin noise persistence" +msgstr "" + +msgid "" +"The decay rate for higher octaves of the coherent noise. Lower values will " +"result in smoother noise." +msgstr "" + msgid "Filter out tiny gaps" msgstr "Odfiltrujte drobné mezery" @@ -11782,6 +12092,14 @@ msgstr "Řádkování žehlení" msgid "The distance between the lines of ironing" msgstr "Vzdálenost mezi žehlicími linkami" +msgid "Ironing inset" +msgstr "" + +msgid "" +"The distance to keep from the edges. A value of 0 sets this to half of the " +"nozzle diameter" +msgstr "" + msgid "Ironing speed" msgstr "Rychlost žehlení" @@ -12039,15 +12357,18 @@ msgid "" "Default value of 3 works well for most cases. If your printer is stuttering, " "increase this value to reduce the number of adjustments made\n" "\n" -"Allowed values: 1-5" +"Allowed values: 0.5-5" +msgstr "" + +msgid "Apply only on external features" +msgstr "" + +msgid "" +"Applies extrusion rate smoothing only on external perimeters and overhangs. " +"This can help reduce artefacts due to sharp speed transitions on externally " +"visible overhangs without impacting the print speed of features that will " +"not be visible to the user." msgstr "" -"Nižší hodnota způsobí hladší přechody rychlosti extruze. To však má za " -"následek výrazně větší soubor G-kódu a více instrukcí pro tiskárnu. \n" -"\n" -"Výchozí hodnota 3 dobře funguje ve většině případů. Pokud vaše tiskárna má " -"problémy, zkuste zvýšit tuto hodnotu, abyste snížili počet úprav\n" -"\n" -"Povolené hodnoty: 1-5" msgid "Minimum speed for part cooling fan" msgstr "Minimální rychlost ventilátoru chlazení dílů" @@ -12079,9 +12400,9 @@ msgid "Min print speed" msgstr "Minimální rychlost tisku" msgid "" -"The minimum printing speed that the printer will slow down to to attempt to " -"maintain the minimum layer time above, when slow down for better layer " -"cooling is enabled." +"The minimum print speed to which the printer slows down to maintain the " +"minimum layer time defined above when the slowdown for better layer cooling " +"is enabled." msgstr "" msgid "Diameter of nozzle" @@ -12762,9 +13083,6 @@ msgid "" "with them. To avoid this, increase the skirt distance value.\n" msgstr "" -msgid "Disabled" -msgstr "Zakázáno" - msgid "Enabled" msgstr "Povoleno" @@ -13033,25 +13351,22 @@ msgid "Enable support generation." msgstr "Povolit generování podpěr." msgid "" -"normal(auto) and tree(auto) is used to generate support automatically. If " -"normal(manual) or tree(manual) is selected, only support enforcers are " +"Normal (auto) and Tree (auto) is used to generate support automatically. If " +"Normal (manual) or Tree (manual) is selected, only support enforcers are " "generated" msgstr "" -"Normální(auto) a Strom(auto) se používají k automatickému generování podpěr. " -"Pokud je vybrána možnost Normální(manual) nebo Strom(manual), budou " -"generovány pouze vynucené podpěry" -msgid "normal(auto)" -msgstr "Normální (auto)" +msgid "Normal (auto)" +msgstr "" -msgid "tree(auto)" -msgstr "Strom (auto)" +msgid "Tree (auto)" +msgstr "" -msgid "normal(manual)" -msgstr "Normální (manuální)" +msgid "Normal (manual)" +msgstr "" -msgid "tree(manual)" -msgstr "Strom (manuální)" +msgid "Tree (manual)" +msgstr "" msgid "Support/object xy distance" msgstr "Podpěry/Objekt xy vzdálenost" @@ -13271,6 +13586,15 @@ msgstr "" "Podpěry budou generovány pro převisy, jejichž úhel sklonu je pod hraniční " "hodnotou." +msgid "Threshold overlap" +msgstr "" + +msgid "" +"If threshold angle is zero, support will be generated for overhangs whose " +"overlap is below the threshold. The smaller this value is, the steeper the " +"overhang that can be printed without support." +msgstr "" + msgid "Tree support branch angle" msgstr "Úhel větve podpěr stromu" @@ -13785,9 +14109,6 @@ msgstr "" "velmi tenké oblasti se používá gap-fill. Arachne engine produkuje stěny s " "proměnnou extruzní šířkou." -msgid "Classic" -msgstr "Klasický" - msgid "Arachne" msgstr "Arachne" @@ -15668,6 +15989,9 @@ msgstr "Fyzická tiskárna" msgid "Print Host upload" msgstr "Nahrávání do tiskového serveru" +msgid "Test" +msgstr "Test" + msgid "Could not get a valid Printer Host reference" msgstr "Nelze získat platný odkaz na tiskový server" @@ -16400,6 +16724,137 @@ msgid "" "probability of warping." msgstr "" +#~ msgid "Stopped." +#~ msgstr "Zastaveno." + +#, c-format, boost-format +#~ msgid "Connect failed [%d]!" +#~ msgstr "Spojení selhalo [%d]!" + +#~ msgid "Initialize failed (Device connection not ready)!" +#~ msgstr "Inicializace se nezdařila (Připojení zařízení není připraveno)!" + +#, c-format, boost-format +#~ msgid "Initialize failed (%s)!" +#~ msgstr "Inicializace se nezdařila (%s)!" + +#~ msgid "LAN Connection Failed (Sending print file)" +#~ msgstr "Připojení k síti LAN se nezdařilo (odesílání tiskového souboru)" + +#~ msgid "" +#~ "Step 1, please confirm Orca Slicer and your printer are in the same LAN." +#~ msgstr "" +#~ "Krok 1, potvrďte, že Orca Slicer a vaše tiskárna jsou ve stejné síti LAN." + +#~ msgid "" +#~ "Step 2, if the IP and Access Code below are different from the actual " +#~ "values on your printer, please correct them." +#~ msgstr "" +#~ "Krok 2, pokud se IP a přístupový kód níže liší od skutečných hodnot na " +#~ "tiskárně, opravte je." + +#~ msgid "Force cooling for overhang and bridge" +#~ msgstr "Vynucené chlazení pro převisy a mosty" + +#~ msgid "" +#~ "Enable this option to optimize part cooling fan speed for overhang and " +#~ "bridge to get better cooling" +#~ msgstr "" +#~ "Povolením této možnosti optimalizujete rychlost ventilátoru chlazení dílů " +#~ "pro převis a most, abyste získali lepší chlazení" + +#~ msgid "Fan speed for overhang" +#~ msgstr "Rychlost ventilátoru pro převisy" + +#~ msgid "" +#~ "Force part cooling fan to be this speed when printing bridge or overhang " +#~ "wall which has large overhang degree. Forcing cooling for overhang and " +#~ "bridge can get better quality for these part" +#~ msgstr "" +#~ "Vynutit ventilátor chlazení na tuto rychlost, když tisknete most nebo " +#~ "převislou stěnu, která má velký přesah. Vynucení chlazení převisu a mostu " +#~ "může získat lepší kvalitu těchto dílů" + +#~ msgid "Cooling overhang threshold" +#~ msgstr "Hranice chlazení převisů" + +#, fuzzy, c-format +#~ msgid "" +#~ "Force cooling fan to be specific speed when overhang degree of printed " +#~ "part exceeds this value. Expressed as percentage which indicates how much " +#~ "width of the line without support from lower layer. 0% means forcing " +#~ "cooling for all outer wall no matter how much overhang degree" +#~ msgstr "" +#~ "Vynutit chladicí ventilátor na určitou rychlost, když stupeň převisu " +#~ "tištěného dílu překročí tuto hodnotu. Vyjádřeno v procentech, které " +#~ "udává, jak velká šířka extruze bez podpěry spodní vrstvy. 0% znamená " +#~ "vynucení chlazení pro celou vnější stěnu bez ohledu na míru převisu" + +#~ msgid "Bridge infill direction" +#~ msgstr "Směr výplně mostu" + +#~ msgid "Bridge density" +#~ msgstr "Hustota mostu" + +#~ msgid "" +#~ "Density of external bridges. 100% means solid bridge. Default is 100%." +#~ msgstr "" +#~ "Hustota externích mostů. 100 % znamená pevný most. Výchozí hodnota je 100 " +#~ "%." + +#~ msgid "Thick bridges" +#~ msgstr "Silné přemostění" + +#~ msgid "" +#~ "This fan speed is enforced during all support interfaces, to be able to " +#~ "weaken their bonding with a high fan speed.\n" +#~ "Set to -1 to disable this override.\n" +#~ "Can only be overridden by disable_fan_first_layers." +#~ msgstr "" +#~ "Tato rychlost ventilátoru je uplatněna během všech kontaktních vrstev, " +#~ "aby bylo možné oslabit jejich spojení vysokou rychlostí ventilátoru.\n" +#~ "Nastavte hodnotu -1 pro zrušení tohoto přepisu.\n" +#~ "Tuto hodnotu lze přepsat pouze pomocí disable_fan_first_layers." + +#~ msgid "" +#~ "A lower value results in smoother extrusion rate transitions. However, " +#~ "this results in a significantly larger gcode file and more instructions " +#~ "for the printer to process. \n" +#~ "\n" +#~ "Default value of 3 works well for most cases. If your printer is " +#~ "stuttering, increase this value to reduce the number of adjustments made\n" +#~ "\n" +#~ "Allowed values: 1-5" +#~ msgstr "" +#~ "Nižší hodnota způsobí hladší přechody rychlosti extruze. To však má za " +#~ "následek výrazně větší soubor G-kódu a více instrukcí pro tiskárnu. \n" +#~ "\n" +#~ "Výchozí hodnota 3 dobře funguje ve většině případů. Pokud vaše tiskárna " +#~ "má problémy, zkuste zvýšit tuto hodnotu, abyste snížili počet úprav\n" +#~ "\n" +#~ "Povolené hodnoty: 1-5" + +#~ msgid "" +#~ "normal(auto) and tree(auto) is used to generate support automatically. If " +#~ "normal(manual) or tree(manual) is selected, only support enforcers are " +#~ "generated" +#~ msgstr "" +#~ "Normální(auto) a Strom(auto) se používají k automatickému generování " +#~ "podpěr. Pokud je vybrána možnost Normální(manual) nebo Strom(manual), " +#~ "budou generovány pouze vynucené podpěry" + +#~ msgid "normal(auto)" +#~ msgstr "Normální (auto)" + +#~ msgid "tree(auto)" +#~ msgstr "Strom (auto)" + +#~ msgid "normal(manual)" +#~ msgstr "Normální (manuální)" + +#~ msgid "tree(manual)" +#~ msgstr "Strom (manuální)" + #~ msgid "Unselect" #~ msgstr "Zrušení výběru" @@ -16827,13 +17282,6 @@ msgstr "" #~ msgid "Configuration package updated to " #~ msgstr "Konfigurační balíček aktualizován na " -#~ msgid "" -#~ "Improve shell precision by adjusting outer wall spacing. This also " -#~ "improves layer consistency." -#~ msgstr "" -#~ "Zlepšete přesnost skořepiny úpravou vzdálenosti vnějších stěn. To také " -#~ "zlepšuje konzistence vrstev." - #~ msgid "" #~ "The minimum printing speed for the filament when slow down for better " #~ "layer cooling is enabled, when printing overhangs and when feature speeds " diff --git a/localization/i18n/de/OrcaSlicer_de.po b/localization/i18n/de/OrcaSlicer_de.po index a4a7cdfa5d..0d6b36d65d 100644 --- a/localization/i18n/de/OrcaSlicer_de.po +++ b/localization/i18n/de/OrcaSlicer_de.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-01-04 17:35+0100\n" +"POT-Creation-Date: 2025-02-14 23:42+0800\n" "PO-Revision-Date: \n" "Last-Translator: Heiko Liebscher \n" "Language-Team: \n" @@ -1315,14 +1315,16 @@ msgid "Esc" msgstr "Esc" msgid "Cancel a feature until exit" -msgstr "Abbrechen einer Funktion bis zum Verlassen" +msgstr "Abbrechen einer Funktion bis zum Verlassen" msgid "Measure" msgstr "Messen" msgid "" "Please confirm explosion ratio = 1,and please select at least one object" -msgstr "Bitte bestätigen Sie das Explosionsverhältnis = 1, und wählen Sie mindestens ein Objekt aus" +msgstr "" +"Bitte bestätigen Sie das Explosionsverhältnis = 1, und wählen Sie mindestens " +"ein Objekt aus" msgid "Please select at least one object." msgstr "Bitte wählen Sie mindestens ein Objekt aus." @@ -1330,8 +1332,9 @@ msgstr "Bitte wählen Sie mindestens ein Objekt aus." msgid "Edit to scale" msgstr "Bearbeiten auf Skala" +msgctxt "Verb" msgid "Scale all" -msgstr "Alle skalieren" +msgstr "" msgid "None" msgstr "Keine" @@ -2878,9 +2881,6 @@ msgstr "" msgid "About %s" msgstr "Über %s" -msgid "Orca Slicer" -msgstr "Orca Slicer" - msgid "OrcaSlicer is based on BambuStudio, PrusaSlicer, and SuperSlicer." msgstr "OrcaSlicer basiert auf BambuStudio, PrusaSlicer und SuperSlicer." @@ -2930,11 +2930,6 @@ msgstr "Der Eingabewert sollte größer als %1% und kleiner als %2% sein" msgid "SN" msgstr "SN" -msgid "Setting AMS slot information while printing is not supported" -msgstr "" -"Das Einstellen von AMS-Slot-Informationen während des Drucks wird nicht " -"unterstützt." - msgid "Factors of Flow Dynamics Calibration" msgstr "Dynamische Flusskalibrierungsfaktoren" @@ -2947,6 +2942,11 @@ msgstr "Faktor K" msgid "Factor N" msgstr "Faktor N" +msgid "Setting AMS slot information while printing is not supported" +msgstr "" +"Das Einstellen von AMS-Slot-Informationen während des Drucks wird nicht " +"unterstützt." + msgid "Setting Virtual slot information while printing is not supported" msgstr "" "Das Einstellen von virtuellen Slot-Informationen während des Druckens wird " @@ -3073,8 +3073,8 @@ msgstr "AMS deaktivieren" msgid "Print with the filament mounted on the back of chassis" msgstr "Druck mit dem Filament auf der Rückseite des Chassis" -msgid "Current Cabin humidity" -msgstr "Aktuelle Kabinenfeuchtigkeit" +msgid "Current AMS humidity" +msgstr "" msgid "" "Please change the desiccant when it is too wet. The indicator may not " @@ -5224,8 +5224,8 @@ msgstr "" msgid "The printer has been logged out and cannot connect." msgstr "Der Drucker wurde abgemeldet und kann keine Verbindung herstellen." -msgid "Stopped." -msgstr "Gestoppt." +msgid "Video Stopped." +msgstr "" msgid "LAN Connection Failed (Failed to start liveview)" msgstr "LAN-Verbindung fehlgeschlagen (Liveview konnte nicht gestartet werden)" @@ -5316,10 +5316,6 @@ msgstr "Dateiliste vom Drucker neu laden." msgid "No printers." msgstr "Keine Drucker." -#, c-format, boost-format -msgid "Connect failed [%d]!" -msgstr "Verbindung fehlgeschlagen [%d]!" - msgid "Loading file list..." msgstr "Dateiliste laden..." @@ -5329,10 +5325,6 @@ msgstr "Keine Dateien" msgid "Load failed" msgstr "Laden fehlgeschlagen" -msgid "Initialize failed (Device connection not ready)!" -msgstr "" -"Die Initialisierung ist fehlgeschlagen (Geräteverbindung nicht bereit)!" - msgid "" "Browsing file in SD card is not supported in current firmware. Please update " "the printer firmware." @@ -5340,10 +5332,10 @@ msgstr "" "Das Durchsuchen von Dateien auf der MicroSD-Karte wird in der aktuellen " "Firmware nicht unterstützt. Bitte aktualisieren Sie die Drucker-Firmware." -msgid "Initialize failed (Storage unavailable, insert SD card.)!" +msgid "" +"Please check if the SD card is inserted into the printer.\n" +"If it still cannot be read, you can try formatting the SD card." msgstr "" -"Initialisierung fehlgeschlagen (Speicher nicht verfügbar, MicroSD-Karte " -"einlegen.)!" msgid "LAN Connection Failed (Failed to view sdcard)" msgstr "LAN-Verbindung fehlgeschlagen (SD-Karte konnte nicht angezeigt werden)" @@ -5353,10 +5345,6 @@ msgstr "" "Das durchsuchen von Dateien auf der MicroSD-Karte wird im LAN-Only-Modus " "nicht unterstützt." -#, c-format, boost-format -msgid "Initialize failed (%s)!" -msgstr "Initialisierung ist fehlgeschlagen (%s)!" - #, c-format, boost-format msgid "You are going to delete %u file from printer. Are you sure to continue?" msgid_plural "" @@ -5802,6 +5790,25 @@ msgstr "Neueste Version: " msgid "Not for now" msgstr "Nicht jetzt" +msgid "Server Exception" +msgstr "" + +msgid "" +"The server is unable to respond. Please click the link below to check the " +"server status." +msgstr "" + +msgid "" +"If the server is in a fault state, you can temporarily use offline printing " +"or local network printing." +msgstr "" + +msgid "How to use LAN only mode" +msgstr "" + +msgid "Don't show this dialog again" +msgstr "" + msgid "3D Mouse disconnected." msgstr "3D-Maus nicht angeschlossen." @@ -6538,6 +6545,10 @@ msgstr "Als Projekt öffnen" msgid "Import geometry only" msgstr "Nur Geometrie importieren" +msgid "" +"This option can be changed later in preferences, under 'Load Behaviour'." +msgstr "" + msgid "Only one G-code file can be opened at the same time." msgstr "Es kann immer nur eine G-Code-Datei gleichzeitig geöffnet werden." @@ -6984,6 +6995,24 @@ msgstr "Web-Links mit OrcaSlicer verknüpfen" msgid "Associate URLs to OrcaSlicer" msgstr "URLs mit OrcaSlicer verknüpfen" +msgid "Load All" +msgstr "" + +msgid "Ask When Relevant" +msgstr "" + +msgid "Always Ask" +msgstr "" + +msgid "Load Geometry Only" +msgstr "" + +msgid "Load Behaviour" +msgstr "" + +msgid "Should printer/filament/process settings be loaded when opening a .3mf?" +msgstr "" + msgid "Maximum recent projects" msgstr "Höchstanzahl an letzten Projekten" @@ -7566,6 +7595,9 @@ msgstr "Den Gerätenamen ändern" msgid "Bind with Pin Code" msgstr "Mit Pin-Code verbinden" +msgid "Bind with Access Code" +msgstr "" + msgid "Send to Printer SD card" msgstr "An MicroSD-Karte des Druckers senden" @@ -7886,6 +7918,81 @@ msgstr "" "auf die leere Position der Bauplatte klicken und \"Primitiv hinzufügen\"-" ">\"Timelapse Wischturm\" wählen." +msgid "" +"A copy of the current system preset will be created, which will be detached " +"from the system preset." +msgstr "" +"Es wird eine Kopie der aktuellen Systemvoreinstellung erstellt, die von der " +"Systemvoreinstellung abgekoppelt wird." + +msgid "" +"The current custom preset will be detached from the parent system preset." +msgstr "" +"Die aktuelle benutzerdefinierte Voreinstellung wird von der übergeordneten " +"Systemvoreinstellung abgekoppelt." + +msgid "Modifications to the current profile will be saved." +msgstr "Änderungen am aktuellen Profil werden gespeichert." + +msgid "" +"This action is not revertible.\n" +"Do you want to proceed?" +msgstr "" + +msgid "Detach preset" +msgstr "Voreinstellung abkoppeln" + +msgid "This is a default preset." +msgstr "Das ist ein Standardvoreinstellung." + +msgid "This is a system preset." +msgstr "Das ist eine Systemvoreinstellung." + +msgid "Current preset is inherited from the default preset." +msgstr "Aktuelle Voreinstellung ist von der Standardvoreinstellung abgeleitet." + +msgid "Current preset is inherited from" +msgstr "Aktuelle Voreinstellung ist abgeleitet von" + +msgid "It can't be deleted or modified." +msgstr "Es kann nicht gelöscht oder geändert werden." + +msgid "" +"Any modifications should be saved as a new preset inherited from this one." +msgstr "" +"Alle Änderungen sollten als neue Voreinstellung gespeichert werden, die von dieser " +"abgeleitet ist." + +msgid "To do that please specify a new name for the preset." +msgstr "Bitte geben Sie einen neuen Namen für die Voreinstellung an." + +msgid "Additional information:" +msgstr "Zusätzliche Informationen:" + +msgid "vendor" +msgstr "Hersteller" + +msgid "printer model" +msgstr "Druckermodell" + +msgid "default print profile" +msgstr "Standard-Druckprofil" + +msgid "default filament profile" +msgstr "Standard-Filamentprofil" + +msgid "default SLA material profile" +msgstr "Standard-SLA-Materialprofil" + +msgid "default SLA print profile" +msgstr "Standard-SLA-Druckprofil" + +msgid "full profile name" +msgstr "vollständiger Profilname" + +msgid "symbolic profile name" +msgstr "symbolischer Profilname" + msgid "Line width" msgstr "Breite der Linie" @@ -7983,6 +8090,12 @@ msgstr "Post-Processing Scripts" msgid "Notes" msgstr "Notizen" +msgid "Dependencies" +msgstr "Abhängigkeiten" + +msgid "Profile dependencies" +msgstr "Profilabhängigkeiten" + msgid "Frequent" msgstr "Häufig" @@ -9120,21 +9233,22 @@ msgstr "Live-Ansicht anzeigen" msgid "Confirm and Update Nozzle" msgstr "Bestätigen und Düse aktualisieren" -msgid "LAN Connection Failed (Sending print file)" -msgstr "LAN-Verbindung fehlgeschlagen (Senden einer Druckdatei)" - -msgid "" -"Step 1, please confirm Orca Slicer and your printer are in the same LAN." +msgid "Connect the printer using IP and access code" msgstr "" -"Schritt 1: Vergewissern Sie sich, dass Orca Slicer und Ihr Drucker sich im " -"selben LAN befinden." msgid "" -"Step 2, if the IP and Access Code below are different from the actual values " +"Step 1. Please confirm Orca Slicer and your printer are in the same LAN." +msgstr "" + +msgid "" +"Step 2. If the IP and Access Code below are different from the actual values " "on your printer, please correct them." msgstr "" -"Schritt 2: Wenn die IP und der Zugriffscode unten von den tatsächlichen " -"Werten Ihres Druckers abweichen, korrigieren Sie diese bitte." + +msgid "" +"Step 3. Please obtain the device SN from the printer side; it is usually " +"found in the device information on the printer screen." +msgstr "" msgid "IP" msgstr "IP" @@ -9142,17 +9256,38 @@ msgstr "IP" msgid "Access Code" msgstr "Zugangscode" +msgid "Printer model" +msgstr "" + +msgid "Printer name" +msgstr "" + msgid "Where to find your printer's IP and Access Code?" msgstr "Wo finde ich die IP-Adresse und den Zugriffscode meines Druckers?" -msgid "Step 3: Ping the IP address to check for packet loss and latency." -msgstr "Schritt 3: Pingen Sie die IP-Adresse, um Paketverlust und Latenz zu " +msgid "Connect" +msgstr "" -msgid "Test" -msgstr "Test" +msgid "Manual Setup" +msgstr "" -msgid "IP and Access Code Verified! You may close the window" -msgstr "IP und Zugriffscode verifiziert! Sie können das Fenster schließen" +msgid "connecting..." +msgstr "" + +msgid "Failed to connect to printer." +msgstr "" + +msgid "Failed to publish login request." +msgstr "" + +msgid "The printer has already been bound." +msgstr "" + +msgid "The printer mode is incorrect, please switch to LAN Only." +msgstr "" + +msgid "Connecting to printer... The dialog will close later" +msgstr "" msgid "Connection failed, please double check IP and Access Code" msgstr "Verbindung fehlgeschlagen, bitte überprüfen Sie IP und Zugriffscode" @@ -10197,46 +10332,45 @@ msgstr "Obere und untere Oberflächen" msgid "Nowhere" msgstr "Nirgendwo" -msgid "Force cooling for overhang and bridge" -msgstr "Zwangskühlung für Überhänge und Brücken" +msgid "Force cooling for overhangs and bridges" +msgstr "" msgid "" -"Enable this option to optimize part cooling fan speed for overhang and " -"bridge to get better cooling" +"Enable this option to allow adjustment of the part cooling fan speed for " +"specifically for overhangs, internal and external bridges. Setting the fan " +"speed specifically for these features can improve overall print quality and " +"reduce warping." msgstr "" -"Aktivieren Sie diese Option, um die Lüftergeschwindigkeit für Überhänge und " -"Brücken zu optimieren, um eine bessere Kühlung zu erreichen" -msgid "Fan speed for overhang" -msgstr "Lüftergeschwindigkeit für Überhänge" +msgid "Overhangs and external bridges fan speed" +msgstr "" msgid "" -"Force part cooling fan to be this speed when printing bridge or overhang " -"wall which has large overhang degree. Forcing cooling for overhang and " -"bridge can get better quality for these part" +"Use this part cooling fan speed when printing bridges or overhang walls with " +"an overhang threshold that exceeds the value set in the 'Overhangs cooling " +"threshold' parameter above. Increasing the cooling specifically for " +"overhangs and bridges can improve the overall print quality of these " +"features.\n" +"\n" +"Please note, this fan speed is clamped on the lower end by the minimum fan " +"speed threshold set above. It is also adjusted upwards up to the maximum fan " +"speed threshold when the minimum layer time threshold is not met." msgstr "" -"Erzwinge diese Lüftergeschwindigkeit beim Drucken von Brücken oder Wänden, " -"die einen großen Überhang aufweisen. Erzwungene Kühlung für Überhänge und " -"Brücken kann eine bessere Qualität für diese Abschnitte erzielen." -msgid "Cooling overhang threshold" -msgstr "Schwellenwert für die Kühlung von Überhängen" +msgid "Overhang cooling activation threshold" +msgstr "" -#, c-format +#, c-format, boost-format msgid "" -"Force cooling fan to be specific speed when overhang degree of printed part " -"exceeds this value. Expressed as percentage which indicates how much width " -"of the line without support from lower layer. 0% means forcing cooling for " -"all outer wall no matter how much overhang degree" +"When the overhang exceeds this specified threshold, force the cooling fan to " +"run at the 'Overhang Fan Speed' set below. This threshold is expressed as a " +"percentage, indicating the portion of each line's width that is unsupported " +"by the layer beneath it. Setting this value to 0% forces the cooling fan to " +"run for all outer walls, regardless of the overhang degree." msgstr "" -"Erzwingt eine bestimmte Lüftergeschwindigkeit, wenn der Winkel des Überhangs " -"des gedruckten Teils diesen Wert überschreitet. Dies wird als Prozentsatz " -"ausgedrückt, der angibt, wie groß die Breite der Linie ohne Unterstützung " -"durch die untere Schicht ist. 0%% bedeutet, dass die Kühlung für die gesamte " -"Außenwand erzwungen wird, unabhängig vom Winkel des Überhangs." -msgid "Bridge infill direction" -msgstr "Brückenfüllrichtung" +msgid "External bridge infill direction" +msgstr "" msgid "" "Bridging angle override. If left to zero, the bridging angle will be " @@ -10247,15 +10381,45 @@ msgstr "" "automatisch berechnet wird. Andernfalls wird der angegebene Winkel für " "externe Brücken verwendet. Verwenden Sie 180° für keinen Winkel." -msgid "Bridge density" -msgstr "Brückendichte" - -msgid "Density of external bridges. 100% means solid bridge. Default is 100%." +msgid "Internal bridge infill direction" +msgstr "" + +msgid "" +"Internal bridging angle override. If left to zero, the bridging angle will " +"be calculated automatically. Otherwise the provided angle will be used for " +"internal bridges. Use 180°for zero angle.\n" +"\n" +"It is recommended to leave it at 0 unless there is a specific model need not " +"to." +msgstr "" + +msgid "External bridge density" +msgstr "" + +msgid "" +"Controls the density (spacing) of external bridge lines. 100% means solid " +"bridge. Default is 100%.\n" +"\n" +"Lower density external bridges can help improve reliability as there is more " +"space for air to circulate around the extruded bridge, improving its cooling " +"speed." +msgstr "" + +msgid "Internal bridge density" +msgstr "" + +msgid "" +"Controls the density (spacing) of internal bridge lines. 100% means solid " +"bridge. Default is 100%.\n" +"\n" +" Lower density internal bridges can help reduce top surface pillowing and " +"improve internal bridge reliability as there is more space for air to " +"circulate around the extruded bridge, improving its cooling speed. \n" +"\n" +"This option works particularly well when combined with the second internal " +"bridge over infill option, further improving internal bridging structure " +"before solid infill is extruded." msgstr "" -"Die Standard-Einstellung für Density of external bridges ist 100%, was " -"bedeutet, dass die Brücke als massives Material gedruckt wird. Diese " -"Einstellung kann jedoch je nach Druckanforderungen und Objekt variieren und " -"angepasst werden." msgid "Bridge flow ratio" msgstr "Brücken Flussrate" @@ -10334,14 +10498,10 @@ msgstr "Exakte Wand" msgid "" "Improve shell precision by adjusting outer wall spacing. This also improves " -"layer consistency.\n" -"Note: This setting will only take effect if the wall sequence is configured " -"to Inner-Outer" +"layer consistency." msgstr "" -"Verbessern Sie die Schalenpräzision, indem Sie den Abstand der äußeren Wand " -"anpassen. Dies verbessert auch die Schichtkonsistenz.\n" -"Hinweis: Diese Einstellung wird nur wirksam, wenn die Wandsequenz auf Inner-" -"Outer konfiguriert ist." +"Durch Anpassen des Abstands der Außenwand kann die Präzision der Schale " +"verbessert werden. Dadurch wird auch die Schichtkonsistenz verbessert." msgid "Only one wall on top surfaces" msgstr "Nur eine Wand auf den oberen Flächen" @@ -10656,12 +10816,24 @@ msgstr "Aufwärtskompatible Maschine" msgid "Compatible machine condition" msgstr "Kompatibler Maschinenzustand" +msgid "" +"A boolean expression using the configuration values of an active printer " +"profile. If this expression evaluates to true, this profile is considered " +"compatible with the active printer profile." +msgstr "" + msgid "Compatible process profiles" msgstr "Kompatible Prozessprofile" msgid "Compatible process profiles condition" msgstr "Bedingung für kompatible Prozessprofile" +msgid "" +"A boolean expression using the configuration values of an active print " +"profile. If this expression evaluates to true, this profile is considered " +"compatible with the active print profile." +msgstr "" + msgid "Print sequence, layer by layer or object by object" msgstr "Druckreihenfolge, Schicht für Schicht oder Objekt für Objekt" @@ -10761,8 +10933,8 @@ msgstr "" "reduziert. Brücken können in der Regel direkt ohne Stützen gedruckt werden, " "wenn diese nicht sehr lang sind." -msgid "Thick bridges" -msgstr "Dicke Brücken" +msgid "Thick external bridges" +msgstr "" msgid "" "If enabled, bridges are more reliable, can bridge longer distances, but may " @@ -10786,66 +10958,87 @@ msgstr "" "wird normalerweise empfohlen, diese Funktion zu aktivieren. Wenn Sie jedoch " "große Düsen verwenden, sollten Sie diese Funktion deaktivieren." -msgid "Filter out small internal bridges (beta)" -msgstr "Kleine interne Brücken herausfiltern (Beta)" +msgid "Extra bridge layers (beta)" +msgstr "" msgid "" -"This option can help reducing pillowing on top surfaces in heavily slanted " -"or curved models.\n" +"This option enables the generation of an extra bridge layer over internal " +"and/or external bridges.\n" +"\n" +"Extra bridge layers help improve bridge appearance and reliability, as the " +"solid infill is better supported. This is especially useful in fast " +"printers, where the bridge and solid infill speeds vary greatly. The extra " +"bridge layer results in reduced pillowing on top surfaces, as well as " +"reduced separation of the external bridge layer from its surrounding " +"perimeters.\n" +"\n" +"It is generally recommended to set this to at least 'External bridge only', " +"unless specific issues with the sliced model are found.\n" +"\n" +"Options:\n" +"1. Disabled - does not generate second bridge layers. This is the default " +"and is set for compatibility purposes.\n" +"2. External bridge only - generates second bridge layers for external-facing " +"bridges only. Please note that small bridges that are shorter or narrower " +"than the set number of perimeters will be skipped as they would not benefit " +"from a second bridge layer. If generated, the second bridge layer will be " +"extruded parallel to the first bridge layer to reinforce the bridge " +"strength.\n" +"3. Internal bridge only - generates second bridge layers for internal " +"bridges over sparse infill only. Please note that the internal bridges count " +"towards the top shell layer count of your model. The second internal bridge " +"layer will be extruded as close to perpendicular to the first as possible. " +"If multiple regions in the same island, with varying bridge angles are " +"present, the last region of that island will be selected as the angle " +"reference.\n" +"4. Apply to all - generates second bridge layers for both internal and " +"external-facing bridges\n" +msgstr "" + +msgid "Disabled" +msgstr "Deaktiviert" + +msgid "External bridge only" +msgstr "" + +msgid "Internal bridge only" +msgstr "" + +msgid "Apply to all" +msgstr "" + +msgid "Filter out small internal bridges" +msgstr "" + +msgid "" +"This option can help reduce pillowing on top surfaces in heavily slanted or " +"curved models.\n" "\n" "By default, small internal bridges are filtered out and the internal solid " "infill is printed directly over the sparse infill. This works well in most " "cases, speeding up printing without too much compromise on top surface " "quality. \n" "\n" -"However, in heavily slanted or curved models especially where too low sparse " -"infill density is used, this may result in curling of the unsupported solid " -"infill, causing pillowing.\n" +"However, in heavily slanted or curved models, especially where too low a " +"sparse infill density is used, this may result in curling of the unsupported " +"solid infill, causing pillowing.\n" "\n" -"Disabling this option will print internal bridge layer over slightly " -"unsupported internal solid infill. The options below control the amount of " -"filtering, i.e. the amount of internal bridges created.\n" +"Enabling limited filtering or no filtering will print internal bridge layer " +"over slightly unsupported internal solid infill. The options below control " +"the sensitivity of the filtering, i.e. they control where internal bridges " +"are created.\n" "\n" -"Filter - enable this option. This is the default behavior and works well in " -"most cases.\n" +"1. Filter - enables this option. This is the default behavior and works well " +"in most cases.\n" "\n" -"Limited filtering - creates internal bridges on heavily slanted surfaces, " -"while avoiding creating unnecessary internal bridges. This works well for " -"most difficult models.\n" +"2. Limited filtering - creates internal bridges on heavily slanted surfaces " +"while avoiding unnecessary bridges. This works well for most difficult " +"models.\n" "\n" -"No filtering - creates internal bridges on every potential internal " -"overhang. This option is useful for heavily slanted top surface models. " -"However, in most cases it creates too many unnecessary bridges." +"3. No filtering - creates internal bridges on every potential internal " +"overhang. This option is useful for heavily slanted top surface models; " +"however, in most cases, it creates too many unnecessary bridges." msgstr "" -"Diese Option kann dazu beitragen, das Pillowing auf den oberen Oberflächen " -"in stark geneigten oder gekrümmten Modellen zu reduzieren.\n" -"\n" -"Standardmäßig werden kleine interne Brücken herausgefiltert und das interne " -"feste Infill wird direkt über dem dünnen Infill gedruckt. Dies funktioniert " -"in den meisten Fällen gut und beschleunigt den Druck, ohne die Qualität der " -"oberen Oberfläche zu beeinträchtigen.\n" -"\n" -"In stark geneigten oder gekrümmten Modellen, insbesondere wenn eine zu " -"geringe Dichte des dünnen Infill verwendet wird, kann dies jedoch zu einem " -"Kräuseln des nicht unterstützten festen Infill führen, was zu Pillowing " -"führt.\n" -"\n" -"Wenn diese Option deaktiviert ist, wird die interne Brückenschicht über dem " -"leicht nicht unterstützten internen festen Infill gedruckt. Die folgenden " -"Optionen steuern die Filterung, d. h. die Anzahl der erstellten internen " -"Brücken.\n" -"\n" -"Filter - aktivieren Sie diese Option. Dies ist das Standardverhalten und " -"funktioniert in den meisten Fällen gut.\n" -"\n" -"Begrenzte Filterung - erstellt interne Brücken auf stark geneigten " -"Oberflächen, vermeidet jedoch das Erstellen unnötiger interner Brücken. Dies " -"funktioniert für die meisten schwierigen Modelle gut.\n" -"\n" -"Keine Filterung - erstellt interne Brücken an jedem potenziellen internen " -"Überhang. Diese Option ist für stark geneigte obere Oberflächenmodelle " -"nützlich. In den meisten Fällen erstellt sie jedoch zu viele unnötige " -"Brücken." msgid "Filter" msgstr "Filter" @@ -11848,6 +12041,9 @@ msgstr "Linienmuster für innere Füllung." msgid "Grid" msgstr "Gitternetz" +msgid "2D Lattice" +msgstr "" + msgid "Line" msgstr "Linie" @@ -11878,6 +12074,25 @@ msgstr "Blitz" msgid "Cross Hatch" msgstr "Kreuzschraffur" +msgid "Quarter Cubic" +msgstr "" + +msgid "Lattice angle 1" +msgstr "" + +msgid "" +"The angle of the first set of 2D lattice elements in the Z direction. Zero " +"is vertical." +msgstr "" + +msgid "Lattice angle 2" +msgstr "" + +msgid "" +"The angle of the second set of 2D lattice elements in the Z direction. Zero " +"is vertical." +msgstr "" + msgid "Sparse infill anchor length" msgstr "Länge des Infill-Ankers" @@ -12107,14 +12322,25 @@ msgid "Support interface fan speed" msgstr "Stützstruktur-Schnittstelle" msgid "" -"This fan speed is enforced during all support interfaces, to be able to " -"weaken their bonding with a high fan speed.\n" -"Set to -1 to disable this override.\n" -"Can only be overridden by disable_fan_first_layers." +"This part cooling fan speed is applied when printing support interfaces. " +"Setting this parameter to a higher than regular speed reduces the layer " +"binding strength between supports and the supported part, making them easier " +"to separate.\n" +"Set to -1 to disable it.\n" +"This setting is overridden by disable_fan_first_layers." +msgstr "" + +msgid "Internal bridges fan speed" +msgstr "" + +msgid "" +"The part cooling fan speed used for all internal bridges. Set to -1 to use " +"the overhang fan speed settings instead.\n" +"\n" +"Reducing the internal bridges fan speed, compared to your regular fan speed, " +"can help reduce part warping due to excessive cooling applied over a large " +"surface for a prolonged period of time." msgstr "" -"Diese Lüftergeschwindigkeit wird während der Stützstruktur verwendet.\n" -"Setzen Sie es auf -1, um dies zu deaktivieren.\n" -"Kann nur durch disable_fan_first_layers außer Kraft gesetzt werden." msgid "" "Randomly jitter while printing the wall, so that the surface has a rough " @@ -12159,6 +12385,59 @@ msgstr "Fuzzy Skin auf die erste Schicht anwenden" msgid "Whether to apply fuzzy skin on the first layer" msgstr "Ob Fuzzy Skin auf die erste Schicht angewendet werden soll" +msgid "Fuzzy skin noise type" +msgstr "" + +msgid "" +"Noise type to use for fuzzy skin generation.\n" +"Classic: Classic uniform random noise.\n" +"Perlin: Perlin noise, which gives a more consistent texture.\n" +"Billow: Similar to perlin noise, but clumpier.\n" +"Ridged Multifractal: Ridged noise with sharp, jagged features. Creates " +"marble-like textures.\n" +"Voronoi: Divides the surface into voronoi cells, and displaces each one by a " +"random amount. Creates a patchwork texture." +msgstr "" + +msgid "Classic" +msgstr "Klassisch" + +msgid "Perlin" +msgstr "" + +msgid "Billow" +msgstr "" + +msgid "Ridged Multifractal" +msgstr "" + +msgid "Voronoi" +msgstr "" + +msgid "Fuzzy skin feature size" +msgstr "" + +msgid "" +"The base size of the coherent noise features, in mm. Higher values will " +"result in larger features." +msgstr "" + +msgid "Fuzzy Skin Noise Octaves" +msgstr "" + +msgid "" +"The number of octaves of coherent noise to use. Higher values increase the " +"detail of the noise, but also increase computation time." +msgstr "" + +msgid "Fuzzy skin noise persistence" +msgstr "" + +msgid "" +"The decay rate for higher octaves of the coherent noise. Lower values will " +"result in smoother noise." +msgstr "" + msgid "Filter out tiny gaps" msgstr "Filtert winzige Lücken aus" @@ -12658,6 +12937,14 @@ msgstr "Abstand der Glättlinien" msgid "The distance between the lines of ironing" msgstr "Der Abstand zwischen den Linien beim Glätten" +msgid "Ironing inset" +msgstr "" + +msgid "" +"The distance to keep from the edges. A value of 0 sets this to half of the " +"nozzle diameter" +msgstr "" + msgid "Ironing speed" msgstr "Geschwindigkeit beim Glätten" @@ -12917,17 +13204,18 @@ msgid "" "Default value of 3 works well for most cases. If your printer is stuttering, " "increase this value to reduce the number of adjustments made\n" "\n" -"Allowed values: 1-5" +"Allowed values: 0.5-5" +msgstr "" + +msgid "Apply only on external features" +msgstr "" + +msgid "" +"Applies extrusion rate smoothing only on external perimeters and overhangs. " +"This can help reduce artefacts due to sharp speed transitions on externally " +"visible overhangs without impacting the print speed of features that will " +"not be visible to the user." msgstr "" -"Ein niedrigerer Wert führt zu glatteren Extrusionsratenübergängen. Dies " -"führt jedoch zu einer deutlich größeren G-Code-Datei und mehr Anweisungen " -"für den Drucker, die verarbeitet werden müssen. \n" -"\n" -"Der Standardwert von 3 funktioniert für die meisten Fälle gut. Wenn Ihr " -"Drucker stottert, erhöhen Sie diesen Wert, um die Anzahl der Anpassungen zu " -"reduzieren\n" -"\n" -"Zulässige Werte: 1-5" msgid "Minimum speed for part cooling fan" msgstr "Mindestdrehzahl der Bauteilkühlung" @@ -12960,13 +13248,10 @@ msgid "Min print speed" msgstr "Minimale Druckgeschwindigkeit" msgid "" -"The minimum printing speed that the printer will slow down to to attempt to " -"maintain the minimum layer time above, when slow down for better layer " -"cooling is enabled." +"The minimum print speed to which the printer slows down to maintain the " +"minimum layer time defined above when the slowdown for better layer cooling " +"is enabled." msgstr "" -"Die minimale Druckgeschwindigkeit, die der Drucker einhält, um zu versuchen, " -"die minimale Schichtzeit einzuhalten, wenn die Verlangsamung für eine " -"bessere Schichtkühlung aktiviert ist." msgid "Diameter of nozzle" msgstr "Düsendurchmesser" @@ -13743,9 +14028,6 @@ msgstr "" "Überschneidungen kommen. Um dies zu vermeiden, erhöhen Sie den Wert der " "Umrandungsdistanz.\n" -msgid "Disabled" -msgstr "Deaktiviert" - msgid "Enabled" msgstr "Aktiviert" @@ -14047,25 +14329,22 @@ msgid "Enable support generation." msgstr "Erzeugung von Stützstrukturen aktivieren." msgid "" -"normal(auto) and tree(auto) is used to generate support automatically. If " -"normal(manual) or tree(manual) is selected, only support enforcers are " +"Normal (auto) and Tree (auto) is used to generate support automatically. If " +"Normal (manual) or Tree (manual) is selected, only support enforcers are " "generated" msgstr "" -"Normal (auto) und Baum (auto) werden verwendet, um automatisch " -"Stützstrukturen zu generieren. Wenn Normal (manuell) oder Baum (manuell) " -"ausgewählt ist, werden nur Stützerzwinger erzeugt." -msgid "normal(auto)" -msgstr "Normal (auto)" +msgid "Normal (auto)" +msgstr "" -msgid "tree(auto)" -msgstr "Baum (auto)" +msgid "Tree (auto)" +msgstr "" -msgid "normal(manual)" -msgstr "Normal (manuell)" +msgid "Normal (manual)" +msgstr "" -msgid "tree(manual)" -msgstr "Baum (manuell)" +msgid "Tree (manual)" +msgstr "" msgid "Support/object xy distance" msgstr "Stützen/Objekt XY-Abstand" @@ -14300,6 +14579,15 @@ msgstr "" "Für Überhänge, deren Neigungswinkel unter diesem Wert liegt, werden Stützen " "generiert." +msgid "Threshold overlap" +msgstr "" + +msgid "" +"If threshold angle is zero, support will be generated for overhangs whose " +"overlap is below the threshold. The smaller this value is, the steeper the " +"overhang that can be printed without support." +msgstr "" + msgid "Tree support branch angle" msgstr "Baumstütze Astwinkel" @@ -14900,9 +15188,6 @@ msgstr "" "wobei für sehr dünne Bereiche die Lückenfüllung verwendet wird. Die Arachne-" "Engine erzeugt Wände mit variabler Extrusionsbreite." -msgid "Classic" -msgstr "Klassisch" - msgid "Arachne" msgstr "Arachne" @@ -15349,26 +15634,26 @@ msgid "Minute" msgstr "Minute" msgid "Print preset name" -msgstr "Name des Druckvorgaben" +msgstr "Name der Druckvoreinstellungen" msgid "Name of the print preset used for slicing." -msgstr "Name der Druckvorgabe, die zum Slicen verwendet wird." +msgstr "Name der Druckvoreinstellung, die zum Slicen verwendet wird." msgid "Filament preset name" -msgstr "Name des Filamentvorgaben" +msgstr "Name der Filamentvoreinstellungen" msgid "" "Names of the filament presets used for slicing. The variable is a vector " "containing one name for each extruder." msgstr "" -"Name der Filamentvorgabe, die zum Slicen verwendet wird. Die Variable ist " +"Name der Filamentvoreinstellung, die zum Slicen verwendet wird. Die Variable ist " "ein Vektor, der einen Namen für jeden Extruder enthält." msgid "Printer preset name" -msgstr "Name des Druckervorgaben" +msgstr "Name der Druckervoreinstellungen" msgid "Name of the printer preset used for slicing." -msgstr "Name der Druckervorgabe, die zum Slicen verwendet wird." +msgstr "Name der Druckervoreinstellung, die zum Slicen verwendet wird." msgid "Physical printer name" msgstr "Name des physischen Druckers" @@ -15639,10 +15924,10 @@ msgstr "" msgid "The name is the same as another existing preset name" msgstr "" -"Der Name ist der gleiche wie ein anderer vorhandener Voreinstellungsname" +"Der Name existiert bereits bei einer anderen Voreinstellung" msgid "create new preset failed." -msgstr "erstellen einer neuen Voreinstellung fehlgeschlagen." +msgstr "Erstellen einer neuen Voreinstellung ist fehlgeschlagen." msgid "" "Are you sure to cancel the current calibration and return to the home page?" @@ -15709,12 +15994,12 @@ msgid "Please select at least one filament for calibration" msgstr "Bitte wählen Sie mindestens ein Filament zur Kalibrierung aus" msgid "Flow rate calibration result has been saved to preset" -msgstr "Flussraten-Kalibrierungsergebnis wurde in Voreinstellung gespeichert" +msgstr "Flussraten-Kalibrierungsergebnis wurde in einer Voreinstellung gespeichert" msgid "Max volumetric speed calibration result has been saved to preset" msgstr "" "Maximale volumetrische Geschwindigkeitskalibrierungsergebnis wurde in " -"Voreinstellung gespeichert" +"einer Voreinstellung gespeichert" msgid "When do you need Flow Dynamics Calibration" msgstr "Wann benötigen Sie die Kalibrierung der Flussdynamik" @@ -16512,7 +16797,7 @@ msgstr "" msgid "Some existing presets have failed to be created, as follows:\n" msgstr "" -"Einige vorhandene Voreinstellungen konnten nicht erstellt werden, wie " +"Einige vorhandenen Voreinstellungen konnten nicht erstellt werden, wie " "folgt:\n" msgid "" @@ -16529,7 +16814,7 @@ msgid "" msgstr "" "Wir würden die Voreinstellungen als \"Hersteller Typ Seriennummer @Drucker, " "den Sie ausgewählt haben\" umbenennen. \n" -"Um Voreinstellungen für weitere Drucker hinzuzufügen, gehen Sie bitte zur " +"Um weitere Voreinstellungen für weitere Drucker hinzuzufügen, gehen Sie bitte zur " "Druckerauswahl" msgid "Create Printer/Nozzle" @@ -16627,7 +16912,7 @@ msgid "" "You have not yet chosen which printer preset to create based on. Please " "choose the vendor and model of the printer" msgstr "" -"Sie haben noch nicht ausgewählt, welche Druckervoreinstellung erstellt " +"Sie haben noch nicht ausgewählt welche Druckervoreinstellung erstellt " "werden soll. Bitte wählen Sie den Hersteller und das Modell des Druckers" msgid "" @@ -16652,14 +16937,14 @@ msgid "" "\tCancel: Do not create a preset, return to the creation interface." msgstr "" "Die von Ihnen erstellte Druckervoreinstellung hat bereits eine " -"Voreinstellung mit dem gleichen Namen. Möchten Sie es überschreiben?\n" +"Voreinstellung mit dem gleichen Namen. Möchten Sie diese überschreiben?\n" "\tJa: Überschreiben Sie die Druckervoreinstellung mit dem gleichen Namen, " -"und Filament- und Prozessvoreinstellungen mit dem gleichen Voreinstellungs- " -"und Filament- und Prozessvornamen werden neu erstellt \n" -"und Filament- und Prozessvoreinstellungen ohne den gleichen " -"Voreinstellungsnamen werden beibehalten.\n" -"\tAbbrechen: Erstellen Sie keine Voreinstellung, kehren Sie zur Erstellungs-" -"Schnittstelle zurück." +"Filament- und Prozessvoreinstellungen mit dem gleichen Voreinstellungs- " +"Filament- und Prozessnamen werden neu erstellt \n" +"Filament- und Prozessvoreinstellungen ohne den gleichen " +"Voreinstellungsnamen bleiben erhalten.\n" +"\tAbbrechen: Es wird keine neue Voreinstellung erzeugt, zurück zur Einstellungs-" +"Seite wechseln." msgid "You need to select at least one filament preset." msgstr "Sie müssen mindestens eine Filament-Voreinstellung auswählen." @@ -16978,6 +17263,9 @@ msgstr "Drucker" msgid "Print Host upload" msgstr "Hochladen zum Druck-Host" +msgid "Test" +msgstr "Test" + msgid "Could not get a valid Printer Host reference" msgstr "Konnte keine gültige Referenz zum Druck-Host erhalten" @@ -17868,6 +18156,250 @@ msgstr "" "wie z.B. ABS, durch eine entsprechende Erhöhung der Heizbetttemperatur die " "Wahrscheinlichkeit von Verwerfungen verringert werden kann." +#~ msgid "Scale all" +#~ msgstr "Alle skalieren" + +#~ msgid "Orca Slicer" +#~ msgstr "Orca Slicer" + +#~ msgid "Current Cabin humidity" +#~ msgstr "Aktuelle Kabinenfeuchtigkeit" + +#~ msgid "Stopped." +#~ msgstr "Gestoppt." + +#, c-format, boost-format +#~ msgid "Connect failed [%d]!" +#~ msgstr "Verbindung fehlgeschlagen [%d]!" + +#~ msgid "Initialize failed (Device connection not ready)!" +#~ msgstr "" +#~ "Die Initialisierung ist fehlgeschlagen (Geräteverbindung nicht bereit)!" + +#~ msgid "Initialize failed (Storage unavailable, insert SD card.)!" +#~ msgstr "" +#~ "Initialisierung fehlgeschlagen (Speicher nicht verfügbar, MicroSD-Karte " +#~ "einlegen.)!" + +#, c-format, boost-format +#~ msgid "Initialize failed (%s)!" +#~ msgstr "Initialisierung ist fehlgeschlagen (%s)!" + +#~ msgid "LAN Connection Failed (Sending print file)" +#~ msgstr "LAN-Verbindung fehlgeschlagen (Senden einer Druckdatei)" + +#~ msgid "" +#~ "Step 1, please confirm Orca Slicer and your printer are in the same LAN." +#~ msgstr "" +#~ "Schritt 1: Vergewissern Sie sich, dass Orca Slicer und Ihr Drucker sich " +#~ "im selben LAN befinden." + +#~ msgid "" +#~ "Step 2, if the IP and Access Code below are different from the actual " +#~ "values on your printer, please correct them." +#~ msgstr "" +#~ "Schritt 2: Wenn die IP und der Zugriffscode unten von den tatsächlichen " +#~ "Werten Ihres Druckers abweichen, korrigieren Sie diese bitte." + +#~ msgid "Step 3: Ping the IP address to check for packet loss and latency." +#~ msgstr "" +#~ "Schritt 3: Pingen Sie die IP-Adresse, um Paketverlust und Latenz zu " + +#~ msgid "IP and Access Code Verified! You may close the window" +#~ msgstr "IP und Zugriffscode verifiziert! Sie können das Fenster schließen" + +#~ msgid "Force cooling for overhang and bridge" +#~ msgstr "Zwangskühlung für Überhänge und Brücken" + +#~ msgid "" +#~ "Enable this option to optimize part cooling fan speed for overhang and " +#~ "bridge to get better cooling" +#~ msgstr "" +#~ "Aktivieren Sie diese Option, um die Lüftergeschwindigkeit für Überhänge " +#~ "und Brücken zu optimieren, um eine bessere Kühlung zu erreichen" + +#~ msgid "Fan speed for overhang" +#~ msgstr "Lüftergeschwindigkeit für Überhänge" + +#~ msgid "" +#~ "Force part cooling fan to be this speed when printing bridge or overhang " +#~ "wall which has large overhang degree. Forcing cooling for overhang and " +#~ "bridge can get better quality for these part" +#~ msgstr "" +#~ "Erzwinge diese Lüftergeschwindigkeit beim Drucken von Brücken oder " +#~ "Wänden, die einen großen Überhang aufweisen. Erzwungene Kühlung für " +#~ "Überhänge und Brücken kann eine bessere Qualität für diese Abschnitte " +#~ "erzielen." + +#~ msgid "Cooling overhang threshold" +#~ msgstr "Schwellenwert für die Kühlung von Überhängen" + +#, c-format +#~ msgid "" +#~ "Force cooling fan to be specific speed when overhang degree of printed " +#~ "part exceeds this value. Expressed as percentage which indicates how much " +#~ "width of the line without support from lower layer. 0% means forcing " +#~ "cooling for all outer wall no matter how much overhang degree" +#~ msgstr "" +#~ "Erzwingt eine bestimmte Lüftergeschwindigkeit, wenn der Winkel des " +#~ "Überhangs des gedruckten Teils diesen Wert überschreitet. Dies wird als " +#~ "Prozentsatz ausgedrückt, der angibt, wie groß die Breite der Linie ohne " +#~ "Unterstützung durch die untere Schicht ist. 0%% bedeutet, dass die " +#~ "Kühlung für die gesamte Außenwand erzwungen wird, unabhängig vom Winkel " +#~ "des Überhangs." + +#~ msgid "Bridge infill direction" +#~ msgstr "Brückenfüllrichtung" + +#~ msgid "Bridge density" +#~ msgstr "Brückendichte" + +#~ msgid "" +#~ "Density of external bridges. 100% means solid bridge. Default is 100%." +#~ msgstr "" +#~ "Die Standard-Einstellung für Density of external bridges ist 100%, was " +#~ "bedeutet, dass die Brücke als massives Material gedruckt wird. Diese " +#~ "Einstellung kann jedoch je nach Druckanforderungen und Objekt variieren " +#~ "und angepasst werden." + +#~ msgid "" +#~ "Improve shell precision by adjusting outer wall spacing. This also " +#~ "improves layer consistency.\n" +#~ "Note: This setting will only take effect if the wall sequence is " +#~ "configured to Inner-Outer" +#~ msgstr "" +#~ "Verbessern Sie die Schalenpräzision, indem Sie den Abstand der äußeren " +#~ "Wand anpassen. Dies verbessert auch die Schichtkonsistenz.\n" +#~ "Hinweis: Diese Einstellung wird nur wirksam, wenn die Wandsequenz auf " +#~ "Inner-Outer konfiguriert ist." + +#~ msgid "Thick bridges" +#~ msgstr "Dicke Brücken" + +#~ msgid "Filter out small internal bridges (beta)" +#~ msgstr "Kleine interne Brücken herausfiltern (Beta)" + +#~ msgid "" +#~ "This option can help reducing pillowing on top surfaces in heavily " +#~ "slanted or curved models.\n" +#~ "\n" +#~ "By default, small internal bridges are filtered out and the internal " +#~ "solid infill is printed directly over the sparse infill. This works well " +#~ "in most cases, speeding up printing without too much compromise on top " +#~ "surface quality. \n" +#~ "\n" +#~ "However, in heavily slanted or curved models especially where too low " +#~ "sparse infill density is used, this may result in curling of the " +#~ "unsupported solid infill, causing pillowing.\n" +#~ "\n" +#~ "Disabling this option will print internal bridge layer over slightly " +#~ "unsupported internal solid infill. The options below control the amount " +#~ "of filtering, i.e. the amount of internal bridges created.\n" +#~ "\n" +#~ "Filter - enable this option. This is the default behavior and works well " +#~ "in most cases.\n" +#~ "\n" +#~ "Limited filtering - creates internal bridges on heavily slanted surfaces, " +#~ "while avoiding creating unnecessary internal bridges. This works well for " +#~ "most difficult models.\n" +#~ "\n" +#~ "No filtering - creates internal bridges on every potential internal " +#~ "overhang. This option is useful for heavily slanted top surface models. " +#~ "However, in most cases it creates too many unnecessary bridges." +#~ msgstr "" +#~ "Diese Option kann dazu beitragen, das Pillowing auf den oberen " +#~ "Oberflächen in stark geneigten oder gekrümmten Modellen zu reduzieren.\n" +#~ "\n" +#~ "Standardmäßig werden kleine interne Brücken herausgefiltert und das " +#~ "interne feste Infill wird direkt über dem dünnen Infill gedruckt. Dies " +#~ "funktioniert in den meisten Fällen gut und beschleunigt den Druck, ohne " +#~ "die Qualität der oberen Oberfläche zu beeinträchtigen.\n" +#~ "\n" +#~ "In stark geneigten oder gekrümmten Modellen, insbesondere wenn eine zu " +#~ "geringe Dichte des dünnen Infill verwendet wird, kann dies jedoch zu " +#~ "einem Kräuseln des nicht unterstützten festen Infill führen, was zu " +#~ "Pillowing führt.\n" +#~ "\n" +#~ "Wenn diese Option deaktiviert ist, wird die interne Brückenschicht über " +#~ "dem leicht nicht unterstützten internen festen Infill gedruckt. Die " +#~ "folgenden Optionen steuern die Filterung, d. h. die Anzahl der erstellten " +#~ "internen Brücken.\n" +#~ "\n" +#~ "Filter - aktivieren Sie diese Option. Dies ist das Standardverhalten und " +#~ "funktioniert in den meisten Fällen gut.\n" +#~ "\n" +#~ "Begrenzte Filterung - erstellt interne Brücken auf stark geneigten " +#~ "Oberflächen, vermeidet jedoch das Erstellen unnötiger interner Brücken. " +#~ "Dies funktioniert für die meisten schwierigen Modelle gut.\n" +#~ "\n" +#~ "Keine Filterung - erstellt interne Brücken an jedem potenziellen internen " +#~ "Überhang. Diese Option ist für stark geneigte obere Oberflächenmodelle " +#~ "nützlich. In den meisten Fällen erstellt sie jedoch zu viele unnötige " +#~ "Brücken." + +#~ msgid "" +#~ "This fan speed is enforced during all support interfaces, to be able to " +#~ "weaken their bonding with a high fan speed.\n" +#~ "Set to -1 to disable this override.\n" +#~ "Can only be overridden by disable_fan_first_layers." +#~ msgstr "" +#~ "Diese Lüftergeschwindigkeit wird während der Stützstruktur verwendet.\n" +#~ "Setzen Sie es auf -1, um dies zu deaktivieren.\n" +#~ "Kann nur durch disable_fan_first_layers außer Kraft gesetzt werden." + +#~ msgid "" +#~ "A lower value results in smoother extrusion rate transitions. However, " +#~ "this results in a significantly larger gcode file and more instructions " +#~ "for the printer to process. \n" +#~ "\n" +#~ "Default value of 3 works well for most cases. If your printer is " +#~ "stuttering, increase this value to reduce the number of adjustments made\n" +#~ "\n" +#~ "Allowed values: 1-5" +#~ msgstr "" +#~ "Ein niedrigerer Wert führt zu glatteren Extrusionsratenübergängen. Dies " +#~ "führt jedoch zu einer deutlich größeren G-Code-Datei und mehr Anweisungen " +#~ "für den Drucker, die verarbeitet werden müssen. \n" +#~ "\n" +#~ "Der Standardwert von 3 funktioniert für die meisten Fälle gut. Wenn Ihr " +#~ "Drucker stottert, erhöhen Sie diesen Wert, um die Anzahl der Anpassungen " +#~ "zu reduzieren\n" +#~ "\n" +#~ "Zulässige Werte: 1-5" + +#~ msgid "" +#~ "The minimum printing speed that the printer will slow down to to attempt " +#~ "to maintain the minimum layer time above, when slow down for better layer " +#~ "cooling is enabled." +#~ msgstr "" +#~ "Die minimale Druckgeschwindigkeit, die der Drucker einhält, um zu " +#~ "versuchen, die minimale Schichtzeit einzuhalten, wenn die Verlangsamung " +#~ "für eine bessere Schichtkühlung aktiviert ist." + +#~ msgid "" +#~ "normal(auto) and tree(auto) is used to generate support automatically. If " +#~ "normal(manual) or tree(manual) is selected, only support enforcers are " +#~ "generated" +#~ msgstr "" +#~ "Normal (auto) und Baum (auto) werden verwendet, um automatisch " +#~ "Stützstrukturen zu generieren. Wenn Normal (manuell) oder Baum (manuell) " +#~ "ausgewählt ist, werden nur Stützerzwinger erzeugt." + +#~ msgid "normal(auto)" +#~ msgstr "Normal (auto)" + +#~ msgid "tree(auto)" +#~ msgstr "Baum (auto)" + +#~ msgid "normal(manual)" +#~ msgstr "Normal (manuell)" + +#~ msgid "tree(manual)" +#~ msgstr "Baum (manuell)" + +#~ msgid ", ver: " +#~ msgstr ", Ver: " + #~ msgid "ShiftLeft mouse button" #~ msgstr "Umschalttaste + Linksklick" @@ -18896,13 +19428,6 @@ msgstr "" #~ msgid "Configuration package updated to " #~ msgstr "Konfigurationspaket aktualisiert auf " -#~ msgid "" -#~ "Improve shell precision by adjusting outer wall spacing. This also " -#~ "improves layer consistency." -#~ msgstr "" -#~ "Durch Anpassen des Abstands der Außenwand kann die Präzision der Schale " -#~ "verbessert werden. Dadurch wird auch die Schichtkonsistenz verbessert." - #~ msgid "" #~ "The minimum printing speed for the filament when slow down for better " #~ "layer cooling is enabled, when printing overhangs and when feature speeds " diff --git a/localization/i18n/en/OrcaSlicer_en.po b/localization/i18n/en/OrcaSlicer_en.po index 6b70c07fd6..08b4c3db46 100644 --- a/localization/i18n/en/OrcaSlicer_en.po +++ b/localization/i18n/en/OrcaSlicer_en.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-01-04 17:35+0100\n" +"POT-Creation-Date: 2025-02-14 23:42+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -2768,9 +2768,6 @@ msgstr "" msgid "About %s" msgstr "About %s" -msgid "Orca Slicer" -msgstr "" - msgid "OrcaSlicer is based on BambuStudio, PrusaSlicer, and SuperSlicer." msgstr "" @@ -2822,9 +2819,6 @@ msgstr "The input value should be greater than %1% and less than %2%" msgid "SN" msgstr "SN" -msgid "Setting AMS slot information while printing is not supported" -msgstr "Setting AMS slot information while printing is not supported" - msgid "Factors of Flow Dynamics Calibration" msgstr "Factors of Flow Dynamics Calibration" @@ -2837,6 +2831,9 @@ msgstr "Factor K" msgid "Factor N" msgstr "Factor N" +msgid "Setting AMS slot information while printing is not supported" +msgstr "Setting AMS slot information while printing is not supported" + msgid "Setting Virtual slot information while printing is not supported" msgstr "Setting Virtual slot information while printing is not supported" @@ -2957,8 +2954,8 @@ msgstr "Disable AMS" msgid "Print with the filament mounted on the back of chassis" msgstr "Print with filament on external spool" -msgid "Current Cabin humidity" -msgstr "Current Cabin humidity" +msgid "Current AMS humidity" +msgstr "" msgid "" "Please change the desiccant when it is too wet. The indicator may not " @@ -5015,8 +5012,8 @@ msgstr "" msgid "The printer has been logged out and cannot connect." msgstr "The printer has been logged out and cannot connect." -msgid "Stopped." -msgstr "Stopped." +msgid "Video Stopped." +msgstr "" msgid "LAN Connection Failed (Failed to start liveview)" msgstr "LAN Connection Failed (Failed to start liveview)" @@ -5107,10 +5104,6 @@ msgstr "Reload file list from printer." msgid "No printers." msgstr "No printers." -#, c-format, boost-format -msgid "Connect failed [%d]!" -msgstr "Connection failed [%d]!" - msgid "Loading file list..." msgstr "Loading file list..." @@ -5120,9 +5113,6 @@ msgstr "No files" msgid "Load failed" msgstr "Load failed" -msgid "Initialize failed (Device connection not ready)!" -msgstr "Initialization failed (Device connection not ready)!" - msgid "" "Browsing file in SD card is not supported in current firmware. Please update " "the printer firmware." @@ -5130,7 +5120,9 @@ msgstr "" "Browsing file in SD card is not supported in current firmware. Please update " "the printer firmware." -msgid "Initialize failed (Storage unavailable, insert SD card.)!" +msgid "" +"Please check if the SD card is inserted into the printer.\n" +"If it still cannot be read, you can try formatting the SD card." msgstr "" msgid "LAN Connection Failed (Failed to view sdcard)" @@ -5139,10 +5131,6 @@ msgstr "LAN Connection Failed (Failed to view sdcard)" msgid "Browsing file in SD card is not supported in LAN Only Mode." msgstr "Browsing file in SD card is not supported in LAN Only Mode." -#, c-format, boost-format -msgid "Initialize failed (%s)!" -msgstr "Initialization failed (%s)!" - #, c-format, boost-format msgid "You are going to delete %u file from printer. Are you sure to continue?" msgid_plural "" @@ -5575,6 +5563,25 @@ msgstr "Latest Version: " msgid "Not for now" msgstr "Not for now" +msgid "Server Exception" +msgstr "" + +msgid "" +"The server is unable to respond. Please click the link below to check the " +"server status." +msgstr "" + +msgid "" +"If the server is in a fault state, you can temporarily use offline printing " +"or local network printing." +msgstr "" + +msgid "How to use LAN only mode" +msgstr "" + +msgid "Don't show this dialog again" +msgstr "" + msgid "3D Mouse disconnected." msgstr "3D Mouse disconnected." @@ -6281,6 +6288,10 @@ msgstr "Open as project" msgid "Import geometry only" msgstr "Import geometry only" +msgid "" +"This option can be changed later in preferences, under 'Load Behaviour'." +msgstr "" + msgid "Only one G-code file can be opened at the same time." msgstr "Only one G-code file can be opened at a time." @@ -6704,6 +6715,24 @@ msgstr "" msgid "Associate URLs to OrcaSlicer" msgstr "" +msgid "Load All" +msgstr "" + +msgid "Ask When Relevant" +msgstr "" + +msgid "Always Ask" +msgstr "" + +msgid "Load Geometry Only" +msgstr "" + +msgid "Load Behaviour" +msgstr "" + +msgid "Should printer/filament/process settings be loaded when opening a .3mf?" +msgstr "" + msgid "Maximum recent projects" msgstr "Maximum recent projects" @@ -7269,6 +7298,9 @@ msgstr "Modifying the device name" msgid "Bind with Pin Code" msgstr "Bind with Pin Code" +msgid "Bind with Access Code" +msgstr "" + msgid "Send to Printer SD card" msgstr "Send to Printer MicroSD card" @@ -7563,6 +7595,75 @@ msgstr "" "by right-click the empty position of build plate and choose \"Add " "Primitive\"->\"Timelapse Wipe Tower\"." +msgid "" +"A copy of the current system preset will be created, which will be detached " +"from the system preset." +msgstr "" + +msgid "" +"The current custom preset will be detached from the parent system preset." +msgstr "" + +msgid "Modifications to the current profile will be saved." +msgstr "" + +msgid "" +"This action is not revertible.\n" +"Do you want to proceed?" +msgstr "" + +msgid "Detach preset" +msgstr "" + +msgid "This is a default preset." +msgstr "" + +msgid "This is a system preset." +msgstr "" + +msgid "Current preset is inherited from the default preset." +msgstr "" + +msgid "Current preset is inherited from" +msgstr "" + +msgid "It can't be deleted or modified." +msgstr "" + +msgid "" +"Any modifications should be saved as a new preset inherited from this one." +msgstr "" + +msgid "To do that please specify a new name for the preset." +msgstr "" + +msgid "Additional information:" +msgstr "" + +msgid "vendor" +msgstr "" + +msgid "printer model" +msgstr "" + +msgid "default print profile" +msgstr "" + +msgid "default filament profile" +msgstr "" + +msgid "default SLA material profile" +msgstr "" + +msgid "default SLA print profile" +msgstr "" + +msgid "full profile name" +msgstr "" + +msgid "symbolic profile name" +msgstr "" + msgid "Line width" msgstr "Line width" @@ -7659,6 +7760,12 @@ msgstr "Post-processing Scripts" msgid "Notes" msgstr "Notes" +msgid "Dependencies" +msgstr "" + +msgid "Profile dependencies" +msgstr "" + msgid "Frequent" msgstr "Frequent" @@ -8729,20 +8836,22 @@ msgstr "View Liveview" msgid "Confirm and Update Nozzle" msgstr "Confirm and Update Nozzle" -msgid "LAN Connection Failed (Sending print file)" -msgstr "LAN Connection Failed (Sending print file)" +msgid "Connect the printer using IP and access code" +msgstr "" msgid "" -"Step 1, please confirm Orca Slicer and your printer are in the same LAN." +"Step 1. Please confirm Orca Slicer and your printer are in the same LAN." msgstr "" -"Step 1, please confirm that Orca Slicer and your printer are on the same LAN." msgid "" -"Step 2, if the IP and Access Code below are different from the actual values " +"Step 2. If the IP and Access Code below are different from the actual values " "on your printer, please correct them." msgstr "" -"Step 2, if the IP and Access Code below are different from the actual values " -"on your printer, please correct them." + +msgid "" +"Step 3. Please obtain the device SN from the printer side; it is usually " +"found in the device information on the printer screen." +msgstr "" msgid "IP" msgstr "IP" @@ -8750,17 +8859,38 @@ msgstr "IP" msgid "Access Code" msgstr "Access Code" +msgid "Printer model" +msgstr "" + +msgid "Printer name" +msgstr "" + msgid "Where to find your printer's IP and Access Code?" msgstr "Where to find your printer's IP and Access Code?" -msgid "Step 3: Ping the IP address to check for packet loss and latency." -msgstr "Step 3: Ping the IP address to check for packet loss and latency." +msgid "Connect" +msgstr "" -msgid "Test" -msgstr "Test" +msgid "Manual Setup" +msgstr "" -msgid "IP and Access Code Verified! You may close the window" -msgstr "IP and Access Code Verified! You may close the window" +msgid "connecting..." +msgstr "" + +msgid "Failed to connect to printer." +msgstr "" + +msgid "Failed to publish login request." +msgstr "" + +msgid "The printer has already been bound." +msgstr "" + +msgid "The printer mode is incorrect, please switch to LAN Only." +msgstr "" + +msgid "Connecting to printer... The dialog will close later" +msgstr "" msgid "Connection failed, please double check IP and Access Code" msgstr "Connection failed, please double check IP and Access Code" @@ -9684,44 +9814,44 @@ msgstr "" msgid "Nowhere" msgstr "" -msgid "Force cooling for overhang and bridge" -msgstr "Force cooling for overhangs and bridges" +msgid "Force cooling for overhangs and bridges" +msgstr "" msgid "" -"Enable this option to optimize part cooling fan speed for overhang and " -"bridge to get better cooling" +"Enable this option to allow adjustment of the part cooling fan speed for " +"specifically for overhangs, internal and external bridges. Setting the fan " +"speed specifically for these features can improve overall print quality and " +"reduce warping." msgstr "" -"Enable this option to optimize the part cooling fan speed for overhangs and " -"bridges to get better cooling" -msgid "Fan speed for overhang" -msgstr "Fan speed for overhangs" +msgid "Overhangs and external bridges fan speed" +msgstr "" msgid "" -"Force part cooling fan to be this speed when printing bridge or overhang " -"wall which has large overhang degree. Forcing cooling for overhang and " -"bridge can get better quality for these part" +"Use this part cooling fan speed when printing bridges or overhang walls with " +"an overhang threshold that exceeds the value set in the 'Overhangs cooling " +"threshold' parameter above. Increasing the cooling specifically for " +"overhangs and bridges can improve the overall print quality of these " +"features.\n" +"\n" +"Please note, this fan speed is clamped on the lower end by the minimum fan " +"speed threshold set above. It is also adjusted upwards up to the maximum fan " +"speed threshold when the minimum layer time threshold is not met." msgstr "" -"Force part cooling fan to be this speed when printing bridges or overhang " -"walls which have a large overhang degree. Forcing cooling for overhangs and " -"bridges can achieve better quality for these parts." -msgid "Cooling overhang threshold" -msgstr "Cooling overhang threshold" +msgid "Overhang cooling activation threshold" +msgstr "" -#, c-format +#, c-format, boost-format msgid "" -"Force cooling fan to be specific speed when overhang degree of printed part " -"exceeds this value. Expressed as percentage which indicates how much width " -"of the line without support from lower layer. 0% means forcing cooling for " -"all outer wall no matter how much overhang degree" +"When the overhang exceeds this specified threshold, force the cooling fan to " +"run at the 'Overhang Fan Speed' set below. This threshold is expressed as a " +"percentage, indicating the portion of each line's width that is unsupported " +"by the layer beneath it. Setting this value to 0% forces the cooling fan to " +"run for all outer walls, regardless of the overhang degree." msgstr "" -"Force cooling fan to be a specific speed when overhang degree of printed " -"part exceeds this value. This is expressed as a percentage which indicates " -"how much width of the line without support from lower layer. 0% means " -"forcing cooling for all outer wall no matter the overhang degree." -msgid "Bridge infill direction" +msgid "External bridge infill direction" msgstr "" msgid "" @@ -9733,10 +9863,44 @@ msgstr "" "automatically. Otherwise the provided angle will be used for external " "bridges. Use 180° for zero angle." -msgid "Bridge density" +msgid "Internal bridge infill direction" msgstr "" -msgid "Density of external bridges. 100% means solid bridge. Default is 100%." +msgid "" +"Internal bridging angle override. If left to zero, the bridging angle will " +"be calculated automatically. Otherwise the provided angle will be used for " +"internal bridges. Use 180°for zero angle.\n" +"\n" +"It is recommended to leave it at 0 unless there is a specific model need not " +"to." +msgstr "" + +msgid "External bridge density" +msgstr "" + +msgid "" +"Controls the density (spacing) of external bridge lines. 100% means solid " +"bridge. Default is 100%.\n" +"\n" +"Lower density external bridges can help improve reliability as there is more " +"space for air to circulate around the extruded bridge, improving its cooling " +"speed." +msgstr "" + +msgid "Internal bridge density" +msgstr "" + +msgid "" +"Controls the density (spacing) of internal bridge lines. 100% means solid " +"bridge. Default is 100%.\n" +"\n" +" Lower density internal bridges can help reduce top surface pillowing and " +"improve internal bridge reliability as there is more space for air to " +"circulate around the extruded bridge, improving its cooling speed. \n" +"\n" +"This option works particularly well when combined with the second internal " +"bridge over infill option, further improving internal bridging structure " +"before solid infill is extruded." msgstr "" msgid "Bridge flow ratio" @@ -9789,9 +9953,7 @@ msgstr "" msgid "" "Improve shell precision by adjusting outer wall spacing. This also improves " -"layer consistency.\n" -"Note: This setting will only take effect if the wall sequence is configured " -"to Inner-Outer" +"layer consistency." msgstr "" msgid "Only one wall on top surfaces" @@ -10023,12 +10185,24 @@ msgstr "upward compatible machine" msgid "Compatible machine condition" msgstr "Compatible machine condition" +msgid "" +"A boolean expression using the configuration values of an active printer " +"profile. If this expression evaluates to true, this profile is considered " +"compatible with the active printer profile." +msgstr "" + msgid "Compatible process profiles" msgstr "Compatible process profiles" msgid "Compatible process profiles condition" msgstr "Compatible process profiles condition" +msgid "" +"A boolean expression using the configuration values of an active print " +"profile. If this expression evaluates to true, this profile is considered " +"compatible with the active print profile." +msgstr "" + msgid "Print sequence, layer by layer or object by object" msgstr "" "This determines the print sequence, allowing you to print layer-by-layer or " @@ -10128,8 +10302,8 @@ msgstr "" "required. Bridges can usually be printed directly without support over a " "reasonable distance." -msgid "Thick bridges" -msgstr "Thick bridges" +msgid "Thick external bridges" +msgstr "" msgid "" "If enabled, bridges are more reliable, can bridge longer distances, but may " @@ -10149,36 +10323,86 @@ msgid "" "using large nozzles." msgstr "" -msgid "Filter out small internal bridges (beta)" +msgid "Extra bridge layers (beta)" msgstr "" msgid "" -"This option can help reducing pillowing on top surfaces in heavily slanted " -"or curved models.\n" +"This option enables the generation of an extra bridge layer over internal " +"and/or external bridges.\n" +"\n" +"Extra bridge layers help improve bridge appearance and reliability, as the " +"solid infill is better supported. This is especially useful in fast " +"printers, where the bridge and solid infill speeds vary greatly. The extra " +"bridge layer results in reduced pillowing on top surfaces, as well as " +"reduced separation of the external bridge layer from its surrounding " +"perimeters.\n" +"\n" +"It is generally recommended to set this to at least 'External bridge only', " +"unless specific issues with the sliced model are found.\n" +"\n" +"Options:\n" +"1. Disabled - does not generate second bridge layers. This is the default " +"and is set for compatibility purposes.\n" +"2. External bridge only - generates second bridge layers for external-facing " +"bridges only. Please note that small bridges that are shorter or narrower " +"than the set number of perimeters will be skipped as they would not benefit " +"from a second bridge layer. If generated, the second bridge layer will be " +"extruded parallel to the first bridge layer to reinforce the bridge " +"strength.\n" +"3. Internal bridge only - generates second bridge layers for internal " +"bridges over sparse infill only. Please note that the internal bridges count " +"towards the top shell layer count of your model. The second internal bridge " +"layer will be extruded as close to perpendicular to the first as possible. " +"If multiple regions in the same island, with varying bridge angles are " +"present, the last region of that island will be selected as the angle " +"reference.\n" +"4. Apply to all - generates second bridge layers for both internal and " +"external-facing bridges\n" +msgstr "" + +msgid "Disabled" +msgstr "" + +msgid "External bridge only" +msgstr "" + +msgid "Internal bridge only" +msgstr "" + +msgid "Apply to all" +msgstr "" + +msgid "Filter out small internal bridges" +msgstr "" + +msgid "" +"This option can help reduce pillowing on top surfaces in heavily slanted or " +"curved models.\n" "\n" "By default, small internal bridges are filtered out and the internal solid " "infill is printed directly over the sparse infill. This works well in most " "cases, speeding up printing without too much compromise on top surface " "quality. \n" "\n" -"However, in heavily slanted or curved models especially where too low sparse " -"infill density is used, this may result in curling of the unsupported solid " -"infill, causing pillowing.\n" +"However, in heavily slanted or curved models, especially where too low a " +"sparse infill density is used, this may result in curling of the unsupported " +"solid infill, causing pillowing.\n" "\n" -"Disabling this option will print internal bridge layer over slightly " -"unsupported internal solid infill. The options below control the amount of " -"filtering, i.e. the amount of internal bridges created.\n" +"Enabling limited filtering or no filtering will print internal bridge layer " +"over slightly unsupported internal solid infill. The options below control " +"the sensitivity of the filtering, i.e. they control where internal bridges " +"are created.\n" "\n" -"Filter - enable this option. This is the default behavior and works well in " -"most cases.\n" +"1. Filter - enables this option. This is the default behavior and works well " +"in most cases.\n" "\n" -"Limited filtering - creates internal bridges on heavily slanted surfaces, " -"while avoiding creating unnecessary internal bridges. This works well for " -"most difficult models.\n" +"2. Limited filtering - creates internal bridges on heavily slanted surfaces " +"while avoiding unnecessary bridges. This works well for most difficult " +"models.\n" "\n" -"No filtering - creates internal bridges on every potential internal " -"overhang. This option is useful for heavily slanted top surface models. " -"However, in most cases it creates too many unnecessary bridges." +"3. No filtering - creates internal bridges on every potential internal " +"overhang. This option is useful for heavily slanted top surface models; " +"however, in most cases, it creates too many unnecessary bridges." msgstr "" msgid "Filter" @@ -10957,6 +11181,9 @@ msgstr "This is the line pattern for internal sparse infill." msgid "Grid" msgstr "Grid" +msgid "2D Lattice" +msgstr "" + msgid "Line" msgstr "Line" @@ -10987,6 +11214,25 @@ msgstr "Lightning" msgid "Cross Hatch" msgstr "Cross Hatch" +msgid "Quarter Cubic" +msgstr "" + +msgid "Lattice angle 1" +msgstr "" + +msgid "" +"The angle of the first set of 2D lattice elements in the Z direction. Zero " +"is vertical." +msgstr "" + +msgid "Lattice angle 2" +msgstr "" + +msgid "" +"The angle of the second set of 2D lattice elements in the Z direction. Zero " +"is vertical." +msgstr "" + msgid "Sparse infill anchor length" msgstr "" @@ -11171,10 +11417,24 @@ msgid "Support interface fan speed" msgstr "" msgid "" -"This fan speed is enforced during all support interfaces, to be able to " -"weaken their bonding with a high fan speed.\n" -"Set to -1 to disable this override.\n" -"Can only be overridden by disable_fan_first_layers." +"This part cooling fan speed is applied when printing support interfaces. " +"Setting this parameter to a higher than regular speed reduces the layer " +"binding strength between supports and the supported part, making them easier " +"to separate.\n" +"Set to -1 to disable it.\n" +"This setting is overridden by disable_fan_first_layers." +msgstr "" + +msgid "Internal bridges fan speed" +msgstr "" + +msgid "" +"The part cooling fan speed used for all internal bridges. Set to -1 to use " +"the overhang fan speed settings instead.\n" +"\n" +"Reducing the internal bridges fan speed, compared to your regular fan speed, " +"can help reduce part warping due to excessive cooling applied over a large " +"surface for a prolonged period of time." msgstr "" msgid "" @@ -11220,6 +11480,59 @@ msgstr "" msgid "Whether to apply fuzzy skin on the first layer" msgstr "" +msgid "Fuzzy skin noise type" +msgstr "" + +msgid "" +"Noise type to use for fuzzy skin generation.\n" +"Classic: Classic uniform random noise.\n" +"Perlin: Perlin noise, which gives a more consistent texture.\n" +"Billow: Similar to perlin noise, but clumpier.\n" +"Ridged Multifractal: Ridged noise with sharp, jagged features. Creates " +"marble-like textures.\n" +"Voronoi: Divides the surface into voronoi cells, and displaces each one by a " +"random amount. Creates a patchwork texture." +msgstr "" + +msgid "Classic" +msgstr "Classic" + +msgid "Perlin" +msgstr "" + +msgid "Billow" +msgstr "" + +msgid "Ridged Multifractal" +msgstr "" + +msgid "Voronoi" +msgstr "" + +msgid "Fuzzy skin feature size" +msgstr "" + +msgid "" +"The base size of the coherent noise features, in mm. Higher values will " +"result in larger features." +msgstr "" + +msgid "Fuzzy Skin Noise Octaves" +msgstr "" + +msgid "" +"The number of octaves of coherent noise to use. Higher values increase the " +"detail of the noise, but also increase computation time." +msgstr "" + +msgid "Fuzzy skin noise persistence" +msgstr "" + +msgid "" +"The decay rate for higher octaves of the coherent noise. Lower values will " +"result in smoother noise." +msgstr "" + msgid "Filter out tiny gaps" msgstr "Filter out tiny gaps" @@ -11625,6 +11938,14 @@ msgstr "Ironing line spacing" msgid "The distance between the lines of ironing" msgstr "This is the distance between the lines used for ironing." +msgid "Ironing inset" +msgstr "" + +msgid "" +"The distance to keep from the edges. A value of 0 sets this to half of the " +"nozzle diameter" +msgstr "" + msgid "Ironing speed" msgstr "Ironing speed" @@ -11854,7 +12175,17 @@ msgid "" "Default value of 3 works well for most cases. If your printer is stuttering, " "increase this value to reduce the number of adjustments made\n" "\n" -"Allowed values: 1-5" +"Allowed values: 0.5-5" +msgstr "" + +msgid "Apply only on external features" +msgstr "" + +msgid "" +"Applies extrusion rate smoothing only on external perimeters and overhangs. " +"This can help reduce artefacts due to sharp speed transitions on externally " +"visible overhangs without impacting the print speed of features that will " +"not be visible to the user." msgstr "" msgid "Minimum speed for part cooling fan" @@ -11882,9 +12213,9 @@ msgid "Min print speed" msgstr "Min print speed" msgid "" -"The minimum printing speed that the printer will slow down to to attempt to " -"maintain the minimum layer time above, when slow down for better layer " -"cooling is enabled." +"The minimum print speed to which the printer slows down to maintain the " +"minimum layer time defined above when the slowdown for better layer cooling " +"is enabled." msgstr "" msgid "Diameter of nozzle" @@ -12540,9 +12871,6 @@ msgid "" "with them. To avoid this, increase the skirt distance value.\n" msgstr "" -msgid "Disabled" -msgstr "" - msgid "Enabled" msgstr "" @@ -12804,25 +13132,22 @@ msgid "Enable support generation." msgstr "This enables support generation." msgid "" -"normal(auto) and tree(auto) is used to generate support automatically. If " -"normal(manual) or tree(manual) is selected, only support enforcers are " +"Normal (auto) and Tree (auto) is used to generate support automatically. If " +"Normal (manual) or Tree (manual) is selected, only support enforcers are " "generated" msgstr "" -"Normal(auto) and Tree(auto) are used to generate support automatically. If " -"normal(manual) or tree(manual) is selected, only support enforcers are " -"generated" -msgid "normal(auto)" -msgstr "Normal(auto)" +msgid "Normal (auto)" +msgstr "" -msgid "tree(auto)" -msgstr "Tree(auto)" +msgid "Tree (auto)" +msgstr "" -msgid "normal(manual)" -msgstr "Normal(manual)" +msgid "Normal (manual)" +msgstr "" -msgid "tree(manual)" -msgstr "Tree(manual)" +msgid "Tree (manual)" +msgstr "" msgid "Support/object xy distance" msgstr "Support/object xy distance" @@ -13036,6 +13361,15 @@ msgstr "" "Support will be generated for overhangs whose slope angle is below this " "threshold." +msgid "Threshold overlap" +msgstr "" + +msgid "" +"If threshold angle is zero, support will be generated for overhangs whose " +"overlap is below the threshold. The smaller this value is, the steeper the " +"overhang that can be printed without support." +msgstr "" + msgid "Tree support branch angle" msgstr "Tree support branch angle" @@ -13515,9 +13849,6 @@ msgstr "" "for very thin areas, gap-fill is used. The Arachne engine produces walls " "with variable extrusion width." -msgid "Classic" -msgstr "Classic" - msgid "Arachne" msgstr "Arachne" @@ -15422,6 +15753,9 @@ msgstr "Printer" msgid "Print Host upload" msgstr "Print Host upload" +msgid "Test" +msgstr "Test" + msgid "Could not get a valid Printer Host reference" msgstr "Could not get a valid Printer Host reference" @@ -16238,6 +16572,106 @@ msgstr "" "ABS, appropriately increasing the heatbed temperature can reduce the " "probability of warping?" +#~ msgid "Current Cabin humidity" +#~ msgstr "Current Cabin humidity" + +#~ msgid "Stopped." +#~ msgstr "Stopped." + +#, c-format, boost-format +#~ msgid "Connect failed [%d]!" +#~ msgstr "Connection failed [%d]!" + +#~ msgid "Initialize failed (Device connection not ready)!" +#~ msgstr "Initialization failed (Device connection not ready)!" + +#, c-format, boost-format +#~ msgid "Initialize failed (%s)!" +#~ msgstr "Initialization failed (%s)!" + +#~ msgid "LAN Connection Failed (Sending print file)" +#~ msgstr "LAN Connection Failed (Sending print file)" + +#~ msgid "" +#~ "Step 1, please confirm Orca Slicer and your printer are in the same LAN." +#~ msgstr "" +#~ "Step 1, please confirm that Orca Slicer and your printer are on the same " +#~ "LAN." + +#~ msgid "" +#~ "Step 2, if the IP and Access Code below are different from the actual " +#~ "values on your printer, please correct them." +#~ msgstr "" +#~ "Step 2, if the IP and Access Code below are different from the actual " +#~ "values on your printer, please correct them." + +#~ msgid "Step 3: Ping the IP address to check for packet loss and latency." +#~ msgstr "Step 3: Ping the IP address to check for packet loss and latency." + +#~ msgid "IP and Access Code Verified! You may close the window" +#~ msgstr "IP and Access Code Verified! You may close the window" + +#~ msgid "Force cooling for overhang and bridge" +#~ msgstr "Force cooling for overhangs and bridges" + +#~ msgid "" +#~ "Enable this option to optimize part cooling fan speed for overhang and " +#~ "bridge to get better cooling" +#~ msgstr "" +#~ "Enable this option to optimize the part cooling fan speed for overhangs " +#~ "and bridges to get better cooling" + +#~ msgid "Fan speed for overhang" +#~ msgstr "Fan speed for overhangs" + +#~ msgid "" +#~ "Force part cooling fan to be this speed when printing bridge or overhang " +#~ "wall which has large overhang degree. Forcing cooling for overhang and " +#~ "bridge can get better quality for these part" +#~ msgstr "" +#~ "Force part cooling fan to be this speed when printing bridges or overhang " +#~ "walls which have a large overhang degree. Forcing cooling for overhangs " +#~ "and bridges can achieve better quality for these parts." + +#~ msgid "Cooling overhang threshold" +#~ msgstr "Cooling overhang threshold" + +#, c-format +#~ msgid "" +#~ "Force cooling fan to be specific speed when overhang degree of printed " +#~ "part exceeds this value. Expressed as percentage which indicates how much " +#~ "width of the line without support from lower layer. 0% means forcing " +#~ "cooling for all outer wall no matter how much overhang degree" +#~ msgstr "" +#~ "Force cooling fan to be a specific speed when overhang degree of printed " +#~ "part exceeds this value. This is expressed as a percentage which " +#~ "indicates how much width of the line without support from lower layer. " +#~ "0% means forcing cooling for all outer wall no matter the overhang degree." + +#~ msgid "Thick bridges" +#~ msgstr "Thick bridges" + +#~ msgid "" +#~ "normal(auto) and tree(auto) is used to generate support automatically. If " +#~ "normal(manual) or tree(manual) is selected, only support enforcers are " +#~ "generated" +#~ msgstr "" +#~ "Normal(auto) and Tree(auto) are used to generate support automatically. " +#~ "If normal(manual) or tree(manual) is selected, only support enforcers are " +#~ "generated" + +#~ msgid "normal(auto)" +#~ msgstr "Normal(auto)" + +#~ msgid "tree(auto)" +#~ msgstr "Tree(auto)" + +#~ msgid "normal(manual)" +#~ msgstr "Normal(manual)" + +#~ msgid "tree(manual)" +#~ msgstr "Tree(manual)" + #~ msgctxt "Verb" #~ msgid "Scale" #~ msgstr "Scale" diff --git a/localization/i18n/es/OrcaSlicer_es.po b/localization/i18n/es/OrcaSlicer_es.po index 92f5362e01..8652ee37da 100644 --- a/localization/i18n/es/OrcaSlicer_es.po +++ b/localization/i18n/es/OrcaSlicer_es.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-01-04 17:35+0100\n" +"POT-Creation-Date: 2025-02-14 23:42+0800\n" "PO-Revision-Date: \n" "Last-Translator: Carlos Fco. Caruncho Serrano \n" "Language-Team: \n" @@ -1318,7 +1318,7 @@ msgid "Esc" msgstr "Esc" msgid "Cancel a feature until exit" -msgstr "" +msgstr "Cancelar una característica hasta salir" msgid "Measure" msgstr "Medir" @@ -1326,16 +1326,18 @@ msgstr "Medir" msgid "" "Please confirm explosion ratio = 1,and please select at least one object" msgstr "" +"Por favor, confirma que el ratio de explosión = 1, por favor seleccione al " +"menos un objeto" msgid "Please select at least one object." -msgstr "" +msgstr "Por favor seleccione al menos un objeto." msgid "Edit to scale" msgstr "Editar a escala" msgctxt "Verb" msgid "Scale all" -msgstr "" +msgstr "Escalar todo" msgid "None" msgstr "Ninguno" @@ -1350,40 +1352,47 @@ msgid "Selection" msgstr "Selección" msgid " (Moving)" -msgstr "" +msgstr "(Moviendo)" msgid "" "Select 2 faces on objects and \n" " make objects assemble together." msgstr "" +"Selecciona 2 caras en un objeto y \n" +"haz que los objetos se ensamblen juntos." msgid "" "Select 2 points or circles on objects and \n" " specify distance between them." msgstr "" +"Selecciona 2 puntos o círculos en un objeto y \n" +"especifica la distancia entre ellos." msgid "Face" -msgstr "" +msgstr "Cara" msgid " (Fixed)" -msgstr "" +msgstr "(Solucionado)" msgid "Point" -msgstr "" +msgstr "Punto" msgid "" "Feature 1 has been reset, \n" "feature 2 has been feature 1" msgstr "" +"Característica 1 se ha reiniciado.\n" +"característica 2 ha sido característica 1" msgid "Warning:please select Plane's feature." -msgstr "" +msgstr "Advertencia: por favor selecciona la característica del Plano." msgid "Warning:please select Point's or Circle's feature." msgstr "" +"Advertencia: por favor selecciona la característica del Punto o Círculo" msgid "Warning:please select two different mesh." -msgstr "" +msgstr "Advertencia: por favor selecciona dos malla distintas" msgid "Copy to clipboard" msgstr "Copiar al portapapeles" @@ -1401,25 +1410,25 @@ msgid "Distance XYZ" msgstr "Distancia XYZ" msgid "Parallel" -msgstr "" +msgstr "Paralelo" msgid "Center coincidence" -msgstr "" +msgstr "Centrar coincidencía" msgid "Featue 1" -msgstr "" +msgstr "Característica 1" msgid "Reverse rotation" -msgstr "" +msgstr "Revertir Rotación" msgid "Rotate around center:" -msgstr "" +msgstr "Rotar alrededor del centro:" msgid "Parallel distance:" -msgstr "" +msgstr "Distancia paralela:" msgid "Flip by Face 2" -msgstr "" +msgstr "Voltear por la cara 2" msgid "Ctrl+" msgstr "Ctrl+" @@ -2874,9 +2883,6 @@ msgstr "" msgid "About %s" msgstr "Acerca de %s" -msgid "Orca Slicer" -msgstr "" - msgid "OrcaSlicer is based on BambuStudio, PrusaSlicer, and SuperSlicer." msgstr "OrcaSlicer está basado en BambuStudio, PrusaSlicer, y SuperSlicer." @@ -2930,10 +2936,6 @@ msgstr "El valor de entrada debe ser mayor que %1% y menor que %2%" msgid "SN" msgstr "SN" -msgid "Setting AMS slot information while printing is not supported" -msgstr "" -"Ajustes de información de ranura AMS mientras la impresión no tenga soportes" - msgid "Factors of Flow Dynamics Calibration" msgstr "Factores de Calibración de Dinámicas de Flujo" @@ -2946,6 +2948,10 @@ msgstr "Factor K" msgid "Factor N" msgstr "Factor N" +msgid "Setting AMS slot information while printing is not supported" +msgstr "" +"Ajustes de información de ranura AMS mientras la impresión no tenga soportes" + msgid "Setting Virtual slot information while printing is not supported" msgstr "" "Ajuste de información de ranura Virtual mientras la impresión no sea " @@ -3070,8 +3076,8 @@ msgstr "Desactivar AMS" msgid "Print with the filament mounted on the back of chassis" msgstr "Imprimir con el filamento montado en la parte posterior del chasis" -msgid "Current Cabin humidity" -msgstr "Humedad de cabina actual" +msgid "Current AMS humidity" +msgstr "" msgid "" "Please change the desiccant when it is too wet. The indicator may not " @@ -5202,8 +5208,8 @@ msgstr "" msgid "The printer has been logged out and cannot connect." msgstr "La impresora se ha desconectado y no puede conectarse." -msgid "Stopped." -msgstr "Detenido." +msgid "Video Stopped." +msgstr "" msgid "LAN Connection Failed (Failed to start liveview)" msgstr "Fallo de Conexión de Red Local (Fallo al iniciar vista en directo)" @@ -5294,10 +5300,6 @@ msgstr "Recarga la lista de archivos desde la impresora." msgid "No printers." msgstr "No hay impresoras." -#, c-format, boost-format -msgid "Connect failed [%d]!" -msgstr "Error de conexión [%d]!" - msgid "Loading file list..." msgstr "Cargando lista de archivos..." @@ -5307,9 +5309,6 @@ msgstr "No hay archivos" msgid "Load failed" msgstr "Carga fallida" -msgid "Initialize failed (Device connection not ready)!" -msgstr "Error de inicialización (conexión del dispositivo no lista)." - msgid "" "Browsing file in SD card is not supported in current firmware. Please update " "the printer firmware." @@ -5317,10 +5316,10 @@ msgstr "" "La búsqueda de archivos en la tarjeta SD no es compatible con el firmware " "actual. Actualice el firmware de la impresora." -msgid "Initialize failed (Storage unavailable, insert SD card.)!" +msgid "" +"Please check if the SD card is inserted into the printer.\n" +"If it still cannot be read, you can try formatting the SD card." msgstr "" -"Error de inicialización (almacenamiento no disponible, inserte una tarjeta " -"SD)." msgid "LAN Connection Failed (Failed to view sdcard)" msgstr "Conexión LAN fallida (no se encuentra la tarjeta SD)" @@ -5329,10 +5328,6 @@ msgid "Browsing file in SD card is not supported in LAN Only Mode." msgstr "" "La búsqueda de archivos en la tarjeta SD no es posible en el modo Sólo LAN." -#, c-format, boost-format -msgid "Initialize failed (%s)!" -msgstr "¡Fallo al inicializar (%s)!" - #, c-format, boost-format msgid "You are going to delete %u file from printer. Are you sure to continue?" msgid_plural "" @@ -5777,6 +5772,25 @@ msgstr "Ultima versión: " msgid "Not for now" msgstr "No por ahora" +msgid "Server Exception" +msgstr "" + +msgid "" +"The server is unable to respond. Please click the link below to check the " +"server status." +msgstr "" + +msgid "" +"If the server is in a fault state, you can temporarily use offline printing " +"or local network printing." +msgstr "" + +msgid "How to use LAN only mode" +msgstr "" + +msgid "Don't show this dialog again" +msgstr "" + msgid "3D Mouse disconnected." msgstr "Ratón 3D desconectado." @@ -6507,6 +6521,10 @@ msgstr "Abrir como proyecto" msgid "Import geometry only" msgstr "Importar geometría solo" +msgid "" +"This option can be changed later in preferences, under 'Load Behaviour'." +msgstr "" + msgid "Only one G-code file can be opened at the same time." msgstr "Sólo se puede abrir un archivo de G-Code al mismo tiempo." @@ -6964,6 +6982,24 @@ msgstr "Asociar enlaces web a OrcaSlicer" msgid "Associate URLs to OrcaSlicer" msgstr "Asociar URLs a OrcaSlicer" +msgid "Load All" +msgstr "" + +msgid "Ask When Relevant" +msgstr "" + +msgid "Always Ask" +msgstr "" + +msgid "Load Geometry Only" +msgstr "" + +msgid "Load Behaviour" +msgstr "" + +msgid "Should printer/filament/process settings be loaded when opening a .3mf?" +msgstr "" + msgid "Maximum recent projects" msgstr "Máximos proyectos recientes" @@ -7540,6 +7576,9 @@ msgstr "Modificar el nombre del dispositivo" msgid "Bind with Pin Code" msgstr "Vincular con código PIN" +msgid "Bind with Access Code" +msgstr "" + msgid "Send to Printer SD card" msgstr "Enviar a la tarjeta SD de la impresora" @@ -7853,6 +7892,75 @@ msgstr "" "posición vacía de la bandeja de impresión y seleccionando \"Añadir " "Primitivo\"->Torre de Purga de Timelapse\"." +msgid "" +"A copy of the current system preset will be created, which will be detached " +"from the system preset." +msgstr "" + +msgid "" +"The current custom preset will be detached from the parent system preset." +msgstr "" + +msgid "Modifications to the current profile will be saved." +msgstr "" + +msgid "" +"This action is not revertible.\n" +"Do you want to proceed?" +msgstr "" + +msgid "Detach preset" +msgstr "" + +msgid "This is a default preset." +msgstr "" + +msgid "This is a system preset." +msgstr "" + +msgid "Current preset is inherited from the default preset." +msgstr "" + +msgid "Current preset is inherited from" +msgstr "" + +msgid "It can't be deleted or modified." +msgstr "" + +msgid "" +"Any modifications should be saved as a new preset inherited from this one." +msgstr "" + +msgid "To do that please specify a new name for the preset." +msgstr "" + +msgid "Additional information:" +msgstr "" + +msgid "vendor" +msgstr "" + +msgid "printer model" +msgstr "" + +msgid "default print profile" +msgstr "" + +msgid "default filament profile" +msgstr "" + +msgid "default SLA material profile" +msgstr "" + +msgid "default SLA print profile" +msgstr "" + +msgid "full profile name" +msgstr "" + +msgid "symbolic profile name" +msgstr "" + msgid "Line width" msgstr "Ancho de linea" @@ -7950,6 +8058,12 @@ msgstr "Script de Post-procesado" msgid "Notes" msgstr "Anotaciones" +msgid "Dependencies" +msgstr "" + +msgid "Profile dependencies" +msgstr "" + msgid "Frequent" msgstr "Frecuente" @@ -8007,12 +8121,14 @@ msgid "Nozzle temperature when printing" msgstr "Temperatura de la boquilla al imprimir" msgid "Cool Plate (SuperTack)" -msgstr "" +msgstr "Bandeja Fría (SuperTack)" msgid "" "Bed temperature when cool plate is installed. Value 0 means the filament " "does not support to print on the Cool Plate SuperTack" msgstr "" +"Temperatura de cama cuando la bandeja fría está instalada. Valor 0 significa " +"que el filamento no es compatible para imprimir en la bandeja fría SuperTack" msgid "Cool Plate" msgstr "Bandeja Fría" @@ -8250,7 +8366,7 @@ msgid "Layer height limits" msgstr "Límites de altura de la capa" msgid "Z-Hop" -msgstr "" +msgstr "Salto en Z" msgid "Retraction when switching material" msgstr "Retracción al cambiar de material" @@ -9075,21 +9191,22 @@ msgstr "Ver Vista en Directo" msgid "Confirm and Update Nozzle" msgstr "Confirmar y Actualizar la Boquilla" -msgid "LAN Connection Failed (Sending print file)" -msgstr "Conexión de red fallida (Mandando archivo de impresión)" - -msgid "" -"Step 1, please confirm Orca Slicer and your printer are in the same LAN." +msgid "Connect the printer using IP and access code" msgstr "" -"Paso 1, por favor verifique que Orca Slicer y la impresora se encuentran en " -"la misma red local." msgid "" -"Step 2, if the IP and Access Code below are different from the actual values " +"Step 1. Please confirm Orca Slicer and your printer are in the same LAN." +msgstr "" + +msgid "" +"Step 2. If the IP and Access Code below are different from the actual values " "on your printer, please correct them." msgstr "" -"Paso 2, si la IP y el Código de Acceso de abajo son diferentes de los " -"valores presentes en su impresora, por favor, corríjalos." + +msgid "" +"Step 3. Please obtain the device SN from the printer side; it is usually " +"found in the device information on the printer screen." +msgstr "" msgid "IP" msgstr "IP" @@ -9097,19 +9214,38 @@ msgstr "IP" msgid "Access Code" msgstr "Código de Acceso" +msgid "Printer model" +msgstr "" + +msgid "Printer name" +msgstr "" + msgid "Where to find your printer's IP and Access Code?" msgstr "¿Dónde encontrar la IP de su impresora y el Código de Acceso?" -msgid "Step 3: Ping the IP address to check for packet loss and latency." +msgid "Connect" msgstr "" -"Paso 3: Haga ping a la dirección IP para comprobar la perdida de paquetes y " -"la latencia." -msgid "Test" -msgstr "Test" +msgid "Manual Setup" +msgstr "" -msgid "IP and Access Code Verified! You may close the window" -msgstr "¡Ip y Código de Acceso Verificadas! Puede cerrar esta ventana" +msgid "connecting..." +msgstr "" + +msgid "Failed to connect to printer." +msgstr "" + +msgid "Failed to publish login request." +msgstr "" + +msgid "The printer has already been bound." +msgstr "" + +msgid "The printer mode is incorrect, please switch to LAN Only." +msgstr "" + +msgid "Connecting to printer... The dialog will close later" +msgstr "" msgid "Connection failed, please double check IP and Access Code" msgstr "" @@ -9982,6 +10118,8 @@ msgid "" "Bed temperature of the initial layer. Value 0 means the filament does not " "support to print on the Cool Plate SuperTack" msgstr "" +"Temperatura de cama de la capa inicial. Valor 0 significa que el filamento " +"no es compatible para imprimir en la Bandeja Fría SuperTack" msgid "" "Bed temperature of the initial layer. Value 0 means the filament does not " @@ -10150,48 +10288,45 @@ msgstr "Superficies superior e inferior" msgid "Nowhere" msgstr "En ninguna parte" -msgid "Force cooling for overhang and bridge" -msgstr "Refrigeración forzada para voladizos y puentes" +msgid "Force cooling for overhangs and bridges" +msgstr "" msgid "" -"Enable this option to optimize part cooling fan speed for overhang and " -"bridge to get better cooling" +"Enable this option to allow adjustment of the part cooling fan speed for " +"specifically for overhangs, internal and external bridges. Setting the fan " +"speed specifically for these features can improve overall print quality and " +"reduce warping." msgstr "" -"Habilite esta opción para optimizar la velocidad del ventilador de " -"refrigeración de la pieza para voladizos y puentes para obtener una mejor " -"refrigeración" -msgid "Fan speed for overhang" -msgstr "Velocidad del ventilador para voladizos" +msgid "Overhangs and external bridges fan speed" +msgstr "" msgid "" -"Force part cooling fan to be this speed when printing bridge or overhang " -"wall which has large overhang degree. Forcing cooling for overhang and " -"bridge can get better quality for these part" +"Use this part cooling fan speed when printing bridges or overhang walls with " +"an overhang threshold that exceeds the value set in the 'Overhangs cooling " +"threshold' parameter above. Increasing the cooling specifically for " +"overhangs and bridges can improve the overall print quality of these " +"features.\n" +"\n" +"Please note, this fan speed is clamped on the lower end by the minimum fan " +"speed threshold set above. It is also adjusted upwards up to the maximum fan " +"speed threshold when the minimum layer time threshold is not met." msgstr "" -"Forzar el ventilador de la pieza a esta velocidad cuando se imprimen puentes " -"o perímetros en voladizo que tiene un gran ángulo de voladizo. Al forzar la " -"refrigeración de los voladizos y puentes se puede obtener una mejor calidad " -"para estas piezas" -msgid "Cooling overhang threshold" -msgstr "Umbral de refiregeación para voladizos" +msgid "Overhang cooling activation threshold" +msgstr "" -#, c-format +#, c-format, boost-format msgid "" -"Force cooling fan to be specific speed when overhang degree of printed part " -"exceeds this value. Expressed as percentage which indicates how much width " -"of the line without support from lower layer. 0% means forcing cooling for " -"all outer wall no matter how much overhang degree" +"When the overhang exceeds this specified threshold, force the cooling fan to " +"run at the 'Overhang Fan Speed' set below. This threshold is expressed as a " +"percentage, indicating the portion of each line's width that is unsupported " +"by the layer beneath it. Setting this value to 0% forces the cooling fan to " +"run for all outer walls, regardless of the overhang degree." msgstr "" -"Fuerza al ventilador de refrigeración a una velocidad específica cuando el " -"ángulo de voladizo de la pieza impresa excede este valor. Expresado como " -"porcentaje, indica la anchura de la línea sin soporte de la capa inferior. " -"Un 0%% significa forzar la refrigeración de todo el perímetro exterior sin " -"importar el ángulo de voladizo" -msgid "Bridge infill direction" -msgstr "Ángulo del relleno en puente" +msgid "External bridge infill direction" +msgstr "" msgid "" "Bridging angle override. If left to zero, the bridging angle will be " @@ -10202,13 +10337,45 @@ msgstr "" "calculará automáticamente. De lo contrario, se utilizará el ángulo " "proporcionado para los puentes externos. Utilice 180° para el ángulo cero." -msgid "Bridge density" -msgstr "Densidad de puente" - -msgid "Density of external bridges. 100% means solid bridge. Default is 100%." +msgid "Internal bridge infill direction" +msgstr "" + +msgid "" +"Internal bridging angle override. If left to zero, the bridging angle will " +"be calculated automatically. Otherwise the provided angle will be used for " +"internal bridges. Use 180°for zero angle.\n" +"\n" +"It is recommended to leave it at 0 unless there is a specific model need not " +"to." +msgstr "" + +msgid "External bridge density" +msgstr "" + +msgid "" +"Controls the density (spacing) of external bridge lines. 100% means solid " +"bridge. Default is 100%.\n" +"\n" +"Lower density external bridges can help improve reliability as there is more " +"space for air to circulate around the extruded bridge, improving its cooling " +"speed." +msgstr "" + +msgid "Internal bridge density" +msgstr "" + +msgid "" +"Controls the density (spacing) of internal bridge lines. 100% means solid " +"bridge. Default is 100%.\n" +"\n" +" Lower density internal bridges can help reduce top surface pillowing and " +"improve internal bridge reliability as there is more space for air to " +"circulate around the extruded bridge, improving its cooling speed. \n" +"\n" +"This option works particularly well when combined with the second internal " +"bridge over infill option, further improving internal bridging structure " +"before solid infill is extruded." msgstr "" -"Densidad de puentes externos. 100% significa puente sólido. Por defecto es " -"100%." msgid "Bridge flow ratio" msgstr "Ratio de flujo en puentes" @@ -10286,14 +10453,10 @@ msgstr "Perímetro preciso" msgid "" "Improve shell precision by adjusting outer wall spacing. This also improves " -"layer consistency.\n" -"Note: This setting will only take effect if the wall sequence is configured " -"to Inner-Outer" +"layer consistency." msgstr "" -"Mejore la precisión de la cubierta ajustando la separación entre perímetros " -"exteriores. Esto también mejora la consistencia de las capas. \n" -"Nota: Este ajuste sólo tendrá efecto si la secuencia de perímetros está " -"configurada como Interior-Exterior" +"Mejorar precisión de la carcasa ajustando el espaciado del perímetro " +"exterior. Esto además mejora la consistencia de capa." msgid "Only one wall on top surfaces" msgstr "Sólo un perímetro en las capas superiores" @@ -10601,12 +10764,24 @@ msgstr "máquina compatible ascendente" msgid "Compatible machine condition" msgstr "Condición compatibilidad de máquina" +msgid "" +"A boolean expression using the configuration values of an active printer " +"profile. If this expression evaluates to true, this profile is considered " +"compatible with the active printer profile." +msgstr "" + msgid "Compatible process profiles" msgstr "Perfiles de proceso compatibles" msgid "Compatible process profiles condition" msgstr "Condición de compatibilidad de los perfiles de proceso" +msgid "" +"A boolean expression using the configuration values of an active print " +"profile. If this expression evaluates to true, this profile is considered " +"compatible with the active print profile." +msgstr "" + msgid "Print sequence, layer by layer or object by object" msgstr "Secuencia de impresión, capa a capa u objeto por objeto" @@ -10710,8 +10885,8 @@ msgstr "" "No crear soportes en toda el área de los puentes. Los puentes normalmente " "pueden imprimirse directamente sin soporte si no son muy largos" -msgid "Thick bridges" -msgstr "Puentes gruesos" +msgid "Thick external bridges" +msgstr "" msgid "" "If enabled, bridges are more reliable, can bridge longer distances, but may " @@ -10734,64 +10909,87 @@ msgstr "" "recomienda tener esta función activada. Sin embargo, considere desactivarla " "si utilizas boquillas de diámetros elevados." -msgid "Filter out small internal bridges (beta)" -msgstr "Filtra los pequeños puentes internos (beta)" +msgid "Extra bridge layers (beta)" +msgstr "" msgid "" -"This option can help reducing pillowing on top surfaces in heavily slanted " -"or curved models.\n" +"This option enables the generation of an extra bridge layer over internal " +"and/or external bridges.\n" +"\n" +"Extra bridge layers help improve bridge appearance and reliability, as the " +"solid infill is better supported. This is especially useful in fast " +"printers, where the bridge and solid infill speeds vary greatly. The extra " +"bridge layer results in reduced pillowing on top surfaces, as well as " +"reduced separation of the external bridge layer from its surrounding " +"perimeters.\n" +"\n" +"It is generally recommended to set this to at least 'External bridge only', " +"unless specific issues with the sliced model are found.\n" +"\n" +"Options:\n" +"1. Disabled - does not generate second bridge layers. This is the default " +"and is set for compatibility purposes.\n" +"2. External bridge only - generates second bridge layers for external-facing " +"bridges only. Please note that small bridges that are shorter or narrower " +"than the set number of perimeters will be skipped as they would not benefit " +"from a second bridge layer. If generated, the second bridge layer will be " +"extruded parallel to the first bridge layer to reinforce the bridge " +"strength.\n" +"3. Internal bridge only - generates second bridge layers for internal " +"bridges over sparse infill only. Please note that the internal bridges count " +"towards the top shell layer count of your model. The second internal bridge " +"layer will be extruded as close to perpendicular to the first as possible. " +"If multiple regions in the same island, with varying bridge angles are " +"present, the last region of that island will be selected as the angle " +"reference.\n" +"4. Apply to all - generates second bridge layers for both internal and " +"external-facing bridges\n" +msgstr "" + +msgid "Disabled" +msgstr "Desactivado" + +msgid "External bridge only" +msgstr "" + +msgid "Internal bridge only" +msgstr "" + +msgid "Apply to all" +msgstr "" + +msgid "Filter out small internal bridges" +msgstr "" + +msgid "" +"This option can help reduce pillowing on top surfaces in heavily slanted or " +"curved models.\n" "\n" "By default, small internal bridges are filtered out and the internal solid " "infill is printed directly over the sparse infill. This works well in most " "cases, speeding up printing without too much compromise on top surface " "quality. \n" "\n" -"However, in heavily slanted or curved models especially where too low sparse " -"infill density is used, this may result in curling of the unsupported solid " -"infill, causing pillowing.\n" +"However, in heavily slanted or curved models, especially where too low a " +"sparse infill density is used, this may result in curling of the unsupported " +"solid infill, causing pillowing.\n" "\n" -"Disabling this option will print internal bridge layer over slightly " -"unsupported internal solid infill. The options below control the amount of " -"filtering, i.e. the amount of internal bridges created.\n" +"Enabling limited filtering or no filtering will print internal bridge layer " +"over slightly unsupported internal solid infill. The options below control " +"the sensitivity of the filtering, i.e. they control where internal bridges " +"are created.\n" "\n" -"Filter - enable this option. This is the default behavior and works well in " -"most cases.\n" +"1. Filter - enables this option. This is the default behavior and works well " +"in most cases.\n" "\n" -"Limited filtering - creates internal bridges on heavily slanted surfaces, " -"while avoiding creating unnecessary internal bridges. This works well for " -"most difficult models.\n" +"2. Limited filtering - creates internal bridges on heavily slanted surfaces " +"while avoiding unnecessary bridges. This works well for most difficult " +"models.\n" "\n" -"No filtering - creates internal bridges on every potential internal " -"overhang. This option is useful for heavily slanted top surface models. " -"However, in most cases it creates too many unnecessary bridges." +"3. No filtering - creates internal bridges on every potential internal " +"overhang. This option is useful for heavily slanted top surface models; " +"however, in most cases, it creates too many unnecessary bridges." msgstr "" -"Esta opción puede ayudar a reducir el acolchado en las superficies " -"superiores de los modelos muy inclinados o curvados.\n" -"\n" -"Por defecto, los pequeños puentes internos se filtran y el relleno sólido " -"interno se imprime directamente sobre el relleno disperso. Esto funciona " -"bien en la mayoría de los casos, acelerando la impresión sin comprometer " -"demasiado la calidad de la superficie superior.\n" -"\n" -"Sin embargo, en modelos muy inclinados o curvados, especialmente cuando se " -"utiliza una densidad de relleno disperso demasiado baja, esto puede dar " -"lugar a la curvatura del relleno sólido no soportado, causando pillowing.\n" -"\n" -"Si se desactiva esta opción, se imprimirá la capa puente interna sobre el " -"relleno sólido interno ligeramente sin soporte. Las opciones siguientes " -"controlan la cantidad de filtrado, es decir, la cantidad de puentes internos " -"creados.\n" -"\n" -"Filtro - active esta opción. Este es el comportamiento por defecto y " -"funciona bien en la mayoría de los casos.\n" -"\n" -"Filtrado limitado - crea puentes internos en superficies muy inclinadas, " -"evitando crear puentes internos innecesarios. Esto funciona bien para la " -"mayoría de los modelos difíciles.\n" -"\n" -"Sin filtro: crea puentes internos en todos los posibles salientes internos. " -"Esta opción es útil para modelos de superficie superior muy inclinada. Sin " -"embargo, en la mayoría de los casos crea demasiados puentes innecesarios." msgid "Filter" msgstr "Filtro" @@ -11806,6 +12004,9 @@ msgstr "Patrón de líneas para el relleno interno de baja densidad" msgid "Grid" msgstr "Rejilla" +msgid "2D Lattice" +msgstr "" + msgid "Line" msgstr "Lineal" @@ -11836,6 +12037,25 @@ msgstr "Rayo" msgid "Cross Hatch" msgstr "Rayado Cruzado" +msgid "Quarter Cubic" +msgstr "" + +msgid "Lattice angle 1" +msgstr "" + +msgid "" +"The angle of the first set of 2D lattice elements in the Z direction. Zero " +"is vertical." +msgstr "" + +msgid "Lattice angle 2" +msgstr "" + +msgid "" +"The angle of the second set of 2D lattice elements in the Z direction. Zero " +"is vertical." +msgstr "" + msgid "Sparse infill anchor length" msgstr "Longitud del anclaje de relleno de baja densidad" @@ -12059,14 +12279,25 @@ msgid "Support interface fan speed" msgstr "Velocidad de ventilador en la interfaz de los soportes" msgid "" -"This fan speed is enforced during all support interfaces, to be able to " -"weaken their bonding with a high fan speed.\n" -"Set to -1 to disable this override.\n" -"Can only be overridden by disable_fan_first_layers." +"This part cooling fan speed is applied when printing support interfaces. " +"Setting this parameter to a higher than regular speed reduces the layer " +"binding strength between supports and the supported part, making them easier " +"to separate.\n" +"Set to -1 to disable it.\n" +"This setting is overridden by disable_fan_first_layers." +msgstr "" + +msgid "Internal bridges fan speed" +msgstr "" + +msgid "" +"The part cooling fan speed used for all internal bridges. Set to -1 to use " +"the overhang fan speed settings instead.\n" +"\n" +"Reducing the internal bridges fan speed, compared to your regular fan speed, " +"can help reduce part warping due to excessive cooling applied over a large " +"surface for a prolonged period of time." msgstr "" -"Esta velocidad de ventilador se fuerza cuando se imprimen todas las " -"interfaces de soporte, con el objetivo de debilitar la unión con la " -"pieza.Sólo puede ser anulado por disable_fan_first_layers." msgid "" "Randomly jitter while printing the wall, so that the surface has a rough " @@ -12111,6 +12342,59 @@ msgstr "Aplicar superficie difusa en la primera capa" msgid "Whether to apply fuzzy skin on the first layer" msgstr "Aplicar o no superficie difusa en la primera capa" +msgid "Fuzzy skin noise type" +msgstr "" + +msgid "" +"Noise type to use for fuzzy skin generation.\n" +"Classic: Classic uniform random noise.\n" +"Perlin: Perlin noise, which gives a more consistent texture.\n" +"Billow: Similar to perlin noise, but clumpier.\n" +"Ridged Multifractal: Ridged noise with sharp, jagged features. Creates " +"marble-like textures.\n" +"Voronoi: Divides the surface into voronoi cells, and displaces each one by a " +"random amount. Creates a patchwork texture." +msgstr "" + +msgid "Classic" +msgstr "Clásico" + +msgid "Perlin" +msgstr "" + +msgid "Billow" +msgstr "" + +msgid "Ridged Multifractal" +msgstr "" + +msgid "Voronoi" +msgstr "" + +msgid "Fuzzy skin feature size" +msgstr "" + +msgid "" +"The base size of the coherent noise features, in mm. Higher values will " +"result in larger features." +msgstr "" + +msgid "Fuzzy Skin Noise Octaves" +msgstr "" + +msgid "" +"The number of octaves of coherent noise to use. Higher values increase the " +"detail of the noise, but also increase computation time." +msgstr "" + +msgid "Fuzzy skin noise persistence" +msgstr "" + +msgid "" +"The decay rate for higher octaves of the coherent noise. Lower values will " +"result in smoother noise." +msgstr "" + msgid "Filter out tiny gaps" msgstr "Filtrar pequeños huecos" @@ -12603,6 +12887,14 @@ msgstr "Espaciado entre líneas de alisado" msgid "The distance between the lines of ironing" msgstr "La distancia entre las líneas de alisado" +msgid "Ironing inset" +msgstr "" + +msgid "" +"The distance to keep from the edges. A value of 0 sets this to half of the " +"nozzle diameter" +msgstr "" + msgid "Ironing speed" msgstr "Velocidad de alisado" @@ -12875,17 +13167,18 @@ msgid "" "Default value of 3 works well for most cases. If your printer is stuttering, " "increase this value to reduce the number of adjustments made\n" "\n" -"Allowed values: 1-5" +"Allowed values: 0.5-5" +msgstr "" + +msgid "Apply only on external features" +msgstr "" + +msgid "" +"Applies extrusion rate smoothing only on external perimeters and overhangs. " +"This can help reduce artefacts due to sharp speed transitions on externally " +"visible overhangs without impacting the print speed of features that will " +"not be visible to the user." msgstr "" -"Un valor más bajo resulta en transiciones de velocidad de extrusión más " -"suaves. Sin embargo, esto resulta en un archivo G-Code significativamente " -"más grande y más instrucciones para que la impresora procese. \n" -"\n" -"El valor por defecto de 3 funciona bien en la mayoría de los casos. Si su " -"impresora está tartamudeando, aumente este valor para reducir el número de " -"ajustes realizados.\n" -"\n" -"Valores permitidos: 1-5" msgid "Minimum speed for part cooling fan" msgstr "Velocidad mínima del ventilador de refrigeración de la pieza" @@ -12917,13 +13210,10 @@ msgid "Min print speed" msgstr "Velocidad de impresión mínima" msgid "" -"The minimum printing speed that the printer will slow down to to attempt to " -"maintain the minimum layer time above, when slow down for better layer " -"cooling is enabled." +"The minimum print speed to which the printer slows down to maintain the " +"minimum layer time defined above when the slowdown for better layer cooling " +"is enabled." msgstr "" -"La velocidad mínima de impresión a la que la impresora reducirá la velocidad " -"para intentar mantener el tiempo mínimo de capa anterior, cuando la " -"ralentización para un mejor enfriamiento de la capa está activada." msgid "Diameter of nozzle" msgstr "Diámetro de boquilla" @@ -13279,7 +13569,7 @@ msgstr "" "cambio de filamento" msgid "Z-hop height" -msgstr "" +msgstr "Altura de Salto en Z" msgid "" "Whenever the retraction is done, the nozzle is lifted a little to create " @@ -13312,7 +13602,7 @@ msgstr "" "parámetro \"Límite inferior de salto Z\" y por debajo de este valor" msgid "Z-hop type" -msgstr "" +msgstr "Tipo de Salto en Z" msgid "Z hop type" msgstr "Tipo de salto Z" @@ -13708,9 +13998,6 @@ msgstr "" "puede que se crucen con ellos. Para evitarlo, aumente el valor de la " "distancia del faldón.\n" -msgid "Disabled" -msgstr "Desactivado" - msgid "Enabled" msgstr "Activado" @@ -14009,25 +14296,22 @@ msgid "Enable support generation." msgstr "Habilitar la generación de soportes." msgid "" -"normal(auto) and tree(auto) is used to generate support automatically. If " -"normal(manual) or tree(manual) is selected, only support enforcers are " +"Normal (auto) and Tree (auto) is used to generate support automatically. If " +"Normal (manual) or Tree (manual) is selected, only support enforcers are " "generated" msgstr "" -"normal (auto) y Árbol (auto) se utilizan para generar los soportes " -"automáticamente. Si se selecciona normal (manual) o árbol (manual), sólo se " -"generan los soportes forzados" -msgid "normal(auto)" -msgstr "Normal (auto)" +msgid "Normal (auto)" +msgstr "" -msgid "tree(auto)" -msgstr "Árbol (auto)" +msgid "Tree (auto)" +msgstr "" -msgid "normal(manual)" -msgstr "Normal (manual)" +msgid "Normal (manual)" +msgstr "" -msgid "tree(manual)" -msgstr "Árbol (manual)" +msgid "Tree (manual)" +msgstr "" msgid "Support/object xy distance" msgstr "Distancia soporte/objeto X-Y" @@ -14256,6 +14540,15 @@ msgstr "" "Se generará un soporte para los voladizos cuyo ángulo de inclinación sea " "inferior al umbral." +msgid "Threshold overlap" +msgstr "" + +msgid "" +"If threshold angle is zero, support will be generated for overhangs whose " +"overlap is below the threshold. The smaller this value is, the steeper the " +"overhang that can be printed without support." +msgstr "" + msgid "Tree support branch angle" msgstr "Ángulo de las rama de soporte Árbol" @@ -14860,9 +15153,6 @@ msgstr "" "constante y para zonas muy finas se utiliza rellenar-espacio. El motor " "Arachne produce perímetros con ancho de extrusión variable." -msgid "Classic" -msgstr "Clásico" - msgid "Arachne" msgstr "Arachne" @@ -16946,6 +17236,9 @@ msgstr "Impresora física" msgid "Print Host upload" msgstr "Carga al Host de Impresión" +msgid "Test" +msgstr "Test" + msgid "Could not get a valid Printer Host reference" msgstr "No se ha podido obtener una referencia de host de impresora válida" @@ -17840,6 +18133,241 @@ msgstr "" "aumentar adecuadamente la temperatura de la cama térmica puede reducir la " "probabilidad de deformaciones." +#~ msgid "Current Cabin humidity" +#~ msgstr "Humedad de cabina actual" + +#~ msgid "Stopped." +#~ msgstr "Detenido." + +#, c-format, boost-format +#~ msgid "Connect failed [%d]!" +#~ msgstr "Error de conexión [%d]!" + +#~ msgid "Initialize failed (Device connection not ready)!" +#~ msgstr "Error de inicialización (conexión del dispositivo no lista)." + +#~ msgid "Initialize failed (Storage unavailable, insert SD card.)!" +#~ msgstr "" +#~ "Error de inicialización (almacenamiento no disponible, inserte una " +#~ "tarjeta SD)." + +#, c-format, boost-format +#~ msgid "Initialize failed (%s)!" +#~ msgstr "¡Fallo al inicializar (%s)!" + +#~ msgid "LAN Connection Failed (Sending print file)" +#~ msgstr "Conexión de red fallida (Mandando archivo de impresión)" + +#~ msgid "" +#~ "Step 1, please confirm Orca Slicer and your printer are in the same LAN." +#~ msgstr "" +#~ "Paso 1, por favor verifique que Orca Slicer y la impresora se encuentran " +#~ "en la misma red local." + +#~ msgid "" +#~ "Step 2, if the IP and Access Code below are different from the actual " +#~ "values on your printer, please correct them." +#~ msgstr "" +#~ "Paso 2, si la IP y el Código de Acceso de abajo son diferentes de los " +#~ "valores presentes en su impresora, por favor, corríjalos." + +#~ msgid "Step 3: Ping the IP address to check for packet loss and latency." +#~ msgstr "" +#~ "Paso 3: Haga ping a la dirección IP para comprobar la perdida de paquetes " +#~ "y la latencia." + +#~ msgid "IP and Access Code Verified! You may close the window" +#~ msgstr "¡Ip y Código de Acceso Verificadas! Puede cerrar esta ventana" + +#~ msgid "Force cooling for overhang and bridge" +#~ msgstr "Refrigeración forzada para voladizos y puentes" + +#~ msgid "" +#~ "Enable this option to optimize part cooling fan speed for overhang and " +#~ "bridge to get better cooling" +#~ msgstr "" +#~ "Habilite esta opción para optimizar la velocidad del ventilador de " +#~ "refrigeración de la pieza para voladizos y puentes para obtener una mejor " +#~ "refrigeración" + +#~ msgid "Fan speed for overhang" +#~ msgstr "Velocidad del ventilador para voladizos" + +#~ msgid "" +#~ "Force part cooling fan to be this speed when printing bridge or overhang " +#~ "wall which has large overhang degree. Forcing cooling for overhang and " +#~ "bridge can get better quality for these part" +#~ msgstr "" +#~ "Forzar el ventilador de la pieza a esta velocidad cuando se imprimen " +#~ "puentes o perímetros en voladizo que tiene un gran ángulo de voladizo. Al " +#~ "forzar la refrigeración de los voladizos y puentes se puede obtener una " +#~ "mejor calidad para estas piezas" + +#~ msgid "Cooling overhang threshold" +#~ msgstr "Umbral de refiregeación para voladizos" + +#, c-format +#~ msgid "" +#~ "Force cooling fan to be specific speed when overhang degree of printed " +#~ "part exceeds this value. Expressed as percentage which indicates how much " +#~ "width of the line without support from lower layer. 0% means forcing " +#~ "cooling for all outer wall no matter how much overhang degree" +#~ msgstr "" +#~ "Fuerza al ventilador de refrigeración a una velocidad específica cuando " +#~ "el ángulo de voladizo de la pieza impresa excede este valor. Expresado " +#~ "como porcentaje, indica la anchura de la línea sin soporte de la capa " +#~ "inferior. Un 0%% significa forzar la refrigeración de todo el perímetro " +#~ "exterior sin importar el ángulo de voladizo" + +#~ msgid "Bridge infill direction" +#~ msgstr "Ángulo del relleno en puente" + +#~ msgid "Bridge density" +#~ msgstr "Densidad de puente" + +#~ msgid "" +#~ "Density of external bridges. 100% means solid bridge. Default is 100%." +#~ msgstr "" +#~ "Densidad de puentes externos. 100% significa puente sólido. Por defecto " +#~ "es 100%." + +#~ msgid "" +#~ "Improve shell precision by adjusting outer wall spacing. This also " +#~ "improves layer consistency.\n" +#~ "Note: This setting will only take effect if the wall sequence is " +#~ "configured to Inner-Outer" +#~ msgstr "" +#~ "Mejore la precisión de la cubierta ajustando la separación entre " +#~ "perímetros exteriores. Esto también mejora la consistencia de las " +#~ "capas. \n" +#~ "Nota: Este ajuste sólo tendrá efecto si la secuencia de perímetros está " +#~ "configurada como Interior-Exterior" + +#~ msgid "Thick bridges" +#~ msgstr "Puentes gruesos" + +#~ msgid "Filter out small internal bridges (beta)" +#~ msgstr "Filtra los pequeños puentes internos (beta)" + +#~ msgid "" +#~ "This option can help reducing pillowing on top surfaces in heavily " +#~ "slanted or curved models.\n" +#~ "\n" +#~ "By default, small internal bridges are filtered out and the internal " +#~ "solid infill is printed directly over the sparse infill. This works well " +#~ "in most cases, speeding up printing without too much compromise on top " +#~ "surface quality. \n" +#~ "\n" +#~ "However, in heavily slanted or curved models especially where too low " +#~ "sparse infill density is used, this may result in curling of the " +#~ "unsupported solid infill, causing pillowing.\n" +#~ "\n" +#~ "Disabling this option will print internal bridge layer over slightly " +#~ "unsupported internal solid infill. The options below control the amount " +#~ "of filtering, i.e. the amount of internal bridges created.\n" +#~ "\n" +#~ "Filter - enable this option. This is the default behavior and works well " +#~ "in most cases.\n" +#~ "\n" +#~ "Limited filtering - creates internal bridges on heavily slanted surfaces, " +#~ "while avoiding creating unnecessary internal bridges. This works well for " +#~ "most difficult models.\n" +#~ "\n" +#~ "No filtering - creates internal bridges on every potential internal " +#~ "overhang. This option is useful for heavily slanted top surface models. " +#~ "However, in most cases it creates too many unnecessary bridges." +#~ msgstr "" +#~ "Esta opción puede ayudar a reducir el acolchado en las superficies " +#~ "superiores de los modelos muy inclinados o curvados.\n" +#~ "\n" +#~ "Por defecto, los pequeños puentes internos se filtran y el relleno sólido " +#~ "interno se imprime directamente sobre el relleno disperso. Esto funciona " +#~ "bien en la mayoría de los casos, acelerando la impresión sin comprometer " +#~ "demasiado la calidad de la superficie superior.\n" +#~ "\n" +#~ "Sin embargo, en modelos muy inclinados o curvados, especialmente cuando " +#~ "se utiliza una densidad de relleno disperso demasiado baja, esto puede " +#~ "dar lugar a la curvatura del relleno sólido no soportado, causando " +#~ "pillowing.\n" +#~ "\n" +#~ "Si se desactiva esta opción, se imprimirá la capa puente interna sobre el " +#~ "relleno sólido interno ligeramente sin soporte. Las opciones siguientes " +#~ "controlan la cantidad de filtrado, es decir, la cantidad de puentes " +#~ "internos creados.\n" +#~ "\n" +#~ "Filtro - active esta opción. Este es el comportamiento por defecto y " +#~ "funciona bien en la mayoría de los casos.\n" +#~ "\n" +#~ "Filtrado limitado - crea puentes internos en superficies muy inclinadas, " +#~ "evitando crear puentes internos innecesarios. Esto funciona bien para la " +#~ "mayoría de los modelos difíciles.\n" +#~ "\n" +#~ "Sin filtro: crea puentes internos en todos los posibles salientes " +#~ "internos. Esta opción es útil para modelos de superficie superior muy " +#~ "inclinada. Sin embargo, en la mayoría de los casos crea demasiados " +#~ "puentes innecesarios." + +#~ msgid "" +#~ "This fan speed is enforced during all support interfaces, to be able to " +#~ "weaken their bonding with a high fan speed.\n" +#~ "Set to -1 to disable this override.\n" +#~ "Can only be overridden by disable_fan_first_layers." +#~ msgstr "" +#~ "Esta velocidad de ventilador se fuerza cuando se imprimen todas las " +#~ "interfaces de soporte, con el objetivo de debilitar la unión con la " +#~ "pieza.Sólo puede ser anulado por disable_fan_first_layers." + +#~ msgid "" +#~ "A lower value results in smoother extrusion rate transitions. However, " +#~ "this results in a significantly larger gcode file and more instructions " +#~ "for the printer to process. \n" +#~ "\n" +#~ "Default value of 3 works well for most cases. If your printer is " +#~ "stuttering, increase this value to reduce the number of adjustments made\n" +#~ "\n" +#~ "Allowed values: 1-5" +#~ msgstr "" +#~ "Un valor más bajo resulta en transiciones de velocidad de extrusión más " +#~ "suaves. Sin embargo, esto resulta en un archivo G-Code significativamente " +#~ "más grande y más instrucciones para que la impresora procese. \n" +#~ "\n" +#~ "El valor por defecto de 3 funciona bien en la mayoría de los casos. Si su " +#~ "impresora está tartamudeando, aumente este valor para reducir el número " +#~ "de ajustes realizados.\n" +#~ "\n" +#~ "Valores permitidos: 1-5" + +#~ msgid "" +#~ "The minimum printing speed that the printer will slow down to to attempt " +#~ "to maintain the minimum layer time above, when slow down for better layer " +#~ "cooling is enabled." +#~ msgstr "" +#~ "La velocidad mínima de impresión a la que la impresora reducirá la " +#~ "velocidad para intentar mantener el tiempo mínimo de capa anterior, " +#~ "cuando la ralentización para un mejor enfriamiento de la capa está " +#~ "activada." + +#~ msgid "" +#~ "normal(auto) and tree(auto) is used to generate support automatically. If " +#~ "normal(manual) or tree(manual) is selected, only support enforcers are " +#~ "generated" +#~ msgstr "" +#~ "normal (auto) y Árbol (auto) se utilizan para generar los soportes " +#~ "automáticamente. Si se selecciona normal (manual) o árbol (manual), sólo " +#~ "se generan los soportes forzados" + +#~ msgid "normal(auto)" +#~ msgstr "Normal (auto)" + +#~ msgid "tree(auto)" +#~ msgstr "Árbol (auto)" + +#~ msgid "normal(manual)" +#~ msgstr "Normal (manual)" + +#~ msgid "tree(manual)" +#~ msgstr "Árbol (manual)" + #~ msgid "ShiftLeft mouse button" #~ msgstr "Mayúsculas + Botón izquierdo del ratón" @@ -18753,13 +19281,6 @@ msgstr "" #~ msgid "Configuration package updated to " #~ msgstr "Paquete de configuración actualizado a " -#~ msgid "" -#~ "Improve shell precision by adjusting outer wall spacing. This also " -#~ "improves layer consistency." -#~ msgstr "" -#~ "Mejorar precisión de la carcasa ajustando el espaciado del perímetro " -#~ "exterior. Esto además mejora la consistencia de capa." - #~ msgid "" #~ "The minimum printing speed for the filament when slow down for better " #~ "layer cooling is enabled, when printing overhangs and when feature speeds " diff --git a/localization/i18n/fr/OrcaSlicer_fr.po b/localization/i18n/fr/OrcaSlicer_fr.po index 537142692c..b0118131b7 100644 --- a/localization/i18n/fr/OrcaSlicer_fr.po +++ b/localization/i18n/fr/OrcaSlicer_fr.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-01-04 17:35+0100\n" +"POT-Creation-Date: 2025-02-14 23:42+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: Guislain Cyril, Thomas Lété\n" @@ -1327,7 +1327,7 @@ msgid "Esc" msgstr "Échap" msgid "Cancel a feature until exit" -msgstr "" +msgstr "Annuler une fonction jusqu’à ce qu’on la quitte" msgid "Measure" msgstr "Mesurer" @@ -1335,16 +1335,18 @@ msgstr "Mesurer" msgid "" "Please confirm explosion ratio = 1,and please select at least one object" msgstr "" +"Veuillez confirmer le rapport d’explosion = 1 et sélectionner au moins un " +"objet." msgid "Please select at least one object." -msgstr "" +msgstr "Veuillez sélectionner au moins un objet." msgid "Edit to scale" msgstr "Modifier à l’échelle" msgctxt "Verb" msgid "Scale all" -msgstr "" +msgstr "Tout mettre à l’échelle" msgid "None" msgstr "Aucun" @@ -1359,40 +1361,47 @@ msgid "Selection" msgstr "Sélection" msgid " (Moving)" -msgstr "" +msgstr " (Déplacement)" msgid "" "Select 2 faces on objects and \n" " make objects assemble together." msgstr "" +"Sélectionner 2 faces sur les objets et \n" +" faire en sorte que les objets s’assemblent." msgid "" "Select 2 points or circles on objects and \n" " specify distance between them." msgstr "" +"Sélectionnez 2 points ou cercles sur des objets et \n" +" spécifier la distance qui les sépare." msgid "Face" -msgstr "" +msgstr "Face" msgid " (Fixed)" -msgstr "" +msgstr " (Fixé)" msgid "Point" -msgstr "" +msgstr "Point" msgid "" "Feature 1 has been reset, \n" "feature 2 has been feature 1" msgstr "" +"La fonction 1 a été réinitialisée, \n" +"la fonction 2 a été la fonction 1" msgid "Warning:please select Plane's feature." -msgstr "" +msgstr "Avertissement : veuillez sélectionner la fonction du plan." msgid "Warning:please select Point's or Circle's feature." msgstr "" +"Avertissement : veuillez sélectionner la fonction du Point ou du Cercle." msgid "Warning:please select two different mesh." -msgstr "" +msgstr "Attention : veuillez sélectionner deux maillages différents." msgid "Copy to clipboard" msgstr "Copier dans le presse-papier" @@ -1410,25 +1419,25 @@ msgid "Distance XYZ" msgstr "Distance XYZ" msgid "Parallel" -msgstr "" +msgstr "Parallèle" msgid "Center coincidence" -msgstr "" +msgstr "Coïncidence du centre" msgid "Featue 1" -msgstr "" +msgstr "Fonction 1" msgid "Reverse rotation" -msgstr "" +msgstr "Inverser la rotation" msgid "Rotate around center:" -msgstr "" +msgstr "Rotation autour du centre :" msgid "Parallel distance:" -msgstr "" +msgstr "Distance parallèle :" msgid "Flip by Face 2" -msgstr "" +msgstr "Retournement par la Face 2" msgid "Ctrl+" msgstr "Ctrl+" @@ -2874,9 +2883,6 @@ msgstr "" msgid "About %s" msgstr "À propos de %s" -msgid "Orca Slicer" -msgstr "" - msgid "OrcaSlicer is based on BambuStudio, PrusaSlicer, and SuperSlicer." msgstr "Orca Slicer est basé sur BambuStudio, PrusaSlicer, et SuperSlicer." @@ -2926,11 +2932,6 @@ msgstr "La valeur saisie doit être supérieure à %1% et inférieure à %2%" msgid "SN" msgstr "Numéro de série" -msgid "Setting AMS slot information while printing is not supported" -msgstr "" -"La définition des informations relatives aux emplacements AMS pendant " -"l'impression n'est pas prise en charge" - msgid "Factors of Flow Dynamics Calibration" msgstr "Facteurs de calibration dynamique du débit" @@ -2943,6 +2944,11 @@ msgstr "Facteur K" msgid "Factor N" msgstr "Facteur N" +msgid "Setting AMS slot information while printing is not supported" +msgstr "" +"La définition des informations relatives aux emplacements AMS pendant " +"l'impression n'est pas prise en charge" + msgid "Setting Virtual slot information while printing is not supported" msgstr "" "Le réglage des informations relatives à l'emplacement virtuel pendant " @@ -3068,8 +3074,8 @@ msgstr "Désactiver l'AMS" msgid "Print with the filament mounted on the back of chassis" msgstr "Impression avec du filament de la bobine externe" -msgid "Current Cabin humidity" -msgstr "Humidité dans le caisson" +msgid "Current AMS humidity" +msgstr "Humidité actuelle de l’AMS" msgid "" "Please change the desiccant when it is too wet. The indicator may not " @@ -3726,9 +3732,9 @@ msgstr "" #, c-format, boost-format msgid "" -"Current chamber temperature is higher than the material's safe " -"temperature,it may result in material softening and clogging.The maximum " -"safe temperature for the material is %d" +"Current chamber temperature is higher than the material's safe temperature," +"it may result in material softening and clogging.The maximum safe " +"temperature for the material is %d" msgstr "" "La température actuelle du caisson est supérieure à la température de " "sécurité du matériau, ce qui peut entraîner un ramollissement et un bouchage " @@ -5200,8 +5206,8 @@ msgstr "" msgid "The printer has been logged out and cannot connect." msgstr "L’imprimante a été déconnectée et ne peut pas se connecter." -msgid "Stopped." -msgstr "Arrêté." +msgid "Video Stopped." +msgstr "Vidéo arrêtée." msgid "LAN Connection Failed (Failed to start liveview)" msgstr "" @@ -5294,10 +5300,6 @@ msgstr "Recharger la liste des fichiers de l’imprimante." msgid "No printers." msgstr "Aucune imprimante." -#, c-format, boost-format -msgid "Connect failed [%d]!" -msgstr "La connexion a échoué [%d] !" - msgid "Loading file list..." msgstr "Chargement de la liste des fichiers…" @@ -5307,10 +5309,6 @@ msgstr "Aucun fichier" msgid "Load failed" msgstr "Échec du chargement" -msgid "Initialize failed (Device connection not ready)!" -msgstr "" -"L'initialisation a échoué (la connexion de l'appareil n'est pas prête) !" - msgid "" "Browsing file in SD card is not supported in current firmware. Please update " "the printer firmware." @@ -5319,9 +5317,13 @@ msgstr "" "le micrologiciel actuel. Veuillez mettre à jour le micrologiciel de " "l’imprimante." -msgid "Initialize failed (Storage unavailable, insert SD card.)!" +msgid "" +"Please check if the SD card is inserted into the printer.\n" +"If it still cannot be read, you can try formatting the SD card." msgstr "" -"Échec de l’initialisation (Stockage indisponible, insérer la carte SD.) !" +"Veuillez vérifier si la carte SD est insérée dans l’imprimante.\n" +"Si elle ne peut toujours pas être lue, vous pouvez essayer de formater la " +"carte SD." msgid "LAN Connection Failed (Failed to view sdcard)" msgstr "" @@ -5333,10 +5335,6 @@ msgstr "" "La navigation dans les fichiers de la carte SD n’est pas prise en charge en " "mode LAN uniquement." -#, c-format, boost-format -msgid "Initialize failed (%s)!" -msgstr "L'initialisation a échoué (%s)!" - #, c-format, boost-format msgid "You are going to delete %u file from printer. Are you sure to continue?" msgid_plural "" @@ -5782,6 +5780,29 @@ msgstr "Dernière version : " msgid "Not for now" msgstr "Pas pour le moment" +msgid "Server Exception" +msgstr "Exception serveur" + +msgid "" +"The server is unable to respond. Please click the link below to check the " +"server status." +msgstr "" +"Le serveur n’est pas en mesure de répondre. Veuillez cliquer sur le lien ci-" +"dessous pour vérifier l’état du serveur." + +msgid "" +"If the server is in a fault state, you can temporarily use offline printing " +"or local network printing." +msgstr "" +"Si le serveur est en panne, vous pouvez temporairement utiliser l’impression " +"hors ligne ou l’impression via le réseau local." + +msgid "How to use LAN only mode" +msgstr "Comment utiliser le mode LAN uniquement" + +msgid "Don't show this dialog again" +msgstr "Ne plus afficher cette boîte de dialogue" + msgid "3D Mouse disconnected." msgstr "Souris 3D déconnectée." @@ -6514,6 +6535,12 @@ msgstr "Ouvrir en tant que projet" msgid "Import geometry only" msgstr "Importer la géométrie uniquement" +msgid "" +"This option can be changed later in preferences, under 'Load Behaviour'." +msgstr "" +"Cette option peut être modifiée ultérieurement dans les préférences, sous " +"« Comportement du chargement »." + msgid "Only one G-code file can be opened at the same time." msgstr "Un seul fichier G-code peut être ouvert à la fois." @@ -6982,6 +7009,26 @@ msgstr "Associer des liens web à OrcaSlicer" msgid "Associate URLs to OrcaSlicer" msgstr "Associer des URL à OrcaSlicer" +msgid "Load All" +msgstr "Tout charger" + +msgid "Ask When Relevant" +msgstr "Demander quand c’est pertinent" + +msgid "Always Ask" +msgstr "Toujours demander" + +msgid "Load Geometry Only" +msgstr "Charger uniquement la géométrie" + +msgid "Load Behaviour" +msgstr "Comportement du chargement" + +msgid "Should printer/filament/process settings be loaded when opening a .3mf?" +msgstr "" +"Les paramètres de l’imprimante/du filament/du processus doivent-ils être " +"chargés lors de l’ouverture d’un fichier .3mf ?" + msgid "Maximum recent projects" msgstr "Projets récents maximum" @@ -7570,6 +7617,9 @@ msgstr "Modification du nom de l'appareil" msgid "Bind with Pin Code" msgstr "Relier avec le code pin" +msgid "Bind with Access Code" +msgstr "Relier avec un code d’accès" + msgid "Send to Printer SD card" msgstr "Envoyer sur la carte SD de l'imprimante" @@ -7880,9 +7930,9 @@ msgid "" "complications.Please use with the latest printer firmware." msgstr "" "Fonction expérimentale : Rétracter et couper le filament à une plus grande " -"distance lors des changements de filament afin de minimiser " -"l’affleurement.Bien que cela puisse réduire sensiblement l’affleurement, " -"cela peut également augmenter le risque d’obstruction des buses ou d’autres " +"distance lors des changements de filament afin de minimiser l’affleurement." +"Bien que cela puisse réduire sensiblement l’affleurement, cela peut " +"également augmenter le risque d’obstruction des buses ou d’autres " "complications d’impression.Veuillez utiliser le dernier micrologiciel de " "l’imprimante." @@ -7897,6 +7947,83 @@ msgstr "" "en faisant un clic droit sur un emplacement vide sur le plateau et en " "choisissant \"Ajouter Primitive\"-> \"Tour d’essuyage timelapse\"." +msgid "" +"A copy of the current system preset will be created, which will be detached " +"from the system preset." +msgstr "" +"Une copie du préréglage actuel du système est créée et détachée du " +"préréglage du système." + +msgid "" +"The current custom preset will be detached from the parent system preset." +msgstr "" +"Le préréglage personnalisé actuel sera détaché du préréglage du système " +"parent." + +msgid "Modifications to the current profile will be saved." +msgstr "Les modifications apportées au profil actuel sont enregistrées." + +msgid "" +"This action is not revertible.\n" +"Do you want to proceed?" +msgstr "" +"Cette action n’est pas réversible.\n" +"Voulez-vous continuer ?" + +msgid "Detach preset" +msgstr "Détacher la présélection" + +msgid "This is a default preset." +msgstr "Il s’agit d’un préréglage par défaut." + +msgid "This is a system preset." +msgstr "Il s’agit d’un préréglage du système." + +msgid "Current preset is inherited from the default preset." +msgstr "Le préréglage actuel est hérité du préréglage par défaut." + +msgid "Current preset is inherited from" +msgstr "Le préréglage actuel est hérité de" + +msgid "It can't be deleted or modified." +msgstr "Il ne peut être ni supprimé ni modifié." + +msgid "" +"Any modifications should be saved as a new preset inherited from this one." +msgstr "" +"Toute modification doit être enregistrée sous la forme d’un nouveau " +"préréglage hérité de celui-ci." + +msgid "To do that please specify a new name for the preset." +msgstr "Pour ce faire, veuillez spécifier un nouveau nom pour le préréglage." + +msgid "Additional information:" +msgstr "Informations complémentaires :" + +msgid "vendor" +msgstr "vendeur" + +msgid "printer model" +msgstr "modèle d’imprimante" + +msgid "default print profile" +msgstr "profil d’impression par défaut" + +msgid "default filament profile" +msgstr "profil de filament par défaut" + +msgid "default SLA material profile" +msgstr "profil de matériau SLA par défaut" + +msgid "default SLA print profile" +msgstr "profil d’impression SLA par défaut" + +msgid "full profile name" +msgstr "nom complet du profil" + +msgid "symbolic profile name" +msgstr "nom symbolique du profil" + msgid "Line width" msgstr "Largeur de ligne" @@ -7994,6 +8121,12 @@ msgstr "Scripts de post-traitement" msgid "Notes" msgstr "Notes" +msgid "Dependencies" +msgstr "Dépendances" + +msgid "Profile dependencies" +msgstr "Dépendances du profil" + msgid "Frequent" msgstr "Fréquent" @@ -8051,12 +8184,15 @@ msgid "Nozzle temperature when printing" msgstr "Température de la buse lors de l'impression" msgid "Cool Plate (SuperTack)" -msgstr "" +msgstr "Cool Plate (SuperTack)" msgid "" "Bed temperature when cool plate is installed. Value 0 means the filament " "does not support to print on the Cool Plate SuperTack" msgstr "" +"Température du plateau lorsque la Cool Plate est installée. La valeur 0 " +"signifie que le filament ne peut pas être imprimé sur la Cool Plate " +"SuperTack." msgid "Cool Plate" msgstr "Cool Plate/Plaque PLA" @@ -8297,7 +8433,7 @@ msgid "Layer height limits" msgstr "Limites de hauteur de couche" msgid "Z-Hop" -msgstr "" +msgstr "Saut en Z" msgid "Retraction when switching material" msgstr "Rétraction lors du changement de matériau" @@ -9148,21 +9284,28 @@ msgstr "Vue en direct" msgid "Confirm and Update Nozzle" msgstr "Confirmation et mise à jour de la buse" -msgid "LAN Connection Failed (Sending print file)" -msgstr "Échec de la connexion au réseau local (envoi du fichier d'impression)" +msgid "Connect the printer using IP and access code" +msgstr "Connecter l’imprimante en utilisant l’IP et le code d’accès" msgid "" -"Step 1, please confirm Orca Slicer and your printer are in the same LAN." +"Step 1. Please confirm Orca Slicer and your printer are in the same LAN." msgstr "" -"Étape 1 : Veuillez confirmer que OrcaSlicer et votre imprimante sont sur le " -"même réseau local." +"Étape 1. Veuillez confirmer qu’Orca Slicer et votre imprimante se trouvent " +"sur le même réseau local." msgid "" -"Step 2, if the IP and Access Code below are different from the actual values " +"Step 2. If the IP and Access Code below are different from the actual values " "on your printer, please correct them." msgstr "" -"Étape 2 : Si l'adresse IP et le code d'accès ci-dessous sont différents des " -"valeurs actuelles de votre imprimante, corrigez-les." +"Etape 2. Si l’IP et le code d’accès ci-dessous sont différents des valeurs " +"réelles de votre imprimante, veuillez les corriger." + +msgid "" +"Step 3. Please obtain the device SN from the printer side; it is usually " +"found in the device information on the printer screen." +msgstr "" +"Étape 3. Veuillez obtenir le SN de l’imprimante ; il se trouve généralement " +"dans les informations relatives à l’appareil sur l’écran de l’imprimante." msgid "IP" msgstr "IP" @@ -9170,19 +9313,39 @@ msgstr "IP" msgid "Access Code" msgstr "Code d'Accès" +msgid "Printer model" +msgstr "Modèle d’imprimante" + +msgid "Printer name" +msgstr "Nom de l’imprimante" + msgid "Where to find your printer's IP and Access Code?" msgstr "Où trouver l'adresse IP et le code d'accès de votre imprimante ?" -msgid "Step 3: Ping the IP address to check for packet loss and latency." +msgid "Connect" +msgstr "Se connecter" + +msgid "Manual Setup" +msgstr "Configuration manuelle" + +msgid "connecting..." +msgstr "connexion…" + +msgid "Failed to connect to printer." +msgstr "Échec de la connexion à l’imprimante." + +msgid "Failed to publish login request." +msgstr "Échec de la publication de la demande de connexion." + +msgid "The printer has already been bound." +msgstr "L’imprimante a déjà été reliée." + +msgid "The printer mode is incorrect, please switch to LAN Only." msgstr "" -"Étape 3 : Effectuer un ping de l’adresse IP pour vérifier la perte de " -"paquets et la latence." +"Le mode d’impression est incorrect, veuillez passer en mode LAN uniquement." -msgid "Test" -msgstr "Tester" - -msgid "IP and Access Code Verified! You may close the window" -msgstr "IP et code d’accès vérifiés ! Vous pouvez fermer la fenêtre" +msgid "Connecting to printer... The dialog will close later" +msgstr "Connexion à l’imprimante… La boîte de dialogue se fermera plus tard" msgid "Connection failed, please double check IP and Access Code" msgstr "La connexion a échoué, veuillez vérifier l’IP et le code d’accès." @@ -10066,6 +10229,8 @@ msgid "" "Bed temperature of the initial layer. Value 0 means the filament does not " "support to print on the Cool Plate SuperTack" msgstr "" +"Température du plateau de la couche initiale. La valeur 0 signifie que le " +"filament n’est pas compatible avec l’impression sur la Cool Plate SuperTack." msgid "" "Bed temperature of the initial layer. Value 0 means the filament does not " @@ -10236,48 +10401,67 @@ msgstr "Surfaces supérieure et inférieure" msgid "Nowhere" msgstr "Nulle part" -msgid "Force cooling for overhang and bridge" -msgstr "Forcer la ventilation pour les surplombs et ponts" +msgid "Force cooling for overhangs and bridges" +msgstr "Refroidissement forcé pour les surplombs et les ponts" msgid "" -"Enable this option to optimize part cooling fan speed for overhang and " -"bridge to get better cooling" +"Enable this option to allow adjustment of the part cooling fan speed for " +"specifically for overhangs, internal and external bridges. Setting the fan " +"speed specifically for these features can improve overall print quality and " +"reduce warping." msgstr "" -"Activez cette option pour optimiser la vitesse du ventilateur de " -"refroidissement des pièces pour le surplomb et le pont afin d'obtenir un " -"meilleur refroidissement" +"Activez cette option pour permettre le réglage de la vitesse du ventilateur " +"de refroidissement de la pièce pour les surplombs, les ponts internes et " +"externes. Le réglage de la vitesse du ventilateur en fonction de ces " +"caractéristiques peut améliorer la qualité globale de l’impression et " +"réduire le gauchissement." -msgid "Fan speed for overhang" -msgstr "Vitesse du ventilateur pour les surplombs" +msgid "Overhangs and external bridges fan speed" +msgstr "Vitesse du ventilateur pour les ponts extérieurs et les surplombs" msgid "" -"Force part cooling fan to be this speed when printing bridge or overhang " -"wall which has large overhang degree. Forcing cooling for overhang and " -"bridge can get better quality for these part" +"Use this part cooling fan speed when printing bridges or overhang walls with " +"an overhang threshold that exceeds the value set in the 'Overhangs cooling " +"threshold' parameter above. Increasing the cooling specifically for " +"overhangs and bridges can improve the overall print quality of these " +"features.\n" +"\n" +"Please note, this fan speed is clamped on the lower end by the minimum fan " +"speed threshold set above. It is also adjusted upwards up to the maximum fan " +"speed threshold when the minimum layer time threshold is not met." msgstr "" -"Forcez le ventilateur de refroidissement des pièces à être à cette vitesse " -"lors de l'impression d'un pont ou d'une paroi en surplomb qui a un degré de " -"surplomb important. Forcer le refroidissement pour les surplombs et le pont " -"pour obtenir une meilleure qualité pour ces pièces." +"Utilisez cette vitesse du ventilateur de refroidissement de la pièce lorsque " +"vous imprimez des ponts ou des parois en surplomb dont le seuil de surplomb " +"dépasse la valeur définie dans le paramètre ‘Seuil de refroidissement des " +"surplombs’ ci-dessus. L’augmentation du refroidissement spécifiquement pour " +"les surplombs et les ponts peut améliorer la qualité d’impression globale de " +"ces éléments.\n" +"\n" +"Veuillez noter que cette vitesse de ventilateur est limitée à l’extrémité " +"inférieure par le seuil minimum de vitesse de ventilateur défini ci-dessus. " +"Elle est également ajustée à la hausse jusqu’au seuil de vitesse maximale du " +"ventilateur lorsque le seuil de temps de couche minimal n’est pas atteint." -msgid "Cooling overhang threshold" -msgstr "Seuil de dépassement de refroidissement" +msgid "Overhang cooling activation threshold" +msgstr "Seuil d’activation du refroidissement en surplomb" -#, c-format msgid "" -"Force cooling fan to be specific speed when overhang degree of printed part " -"exceeds this value. Expressed as percentage which indicates how much width " -"of the line without support from lower layer. 0% means forcing cooling for " -"all outer wall no matter how much overhang degree" +"When the overhang exceeds this specified threshold, force the cooling fan to " +"run at the 'Overhang Fan Speed' set below. This threshold is expressed as a " +"percentage, indicating the portion of each line's width that is unsupported " +"by the layer beneath it. Setting this value to 0% forces the cooling fan to " +"run for all outer walls, regardless of the overhang degree." msgstr "" -"Forcer le ventilateur de refroidissement à atteindre une vitesse spécifique " -"lorsque le degré de surplomb de la pièce imprimée dépasse cette valeur. Ceci " -"est exprimé en pourcentage qui indique la largeur de la ligne sans support " -"provenant de la couche inférieure. 0%% signifie un refroidissement forcé de " -"toutes les parois extérieures, quel que soit le degré de surplomb." +"Lorsque le dépassement dépasse le seuil spécifié, le ventilateur de " +"refroidissement est forcé de fonctionner à la « vitesse du ventilateur de " +"dépassement » définie ci-dessous. Ce seuil est exprimé en pourcentage, " +"indiquant la portion de la largeur de chaque ligne qui n’est pas supportée " +"par la couche située en dessous. En réglant cette valeur sur 0%, on force le " +"ventilateur de refroidissement à fonctionner pour toutes les parois en " +"surplomb, quel que soit le degré de surplomb." -msgid "Bridge infill direction" -msgstr "Direction du remplissage des ponts" +msgid "External bridge infill direction" +msgstr "Direction du remplissage du pont extérieur" msgid "" "Bridging angle override. If left to zero, the bridging angle will be " @@ -10288,13 +10472,69 @@ msgstr "" "calculé automatiquement. Sinon, l’angle fourni sera utilisé pour les ponts " "externes. Utilisez 180° pour un angle nul." -msgid "Bridge density" -msgstr "Densité des ponts" +msgid "Internal bridge infill direction" +msgstr "Direction du remplissage du pont interne" -msgid "Density of external bridges. 100% means solid bridge. Default is 100%." +msgid "" +"Internal bridging angle override. If left to zero, the bridging angle will " +"be calculated automatically. Otherwise the provided angle will be used for " +"internal bridges. Use 180°for zero angle.\n" +"\n" +"It is recommended to leave it at 0 unless there is a specific model need not " +"to." msgstr "" -"Densité des ponts externes, Une valeur à 100% signifie un pont plein. La " -"valeur par défaut est 100%." +"Priorité à l’angle de pont interne. S’il est laissé à zéro, l’angle de " +"pontage sera calculé automatiquement. Dans le cas contraire, l’angle fourni " +"sera utilisé pour les ponts internes. Utiliser 180° pour l’angle zéro.\n" +"\n" +"Il est recommandé de le laisser à 0, à moins qu’un modèle spécifique impose " +"de ne pas le faire." + +msgid "External bridge density" +msgstr "Densité du pont externe" + +msgid "" +"Controls the density (spacing) of external bridge lines. 100% means solid " +"bridge. Default is 100%.\n" +"\n" +"Lower density external bridges can help improve reliability as there is more " +"space for air to circulate around the extruded bridge, improving its cooling " +"speed." +msgstr "" +"Contrôle la densité (l’espacement) des lignes de pont externes. 100 % " +"signifie que le pont est plein. La valeur par défaut est 100%.\n" +"\n" +"Des ponts externes moins denses peuvent contribuer à améliorer la fiabilité, " +"car l’air a plus de place pour circuler autour du pont extrudé, ce qui " +"améliore sa vitesse de refroidissement." + +msgid "Internal bridge density" +msgstr "Densité du pont interne" + +msgid "" +"Controls the density (spacing) of internal bridge lines. 100% means solid " +"bridge. Default is 100%.\n" +"\n" +" Lower density internal bridges can help reduce top surface pillowing and " +"improve internal bridge reliability as there is more space for air to " +"circulate around the extruded bridge, improving its cooling speed. \n" +"\n" +"This option works particularly well when combined with the second internal " +"bridge over infill option, further improving internal bridging structure " +"before solid infill is extruded." +msgstr "" +"Contrôle la densité (l’espacement) des lignes de pont internes. 100 % " +"signifie que le pont est plein. La valeur par défaut est 100%.\n" +"\n" +" Des ponts internes moins denses peuvent contribuer à réduire le gonflement " +"de la surface supérieure et à améliorer la fiabilité des ponts internes, car " +"l’air a plus de place pour circuler autour du pont extrudé, ce qui améliore " +"sa vitesse de refroidissement. \n" +"\n" +"Cette option fonctionne particulièrement bien lorsqu’elle est combinée avec " +"la deuxième option de pont interne sur le remplissage, ce qui permet " +"d’améliorer encore la structure du pont interne avant l’extrusion du " +"remplissage solide." msgid "Bridge flow ratio" msgstr "Débit des ponts" @@ -10373,14 +10613,10 @@ msgstr "Parois précises" msgid "" "Improve shell precision by adjusting outer wall spacing. This also improves " -"layer consistency.\n" -"Note: This setting will only take effect if the wall sequence is configured " -"to Inner-Outer" +"layer consistency." msgstr "" -"Améliorez la précision de la coque en ajustant l’espacement des parois " -"extérieures. Cela permet également d’améliorer la cohérence des couches.\n" -"Remarque : ce paramètre n’a d’effet que si la séquence des parois est " -"configurée sur Intérieur-Extérieur." +"Améliorer la précision de la coque en ajustant l’espacement des parois " +"extérieures. Cela améliore également la consistance des couches." msgid "Only one wall on top surfaces" msgstr "Une seule paroi sur les surfaces supérieures" @@ -10692,12 +10928,30 @@ msgstr "machine à compatibilité ascendante" msgid "Compatible machine condition" msgstr "État de la machine compatible" +msgid "" +"A boolean expression using the configuration values of an active printer " +"profile. If this expression evaluates to true, this profile is considered " +"compatible with the active printer profile." +msgstr "" +"Expression booléenne utilisant les valeurs de configuration d’un profil " +"d’imprimante actif. Si cette expression vaut true, ce profil est considéré " +"comme compatible avec le profil d’imprimante actif." + msgid "Compatible process profiles" msgstr "Profils de traitement compatibles" msgid "Compatible process profiles condition" msgstr "Condition de profils de traitement compatibles" +msgid "" +"A boolean expression using the configuration values of an active print " +"profile. If this expression evaluates to true, this profile is considered " +"compatible with the active print profile." +msgstr "" +"Expression booléenne utilisant les valeurs de configuration d’un profil " +"d’impression actif. Si cette expression vaut true, ce profil est considéré " +"comme compatible avec le profil d’impression actif." + msgid "Print sequence, layer by layer or object by object" msgstr "Séquence d'impression, couche par couche ou objet par objet" @@ -10798,8 +11052,8 @@ msgstr "" "requis. Les ponts peuvent généralement être imprimés directement sans " "support s'ils ne sont pas très longs." -msgid "Thick bridges" -msgstr "Ponts épais" +msgid "Thick external bridges" +msgstr "Ponts extérieurs épais" msgid "" "If enabled, bridges are more reliable, can bridge longer distances, but may " @@ -10823,39 +11077,123 @@ msgstr "" "est généralement recommandé d’activer cette fonctionnalité. Pensez cependant " "à la désactiver si vous utilisez des buses larges." -msgid "Filter out small internal bridges (beta)" -msgstr "Filtrer les petits ponts internes (beta)" +msgid "Extra bridge layers (beta)" +msgstr "Couches de pont supplémentaires (beta)" msgid "" -"This option can help reducing pillowing on top surfaces in heavily slanted " -"or curved models.\n" +"This option enables the generation of an extra bridge layer over internal " +"and/or external bridges.\n" +"\n" +"Extra bridge layers help improve bridge appearance and reliability, as the " +"solid infill is better supported. This is especially useful in fast " +"printers, where the bridge and solid infill speeds vary greatly. The extra " +"bridge layer results in reduced pillowing on top surfaces, as well as " +"reduced separation of the external bridge layer from its surrounding " +"perimeters.\n" +"\n" +"It is generally recommended to set this to at least 'External bridge only', " +"unless specific issues with the sliced model are found.\n" +"\n" +"Options:\n" +"1. Disabled - does not generate second bridge layers. This is the default " +"and is set for compatibility purposes.\n" +"2. External bridge only - generates second bridge layers for external-facing " +"bridges only. Please note that small bridges that are shorter or narrower " +"than the set number of perimeters will be skipped as they would not benefit " +"from a second bridge layer. If generated, the second bridge layer will be " +"extruded parallel to the first bridge layer to reinforce the bridge " +"strength.\n" +"3. Internal bridge only - generates second bridge layers for internal " +"bridges over sparse infill only. Please note that the internal bridges count " +"towards the top shell layer count of your model. The second internal bridge " +"layer will be extruded as close to perpendicular to the first as possible. " +"If multiple regions in the same island, with varying bridge angles are " +"present, the last region of that island will be selected as the angle " +"reference.\n" +"4. Apply to all - generates second bridge layers for both internal and " +"external-facing bridges\n" +msgstr "" +"Cette option permet de générer une couche de bridge supplémentaire sur les " +"bridges internes et/ou externes.\n" +"\n" +"Les couches de pont supplémentaires permettent d'améliorer l'apparence et la " +"fiabilité du pont, car le remplissage solide est mieux supporté. Ceci est " +"particulièrement utile pour les imprimantes rapides, où les vitesses du pont " +"et du remplissage varient considérablement. La couche de pont supplémentaire " +"permet de réduire la formation de bourrelets sur les surfaces supérieures, " +"ainsi que la séparation de la couche de pont externe de ses périmètres " +"environnants.\n" +"\n" +"Il est généralement recommandé de régler ce paramètre au moins sur « Pont " +"externe uniquement », à moins que des problèmes spécifiques ne soient " +"constatés avec le modèle découpé.\n" +"\n" +"Options possibles :\n" +"1. Désactivé - ne génère pas de deuxième couche de pont. Il s'agit de la " +"valeur par défaut, définie à des fins de compatibilité.\n" +"2. Pont externe uniquement - génère des couches de deuxième pont pour les " +"ponts faisant face à l’extérieur uniquement. Veuillez noter que les petits " +"ponts qui sont plus courts ou plus étroits que le nombre de périmètres " +"défini seront ignorés car ils ne bénéficieront pas d’une deuxième couche de " +"pont. Si elle est générée, la deuxième couche de bridge sera extrudée " +"parallèlement à la première couche de bridge afin de renforcer la solidité " +"du bridge.\n" +"3. Pont interne uniquement - génère des couches de deuxième pont pour les " +"ponts internes sur un remplissage peu dense uniquement. Veuillez noter que " +"les ponts internes sont comptabilisés dans le nombre de couches de la coque " +"supérieure de votre modèle. La deuxième couche de pont interne sera extrudée " +"aussi près que possible de la perpendiculaire à la première. Si plusieurs " +"régions d’un même îlot présentent des angles de pont différents, la dernière " +"région de cet îlot sera sélectionnée comme référence d’angle.\n" +"4. Appliquer à tous - génère les deuxièmes couches de bridge pour les " +"bridges internes et externes.\n" + +msgid "Disabled" +msgstr "Désactivé" + +msgid "External bridge only" +msgstr "Pont externe uniquement" + +msgid "Internal bridge only" +msgstr "Pont interne uniquement" + +msgid "Apply to all" +msgstr "Appliquer à tous" + +msgid "Filter out small internal bridges" +msgstr "Filtrer les petits ponts internes" + +msgid "" +"This option can help reduce pillowing on top surfaces in heavily slanted or " +"curved models.\n" "\n" "By default, small internal bridges are filtered out and the internal solid " "infill is printed directly over the sparse infill. This works well in most " "cases, speeding up printing without too much compromise on top surface " "quality. \n" "\n" -"However, in heavily slanted or curved models especially where too low sparse " -"infill density is used, this may result in curling of the unsupported solid " -"infill, causing pillowing.\n" +"However, in heavily slanted or curved models, especially where too low a " +"sparse infill density is used, this may result in curling of the unsupported " +"solid infill, causing pillowing.\n" "\n" -"Disabling this option will print internal bridge layer over slightly " -"unsupported internal solid infill. The options below control the amount of " -"filtering, i.e. the amount of internal bridges created.\n" +"Enabling limited filtering or no filtering will print internal bridge layer " +"over slightly unsupported internal solid infill. The options below control " +"the sensitivity of the filtering, i.e. they control where internal bridges " +"are created.\n" "\n" -"Filter - enable this option. This is the default behavior and works well in " -"most cases.\n" +"1. Filter - enables this option. This is the default behavior and works well " +"in most cases.\n" "\n" -"Limited filtering - creates internal bridges on heavily slanted surfaces, " -"while avoiding creating unnecessary internal bridges. This works well for " -"most difficult models.\n" +"2. Limited filtering - creates internal bridges on heavily slanted surfaces " +"while avoiding unnecessary bridges. This works well for most difficult " +"models.\n" "\n" -"No filtering - creates internal bridges on every potential internal " -"overhang. This option is useful for heavily slanted top surface models. " -"However, in most cases it creates too many unnecessary bridges." +"3. No filtering - creates internal bridges on every potential internal " +"overhang. This option is useful for heavily slanted top surface models; " +"however, in most cases, it creates too many unnecessary bridges." msgstr "" -"Cette option permet de réduire la formation de cavités sur les surfaces " -"supérieures des modèles fortement inclinés ou courbés.\n" +"Cette option peut aider à réduire le gonflement des surfaces supérieures " +"dans les modèles fortement inclinés ou courbés.\n" "\n" "Par défaut, les petits ponts internes sont filtrés et le remplissage solide " "interne est imprimé directement sur le remplissage peu dense. Cela " @@ -10863,25 +11201,26 @@ msgstr "" "compromettre la qualité de la surface supérieure. \n" "\n" "Cependant, dans les modèles fortement inclinés ou courbés, en particulier " -"lorsque la densité de remplissage est trop faible, il peut en résulter un " -"gondolement du remplissage solide non soutenu, ce qui provoque un effet de " -"capitonnage.\n" +"lorsqu'une densité de remplissage trop faible est utilisée, il peut en " +"résulter un enroulement du remplissage solide non soutenu, ce qui provoque " +"un effet de pilonnage.\n" "\n" -"En désactivant cette option, la couche de pont interne sera imprimée sur un " -"remplissage solide interne légèrement non soutenu. Les options ci-dessous " -"contrôlent la quantité de filtrage, c’est-à-dire la quantité de ponts " -"internes créés.\n" +"L’activation d’un filtrage limité ou l’absence de filtrage entraîne " +"l’impression d’une couche de pont interne sur un remplissage solide interne " +"légèrement non soutenu. Les options ci-dessous contrôlent la sensibilité du " +"filtrage, c’est-à-dire qu’elles contrôlent l’endroit où les ponts internes " +"sont créés.\n" "\n" -"Filtre - activez cette option. C’est le comportement par défaut et il " +"1. Filtre - active cette option. C’est le comportement par défaut et il " "fonctionne bien dans la plupart des cas.\n" "\n" -"Filtrage limité - crée des ponts internes sur les surfaces fortement " -"inclinées, tout en évitant de créer des ponts internes inutiles. Cette " -"option fonctionne bien pour la plupart des modèles difficiles.\n" +"2. Filtrage limité - crée des ponts internes sur les surfaces fortement " +"inclinées tout en évitant les ponts inutiles. Cette option fonctionne bien " +"pour la plupart des modèles difficiles.\n" "\n" -"Pas de filtrage - crée des ponts internes sur chaque surplomb interne " +"3. Pas de filtrage - crée des ponts internes sur chaque surplomb interne " "potentiel. Cette option est utile pour les modèles à surface supérieure " -"fortement inclinée. Cependant, dans la plupart des cas, elle crée trop de " +"fortement inclinée ; cependant, dans la plupart des cas, elle crée trop de " "ponts inutiles." msgid "Filter" @@ -11907,6 +12246,9 @@ msgstr "Motif de ligne du remplissage interne" msgid "Grid" msgstr "Grille" +msgid "2D Lattice" +msgstr "Treillis 2D" + msgid "Line" msgstr "Ligne" @@ -11937,6 +12279,29 @@ msgstr "Lightning" msgid "Cross Hatch" msgstr "Quadrillage" +msgid "Quarter Cubic" +msgstr "Quartier Cubique" + +msgid "Lattice angle 1" +msgstr "Angle de treillis 1" + +msgid "" +"The angle of the first set of 2D lattice elements in the Z direction. Zero " +"is vertical." +msgstr "" +"Angle du premier ensemble d’éléments de treillis 2D dans la direction Z. " +"Zéro correspond à la verticale." + +msgid "Lattice angle 2" +msgstr "Angle de treillis 2" + +msgid "" +"The angle of the second set of 2D lattice elements in the Z direction. Zero " +"is vertical." +msgstr "" +"Angle de la deuxième série d’éléments de treillis 2D dans la direction Z. " +"Zéro correspond à la verticale." + msgid "Sparse infill anchor length" msgstr "Longueur de l’ancrage de remplissage interne" @@ -12032,8 +12397,8 @@ msgid "mm/s² or %" msgstr "mm/s² or %" msgid "" -"Acceleration of sparse infill. If the value is expressed as a percentage " -"(e.g. 100%), it will be calculated based on the default acceleration." +"Acceleration of sparse infill. If the value is expressed as a percentage (e." +"g. 100%), it will be calculated based on the default acceleration." msgstr "" "Accélération du remplissage interne. Si la valeur est exprimée en " "pourcentage (par exemple 100%), elle sera calculée en fonction de " @@ -12163,16 +12528,40 @@ msgid "Support interface fan speed" msgstr "Vitesse du ventilateur" msgid "" -"This fan speed is enforced during all support interfaces, to be able to " -"weaken their bonding with a high fan speed.\n" -"Set to -1 to disable this override.\n" -"Can only be overridden by disable_fan_first_layers." +"This part cooling fan speed is applied when printing support interfaces. " +"Setting this parameter to a higher than regular speed reduces the layer " +"binding strength between supports and the supported part, making them easier " +"to separate.\n" +"Set to -1 to disable it.\n" +"This setting is overridden by disable_fan_first_layers." msgstr "" -"Cette vitesse de ventilateur est appliquée pendant toutes les interfaces de " -"support, pour pouvoir affaiblir leur liaison avec une vitesse de ventilateur " -"élevée.\n" -"Réglez sur -1 pour désactiver ce remplacement.\n" -"Ne peut être remplacé que par disable_fan_first_layers." +"La vitesse du ventilateur de refroidissement des pièces est appliquée lors " +"de l’impression des interfaces de support. Le réglage de ce paramètre à une " +"vitesse supérieure à la vitesse normale réduit la force de liaison de la " +"couche entre les supports et la pièce supportée, ce qui les rend plus " +"faciles à séparer.\n" +"La valeur -1 permet de désactiver ce paramètre.\n" +"Ce paramètre est remplacé par disable_fan_first_layers." + +msgid "Internal bridges fan speed" +msgstr "Vitesse du ventilateur des ponts internes" + +msgid "" +"The part cooling fan speed used for all internal bridges. Set to -1 to use " +"the overhang fan speed settings instead.\n" +"\n" +"Reducing the internal bridges fan speed, compared to your regular fan speed, " +"can help reduce part warping due to excessive cooling applied over a large " +"surface for a prolonged period of time." +msgstr "" +"Vitesse du ventilateur de refroidissement de la pièce utilisée pour tous les " +"ponts internes. Réglez-la à -1 pour utiliser les paramètres de vitesse du " +"ventilateur de surplomb à la place.\n" +"\n" +"La réduction de la vitesse du ventilateur des ponts internes, par rapport à " +"la vitesse normale du ventilateur, peut aider à réduire le gauchissement des " +"pièces dû à un refroidissement excessif appliqué sur une grande surface " +"pendant une période de temps prolongée." msgid "" "Randomly jitter while printing the wall, so that the surface has a rough " @@ -12216,6 +12605,73 @@ msgstr "Appliquer la surface irrégulière sur la première couche" msgid "Whether to apply fuzzy skin on the first layer" msgstr "Application ou non d’une surface irrégulière sur la première couche" +msgid "Fuzzy skin noise type" +msgstr "Type de bruit de surface irrégulière" + +msgid "" +"Noise type to use for fuzzy skin generation.\n" +"Classic: Classic uniform random noise.\n" +"Perlin: Perlin noise, which gives a more consistent texture.\n" +"Billow: Similar to perlin noise, but clumpier.\n" +"Ridged Multifractal: Ridged noise with sharp, jagged features. Creates " +"marble-like textures.\n" +"Voronoi: Divides the surface into voronoi cells, and displaces each one by a " +"random amount. Creates a patchwork texture." +msgstr "" +"Type de bruit à utiliser pour la génération de surfaces irrégulières.\n" +"Classique : Bruit aléatoire uniforme classique.\n" +"Perlin : Bruit de Perlin, qui donne une texture plus cohérente.\n" +"Billow : Similaire au bruit de perlin, mais plus grossier.\n" +"Multifractal strié : Bruit en forme de crête avec des caractéristiques " +"nettes et irrégulières. Crée des textures semblables à des marbres.\n" +"Voronoï : Divise la surface en cellules de Voronoï et déplace chacune " +"d’entre elles de manière aléatoire. Crée une texture en patchwork." + +msgid "Classic" +msgstr "Classique" + +msgid "Perlin" +msgstr "Perlin" + +msgid "Billow" +msgstr "Billow" + +msgid "Ridged Multifractal" +msgstr "Multifractal strié" + +msgid "Voronoi" +msgstr "Voronoi" + +msgid "Fuzzy skin feature size" +msgstr "Taille des caractéristiques de la surface irrégulière" + +msgid "" +"The base size of the coherent noise features, in mm. Higher values will " +"result in larger features." +msgstr "" +"Taille de base des caractéristiques de bruit cohérent, en mm. Des valeurs " +"plus élevées se traduiront par des caractéristiques plus grandes." + +msgid "Fuzzy Skin Noise Octaves" +msgstr "Octaves de bruits de surface irrégulière" + +msgid "" +"The number of octaves of coherent noise to use. Higher values increase the " +"detail of the noise, but also increase computation time." +msgstr "" +"Nombre d’octaves de bruit cohérent à utiliser. Des valeurs plus élevées " +"augmentent le niveau de détail du bruit, mais aussi le temps de calcul." + +msgid "Fuzzy skin noise persistence" +msgstr "Persistance du bruit de la surface irrégulière" + +msgid "" +"The decay rate for higher octaves of the coherent noise. Lower values will " +"result in smoother noise." +msgstr "" +"Taux de décroissance des octaves supérieures du bruit cohérent. Des valeurs " +"plus faibles permettent d’obtenir un bruit plus doux." + msgid "Filter out tiny gaps" msgstr "Filtrer les petits espaces" @@ -12717,6 +13173,16 @@ msgstr "Espacement des lignes de lissage" msgid "The distance between the lines of ironing" msgstr "La distance entre les lignes de lissage" +msgid "Ironing inset" +msgstr "Encastrement du repassage" + +msgid "" +"The distance to keep from the edges. A value of 0 sets this to half of the " +"nozzle diameter" +msgstr "" +"Distance à respecter par rapport aux bords. La valeur 0 correspond à la " +"moitié du diamètre de la buse." + msgid "Ironing speed" msgstr "Vitesse de lissage" @@ -12993,17 +13459,32 @@ msgid "" "Default value of 3 works well for most cases. If your printer is stuttering, " "increase this value to reduce the number of adjustments made\n" "\n" -"Allowed values: 1-5" +"Allowed values: 0.5-5" msgstr "" -"Une valeur inférieure entraîne des transitions du taux d’extrusion plus " -"douces. Cependant, cela entraîne un fichier G-code beaucoup plus volumineux " -"et davantage d’instructions à traiter par l’imprimante.\n" +"Une valeur plus faible permet d’obtenir des transitions de taux d’extrusion " +"plus douces. Cependant, cela se traduit par un fichier gcode beaucoup plus " +"volumineux et plus d’instructions à traiter par l’imprimante. \n" "\n" -"La valeur 3 par défaut fonctionne bien dans la plupart des cas. Si votre " -"imprimante a du mal à suivre, augmentez cette valeur pour réduire le nombre " -"de réglages effectués\n" +"La valeur par défaut de 3 fonctionne bien dans la plupart des cas. Si votre " +"imprimante a des ratés, augmentez cette valeur pour réduire le nombre " +"d’ajustements effectués.\n" "\n" -"Valeurs autorisées : 1-5" +"Valeurs autorisées : 0.5-5" + +msgid "Apply only on external features" +msgstr "Ne s’applique qu’aux parties extérieures" + +msgid "" +"Applies extrusion rate smoothing only on external perimeters and overhangs. " +"This can help reduce artefacts due to sharp speed transitions on externally " +"visible overhangs without impacting the print speed of features that will " +"not be visible to the user." +msgstr "" +"Applique le lissage de la vitesse d’extrusion uniquement sur les périmètres " +"externes et les surplombs. Cela permet de réduire les artefacts dus à des " +"transitions de vitesse brutales sur les surplombs visibles de l’extérieur, " +"sans affecter la vitesse d’impression des éléments qui ne seront pas " +"visibles par l’utilisateur." msgid "Minimum speed for part cooling fan" msgstr "Vitesse minimale du ventilateur de refroidissement des pièces" @@ -13036,13 +13517,13 @@ msgid "Min print speed" msgstr "Vitesse d'impression minimale" msgid "" -"The minimum printing speed that the printer will slow down to to attempt to " -"maintain the minimum layer time above, when slow down for better layer " -"cooling is enabled." +"The minimum print speed to which the printer slows down to maintain the " +"minimum layer time defined above when the slowdown for better layer cooling " +"is enabled." msgstr "" -"Vitesse d’impression minimale à laquelle l’imprimante ralentira pour tenter " -"de maintenir le temps de couche minimal ci-dessus, lorsque la fonction de " -"ralentissement pour un meilleur refroidissement de la couche est activée." +"Vitesse d’impression minimale à laquelle l’imprimante ralentit pour " +"maintenir le temps de couche minimal défini ci-dessus lorsque le " +"ralentissement pour un meilleur refroidissement de la couche est activé." msgid "Diameter of nozzle" msgstr "Diamètre de la buse" @@ -13396,7 +13877,7 @@ msgstr "" "changement de filament." msgid "Z-hop height" -msgstr "" +msgstr "Hauteur du saut en Z" msgid "" "Whenever the retraction is done, the nozzle is lifted a little to create " @@ -13430,7 +13911,7 @@ msgstr "" "inférieur à cette valeur." msgid "Z-hop type" -msgstr "" +msgstr "Type de saut en Z" msgid "Z hop type" msgstr "Type de décalage en Z" @@ -13829,9 +14310,6 @@ msgstr "" "actives, elle peut les croiser. Pour éviter cela, augmentez la valeur de la " "distance de la jupe.\n" -msgid "Disabled" -msgstr "Désactivé" - msgid "Enabled" msgstr "Activé" @@ -14132,25 +14610,25 @@ msgid "Enable support generation." msgstr "Activer la génération de support." msgid "" -"normal(auto) and tree(auto) is used to generate support automatically. If " -"normal(manual) or tree(manual) is selected, only support enforcers are " +"Normal (auto) and Tree (auto) is used to generate support automatically. If " +"Normal (manual) or Tree (manual) is selected, only support enforcers are " "generated" msgstr "" -"Normaux (auto) et Arborescents (auto) sont utilisés pour générer " -"automatiquement un support. Si vous sélectionnez Normaux (manuel) ou " -"Arborescents (manuel), seuls les générateurs de support manuels sont générés" +"Les options Normal (auto) et Arbre (auto) sont utilisées pour générer " +"automatiquement des supports. Si l’option Normal (manuel) ou Arbre (manuel) " +"est sélectionnée, seuls les forceurs de supports sont générés." -msgid "normal(auto)" -msgstr "Normaux (auto)" +msgid "Normal (auto)" +msgstr "Normal (auto)" -msgid "tree(auto)" -msgstr "Arborescents (auto)" +msgid "Tree (auto)" +msgstr "Arbre (auto)" -msgid "normal(manual)" -msgstr "Normaux (manuel)" +msgid "Normal (manual)" +msgstr "Normal (manuel)" -msgid "tree(manual)" -msgstr "Arborescents (manuel)" +msgid "Tree (manual)" +msgstr "Arbre (manuel)" msgid "Support/object xy distance" msgstr "Distance support/objet xy" @@ -14382,6 +14860,18 @@ msgstr "" "Un support sera généré pour les surplombs dont l'angle de pente est " "inférieur au seuil." +msgid "Threshold overlap" +msgstr "Chevauchement du seuil" + +msgid "" +"If threshold angle is zero, support will be generated for overhangs whose " +"overlap is below the threshold. The smaller this value is, the steeper the " +"overhang that can be printed without support." +msgstr "" +"Si l’angle seuil est égal à zéro, le support sera généré pour les surplombs " +"dont le chevauchement est inférieur au seuil. Plus cette valeur est petite, " +"plus la pente du surplomb qui peut être imprimé sans support est importante." + msgid "Tree support branch angle" msgstr "Angle de branche support arborescent" @@ -14868,9 +15358,9 @@ msgid "Idle temperature" msgstr "Température au repos" msgid "" -"Nozzle temperature when the tool is currently not used in multi-tool " -"setups.This is only used when 'Ooze prevention' is active in Print Settings. " -"Set to 0 to disable." +"Nozzle temperature when the tool is currently not used in multi-tool setups." +"This is only used when 'Ooze prevention' is active in Print Settings. Set to " +"0 to disable." msgstr "" "Température de la buse lorsque l’outil n’est pas utilisé dans les " "configurations multi-outils. Cette fonction n’est utilisée que lorsque la " @@ -14986,9 +15476,6 @@ msgstr "" "remplissage d’espace. Le moteur Arachne produit des parois avec une largeur " "d’extrusion variable." -msgid "Classic" -msgstr "Classique" - msgid "Arachne" msgstr "Arachné" @@ -15606,8 +16093,8 @@ msgstr "Support : propagation des branches à la couche %d" msgid "" "Unknown file format. Input file must have .stl, .obj, .amf(.xml) extension." msgstr "" -"Format de fichier inconnu : le fichier d'entrée doit porter " -"l'extension .stl, .obj ou .amf (.xml)." +"Format de fichier inconnu : le fichier d'entrée doit porter l'extension ." +"stl, .obj ou .amf (.xml)." msgid "Loading of a model file failed." msgstr "Le chargement du fichier modèle a échoué." @@ -15617,8 +16104,8 @@ msgstr "Le fichier fourni n'a pas pu être lu car il est vide." msgid "Unknown file format. Input file must have .3mf or .zip.amf extension." msgstr "" -"Format de fichier inconnu : le fichier d'entrée doit porter l'extension " -".3mf, .zip ou .amf." +"Format de fichier inconnu : le fichier d'entrée doit porter " +"l'extension .3mf, .zip ou .amf." msgid "Canceled" msgstr "Annulé" @@ -17092,6 +17579,9 @@ msgstr "Imprimante Physique" msgid "Print Host upload" msgstr "Envoi vers l’imprimante hôte" +msgid "Test" +msgstr "Tester" + msgid "Could not get a valid Printer Host reference" msgstr "Impossible d’obtenir une référence d’imprimante hôte valide" @@ -18004,6 +18494,245 @@ msgstr "" "déformer, tels que l’ABS, une augmentation appropriée de la température du " "plateau chauffant peut réduire la probabilité de déformation." +#~ msgid "Current Cabin humidity" +#~ msgstr "Humidité dans le caisson" + +#~ msgid "Stopped." +#~ msgstr "Arrêté." + +#, c-format, boost-format +#~ msgid "Connect failed [%d]!" +#~ msgstr "La connexion a échoué [%d] !" + +#~ msgid "Initialize failed (Device connection not ready)!" +#~ msgstr "" +#~ "L'initialisation a échoué (la connexion de l'appareil n'est pas prête) !" + +#~ msgid "Initialize failed (Storage unavailable, insert SD card.)!" +#~ msgstr "" +#~ "Échec de l’initialisation (Stockage indisponible, insérer la carte SD.) !" + +#, c-format, boost-format +#~ msgid "Initialize failed (%s)!" +#~ msgstr "L'initialisation a échoué (%s)!" + +#~ msgid "LAN Connection Failed (Sending print file)" +#~ msgstr "" +#~ "Échec de la connexion au réseau local (envoi du fichier d'impression)" + +#~ msgid "" +#~ "Step 1, please confirm Orca Slicer and your printer are in the same LAN." +#~ msgstr "" +#~ "Étape 1 : Veuillez confirmer que OrcaSlicer et votre imprimante sont sur " +#~ "le même réseau local." + +#~ msgid "" +#~ "Step 2, if the IP and Access Code below are different from the actual " +#~ "values on your printer, please correct them." +#~ msgstr "" +#~ "Étape 2 : Si l'adresse IP et le code d'accès ci-dessous sont différents " +#~ "des valeurs actuelles de votre imprimante, corrigez-les." + +#~ msgid "Step 3: Ping the IP address to check for packet loss and latency." +#~ msgstr "" +#~ "Étape 3 : Effectuer un ping de l’adresse IP pour vérifier la perte de " +#~ "paquets et la latence." + +#~ msgid "IP and Access Code Verified! You may close the window" +#~ msgstr "IP et code d’accès vérifiés ! Vous pouvez fermer la fenêtre" + +#~ msgid "Force cooling for overhang and bridge" +#~ msgstr "Forcer la ventilation pour les surplombs et ponts" + +#~ msgid "" +#~ "Enable this option to optimize part cooling fan speed for overhang and " +#~ "bridge to get better cooling" +#~ msgstr "" +#~ "Activez cette option pour optimiser la vitesse du ventilateur de " +#~ "refroidissement des pièces pour le surplomb et le pont afin d'obtenir un " +#~ "meilleur refroidissement" + +#~ msgid "Fan speed for overhang" +#~ msgstr "Vitesse du ventilateur pour les surplombs" + +#~ msgid "" +#~ "Force part cooling fan to be this speed when printing bridge or overhang " +#~ "wall which has large overhang degree. Forcing cooling for overhang and " +#~ "bridge can get better quality for these part" +#~ msgstr "" +#~ "Forcez le ventilateur de refroidissement des pièces à être à cette " +#~ "vitesse lors de l'impression d'un pont ou d'une paroi en surplomb qui a " +#~ "un degré de surplomb important. Forcer le refroidissement pour les " +#~ "surplombs et le pont pour obtenir une meilleure qualité pour ces pièces." + +#~ msgid "Cooling overhang threshold" +#~ msgstr "Seuil de dépassement de refroidissement" + +#, c-format +#~ msgid "" +#~ "Force cooling fan to be specific speed when overhang degree of printed " +#~ "part exceeds this value. Expressed as percentage which indicates how much " +#~ "width of the line without support from lower layer. 0% means forcing " +#~ "cooling for all outer wall no matter how much overhang degree" +#~ msgstr "" +#~ "Forcer le ventilateur de refroidissement à atteindre une vitesse " +#~ "spécifique lorsque le degré de surplomb de la pièce imprimée dépasse " +#~ "cette valeur. Ceci est exprimé en pourcentage qui indique la largeur de " +#~ "la ligne sans support provenant de la couche inférieure. 0%% signifie un " +#~ "refroidissement forcé de toutes les parois extérieures, quel que soit le " +#~ "degré de surplomb." + +#~ msgid "Bridge infill direction" +#~ msgstr "Direction du remplissage des ponts" + +#~ msgid "Bridge density" +#~ msgstr "Densité des ponts" + +#~ msgid "" +#~ "Density of external bridges. 100% means solid bridge. Default is 100%." +#~ msgstr "" +#~ "Densité des ponts externes, Une valeur à 100% signifie un pont plein. La " +#~ "valeur par défaut est 100%." + +#~ msgid "" +#~ "Improve shell precision by adjusting outer wall spacing. This also " +#~ "improves layer consistency.\n" +#~ "Note: This setting will only take effect if the wall sequence is " +#~ "configured to Inner-Outer" +#~ msgstr "" +#~ "Améliorez la précision de la coque en ajustant l’espacement des parois " +#~ "extérieures. Cela permet également d’améliorer la cohérence des couches.\n" +#~ "Remarque : ce paramètre n’a d’effet que si la séquence des parois est " +#~ "configurée sur Intérieur-Extérieur." + +#~ msgid "Thick bridges" +#~ msgstr "Ponts épais" + +#~ msgid "Filter out small internal bridges (beta)" +#~ msgstr "Filtrer les petits ponts internes (beta)" + +#~ msgid "" +#~ "This option can help reducing pillowing on top surfaces in heavily " +#~ "slanted or curved models.\n" +#~ "\n" +#~ "By default, small internal bridges are filtered out and the internal " +#~ "solid infill is printed directly over the sparse infill. This works well " +#~ "in most cases, speeding up printing without too much compromise on top " +#~ "surface quality. \n" +#~ "\n" +#~ "However, in heavily slanted or curved models especially where too low " +#~ "sparse infill density is used, this may result in curling of the " +#~ "unsupported solid infill, causing pillowing.\n" +#~ "\n" +#~ "Disabling this option will print internal bridge layer over slightly " +#~ "unsupported internal solid infill. The options below control the amount " +#~ "of filtering, i.e. the amount of internal bridges created.\n" +#~ "\n" +#~ "Filter - enable this option. This is the default behavior and works well " +#~ "in most cases.\n" +#~ "\n" +#~ "Limited filtering - creates internal bridges on heavily slanted surfaces, " +#~ "while avoiding creating unnecessary internal bridges. This works well for " +#~ "most difficult models.\n" +#~ "\n" +#~ "No filtering - creates internal bridges on every potential internal " +#~ "overhang. This option is useful for heavily slanted top surface models. " +#~ "However, in most cases it creates too many unnecessary bridges." +#~ msgstr "" +#~ "Cette option permet de réduire la formation de cavités sur les surfaces " +#~ "supérieures des modèles fortement inclinés ou courbés.\n" +#~ "\n" +#~ "Par défaut, les petits ponts internes sont filtrés et le remplissage " +#~ "solide interne est imprimé directement sur le remplissage peu dense. Cela " +#~ "fonctionne bien dans la plupart des cas, accélérant l'impression sans " +#~ "trop compromettre la qualité de la surface supérieure. \n" +#~ "\n" +#~ "Cependant, dans les modèles fortement inclinés ou courbés, en particulier " +#~ "lorsque la densité de remplissage est trop faible, il peut en résulter un " +#~ "gondolement du remplissage solide non soutenu, ce qui provoque un effet " +#~ "de capitonnage.\n" +#~ "\n" +#~ "En désactivant cette option, la couche de pont interne sera imprimée sur " +#~ "un remplissage solide interne légèrement non soutenu. Les options ci-" +#~ "dessous contrôlent la quantité de filtrage, c’est-à-dire la quantité de " +#~ "ponts internes créés.\n" +#~ "\n" +#~ "Filtre - activez cette option. C’est le comportement par défaut et il " +#~ "fonctionne bien dans la plupart des cas.\n" +#~ "\n" +#~ "Filtrage limité - crée des ponts internes sur les surfaces fortement " +#~ "inclinées, tout en évitant de créer des ponts internes inutiles. Cette " +#~ "option fonctionne bien pour la plupart des modèles difficiles.\n" +#~ "\n" +#~ "Pas de filtrage - crée des ponts internes sur chaque surplomb interne " +#~ "potentiel. Cette option est utile pour les modèles à surface supérieure " +#~ "fortement inclinée. Cependant, dans la plupart des cas, elle crée trop de " +#~ "ponts inutiles." + +#~ msgid "" +#~ "This fan speed is enforced during all support interfaces, to be able to " +#~ "weaken their bonding with a high fan speed.\n" +#~ "Set to -1 to disable this override.\n" +#~ "Can only be overridden by disable_fan_first_layers." +#~ msgstr "" +#~ "Cette vitesse de ventilateur est appliquée pendant toutes les interfaces " +#~ "de support, pour pouvoir affaiblir leur liaison avec une vitesse de " +#~ "ventilateur élevée.\n" +#~ "Réglez sur -1 pour désactiver ce remplacement.\n" +#~ "Ne peut être remplacé que par disable_fan_first_layers." + +#~ msgid "" +#~ "A lower value results in smoother extrusion rate transitions. However, " +#~ "this results in a significantly larger gcode file and more instructions " +#~ "for the printer to process. \n" +#~ "\n" +#~ "Default value of 3 works well for most cases. If your printer is " +#~ "stuttering, increase this value to reduce the number of adjustments made\n" +#~ "\n" +#~ "Allowed values: 1-5" +#~ msgstr "" +#~ "Une valeur inférieure entraîne des transitions du taux d’extrusion plus " +#~ "douces. Cependant, cela entraîne un fichier G-code beaucoup plus " +#~ "volumineux et davantage d’instructions à traiter par l’imprimante.\n" +#~ "\n" +#~ "La valeur 3 par défaut fonctionne bien dans la plupart des cas. Si votre " +#~ "imprimante a du mal à suivre, augmentez cette valeur pour réduire le " +#~ "nombre de réglages effectués\n" +#~ "\n" +#~ "Valeurs autorisées : 1-5" + +#~ msgid "" +#~ "The minimum printing speed that the printer will slow down to to attempt " +#~ "to maintain the minimum layer time above, when slow down for better layer " +#~ "cooling is enabled." +#~ msgstr "" +#~ "Vitesse d’impression minimale à laquelle l’imprimante ralentira pour " +#~ "tenter de maintenir le temps de couche minimal ci-dessus, lorsque la " +#~ "fonction de ralentissement pour un meilleur refroidissement de la couche " +#~ "est activée." + +#~ msgid "" +#~ "normal(auto) and tree(auto) is used to generate support automatically. If " +#~ "normal(manual) or tree(manual) is selected, only support enforcers are " +#~ "generated" +#~ msgstr "" +#~ "Normaux (auto) et Arborescents (auto) sont utilisés pour générer " +#~ "automatiquement un support. Si vous sélectionnez Normaux (manuel) ou " +#~ "Arborescents (manuel), seuls les générateurs de support manuels sont " +#~ "générés" + +#~ msgid "normal(auto)" +#~ msgstr "Normaux (auto)" + +#~ msgid "tree(auto)" +#~ msgstr "Arborescents (auto)" + +#~ msgid "normal(manual)" +#~ msgstr "Normaux (manuel)" + +#~ msgid "tree(manual)" +#~ msgstr "Arborescents (manuel)" + #~ msgid "ShiftLeft mouse button" #~ msgstr "ShiftLeft mouse button" @@ -19164,13 +19893,6 @@ msgstr "" #~ msgstr "" #~ "Compensation des débits de remplissage des petites zones (expérimental)" -#~ msgid "" -#~ "Improve shell precision by adjusting outer wall spacing. This also " -#~ "improves layer consistency." -#~ msgstr "" -#~ "Améliorer la précision de la coque en ajustant l’espacement des parois " -#~ "extérieures. Cela améliore également la consistance des couches." - #~ msgid "Enable Flow Compensation" #~ msgstr "Activer la compensation de débit" @@ -19192,10 +19914,10 @@ msgstr "" #~ "chargement des données de géométrie uniquement." #~ msgid "" -#~ "Relative extrusion is recommended when using \"label_objects\" " -#~ "option.Some extruders work better with this option unchecked (absolute " -#~ "extrusion mode). Wipe tower is only compatible with relative mode. It is " -#~ "always enabled on BambuLab printers. Default is checked" +#~ "Relative extrusion is recommended when using \"label_objects\" option." +#~ "Some extruders work better with this option unchecked (absolute extrusion " +#~ "mode). Wipe tower is only compatible with relative mode. It is always " +#~ "enabled on BambuLab printers. Default is checked" #~ msgstr "" #~ "L’extrusion relative est recommandée lors de l’utilisation de l’option " #~ "\"label_objects\". Certains extrudeurs fonctionnent mieux avec cette " @@ -19552,11 +20274,11 @@ msgstr "" #~ msgstr "Niveau de débogage" #~ msgid "" -#~ "Sets debug logging level. 0:fatal, 1:error, 2:warning, 3:info, 4:debug, " -#~ "5:trace\n" +#~ "Sets debug logging level. 0:fatal, 1:error, 2:warning, 3:info, 4:debug, 5:" +#~ "trace\n" #~ msgstr "" -#~ "Définit le niveau de journalisation du débogage. 0 :fatal, 1 :erreur, " -#~ "2 :avertissement, 3 :info, 4 :débogage, 5 :trace\n" +#~ "Définit le niveau de journalisation du débogage. 0 :fatal, 1 :erreur, 2 :" +#~ "avertissement, 3 :info, 4 :débogage, 5 :trace\n" #~ msgid "" #~ "3D Scene Operations\n" diff --git a/localization/i18n/hu/OrcaSlicer_hu.po b/localization/i18n/hu/OrcaSlicer_hu.po index 3bf96206c6..b127e975ce 100644 --- a/localization/i18n/hu/OrcaSlicer_hu.po +++ b/localization/i18n/hu/OrcaSlicer_hu.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-01-04 17:35+0100\n" +"POT-Creation-Date: 2025-02-14 23:42+0800\n" "Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -2790,9 +2790,6 @@ msgstr "" msgid "About %s" msgstr "%s névjegye" -msgid "Orca Slicer" -msgstr "" - msgid "OrcaSlicer is based on BambuStudio, PrusaSlicer, and SuperSlicer." msgstr "" @@ -2846,9 +2843,6 @@ msgstr "" msgid "SN" msgstr "SN" -msgid "Setting AMS slot information while printing is not supported" -msgstr "Nyomtatás közben nem változtathatóak meg a AMS férőhelyek adatai" - msgid "Factors of Flow Dynamics Calibration" msgstr "Anyagáramlás kalibrálásának faktorai" @@ -2861,6 +2855,9 @@ msgstr "K-tényező" msgid "Factor N" msgstr "N-tényező" +msgid "Setting AMS slot information while printing is not supported" +msgstr "Nyomtatás közben nem változtathatóak meg a AMS férőhelyek adatai" + msgid "Setting Virtual slot information while printing is not supported" msgstr "Setting Virtual slot information while printing is not supported" @@ -2983,8 +2980,8 @@ msgstr "AMS kikapcsolása" msgid "Print with the filament mounted on the back of chassis" msgstr "Nyomtatás külső tartón lévő filamenttel" -msgid "Current Cabin humidity" -msgstr "Current Cabin humidity" +msgid "Current AMS humidity" +msgstr "" msgid "" "Please change the desiccant when it is too wet. The indicator may not " @@ -5061,8 +5058,8 @@ msgstr "" msgid "The printer has been logged out and cannot connect." msgstr "A nyomtató ki van jelentkezve, és nem tud csatlakozni." -msgid "Stopped." -msgstr "Megállítva." +msgid "Video Stopped." +msgstr "" msgid "LAN Connection Failed (Failed to start liveview)" msgstr "Sikertelen LAN csatlakozás (Nem sikerült elindítani az élő videót)" @@ -5153,10 +5150,6 @@ msgstr "Reload file list from printer." msgid "No printers." msgstr "No printers." -#, c-format, boost-format -msgid "Connect failed [%d]!" -msgstr "Connection failed [%d]!" - msgid "Loading file list..." msgstr "Loading file list..." @@ -5166,9 +5159,6 @@ msgstr "Nincs fájl" msgid "Load failed" msgstr "Load failed" -msgid "Initialize failed (Device connection not ready)!" -msgstr "Initialization failed (Device connection not ready)!" - msgid "" "Browsing file in SD card is not supported in current firmware. Please update " "the printer firmware." @@ -5176,7 +5166,9 @@ msgstr "" "Browsing file in SD card is not supported in current firmware. Please update " "the printer firmware." -msgid "Initialize failed (Storage unavailable, insert SD card.)!" +msgid "" +"Please check if the SD card is inserted into the printer.\n" +"If it still cannot be read, you can try formatting the SD card." msgstr "" msgid "LAN Connection Failed (Failed to view sdcard)" @@ -5185,10 +5177,6 @@ msgstr "LAN Connection Failed (Failed to view sdcard)" msgid "Browsing file in SD card is not supported in LAN Only Mode." msgstr "Browsing file in SD card is not supported in LAN Only Mode." -#, c-format, boost-format -msgid "Initialize failed (%s)!" -msgstr "Sikertelen inicializálás (%s)!" - #, c-format, boost-format msgid "You are going to delete %u file from printer. Are you sure to continue?" msgid_plural "" @@ -5619,6 +5607,25 @@ msgstr "Legújabb verzió: " msgid "Not for now" msgstr "Not for now" +msgid "Server Exception" +msgstr "" + +msgid "" +"The server is unable to respond. Please click the link below to check the " +"server status." +msgstr "" + +msgid "" +"If the server is in a fault state, you can temporarily use offline printing " +"or local network printing." +msgstr "" + +msgid "How to use LAN only mode" +msgstr "" + +msgid "Don't show this dialog again" +msgstr "" + msgid "3D Mouse disconnected." msgstr "3D Mouse csatlakoztatva." @@ -6330,6 +6337,10 @@ msgstr "Megnyitás projektként" msgid "Import geometry only" msgstr "Csak a geometria importálása" +msgid "" +"This option can be changed later in preferences, under 'Load Behaviour'." +msgstr "" + msgid "Only one G-code file can be opened at the same time." msgstr "Egyszerre csak egy G-kód fájl nyitható meg." @@ -6762,6 +6773,24 @@ msgstr "" msgid "Associate URLs to OrcaSlicer" msgstr "" +msgid "Load All" +msgstr "" + +msgid "Ask When Relevant" +msgstr "" + +msgid "Always Ask" +msgstr "" + +msgid "Load Geometry Only" +msgstr "" + +msgid "Load Behaviour" +msgstr "" + +msgid "Should printer/filament/process settings be loaded when opening a .3mf?" +msgstr "" + msgid "Maximum recent projects" msgstr "Maximum recent projects" @@ -7334,6 +7363,9 @@ msgstr "Eszköz nevének módosítása" msgid "Bind with Pin Code" msgstr "Bind with Pin Code" +msgid "Bind with Access Code" +msgstr "" + msgid "Send to Printer SD card" msgstr "Küldés a nyomtatóban lévő MicroSD kártyára" @@ -7634,6 +7666,75 @@ msgstr "" "gombbal a tálca egy üres részére, majd válaszd a „Primitív hozzáadása“ -> " "„Timelapse törlőtorony“ lehetőséget." +msgid "" +"A copy of the current system preset will be created, which will be detached " +"from the system preset." +msgstr "" + +msgid "" +"The current custom preset will be detached from the parent system preset." +msgstr "" + +msgid "Modifications to the current profile will be saved." +msgstr "" + +msgid "" +"This action is not revertible.\n" +"Do you want to proceed?" +msgstr "" + +msgid "Detach preset" +msgstr "" + +msgid "This is a default preset." +msgstr "" + +msgid "This is a system preset." +msgstr "" + +msgid "Current preset is inherited from the default preset." +msgstr "" + +msgid "Current preset is inherited from" +msgstr "" + +msgid "It can't be deleted or modified." +msgstr "" + +msgid "" +"Any modifications should be saved as a new preset inherited from this one." +msgstr "" + +msgid "To do that please specify a new name for the preset." +msgstr "" + +msgid "Additional information:" +msgstr "" + +msgid "vendor" +msgstr "" + +msgid "printer model" +msgstr "" + +msgid "default print profile" +msgstr "" + +msgid "default filament profile" +msgstr "" + +msgid "default SLA material profile" +msgstr "" + +msgid "default SLA print profile" +msgstr "" + +msgid "full profile name" +msgstr "" + +msgid "symbolic profile name" +msgstr "" + msgid "Line width" msgstr "Nyomtatott vonal szélessége" @@ -7730,6 +7831,12 @@ msgstr "Post-processing Scripts" msgid "Notes" msgstr "Notes" +msgid "Dependencies" +msgstr "" + +msgid "Profile dependencies" +msgstr "" + msgid "Frequent" msgstr "Gyakori" @@ -8822,21 +8929,22 @@ msgstr "View Liveview" msgid "Confirm and Update Nozzle" msgstr "Fúvóka lecserélésének megerősítése" -msgid "LAN Connection Failed (Sending print file)" -msgstr "LAN kapcsolódás sikertelen (nyomtatási fájl küldése)" - -msgid "" -"Step 1, please confirm Orca Slicer and your printer are in the same LAN." +msgid "Connect the printer using IP and access code" msgstr "" -"1. lépés: Ellenőrizd, hogy a Orca Slicer és a nyomtató ugyanazon a helyi " -"hálózaton van." msgid "" -"Step 2, if the IP and Access Code below are different from the actual values " +"Step 1. Please confirm Orca Slicer and your printer are in the same LAN." +msgstr "" + +msgid "" +"Step 2. If the IP and Access Code below are different from the actual values " "on your printer, please correct them." msgstr "" -"2. lépés: Ha az alábbi IP és hozzáférési kód eltér a nyomtatón láthatótól, " -"kérjük, javítsd ki őket." + +msgid "" +"Step 3. Please obtain the device SN from the printer side; it is usually " +"found in the device information on the printer screen." +msgstr "" msgid "IP" msgstr "IP" @@ -8844,19 +8952,38 @@ msgstr "IP" msgid "Access Code" msgstr "Hozzáférési kód" +msgid "Printer model" +msgstr "" + +msgid "Printer name" +msgstr "" + msgid "Where to find your printer's IP and Access Code?" msgstr "Hol találom a nyomtató IP címét és a hozzáférési kódot?" -msgid "Step 3: Ping the IP address to check for packet loss and latency." +msgid "Connect" msgstr "" -"3. lépés: Pingeld meg az IP-címet a csomagveszteség és késleltetés " -"ellenőrzéséhez." -msgid "Test" -msgstr "Teszt" +msgid "Manual Setup" +msgstr "" -msgid "IP and Access Code Verified! You may close the window" -msgstr "IP és hozzáférési kód leellenőrizve! Bezárhatod az ablakot" +msgid "connecting..." +msgstr "" + +msgid "Failed to connect to printer." +msgstr "" + +msgid "Failed to publish login request." +msgstr "" + +msgid "The printer has already been bound." +msgstr "" + +msgid "The printer mode is incorrect, please switch to LAN Only." +msgstr "" + +msgid "Connecting to printer... The dialog will close later" +msgstr "" msgid "Connection failed, please double check IP and Access Code" msgstr "" @@ -9797,46 +9924,44 @@ msgstr "" msgid "Nowhere" msgstr "" -msgid "Force cooling for overhang and bridge" -msgstr "Hűtés kényszerítése túlnyúlásoknál és áthidalásoknál" +msgid "Force cooling for overhangs and bridges" +msgstr "" msgid "" -"Enable this option to optimize part cooling fan speed for overhang and " -"bridge to get better cooling" +"Enable this option to allow adjustment of the part cooling fan speed for " +"specifically for overhangs, internal and external bridges. Setting the fan " +"speed specifically for these features can improve overall print quality and " +"reduce warping." msgstr "" -"Engedélyezd ezt az opciót a tárgyhűtő ventilátor fordulatszámának " -"optimalizálásához a jobb hűtés érdekében túlnyúlásoknál és áthidalásoknál" -msgid "Fan speed for overhang" -msgstr "Ventilátor fordulatszám túlnyúlásnál" +msgid "Overhangs and external bridges fan speed" +msgstr "" msgid "" -"Force part cooling fan to be this speed when printing bridge or overhang " -"wall which has large overhang degree. Forcing cooling for overhang and " -"bridge can get better quality for these part" +"Use this part cooling fan speed when printing bridges or overhang walls with " +"an overhang threshold that exceeds the value set in the 'Overhangs cooling " +"threshold' parameter above. Increasing the cooling specifically for " +"overhangs and bridges can improve the overall print quality of these " +"features.\n" +"\n" +"Please note, this fan speed is clamped on the lower end by the minimum fan " +"speed threshold set above. It is also adjusted upwards up to the maximum fan " +"speed threshold when the minimum layer time threshold is not met." msgstr "" -"A nagy túlnyúlású áthidalások vagy túlnyúló falak nyomtatásakor a tárgyhűtő " -"ventilátor kényszerítve lesz, hogy ezt a fordulatszámot használja. A " -"túlnyúlások és áthidalások hűtésének kikényszerítésével jobb minőség érhető " -"el ezeken a részeken." -msgid "Cooling overhang threshold" -msgstr "Túlnyúlás hűtésének küszöbértéke" +msgid "Overhang cooling activation threshold" +msgstr "" -#, c-format +#, c-format, boost-format msgid "" -"Force cooling fan to be specific speed when overhang degree of printed part " -"exceeds this value. Expressed as percentage which indicates how much width " -"of the line without support from lower layer. 0% means forcing cooling for " -"all outer wall no matter how much overhang degree" +"When the overhang exceeds this specified threshold, force the cooling fan to " +"run at the 'Overhang Fan Speed' set below. This threshold is expressed as a " +"percentage, indicating the portion of each line's width that is unsupported " +"by the layer beneath it. Setting this value to 0% forces the cooling fan to " +"run for all outer walls, regardless of the overhang degree." msgstr "" -"Kényszeríti a hűtőventilátort, hogy egy adott fordulatszámot használjon, ha " -"a túlnyúlás mértéke meghaladja ezt az értéket. Százalékban van kifejezve, " -"ami azt jelzi, hogy a nyomtatott vonal hány százaléka maradhat az alsóbb " -"rétegek alátámasztása nélkül. A 0%%-os érték bekapcsolja a hűtést a külső " -"fal teljes szélességén, függetlenül a túlnyúlás mértékétől." -msgid "Bridge infill direction" +msgid "External bridge infill direction" msgstr "" msgid "" @@ -9849,10 +9974,44 @@ msgstr "" "érték kerül alkalmazásra. Ha az áthidalást a falakkal párhuzamosra szeretnéd " "állítani, használj 180°-os értéket." -msgid "Bridge density" +msgid "Internal bridge infill direction" msgstr "" -msgid "Density of external bridges. 100% means solid bridge. Default is 100%." +msgid "" +"Internal bridging angle override. If left to zero, the bridging angle will " +"be calculated automatically. Otherwise the provided angle will be used for " +"internal bridges. Use 180°for zero angle.\n" +"\n" +"It is recommended to leave it at 0 unless there is a specific model need not " +"to." +msgstr "" + +msgid "External bridge density" +msgstr "" + +msgid "" +"Controls the density (spacing) of external bridge lines. 100% means solid " +"bridge. Default is 100%.\n" +"\n" +"Lower density external bridges can help improve reliability as there is more " +"space for air to circulate around the extruded bridge, improving its cooling " +"speed." +msgstr "" + +msgid "Internal bridge density" +msgstr "" + +msgid "" +"Controls the density (spacing) of internal bridge lines. 100% means solid " +"bridge. Default is 100%.\n" +"\n" +" Lower density internal bridges can help reduce top surface pillowing and " +"improve internal bridge reliability as there is more space for air to " +"circulate around the extruded bridge, improving its cooling speed. \n" +"\n" +"This option works particularly well when combined with the second internal " +"bridge over infill option, further improving internal bridging structure " +"before solid infill is extruded." msgstr "" msgid "Bridge flow ratio" @@ -9905,9 +10064,7 @@ msgstr "" msgid "" "Improve shell precision by adjusting outer wall spacing. This also improves " -"layer consistency.\n" -"Note: This setting will only take effect if the wall sequence is configured " -"to Inner-Outer" +"layer consistency." msgstr "" msgid "Only one wall on top surfaces" @@ -10139,12 +10296,24 @@ msgstr "felfelé kompatibilis gép" msgid "Compatible machine condition" msgstr "Kompatibilis gépállapot" +msgid "" +"A boolean expression using the configuration values of an active printer " +"profile. If this expression evaluates to true, this profile is considered " +"compatible with the active printer profile." +msgstr "" + msgid "Compatible process profiles" msgstr "Kompatibilis folyamatprofilok" msgid "Compatible process profiles condition" msgstr "Kompatibilis folyamatprofil állapot" +msgid "" +"A boolean expression using the configuration values of an active print " +"profile. If this expression evaluates to true, this profile is considered " +"compatible with the active print profile." +msgstr "" + msgid "Print sequence, layer by layer or object by object" msgstr "Nyomtatási sorrend, rétegenként vagy tárgyanként" @@ -10242,8 +10411,8 @@ msgstr "" "Nem támasztja alá az áthidalásokat, ezáltal támaszanyagot spórolva. Az " "áthidalások általában támasz nélkül is jól nyomtathatók, ha nem túl hosszúak" -msgid "Thick bridges" -msgstr "Vastag áthidalások" +msgid "Thick external bridges" +msgstr "" msgid "" "If enabled, bridges are more reliable, can bridge longer distances, but may " @@ -10264,36 +10433,86 @@ msgid "" "using large nozzles." msgstr "" -msgid "Filter out small internal bridges (beta)" +msgid "Extra bridge layers (beta)" msgstr "" msgid "" -"This option can help reducing pillowing on top surfaces in heavily slanted " -"or curved models.\n" +"This option enables the generation of an extra bridge layer over internal " +"and/or external bridges.\n" +"\n" +"Extra bridge layers help improve bridge appearance and reliability, as the " +"solid infill is better supported. This is especially useful in fast " +"printers, where the bridge and solid infill speeds vary greatly. The extra " +"bridge layer results in reduced pillowing on top surfaces, as well as " +"reduced separation of the external bridge layer from its surrounding " +"perimeters.\n" +"\n" +"It is generally recommended to set this to at least 'External bridge only', " +"unless specific issues with the sliced model are found.\n" +"\n" +"Options:\n" +"1. Disabled - does not generate second bridge layers. This is the default " +"and is set for compatibility purposes.\n" +"2. External bridge only - generates second bridge layers for external-facing " +"bridges only. Please note that small bridges that are shorter or narrower " +"than the set number of perimeters will be skipped as they would not benefit " +"from a second bridge layer. If generated, the second bridge layer will be " +"extruded parallel to the first bridge layer to reinforce the bridge " +"strength.\n" +"3. Internal bridge only - generates second bridge layers for internal " +"bridges over sparse infill only. Please note that the internal bridges count " +"towards the top shell layer count of your model. The second internal bridge " +"layer will be extruded as close to perpendicular to the first as possible. " +"If multiple regions in the same island, with varying bridge angles are " +"present, the last region of that island will be selected as the angle " +"reference.\n" +"4. Apply to all - generates second bridge layers for both internal and " +"external-facing bridges\n" +msgstr "" + +msgid "Disabled" +msgstr "Letiltva" + +msgid "External bridge only" +msgstr "" + +msgid "Internal bridge only" +msgstr "" + +msgid "Apply to all" +msgstr "" + +msgid "Filter out small internal bridges" +msgstr "" + +msgid "" +"This option can help reduce pillowing on top surfaces in heavily slanted or " +"curved models.\n" "\n" "By default, small internal bridges are filtered out and the internal solid " "infill is printed directly over the sparse infill. This works well in most " "cases, speeding up printing without too much compromise on top surface " "quality. \n" "\n" -"However, in heavily slanted or curved models especially where too low sparse " -"infill density is used, this may result in curling of the unsupported solid " -"infill, causing pillowing.\n" +"However, in heavily slanted or curved models, especially where too low a " +"sparse infill density is used, this may result in curling of the unsupported " +"solid infill, causing pillowing.\n" "\n" -"Disabling this option will print internal bridge layer over slightly " -"unsupported internal solid infill. The options below control the amount of " -"filtering, i.e. the amount of internal bridges created.\n" +"Enabling limited filtering or no filtering will print internal bridge layer " +"over slightly unsupported internal solid infill. The options below control " +"the sensitivity of the filtering, i.e. they control where internal bridges " +"are created.\n" "\n" -"Filter - enable this option. This is the default behavior and works well in " -"most cases.\n" +"1. Filter - enables this option. This is the default behavior and works well " +"in most cases.\n" "\n" -"Limited filtering - creates internal bridges on heavily slanted surfaces, " -"while avoiding creating unnecessary internal bridges. This works well for " -"most difficult models.\n" +"2. Limited filtering - creates internal bridges on heavily slanted surfaces " +"while avoiding unnecessary bridges. This works well for most difficult " +"models.\n" "\n" -"No filtering - creates internal bridges on every potential internal " -"overhang. This option is useful for heavily slanted top surface models. " -"However, in most cases it creates too many unnecessary bridges." +"3. No filtering - creates internal bridges on every potential internal " +"overhang. This option is useful for heavily slanted top surface models; " +"however, in most cases, it creates too many unnecessary bridges." msgstr "" msgid "Filter" @@ -11080,6 +11299,9 @@ msgstr "Ez a belső ritkás kitöltés mintája." msgid "Grid" msgstr "Rács" +msgid "2D Lattice" +msgstr "" + msgid "Line" msgstr "Vonal" @@ -11110,6 +11332,25 @@ msgstr "Világítás" msgid "Cross Hatch" msgstr "Cross Hatch" +msgid "Quarter Cubic" +msgstr "" + +msgid "Lattice angle 1" +msgstr "" + +msgid "" +"The angle of the first set of 2D lattice elements in the Z direction. Zero " +"is vertical." +msgstr "" + +msgid "Lattice angle 2" +msgstr "" + +msgid "" +"The angle of the second set of 2D lattice elements in the Z direction. Zero " +"is vertical." +msgstr "" + msgid "Sparse infill anchor length" msgstr "" @@ -11295,10 +11536,24 @@ msgid "Support interface fan speed" msgstr "" msgid "" -"This fan speed is enforced during all support interfaces, to be able to " -"weaken their bonding with a high fan speed.\n" -"Set to -1 to disable this override.\n" -"Can only be overridden by disable_fan_first_layers." +"This part cooling fan speed is applied when printing support interfaces. " +"Setting this parameter to a higher than regular speed reduces the layer " +"binding strength between supports and the supported part, making them easier " +"to separate.\n" +"Set to -1 to disable it.\n" +"This setting is overridden by disable_fan_first_layers." +msgstr "" + +msgid "Internal bridges fan speed" +msgstr "" + +msgid "" +"The part cooling fan speed used for all internal bridges. Set to -1 to use " +"the overhang fan speed settings instead.\n" +"\n" +"Reducing the internal bridges fan speed, compared to your regular fan speed, " +"can help reduce part warping due to excessive cooling applied over a large " +"surface for a prolonged period of time." msgstr "" msgid "" @@ -11342,6 +11597,59 @@ msgstr "" msgid "Whether to apply fuzzy skin on the first layer" msgstr "" +msgid "Fuzzy skin noise type" +msgstr "" + +msgid "" +"Noise type to use for fuzzy skin generation.\n" +"Classic: Classic uniform random noise.\n" +"Perlin: Perlin noise, which gives a more consistent texture.\n" +"Billow: Similar to perlin noise, but clumpier.\n" +"Ridged Multifractal: Ridged noise with sharp, jagged features. Creates " +"marble-like textures.\n" +"Voronoi: Divides the surface into voronoi cells, and displaces each one by a " +"random amount. Creates a patchwork texture." +msgstr "" + +msgid "Classic" +msgstr "Klasszikus" + +msgid "Perlin" +msgstr "" + +msgid "Billow" +msgstr "" + +msgid "Ridged Multifractal" +msgstr "" + +msgid "Voronoi" +msgstr "" + +msgid "Fuzzy skin feature size" +msgstr "" + +msgid "" +"The base size of the coherent noise features, in mm. Higher values will " +"result in larger features." +msgstr "" + +msgid "Fuzzy Skin Noise Octaves" +msgstr "" + +msgid "" +"The number of octaves of coherent noise to use. Higher values increase the " +"detail of the noise, but also increase computation time." +msgstr "" + +msgid "Fuzzy skin noise persistence" +msgstr "" + +msgid "" +"The decay rate for higher octaves of the coherent noise. Lower values will " +"result in smoother noise." +msgstr "" + msgid "Filter out tiny gaps" msgstr "Apró rések szűrése" @@ -11754,6 +12062,14 @@ msgstr "Vasalási vonalak közötti távolság" msgid "The distance between the lines of ironing" msgstr "A vasaláshoz használt vonalak közötti távolság." +msgid "Ironing inset" +msgstr "" + +msgid "" +"The distance to keep from the edges. A value of 0 sets this to half of the " +"nozzle diameter" +msgstr "" + msgid "Ironing speed" msgstr "Vasalás sebessége" @@ -11986,7 +12302,17 @@ msgid "" "Default value of 3 works well for most cases. If your printer is stuttering, " "increase this value to reduce the number of adjustments made\n" "\n" -"Allowed values: 1-5" +"Allowed values: 0.5-5" +msgstr "" + +msgid "Apply only on external features" +msgstr "" + +msgid "" +"Applies extrusion rate smoothing only on external perimeters and overhangs. " +"This can help reduce artefacts due to sharp speed transitions on externally " +"visible overhangs without impacting the print speed of features that will " +"not be visible to the user." msgstr "" msgid "Minimum speed for part cooling fan" @@ -12015,9 +12341,9 @@ msgid "Min print speed" msgstr "Min. nyomtatási sebesség" msgid "" -"The minimum printing speed that the printer will slow down to to attempt to " -"maintain the minimum layer time above, when slow down for better layer " -"cooling is enabled." +"The minimum print speed to which the printer slows down to maintain the " +"minimum layer time defined above when the slowdown for better layer cooling " +"is enabled." msgstr "" msgid "Diameter of nozzle" @@ -12690,9 +13016,6 @@ msgid "" "with them. To avoid this, increase the skirt distance value.\n" msgstr "" -msgid "Disabled" -msgstr "Letiltva" - msgid "Enabled" msgstr "Engedélyezve" @@ -12967,25 +13290,22 @@ msgid "Enable support generation." msgstr "Engedélyezi a támasz generálását." msgid "" -"normal(auto) and tree(auto) is used to generate support automatically. If " -"normal(manual) or tree(manual) is selected, only support enforcers are " +"Normal (auto) and Tree (auto) is used to generate support automatically. If " +"Normal (manual) or Tree (manual) is selected, only support enforcers are " "generated" msgstr "" -"A normál (auto) és a fa (auto) a támaszok automatikus generálásához van " -"használva. Ha a normál (kézi) vagy a fa (kézi) van kiválasztva, akkor csak a " -"kényszerített támaszok kerülnek generálásra." -msgid "normal(auto)" -msgstr "normál (auto)" +msgid "Normal (auto)" +msgstr "" -msgid "tree(auto)" -msgstr "fa (auto)" +msgid "Tree (auto)" +msgstr "" -msgid "normal(manual)" -msgstr "normál (manuális)" +msgid "Normal (manual)" +msgstr "" -msgid "tree(manual)" -msgstr "fa (manuális)" +msgid "Tree (manual)" +msgstr "" msgid "Support/object xy distance" msgstr "Támasz/tárgy XY távolság" @@ -13206,6 +13526,15 @@ msgstr "" "Az olyan túlnyúlásoknál, amelynek dőlésszöge ez alatt az érték alatt van, " "támasz fog generálódni." +msgid "Threshold overlap" +msgstr "" + +msgid "" +"If threshold angle is zero, support will be generated for overhangs whose " +"overlap is below the threshold. The smaller this value is, the steeper the " +"overhang that can be printed without support." +msgstr "" + msgid "Tree support branch angle" msgstr "Fa típusú támasz ágainak szöge" @@ -13688,9 +14017,6 @@ msgstr "" "vékony területeknél hézagkitöltést használ. Az Arachne engine változó " "szélességű falakat generál." -msgid "Classic" -msgstr "Klasszikus" - msgid "Arachne" msgstr "Arachne" @@ -15609,6 +15935,9 @@ msgstr "Fizikai nyomtató" msgid "Print Host upload" msgstr "Feltöltés a nyomtatóra" +msgid "Test" +msgstr "Teszt" + msgid "Could not get a valid Printer Host reference" msgstr "Nem sikerült érvényes nyomtató hivatkozást lekérni" @@ -16426,6 +16755,110 @@ msgstr "" "Tudtad, hogy a vetemedésre hajlamos anyagok (például ABS) nyomtatásakor a " "tárgyasztal hőmérsékletének növelése csökkentheti a vetemedés valószínűségét?" +#~ msgid "Current Cabin humidity" +#~ msgstr "Current Cabin humidity" + +#~ msgid "Stopped." +#~ msgstr "Megállítva." + +#, c-format, boost-format +#~ msgid "Connect failed [%d]!" +#~ msgstr "Connection failed [%d]!" + +#~ msgid "Initialize failed (Device connection not ready)!" +#~ msgstr "Initialization failed (Device connection not ready)!" + +#, c-format, boost-format +#~ msgid "Initialize failed (%s)!" +#~ msgstr "Sikertelen inicializálás (%s)!" + +#~ msgid "LAN Connection Failed (Sending print file)" +#~ msgstr "LAN kapcsolódás sikertelen (nyomtatási fájl küldése)" + +#~ msgid "" +#~ "Step 1, please confirm Orca Slicer and your printer are in the same LAN." +#~ msgstr "" +#~ "1. lépés: Ellenőrizd, hogy a Orca Slicer és a nyomtató ugyanazon a helyi " +#~ "hálózaton van." + +#~ msgid "" +#~ "Step 2, if the IP and Access Code below are different from the actual " +#~ "values on your printer, please correct them." +#~ msgstr "" +#~ "2. lépés: Ha az alábbi IP és hozzáférési kód eltér a nyomtatón " +#~ "láthatótól, kérjük, javítsd ki őket." + +#~ msgid "Step 3: Ping the IP address to check for packet loss and latency." +#~ msgstr "" +#~ "3. lépés: Pingeld meg az IP-címet a csomagveszteség és késleltetés " +#~ "ellenőrzéséhez." + +#~ msgid "IP and Access Code Verified! You may close the window" +#~ msgstr "IP és hozzáférési kód leellenőrizve! Bezárhatod az ablakot" + +#~ msgid "Force cooling for overhang and bridge" +#~ msgstr "Hűtés kényszerítése túlnyúlásoknál és áthidalásoknál" + +#~ msgid "" +#~ "Enable this option to optimize part cooling fan speed for overhang and " +#~ "bridge to get better cooling" +#~ msgstr "" +#~ "Engedélyezd ezt az opciót a tárgyhűtő ventilátor fordulatszámának " +#~ "optimalizálásához a jobb hűtés érdekében túlnyúlásoknál és áthidalásoknál" + +#~ msgid "Fan speed for overhang" +#~ msgstr "Ventilátor fordulatszám túlnyúlásnál" + +#~ msgid "" +#~ "Force part cooling fan to be this speed when printing bridge or overhang " +#~ "wall which has large overhang degree. Forcing cooling for overhang and " +#~ "bridge can get better quality for these part" +#~ msgstr "" +#~ "A nagy túlnyúlású áthidalások vagy túlnyúló falak nyomtatásakor a " +#~ "tárgyhűtő ventilátor kényszerítve lesz, hogy ezt a fordulatszámot " +#~ "használja. A túlnyúlások és áthidalások hűtésének kikényszerítésével jobb " +#~ "minőség érhető el ezeken a részeken." + +#~ msgid "Cooling overhang threshold" +#~ msgstr "Túlnyúlás hűtésének küszöbértéke" + +#, c-format +#~ msgid "" +#~ "Force cooling fan to be specific speed when overhang degree of printed " +#~ "part exceeds this value. Expressed as percentage which indicates how much " +#~ "width of the line without support from lower layer. 0% means forcing " +#~ "cooling for all outer wall no matter how much overhang degree" +#~ msgstr "" +#~ "Kényszeríti a hűtőventilátort, hogy egy adott fordulatszámot használjon, " +#~ "ha a túlnyúlás mértéke meghaladja ezt az értéket. Százalékban van " +#~ "kifejezve, ami azt jelzi, hogy a nyomtatott vonal hány százaléka maradhat " +#~ "az alsóbb rétegek alátámasztása nélkül. A 0%%-os érték bekapcsolja a " +#~ "hűtést a külső fal teljes szélességén, függetlenül a túlnyúlás mértékétől." + +#~ msgid "Thick bridges" +#~ msgstr "Vastag áthidalások" + +#~ msgid "" +#~ "normal(auto) and tree(auto) is used to generate support automatically. If " +#~ "normal(manual) or tree(manual) is selected, only support enforcers are " +#~ "generated" +#~ msgstr "" +#~ "A normál (auto) és a fa (auto) a támaszok automatikus generálásához van " +#~ "használva. Ha a normál (kézi) vagy a fa (kézi) van kiválasztva, akkor " +#~ "csak a kényszerített támaszok kerülnek generálásra." + +#~ msgid "normal(auto)" +#~ msgstr "normál (auto)" + +#~ msgid "tree(auto)" +#~ msgstr "fa (auto)" + +#~ msgid "normal(manual)" +#~ msgstr "normál (manuális)" + +#~ msgid "tree(manual)" +#~ msgstr "fa (manuális)" + #~ msgctxt "Verb" #~ msgid "Scale" #~ msgstr "Átméretezés" diff --git a/localization/i18n/it/OrcaSlicer_it.po b/localization/i18n/it/OrcaSlicer_it.po index ad04e3acca..f011f132d9 100644 --- a/localization/i18n/it/OrcaSlicer_it.po +++ b/localization/i18n/it/OrcaSlicer_it.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-01-04 17:35+0100\n" +"POT-Creation-Date: 2025-02-14 23:42+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -2861,9 +2861,6 @@ msgstr "" msgid "About %s" msgstr "Informazioni su %s" -msgid "Orca Slicer" -msgstr "" - msgid "OrcaSlicer is based on BambuStudio, PrusaSlicer, and SuperSlicer." msgstr "OrcaSlicer è basato su BambuStudio, PrusaSlicer e SuperSlicer." @@ -2915,11 +2912,6 @@ msgstr "Il valore di input deve essere maggiore di %1% e minore di %2%" msgid "SN" msgstr "SN" -msgid "Setting AMS slot information while printing is not supported" -msgstr "" -"L'impostazione informazioni sullo slot AMS in fase di stampa non è " -"supportata." - msgid "Factors of Flow Dynamics Calibration" msgstr "Fattori di calibrazione della dinamica del flusso" @@ -2932,6 +2924,11 @@ msgstr "Fattore K" msgid "Factor N" msgstr "Fattore N" +msgid "Setting AMS slot information while printing is not supported" +msgstr "" +"L'impostazione informazioni sullo slot AMS in fase di stampa non è " +"supportata." + msgid "Setting Virtual slot information while printing is not supported" msgstr "" "Non è supportata l’impostazione informazioni dello Slot Virtuale durante la " @@ -3056,8 +3053,8 @@ msgstr "Disabilita AMS" msgid "Print with the filament mounted on the back of chassis" msgstr "Stampa filamento con bobina esterna" -msgid "Current Cabin humidity" -msgstr "Current Cabin humidity" +msgid "Current AMS humidity" +msgstr "" msgid "" "Please change the desiccant when it is too wet. The indicator may not " @@ -5167,8 +5164,8 @@ msgstr "" msgid "The printer has been logged out and cannot connect." msgstr "La stampante è stata disconnessa e non può connettersi." -msgid "Stopped." -msgstr "Interrotto." +msgid "Video Stopped." +msgstr "" msgid "LAN Connection Failed (Failed to start liveview)" msgstr "Connessione LAN non riuscita (impossibile avviare liveview)" @@ -5259,10 +5256,6 @@ msgstr "Reload file list from printer." msgid "No printers." msgstr "Nessuna stampante." -#, c-format, boost-format -msgid "Connect failed [%d]!" -msgstr "Connessione non riuscita [%d]!" - msgid "Loading file list..." msgstr "Caricamento elenco file..." @@ -5272,10 +5265,6 @@ msgstr "Nessun file" msgid "Load failed" msgstr "Load failed" -msgid "Initialize failed (Device connection not ready)!" -msgstr "" -"Inizializzazione fallita (la connessione del dispositivo non è pronta)!" - msgid "" "Browsing file in SD card is not supported in current firmware. Please update " "the printer firmware." @@ -5283,7 +5272,9 @@ msgstr "" "Browsing file in SD card is not supported in current firmware. Please update " "the printer firmware." -msgid "Initialize failed (Storage unavailable, insert SD card.)!" +msgid "" +"Please check if the SD card is inserted into the printer.\n" +"If it still cannot be read, you can try formatting the SD card." msgstr "" msgid "LAN Connection Failed (Failed to view sdcard)" @@ -5292,10 +5283,6 @@ msgstr "LAN Connection Failed (Failed to view sdcard)" msgid "Browsing file in SD card is not supported in LAN Only Mode." msgstr "Browsing file in SD card is not supported in LAN Only Mode." -#, c-format, boost-format -msgid "Initialize failed (%s)!" -msgstr "Inizializzazione fallita (%s)!" - #, c-format, boost-format msgid "You are going to delete %u file from printer. Are you sure to continue?" msgid_plural "" @@ -5735,6 +5722,25 @@ msgstr "Ultima versione: " msgid "Not for now" msgstr "Not for now" +msgid "Server Exception" +msgstr "" + +msgid "" +"The server is unable to respond. Please click the link below to check the " +"server status." +msgstr "" + +msgid "" +"If the server is in a fault state, you can temporarily use offline printing " +"or local network printing." +msgstr "" + +msgid "How to use LAN only mode" +msgstr "" + +msgid "Don't show this dialog again" +msgstr "" + msgid "3D Mouse disconnected." msgstr "Mouse 3D disconnesso." @@ -6462,6 +6468,10 @@ msgstr "Apri come progetto" msgid "Import geometry only" msgstr "Importa solo la geometria" +msgid "" +"This option can be changed later in preferences, under 'Load Behaviour'." +msgstr "" + msgid "Only one G-code file can be opened at the same time." msgstr "È possibile aprire un solo file G-code alla volta." @@ -6901,6 +6911,24 @@ msgstr "" msgid "Associate URLs to OrcaSlicer" msgstr "" +msgid "Load All" +msgstr "" + +msgid "Ask When Relevant" +msgstr "" + +msgid "Always Ask" +msgstr "" + +msgid "Load Geometry Only" +msgstr "" + +msgid "Load Behaviour" +msgstr "" + +msgid "Should printer/filament/process settings be loaded when opening a .3mf?" +msgstr "" + msgid "Maximum recent projects" msgstr "Numero massimo di progetti recenti" @@ -7475,6 +7503,9 @@ msgstr "Modifica nome del dispositivo" msgid "Bind with Pin Code" msgstr "Bind with Pin Code" +msgid "Bind with Access Code" +msgstr "" + msgid "Send to Printer SD card" msgstr "Invia a microSD stampante" @@ -7786,6 +7817,75 @@ msgstr "" "facendo clic con il pulsante destro del mouse sulla posizione vuota del " "piatto e scegli \"Aggiungi primitiva\" ->\"Timelapse Torre di pulizia\"»." +msgid "" +"A copy of the current system preset will be created, which will be detached " +"from the system preset." +msgstr "" + +msgid "" +"The current custom preset will be detached from the parent system preset." +msgstr "" + +msgid "Modifications to the current profile will be saved." +msgstr "" + +msgid "" +"This action is not revertible.\n" +"Do you want to proceed?" +msgstr "" + +msgid "Detach preset" +msgstr "" + +msgid "This is a default preset." +msgstr "" + +msgid "This is a system preset." +msgstr "" + +msgid "Current preset is inherited from the default preset." +msgstr "" + +msgid "Current preset is inherited from" +msgstr "" + +msgid "It can't be deleted or modified." +msgstr "" + +msgid "" +"Any modifications should be saved as a new preset inherited from this one." +msgstr "" + +msgid "To do that please specify a new name for the preset." +msgstr "" + +msgid "Additional information:" +msgstr "" + +msgid "vendor" +msgstr "" + +msgid "printer model" +msgstr "" + +msgid "default print profile" +msgstr "" + +msgid "default filament profile" +msgstr "" + +msgid "default SLA material profile" +msgstr "" + +msgid "default SLA print profile" +msgstr "" + +msgid "full profile name" +msgstr "" + +msgid "symbolic profile name" +msgstr "" + msgid "Line width" msgstr "Larghezza linea" @@ -7883,6 +7983,12 @@ msgstr "Script post-elaborazione" msgid "Notes" msgstr "Note" +msgid "Dependencies" +msgstr "" + +msgid "Profile dependencies" +msgstr "" + msgid "Frequent" msgstr "Frequente" @@ -8995,20 +9101,22 @@ msgstr "View Liveview" msgid "Confirm and Update Nozzle" msgstr "Conferma e aggiorna l'ugello" -msgid "LAN Connection Failed (Sending print file)" -msgstr "Connessione LAN fallita (invio del file di stampa)" - -msgid "" -"Step 1, please confirm Orca Slicer and your printer are in the same LAN." +msgid "Connect the printer using IP and access code" msgstr "" -"Step 1, conferma che Orca Slicer e la tua stampante siano sulla stessa LAN." msgid "" -"Step 2, if the IP and Access Code below are different from the actual values " +"Step 1. Please confirm Orca Slicer and your printer are in the same LAN." +msgstr "" + +msgid "" +"Step 2. If the IP and Access Code below are different from the actual values " "on your printer, please correct them." msgstr "" -"Step 2, se l'IP e il codice di accesso riportati di seguito sono diversi dai " -"valori effettivi sulla stampante, correggili." + +msgid "" +"Step 3. Please obtain the device SN from the printer side; it is usually " +"found in the device information on the printer screen." +msgstr "" msgid "IP" msgstr "IP" @@ -9016,19 +9124,38 @@ msgstr "IP" msgid "Access Code" msgstr "Codice di accesso" +msgid "Printer model" +msgstr "" + +msgid "Printer name" +msgstr "" + msgid "Where to find your printer's IP and Access Code?" msgstr "Dove trovo l'IP e il codice accesso della stampante?" -msgid "Step 3: Ping the IP address to check for packet loss and latency." +msgid "Connect" msgstr "" -"Passaggio 3: eseguire il ping dell'indirizzo IP per verificare la perdita di " -"pacchetti e la latenza." -msgid "Test" -msgstr "Test" +msgid "Manual Setup" +msgstr "" -msgid "IP and Access Code Verified! You may close the window" -msgstr "IP e codice di accesso verificati! È possibile chiudere la finestra" +msgid "connecting..." +msgstr "" + +msgid "Failed to connect to printer." +msgstr "" + +msgid "Failed to publish login request." +msgstr "" + +msgid "The printer has already been bound." +msgstr "" + +msgid "The printer mode is incorrect, please switch to LAN Only." +msgstr "" + +msgid "Connecting to printer... The dialog will close later" +msgstr "" msgid "Connection failed, please double check IP and Access Code" msgstr "Connessione non riuscita, ricontrolla l'IP e il codice di accesso" @@ -10024,47 +10151,45 @@ msgstr "Superfici superiore e inferiore" msgid "Nowhere" msgstr "Da nessuna parte" -msgid "Force cooling for overhang and bridge" -msgstr "Forzare il raffreddamento per sbalzi e ponti" +msgid "Force cooling for overhangs and bridges" +msgstr "" msgid "" -"Enable this option to optimize part cooling fan speed for overhang and " -"bridge to get better cooling" +"Enable this option to allow adjustment of the part cooling fan speed for " +"specifically for overhangs, internal and external bridges. Setting the fan " +"speed specifically for these features can improve overall print quality and " +"reduce warping." msgstr "" -"Abilita questa opzione per ottimizzare la velocità della ventola di " -"raffreddamento degli oggetti per sporgenze e ponti per ottenere un " -"raffreddamento migliore." -msgid "Fan speed for overhang" -msgstr "Velocità della ventola per le sporgenze" +msgid "Overhangs and external bridges fan speed" +msgstr "" msgid "" -"Force part cooling fan to be this speed when printing bridge or overhang " -"wall which has large overhang degree. Forcing cooling for overhang and " -"bridge can get better quality for these part" +"Use this part cooling fan speed when printing bridges or overhang walls with " +"an overhang threshold that exceeds the value set in the 'Overhangs cooling " +"threshold' parameter above. Increasing the cooling specifically for " +"overhangs and bridges can improve the overall print quality of these " +"features.\n" +"\n" +"Please note, this fan speed is clamped on the lower end by the minimum fan " +"speed threshold set above. It is also adjusted upwards up to the maximum fan " +"speed threshold when the minimum layer time threshold is not met." msgstr "" -"Force part cooling fan to be this speed when printing bridges or overhang " -"walls which have a large overhang degree. Forcing cooling for overhangs and " -"bridges can achieve better quality for these parts." -msgid "Cooling overhang threshold" -msgstr "Soglia di sbalzo per il raffreddamento" +msgid "Overhang cooling activation threshold" +msgstr "" -#, c-format +#, c-format, boost-format msgid "" -"Force cooling fan to be specific speed when overhang degree of printed part " -"exceeds this value. Expressed as percentage which indicates how much width " -"of the line without support from lower layer. 0% means forcing cooling for " -"all outer wall no matter how much overhang degree" +"When the overhang exceeds this specified threshold, force the cooling fan to " +"run at the 'Overhang Fan Speed' set below. This threshold is expressed as a " +"percentage, indicating the portion of each line's width that is unsupported " +"by the layer beneath it. Setting this value to 0% forces the cooling fan to " +"run for all outer walls, regardless of the overhang degree." msgstr "" -"Forza la ventola di raffreddamento a una velocità specifica quando il grado " -"di sporgenza della parte stampata supera questo valore. Questo valore è " -"espresso in percentuale e indica la larghezza della linea senza il supporto " -"dei layer. 0%% significa forzare il raffreddamento per tutta la parete " -"esterna, indipendentemente dal grado di sporgenza." -msgid "Bridge infill direction" -msgstr "Direzione di riempimento del ponte" +msgid "External bridge infill direction" +msgstr "" msgid "" "Bridging angle override. If left to zero, the bridging angle will be " @@ -10075,13 +10200,45 @@ msgstr "" "collegamento verrà calcolato automaticamente. Altrimenti l'angolo fornito " "verrà utilizzato per i Bridge esterni. Usa 180° per un angolo zero." -msgid "Bridge density" -msgstr "Densità del bridge" - -msgid "Density of external bridges. 100% means solid bridge. Default is 100%." +msgid "Internal bridge infill direction" +msgstr "" + +msgid "" +"Internal bridging angle override. If left to zero, the bridging angle will " +"be calculated automatically. Otherwise the provided angle will be used for " +"internal bridges. Use 180°for zero angle.\n" +"\n" +"It is recommended to leave it at 0 unless there is a specific model need not " +"to." +msgstr "" + +msgid "External bridge density" +msgstr "" + +msgid "" +"Controls the density (spacing) of external bridge lines. 100% means solid " +"bridge. Default is 100%.\n" +"\n" +"Lower density external bridges can help improve reliability as there is more " +"space for air to circulate around the extruded bridge, improving its cooling " +"speed." +msgstr "" + +msgid "Internal bridge density" +msgstr "" + +msgid "" +"Controls the density (spacing) of internal bridge lines. 100% means solid " +"bridge. Default is 100%.\n" +"\n" +" Lower density internal bridges can help reduce top surface pillowing and " +"improve internal bridge reliability as there is more space for air to " +"circulate around the extruded bridge, improving its cooling speed. \n" +"\n" +"This option works particularly well when combined with the second internal " +"bridge over infill option, further improving internal bridging structure " +"before solid infill is extruded." msgstr "" -"Densità di ponti esterni. 100% significa solido ponte. L'impostazione " -"predefinita è al 100%." msgid "Bridge flow ratio" msgstr "Flusso del Bridge" @@ -10133,14 +10290,10 @@ msgstr "Parete precisa" msgid "" "Improve shell precision by adjusting outer wall spacing. This also improves " -"layer consistency.\n" -"Note: This setting will only take effect if the wall sequence is configured " -"to Inner-Outer" +"layer consistency." msgstr "" -"Migliora la precisione del guscio regolando lo spaziamento della parete " -"esterna. Ciò migliora anche la coerenza dello strato.\n" -"Nota: Questa impostazione avrà effetto solo se la sequenza della parete è " -"configurata su Interno-Esterno." +"Migliora la precisione del guscio regolando la spaziatura delle pareti " +"esterne. Questo migliora anche la consistenza degli strati." msgid "Only one wall on top surfaces" msgstr "Solo una parete sulle superfici superiori" @@ -10398,12 +10551,24 @@ msgstr "macchina compatibile con versioni successive" msgid "Compatible machine condition" msgstr "Condizione della macchina compatibile" +msgid "" +"A boolean expression using the configuration values of an active printer " +"profile. If this expression evaluates to true, this profile is considered " +"compatible with the active printer profile." +msgstr "" + msgid "Compatible process profiles" msgstr "Profili di processo compatibili" msgid "Compatible process profiles condition" msgstr "Condizione dei profili di processo compatibili" +msgid "" +"A boolean expression using the configuration values of an active print " +"profile. If this expression evaluates to true, this profile is considered " +"compatible with the active print profile." +msgstr "" + msgid "Print sequence, layer by layer or object by object" msgstr "" "Questo determina la sequenza di stampa, che consente di stampare layer per " @@ -10508,8 +10673,8 @@ msgstr "" "required. Bridges can usually be printed directly without support over a " "reasonable distance." -msgid "Thick bridges" -msgstr "Bridge spessi" +msgid "Thick external bridges" +msgstr "" msgid "" "If enabled, bridges are more reliable, can bridge longer distances, but may " @@ -10532,36 +10697,86 @@ msgstr "" "consiglia di attivare questa funzione. Tuttavia, considera di disattivarlo " "se stai utilizzando ugelli di grandi dimensioni." -msgid "Filter out small internal bridges (beta)" +msgid "Extra bridge layers (beta)" msgstr "" msgid "" -"This option can help reducing pillowing on top surfaces in heavily slanted " -"or curved models.\n" +"This option enables the generation of an extra bridge layer over internal " +"and/or external bridges.\n" +"\n" +"Extra bridge layers help improve bridge appearance and reliability, as the " +"solid infill is better supported. This is especially useful in fast " +"printers, where the bridge and solid infill speeds vary greatly. The extra " +"bridge layer results in reduced pillowing on top surfaces, as well as " +"reduced separation of the external bridge layer from its surrounding " +"perimeters.\n" +"\n" +"It is generally recommended to set this to at least 'External bridge only', " +"unless specific issues with the sliced model are found.\n" +"\n" +"Options:\n" +"1. Disabled - does not generate second bridge layers. This is the default " +"and is set for compatibility purposes.\n" +"2. External bridge only - generates second bridge layers for external-facing " +"bridges only. Please note that small bridges that are shorter or narrower " +"than the set number of perimeters will be skipped as they would not benefit " +"from a second bridge layer. If generated, the second bridge layer will be " +"extruded parallel to the first bridge layer to reinforce the bridge " +"strength.\n" +"3. Internal bridge only - generates second bridge layers for internal " +"bridges over sparse infill only. Please note that the internal bridges count " +"towards the top shell layer count of your model. The second internal bridge " +"layer will be extruded as close to perpendicular to the first as possible. " +"If multiple regions in the same island, with varying bridge angles are " +"present, the last region of that island will be selected as the angle " +"reference.\n" +"4. Apply to all - generates second bridge layers for both internal and " +"external-facing bridges\n" +msgstr "" + +msgid "Disabled" +msgstr "Disabilitato" + +msgid "External bridge only" +msgstr "" + +msgid "Internal bridge only" +msgstr "" + +msgid "Apply to all" +msgstr "" + +msgid "Filter out small internal bridges" +msgstr "" + +msgid "" +"This option can help reduce pillowing on top surfaces in heavily slanted or " +"curved models.\n" "\n" "By default, small internal bridges are filtered out and the internal solid " "infill is printed directly over the sparse infill. This works well in most " "cases, speeding up printing without too much compromise on top surface " "quality. \n" "\n" -"However, in heavily slanted or curved models especially where too low sparse " -"infill density is used, this may result in curling of the unsupported solid " -"infill, causing pillowing.\n" +"However, in heavily slanted or curved models, especially where too low a " +"sparse infill density is used, this may result in curling of the unsupported " +"solid infill, causing pillowing.\n" "\n" -"Disabling this option will print internal bridge layer over slightly " -"unsupported internal solid infill. The options below control the amount of " -"filtering, i.e. the amount of internal bridges created.\n" +"Enabling limited filtering or no filtering will print internal bridge layer " +"over slightly unsupported internal solid infill. The options below control " +"the sensitivity of the filtering, i.e. they control where internal bridges " +"are created.\n" "\n" -"Filter - enable this option. This is the default behavior and works well in " -"most cases.\n" +"1. Filter - enables this option. This is the default behavior and works well " +"in most cases.\n" "\n" -"Limited filtering - creates internal bridges on heavily slanted surfaces, " -"while avoiding creating unnecessary internal bridges. This works well for " -"most difficult models.\n" +"2. Limited filtering - creates internal bridges on heavily slanted surfaces " +"while avoiding unnecessary bridges. This works well for most difficult " +"models.\n" "\n" -"No filtering - creates internal bridges on every potential internal " -"overhang. This option is useful for heavily slanted top surface models. " -"However, in most cases it creates too many unnecessary bridges." +"3. No filtering - creates internal bridges on every potential internal " +"overhang. This option is useful for heavily slanted top surface models; " +"however, in most cases, it creates too many unnecessary bridges." msgstr "" msgid "Filter" @@ -11453,6 +11668,9 @@ msgstr "Questo è la trama lineare per il riempimento interno." msgid "Grid" msgstr "Griglia" +msgid "2D Lattice" +msgstr "" + msgid "Line" msgstr "Linea" @@ -11483,6 +11701,25 @@ msgstr "Lightning" msgid "Cross Hatch" msgstr "Cross Hatch" +msgid "Quarter Cubic" +msgstr "" + +msgid "Lattice angle 1" +msgstr "" + +msgid "" +"The angle of the first set of 2D lattice elements in the Z direction. Zero " +"is vertical." +msgstr "" + +msgid "Lattice angle 2" +msgstr "" + +msgid "" +"The angle of the second set of 2D lattice elements in the Z direction. Zero " +"is vertical." +msgstr "" + msgid "Sparse infill anchor length" msgstr "Lunghezza dell'ancora di riempimento sparsa" @@ -11709,16 +11946,25 @@ msgid "Support interface fan speed" msgstr "Supporta la velocità della ventola dell'interfaccia" msgid "" -"This fan speed is enforced during all support interfaces, to be able to " -"weaken their bonding with a high fan speed.\n" -"Set to -1 to disable this override.\n" -"Can only be overridden by disable_fan_first_layers." +"This part cooling fan speed is applied when printing support interfaces. " +"Setting this parameter to a higher than regular speed reduces the layer " +"binding strength between supports and the supported part, making them easier " +"to separate.\n" +"Set to -1 to disable it.\n" +"This setting is overridden by disable_fan_first_layers." +msgstr "" + +msgid "Internal bridges fan speed" +msgstr "" + +msgid "" +"The part cooling fan speed used for all internal bridges. Set to -1 to use " +"the overhang fan speed settings instead.\n" +"\n" +"Reducing the internal bridges fan speed, compared to your regular fan speed, " +"can help reduce part warping due to excessive cooling applied over a large " +"surface for a prolonged period of time." msgstr "" -"Questa velocità della ventola viene applicata durante tutte le interfacce di " -"supporto, per essere in grado di indebolire il loro legame con un'elevata " -"velocità della ventola.\n" -"Impostare su -1 per disabilitare questa sostituzione.\n" -"Può essere sovrascritto solo da disable_fan_first_layers." msgid "" "Randomly jitter while printing the wall, so that the surface has a rough " @@ -11762,6 +12008,59 @@ msgstr "Applicare la pelle sfocata sul primo strato" msgid "Whether to apply fuzzy skin on the first layer" msgstr "Se applicare la Superficie Crespa ( fuzzy skin) sul primo strato" +msgid "Fuzzy skin noise type" +msgstr "" + +msgid "" +"Noise type to use for fuzzy skin generation.\n" +"Classic: Classic uniform random noise.\n" +"Perlin: Perlin noise, which gives a more consistent texture.\n" +"Billow: Similar to perlin noise, but clumpier.\n" +"Ridged Multifractal: Ridged noise with sharp, jagged features. Creates " +"marble-like textures.\n" +"Voronoi: Divides the surface into voronoi cells, and displaces each one by a " +"random amount. Creates a patchwork texture." +msgstr "" + +msgid "Classic" +msgstr "Classico" + +msgid "Perlin" +msgstr "" + +msgid "Billow" +msgstr "" + +msgid "Ridged Multifractal" +msgstr "" + +msgid "Voronoi" +msgstr "" + +msgid "Fuzzy skin feature size" +msgstr "" + +msgid "" +"The base size of the coherent noise features, in mm. Higher values will " +"result in larger features." +msgstr "" + +msgid "Fuzzy Skin Noise Octaves" +msgstr "" + +msgid "" +"The number of octaves of coherent noise to use. Higher values increase the " +"detail of the noise, but also increase computation time." +msgstr "" + +msgid "Fuzzy skin noise persistence" +msgstr "" + +msgid "" +"The decay rate for higher octaves of the coherent noise. Lower values will " +"result in smoother noise." +msgstr "" + msgid "Filter out tiny gaps" msgstr "Filtra i piccoli spazi vuoti" @@ -12205,6 +12504,14 @@ msgstr "Spaziatura linee di stiratura" msgid "The distance between the lines of ironing" msgstr "Indica la distanza tra le linee utilizzate per la stiratura." +msgid "Ironing inset" +msgstr "" + +msgid "" +"The distance to keep from the edges. A value of 0 sets this to half of the " +"nozzle diameter" +msgstr "" + msgid "Ironing speed" msgstr "Velocità stiratura" @@ -12476,18 +12783,18 @@ msgid "" "Default value of 3 works well for most cases. If your printer is stuttering, " "increase this value to reduce the number of adjustments made\n" "\n" -"Allowed values: 1-5" +"Allowed values: 0.5-5" +msgstr "" + +msgid "Apply only on external features" +msgstr "" + +msgid "" +"Applies extrusion rate smoothing only on external perimeters and overhangs. " +"This can help reduce artefacts due to sharp speed transitions on externally " +"visible overhangs without impacting the print speed of features that will " +"not be visible to the user." msgstr "" -"Un valore più basso si traduce in transizioni più fluide della velocità di " -"estrusione. Tuttavia, ciò si traduce in un file gcode significativamente più " -"grande e in un maggior numero di istruzioni per l'elaborazione da parte " -"della stampante. \n" -"\n" -"Il valore predefinito 3 funziona bene per la maggior parte dei casi. Se la " -"stampante balbetta, aumentare questo valore per ridurre il numero di " -"regolazioni effettuate\n" -"\n" -"Valori consentiti: 1-5" msgid "Minimum speed for part cooling fan" msgstr "Velocità minima ventola di raffreddamento" @@ -12519,13 +12826,10 @@ msgid "Min print speed" msgstr "Velocità minima di stampa" msgid "" -"The minimum printing speed that the printer will slow down to to attempt to " -"maintain the minimum layer time above, when slow down for better layer " -"cooling is enabled." +"The minimum print speed to which the printer slows down to maintain the " +"minimum layer time defined above when the slowdown for better layer cooling " +"is enabled." msgstr "" -"La velocità di stampa minima a cui la stampante rallenterà per tentare di " -"mantenere il tempo minimo dello strato sopra, quando è abilitato il " -"rallentamento per un migliore raffreddamento dello strato." msgid "Diameter of nozzle" msgstr "Diametro del nozzle" @@ -13285,9 +13589,6 @@ msgid "" "with them. To avoid this, increase the skirt distance value.\n" msgstr "" -msgid "Disabled" -msgstr "Disabilitato" - msgid "Enabled" msgstr "Abilitato" @@ -13567,25 +13868,22 @@ msgid "Enable support generation." msgstr "Abilita la generazione dei supporti." msgid "" -"normal(auto) and tree(auto) is used to generate support automatically. If " -"normal(manual) or tree(manual) is selected, only support enforcers are " +"Normal (auto) and Tree (auto) is used to generate support automatically. If " +"Normal (manual) or Tree (manual) is selected, only support enforcers are " "generated" msgstr "" -"normale(auto) e albero(auto) sono usati per generare automaticamente i " -"supporti. Se si seleziona normale(manuale) o albero(manuale), vengono " -"generati solo gli esecutori del supporto." -msgid "normal(auto)" -msgstr "normal(auto)" +msgid "Normal (auto)" +msgstr "" -msgid "tree(auto)" -msgstr "albero(auto)" +msgid "Tree (auto)" +msgstr "" -msgid "normal(manual)" -msgstr "normale(manuale)" +msgid "Normal (manual)" +msgstr "" -msgid "tree(manual)" -msgstr "albero(manuale)" +msgid "Tree (manual)" +msgstr "" msgid "Support/object xy distance" msgstr "Distanza xy supporto/oggetto" @@ -13815,6 +14113,15 @@ msgstr "" "Il supporto sarà generato per le sporgenze il cui angolo di inclinazione è " "inferiore alla soglia." +msgid "Threshold overlap" +msgstr "" + +msgid "" +"If threshold angle is zero, support will be generated for overhangs whose " +"overlap is below the threshold. The smaller this value is, the steeper the " +"overhang that can be printed without support." +msgstr "" + msgid "Tree support branch angle" msgstr "Angolo ramo supporti ad albero" @@ -14365,9 +14672,6 @@ msgstr "" "spazi vuoti. Il motore Arachne produce pareti con larghezza di estrusione " "variabile." -msgid "Classic" -msgstr "Classico" - msgid "Arachne" msgstr "Arachne" @@ -16405,6 +16709,9 @@ msgstr "Stampante Fisica" msgid "Print Host upload" msgstr "Caricamento Host di stampa" +msgid "Test" +msgstr "Test" + msgid "Could not get a valid Printer Host reference" msgstr "Impossibile ottenere un riferimento Host Stampante valido" @@ -17271,6 +17578,176 @@ msgstr "" "aumentare in modo appropriato la temperatura del piano riscaldato può " "ridurre la probabilità di deformazione." +#~ msgid "Current Cabin humidity" +#~ msgstr "Current Cabin humidity" + +#~ msgid "Stopped." +#~ msgstr "Interrotto." + +#, c-format, boost-format +#~ msgid "Connect failed [%d]!" +#~ msgstr "Connessione non riuscita [%d]!" + +#~ msgid "Initialize failed (Device connection not ready)!" +#~ msgstr "" +#~ "Inizializzazione fallita (la connessione del dispositivo non è pronta)!" + +#, c-format, boost-format +#~ msgid "Initialize failed (%s)!" +#~ msgstr "Inizializzazione fallita (%s)!" + +#~ msgid "LAN Connection Failed (Sending print file)" +#~ msgstr "Connessione LAN fallita (invio del file di stampa)" + +#~ msgid "" +#~ "Step 1, please confirm Orca Slicer and your printer are in the same LAN." +#~ msgstr "" +#~ "Step 1, conferma che Orca Slicer e la tua stampante siano sulla stessa " +#~ "LAN." + +#~ msgid "" +#~ "Step 2, if the IP and Access Code below are different from the actual " +#~ "values on your printer, please correct them." +#~ msgstr "" +#~ "Step 2, se l'IP e il codice di accesso riportati di seguito sono diversi " +#~ "dai valori effettivi sulla stampante, correggili." + +#~ msgid "Step 3: Ping the IP address to check for packet loss and latency." +#~ msgstr "" +#~ "Passaggio 3: eseguire il ping dell'indirizzo IP per verificare la perdita " +#~ "di pacchetti e la latenza." + +#~ msgid "IP and Access Code Verified! You may close the window" +#~ msgstr "IP e codice di accesso verificati! È possibile chiudere la finestra" + +#~ msgid "Force cooling for overhang and bridge" +#~ msgstr "Forzare il raffreddamento per sbalzi e ponti" + +#~ msgid "" +#~ "Enable this option to optimize part cooling fan speed for overhang and " +#~ "bridge to get better cooling" +#~ msgstr "" +#~ "Abilita questa opzione per ottimizzare la velocità della ventola di " +#~ "raffreddamento degli oggetti per sporgenze e ponti per ottenere un " +#~ "raffreddamento migliore." + +#~ msgid "Fan speed for overhang" +#~ msgstr "Velocità della ventola per le sporgenze" + +#~ msgid "" +#~ "Force part cooling fan to be this speed when printing bridge or overhang " +#~ "wall which has large overhang degree. Forcing cooling for overhang and " +#~ "bridge can get better quality for these part" +#~ msgstr "" +#~ "Force part cooling fan to be this speed when printing bridges or overhang " +#~ "walls which have a large overhang degree. Forcing cooling for overhangs " +#~ "and bridges can achieve better quality for these parts." + +#~ msgid "Cooling overhang threshold" +#~ msgstr "Soglia di sbalzo per il raffreddamento" + +#, c-format +#~ msgid "" +#~ "Force cooling fan to be specific speed when overhang degree of printed " +#~ "part exceeds this value. Expressed as percentage which indicates how much " +#~ "width of the line without support from lower layer. 0% means forcing " +#~ "cooling for all outer wall no matter how much overhang degree" +#~ msgstr "" +#~ "Forza la ventola di raffreddamento a una velocità specifica quando il " +#~ "grado di sporgenza della parte stampata supera questo valore. Questo " +#~ "valore è espresso in percentuale e indica la larghezza della linea senza " +#~ "il supporto dei layer. 0%% significa forzare il raffreddamento per tutta " +#~ "la parete esterna, indipendentemente dal grado di sporgenza." + +#~ msgid "Bridge infill direction" +#~ msgstr "Direzione di riempimento del ponte" + +#~ msgid "Bridge density" +#~ msgstr "Densità del bridge" + +#~ msgid "" +#~ "Density of external bridges. 100% means solid bridge. Default is 100%." +#~ msgstr "" +#~ "Densità di ponti esterni. 100% significa solido ponte. L'impostazione " +#~ "predefinita è al 100%." + +#~ msgid "" +#~ "Improve shell precision by adjusting outer wall spacing. This also " +#~ "improves layer consistency.\n" +#~ "Note: This setting will only take effect if the wall sequence is " +#~ "configured to Inner-Outer" +#~ msgstr "" +#~ "Migliora la precisione del guscio regolando lo spaziamento della parete " +#~ "esterna. Ciò migliora anche la coerenza dello strato.\n" +#~ "Nota: Questa impostazione avrà effetto solo se la sequenza della parete è " +#~ "configurata su Interno-Esterno." + +#~ msgid "Thick bridges" +#~ msgstr "Bridge spessi" + +#~ msgid "" +#~ "This fan speed is enforced during all support interfaces, to be able to " +#~ "weaken their bonding with a high fan speed.\n" +#~ "Set to -1 to disable this override.\n" +#~ "Can only be overridden by disable_fan_first_layers." +#~ msgstr "" +#~ "Questa velocità della ventola viene applicata durante tutte le interfacce " +#~ "di supporto, per essere in grado di indebolire il loro legame con " +#~ "un'elevata velocità della ventola.\n" +#~ "Impostare su -1 per disabilitare questa sostituzione.\n" +#~ "Può essere sovrascritto solo da disable_fan_first_layers." + +#~ msgid "" +#~ "A lower value results in smoother extrusion rate transitions. However, " +#~ "this results in a significantly larger gcode file and more instructions " +#~ "for the printer to process. \n" +#~ "\n" +#~ "Default value of 3 works well for most cases. If your printer is " +#~ "stuttering, increase this value to reduce the number of adjustments made\n" +#~ "\n" +#~ "Allowed values: 1-5" +#~ msgstr "" +#~ "Un valore più basso si traduce in transizioni più fluide della velocità " +#~ "di estrusione. Tuttavia, ciò si traduce in un file gcode " +#~ "significativamente più grande e in un maggior numero di istruzioni per " +#~ "l'elaborazione da parte della stampante. \n" +#~ "\n" +#~ "Il valore predefinito 3 funziona bene per la maggior parte dei casi. Se " +#~ "la stampante balbetta, aumentare questo valore per ridurre il numero di " +#~ "regolazioni effettuate\n" +#~ "\n" +#~ "Valori consentiti: 1-5" + +#~ msgid "" +#~ "The minimum printing speed that the printer will slow down to to attempt " +#~ "to maintain the minimum layer time above, when slow down for better layer " +#~ "cooling is enabled." +#~ msgstr "" +#~ "La velocità di stampa minima a cui la stampante rallenterà per tentare di " +#~ "mantenere il tempo minimo dello strato sopra, quando è abilitato il " +#~ "rallentamento per un migliore raffreddamento dello strato." + +#~ msgid "" +#~ "normal(auto) and tree(auto) is used to generate support automatically. If " +#~ "normal(manual) or tree(manual) is selected, only support enforcers are " +#~ "generated" +#~ msgstr "" +#~ "normale(auto) e albero(auto) sono usati per generare automaticamente i " +#~ "supporti. Se si seleziona normale(manuale) o albero(manuale), vengono " +#~ "generati solo gli esecutori del supporto." + +#~ msgid "normal(auto)" +#~ msgstr "normal(auto)" + +#~ msgid "tree(auto)" +#~ msgstr "albero(auto)" + +#~ msgid "normal(manual)" +#~ msgstr "normale(manuale)" + +#~ msgid "tree(manual)" +#~ msgstr "albero(manuale)" + #~ msgid "ShiftLeft mouse button" #~ msgstr "MaiuscTasto sinistro del mouse" @@ -18064,13 +18541,6 @@ msgstr "" #~ msgid "Configuration package updated to " #~ msgstr "Pacchetto di configurazione aggiornato a " -#~ msgid "" -#~ "Improve shell precision by adjusting outer wall spacing. This also " -#~ "improves layer consistency." -#~ msgstr "" -#~ "Migliora la precisione del guscio regolando la spaziatura delle pareti " -#~ "esterne. Questo migliora anche la consistenza degli strati." - #~ msgid "" #~ "The minimum printing speed for the filament when slow down for better " #~ "layer cooling is enabled, when printing overhangs and when feature speeds " diff --git a/localization/i18n/ja/OrcaSlicer_ja.po b/localization/i18n/ja/OrcaSlicer_ja.po index d981372f8c..7c97298a92 100644 --- a/localization/i18n/ja/OrcaSlicer_ja.po +++ b/localization/i18n/ja/OrcaSlicer_ja.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-01-04 17:35+0100\n" +"POT-Creation-Date: 2025-02-14 23:42+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -2779,9 +2779,6 @@ msgstr "" msgid "About %s" msgstr "%s について" -msgid "Orca Slicer" -msgstr "" - msgid "OrcaSlicer is based on BambuStudio, PrusaSlicer, and SuperSlicer." msgstr "" @@ -2832,9 +2829,6 @@ msgstr "入力値範囲は %1% ~ %2%" msgid "SN" msgstr "シリアル番号" -msgid "Setting AMS slot information while printing is not supported" -msgstr "造形中に、AMSスロットを設定できません。" - msgid "Factors of Flow Dynamics Calibration" msgstr "Factors of Flow Dynamics Calibration" @@ -2847,6 +2841,9 @@ msgstr "係数K" msgid "Factor N" msgstr "係数N" +msgid "Setting AMS slot information while printing is not supported" +msgstr "造形中に、AMSスロットを設定できません。" + msgid "Setting Virtual slot information while printing is not supported" msgstr "Setting Virtual slot information while printing is not supported" @@ -2962,8 +2959,8 @@ msgstr "AMSを無効" msgid "Print with the filament mounted on the back of chassis" msgstr "外部スプールホルダーのフィラメントで造形します" -msgid "Current Cabin humidity" -msgstr "Current Cabin humidity" +msgid "Current AMS humidity" +msgstr "" msgid "" "Please change the desiccant when it is too wet. The indicator may not " @@ -4993,8 +4990,8 @@ msgstr "" msgid "The printer has been logged out and cannot connect." msgstr "The printer has been logged out and cannot connect." -msgid "Stopped." -msgstr "中止しました" +msgid "Video Stopped." +msgstr "" msgid "LAN Connection Failed (Failed to start liveview)" msgstr "LAN接続失敗 (ライブビュー開始失敗)" @@ -5082,10 +5079,6 @@ msgstr "Reload file list from printer." msgid "No printers." msgstr "プリンタなし" -#, c-format, boost-format -msgid "Connect failed [%d]!" -msgstr "接続に失敗しました (%d)" - msgid "Loading file list..." msgstr "ファイルリストを読込み中" @@ -5095,9 +5088,6 @@ msgstr "ファイル無し" msgid "Load failed" msgstr "Load failed" -msgid "Initialize failed (Device connection not ready)!" -msgstr "Initialization failed (Device connection not ready)!" - msgid "" "Browsing file in SD card is not supported in current firmware. Please update " "the printer firmware." @@ -5105,7 +5095,9 @@ msgstr "" "Browsing file in SD card is not supported in current firmware. Please update " "the printer firmware." -msgid "Initialize failed (Storage unavailable, insert SD card.)!" +msgid "" +"Please check if the SD card is inserted into the printer.\n" +"If it still cannot be read, you can try formatting the SD card." msgstr "" msgid "LAN Connection Failed (Failed to view sdcard)" @@ -5114,10 +5106,6 @@ msgstr "LAN Connection Failed (Failed to view sdcard)" msgid "Browsing file in SD card is not supported in LAN Only Mode." msgstr "Browsing file in SD card is not supported in LAN Only Mode." -#, c-format, boost-format -msgid "Initialize failed (%s)!" -msgstr "初期化失敗 (%s)" - #, c-format, boost-format msgid "You are going to delete %u file from printer. Are you sure to continue?" msgid_plural "" @@ -5549,6 +5537,25 @@ msgstr "Latest Version: " msgid "Not for now" msgstr "Not for now" +msgid "Server Exception" +msgstr "" + +msgid "" +"The server is unable to respond. Please click the link below to check the " +"server status." +msgstr "" + +msgid "" +"If the server is in a fault state, you can temporarily use offline printing " +"or local network printing." +msgstr "" + +msgid "How to use LAN only mode" +msgstr "" + +msgid "Don't show this dialog again" +msgstr "" + msgid "3D Mouse disconnected." msgstr "3D Mouseが切断されました。" @@ -6244,6 +6251,10 @@ msgstr "プロジェクトとして開く" msgid "Import geometry only" msgstr "ジオメトリのみをインポート" +msgid "" +"This option can be changed later in preferences, under 'Load Behaviour'." +msgstr "" + msgid "Only one G-code file can be opened at the same time." msgstr "G-codeファイルは一度一つしか開きません" @@ -6668,6 +6679,24 @@ msgstr "" msgid "Associate URLs to OrcaSlicer" msgstr "" +msgid "Load All" +msgstr "" + +msgid "Ask When Relevant" +msgstr "" + +msgid "Always Ask" +msgstr "" + +msgid "Load Geometry Only" +msgstr "" + +msgid "Load Behaviour" +msgstr "" + +msgid "Should printer/filament/process settings be loaded when opening a .3mf?" +msgstr "" + msgid "Maximum recent projects" msgstr "Maximum recent projects" @@ -7217,6 +7246,9 @@ msgstr "デバイス名を変更" msgid "Bind with Pin Code" msgstr "Bind with Pin Code" +msgid "Bind with Access Code" +msgstr "" + msgid "Send to Printer SD card" msgstr "プリンターのSDカードに送信" @@ -7506,6 +7538,75 @@ msgstr "" "を追加してください。プレートで右クリックして、「プリミティブを追加」→「タイム" "ラプスプライムタワー」で追加できます。" +msgid "" +"A copy of the current system preset will be created, which will be detached " +"from the system preset." +msgstr "" + +msgid "" +"The current custom preset will be detached from the parent system preset." +msgstr "" + +msgid "Modifications to the current profile will be saved." +msgstr "" + +msgid "" +"This action is not revertible.\n" +"Do you want to proceed?" +msgstr "" + +msgid "Detach preset" +msgstr "" + +msgid "This is a default preset." +msgstr "" + +msgid "This is a system preset." +msgstr "" + +msgid "Current preset is inherited from the default preset." +msgstr "" + +msgid "Current preset is inherited from" +msgstr "" + +msgid "It can't be deleted or modified." +msgstr "" + +msgid "" +"Any modifications should be saved as a new preset inherited from this one." +msgstr "" + +msgid "To do that please specify a new name for the preset." +msgstr "" + +msgid "Additional information:" +msgstr "" + +msgid "vendor" +msgstr "" + +msgid "printer model" +msgstr "" + +msgid "default print profile" +msgstr "" + +msgid "default filament profile" +msgstr "" + +msgid "default SLA material profile" +msgstr "" + +msgid "default SLA print profile" +msgstr "" + +msgid "full profile name" +msgstr "" + +msgid "symbolic profile name" +msgstr "" + msgid "Line width" msgstr "押出線幅" @@ -7601,6 +7702,12 @@ msgstr "Post-processing Scripts" msgid "Notes" msgstr "Notes" +msgid "Dependencies" +msgstr "" + +msgid "Profile dependencies" +msgstr "" + msgid "Frequent" msgstr "よく使う" @@ -8664,17 +8771,22 @@ msgstr "View Liveview" msgid "Confirm and Update Nozzle" msgstr "Confirm and Update Nozzle" -msgid "LAN Connection Failed (Sending print file)" -msgstr "LAN接続失敗 (造形ファイル送信)" +msgid "Connect the printer using IP and access code" +msgstr "" msgid "" -"Step 1, please confirm Orca Slicer and your printer are in the same LAN." -msgstr "1Orca Slicerとプリンターが同一のLANに繋いでいること確認してください。" +"Step 1. Please confirm Orca Slicer and your printer are in the same LAN." +msgstr "" msgid "" -"Step 2, if the IP and Access Code below are different from the actual values " +"Step 2. If the IP and Access Code below are different from the actual values " "on your printer, please correct them." -msgstr "2下記IPアドレスやアクセスコードが一致していない場合修正してください。" +msgstr "" + +msgid "" +"Step 3. Please obtain the device SN from the printer side; it is usually " +"found in the device information on the printer screen." +msgstr "" msgid "IP" msgstr "IP" @@ -8682,19 +8794,38 @@ msgstr "IP" msgid "Access Code" msgstr "アクセスコード" +msgid "Printer model" +msgstr "" + +msgid "Printer name" +msgstr "" + msgid "Where to find your printer's IP and Access Code?" msgstr "どこでプリンターのIPアドレスとアクセスコードを確認できますか?" -msgid "Step 3: Ping the IP address to check for packet loss and latency." +msgid "Connect" msgstr "" -"ステップ3: パケットロスとレイテンシを確認するために、IPアドレスに対してpingを" -"実行します。" -msgid "Test" -msgstr "テスト" +msgid "Manual Setup" +msgstr "" -msgid "IP and Access Code Verified! You may close the window" -msgstr "IP and Access Code Verified! You may close the window" +msgid "connecting..." +msgstr "" + +msgid "Failed to connect to printer." +msgstr "" + +msgid "Failed to publish login request." +msgstr "" + +msgid "The printer has already been bound." +msgstr "" + +msgid "The printer mode is incorrect, please switch to LAN Only." +msgstr "" + +msgid "Connecting to printer... The dialog will close later" +msgstr "" msgid "Connection failed, please double check IP and Access Code" msgstr "Connection failed, please double check IP and Access Code" @@ -9601,43 +9732,44 @@ msgstr "" msgid "Nowhere" msgstr "" -msgid "Force cooling for overhang and bridge" -msgstr "オーバーハングとブリッジの冷却" +msgid "Force cooling for overhangs and bridges" +msgstr "" msgid "" -"Enable this option to optimize part cooling fan speed for overhang and " -"bridge to get better cooling" +"Enable this option to allow adjustment of the part cooling fan speed for " +"specifically for overhangs, internal and external bridges. Setting the fan " +"speed specifically for these features can improve overall print quality and " +"reduce warping." msgstr "" -"この設定により、パーツ冷却ファンの回転速度を最適化を行います。オーバーハング" -"やブリッジの冷却に有効的です。" -msgid "Fan speed for overhang" -msgstr "オーバーハングの回転速度" +msgid "Overhangs and external bridges fan speed" +msgstr "" msgid "" -"Force part cooling fan to be this speed when printing bridge or overhang " -"wall which has large overhang degree. Forcing cooling for overhang and " -"bridge can get better quality for these part" +"Use this part cooling fan speed when printing bridges or overhang walls with " +"an overhang threshold that exceeds the value set in the 'Overhangs cooling " +"threshold' parameter above. Increasing the cooling specifically for " +"overhangs and bridges can improve the overall print quality of these " +"features.\n" +"\n" +"Please note, this fan speed is clamped on the lower end by the minimum fan " +"speed threshold set above. It is also adjusted upwards up to the maximum fan " +"speed threshold when the minimum layer time threshold is not met." msgstr "" -"大きなオーバーハングやブリッジを造形する時にファンの回転速度。仕上がりが向上" -"させる効果があります。" -msgid "Cooling overhang threshold" -msgstr "オーバーハングの冷却閾値" +msgid "Overhang cooling activation threshold" +msgstr "" -#, c-format +#, c-format, boost-format msgid "" -"Force cooling fan to be specific speed when overhang degree of printed part " -"exceeds this value. Expressed as percentage which indicates how much width " -"of the line without support from lower layer. 0% means forcing cooling for " -"all outer wall no matter how much overhang degree" +"When the overhang exceeds this specified threshold, force the cooling fan to " +"run at the 'Overhang Fan Speed' set below. This threshold is expressed as a " +"percentage, indicating the portion of each line's width that is unsupported " +"by the layer beneath it. Setting this value to 0% forces the cooling fan to " +"run for all outer walls, regardless of the overhang degree." msgstr "" -"Force cooling fan to be a specific speed when overhang degree of printed " -"part exceeds this value. This is expressed as a percentage which indicates " -"how much width of the line without support from lower layer. 0% means " -"forcing cooling for all outer wall no matter the overhang degree." -msgid "Bridge infill direction" +msgid "External bridge infill direction" msgstr "" msgid "" @@ -9648,10 +9780,44 @@ msgstr "" "ブリッジ角度。値が0の場合は自動計算となります。0°を使用したい場合は180を入力" "していください。" -msgid "Bridge density" +msgid "Internal bridge infill direction" msgstr "" -msgid "Density of external bridges. 100% means solid bridge. Default is 100%." +msgid "" +"Internal bridging angle override. If left to zero, the bridging angle will " +"be calculated automatically. Otherwise the provided angle will be used for " +"internal bridges. Use 180°for zero angle.\n" +"\n" +"It is recommended to leave it at 0 unless there is a specific model need not " +"to." +msgstr "" + +msgid "External bridge density" +msgstr "" + +msgid "" +"Controls the density (spacing) of external bridge lines. 100% means solid " +"bridge. Default is 100%.\n" +"\n" +"Lower density external bridges can help improve reliability as there is more " +"space for air to circulate around the extruded bridge, improving its cooling " +"speed." +msgstr "" + +msgid "Internal bridge density" +msgstr "" + +msgid "" +"Controls the density (spacing) of internal bridge lines. 100% means solid " +"bridge. Default is 100%.\n" +"\n" +" Lower density internal bridges can help reduce top surface pillowing and " +"improve internal bridge reliability as there is more space for air to " +"circulate around the extruded bridge, improving its cooling speed. \n" +"\n" +"This option works particularly well when combined with the second internal " +"bridge over infill option, further improving internal bridging structure " +"before solid infill is extruded." msgstr "" msgid "Bridge flow ratio" @@ -9704,9 +9870,7 @@ msgstr "" msgid "" "Improve shell precision by adjusting outer wall spacing. This also improves " -"layer consistency.\n" -"Note: This setting will only take effect if the wall sequence is configured " -"to Inner-Outer" +"layer consistency." msgstr "" msgid "Only one wall on top surfaces" @@ -9936,12 +10100,24 @@ msgstr "互換性のあるデバイス" msgid "Compatible machine condition" msgstr "対応機種条件" +msgid "" +"A boolean expression using the configuration values of an active printer " +"profile. If this expression evaluates to true, this profile is considered " +"compatible with the active printer profile." +msgstr "" + msgid "Compatible process profiles" msgstr "互換性のあるプロセスプロファイル" msgid "Compatible process profiles condition" msgstr "互換性のあるプロセスプロファイル条件" +msgid "" +"A boolean expression using the configuration values of an active print " +"profile. If this expression evaluates to true, this profile is considered " +"compatible with the active print profile." +msgstr "" + msgid "Print sequence, layer by layer or object by object" msgstr "造形の順番を設定します、積層順かオブジェクト順にしてください" @@ -10033,8 +10209,8 @@ msgstr "" "ブリッジが長くない場合は、サポートが無くても造形できます。フィラメントの消費" "量を減らします。" -msgid "Thick bridges" -msgstr "厚いブリッジ" +msgid "Thick external bridges" +msgstr "" msgid "" "If enabled, bridges are more reliable, can bridge longer distances, but may " @@ -10053,36 +10229,86 @@ msgid "" "using large nozzles." msgstr "" -msgid "Filter out small internal bridges (beta)" +msgid "Extra bridge layers (beta)" msgstr "" msgid "" -"This option can help reducing pillowing on top surfaces in heavily slanted " -"or curved models.\n" +"This option enables the generation of an extra bridge layer over internal " +"and/or external bridges.\n" +"\n" +"Extra bridge layers help improve bridge appearance and reliability, as the " +"solid infill is better supported. This is especially useful in fast " +"printers, where the bridge and solid infill speeds vary greatly. The extra " +"bridge layer results in reduced pillowing on top surfaces, as well as " +"reduced separation of the external bridge layer from its surrounding " +"perimeters.\n" +"\n" +"It is generally recommended to set this to at least 'External bridge only', " +"unless specific issues with the sliced model are found.\n" +"\n" +"Options:\n" +"1. Disabled - does not generate second bridge layers. This is the default " +"and is set for compatibility purposes.\n" +"2. External bridge only - generates second bridge layers for external-facing " +"bridges only. Please note that small bridges that are shorter or narrower " +"than the set number of perimeters will be skipped as they would not benefit " +"from a second bridge layer. If generated, the second bridge layer will be " +"extruded parallel to the first bridge layer to reinforce the bridge " +"strength.\n" +"3. Internal bridge only - generates second bridge layers for internal " +"bridges over sparse infill only. Please note that the internal bridges count " +"towards the top shell layer count of your model. The second internal bridge " +"layer will be extruded as close to perpendicular to the first as possible. " +"If multiple regions in the same island, with varying bridge angles are " +"present, the last region of that island will be selected as the angle " +"reference.\n" +"4. Apply to all - generates second bridge layers for both internal and " +"external-facing bridges\n" +msgstr "" + +msgid "Disabled" +msgstr "無効" + +msgid "External bridge only" +msgstr "" + +msgid "Internal bridge only" +msgstr "" + +msgid "Apply to all" +msgstr "" + +msgid "Filter out small internal bridges" +msgstr "" + +msgid "" +"This option can help reduce pillowing on top surfaces in heavily slanted or " +"curved models.\n" "\n" "By default, small internal bridges are filtered out and the internal solid " "infill is printed directly over the sparse infill. This works well in most " "cases, speeding up printing without too much compromise on top surface " "quality. \n" "\n" -"However, in heavily slanted or curved models especially where too low sparse " -"infill density is used, this may result in curling of the unsupported solid " -"infill, causing pillowing.\n" +"However, in heavily slanted or curved models, especially where too low a " +"sparse infill density is used, this may result in curling of the unsupported " +"solid infill, causing pillowing.\n" "\n" -"Disabling this option will print internal bridge layer over slightly " -"unsupported internal solid infill. The options below control the amount of " -"filtering, i.e. the amount of internal bridges created.\n" +"Enabling limited filtering or no filtering will print internal bridge layer " +"over slightly unsupported internal solid infill. The options below control " +"the sensitivity of the filtering, i.e. they control where internal bridges " +"are created.\n" "\n" -"Filter - enable this option. This is the default behavior and works well in " -"most cases.\n" +"1. Filter - enables this option. This is the default behavior and works well " +"in most cases.\n" "\n" -"Limited filtering - creates internal bridges on heavily slanted surfaces, " -"while avoiding creating unnecessary internal bridges. This works well for " -"most difficult models.\n" +"2. Limited filtering - creates internal bridges on heavily slanted surfaces " +"while avoiding unnecessary bridges. This works well for most difficult " +"models.\n" "\n" -"No filtering - creates internal bridges on every potential internal " -"overhang. This option is useful for heavily slanted top surface models. " -"However, in most cases it creates too many unnecessary bridges." +"3. No filtering - creates internal bridges on every potential internal " +"overhang. This option is useful for heavily slanted top surface models; " +"however, in most cases, it creates too many unnecessary bridges." msgstr "" msgid "Filter" @@ -10854,6 +11080,9 @@ msgstr "スパース インフィルのパターンです。" msgid "Grid" msgstr "グリッド" +msgid "2D Lattice" +msgstr "" + msgid "Line" msgstr "直線" @@ -10884,6 +11113,25 @@ msgstr "ライトニング" msgid "Cross Hatch" msgstr "Cross Hatch" +msgid "Quarter Cubic" +msgstr "" + +msgid "Lattice angle 1" +msgstr "" + +msgid "" +"The angle of the first set of 2D lattice elements in the Z direction. Zero " +"is vertical." +msgstr "" + +msgid "Lattice angle 2" +msgstr "" + +msgid "" +"The angle of the second set of 2D lattice elements in the Z direction. Zero " +"is vertical." +msgstr "" + msgid "Sparse infill anchor length" msgstr "" @@ -11063,10 +11311,24 @@ msgid "Support interface fan speed" msgstr "" msgid "" -"This fan speed is enforced during all support interfaces, to be able to " -"weaken their bonding with a high fan speed.\n" -"Set to -1 to disable this override.\n" -"Can only be overridden by disable_fan_first_layers." +"This part cooling fan speed is applied when printing support interfaces. " +"Setting this parameter to a higher than regular speed reduces the layer " +"binding strength between supports and the supported part, making them easier " +"to separate.\n" +"Set to -1 to disable it.\n" +"This setting is overridden by disable_fan_first_layers." +msgstr "" + +msgid "Internal bridges fan speed" +msgstr "" + +msgid "" +"The part cooling fan speed used for all internal bridges. Set to -1 to use " +"the overhang fan speed settings instead.\n" +"\n" +"Reducing the internal bridges fan speed, compared to your regular fan speed, " +"can help reduce part warping due to excessive cooling applied over a large " +"surface for a prolonged period of time." msgstr "" msgid "" @@ -11107,6 +11369,59 @@ msgstr "" msgid "Whether to apply fuzzy skin on the first layer" msgstr "" +msgid "Fuzzy skin noise type" +msgstr "" + +msgid "" +"Noise type to use for fuzzy skin generation.\n" +"Classic: Classic uniform random noise.\n" +"Perlin: Perlin noise, which gives a more consistent texture.\n" +"Billow: Similar to perlin noise, but clumpier.\n" +"Ridged Multifractal: Ridged noise with sharp, jagged features. Creates " +"marble-like textures.\n" +"Voronoi: Divides the surface into voronoi cells, and displaces each one by a " +"random amount. Creates a patchwork texture." +msgstr "" + +msgid "Classic" +msgstr "クラシック" + +msgid "Perlin" +msgstr "" + +msgid "Billow" +msgstr "" + +msgid "Ridged Multifractal" +msgstr "" + +msgid "Voronoi" +msgstr "" + +msgid "Fuzzy skin feature size" +msgstr "" + +msgid "" +"The base size of the coherent noise features, in mm. Higher values will " +"result in larger features." +msgstr "" + +msgid "Fuzzy Skin Noise Octaves" +msgstr "" + +msgid "" +"The number of octaves of coherent noise to use. Higher values increase the " +"detail of the noise, but also increase computation time." +msgstr "" + +msgid "Fuzzy skin noise persistence" +msgstr "" + +msgid "" +"The decay rate for higher octaves of the coherent noise. Lower values will " +"result in smoother noise." +msgstr "" + msgid "Filter out tiny gaps" msgstr "Filter out tiny gaps" @@ -11507,6 +11822,14 @@ msgstr "アイロン時にライン間隔" msgid "The distance between the lines of ironing" msgstr "アイロン時の線間隔です。" +msgid "Ironing inset" +msgstr "" + +msgid "" +"The distance to keep from the edges. A value of 0 sets this to half of the " +"nozzle diameter" +msgstr "" + msgid "Ironing speed" msgstr "アイロン時の移動速度" @@ -11732,7 +12055,17 @@ msgid "" "Default value of 3 works well for most cases. If your printer is stuttering, " "increase this value to reduce the number of adjustments made\n" "\n" -"Allowed values: 1-5" +"Allowed values: 0.5-5" +msgstr "" + +msgid "Apply only on external features" +msgstr "" + +msgid "" +"Applies extrusion rate smoothing only on external perimeters and overhangs. " +"This can help reduce artefacts due to sharp speed transitions on externally " +"visible overhangs without impacting the print speed of features that will " +"not be visible to the user." msgstr "" msgid "Minimum speed for part cooling fan" @@ -11760,9 +12093,9 @@ msgid "Min print speed" msgstr "最小造形速度" msgid "" -"The minimum printing speed that the printer will slow down to to attempt to " -"maintain the minimum layer time above, when slow down for better layer " -"cooling is enabled." +"The minimum print speed to which the printer slows down to maintain the " +"minimum layer time defined above when the slowdown for better layer cooling " +"is enabled." msgstr "" msgid "Diameter of nozzle" @@ -12423,9 +12756,6 @@ msgid "" "with them. To avoid this, increase the skirt distance value.\n" msgstr "" -msgid "Disabled" -msgstr "無効" - msgid "Enabled" msgstr "有効" @@ -12684,22 +13014,22 @@ msgid "Enable support generation." msgstr "この設定によりサポート生成を有効になります。" msgid "" -"normal(auto) and tree(auto) is used to generate support automatically. If " -"normal(manual) or tree(manual) is selected, only support enforcers are " +"Normal (auto) and Tree (auto) is used to generate support automatically. If " +"Normal (manual) or Tree (manual) is selected, only support enforcers are " "generated" -msgstr "通常 (自動) と ツリー (自動) では自動でサポートを作成します。" +msgstr "" -msgid "normal(auto)" -msgstr "通常 (自動)" +msgid "Normal (auto)" +msgstr "" -msgid "tree(auto)" -msgstr "ツリー (自動)" +msgid "Tree (auto)" +msgstr "" -msgid "normal(manual)" -msgstr "通常 (手動)" +msgid "Normal (manual)" +msgstr "" -msgid "tree(manual)" -msgstr "ツリー (手動)" +msgid "Tree (manual)" +msgstr "" msgid "Support/object xy distance" msgstr "水平間隔" @@ -12906,6 +13236,15 @@ msgid "" "threshold." msgstr "オーバーハングの角度がこの閾値以下になる場合、サポートを生成します" +msgid "Threshold overlap" +msgstr "" + +msgid "" +"If threshold angle is zero, support will be generated for overhangs whose " +"overlap is below the threshold. The smaller this value is, the steeper the " +"overhang that can be printed without support." +msgstr "" + msgid "Tree support branch angle" msgstr "ツリーサポート枝アングル" @@ -13387,9 +13726,6 @@ msgstr "" "クラシックでは従来通りの壁面を生成しますが、Arachneでは押出線幅が可変になりま" "す。" -msgid "Classic" -msgstr "クラシック" - msgid "Arachne" msgstr "Arachne" @@ -15314,6 +15650,9 @@ msgstr "Physical Printer" msgid "Print Host upload" msgstr "Print Host upload" +msgid "Test" +msgstr "テスト" + msgid "Could not get a valid Printer Host reference" msgstr "Could not get a valid Printer Host reference" @@ -16111,6 +16450,102 @@ msgstr "" "ABS, appropriately increasing the heatbed temperature can reduce the " "probability of warping?" +#~ msgid "Current Cabin humidity" +#~ msgstr "Current Cabin humidity" + +#~ msgid "Stopped." +#~ msgstr "中止しました" + +#, c-format, boost-format +#~ msgid "Connect failed [%d]!" +#~ msgstr "接続に失敗しました (%d)" + +#~ msgid "Initialize failed (Device connection not ready)!" +#~ msgstr "Initialization failed (Device connection not ready)!" + +#, c-format, boost-format +#~ msgid "Initialize failed (%s)!" +#~ msgstr "初期化失敗 (%s)" + +#~ msgid "LAN Connection Failed (Sending print file)" +#~ msgstr "LAN接続失敗 (造形ファイル送信)" + +#~ msgid "" +#~ "Step 1, please confirm Orca Slicer and your printer are in the same LAN." +#~ msgstr "" +#~ "1Orca Slicerとプリンターが同一のLANに繋いでいること確認してください。" + +#~ msgid "" +#~ "Step 2, if the IP and Access Code below are different from the actual " +#~ "values on your printer, please correct them." +#~ msgstr "" +#~ "2下記IPアドレスやアクセスコードが一致していない場合修正してください。" + +#~ msgid "Step 3: Ping the IP address to check for packet loss and latency." +#~ msgstr "" +#~ "ステップ3: パケットロスとレイテンシを確認するために、IPアドレスに対して" +#~ "pingを実行します。" + +#~ msgid "IP and Access Code Verified! You may close the window" +#~ msgstr "IP and Access Code Verified! You may close the window" + +#~ msgid "Force cooling for overhang and bridge" +#~ msgstr "オーバーハングとブリッジの冷却" + +#~ msgid "" +#~ "Enable this option to optimize part cooling fan speed for overhang and " +#~ "bridge to get better cooling" +#~ msgstr "" +#~ "この設定により、パーツ冷却ファンの回転速度を最適化を行います。オーバーハン" +#~ "グやブリッジの冷却に有効的です。" + +#~ msgid "Fan speed for overhang" +#~ msgstr "オーバーハングの回転速度" + +#~ msgid "" +#~ "Force part cooling fan to be this speed when printing bridge or overhang " +#~ "wall which has large overhang degree. Forcing cooling for overhang and " +#~ "bridge can get better quality for these part" +#~ msgstr "" +#~ "大きなオーバーハングやブリッジを造形する時にファンの回転速度。仕上がりが向" +#~ "上させる効果があります。" + +#~ msgid "Cooling overhang threshold" +#~ msgstr "オーバーハングの冷却閾値" + +#, c-format +#~ msgid "" +#~ "Force cooling fan to be specific speed when overhang degree of printed " +#~ "part exceeds this value. Expressed as percentage which indicates how much " +#~ "width of the line without support from lower layer. 0% means forcing " +#~ "cooling for all outer wall no matter how much overhang degree" +#~ msgstr "" +#~ "Force cooling fan to be a specific speed when overhang degree of printed " +#~ "part exceeds this value. This is expressed as a percentage which " +#~ "indicates how much width of the line without support from lower layer. " +#~ "0% means forcing cooling for all outer wall no matter the overhang degree." + +#~ msgid "Thick bridges" +#~ msgstr "厚いブリッジ" + +#~ msgid "" +#~ "normal(auto) and tree(auto) is used to generate support automatically. If " +#~ "normal(manual) or tree(manual) is selected, only support enforcers are " +#~ "generated" +#~ msgstr "通常 (自動) と ツリー (自動) では自動でサポートを作成します。" + +#~ msgid "normal(auto)" +#~ msgstr "通常 (自動)" + +#~ msgid "tree(auto)" +#~ msgstr "ツリー (自動)" + +#~ msgid "normal(manual)" +#~ msgstr "通常 (手動)" + +#~ msgid "tree(manual)" +#~ msgstr "ツリー (手動)" + #~ msgid "Unselect" #~ msgstr "選択解除" diff --git a/localization/i18n/ko/OrcaSlicer_ko.po b/localization/i18n/ko/OrcaSlicer_ko.po index 058f9d3e9b..ded421decd 100644 --- a/localization/i18n/ko/OrcaSlicer_ko.po +++ b/localization/i18n/ko/OrcaSlicer_ko.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-01-04 17:35+0100\n" +"POT-Creation-Date: 2025-02-14 23:42+0800\n" "PO-Revision-Date: 2024-11-06 21:10+0900\n" "Last-Translator: ElectricalBoy " "<15651807+ElectricalBoy@users.noreply.github.com>\n" @@ -2791,9 +2791,6 @@ msgstr "" msgid "About %s" msgstr "%s 정보" -msgid "Orca Slicer" -msgstr "" - msgid "OrcaSlicer is based on BambuStudio, PrusaSlicer, and SuperSlicer." msgstr "" "Orca Slicer는 BambuStudio, PrusaSlicer 및 SuperSlicer를 기반으로 합니다." @@ -2846,9 +2843,6 @@ msgstr "입력 값은 %1%보다 크고 %2%보다 작아야 합니다" msgid "SN" msgstr "SN" -msgid "Setting AMS slot information while printing is not supported" -msgstr "출력 중에는 AMS 슬롯 정보 설정이 지원되지 않습니다" - msgid "Factors of Flow Dynamics Calibration" msgstr "동적 유량 교정 계수" @@ -2861,6 +2855,9 @@ msgstr "K 계수" msgid "Factor N" msgstr "N 계수" +msgid "Setting AMS slot information while printing is not supported" +msgstr "출력 중에는 AMS 슬롯 정보 설정이 지원되지 않습니다" + msgid "Setting Virtual slot information while printing is not supported" msgstr "출력 중에는 가상 슬롯 정보 설정이 지원되지 않습니다" @@ -2978,8 +2975,8 @@ msgstr "AMS 미사용" msgid "Print with the filament mounted on the back of chassis" msgstr "섀시 뒷면에 필라멘트를 장착한 상태에서 출력" -msgid "Current Cabin humidity" -msgstr "현재 기내 습도" +msgid "Current AMS humidity" +msgstr "" msgid "" "Please change the desiccant when it is too wet. The indicator may not " @@ -5025,8 +5022,8 @@ msgstr "" msgid "The printer has been logged out and cannot connect." msgstr "프린터가 로그아웃되어 연결할 수 없습니다." -msgid "Stopped." -msgstr "중지됨." +msgid "Video Stopped." +msgstr "" msgid "LAN Connection Failed (Failed to start liveview)" msgstr "LAN 연결 실패(라이브뷰 시작 실패)" @@ -5117,10 +5114,6 @@ msgstr "프린터에서 파일 목록을 다시 로드합니다." msgid "No printers." msgstr "프린터 없음." -#, c-format, boost-format -msgid "Connect failed [%d]!" -msgstr "[%d] 연결 실패!" - msgid "Loading file list..." msgstr "파일 목록 로드 중..." @@ -5130,9 +5123,6 @@ msgstr "파일 없음" msgid "Load failed" msgstr "로드 실패" -msgid "Initialize failed (Device connection not ready)!" -msgstr "초기화 실패 (장치 연결 준비 안 됨)!" - msgid "" "Browsing file in SD card is not supported in current firmware. Please update " "the printer firmware." @@ -5140,9 +5130,10 @@ msgstr "" "현재 펌웨어에서는 SD 카드의 파일 검색이 지원되지 않습니다. 프린터 펌웨어를 업" "데이트하세요." -msgid "Initialize failed (Storage unavailable, insert SD card.)!" +msgid "" +"Please check if the SD card is inserted into the printer.\n" +"If it still cannot be read, you can try formatting the SD card." msgstr "" -"초기화에 실패했습니다(저장소를 사용할 수 없습니다. SD 카드를 삽입하세요.)!" msgid "LAN Connection Failed (Failed to view sdcard)" msgstr "LAN 연결 실패 (sdcard를 볼 수 없음)" @@ -5150,10 +5141,6 @@ msgstr "LAN 연결 실패 (sdcard를 볼 수 없음)" msgid "Browsing file in SD card is not supported in LAN Only Mode." msgstr "LAN 전용 모드에서는 SD 카드의 파일 탐색이 지원되지 않습니다." -#, c-format, boost-format -msgid "Initialize failed (%s)!" -msgstr "(%s) 초기화 실패!" - #, c-format, boost-format msgid "You are going to delete %u file from printer. Are you sure to continue?" msgid_plural "" @@ -5586,6 +5573,25 @@ msgstr "최신 버전: " msgid "Not for now" msgstr "건너뛰기" +msgid "Server Exception" +msgstr "" + +msgid "" +"The server is unable to respond. Please click the link below to check the " +"server status." +msgstr "" + +msgid "" +"If the server is in a fault state, you can temporarily use offline printing " +"or local network printing." +msgstr "" + +msgid "How to use LAN only mode" +msgstr "" + +msgid "Don't show this dialog again" +msgstr "" + msgid "3D Mouse disconnected." msgstr "3D 마우스가 분리됨." @@ -6291,6 +6297,10 @@ msgstr "프로젝트로 열기" msgid "Import geometry only" msgstr "형상만 가져오기" +msgid "" +"This option can be changed later in preferences, under 'Load Behaviour'." +msgstr "" + msgid "Only one G-code file can be opened at the same time." msgstr "동시에 하나의 G코드 파일만 열 수 있습니다." @@ -6721,6 +6731,24 @@ msgstr "OrcaSlicer에 웹 링크 연결" msgid "Associate URLs to OrcaSlicer" msgstr "OrcaSlicer에 URL 연결" +msgid "Load All" +msgstr "" + +msgid "Ask When Relevant" +msgstr "" + +msgid "Always Ask" +msgstr "" + +msgid "Load Geometry Only" +msgstr "" + +msgid "Load Behaviour" +msgstr "" + +msgid "Should printer/filament/process settings be loaded when opening a .3mf?" +msgstr "" + msgid "Maximum recent projects" msgstr "최근 프로젝트 최대 표시" @@ -7273,6 +7301,9 @@ msgstr "장치 이름 수정" msgid "Bind with Pin Code" msgstr "핀 코드로 바인딩" +msgid "Bind with Access Code" +msgstr "" + msgid "Send to Printer SD card" msgstr "프린터 SD 카드로 보내기" @@ -7565,6 +7596,75 @@ msgstr "" "빌드 플레이트의 빈 위치를 마우스 오른쪽 버튼으로 클릭하고 \"기본 모델 추가\"-" "> \"타임랩스 프라임 타워\"를 선택합니다." +msgid "" +"A copy of the current system preset will be created, which will be detached " +"from the system preset." +msgstr "" + +msgid "" +"The current custom preset will be detached from the parent system preset." +msgstr "" + +msgid "Modifications to the current profile will be saved." +msgstr "" + +msgid "" +"This action is not revertible.\n" +"Do you want to proceed?" +msgstr "" + +msgid "Detach preset" +msgstr "" + +msgid "This is a default preset." +msgstr "" + +msgid "This is a system preset." +msgstr "" + +msgid "Current preset is inherited from the default preset." +msgstr "" + +msgid "Current preset is inherited from" +msgstr "" + +msgid "It can't be deleted or modified." +msgstr "" + +msgid "" +"Any modifications should be saved as a new preset inherited from this one." +msgstr "" + +msgid "To do that please specify a new name for the preset." +msgstr "" + +msgid "Additional information:" +msgstr "" + +msgid "vendor" +msgstr "" + +msgid "printer model" +msgstr "" + +msgid "default print profile" +msgstr "" + +msgid "default filament profile" +msgstr "" + +msgid "default SLA material profile" +msgstr "" + +msgid "default SLA print profile" +msgstr "" + +msgid "full profile name" +msgstr "" + +msgid "symbolic profile name" +msgstr "" + msgid "Line width" msgstr "선 너비" @@ -7660,6 +7760,12 @@ msgstr "후처리 스크립트" msgid "Notes" msgstr "메모" +msgid "Dependencies" +msgstr "" + +msgid "Profile dependencies" +msgstr "" + msgid "Frequent" msgstr "빈도" @@ -8758,19 +8864,22 @@ msgstr "실시간 보기" msgid "Confirm and Update Nozzle" msgstr "노즐 확인 및 업데이트" -msgid "LAN Connection Failed (Sending print file)" -msgstr "LAN 연결 실패(출력 파일 전송 중)" - -msgid "" -"Step 1, please confirm Orca Slicer and your printer are in the same LAN." +msgid "Connect the printer using IP and access code" msgstr "" -"1단계, Orca Slicer와 프린터가 동일한 네트워크에 연결되어 있는지 확인하세요." msgid "" -"Step 2, if the IP and Access Code below are different from the actual values " +"Step 1. Please confirm Orca Slicer and your printer are in the same LAN." +msgstr "" + +msgid "" +"Step 2. If the IP and Access Code below are different from the actual values " "on your printer, please correct them." msgstr "" -"2단계, 아래의 IP 및 액세스 코드가 프린터의 실제 값과 다른 경우 수정하세요." + +msgid "" +"Step 3. Please obtain the device SN from the printer side; it is usually " +"found in the device information on the printer screen." +msgstr "" msgid "IP" msgstr "IP" @@ -8778,17 +8887,38 @@ msgstr "IP" msgid "Access Code" msgstr "액세스 코드" +msgid "Printer model" +msgstr "" + +msgid "Printer name" +msgstr "" + msgid "Where to find your printer's IP and Access Code?" msgstr "프린터의 IP 및 액세스 코드는 어디에서 찾을 수 있습니까?" -msgid "Step 3: Ping the IP address to check for packet loss and latency." -msgstr "3단계: IP 주소를 ping하여 패킷 손실 및 대기 시간을 확인합니다." +msgid "Connect" +msgstr "" -msgid "Test" -msgstr "테스트" +msgid "Manual Setup" +msgstr "" -msgid "IP and Access Code Verified! You may close the window" -msgstr "IP 및 액세스 코드가 확인되었습니다. 창을 닫아도 됩니다" +msgid "connecting..." +msgstr "" + +msgid "Failed to connect to printer." +msgstr "" + +msgid "Failed to publish login request." +msgstr "" + +msgid "The printer has already been bound." +msgstr "" + +msgid "The printer mode is incorrect, please switch to LAN Only." +msgstr "" + +msgid "Connecting to printer... The dialog will close later" +msgstr "" msgid "Connection failed, please double check IP and Access Code" msgstr "연결에 실패했습니다. IP와 액세스 코드를 다시 확인하세요" @@ -9760,44 +9890,45 @@ msgstr "상단 및 하단 표면" msgid "Nowhere" msgstr "아무데도" -msgid "Force cooling for overhang and bridge" -msgstr "돌출부 및 브릿지 강제 냉각" +msgid "Force cooling for overhangs and bridges" +msgstr "" msgid "" -"Enable this option to optimize part cooling fan speed for overhang and " -"bridge to get better cooling" +"Enable this option to allow adjustment of the part cooling fan speed for " +"specifically for overhangs, internal and external bridges. Setting the fan " +"speed specifically for these features can improve overall print quality and " +"reduce warping." msgstr "" -"냉각 향상을 위해 돌출부 및 브릿지에 대한 출력물 냉각 팬 속도를 최적화하려면 " -"이 옵션을 활성화합니다" -msgid "Fan speed for overhang" -msgstr "돌출부 팬 속도" +msgid "Overhangs and external bridges fan speed" +msgstr "" msgid "" -"Force part cooling fan to be this speed when printing bridge or overhang " -"wall which has large overhang degree. Forcing cooling for overhang and " -"bridge can get better quality for these part" +"Use this part cooling fan speed when printing bridges or overhang walls with " +"an overhang threshold that exceeds the value set in the 'Overhangs cooling " +"threshold' parameter above. Increasing the cooling specifically for " +"overhangs and bridges can improve the overall print quality of these " +"features.\n" +"\n" +"Please note, this fan speed is clamped on the lower end by the minimum fan " +"speed threshold set above. It is also adjusted upwards up to the maximum fan " +"speed threshold when the minimum layer time threshold is not met." msgstr "" -"돌출부 정도가 큰 브릿지나 돌출부 벽을 출력할 때 출력물 냉각 팬을 이 속도로 강" -"제합니다. 돌출부와 브릿지를 강제 냉각하면 이러한 부품의 품질이 향상될 수 있습" -"니다" -msgid "Cooling overhang threshold" -msgstr "돌출부 냉각 임계값" +msgid "Overhang cooling activation threshold" +msgstr "" -#, c-format +#, c-format, boost-format msgid "" -"Force cooling fan to be specific speed when overhang degree of printed part " -"exceeds this value. Expressed as percentage which indicates how much width " -"of the line without support from lower layer. 0% means forcing cooling for " -"all outer wall no matter how much overhang degree" +"When the overhang exceeds this specified threshold, force the cooling fan to " +"run at the 'Overhang Fan Speed' set below. This threshold is expressed as a " +"percentage, indicating the portion of each line's width that is unsupported " +"by the layer beneath it. Setting this value to 0% forces the cooling fan to " +"run for all outer walls, regardless of the overhang degree." msgstr "" -"출력물의 돌출부 정도가 이 값을 초과하면 냉각 팬이 특정 속도가 되도록 강제합니" -"다. 지지대가 없는 하단 레이어 선 너비의 백분율로 표시됩니다. 0은 돌출부 정도" -"에 관계없이 모든 외벽을 강제 냉각한다는 의미입니다" -msgid "Bridge infill direction" -msgstr "브릿지 채우기 방향" +msgid "External bridge infill direction" +msgstr "" msgid "" "Bridging angle override. If left to zero, the bridging angle will be " @@ -9808,12 +9939,45 @@ msgstr "" "그렇지 않으면 제공된 각도가 외부 브릿지 출력에 사용됩니다. 0도에는 180°를 사" "용합니다." -msgid "Bridge density" -msgstr "브릿지 밀도" - -msgid "Density of external bridges. 100% means solid bridge. Default is 100%." +msgid "Internal bridge infill direction" +msgstr "" + +msgid "" +"Internal bridging angle override. If left to zero, the bridging angle will " +"be calculated automatically. Otherwise the provided angle will be used for " +"internal bridges. Use 180°for zero angle.\n" +"\n" +"It is recommended to leave it at 0 unless there is a specific model need not " +"to." +msgstr "" + +msgid "External bridge density" +msgstr "" + +msgid "" +"Controls the density (spacing) of external bridge lines. 100% means solid " +"bridge. Default is 100%.\n" +"\n" +"Lower density external bridges can help improve reliability as there is more " +"space for air to circulate around the extruded bridge, improving its cooling " +"speed." +msgstr "" + +msgid "Internal bridge density" +msgstr "" + +msgid "" +"Controls the density (spacing) of internal bridge lines. 100% means solid " +"bridge. Default is 100%.\n" +"\n" +" Lower density internal bridges can help reduce top surface pillowing and " +"improve internal bridge reliability as there is more space for air to " +"circulate around the extruded bridge, improving its cooling speed. \n" +"\n" +"This option works particularly well when combined with the second internal " +"bridge over infill option, further improving internal bridging structure " +"before solid infill is extruded." msgstr "" -"외부 브릿지의 밀도. 100%는 단단한 브릿지를 의미합니다. 기본값은 100%입니다." msgid "Bridge flow ratio" msgstr "브릿지 유량 비율" @@ -9885,13 +10049,10 @@ msgstr "정밀한 벽" msgid "" "Improve shell precision by adjusting outer wall spacing. This also improves " -"layer consistency.\n" -"Note: This setting will only take effect if the wall sequence is configured " -"to Inner-Outer" +"layer consistency." msgstr "" "외벽 간격을 조정하여 쉘 정밀도를 향상시킵니다. 이는 또한 레이어 일관성을 향상" -"시킵니다.\n" -"참고: 이 설정은 벽 시퀀스가 내부-외부로 구성된 경우에만 적용됩니다" +"시킵니다." msgid "Only one wall on top surfaces" msgstr "상단 표면에 단일 벽 생성" @@ -10180,12 +10341,24 @@ msgstr "상향 호환 장치" msgid "Compatible machine condition" msgstr "호환 장치 상태" +msgid "" +"A boolean expression using the configuration values of an active printer " +"profile. If this expression evaluates to true, this profile is considered " +"compatible with the active printer profile." +msgstr "" + msgid "Compatible process profiles" msgstr "호환 프로세스 사전설정" msgid "Compatible process profiles condition" msgstr "호환 프로세스 사전설정 상태" +msgid "" +"A boolean expression using the configuration values of an active print " +"profile. If this expression evaluates to true, this profile is considered " +"compatible with the active print profile." +msgstr "" + msgid "Print sequence, layer by layer or object by object" msgstr "출력순서, 레이어별 또는 개체별" @@ -10279,8 +10452,8 @@ msgstr "" "지지대를 크게 만드는 전체 브릿지 영역에 지지대를 사용하지 않습니다. 브릿지는 " "일반적으로 매우 길지 않은 경우 지지대 없이 직접 출력할 수 있습니다" -msgid "Thick bridges" -msgstr "두꺼운 브릿지" +msgid "Thick external bridges" +msgstr "" msgid "" "If enabled, bridges are more reliable, can bridge longer distances, but may " @@ -10303,60 +10476,87 @@ msgstr "" "기능을 켜두세요. 하지만 다음과 같은 경우에는 끄는 것을 고려해 보세요.큰 노즐" "을 사용합니다." -msgid "Filter out small internal bridges (beta)" -msgstr "작은 내부 브릿지 필터링(베타)" +msgid "Extra bridge layers (beta)" +msgstr "" msgid "" -"This option can help reducing pillowing on top surfaces in heavily slanted " -"or curved models.\n" +"This option enables the generation of an extra bridge layer over internal " +"and/or external bridges.\n" +"\n" +"Extra bridge layers help improve bridge appearance and reliability, as the " +"solid infill is better supported. This is especially useful in fast " +"printers, where the bridge and solid infill speeds vary greatly. The extra " +"bridge layer results in reduced pillowing on top surfaces, as well as " +"reduced separation of the external bridge layer from its surrounding " +"perimeters.\n" +"\n" +"It is generally recommended to set this to at least 'External bridge only', " +"unless specific issues with the sliced model are found.\n" +"\n" +"Options:\n" +"1. Disabled - does not generate second bridge layers. This is the default " +"and is set for compatibility purposes.\n" +"2. External bridge only - generates second bridge layers for external-facing " +"bridges only. Please note that small bridges that are shorter or narrower " +"than the set number of perimeters will be skipped as they would not benefit " +"from a second bridge layer. If generated, the second bridge layer will be " +"extruded parallel to the first bridge layer to reinforce the bridge " +"strength.\n" +"3. Internal bridge only - generates second bridge layers for internal " +"bridges over sparse infill only. Please note that the internal bridges count " +"towards the top shell layer count of your model. The second internal bridge " +"layer will be extruded as close to perpendicular to the first as possible. " +"If multiple regions in the same island, with varying bridge angles are " +"present, the last region of that island will be selected as the angle " +"reference.\n" +"4. Apply to all - generates second bridge layers for both internal and " +"external-facing bridges\n" +msgstr "" + +msgid "Disabled" +msgstr "비활성" + +msgid "External bridge only" +msgstr "" + +msgid "Internal bridge only" +msgstr "" + +msgid "Apply to all" +msgstr "" + +msgid "Filter out small internal bridges" +msgstr "" + +msgid "" +"This option can help reduce pillowing on top surfaces in heavily slanted or " +"curved models.\n" "\n" "By default, small internal bridges are filtered out and the internal solid " "infill is printed directly over the sparse infill. This works well in most " "cases, speeding up printing without too much compromise on top surface " "quality. \n" "\n" -"However, in heavily slanted or curved models especially where too low sparse " -"infill density is used, this may result in curling of the unsupported solid " -"infill, causing pillowing.\n" +"However, in heavily slanted or curved models, especially where too low a " +"sparse infill density is used, this may result in curling of the unsupported " +"solid infill, causing pillowing.\n" "\n" -"Disabling this option will print internal bridge layer over slightly " -"unsupported internal solid infill. The options below control the amount of " -"filtering, i.e. the amount of internal bridges created.\n" +"Enabling limited filtering or no filtering will print internal bridge layer " +"over slightly unsupported internal solid infill. The options below control " +"the sensitivity of the filtering, i.e. they control where internal bridges " +"are created.\n" "\n" -"Filter - enable this option. This is the default behavior and works well in " -"most cases.\n" +"1. Filter - enables this option. This is the default behavior and works well " +"in most cases.\n" "\n" -"Limited filtering - creates internal bridges on heavily slanted surfaces, " -"while avoiding creating unnecessary internal bridges. This works well for " -"most difficult models.\n" +"2. Limited filtering - creates internal bridges on heavily slanted surfaces " +"while avoiding unnecessary bridges. This works well for most difficult " +"models.\n" "\n" -"No filtering - creates internal bridges on every potential internal " -"overhang. This option is useful for heavily slanted top surface models. " -"However, in most cases it creates too many unnecessary bridges." +"3. No filtering - creates internal bridges on every potential internal " +"overhang. This option is useful for heavily slanted top surface models; " +"however, in most cases, it creates too many unnecessary bridges." msgstr "" -"이 옵션은 심하게 기울어지거나 곡선이 있는 모델의 상단 표면이 눌리는 현상을 줄" -"이는 데 도움이 될 수 있습니다.\n" -"\n" -"기본적으로 작은 내부 브릿지는 필터링되고 내부 솔리드 채우기는 희박한 채우기 " -"위에 직접 출력됩니다. 이는 대부분의 경우에 잘 작동하여 상단 표면 품질을 크게 " -"저하시키지 않고 출력 속도를 높입니다. \n" -"\n" -"그러나 특히 너무 낮은 희박 채우기 밀도가 사용되는 심하게 기울어지거나 곡선 모" -"델에서는 지지되지 않는 고체 채우기가 말려 베개 현상이 발생할 수 있습니다.\n" -"\n" -"이 옵션을 비활성화하면 약간 지원되지 않는 내부 솔리드 채우기 위에 내부 브릿" -"지 레이어가 출력됩니다. 아래 옵션은 필터링 양, 즉 생성된 내부 브릿지 양을 제" -"어합니다.\n" -"\n" -"필터 - 이 옵션을 활성화합니다. 이는 기본 동작이며 대부분의 경우 잘 작동합니" -"다.\n" -"\n" -"제한된 필터링 - 불필요한 내부 브릿지 생성을 방지하면서 심하게 기울어진 표면" -"에 내부 브릿지를 생성합니다. 이는 대부분의 어려운 모델에 적합합니다.\n" -"\n" -"필터링 없음 - 잠재적인 모든 내부 돌출부에 내부 브릿지를 생성합니다. 이 옵션" -"은 심하게 기울어진 상단 표면 모델에 유용합니다. 그러나 대부분의 경우 불필요" -"한 브릿지가 너무 많이 생성됩니다." msgid "Filter" msgstr "필터" @@ -11281,6 +11481,9 @@ msgstr "드문 내부 채우기의 선 패턴" msgid "Grid" msgstr "격자" +msgid "2D Lattice" +msgstr "" + msgid "Line" msgstr "선" @@ -11311,6 +11514,25 @@ msgstr "번개" msgid "Cross Hatch" msgstr "크로스 해치" +msgid "Quarter Cubic" +msgstr "" + +msgid "Lattice angle 1" +msgstr "" + +msgid "" +"The angle of the first set of 2D lattice elements in the Z direction. Zero " +"is vertical." +msgstr "" + +msgid "Lattice angle 2" +msgstr "" + +msgid "" +"The angle of the second set of 2D lattice elements in the Z direction. Zero " +"is vertical." +msgstr "" + msgid "Sparse infill anchor length" msgstr "드문 채우기 고정점 길이" @@ -11519,15 +11741,25 @@ msgid "Support interface fan speed" msgstr "지지대 접점 팬 속도" msgid "" -"This fan speed is enforced during all support interfaces, to be able to " -"weaken their bonding with a high fan speed.\n" -"Set to -1 to disable this override.\n" -"Can only be overridden by disable_fan_first_layers." +"This part cooling fan speed is applied when printing support interfaces. " +"Setting this parameter to a higher than regular speed reduces the layer " +"binding strength between supports and the supported part, making them easier " +"to separate.\n" +"Set to -1 to disable it.\n" +"This setting is overridden by disable_fan_first_layers." +msgstr "" + +msgid "Internal bridges fan speed" +msgstr "" + +msgid "" +"The part cooling fan speed used for all internal bridges. Set to -1 to use " +"the overhang fan speed settings instead.\n" +"\n" +"Reducing the internal bridges fan speed, compared to your regular fan speed, " +"can help reduce part warping due to excessive cooling applied over a large " +"surface for a prolonged period of time." msgstr "" -"이 설정값은 높은 팬 속도로 접점의 결합을 약화시킬 수 있도록 모든 지지대 접점" -"(Support interface)에 적용됩니다.\n" -"사용하지 않으려면 -1로 설정합니다.\n" -"disable_fan_first_layers로만 재정의할 수 있습니다." msgid "" "Randomly jitter while printing the wall, so that the surface has a rough " @@ -11567,6 +11799,59 @@ msgstr "첫 번째 레이어에 퍼지 스킨 적용" msgid "Whether to apply fuzzy skin on the first layer" msgstr "첫 번째 레이어에 퍼지 스킨을 적용할지 여부" +msgid "Fuzzy skin noise type" +msgstr "" + +msgid "" +"Noise type to use for fuzzy skin generation.\n" +"Classic: Classic uniform random noise.\n" +"Perlin: Perlin noise, which gives a more consistent texture.\n" +"Billow: Similar to perlin noise, but clumpier.\n" +"Ridged Multifractal: Ridged noise with sharp, jagged features. Creates " +"marble-like textures.\n" +"Voronoi: Divides the surface into voronoi cells, and displaces each one by a " +"random amount. Creates a patchwork texture." +msgstr "" + +msgid "Classic" +msgstr "클래식" + +msgid "Perlin" +msgstr "" + +msgid "Billow" +msgstr "" + +msgid "Ridged Multifractal" +msgstr "" + +msgid "Voronoi" +msgstr "" + +msgid "Fuzzy skin feature size" +msgstr "" + +msgid "" +"The base size of the coherent noise features, in mm. Higher values will " +"result in larger features." +msgstr "" + +msgid "Fuzzy Skin Noise Octaves" +msgstr "" + +msgid "" +"The number of octaves of coherent noise to use. Higher values increase the " +"detail of the noise, but also increase computation time." +msgstr "" + +msgid "Fuzzy skin noise persistence" +msgstr "" + +msgid "" +"The decay rate for higher octaves of the coherent noise. Lower values will " +"result in smoother noise." +msgstr "" + msgid "Filter out tiny gaps" msgstr "작은 간격 필터링" @@ -12033,6 +12318,14 @@ msgstr "다림질 선 간격" msgid "The distance between the lines of ironing" msgstr "다림질 선 간격" +msgid "Ironing inset" +msgstr "" + +msgid "" +"The distance to keep from the edges. A value of 0 sets this to half of the " +"nozzle diameter" +msgstr "" + msgid "Ironing speed" msgstr "다림질 속도" @@ -12292,15 +12585,18 @@ msgid "" "Default value of 3 works well for most cases. If your printer is stuttering, " "increase this value to reduce the number of adjustments made\n" "\n" -"Allowed values: 1-5" +"Allowed values: 0.5-5" +msgstr "" + +msgid "Apply only on external features" +msgstr "" + +msgid "" +"Applies extrusion rate smoothing only on external perimeters and overhangs. " +"This can help reduce artefacts due to sharp speed transitions on externally " +"visible overhangs without impacting the print speed of features that will " +"not be visible to the user." msgstr "" -"값이 낮을수록 압출 속도 전환이 더 유연해집니다. 하지만 G코드 파일이 상당히 커" -"지고 프린터가 처리해야 할 연산이 더 많아집니다.\n" -"\n" -"기본값인 3은 대부분의 경우에 적합합니다. 프린터가 끊기는 경우 이 값을 늘려 조" -"정 횟수를 줄이십시오.\n" -"\n" -"허용되는 값: 1-5" msgid "Minimum speed for part cooling fan" msgstr "출력물 냉각 팬의 최소 속도" @@ -12331,12 +12627,10 @@ msgid "Min print speed" msgstr "최소 출력 속도" msgid "" -"The minimum printing speed that the printer will slow down to to attempt to " -"maintain the minimum layer time above, when slow down for better layer " -"cooling is enabled." +"The minimum print speed to which the printer slows down to maintain the " +"minimum layer time defined above when the slowdown for better layer cooling " +"is enabled." msgstr "" -"더 나은 레이어 냉각을 위해 속도를 낮추는 경우 위의 최소 레이어 시간을 유지하" -"기 위해 프린터가 느려지는 최소 출력 속도입니다." msgid "Diameter of nozzle" msgstr "노즐 직경" @@ -13061,9 +13355,6 @@ msgstr "" "다. 따라서 챙이 활성화된 경우 챙과 교차할 수 있습니다. 이를 방지하려면 스커" "트 거리 값을 늘리십시오.\n" -msgid "Disabled" -msgstr "비활성" - msgid "Enabled" msgstr "활성화" @@ -13340,24 +13631,22 @@ msgid "Enable support generation." msgstr "지지대 생성을 활성화 합니다." msgid "" -"normal(auto) and tree(auto) is used to generate support automatically. If " -"normal(manual) or tree(manual) is selected, only support enforcers are " +"Normal (auto) and Tree (auto) is used to generate support automatically. If " +"Normal (manual) or Tree (manual) is selected, only support enforcers are " "generated" msgstr "" -"일반(자동) 및 나무(자동)은 지지대를 자동으로 생성합니다. 일반(수동) 또는 나무" -"(수동) 선택시에는 강제된 지지대만 생성됩니다" -msgid "normal(auto)" -msgstr "일반(자동)" +msgid "Normal (auto)" +msgstr "" -msgid "tree(auto)" -msgstr "나무(자동)" +msgid "Tree (auto)" +msgstr "" -msgid "normal(manual)" -msgstr "일반(수동)" +msgid "Normal (manual)" +msgstr "" -msgid "tree(manual)" -msgstr "나무(수동)" +msgid "Tree (manual)" +msgstr "" msgid "Support/object xy distance" msgstr "지지대/개체 XY 거리" @@ -13570,6 +13859,15 @@ msgid "" "threshold." msgstr "경사각이 임계값 미만인 돌출부에 지지대가 생성됩니다." +msgid "Threshold overlap" +msgstr "" + +msgid "" +"If threshold angle is zero, support will be generated for overhangs whose " +"overlap is below the threshold. The smaller this value is, the steeper the " +"overhang that can be printed without support." +msgstr "" + msgid "Tree support branch angle" msgstr "나무 지지대 가지 각도" @@ -14123,9 +14421,6 @@ msgstr "" "클래식 벽 생성기는 돌출 폭이 일정한 벽을 생성하며 매우 얇은 영역에는 간격 채" "움이 사용됩니다. 아라크네 엔진은 압출 폭이 가변적인 벽을 생성합니다." -msgid "Classic" -msgstr "클래식" - msgid "Arachne" msgstr "아라크네" @@ -16083,6 +16378,9 @@ msgstr "물리 프린터" msgid "Print Host upload" msgstr "출력 호스트 업로드" +msgid "Test" +msgstr "테스트" + msgid "Could not get a valid Printer Host reference" msgstr "유효한 프린터 호스트 참조를 가져올 수 없습니다" @@ -16921,6 +17219,222 @@ msgstr "" "ABS와 같이 뒤틀림이 발생하기 쉬운 소재를 출력할 때, 히트베드 온도를 적절하게 " "높이면 뒤틀림 가능성을 줄일 수 있다는 사실을 알고 계셨나요?" +#~ msgid "Current Cabin humidity" +#~ msgstr "현재 기내 습도" + +#~ msgid "Stopped." +#~ msgstr "중지됨." + +#, c-format, boost-format +#~ msgid "Connect failed [%d]!" +#~ msgstr "[%d] 연결 실패!" + +#~ msgid "Initialize failed (Device connection not ready)!" +#~ msgstr "초기화 실패 (장치 연결 준비 안 됨)!" + +#~ msgid "Initialize failed (Storage unavailable, insert SD card.)!" +#~ msgstr "" +#~ "초기화에 실패했습니다(저장소를 사용할 수 없습니다. SD 카드를 삽입하세요.)!" + +#, c-format, boost-format +#~ msgid "Initialize failed (%s)!" +#~ msgstr "(%s) 초기화 실패!" + +#~ msgid "LAN Connection Failed (Sending print file)" +#~ msgstr "LAN 연결 실패(출력 파일 전송 중)" + +#~ msgid "" +#~ "Step 1, please confirm Orca Slicer and your printer are in the same LAN." +#~ msgstr "" +#~ "1단계, Orca Slicer와 프린터가 동일한 네트워크에 연결되어 있는지 확인하세" +#~ "요." + +#~ msgid "" +#~ "Step 2, if the IP and Access Code below are different from the actual " +#~ "values on your printer, please correct them." +#~ msgstr "" +#~ "2단계, 아래의 IP 및 액세스 코드가 프린터의 실제 값과 다른 경우 수정하세요." + +#~ msgid "Step 3: Ping the IP address to check for packet loss and latency." +#~ msgstr "3단계: IP 주소를 ping하여 패킷 손실 및 대기 시간을 확인합니다." + +#~ msgid "IP and Access Code Verified! You may close the window" +#~ msgstr "IP 및 액세스 코드가 확인되었습니다. 창을 닫아도 됩니다" + +#~ msgid "Force cooling for overhang and bridge" +#~ msgstr "돌출부 및 브릿지 강제 냉각" + +#~ msgid "" +#~ "Enable this option to optimize part cooling fan speed for overhang and " +#~ "bridge to get better cooling" +#~ msgstr "" +#~ "냉각 향상을 위해 돌출부 및 브릿지에 대한 출력물 냉각 팬 속도를 최적화하려" +#~ "면 이 옵션을 활성화합니다" + +#~ msgid "Fan speed for overhang" +#~ msgstr "돌출부 팬 속도" + +#~ msgid "" +#~ "Force part cooling fan to be this speed when printing bridge or overhang " +#~ "wall which has large overhang degree. Forcing cooling for overhang and " +#~ "bridge can get better quality for these part" +#~ msgstr "" +#~ "돌출부 정도가 큰 브릿지나 돌출부 벽을 출력할 때 출력물 냉각 팬을 이 속도" +#~ "로 강제합니다. 돌출부와 브릿지를 강제 냉각하면 이러한 부품의 품질이 향상" +#~ "될 수 있습니다" + +#~ msgid "Cooling overhang threshold" +#~ msgstr "돌출부 냉각 임계값" + +#, c-format +#~ msgid "" +#~ "Force cooling fan to be specific speed when overhang degree of printed " +#~ "part exceeds this value. Expressed as percentage which indicates how much " +#~ "width of the line without support from lower layer. 0% means forcing " +#~ "cooling for all outer wall no matter how much overhang degree" +#~ msgstr "" +#~ "출력물의 돌출부 정도가 이 값을 초과하면 냉각 팬이 특정 속도가 되도록 강제" +#~ "합니다. 지지대가 없는 하단 레이어 선 너비의 백분율로 표시됩니다. 0은 돌출" +#~ "부 정도에 관계없이 모든 외벽을 강제 냉각한다는 의미입니다" + +#~ msgid "Bridge infill direction" +#~ msgstr "브릿지 채우기 방향" + +#~ msgid "Bridge density" +#~ msgstr "브릿지 밀도" + +#~ msgid "" +#~ "Density of external bridges. 100% means solid bridge. Default is 100%." +#~ msgstr "" +#~ "외부 브릿지의 밀도. 100%는 단단한 브릿지를 의미합니다. 기본값은 100%입니" +#~ "다." + +#~ msgid "" +#~ "Improve shell precision by adjusting outer wall spacing. This also " +#~ "improves layer consistency.\n" +#~ "Note: This setting will only take effect if the wall sequence is " +#~ "configured to Inner-Outer" +#~ msgstr "" +#~ "외벽 간격을 조정하여 쉘 정밀도를 향상시킵니다. 이는 또한 레이어 일관성을 " +#~ "향상시킵니다.\n" +#~ "참고: 이 설정은 벽 시퀀스가 내부-외부로 구성된 경우에만 적용됩니다" + +#~ msgid "Thick bridges" +#~ msgstr "두꺼운 브릿지" + +#~ msgid "Filter out small internal bridges (beta)" +#~ msgstr "작은 내부 브릿지 필터링(베타)" + +#~ msgid "" +#~ "This option can help reducing pillowing on top surfaces in heavily " +#~ "slanted or curved models.\n" +#~ "\n" +#~ "By default, small internal bridges are filtered out and the internal " +#~ "solid infill is printed directly over the sparse infill. This works well " +#~ "in most cases, speeding up printing without too much compromise on top " +#~ "surface quality. \n" +#~ "\n" +#~ "However, in heavily slanted or curved models especially where too low " +#~ "sparse infill density is used, this may result in curling of the " +#~ "unsupported solid infill, causing pillowing.\n" +#~ "\n" +#~ "Disabling this option will print internal bridge layer over slightly " +#~ "unsupported internal solid infill. The options below control the amount " +#~ "of filtering, i.e. the amount of internal bridges created.\n" +#~ "\n" +#~ "Filter - enable this option. This is the default behavior and works well " +#~ "in most cases.\n" +#~ "\n" +#~ "Limited filtering - creates internal bridges on heavily slanted surfaces, " +#~ "while avoiding creating unnecessary internal bridges. This works well for " +#~ "most difficult models.\n" +#~ "\n" +#~ "No filtering - creates internal bridges on every potential internal " +#~ "overhang. This option is useful for heavily slanted top surface models. " +#~ "However, in most cases it creates too many unnecessary bridges." +#~ msgstr "" +#~ "이 옵션은 심하게 기울어지거나 곡선이 있는 모델의 상단 표면이 눌리는 현상" +#~ "을 줄이는 데 도움이 될 수 있습니다.\n" +#~ "\n" +#~ "기본적으로 작은 내부 브릿지는 필터링되고 내부 솔리드 채우기는 희박한 채우" +#~ "기 위에 직접 출력됩니다. 이는 대부분의 경우에 잘 작동하여 상단 표면 품질" +#~ "을 크게 저하시키지 않고 출력 속도를 높입니다. \n" +#~ "\n" +#~ "그러나 특히 너무 낮은 희박 채우기 밀도가 사용되는 심하게 기울어지거나 곡" +#~ "선 모델에서는 지지되지 않는 고체 채우기가 말려 베개 현상이 발생할 수 있습" +#~ "니다.\n" +#~ "\n" +#~ "이 옵션을 비활성화하면 약간 지원되지 않는 내부 솔리드 채우기 위에 내부 브" +#~ "릿지 레이어가 출력됩니다. 아래 옵션은 필터링 양, 즉 생성된 내부 브릿지 양" +#~ "을 제어합니다.\n" +#~ "\n" +#~ "필터 - 이 옵션을 활성화합니다. 이는 기본 동작이며 대부분의 경우 잘 작동합" +#~ "니다.\n" +#~ "\n" +#~ "제한된 필터링 - 불필요한 내부 브릿지 생성을 방지하면서 심하게 기울어진 표" +#~ "면에 내부 브릿지를 생성합니다. 이는 대부분의 어려운 모델에 적합합니다.\n" +#~ "\n" +#~ "필터링 없음 - 잠재적인 모든 내부 돌출부에 내부 브릿지를 생성합니다. 이 옵" +#~ "션은 심하게 기울어진 상단 표면 모델에 유용합니다. 그러나 대부분의 경우 불" +#~ "필요한 브릿지가 너무 많이 생성됩니다." + +#~ msgid "" +#~ "This fan speed is enforced during all support interfaces, to be able to " +#~ "weaken their bonding with a high fan speed.\n" +#~ "Set to -1 to disable this override.\n" +#~ "Can only be overridden by disable_fan_first_layers." +#~ msgstr "" +#~ "이 설정값은 높은 팬 속도로 접점의 결합을 약화시킬 수 있도록 모든 지지대 접" +#~ "점(Support interface)에 적용됩니다.\n" +#~ "사용하지 않으려면 -1로 설정합니다.\n" +#~ "disable_fan_first_layers로만 재정의할 수 있습니다." + +#~ msgid "" +#~ "A lower value results in smoother extrusion rate transitions. However, " +#~ "this results in a significantly larger gcode file and more instructions " +#~ "for the printer to process. \n" +#~ "\n" +#~ "Default value of 3 works well for most cases. If your printer is " +#~ "stuttering, increase this value to reduce the number of adjustments made\n" +#~ "\n" +#~ "Allowed values: 1-5" +#~ msgstr "" +#~ "값이 낮을수록 압출 속도 전환이 더 유연해집니다. 하지만 G코드 파일이 상당" +#~ "히 커지고 프린터가 처리해야 할 연산이 더 많아집니다.\n" +#~ "\n" +#~ "기본값인 3은 대부분의 경우에 적합합니다. 프린터가 끊기는 경우 이 값을 늘" +#~ "려 조정 횟수를 줄이십시오.\n" +#~ "\n" +#~ "허용되는 값: 1-5" + +#~ msgid "" +#~ "The minimum printing speed that the printer will slow down to to attempt " +#~ "to maintain the minimum layer time above, when slow down for better layer " +#~ "cooling is enabled." +#~ msgstr "" +#~ "더 나은 레이어 냉각을 위해 속도를 낮추는 경우 위의 최소 레이어 시간을 유지" +#~ "하기 위해 프린터가 느려지는 최소 출력 속도입니다." + +#~ msgid "" +#~ "normal(auto) and tree(auto) is used to generate support automatically. If " +#~ "normal(manual) or tree(manual) is selected, only support enforcers are " +#~ "generated" +#~ msgstr "" +#~ "일반(자동) 및 나무(자동)은 지지대를 자동으로 생성합니다. 일반(수동) 또는 " +#~ "나무(수동) 선택시에는 강제된 지지대만 생성됩니다" + +#~ msgid "normal(auto)" +#~ msgstr "일반(자동)" + +#~ msgid "tree(auto)" +#~ msgstr "나무(자동)" + +#~ msgid "normal(manual)" +#~ msgstr "일반(수동)" + +#~ msgid "tree(manual)" +#~ msgstr "나무(수동)" + #~ msgid "ShiftLeft mouse button" #~ msgstr "Shift + 왼쪽 마우스 버튼" @@ -17716,13 +18230,6 @@ msgstr "" #~ msgid "Configuration package updated to " #~ msgstr "다음으로 업데이트된 구성 패키지 " -#~ msgid "" -#~ "Improve shell precision by adjusting outer wall spacing. This also " -#~ "improves layer consistency." -#~ msgstr "" -#~ "외벽 간격을 조정하여 쉘 정밀도를 향상시킵니다. 이는 또한 레이어 일관성을 " -#~ "향상시킵니다." - #~ msgid "" #~ "The minimum printing speed for the filament when slow down for better " #~ "layer cooling is enabled, when printing overhangs and when feature speeds " diff --git a/localization/i18n/nl/OrcaSlicer_nl.po b/localization/i18n/nl/OrcaSlicer_nl.po index ac6e5934c0..f63540ec01 100644 --- a/localization/i18n/nl/OrcaSlicer_nl.po +++ b/localization/i18n/nl/OrcaSlicer_nl.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-01-04 17:35+0100\n" +"POT-Creation-Date: 2025-02-14 23:42+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -2821,9 +2821,6 @@ msgstr "" msgid "About %s" msgstr "Over %s" -msgid "Orca Slicer" -msgstr "" - msgid "OrcaSlicer is based on BambuStudio, PrusaSlicer, and SuperSlicer." msgstr "" @@ -2876,11 +2873,6 @@ msgstr "De invoerwaarde moet groter zijn dan %1% en kleiner dan %2%" msgid "SN" msgstr "SN" -msgid "Setting AMS slot information while printing is not supported" -msgstr "" -"Het instellen van AMS slot informatie tijdens het printen wordt niet " -"ondersteund." - msgid "Factors of Flow Dynamics Calibration" msgstr "Factoren van Flow Dynamics Calibration" @@ -2893,6 +2885,11 @@ msgstr "Factor K" msgid "Factor N" msgstr "Factor N" +msgid "Setting AMS slot information while printing is not supported" +msgstr "" +"Het instellen van AMS slot informatie tijdens het printen wordt niet " +"ondersteund." + msgid "Setting Virtual slot information while printing is not supported" msgstr "Setting Virtual slot information while printing is not supported" @@ -3015,8 +3012,8 @@ msgstr "AMS uitschakelen" msgid "Print with the filament mounted on the back of chassis" msgstr "Print met filament op een externe spoel" -msgid "Current Cabin humidity" -msgstr "Current Cabin humidity" +msgid "Current AMS humidity" +msgstr "" msgid "" "Please change the desiccant when it is too wet. The indicator may not " @@ -5100,8 +5097,8 @@ msgstr "" msgid "The printer has been logged out and cannot connect." msgstr "De printer is afgemeld en kan geen verbinding maken." -msgid "Stopped." -msgstr "Gestopt." +msgid "Video Stopped." +msgstr "" msgid "LAN Connection Failed (Failed to start liveview)" msgstr "LAN-verbinding mislukt (liveview niet gestart)" @@ -5192,10 +5189,6 @@ msgstr "Reload file list from printer." msgid "No printers." msgstr "Geen printers." -#, c-format, boost-format -msgid "Connect failed [%d]!" -msgstr "Verbinding mislukt [%d]!" - msgid "Loading file list..." msgstr "Bestandslijst laden..." @@ -5205,9 +5198,6 @@ msgstr "Geen bestanden" msgid "Load failed" msgstr "Load failed" -msgid "Initialize failed (Device connection not ready)!" -msgstr "Initialization failed (Device connection not ready)!" - msgid "" "Browsing file in SD card is not supported in current firmware. Please update " "the printer firmware." @@ -5215,7 +5205,9 @@ msgstr "" "Browsing file in SD card is not supported in current firmware. Please update " "the printer firmware." -msgid "Initialize failed (Storage unavailable, insert SD card.)!" +msgid "" +"Please check if the SD card is inserted into the printer.\n" +"If it still cannot be read, you can try formatting the SD card." msgstr "" msgid "LAN Connection Failed (Failed to view sdcard)" @@ -5224,10 +5216,6 @@ msgstr "LAN Connection Failed (Failed to view sdcard)" msgid "Browsing file in SD card is not supported in LAN Only Mode." msgstr "Browsing file in SD card is not supported in LAN Only Mode." -#, c-format, boost-format -msgid "Initialize failed (%s)!" -msgstr "Initialisatie is mislukt (%s)!" - #, c-format, boost-format msgid "You are going to delete %u file from printer. Are you sure to continue?" msgid_plural "" @@ -5662,6 +5650,25 @@ msgstr "Laatste versie: " msgid "Not for now" msgstr "Not for now" +msgid "Server Exception" +msgstr "" + +msgid "" +"The server is unable to respond. Please click the link below to check the " +"server status." +msgstr "" + +msgid "" +"If the server is in a fault state, you can temporarily use offline printing " +"or local network printing." +msgstr "" + +msgid "How to use LAN only mode" +msgstr "" + +msgid "Don't show this dialog again" +msgstr "" + msgid "3D Mouse disconnected." msgstr "3D-muis losgekoppeld." @@ -6398,6 +6405,10 @@ msgstr "Open als project" msgid "Import geometry only" msgstr "Alleen geometrische data importeren" +msgid "" +"This option can be changed later in preferences, under 'Load Behaviour'." +msgstr "" + msgid "Only one G-code file can be opened at the same time." msgstr "Er kan slechts 1 G-code bestand tegelijkertijd geopend worden." @@ -6853,6 +6864,24 @@ msgstr "Koppel weblinks aan OrcaSlicer" msgid "Associate URLs to OrcaSlicer" msgstr "Koppel URL's aan OrcaSlicer" +msgid "Load All" +msgstr "" + +msgid "Ask When Relevant" +msgstr "" + +msgid "Always Ask" +msgstr "" + +msgid "Load Geometry Only" +msgstr "" + +msgid "Load Behaviour" +msgstr "" + +msgid "Should printer/filament/process settings be loaded when opening a .3mf?" +msgstr "" + msgid "Maximum recent projects" msgstr "Maximale recente projecten" @@ -7433,6 +7462,9 @@ msgstr "De naam van het apparaat wijzigen" msgid "Bind with Pin Code" msgstr "Koppelen met pincode" +msgid "Bind with Access Code" +msgstr "" + msgid "Send to Printer SD card" msgstr "Verzenden naar de MicroSD-kaart in de printer" @@ -7744,6 +7776,75 @@ msgstr "" "door met de rechtermuisknop op de lege positie van de bouwplaat te klikken " "en „Add Primitive” ->\"Timelapse Wipe Tower” te kiezen." +msgid "" +"A copy of the current system preset will be created, which will be detached " +"from the system preset." +msgstr "" + +msgid "" +"The current custom preset will be detached from the parent system preset." +msgstr "" + +msgid "Modifications to the current profile will be saved." +msgstr "" + +msgid "" +"This action is not revertible.\n" +"Do you want to proceed?" +msgstr "" + +msgid "Detach preset" +msgstr "" + +msgid "This is a default preset." +msgstr "" + +msgid "This is a system preset." +msgstr "" + +msgid "Current preset is inherited from the default preset." +msgstr "" + +msgid "Current preset is inherited from" +msgstr "" + +msgid "It can't be deleted or modified." +msgstr "" + +msgid "" +"Any modifications should be saved as a new preset inherited from this one." +msgstr "" + +msgid "To do that please specify a new name for the preset." +msgstr "" + +msgid "Additional information:" +msgstr "" + +msgid "vendor" +msgstr "" + +msgid "printer model" +msgstr "" + +msgid "default print profile" +msgstr "" + +msgid "default filament profile" +msgstr "" + +msgid "default SLA material profile" +msgstr "" + +msgid "default SLA print profile" +msgstr "" + +msgid "full profile name" +msgstr "" + +msgid "symbolic profile name" +msgstr "" + msgid "Line width" msgstr "Lijn dikte" @@ -7841,6 +7942,12 @@ msgstr "Post-processing Scripts" msgid "Notes" msgstr "Opmerkingen" +msgid "Dependencies" +msgstr "" + +msgid "Profile dependencies" +msgstr "" + msgid "Frequent" msgstr "Veelgebruikt" @@ -8943,21 +9050,22 @@ msgstr "View Liveview" msgid "Confirm and Update Nozzle" msgstr "Bevestig en update het mondstuk" -msgid "LAN Connection Failed (Sending print file)" -msgstr "LAN-verbinding mislukt (verzenden afdrukbestand)" - -msgid "" -"Step 1, please confirm Orca Slicer and your printer are in the same LAN." +msgid "Connect the printer using IP and access code" msgstr "" -"Stap 1, bevestig dat Orca Slicer en uw printer zich in hetzelfde LAN " -"bevinden." msgid "" -"Step 2, if the IP and Access Code below are different from the actual values " +"Step 1. Please confirm Orca Slicer and your printer are in the same LAN." +msgstr "" + +msgid "" +"Step 2. If the IP and Access Code below are different from the actual values " "on your printer, please correct them." msgstr "" -"Stap 2, als het IP-adres en de toegangscode hieronder afwijken van de " -"werkelijke waarden op uw printer, corrigeer ze dan." + +msgid "" +"Step 3. Please obtain the device SN from the printer side; it is usually " +"found in the device information on the printer screen." +msgstr "" msgid "IP" msgstr "IP" @@ -8965,18 +9073,38 @@ msgstr "IP" msgid "Access Code" msgstr "Toegangscode" +msgid "Printer model" +msgstr "" + +msgid "Printer name" +msgstr "" + msgid "Where to find your printer's IP and Access Code?" msgstr "Waar vind je het IP-adres en de toegangscode van je printer?" -msgid "Step 3: Ping the IP address to check for packet loss and latency." +msgid "Connect" msgstr "" -"Stap 3: Ping het IP-adres om te controleren op pakketverlies en latentie." -msgid "Test" -msgstr "Test" +msgid "Manual Setup" +msgstr "" -msgid "IP and Access Code Verified! You may close the window" -msgstr "IP en toegangscode geverifieerd! U kunt het venster sluiten" +msgid "connecting..." +msgstr "" + +msgid "Failed to connect to printer." +msgstr "" + +msgid "Failed to publish login request." +msgstr "" + +msgid "The printer has already been bound." +msgstr "" + +msgid "The printer mode is incorrect, please switch to LAN Only." +msgstr "" + +msgid "Connecting to printer... The dialog will close later" +msgstr "" msgid "Connection failed, please double check IP and Access Code" msgstr "Verbinding mislukt, controleer IP en toegangscode opnieuw" @@ -9933,47 +10061,45 @@ msgstr "Boven- en onderoppervlakken" msgid "Nowhere" msgstr "Nergens" -msgid "Force cooling for overhang and bridge" -msgstr "Forceer koeling voor overhangende delen en bruggen (bridge)" +msgid "Force cooling for overhangs and bridges" +msgstr "" msgid "" -"Enable this option to optimize part cooling fan speed for overhang and " -"bridge to get better cooling" +"Enable this option to allow adjustment of the part cooling fan speed for " +"specifically for overhangs, internal and external bridges. Setting the fan " +"speed specifically for these features can improve overall print quality and " +"reduce warping." msgstr "" -"Schakel deze optie in om de snelheid van de koelventilator van de printkop " -"te optimaliseren voor overhang en bruggen" -msgid "Fan speed for overhang" -msgstr "Ventilator snelheid voor overhangende delen" +msgid "Overhangs and external bridges fan speed" +msgstr "" msgid "" -"Force part cooling fan to be this speed when printing bridge or overhang " -"wall which has large overhang degree. Forcing cooling for overhang and " -"bridge can get better quality for these part" +"Use this part cooling fan speed when printing bridges or overhang walls with " +"an overhang threshold that exceeds the value set in the 'Overhangs cooling " +"threshold' parameter above. Increasing the cooling specifically for " +"overhangs and bridges can improve the overall print quality of these " +"features.\n" +"\n" +"Please note, this fan speed is clamped on the lower end by the minimum fan " +"speed threshold set above. It is also adjusted upwards up to the maximum fan " +"speed threshold when the minimum layer time threshold is not met." msgstr "" -"Forceer de koelventilator van de printkop om deze snelheid te hebben bij het " -"afdrukken van een brug of overhangende muur met een grote overhanggraad. Het " -"forceren van koeling voor overhang en brug kan een resulteren in een betere " -"kwaliteit voor dit onderdeel" -msgid "Cooling overhang threshold" -msgstr "Drempel voor overhang koeling" +msgid "Overhang cooling activation threshold" +msgstr "" -#, c-format +#, c-format, boost-format msgid "" -"Force cooling fan to be specific speed when overhang degree of printed part " -"exceeds this value. Expressed as percentage which indicates how much width " -"of the line without support from lower layer. 0% means forcing cooling for " -"all outer wall no matter how much overhang degree" +"When the overhang exceeds this specified threshold, force the cooling fan to " +"run at the 'Overhang Fan Speed' set below. This threshold is expressed as a " +"percentage, indicating the portion of each line's width that is unsupported " +"by the layer beneath it. Setting this value to 0% forces the cooling fan to " +"run for all outer walls, regardless of the overhang degree." msgstr "" -"Dwingt de koelventilator tot een bepaalde snelheid wanneer de overhanggraad " -"van het geprinte deel deze waarde overschrijdt. Dit wordt uitgedrukt als een " -"percentage dat aangeeft hoe breed de lijn is zonder steun van de onderste " -"laag. 0%% betekent koeling afdwingen voor de hele buitenwand, ongeacht de " -"overhanggraad." -msgid "Bridge infill direction" -msgstr "Bruginvulling richting" +msgid "External bridge infill direction" +msgstr "" msgid "" "Bridging angle override. If left to zero, the bridging angle will be " @@ -9984,13 +10110,45 @@ msgstr "" "automatisch wordt berekend. Anders wordt de opgegeven hoek gebruikt voor " "externe bruggen. Gebruik 180° voor een hoek van nul." -msgid "Bridge density" -msgstr "Brugdichtheid" - -msgid "Density of external bridges. 100% means solid bridge. Default is 100%." +msgid "Internal bridge infill direction" +msgstr "" + +msgid "" +"Internal bridging angle override. If left to zero, the bridging angle will " +"be calculated automatically. Otherwise the provided angle will be used for " +"internal bridges. Use 180°for zero angle.\n" +"\n" +"It is recommended to leave it at 0 unless there is a specific model need not " +"to." +msgstr "" + +msgid "External bridge density" +msgstr "" + +msgid "" +"Controls the density (spacing) of external bridge lines. 100% means solid " +"bridge. Default is 100%.\n" +"\n" +"Lower density external bridges can help improve reliability as there is more " +"space for air to circulate around the extruded bridge, improving its cooling " +"speed." +msgstr "" + +msgid "Internal bridge density" +msgstr "" + +msgid "" +"Controls the density (spacing) of internal bridge lines. 100% means solid " +"bridge. Default is 100%.\n" +"\n" +" Lower density internal bridges can help reduce top surface pillowing and " +"improve internal bridge reliability as there is more space for air to " +"circulate around the extruded bridge, improving its cooling speed. \n" +"\n" +"This option works particularly well when combined with the second internal " +"bridge over infill option, further improving internal bridging structure " +"before solid infill is extruded." msgstr "" -"Dichtheid van externe bruggen. 100% betekent massieve brug. Standaard is " -"100%." msgid "Bridge flow ratio" msgstr "Brugflow" @@ -10042,9 +10200,7 @@ msgstr "" msgid "" "Improve shell precision by adjusting outer wall spacing. This also improves " -"layer consistency.\n" -"Note: This setting will only take effect if the wall sequence is configured " -"to Inner-Outer" +"layer consistency." msgstr "" msgid "Only one wall on top surfaces" @@ -10276,12 +10432,24 @@ msgstr "opwaarts compatibele machine" msgid "Compatible machine condition" msgstr "Conditie van geschikte machine" +msgid "" +"A boolean expression using the configuration values of an active printer " +"profile. If this expression evaluates to true, this profile is considered " +"compatible with the active printer profile." +msgstr "" + msgid "Compatible process profiles" msgstr "Geschikte proces profielen" msgid "Compatible process profiles condition" msgstr "Conditie van -geschikte proces profielen" +msgid "" +"A boolean expression using the configuration values of an active print " +"profile. If this expression evaluates to true, this profile is considered " +"compatible with the active print profile." +msgstr "" + msgid "Print sequence, layer by layer or object by object" msgstr "" "Hiermee wordt de afdrukvolgorde bepaald, zodat u kunt kiezen tussen laag " @@ -10383,8 +10551,8 @@ msgstr "" "ondersteuning (support) erg groot kan worden. Bruggen kunnen meestal direct " "zonder ondersteuning (support) worden afgedrukt als ze niet erg lang zijn." -msgid "Thick bridges" -msgstr "Dikke bruggen" +msgid "Thick external bridges" +msgstr "" msgid "" "If enabled, bridges are more reliable, can bridge longer distances, but may " @@ -10405,36 +10573,86 @@ msgid "" "using large nozzles." msgstr "" -msgid "Filter out small internal bridges (beta)" +msgid "Extra bridge layers (beta)" msgstr "" msgid "" -"This option can help reducing pillowing on top surfaces in heavily slanted " -"or curved models.\n" +"This option enables the generation of an extra bridge layer over internal " +"and/or external bridges.\n" +"\n" +"Extra bridge layers help improve bridge appearance and reliability, as the " +"solid infill is better supported. This is especially useful in fast " +"printers, where the bridge and solid infill speeds vary greatly. The extra " +"bridge layer results in reduced pillowing on top surfaces, as well as " +"reduced separation of the external bridge layer from its surrounding " +"perimeters.\n" +"\n" +"It is generally recommended to set this to at least 'External bridge only', " +"unless specific issues with the sliced model are found.\n" +"\n" +"Options:\n" +"1. Disabled - does not generate second bridge layers. This is the default " +"and is set for compatibility purposes.\n" +"2. External bridge only - generates second bridge layers for external-facing " +"bridges only. Please note that small bridges that are shorter or narrower " +"than the set number of perimeters will be skipped as they would not benefit " +"from a second bridge layer. If generated, the second bridge layer will be " +"extruded parallel to the first bridge layer to reinforce the bridge " +"strength.\n" +"3. Internal bridge only - generates second bridge layers for internal " +"bridges over sparse infill only. Please note that the internal bridges count " +"towards the top shell layer count of your model. The second internal bridge " +"layer will be extruded as close to perpendicular to the first as possible. " +"If multiple regions in the same island, with varying bridge angles are " +"present, the last region of that island will be selected as the angle " +"reference.\n" +"4. Apply to all - generates second bridge layers for both internal and " +"external-facing bridges\n" +msgstr "" + +msgid "Disabled" +msgstr "Uit" + +msgid "External bridge only" +msgstr "" + +msgid "Internal bridge only" +msgstr "" + +msgid "Apply to all" +msgstr "" + +msgid "Filter out small internal bridges" +msgstr "" + +msgid "" +"This option can help reduce pillowing on top surfaces in heavily slanted or " +"curved models.\n" "\n" "By default, small internal bridges are filtered out and the internal solid " "infill is printed directly over the sparse infill. This works well in most " "cases, speeding up printing without too much compromise on top surface " "quality. \n" "\n" -"However, in heavily slanted or curved models especially where too low sparse " -"infill density is used, this may result in curling of the unsupported solid " -"infill, causing pillowing.\n" +"However, in heavily slanted or curved models, especially where too low a " +"sparse infill density is used, this may result in curling of the unsupported " +"solid infill, causing pillowing.\n" "\n" -"Disabling this option will print internal bridge layer over slightly " -"unsupported internal solid infill. The options below control the amount of " -"filtering, i.e. the amount of internal bridges created.\n" +"Enabling limited filtering or no filtering will print internal bridge layer " +"over slightly unsupported internal solid infill. The options below control " +"the sensitivity of the filtering, i.e. they control where internal bridges " +"are created.\n" "\n" -"Filter - enable this option. This is the default behavior and works well in " -"most cases.\n" +"1. Filter - enables this option. This is the default behavior and works well " +"in most cases.\n" "\n" -"Limited filtering - creates internal bridges on heavily slanted surfaces, " -"while avoiding creating unnecessary internal bridges. This works well for " -"most difficult models.\n" +"2. Limited filtering - creates internal bridges on heavily slanted surfaces " +"while avoiding unnecessary bridges. This works well for most difficult " +"models.\n" "\n" -"No filtering - creates internal bridges on every potential internal " -"overhang. This option is useful for heavily slanted top surface models. " -"However, in most cases it creates too many unnecessary bridges." +"3. No filtering - creates internal bridges on every potential internal " +"overhang. This option is useful for heavily slanted top surface models; " +"however, in most cases, it creates too many unnecessary bridges." msgstr "" msgid "Filter" @@ -11227,6 +11445,9 @@ msgstr "Dit is het lijnpatroon voor dunne interne vulling (infill)" msgid "Grid" msgstr "Rooster" +msgid "2D Lattice" +msgstr "" + msgid "Line" msgstr "Lijn" @@ -11257,6 +11478,25 @@ msgstr "Lightning" msgid "Cross Hatch" msgstr "Cross Hatch" +msgid "Quarter Cubic" +msgstr "" + +msgid "Lattice angle 1" +msgstr "" + +msgid "" +"The angle of the first set of 2D lattice elements in the Z direction. Zero " +"is vertical." +msgstr "" + +msgid "Lattice angle 2" +msgstr "" + +msgid "" +"The angle of the second set of 2D lattice elements in the Z direction. Zero " +"is vertical." +msgstr "" + msgid "Sparse infill anchor length" msgstr "" @@ -11445,10 +11685,24 @@ msgid "Support interface fan speed" msgstr "" msgid "" -"This fan speed is enforced during all support interfaces, to be able to " -"weaken their bonding with a high fan speed.\n" -"Set to -1 to disable this override.\n" -"Can only be overridden by disable_fan_first_layers." +"This part cooling fan speed is applied when printing support interfaces. " +"Setting this parameter to a higher than regular speed reduces the layer " +"binding strength between supports and the supported part, making them easier " +"to separate.\n" +"Set to -1 to disable it.\n" +"This setting is overridden by disable_fan_first_layers." +msgstr "" + +msgid "Internal bridges fan speed" +msgstr "" + +msgid "" +"The part cooling fan speed used for all internal bridges. Set to -1 to use " +"the overhang fan speed settings instead.\n" +"\n" +"Reducing the internal bridges fan speed, compared to your regular fan speed, " +"can help reduce part warping due to excessive cooling applied over a large " +"surface for a prolonged period of time." msgstr "" msgid "" @@ -11494,6 +11748,59 @@ msgstr "" msgid "Whether to apply fuzzy skin on the first layer" msgstr "" +msgid "Fuzzy skin noise type" +msgstr "" + +msgid "" +"Noise type to use for fuzzy skin generation.\n" +"Classic: Classic uniform random noise.\n" +"Perlin: Perlin noise, which gives a more consistent texture.\n" +"Billow: Similar to perlin noise, but clumpier.\n" +"Ridged Multifractal: Ridged noise with sharp, jagged features. Creates " +"marble-like textures.\n" +"Voronoi: Divides the surface into voronoi cells, and displaces each one by a " +"random amount. Creates a patchwork texture." +msgstr "" + +msgid "Classic" +msgstr "Klassiek" + +msgid "Perlin" +msgstr "" + +msgid "Billow" +msgstr "" + +msgid "Ridged Multifractal" +msgstr "" + +msgid "Voronoi" +msgstr "" + +msgid "Fuzzy skin feature size" +msgstr "" + +msgid "" +"The base size of the coherent noise features, in mm. Higher values will " +"result in larger features." +msgstr "" + +msgid "Fuzzy Skin Noise Octaves" +msgstr "" + +msgid "" +"The number of octaves of coherent noise to use. Higher values increase the " +"detail of the noise, but also increase computation time." +msgstr "" + +msgid "Fuzzy skin noise persistence" +msgstr "" + +msgid "" +"The decay rate for higher octaves of the coherent noise. Lower values will " +"result in smoother noise." +msgstr "" + msgid "Filter out tiny gaps" msgstr "Kleine openingen wegfilteren" @@ -11908,6 +12215,14 @@ msgid "The distance between the lines of ironing" msgstr "" "Dit is de afstand voor de lijnen die gebruikt worden voor het strijken." +msgid "Ironing inset" +msgstr "" + +msgid "" +"The distance to keep from the edges. A value of 0 sets this to half of the " +"nozzle diameter" +msgstr "" + msgid "Ironing speed" msgstr "Snelheid tijdens het strijken" @@ -12139,7 +12454,17 @@ msgid "" "Default value of 3 works well for most cases. If your printer is stuttering, " "increase this value to reduce the number of adjustments made\n" "\n" -"Allowed values: 1-5" +"Allowed values: 0.5-5" +msgstr "" + +msgid "Apply only on external features" +msgstr "" + +msgid "" +"Applies extrusion rate smoothing only on external perimeters and overhangs. " +"This can help reduce artefacts due to sharp speed transitions on externally " +"visible overhangs without impacting the print speed of features that will " +"not be visible to the user." msgstr "" msgid "Minimum speed for part cooling fan" @@ -12167,9 +12492,9 @@ msgid "Min print speed" msgstr "Minimale print snelheid" msgid "" -"The minimum printing speed that the printer will slow down to to attempt to " -"maintain the minimum layer time above, when slow down for better layer " -"cooling is enabled." +"The minimum print speed to which the printer slows down to maintain the " +"minimum layer time defined above when the slowdown for better layer cooling " +"is enabled." msgstr "" msgid "Diameter of nozzle" @@ -12852,9 +13177,6 @@ msgid "" "with them. To avoid this, increase the skirt distance value.\n" msgstr "" -msgid "Disabled" -msgstr "Uit" - msgid "Enabled" msgstr "Aan" @@ -13127,25 +13449,22 @@ msgid "Enable support generation." msgstr "Dit maakt het genereren van support mogelijk." msgid "" -"normal(auto) and tree(auto) is used to generate support automatically. If " -"normal(manual) or tree(manual) is selected, only support enforcers are " +"Normal (auto) and Tree (auto) is used to generate support automatically. If " +"Normal (manual) or Tree (manual) is selected, only support enforcers are " "generated" msgstr "" -"normal(auto) en tree(auto) worden gebruikt om automatisch steun te " -"genereren. Als normaal(handmatig) of tree(handmatig) is geselecteerd, worden " -"alleen ondersteuningen handhavers gegenereerd." -msgid "normal(auto)" -msgstr "Normaal (automatisch)" +msgid "Normal (auto)" +msgstr "" -msgid "tree(auto)" -msgstr "tree(auto)" +msgid "Tree (auto)" +msgstr "" -msgid "normal(manual)" -msgstr "normaal (handmatig)" +msgid "Normal (manual)" +msgstr "" -msgid "tree(manual)" -msgstr "tree (handmatig)" +msgid "Tree (manual)" +msgstr "" msgid "Support/object xy distance" msgstr "Support/object XY afstand" @@ -13368,6 +13687,15 @@ msgstr "" "Er zal ondersteuning support gegenereerd worden voor overhangende hoeken " "waarvan de hellingshoek lager is dan deze drempel." +msgid "Threshold overlap" +msgstr "" + +msgid "" +"If threshold angle is zero, support will be generated for overhangs whose " +"overlap is below the threshold. The smaller this value is, the steeper the " +"overhang that can be printed without support." +msgstr "" + msgid "Tree support branch angle" msgstr "Tree support vertakkingshoek" @@ -13862,9 +14190,6 @@ msgstr "" "en voor zeer dunne gebieden wordt gap-fill gebruikt. De Arachne generator " "produceert wanden met variabele extrusiebreedte." -msgid "Classic" -msgstr "Klassiek" - msgid "Arachne" msgstr "Arachne" @@ -15813,6 +16138,9 @@ msgstr "Fysieke printer" msgid "Print Host upload" msgstr "Host-upload afdrukken" +msgid "Test" +msgstr "Test" + msgid "Could not get a valid Printer Host reference" msgstr "Kon geen geldige printerhostreferentie krijgen" @@ -16677,6 +17005,121 @@ msgstr "" "kromtrekken, zoals ABS, een juiste verhoging van de temperatuur van het " "warmtebed de kans op kromtrekken kan verkleinen?" +#~ msgid "Current Cabin humidity" +#~ msgstr "Current Cabin humidity" + +#~ msgid "Stopped." +#~ msgstr "Gestopt." + +#, c-format, boost-format +#~ msgid "Connect failed [%d]!" +#~ msgstr "Verbinding mislukt [%d]!" + +#~ msgid "Initialize failed (Device connection not ready)!" +#~ msgstr "Initialization failed (Device connection not ready)!" + +#, c-format, boost-format +#~ msgid "Initialize failed (%s)!" +#~ msgstr "Initialisatie is mislukt (%s)!" + +#~ msgid "LAN Connection Failed (Sending print file)" +#~ msgstr "LAN-verbinding mislukt (verzenden afdrukbestand)" + +#~ msgid "" +#~ "Step 1, please confirm Orca Slicer and your printer are in the same LAN." +#~ msgstr "" +#~ "Stap 1, bevestig dat Orca Slicer en uw printer zich in hetzelfde LAN " +#~ "bevinden." + +#~ msgid "" +#~ "Step 2, if the IP and Access Code below are different from the actual " +#~ "values on your printer, please correct them." +#~ msgstr "" +#~ "Stap 2, als het IP-adres en de toegangscode hieronder afwijken van de " +#~ "werkelijke waarden op uw printer, corrigeer ze dan." + +#~ msgid "Step 3: Ping the IP address to check for packet loss and latency." +#~ msgstr "" +#~ "Stap 3: Ping het IP-adres om te controleren op pakketverlies en latentie." + +#~ msgid "IP and Access Code Verified! You may close the window" +#~ msgstr "IP en toegangscode geverifieerd! U kunt het venster sluiten" + +#~ msgid "Force cooling for overhang and bridge" +#~ msgstr "Forceer koeling voor overhangende delen en bruggen (bridge)" + +#~ msgid "" +#~ "Enable this option to optimize part cooling fan speed for overhang and " +#~ "bridge to get better cooling" +#~ msgstr "" +#~ "Schakel deze optie in om de snelheid van de koelventilator van de " +#~ "printkop te optimaliseren voor overhang en bruggen" + +#~ msgid "Fan speed for overhang" +#~ msgstr "Ventilator snelheid voor overhangende delen" + +#~ msgid "" +#~ "Force part cooling fan to be this speed when printing bridge or overhang " +#~ "wall which has large overhang degree. Forcing cooling for overhang and " +#~ "bridge can get better quality for these part" +#~ msgstr "" +#~ "Forceer de koelventilator van de printkop om deze snelheid te hebben bij " +#~ "het afdrukken van een brug of overhangende muur met een grote " +#~ "overhanggraad. Het forceren van koeling voor overhang en brug kan een " +#~ "resulteren in een betere kwaliteit voor dit onderdeel" + +#~ msgid "Cooling overhang threshold" +#~ msgstr "Drempel voor overhang koeling" + +#, c-format +#~ msgid "" +#~ "Force cooling fan to be specific speed when overhang degree of printed " +#~ "part exceeds this value. Expressed as percentage which indicates how much " +#~ "width of the line without support from lower layer. 0% means forcing " +#~ "cooling for all outer wall no matter how much overhang degree" +#~ msgstr "" +#~ "Dwingt de koelventilator tot een bepaalde snelheid wanneer de " +#~ "overhanggraad van het geprinte deel deze waarde overschrijdt. Dit wordt " +#~ "uitgedrukt als een percentage dat aangeeft hoe breed de lijn is zonder " +#~ "steun van de onderste laag. 0%% betekent koeling afdwingen voor de hele " +#~ "buitenwand, ongeacht de overhanggraad." + +#~ msgid "Bridge infill direction" +#~ msgstr "Bruginvulling richting" + +#~ msgid "Bridge density" +#~ msgstr "Brugdichtheid" + +#~ msgid "" +#~ "Density of external bridges. 100% means solid bridge. Default is 100%." +#~ msgstr "" +#~ "Dichtheid van externe bruggen. 100% betekent massieve brug. Standaard is " +#~ "100%." + +#~ msgid "Thick bridges" +#~ msgstr "Dikke bruggen" + +#~ msgid "" +#~ "normal(auto) and tree(auto) is used to generate support automatically. If " +#~ "normal(manual) or tree(manual) is selected, only support enforcers are " +#~ "generated" +#~ msgstr "" +#~ "normal(auto) en tree(auto) worden gebruikt om automatisch steun te " +#~ "genereren. Als normaal(handmatig) of tree(handmatig) is geselecteerd, " +#~ "worden alleen ondersteuningen handhavers gegenereerd." + +#~ msgid "normal(auto)" +#~ msgstr "Normaal (automatisch)" + +#~ msgid "tree(auto)" +#~ msgstr "tree(auto)" + +#~ msgid "normal(manual)" +#~ msgstr "normaal (handmatig)" + +#~ msgid "tree(manual)" +#~ msgstr "tree (handmatig)" + #~ msgctxt "Verb" #~ msgid "Scale" #~ msgstr "Schalen" diff --git a/localization/i18n/pl/OrcaSlicer_pl.po b/localization/i18n/pl/OrcaSlicer_pl.po index 7576fc583c..a1145a6c17 100644 --- a/localization/i18n/pl/OrcaSlicer_pl.po +++ b/localization/i18n/pl/OrcaSlicer_pl.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: OrcaSlicer 2.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-01-04 17:35+0100\n" +"POT-Creation-Date: 2025-02-14 23:42+0800\n" "PO-Revision-Date: \n" "Last-Translator: Krzysztof Morga \n" "Language-Team: \n" @@ -2846,9 +2846,6 @@ msgstr "" msgid "About %s" msgstr "O %s" -msgid "Orca Slicer" -msgstr "" - msgid "OrcaSlicer is based on BambuStudio, PrusaSlicer, and SuperSlicer." msgstr "" "OrcaSlicer opiera się na projektach BambuStudio, PrusaSlicer i SuperSlicer." @@ -2903,10 +2900,6 @@ msgstr "Wartość wejściowa powinna być większa niż %1% i mniejsza niż %2%" msgid "SN" msgstr "Numer seryjny" -msgid "Setting AMS slot information while printing is not supported" -msgstr "" -"Ustawianie informacji o gnieździe AMS podczas druku nie jest obsługiwane" - msgid "Factors of Flow Dynamics Calibration" msgstr "współczynnik kalibracji dynamiki przepływu" @@ -2919,6 +2912,10 @@ msgstr "Factor K" msgid "Factor N" msgstr "Współczynnik N" +msgid "Setting AMS slot information while printing is not supported" +msgstr "" +"Ustawianie informacji o gnieździe AMS podczas druku nie jest obsługiwane" + msgid "Setting Virtual slot information while printing is not supported" msgstr "" "Ustawianie informacji o wirtualnym slocie podczas druku nie jest obsługiwane" @@ -3042,8 +3039,8 @@ msgstr "Wyłącz AMS" msgid "Print with the filament mounted on the back of chassis" msgstr "Drukukowanie filamentem zamontowanym na tylnej części obudowy" -msgid "Current Cabin humidity" -msgstr "Aktualna wilgotność w komorze" +msgid "Current AMS humidity" +msgstr "" msgid "" "Please change the desiccant when it is too wet. The indicator may not " @@ -5160,8 +5157,8 @@ msgstr "" msgid "The printer has been logged out and cannot connect." msgstr "Drukarka została wylogowana i nie można się z nią połączyć." -msgid "Stopped." -msgstr "Zatrzymano." +msgid "Video Stopped." +msgstr "" msgid "LAN Connection Failed (Failed to start liveview)" msgstr "Błąd połączenia LAN (Nie można uruchomić podglądu na żywo)" @@ -5252,10 +5249,6 @@ msgstr "Przeładuj listę plików z drukarki." msgid "No printers." msgstr "Brak drukarek." -#, c-format, boost-format -msgid "Connect failed [%d]!" -msgstr "Błąd połączenia [%d]!" - msgid "Loading file list..." msgstr "Wczytywanie listy plików..." @@ -5265,9 +5258,6 @@ msgstr "Brak plików" msgid "Load failed" msgstr "Błąd ładowania" -msgid "Initialize failed (Device connection not ready)!" -msgstr "Inicjalizacja nie powiodła się (Brak połączenia z urządzeniem)!" - msgid "" "Browsing file in SD card is not supported in current firmware. Please update " "the printer firmware." @@ -5275,9 +5265,10 @@ msgstr "" "Przeglądanie plików na karcie SD nie jest obsługiwane w bieżącym " "oprogramowaniu. Proszę zaktualizować oprogramowanie drukarki." -msgid "Initialize failed (Storage unavailable, insert SD card.)!" +msgid "" +"Please check if the SD card is inserted into the printer.\n" +"If it still cannot be read, you can try formatting the SD card." msgstr "" -"Inicjalizacja nie powiodła się (brak dostępu do pamięci, włóż kartę SD)!" msgid "LAN Connection Failed (Failed to view sdcard)" msgstr "Połączenie LAN nieudane (Nie udało się wyświetlić zawartości karty SD)" @@ -5286,10 +5277,6 @@ msgid "Browsing file in SD card is not supported in LAN Only Mode." msgstr "" "Przeglądanie plików na karcie SD nie jest obsługiwane w trybie tylko LAN." -#, c-format, boost-format -msgid "Initialize failed (%s)!" -msgstr "Inicjalizacja nie powiodła się (%s)!" - #, c-format, boost-format msgid "You are going to delete %u file from printer. Are you sure to continue?" msgid_plural "" @@ -5731,6 +5718,25 @@ msgstr "Najnowsza wersja:" msgid "Not for now" msgstr "Nie teraz" +msgid "Server Exception" +msgstr "" + +msgid "" +"The server is unable to respond. Please click the link below to check the " +"server status." +msgstr "" + +msgid "" +"If the server is in a fault state, you can temporarily use offline printing " +"or local network printing." +msgstr "" + +msgid "How to use LAN only mode" +msgstr "" + +msgid "Don't show this dialog again" +msgstr "" + msgid "3D Mouse disconnected." msgstr "3D Mouse niepodłączona." @@ -6455,6 +6461,10 @@ msgstr "Otwórz jako projekt" msgid "Import geometry only" msgstr "Importuj tylko geometrię" +msgid "" +"This option can be changed later in preferences, under 'Load Behaviour'." +msgstr "" + msgid "Only one G-code file can be opened at the same time." msgstr "Można otworzyć tylko jeden plik G-code na raz." @@ -6909,6 +6919,24 @@ msgstr "Powiąż linki z OrcaSlicer" msgid "Associate URLs to OrcaSlicer" msgstr "Powiąż URL z OrcaSlicer" +msgid "Load All" +msgstr "" + +msgid "Ask When Relevant" +msgstr "" + +msgid "Always Ask" +msgstr "" + +msgid "Load Geometry Only" +msgstr "" + +msgid "Load Behaviour" +msgstr "" + +msgid "Should printer/filament/process settings be loaded when opening a .3mf?" +msgstr "" + msgid "Maximum recent projects" msgstr "Maksymalna liczba ostatnich projektów" @@ -7480,6 +7508,9 @@ msgstr "Modyfikacja nazwy urządzenia" msgid "Bind with Pin Code" msgstr "Powiąż za pomocą kodu PIN" +msgid "Bind with Access Code" +msgstr "" + msgid "Send to Printer SD card" msgstr "Wysłać na kartę SD drukarki" @@ -7784,6 +7815,75 @@ msgstr "" "przez kliknięcie prawym przyciskiem myszy na pustym miejscu płyty i wybranie " "\"Dodaj Prymityw\"->\"Timelaps - Wieża Czyszcząca\"." +msgid "" +"A copy of the current system preset will be created, which will be detached " +"from the system preset." +msgstr "" + +msgid "" +"The current custom preset will be detached from the parent system preset." +msgstr "" + +msgid "Modifications to the current profile will be saved." +msgstr "" + +msgid "" +"This action is not revertible.\n" +"Do you want to proceed?" +msgstr "" + +msgid "Detach preset" +msgstr "" + +msgid "This is a default preset." +msgstr "" + +msgid "This is a system preset." +msgstr "" + +msgid "Current preset is inherited from the default preset." +msgstr "" + +msgid "Current preset is inherited from" +msgstr "" + +msgid "It can't be deleted or modified." +msgstr "" + +msgid "" +"Any modifications should be saved as a new preset inherited from this one." +msgstr "" + +msgid "To do that please specify a new name for the preset." +msgstr "" + +msgid "Additional information:" +msgstr "" + +msgid "vendor" +msgstr "" + +msgid "printer model" +msgstr "" + +msgid "default print profile" +msgstr "" + +msgid "default filament profile" +msgstr "" + +msgid "default SLA material profile" +msgstr "" + +msgid "default SLA print profile" +msgstr "" + +msgid "full profile name" +msgstr "" + +msgid "symbolic profile name" +msgstr "" + msgid "Line width" msgstr "Szerokość linii" @@ -7880,6 +7980,12 @@ msgstr "Skrypty post-processingu" msgid "Notes" msgstr "Notatki" +msgid "Dependencies" +msgstr "" + +msgid "Profile dependencies" +msgstr "" + msgid "Frequent" msgstr "Cz.używ." @@ -9006,21 +9112,22 @@ msgstr "Podgląd na żywo" msgid "Confirm and Update Nozzle" msgstr "Potwierdź i zaktualizuj dyszę" -msgid "LAN Connection Failed (Sending print file)" -msgstr "Nieudane połączenie LAN (wysyłanie pliku do druku)" - -msgid "" -"Step 1, please confirm Orca Slicer and your printer are in the same LAN." +msgid "Connect the printer using IP and access code" msgstr "" -"Krok 1, proszę potwierdzić, że Orca Slicer i drukarka są w tej samej sieci " -"LAN." msgid "" -"Step 2, if the IP and Access Code below are different from the actual values " +"Step 1. Please confirm Orca Slicer and your printer are in the same LAN." +msgstr "" + +msgid "" +"Step 2. If the IP and Access Code below are different from the actual values " "on your printer, please correct them." msgstr "" -"Krok 2, jeśli IP i kod dostępu poniżej różnią się od rzeczywistych wartości " -"na drukarce, proszę je poprawić." + +msgid "" +"Step 3. Please obtain the device SN from the printer side; it is usually " +"found in the device information on the printer screen." +msgstr "" msgid "IP" msgstr "IP" @@ -9028,19 +9135,38 @@ msgstr "IP" msgid "Access Code" msgstr "Kod dostępu" +msgid "Printer model" +msgstr "" + +msgid "Printer name" +msgstr "" + msgid "Where to find your printer's IP and Access Code?" msgstr "Gdzie znaleźć IP i kod dostępu do drukarki?" -msgid "Step 3: Ping the IP address to check for packet loss and latency." +msgid "Connect" msgstr "" -"Krok 3: Sprawdź adres IP za pomocą polecenia ping, aby sprawdzić utratę " -"pakietów i opóźnienia." -msgid "Test" -msgstr "Test" +msgid "Manual Setup" +msgstr "" -msgid "IP and Access Code Verified! You may close the window" -msgstr "Zweryfikowano IP i kod dostępu! Możesz zamknąć okno" +msgid "connecting..." +msgstr "" + +msgid "Failed to connect to printer." +msgstr "" + +msgid "Failed to publish login request." +msgstr "" + +msgid "The printer has already been bound." +msgstr "" + +msgid "The printer mode is incorrect, please switch to LAN Only." +msgstr "" + +msgid "Connecting to printer... The dialog will close later" +msgstr "" msgid "Connection failed, please double check IP and Access Code" msgstr "Połączenie nieudane, proszę sprawdzić podwójnie IP i kod dostępu" @@ -10071,47 +10197,45 @@ msgstr "Górne i dolne pow." msgid "Nowhere" msgstr "Nigdzie" -msgid "Force cooling for overhang and bridge" -msgstr "Wymuszone chłodzenie dla nawisów i mostów" +msgid "Force cooling for overhangs and bridges" +msgstr "" msgid "" -"Enable this option to optimize part cooling fan speed for overhang and " -"bridge to get better cooling" +"Enable this option to allow adjustment of the part cooling fan speed for " +"specifically for overhangs, internal and external bridges. Setting the fan " +"speed specifically for these features can improve overall print quality and " +"reduce warping." msgstr "" -"Włącz tę opcję, aby zoptymalizować prędkość wentylatora chłodzącego części " -"dla nawisów i mostów, aby uzyskać lepsze chłodzenie" -msgid "Fan speed for overhang" -msgstr "Prędkość wentylatora dla nawisów" +msgid "Overhangs and external bridges fan speed" +msgstr "" msgid "" -"Force part cooling fan to be this speed when printing bridge or overhang " -"wall which has large overhang degree. Forcing cooling for overhang and " -"bridge can get better quality for these part" +"Use this part cooling fan speed when printing bridges or overhang walls with " +"an overhang threshold that exceeds the value set in the 'Overhangs cooling " +"threshold' parameter above. Increasing the cooling specifically for " +"overhangs and bridges can improve the overall print quality of these " +"features.\n" +"\n" +"Please note, this fan speed is clamped on the lower end by the minimum fan " +"speed threshold set above. It is also adjusted upwards up to the maximum fan " +"speed threshold when the minimum layer time threshold is not met." msgstr "" -"Wymuś pracę wentylatora chłodzącego części na tej prędkości podczas " -"drukowania mostu lub ściany nawisającej, która ma duży stopień nawisu. " -"Wymuszanie chłodzenia dla nawisów i mostów może poprawić jakość tych części " -"modelu" -msgid "Cooling overhang threshold" -msgstr "Próg chłodzenia dla nawisów" +msgid "Overhang cooling activation threshold" +msgstr "" -#, c-format +#, c-format, boost-format msgid "" -"Force cooling fan to be specific speed when overhang degree of printed part " -"exceeds this value. Expressed as percentage which indicates how much width " -"of the line without support from lower layer. 0% means forcing cooling for " -"all outer wall no matter how much overhang degree" +"When the overhang exceeds this specified threshold, force the cooling fan to " +"run at the 'Overhang Fan Speed' set below. This threshold is expressed as a " +"percentage, indicating the portion of each line's width that is unsupported " +"by the layer beneath it. Setting this value to 0% forces the cooling fan to " +"run for all outer walls, regardless of the overhang degree." msgstr "" -"Wymuś pracę wentylatora chłodzącego na określoną prędkość, gdy stopień " -"nawisu drukowanej części przekracza tę wartość. Wyrażone w procentach, co " -"wskazuje, jak duża jest szerokość linii bez podpór z niższej warstwy. 0%% " -"oznacza wymuszanie chłodzenia dla całej zewnętrznej ściany, bez względu na " -"stopień nawisu" -msgid "Bridge infill direction" -msgstr "Kierunek wypełnienia mostu" +msgid "External bridge infill direction" +msgstr "" msgid "" "Bridging angle override. If left to zero, the bridging angle will be " @@ -10122,13 +10246,45 @@ msgstr "" "zostanie wyliczony automatycznie. W przeciwnym wypadku, wybrany kąt będzie " "zastosowany do wszystkich mostów. Aby ustawić kąt na zero, wybierz 180°." -msgid "Bridge density" -msgstr "Gęstość mostu" - -msgid "Density of external bridges. 100% means solid bridge. Default is 100%." +msgid "Internal bridge infill direction" +msgstr "" + +msgid "" +"Internal bridging angle override. If left to zero, the bridging angle will " +"be calculated automatically. Otherwise the provided angle will be used for " +"internal bridges. Use 180°for zero angle.\n" +"\n" +"It is recommended to leave it at 0 unless there is a specific model need not " +"to." +msgstr "" + +msgid "External bridge density" +msgstr "" + +msgid "" +"Controls the density (spacing) of external bridge lines. 100% means solid " +"bridge. Default is 100%.\n" +"\n" +"Lower density external bridges can help improve reliability as there is more " +"space for air to circulate around the extruded bridge, improving its cooling " +"speed." +msgstr "" + +msgid "Internal bridge density" +msgstr "" + +msgid "" +"Controls the density (spacing) of internal bridge lines. 100% means solid " +"bridge. Default is 100%.\n" +"\n" +" Lower density internal bridges can help reduce top surface pillowing and " +"improve internal bridge reliability as there is more space for air to " +"circulate around the extruded bridge, improving its cooling speed. \n" +"\n" +"This option works particularly well when combined with the second internal " +"bridge over infill option, further improving internal bridging structure " +"before solid infill is extruded." msgstr "" -"Gęstość zewnętrznych mostów. 100% oznacza pełne wypełnienie mostu. Domyślnie " -"jest 100%." msgid "Bridge flow ratio" msgstr "Współczynnik przepływu przy mostach" @@ -10205,14 +10361,8 @@ msgstr "Ściany o wysokiej precyzji" msgid "" "Improve shell precision by adjusting outer wall spacing. This also improves " -"layer consistency.\n" -"Note: This setting will only take effect if the wall sequence is configured " -"to Inner-Outer" +"layer consistency." msgstr "" -"Popraw precyzję powłoki poprzez dostosowanie odstępów zewnętrznych ścian. To " -"również poprawia spójność warstw.\n" -"Uwaga: To ustawienie będzie miało wpływ tylko wtedy, gdy sekwencja ściany " -"jest skonfigurowana jako Wewnętrzna-Zewnętrzna." msgid "Only one wall on top surfaces" msgstr "Tylko jedna ściana na górnych powierzchniach" @@ -10520,12 +10670,24 @@ msgstr "drukarka kompatybilna i wzwyż" msgid "Compatible machine condition" msgstr "Warunek kompatybilnej maszyny" +msgid "" +"A boolean expression using the configuration values of an active printer " +"profile. If this expression evaluates to true, this profile is considered " +"compatible with the active printer profile." +msgstr "" + msgid "Compatible process profiles" msgstr "Kompatybilne profile procesów" msgid "Compatible process profiles condition" msgstr "Warunek kompatybilnych profili procesów" +msgid "" +"A boolean expression using the configuration values of an active print " +"profile. If this expression evaluates to true, this profile is considered " +"compatible with the active print profile." +msgstr "" + msgid "Print sequence, layer by layer or object by object" msgstr "Sekwencja druku, warstwa po warstwie lub obiekt po obiekcie" @@ -10627,8 +10789,8 @@ msgstr "" "bardzo duża. Most zwykle może być drukowany bezpośrednio bez podpór, jeśli " "nie jest zbyt długi" -msgid "Thick bridges" -msgstr "Grube mosty" +msgid "Thick external bridges" +msgstr "" msgid "" "If enabled, bridges are more reliable, can bridge longer distances, but may " @@ -10650,64 +10812,87 @@ msgstr "" "Jeśli włączone, będą używane grube wewnętrzne mosty. Zazwyczaj zaleca się " "użycie tej funkcji. Jednak rozważ jej wyłączenie, jeśli używasz dużych dysz." -msgid "Filter out small internal bridges (beta)" -msgstr "Filtruj małe mosty wewnętrzne (beta)" +msgid "Extra bridge layers (beta)" +msgstr "" msgid "" -"This option can help reducing pillowing on top surfaces in heavily slanted " -"or curved models.\n" +"This option enables the generation of an extra bridge layer over internal " +"and/or external bridges.\n" +"\n" +"Extra bridge layers help improve bridge appearance and reliability, as the " +"solid infill is better supported. This is especially useful in fast " +"printers, where the bridge and solid infill speeds vary greatly. The extra " +"bridge layer results in reduced pillowing on top surfaces, as well as " +"reduced separation of the external bridge layer from its surrounding " +"perimeters.\n" +"\n" +"It is generally recommended to set this to at least 'External bridge only', " +"unless specific issues with the sliced model are found.\n" +"\n" +"Options:\n" +"1. Disabled - does not generate second bridge layers. This is the default " +"and is set for compatibility purposes.\n" +"2. External bridge only - generates second bridge layers for external-facing " +"bridges only. Please note that small bridges that are shorter or narrower " +"than the set number of perimeters will be skipped as they would not benefit " +"from a second bridge layer. If generated, the second bridge layer will be " +"extruded parallel to the first bridge layer to reinforce the bridge " +"strength.\n" +"3. Internal bridge only - generates second bridge layers for internal " +"bridges over sparse infill only. Please note that the internal bridges count " +"towards the top shell layer count of your model. The second internal bridge " +"layer will be extruded as close to perpendicular to the first as possible. " +"If multiple regions in the same island, with varying bridge angles are " +"present, the last region of that island will be selected as the angle " +"reference.\n" +"4. Apply to all - generates second bridge layers for both internal and " +"external-facing bridges\n" +msgstr "" + +msgid "Disabled" +msgstr "Wyłączony" + +msgid "External bridge only" +msgstr "" + +msgid "Internal bridge only" +msgstr "" + +msgid "Apply to all" +msgstr "" + +msgid "Filter out small internal bridges" +msgstr "" + +msgid "" +"This option can help reduce pillowing on top surfaces in heavily slanted or " +"curved models.\n" "\n" "By default, small internal bridges are filtered out and the internal solid " "infill is printed directly over the sparse infill. This works well in most " "cases, speeding up printing without too much compromise on top surface " "quality. \n" "\n" -"However, in heavily slanted or curved models especially where too low sparse " -"infill density is used, this may result in curling of the unsupported solid " -"infill, causing pillowing.\n" +"However, in heavily slanted or curved models, especially where too low a " +"sparse infill density is used, this may result in curling of the unsupported " +"solid infill, causing pillowing.\n" "\n" -"Disabling this option will print internal bridge layer over slightly " -"unsupported internal solid infill. The options below control the amount of " -"filtering, i.e. the amount of internal bridges created.\n" +"Enabling limited filtering or no filtering will print internal bridge layer " +"over slightly unsupported internal solid infill. The options below control " +"the sensitivity of the filtering, i.e. they control where internal bridges " +"are created.\n" "\n" -"Filter - enable this option. This is the default behavior and works well in " -"most cases.\n" +"1. Filter - enables this option. This is the default behavior and works well " +"in most cases.\n" "\n" -"Limited filtering - creates internal bridges on heavily slanted surfaces, " -"while avoiding creating unnecessary internal bridges. This works well for " -"most difficult models.\n" +"2. Limited filtering - creates internal bridges on heavily slanted surfaces " +"while avoiding unnecessary bridges. This works well for most difficult " +"models.\n" "\n" -"No filtering - creates internal bridges on every potential internal " -"overhang. This option is useful for heavily slanted top surface models. " -"However, in most cases it creates too many unnecessary bridges." +"3. No filtering - creates internal bridges on every potential internal " +"overhang. This option is useful for heavily slanted top surface models; " +"however, in most cases, it creates too many unnecessary bridges." msgstr "" -"Ta opcja może pomóc w redukcji efektu 'pillowingu' na górnych powierzchniach " -"w mocno nachylonych lub zakrzywionych modelach.\n" -"\n" -"Domyślnie, małe wewnętrzne mosty są filtrowane, a wewnętrzne pełne " -"wypełnienie jest drukowane bezpośrednio na rzadkim wypełnieniu. To " -"rozwiązanie sprawdza się w większości przypadków, przyspieszając drukowanie " -"bez zbytniego kompromisu w jakości górnej powierzchni.\n" -"\n" -"Jednak w mocno nachylonych lub zakrzywionych modelach, szczególnie przy zbyt " -"niskiej gęstości rzadkiego wypełnienia, może to prowadzić do odkształcania " -"się niepodpartej części wypełnienia, powodując 'pillowing'.\n" -"\n" -"Wyłączenie tej opcji spowoduje wydrukowanie warstwy mostu wewnętrznego nad " -"niepodpartym wewnętrznym pełnym wypełnieniem. Opcje poniżej kontrolują " -"stopień filtrowania, czyli ilość stworzonych wewnętrznych mostów.\n" -"\n" -"Filtruj – włącz tę opcję. Jest to domyślne zachowanie, które dobrze sprawdza " -"się w większości przypadków.\n" -"\n" -"Ograniczone filtrowanie - tworzy wewnętrzne mosty na mocno pochylonych " -"powierzchniach, jednocześnie unikając tworzenia niepotrzebnych wewnętrznych " -"mostów. Działa to dobrze w przypadku większości trudnych modeli.\n" -"\n" -"Brak filtrowania – tworzy wewnętrzne mosty na każdym potencjalnym " -"wewnętrznym nawisie. Ta opcja jest przydatna dla modeli z mocno nachyloną " -"górną powierzchnią. Jednak w większości przypadków niepotrzebnie tworzy ich " -"zbyt wiele." msgid "Filter" msgstr "Filtr" @@ -11698,6 +11883,9 @@ msgstr "Wzór dla wewnętrznego wypełnienia" msgid "Grid" msgstr "Kratka" +msgid "2D Lattice" +msgstr "" + msgid "Line" msgstr "Linie" @@ -11728,6 +11916,25 @@ msgstr "Piorun" msgid "Cross Hatch" msgstr "Krzyżowy podparty" +msgid "Quarter Cubic" +msgstr "" + +msgid "Lattice angle 1" +msgstr "" + +msgid "" +"The angle of the first set of 2D lattice elements in the Z direction. Zero " +"is vertical." +msgstr "" + +msgid "Lattice angle 2" +msgstr "" + +msgid "" +"The angle of the second set of 2D lattice elements in the Z direction. Zero " +"is vertical." +msgstr "" + msgid "Sparse infill anchor length" msgstr "Długość kotwiczenia wypełnienia" @@ -11953,16 +12160,25 @@ msgid "Support interface fan speed" msgstr "Prędkość wentylatora dla warstwy łączącej podpory" msgid "" -"This fan speed is enforced during all support interfaces, to be able to " -"weaken their bonding with a high fan speed.\n" -"Set to -1 to disable this override.\n" -"Can only be overridden by disable_fan_first_layers." +"This part cooling fan speed is applied when printing support interfaces. " +"Setting this parameter to a higher than regular speed reduces the layer " +"binding strength between supports and the supported part, making them easier " +"to separate.\n" +"Set to -1 to disable it.\n" +"This setting is overridden by disable_fan_first_layers." +msgstr "" + +msgid "Internal bridges fan speed" +msgstr "" + +msgid "" +"The part cooling fan speed used for all internal bridges. Set to -1 to use " +"the overhang fan speed settings instead.\n" +"\n" +"Reducing the internal bridges fan speed, compared to your regular fan speed, " +"can help reduce part warping due to excessive cooling applied over a large " +"surface for a prolonged period of time." msgstr "" -"Ta prędkość wentylatora jest narzucana podczas drukowania wszystkich warstw " -"łączących podpory,\n" -"aby osłabić ich wiązanie przy wyższej prędkości wentylatora. Ustaw na -1, " -"aby wyłączyć to narzucenie.\n" -"Można to nadpisać tylko za pomocą opcji disable_fan_first_layers." msgid "" "Randomly jitter while printing the wall, so that the surface has a rough " @@ -12006,6 +12222,59 @@ msgstr "Zastosuj skórę Fuzzy na pierwszej warstwie" msgid "Whether to apply fuzzy skin on the first layer" msgstr "Czy chcesz zastosować skórę Fuzzy już od pierwszej warstwy" +msgid "Fuzzy skin noise type" +msgstr "" + +msgid "" +"Noise type to use for fuzzy skin generation.\n" +"Classic: Classic uniform random noise.\n" +"Perlin: Perlin noise, which gives a more consistent texture.\n" +"Billow: Similar to perlin noise, but clumpier.\n" +"Ridged Multifractal: Ridged noise with sharp, jagged features. Creates " +"marble-like textures.\n" +"Voronoi: Divides the surface into voronoi cells, and displaces each one by a " +"random amount. Creates a patchwork texture." +msgstr "" + +msgid "Classic" +msgstr "Klasyczny" + +msgid "Perlin" +msgstr "" + +msgid "Billow" +msgstr "" + +msgid "Ridged Multifractal" +msgstr "" + +msgid "Voronoi" +msgstr "" + +msgid "Fuzzy skin feature size" +msgstr "" + +msgid "" +"The base size of the coherent noise features, in mm. Higher values will " +"result in larger features." +msgstr "" + +msgid "Fuzzy Skin Noise Octaves" +msgstr "" + +msgid "" +"The number of octaves of coherent noise to use. Higher values increase the " +"detail of the noise, but also increase computation time." +msgstr "" + +msgid "Fuzzy skin noise persistence" +msgstr "" + +msgid "" +"The decay rate for higher octaves of the coherent noise. Lower values will " +"result in smoother noise." +msgstr "" + msgid "Filter out tiny gaps" msgstr "Filtruj wąskie szczeliny" @@ -12497,6 +12766,14 @@ msgstr "Odstęp między liniami" msgid "The distance between the lines of ironing" msgstr "Odstęp między liniami prasowania" +msgid "Ironing inset" +msgstr "" + +msgid "" +"The distance to keep from the edges. A value of 0 sets this to half of the " +"nozzle diameter" +msgstr "" + msgid "Ironing speed" msgstr "Szybkość prasowania" @@ -12773,16 +13050,18 @@ msgid "" "Default value of 3 works well for most cases. If your printer is stuttering, " "increase this value to reduce the number of adjustments made\n" "\n" -"Allowed values: 1-5" +"Allowed values: 0.5-5" +msgstr "" + +msgid "Apply only on external features" +msgstr "" + +msgid "" +"Applies extrusion rate smoothing only on external perimeters and overhangs. " +"This can help reduce artefacts due to sharp speed transitions on externally " +"visible overhangs without impacting the print speed of features that will " +"not be visible to the user." msgstr "" -"Mniejsza wartość skutkuje płynniejszymi przejściami prędkości ekstruzji. " -"Jednakże prowadzi to do znacznie większego pliku gcode i większej liczby " -"instrukcji do przetworzenia przez drukarkę.\n" -"\n" -"Domyślna wartość 3 działa dobrze dla większości przypadków. Jeśli Twoja " -"drukarka się zacina, zwiększ tę wartość, aby zredukować liczbę dostosowań.\n" -"\n" -"Dozwolone wartości: 1-5" msgid "Minimum speed for part cooling fan" msgstr "Minimalna prędkość wentylatora chłodzenia części" @@ -12814,13 +13093,10 @@ msgid "Min print speed" msgstr "Minimalna prędkość druku" msgid "" -"The minimum printing speed that the printer will slow down to to attempt to " -"maintain the minimum layer time above, when slow down for better layer " -"cooling is enabled." +"The minimum print speed to which the printer slows down to maintain the " +"minimum layer time defined above when the slowdown for better layer cooling " +"is enabled." msgstr "" -"Minimalna prędkość druku, do której drukarka zwolni, aby zachować minimalny " -"czas warstwy powyżej, gdy włączona jest opcja zwalniania dla lepszego " -"schładzania warstwy." msgid "Diameter of nozzle" msgstr "Średnica dyszy" @@ -13593,9 +13869,6 @@ msgstr "" "samym czasie Brim jest też aktywny, może dojść do jego przecięcia się ze " "Skirt-em. Aby temu zapobiec, zwiększ wartość odległości od Skirtu\n" -msgid "Disabled" -msgstr "Wyłączony" - msgid "Enabled" msgstr "Włączony" @@ -13895,25 +14168,22 @@ msgid "Enable support generation." msgstr "Włącz generowanie podpór." msgid "" -"normal(auto) and tree(auto) is used to generate support automatically. If " -"normal(manual) or tree(manual) is selected, only support enforcers are " +"Normal (auto) and Tree (auto) is used to generate support automatically. If " +"Normal (manual) or Tree (manual) is selected, only support enforcers are " "generated" msgstr "" -"tryb 'normalny(auto)' oraz 'drzewo(auto)' służą do automatycznego " -"generowania podpór. Jeśli wybierzesz 'normalny(manual)' lub " -"'drzewo(manual)', zostaną wygenerowane jedynie podpory wymuszone" -msgid "normal(auto)" -msgstr "normalny (auto)" +msgid "Normal (auto)" +msgstr "" -msgid "tree(auto)" -msgstr "drzewo (auto)" +msgid "Tree (auto)" +msgstr "" -msgid "normal(manual)" -msgstr "normalny (manual)" +msgid "Normal (manual)" +msgstr "" -msgid "tree(manual)" -msgstr "drzewo (manual)" +msgid "Tree (manual)" +msgstr "" msgid "Support/object xy distance" msgstr "Odległość XY miedzy podporą a obiektem" @@ -14140,6 +14410,15 @@ msgstr "" "Podpora zostanie wygenerowana dla nawisów, których kąt nachylenia jest " "poniżej tego progu." +msgid "Threshold overlap" +msgstr "" + +msgid "" +"If threshold angle is zero, support will be generated for overhangs whose " +"overlap is below the threshold. The smaller this value is, the steeper the " +"overhang that can be printed without support." +msgstr "" + msgid "Tree support branch angle" msgstr "Kąt nachylenia gałęzi" @@ -14727,9 +15006,6 @@ msgstr "" "bardzo cienkich obszarów używa wypełnienia szczelin. Silnik Arachne generuje " "ściany o zmiennej szerokości ekstruzji" -msgid "Classic" -msgstr "Klasyczny" - msgid "Arachne" msgstr "Arachne" @@ -16776,6 +17052,9 @@ msgstr "Fizyczna drukarka" msgid "Print Host upload" msgstr "Przesyłanie do hosta drukowania" +msgid "Test" +msgstr "Test" + msgid "Could not get a valid Printer Host reference" msgstr "Nie można uzyskać ważnego odniesienia do hosta drukarki" @@ -17658,6 +17937,240 @@ msgstr "" "takimi jak ABS, odpowiednie zwiększenie temperatury podgrzewanej płyty może " "zmniejszyć prawdopodobieństwo odkształceń." +#~ msgid "Current Cabin humidity" +#~ msgstr "Aktualna wilgotność w komorze" + +#~ msgid "Stopped." +#~ msgstr "Zatrzymano." + +#, c-format, boost-format +#~ msgid "Connect failed [%d]!" +#~ msgstr "Błąd połączenia [%d]!" + +#~ msgid "Initialize failed (Device connection not ready)!" +#~ msgstr "Inicjalizacja nie powiodła się (Brak połączenia z urządzeniem)!" + +#~ msgid "Initialize failed (Storage unavailable, insert SD card.)!" +#~ msgstr "" +#~ "Inicjalizacja nie powiodła się (brak dostępu do pamięci, włóż kartę SD)!" + +#, c-format, boost-format +#~ msgid "Initialize failed (%s)!" +#~ msgstr "Inicjalizacja nie powiodła się (%s)!" + +#~ msgid "LAN Connection Failed (Sending print file)" +#~ msgstr "Nieudane połączenie LAN (wysyłanie pliku do druku)" + +#~ msgid "" +#~ "Step 1, please confirm Orca Slicer and your printer are in the same LAN." +#~ msgstr "" +#~ "Krok 1, proszę potwierdzić, że Orca Slicer i drukarka są w tej samej " +#~ "sieci LAN." + +#~ msgid "" +#~ "Step 2, if the IP and Access Code below are different from the actual " +#~ "values on your printer, please correct them." +#~ msgstr "" +#~ "Krok 2, jeśli IP i kod dostępu poniżej różnią się od rzeczywistych " +#~ "wartości na drukarce, proszę je poprawić." + +#~ msgid "Step 3: Ping the IP address to check for packet loss and latency." +#~ msgstr "" +#~ "Krok 3: Sprawdź adres IP za pomocą polecenia ping, aby sprawdzić utratę " +#~ "pakietów i opóźnienia." + +#~ msgid "IP and Access Code Verified! You may close the window" +#~ msgstr "Zweryfikowano IP i kod dostępu! Możesz zamknąć okno" + +#~ msgid "Force cooling for overhang and bridge" +#~ msgstr "Wymuszone chłodzenie dla nawisów i mostów" + +#~ msgid "" +#~ "Enable this option to optimize part cooling fan speed for overhang and " +#~ "bridge to get better cooling" +#~ msgstr "" +#~ "Włącz tę opcję, aby zoptymalizować prędkość wentylatora chłodzącego " +#~ "części dla nawisów i mostów, aby uzyskać lepsze chłodzenie" + +#~ msgid "Fan speed for overhang" +#~ msgstr "Prędkość wentylatora dla nawisów" + +#~ msgid "" +#~ "Force part cooling fan to be this speed when printing bridge or overhang " +#~ "wall which has large overhang degree. Forcing cooling for overhang and " +#~ "bridge can get better quality for these part" +#~ msgstr "" +#~ "Wymuś pracę wentylatora chłodzącego części na tej prędkości podczas " +#~ "drukowania mostu lub ściany nawisającej, która ma duży stopień nawisu. " +#~ "Wymuszanie chłodzenia dla nawisów i mostów może poprawić jakość tych " +#~ "części modelu" + +#~ msgid "Cooling overhang threshold" +#~ msgstr "Próg chłodzenia dla nawisów" + +#, c-format +#~ msgid "" +#~ "Force cooling fan to be specific speed when overhang degree of printed " +#~ "part exceeds this value. Expressed as percentage which indicates how much " +#~ "width of the line without support from lower layer. 0% means forcing " +#~ "cooling for all outer wall no matter how much overhang degree" +#~ msgstr "" +#~ "Wymuś pracę wentylatora chłodzącego na określoną prędkość, gdy stopień " +#~ "nawisu drukowanej części przekracza tę wartość. Wyrażone w procentach, co " +#~ "wskazuje, jak duża jest szerokość linii bez podpór z niższej warstwy. 0%% " +#~ "oznacza wymuszanie chłodzenia dla całej zewnętrznej ściany, bez względu " +#~ "na stopień nawisu" + +#~ msgid "Bridge infill direction" +#~ msgstr "Kierunek wypełnienia mostu" + +#~ msgid "Bridge density" +#~ msgstr "Gęstość mostu" + +#~ msgid "" +#~ "Density of external bridges. 100% means solid bridge. Default is 100%." +#~ msgstr "" +#~ "Gęstość zewnętrznych mostów. 100% oznacza pełne wypełnienie mostu. " +#~ "Domyślnie jest 100%." + +#~ msgid "" +#~ "Improve shell precision by adjusting outer wall spacing. This also " +#~ "improves layer consistency.\n" +#~ "Note: This setting will only take effect if the wall sequence is " +#~ "configured to Inner-Outer" +#~ msgstr "" +#~ "Popraw precyzję powłoki poprzez dostosowanie odstępów zewnętrznych ścian. " +#~ "To również poprawia spójność warstw.\n" +#~ "Uwaga: To ustawienie będzie miało wpływ tylko wtedy, gdy sekwencja ściany " +#~ "jest skonfigurowana jako Wewnętrzna-Zewnętrzna." + +#~ msgid "Thick bridges" +#~ msgstr "Grube mosty" + +#~ msgid "Filter out small internal bridges (beta)" +#~ msgstr "Filtruj małe mosty wewnętrzne (beta)" + +#~ msgid "" +#~ "This option can help reducing pillowing on top surfaces in heavily " +#~ "slanted or curved models.\n" +#~ "\n" +#~ "By default, small internal bridges are filtered out and the internal " +#~ "solid infill is printed directly over the sparse infill. This works well " +#~ "in most cases, speeding up printing without too much compromise on top " +#~ "surface quality. \n" +#~ "\n" +#~ "However, in heavily slanted or curved models especially where too low " +#~ "sparse infill density is used, this may result in curling of the " +#~ "unsupported solid infill, causing pillowing.\n" +#~ "\n" +#~ "Disabling this option will print internal bridge layer over slightly " +#~ "unsupported internal solid infill. The options below control the amount " +#~ "of filtering, i.e. the amount of internal bridges created.\n" +#~ "\n" +#~ "Filter - enable this option. This is the default behavior and works well " +#~ "in most cases.\n" +#~ "\n" +#~ "Limited filtering - creates internal bridges on heavily slanted surfaces, " +#~ "while avoiding creating unnecessary internal bridges. This works well for " +#~ "most difficult models.\n" +#~ "\n" +#~ "No filtering - creates internal bridges on every potential internal " +#~ "overhang. This option is useful for heavily slanted top surface models. " +#~ "However, in most cases it creates too many unnecessary bridges." +#~ msgstr "" +#~ "Ta opcja może pomóc w redukcji efektu 'pillowingu' na górnych " +#~ "powierzchniach w mocno nachylonych lub zakrzywionych modelach.\n" +#~ "\n" +#~ "Domyślnie, małe wewnętrzne mosty są filtrowane, a wewnętrzne pełne " +#~ "wypełnienie jest drukowane bezpośrednio na rzadkim wypełnieniu. To " +#~ "rozwiązanie sprawdza się w większości przypadków, przyspieszając " +#~ "drukowanie bez zbytniego kompromisu w jakości górnej powierzchni.\n" +#~ "\n" +#~ "Jednak w mocno nachylonych lub zakrzywionych modelach, szczególnie przy " +#~ "zbyt niskiej gęstości rzadkiego wypełnienia, może to prowadzić do " +#~ "odkształcania się niepodpartej części wypełnienia, powodując " +#~ "'pillowing'.\n" +#~ "\n" +#~ "Wyłączenie tej opcji spowoduje wydrukowanie warstwy mostu wewnętrznego " +#~ "nad niepodpartym wewnętrznym pełnym wypełnieniem. Opcje poniżej " +#~ "kontrolują stopień filtrowania, czyli ilość stworzonych wewnętrznych " +#~ "mostów.\n" +#~ "\n" +#~ "Filtruj – włącz tę opcję. Jest to domyślne zachowanie, które dobrze " +#~ "sprawdza się w większości przypadków.\n" +#~ "\n" +#~ "Ograniczone filtrowanie - tworzy wewnętrzne mosty na mocno pochylonych " +#~ "powierzchniach, jednocześnie unikając tworzenia niepotrzebnych " +#~ "wewnętrznych mostów. Działa to dobrze w przypadku większości trudnych " +#~ "modeli.\n" +#~ "\n" +#~ "Brak filtrowania – tworzy wewnętrzne mosty na każdym potencjalnym " +#~ "wewnętrznym nawisie. Ta opcja jest przydatna dla modeli z mocno nachyloną " +#~ "górną powierzchnią. Jednak w większości przypadków niepotrzebnie tworzy " +#~ "ich zbyt wiele." + +#~ msgid "" +#~ "This fan speed is enforced during all support interfaces, to be able to " +#~ "weaken their bonding with a high fan speed.\n" +#~ "Set to -1 to disable this override.\n" +#~ "Can only be overridden by disable_fan_first_layers." +#~ msgstr "" +#~ "Ta prędkość wentylatora jest narzucana podczas drukowania wszystkich " +#~ "warstw łączących podpory,\n" +#~ "aby osłabić ich wiązanie przy wyższej prędkości wentylatora. Ustaw na -1, " +#~ "aby wyłączyć to narzucenie.\n" +#~ "Można to nadpisać tylko za pomocą opcji disable_fan_first_layers." + +#~ msgid "" +#~ "A lower value results in smoother extrusion rate transitions. However, " +#~ "this results in a significantly larger gcode file and more instructions " +#~ "for the printer to process. \n" +#~ "\n" +#~ "Default value of 3 works well for most cases. If your printer is " +#~ "stuttering, increase this value to reduce the number of adjustments made\n" +#~ "\n" +#~ "Allowed values: 1-5" +#~ msgstr "" +#~ "Mniejsza wartość skutkuje płynniejszymi przejściami prędkości ekstruzji. " +#~ "Jednakże prowadzi to do znacznie większego pliku gcode i większej liczby " +#~ "instrukcji do przetworzenia przez drukarkę.\n" +#~ "\n" +#~ "Domyślna wartość 3 działa dobrze dla większości przypadków. Jeśli Twoja " +#~ "drukarka się zacina, zwiększ tę wartość, aby zredukować liczbę " +#~ "dostosowań.\n" +#~ "\n" +#~ "Dozwolone wartości: 1-5" + +#~ msgid "" +#~ "The minimum printing speed that the printer will slow down to to attempt " +#~ "to maintain the minimum layer time above, when slow down for better layer " +#~ "cooling is enabled." +#~ msgstr "" +#~ "Minimalna prędkość druku, do której drukarka zwolni, aby zachować " +#~ "minimalny czas warstwy powyżej, gdy włączona jest opcja zwalniania dla " +#~ "lepszego schładzania warstwy." + +#~ msgid "" +#~ "normal(auto) and tree(auto) is used to generate support automatically. If " +#~ "normal(manual) or tree(manual) is selected, only support enforcers are " +#~ "generated" +#~ msgstr "" +#~ "tryb 'normalny(auto)' oraz 'drzewo(auto)' służą do automatycznego " +#~ "generowania podpór. Jeśli wybierzesz 'normalny(manual)' lub " +#~ "'drzewo(manual)', zostaną wygenerowane jedynie podpory wymuszone" + +#~ msgid "normal(auto)" +#~ msgstr "normalny (auto)" + +#~ msgid "tree(auto)" +#~ msgstr "drzewo (auto)" + +#~ msgid "normal(manual)" +#~ msgstr "normalny (manual)" + +#~ msgid "tree(manual)" +#~ msgstr "drzewo (manual)" + #~ msgid "ShiftLeft mouse button" #~ msgstr "Shift + Lewy przycisk myszy" diff --git a/localization/i18n/pt_BR/OrcaSlicer_pt_BR.po b/localization/i18n/pt_BR/OrcaSlicer_pt_BR.po index 85867bb031..1eacac3d76 100644 --- a/localization/i18n/pt_BR/OrcaSlicer_pt_BR.po +++ b/localization/i18n/pt_BR/OrcaSlicer_pt_BR.po @@ -1,10 +1,11 @@ # msgid "" msgstr "" +"Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-01-04 17:35+0100\n" -"PO-Revision-Date: 2024-06-01 21:51-0300\n" -"Last-Translator: \n" +"POT-Creation-Date: 2025-02-14 23:42+0800\n" +"PO-Revision-Date: 2025-02-16 12:19-0300\n" +"Last-Translator: Alexandre Folle de Menezes \n" "Language-Team: Portuguese, Brazilian\n" "Language: pt_BR\n" "MIME-Version: 1.0\n" @@ -16,7 +17,7 @@ msgstr "" "X-Crowdin-Language: pt-BR\n" "X-Crowdin-Project: orcaslicer-pt-br\n" "X-Crowdin-Project-ID: 664934\n" -"X-Generator: Poedit 3.4.4\n" +"X-Generator: Poedit 3.5\n" msgid "Supports Painting" msgstr "Pintura de Suportes" @@ -25,7 +26,7 @@ msgid "Alt + Mouse wheel" msgstr "Alt + Roda do Mouse" msgid "Section view" -msgstr "Vista Planar" +msgstr "Vista de seção" msgid "Reset direction" msgstr "Redefinir direção" @@ -34,7 +35,7 @@ msgid "Ctrl + Mouse wheel" msgstr "Ctrl + Roda do Mouse" msgid "Pen size" -msgstr "Tamanho" +msgstr "Tamanho da caneta" msgid "Left mouse button" msgstr "Botão esquerdo do mouse" @@ -70,7 +71,7 @@ msgid "Gap area" msgstr "Área das lacunas" msgid "Tool type" -msgstr "Tipo da Ferramenta" +msgstr "Tipo da ferramenta" msgid "Smart fill angle" msgstr "" @@ -116,18 +117,17 @@ msgstr "Apoiar face à superfície" #, boost-format msgid "" -"Filament count exceeds the maximum number that painting tool supports. only " -"the first %1% filaments will be available in painting tool." +"Filament count exceeds the maximum number that painting tool supports. only the " +"first %1% filaments will be available in painting tool." msgstr "" -"A contagem de filamentos excede o número máximo que a ferramenta de pintura " -"suporta. Apenas os primeiros %1% filamentos estarão disponíveis na " -"ferramenta de pintura." +"A contagem de filamentos excede o número máximo que a ferramenta de pintura suporta. " +"Apenas os primeiros %1% filamentos estarão disponíveis na ferramenta de pintura." msgid "Color Painting" msgstr "Pintura de cores" msgid "Pen shape" -msgstr "Formato da Caneta" +msgstr "Formato da caneta" msgid "Paint" msgstr "Pintar" @@ -139,7 +139,7 @@ msgid "Choose filament" msgstr "Escolher filamento" msgid "Edge detection" -msgstr "Detecção de Borda" +msgstr "Detecção de borda" msgid "Triangles" msgstr "Triângulos" @@ -151,7 +151,7 @@ msgid "Brush" msgstr "Pincel" msgid "Smart fill" -msgstr "Preenchimento Inteligente" +msgstr "Preenchimento inteligente" msgid "Bucket fill" msgstr "Balde de preenchimento" @@ -163,7 +163,7 @@ msgid "Alt + Shift + Enter" msgstr "Alt + Shift + Enter" msgid "Toggle Wireframe" -msgstr "Alternar Wireframe" +msgstr "Alternar malha" msgid "Shortcut Key " msgstr "Tecla " @@ -276,7 +276,7 @@ msgid "%" msgstr "%" msgid "uniform scale" -msgstr "Escala uniforme" +msgstr "escala uniforme" msgid "Planar" msgstr "Plano" @@ -534,8 +534,8 @@ msgstr "Cortar por Plano" msgid "non-manifold edges be caused by cut tool, do you want to fix it now?" msgstr "" -"as arestas abertas podem ser causadas pela ferramenta de corte, você quer " -"corrigi-las agora?" +"as arestas abertas podem ser causadas pela ferramenta de corte, você quer corrigí-" +"las agora?" msgid "Repairing model object" msgstr "Reparando objeto do modelo" @@ -557,11 +557,11 @@ msgstr "Taxa de decimação" #, boost-format msgid "" -"Processing model '%1%' with more than 1M triangles could be slow. It is " -"highly recommended to simplify the model." +"Processing model '%1%' with more than 1M triangles could be slow. It is highly " +"recommended to simplify the model." msgstr "" -"Processar modelo '%1%' com mais de 1M de triângulos pode ser lento. É " -"altamente recomendável simplificar o modelo." +"Processar modelo '%1%' com mais de 1M de triângulos pode ser lento. É altamente " +"recomendável simplificar o modelo." msgid "Simplify model" msgstr "Simplificar modelo" @@ -570,8 +570,7 @@ msgid "Simplify" msgstr "Simplificar" msgid "Simplification is currently only allowed when a single part is selected" -msgstr "" -"A simplificação só é permitida quando uma única peça é selecionada no momento" +msgstr "A simplificação só é permitida quando uma única peça é selecionada no momento" msgid "Error" msgstr "Erro" @@ -596,15 +595,14 @@ msgid "%d triangles" msgstr "%d triângulos" msgid "Show wireframe" -msgstr "Mostrar wireframe" +msgstr "Mostrar malha" #, boost-format msgid "%1%" msgstr "%1%" msgid "Can't apply when process preview." -msgstr "" -"Não é possível aplicar quando a visualização do processo está em andamento." +msgstr "Não é possível aplicar quando a visualização do processo está em andamento." msgid "Operation already cancelling. Please wait few seconds." msgstr "Operação já sendo cancelada. Por favor, aguarde alguns segundos." @@ -616,7 +614,7 @@ msgid "Perform Recognition" msgstr "Realizar Reconhecimento" msgid "Brush size" -msgstr "Tamanho" +msgstr "Tamanho do pincel" msgid "Brush shape" msgstr "Formato do pincel" @@ -732,19 +730,18 @@ msgid "Advanced" msgstr "Avançado" msgid "" -"The text cannot be written using the selected font. Please try choosing a " -"different font." +"The text cannot be written using the selected font. Please try choosing a different " +"font." msgstr "" -"O texto não pode ser escrito usando a fonte selecionada. Por favor, tente " -"escolher uma fonte diferente." +"O texto não pode ser escrito usando a fonte selecionada. Por favor, tente escolher " +"uma fonte diferente." msgid "Embossed text cannot contain only white spaces." msgstr "Texto em relevo não pode conter apenas espaços em branco." msgid "Text contains character glyph (represented by '?') unknown by font." msgstr "" -"O texto contém um glifo de caractere (representado por '?') desconhecido " -"pela fonte." +"O texto contém um glifo de caractere (representado por '?') desconhecido pela fonte." msgid "Text input doesn't show font skew." msgstr "A entrada de texto não mostra a inclinação da fonte." @@ -810,7 +807,7 @@ msgid "Name has to be unique." msgstr "O nome tem que ser único." msgid "OK" -msgstr "Certo" +msgstr "OK" msgid "Rename style" msgstr "Renomear estilo" @@ -998,12 +995,10 @@ msgid "Rotate text Clock-wise." msgstr "Girar o texto no sentido horário." msgid "Unlock the text's rotation when moving text along the object's surface." -msgstr "" -"Desbloquear a rotação do texto ao movê-lo ao longo da superfície do objeto." +msgstr "Desbloquear a rotação do texto ao movê-lo ao longo da superfície do objeto." msgid "Lock the text's rotation when moving text along the object's surface." -msgstr "" -"Bloquear a rotação do texto ao movê-lo ao longo da superfície do objeto." +msgstr "Bloquear a rotação do texto ao movê-lo ao longo da superfície do objeto." msgid "Select from True Type Collection." msgstr "Selecionar da Coleção True Type." @@ -1016,12 +1011,12 @@ msgstr "Orientar o texto em direção à câmera." #, boost-format msgid "" -"Can't load exactly same font(\"%1%\"). Application selected a similar " -"one(\"%2%\"). You have to specify font for enable edit text." +"Can't load exactly same font(\"%1%\"). Application selected a similar one(\"%2%\"). " +"You have to specify font for enable edit text." msgstr "" -"Não é possível carregar a mesma fonte exatamente (\"%1%\"). A aplicação " -"selecionou uma similar (\"%2%\"). Você deve especificar uma fonte para " -"habilitar a edição de texto." +"Não é possível carregar a mesma fonte exatamente (\"%1%\"). A aplicação selecionou " +"uma similar (\"%2%\"). Você deve especificar uma fonte para habilitar a edição de " +"texto." msgid "No symbol" msgstr "Sem símbolo" @@ -1136,12 +1131,8 @@ msgstr "Tipo de traço indefinido" msgid "Path can't be healed from self-intersection and multiple points." msgstr "O caminho não pode ser reparado de auto-interseção e pontos múltiplos." -msgid "" -"Final shape contains self-intersection or multiple points with same " -"coordinate." -msgstr "" -"A forma final contém auto-interseção ou múltiplos pontos com mesma " -"coordenada." +msgid "Final shape contains self-intersection or multiple points with same coordinate." +msgstr "A forma final contém auto-interseção ou múltiplos pontos com mesma coordenada." #, boost-format msgid "Shape is marked as invisible (%1%)." @@ -1262,8 +1253,7 @@ msgstr "O arquivo NÃO existe (%1%)." #, boost-format msgid "Filename has to end with \".svg\" but you selected %1%" -msgstr "" -"O nome do arquivo precisa terminar com \".svg\", mas você selecionou %1%" +msgstr "O nome do arquivo precisa terminar com \".svg\", mas você selecionou %1%" #, boost-format msgid "Nano SVG parser can't load from file (%1%)." @@ -1313,24 +1303,23 @@ msgid "Esc" msgstr "Esc" msgid "Cancel a feature until exit" -msgstr "" +msgstr "Cancelar um recurso até sair" msgid "Measure" msgstr "Medir" -msgid "" -"Please confirm explosion ratio = 1,and please select at least one object" +msgid "Please confirm explosion ratio = 1,and please select at least one object" msgstr "" msgid "Please select at least one object." -msgstr "" +msgstr "Por favor selecione pelo menos um objeto." msgid "Edit to scale" msgstr "Editar para escala" msgctxt "Verb" msgid "Scale all" -msgstr "" +msgstr "Escalar tudo" msgid "None" msgstr "Nenhum" @@ -1345,7 +1334,7 @@ msgid "Selection" msgstr "Seleção" msgid " (Moving)" -msgstr "" +msgstr " (Movendo)" msgid "" "Select 2 faces on objects and \n" @@ -1358,13 +1347,13 @@ msgid "" msgstr "" msgid "Face" -msgstr "" +msgstr "Face" msgid " (Fixed)" -msgstr "" +msgstr " (Fixo)" msgid "Point" -msgstr "" +msgstr "Ponto" msgid "" "Feature 1 has been reset, \n" @@ -1396,25 +1385,25 @@ msgid "Distance XYZ" msgstr "Distância XYZ" msgid "Parallel" -msgstr "" +msgstr "Paralelo" msgid "Center coincidence" -msgstr "" +msgstr "Centralizar coincidência" msgid "Featue 1" -msgstr "" +msgstr "Recurso 1" msgid "Reverse rotation" -msgstr "" +msgstr "Rotação reversa" msgid "Rotate around center:" -msgstr "" +msgstr "Girar ao redor do centro:" msgid "Parallel distance:" -msgstr "" +msgstr "Distância paralela:" msgid "Flip by Face 2" -msgstr "" +msgstr "Virar pela Face 2" msgid "Ctrl+" msgstr "Ctrl+" @@ -1430,9 +1419,7 @@ msgid "%1% was replaced with %2%" msgstr "%1% foi substituído por %2%" msgid "The configuration may be generated by a newer version of OrcaSlicer." -msgstr "" -"A configuração pode ter sido gerada por uma versão mais recente do " -"OrcaSlicer." +msgstr "A configuração pode ter sido gerada por uma versão mais recente do OrcaSlicer." msgid "Some values have been replaced. Please check them:" msgstr "Alguns valores foram substituídos. Por favor, verifique-os:" @@ -1448,32 +1435,30 @@ msgstr "Máquina" msgid "Configuration package was loaded, but some values were not recognized." msgstr "" -"O pacote de configuração foi carregado, mas alguns valores não foram " -"reconhecidos." +"O pacote de configuração foi carregado, mas alguns valores não foram reconhecidos." #, boost-format -msgid "" -"Configuration file \"%1%\" was loaded, but some values were not recognized." +msgid "Configuration file \"%1%\" was loaded, but some values were not recognized." msgstr "" -"O arquivo de configuração \"%1%\" foi carregado, mas alguns valores não " -"foram reconhecidos." +"O arquivo de configuração \"%1%\" foi carregado, mas alguns valores não foram " +"reconhecidos." msgid "" -"OrcaSlicer will terminate because of running out of memory.It may be a bug. " -"It will be appreciated if you report the issue to our team." +"OrcaSlicer will terminate because of running out of memory.It may be a bug. It will " +"be appreciated if you report the issue to our team." msgstr "" -"OrcaSlicer será encerrado devido à falta de memória. Pode ser um bug. " -"Agradecemos se você relatar o problema para nossa equipe." +"OrcaSlicer será encerrado devido à falta de memória. Pode ser um bug. Agradecemos se " +"você relatar o problema para nossa equipe." msgid "Fatal error" msgstr "Erro fatal" msgid "" -"OrcaSlicer will terminate because of a localization error. It will be " -"appreciated if you report the specific scenario this issue happened." +"OrcaSlicer will terminate because of a localization error. It will be appreciated if " +"you report the specific scenario this issue happened." msgstr "" -"OrcaSlicer será encerrado devido a um erro de localização. Agradecemos se " -"você relatar o cenário específico em que esse problema ocorreu." +"OrcaSlicer será encerrado devido a um erro de localização. Agradecemos se você " +"relatar o cenário específico em que esse problema ocorreu." msgid "Critical error" msgstr "Erro crítico" @@ -1499,12 +1484,11 @@ msgid "Connect %s failed! [SN:%s, code=%s]" msgstr "Falha na conexão %s! [SN:%s, código=%s]" msgid "" -"Orca Slicer requires the Microsoft WebView2 Runtime to operate certain " -"features.\n" +"Orca Slicer requires the Microsoft WebView2 Runtime to operate certain features.\n" "Click Yes to install it now." msgstr "" -"Orca Slicer requer o tempo de execução Microsoft WebView2 para operar " -"determinados recursos.\n" +"Orca Slicer requer o tempo de execução Microsoft WebView2 para operar determinados " +"recursos.\n" "Clique em Sim para instalá-lo agora." msgid "WebView2 Runtime" @@ -1540,14 +1524,14 @@ msgstr "Informações" msgid "" "The OrcaSlicer configuration file may be corrupted and cannot be parsed.\n" "OrcaSlicer has attempted to recreate the configuration file.\n" -"Please note, application settings will be lost, but printer profiles will " -"not be affected." +"Please note, application settings will be lost, but printer profiles will not be " +"affected." msgstr "" "O arquivo de configuração do OrcaSlicer pode estar corrompido e não pode ser " "analisado.\n" "O OrcaSlicer tentou recriar o arquivo de configuração.\n" -"Por favor, note que as configurações do aplicativo serão perdidas, mas os " -"perfis de impressora não serão afetados." +"Por favor, note que as configurações do aplicativo serão perdidas, mas os perfis de " +"impressora não serão afetados." msgid "Rebuild" msgstr "Reconstruindo" @@ -1577,39 +1561,39 @@ msgid "Some presets are modified." msgstr "Alguns presets foram modificados." msgid "" -"You can keep the modified presets to the new project, discard or save " -"changes as new presets." +"You can keep the modified presets to the new project, discard or save changes as new " +"presets." msgstr "" -"Você pode manter os modelos modificados no novo projeto, descartar ou salvar " -"as alterações como novos modelos." +"Você pode manter os modelos modificados no novo projeto, descartar ou salvar as " +"alterações como novos modelos." msgid "User logged out" msgstr "Usuário desconectado" msgid "new or open project file is not allowed during the slicing process!" msgstr "" -"criar ou abrir um arquivo de projeto novo não é permitido durante o processo " -"de fatiamento!" +"criar ou abrir um arquivo de projeto novo não é permitido durante o processo de " +"fatiamento!" msgid "Open Project" msgstr "Abrir Projeto" msgid "" -"The version of Orca Slicer is too low and needs to be updated to the latest " -"version before it can be used normally" +"The version of Orca Slicer is too low and needs to be updated to the latest version " +"before it can be used normally" msgstr "" -"A versão do Orca Slicer é muito antiga e precisa ser atualizada para a " -"versão mais recente antes de poder ser usada normalmente" +"A versão do Orca Slicer é muito antiga e precisa ser atualizada para a versão mais " +"recente antes de poder ser usada normalmente" msgid "Privacy Policy Update" msgstr "Atualização da Política de Privacidade" msgid "" -"The number of user presets cached in the cloud has exceeded the upper limit, " -"newly created user presets can only be used locally." +"The number of user presets cached in the cloud has exceeded the upper limit, newly " +"created user presets can only be used locally." msgstr "" -"O número de presets de usuário em cache na nuvem excedeu o limite superior, " -"os presets de usuário recém-criados só podem ser usados localmente." +"O número de presets de usuário em cache na nuvem excedeu o limite superior, os " +"presets de usuário recém-criados só podem ser usados localmente." msgid "Sync user presets" msgstr "Sincronizar presets do usuário" @@ -1645,8 +1629,8 @@ msgid "" "Could not start URL download. Destination folder is not set. Please choose " "destination folder in Configuration Wizard." msgstr "" -"Não foi possível baixar da URL. A pasta de destino não está definida. Por " -"favor, escolha a pasta de destino no Assistente de Configuração." +"Não foi possível baixar da URL. A pasta de destino não está definida. Por favor, " +"escolha a pasta de destino no Assistente de Configuração." msgid "Import File" msgstr "Importar Arquivo" @@ -1806,15 +1790,14 @@ msgid "Orca String Hell" msgstr "Orca String Hell" msgid "" -"This model features text embossment on the top surface. For optimal results, " -"it is advisable to set the 'One Wall Threshold(min_width_top_surface)' to 0 " -"for the 'Only One Wall on Top Surfaces' to work best.\n" +"This model features text embossment on the top surface. For optimal results, it is " +"advisable to set the 'One Wall Threshold(min_width_top_surface)' to 0 for the 'Only " +"One Wall on Top Surfaces' to work best.\n" "Yes - Change these settings automatically\n" "No - Do not change these settings for me" msgstr "" -"Este modelo possui texto em alto relevo na superfície superior. Para obter " -"os melhores resultados, é aconselhável definir o 'Limiar de perímetro " -"único'\n" +"Este modelo possui texto em alto relevo na superfície superior. Para obter os " +"melhores resultados, é aconselhável definir o 'Limiar de perímetro único'\n" " (min_width_top_surface)' como 0 para que 'Apenas uma Parede nas Superfícies " "Superiores' funcione melhor.\n" "Sim - Alterar essas configurações automaticamente\n" @@ -2002,8 +1985,7 @@ msgid "Auto orientation" msgstr "Orientação Automática" msgid "Auto orient the object to improve print quality." -msgstr "" -"Orientar automaticamente o objeto para melhorar a qualidade de impressão." +msgstr "Orientar automaticamente o objeto para melhorar a qualidade de impressão." msgid "Select All" msgstr "Selecionar Tudo" @@ -2027,7 +2009,7 @@ msgid "Reload All" msgstr "Recarregar Tudo" msgid "reload all from disk" -msgstr "Recarregar tudo do disco" +msgstr "recarregar tudo do disco" msgid "Auto Rotate" msgstr "Auto-orientação" @@ -2051,7 +2033,7 @@ msgid "Center" msgstr "Centralizar" msgid "Drop" -msgstr "" +msgstr "Descartar" msgid "Edit Process Settings" msgstr "Editar Configurações de Processo" @@ -2105,16 +2087,14 @@ msgid "Right click the icon to fix model object" msgstr "Clique com o botão direito no ícone para corrigir o objeto do modelo" msgid "Right button click the icon to drop the object settings" -msgstr "" -"Clique com o botão direito no ícone para descartar as configurações do objeto" +msgstr "Clique com o botão direito no ícone para descartar as configurações do objeto" msgid "Click the icon to reset all settings of the object" msgstr "Clique no ícone para redefinir todas as configurações do objeto" msgid "Right button click the icon to drop the object printable property" msgstr "" -"Clique com o botão direito no ícone para descartar a propriedade imprimível " -"do objeto" +"Clique com o botão direito no ícone para descartar a propriedade imprimível do objeto" msgid "Click the icon to toggle printable property of the object" msgstr "Clique no ícone para alternar a propriedade imprimível do objeto" @@ -2146,12 +2126,10 @@ msgstr "Adicionar Modificador" msgid "Switch to per-object setting mode to edit modifier settings." msgstr "Mude para o modo de configuração por objeto para editar modificadores." -msgid "" -"Switch to per-object setting mode to edit process settings of selected " -"objects." +msgid "Switch to per-object setting mode to edit process settings of selected objects." msgstr "" -"Mude para o modo de configuração por objeto para editar processos dos " -"objetos selecionados." +"Mude para o modo de configuração por objeto para editar processos dos objetos " +"selecionados." msgid "Delete connector from object which is a part of cut" msgstr "Excluir conector do objeto que é parte do corte" @@ -2163,18 +2141,17 @@ msgid "Delete negative volume from object which is a part of cut" msgstr "Excluir volume negativo do objeto que é parte do corte" msgid "" -"To save cut correspondence you can delete all connectors from all related " -"objects." +"To save cut correspondence you can delete all connectors from all related objects." msgstr "" -"Para salvar a correspondência de corte, você pode excluir todos os " -"conectores de todos os objetos relacionados." +"Para salvar a correspondência de corte, você pode excluir todos os conectores de " +"todos os objetos relacionados." msgid "" "This action will break a cut correspondence.\n" "After that model consistency can't be guaranteed .\n" "\n" -"To manipulate with solid parts or negative volumes you have to invalidate " -"cut information first." +"To manipulate with solid parts or negative volumes you have to invalidate cut " +"information first." msgstr "" "Esta ação irá quebrar a correspondência de corte.\n" "Depois disso, a consistência do modelo não pode ser garantida.\n" @@ -2230,18 +2207,15 @@ msgstr "Camada" msgid "Selection conflicts" msgstr "Conflitos de seleção" -msgid "" -"If first selected item is an object, the second one should also be object." +msgid "If first selected item is an object, the second one should also be object." msgstr "" -"Se o primeiro item selecionado for um objeto, o segundo também deve ser um " -"objeto." +"Se o primeiro item selecionado for um objeto, o segundo também deve ser um objeto." msgid "" -"If first selected item is a part, the second one should be part in the same " -"object." +"If first selected item is a part, the second one should be part in the same object." msgstr "" -"Se o primeiro item selecionado for uma peça, o segundo deve ser uma peça no " -"mesmo objeto." +"Se o primeiro item selecionado for uma peça, o segundo deve ser uma peça no mesmo " +"objeto." msgid "The type of the last solid object part is not to be changed." msgstr "O tipo da última peça do objeto sólido não deve ser alterado." @@ -2299,8 +2273,7 @@ msgid "Invalid numeric." msgstr "Número inválido." msgid "one cell can only be copied to one or multiple cells in the same column" -msgstr "" -"uma célula só pode ser copiada para uma ou várias células na mesma coluna" +msgstr "uma célula só pode ser copiada para uma ou várias células na mesma coluna" msgid "multiple cells copy is not supported" msgstr "a cópia de múltiplas células não é suportada" @@ -2459,8 +2432,7 @@ msgid "Failed to connect to cloud service" msgstr "Falha ao conectar ao serviço de nuvem" msgid "Please click on the hyperlink above to view the cloud service status" -msgstr "" -"Por favor, clique no link acima para visualizar o status do serviço de nuvem" +msgstr "Por favor, clique no link acima para visualizar o status do serviço de nuvem" msgid "Failed to connect to the printer" msgstr "Falha ao conectar à impressora" @@ -2499,7 +2471,7 @@ msgid "Unload" msgstr "Descarregar" msgid "Ext Spool" -msgstr "Carretel Ext." +msgstr "Carretel Externo" msgid "Tips" msgstr "Dicas" @@ -2553,8 +2525,8 @@ msgid "Grab new filament" msgstr "Pegar novo filamento" msgid "" -"Choose an AMS slot then press \"Load\" or \"Unload\" button to automatically " -"load or unload filaments." +"Choose an AMS slot then press \"Load\" or \"Unload\" button to automatically load or " +"unload filaments." msgstr "" "Escolha um slot AMS e pressione o botão \"Carregar\" ou \"Descarregar\" para " "carregar ou descarregar automaticamente o filamento." @@ -2588,29 +2560,24 @@ msgstr "Organizando" msgid "Arranging canceled." msgstr "Organização cancelada." -msgid "" -"Arranging is done but there are unpacked items. Reduce spacing and try again." +msgid "Arranging is done but there are unpacked items. Reduce spacing and try again." msgstr "" -"A organização foi concluída, mas há itens desembalados. Reduza o espaçamento " -"e tente novamente." +"A organização foi concluída, mas há itens desembalados. Reduza o espaçamento e tente " +"novamente." msgid "Arranging done." msgstr "Organização concluída." -msgid "" -"Arrange failed. Found some exceptions when processing object geometries." +msgid "Arrange failed. Found some exceptions when processing object geometries." msgstr "" -"Organização falhou. Encontrou algumas exceções ao processar geometrias de " -"objetos." +"Organização falhou. Encontrou algumas exceções ao processar geometrias de objetos." #, c-format, boost-format msgid "" -"Arrangement ignored the following objects which can't fit into a single " -"bed:\n" +"Arrangement ignored the following objects which can't fit into a single bed:\n" "%s" msgstr "" -"A organização ignorou os seguintes objetos que não podem caber em uma única " -"mesa:\n" +"A organização ignorou os seguintes objetos que não podem caber em uma única mesa:\n" "%s" msgid "" @@ -2671,8 +2638,7 @@ msgstr "Tarefa cancelada." msgid "Upload task timed out. Please check the network status and try again." msgstr "" -"O tempo para envio da tarefa expirou. Verifique o estado da rede e tente " -"novamente." +"O tempo para envio da tarefa expirou. Verifique o estado da rede e tente novamente." msgid "Cloud service connection failed. Please try again." msgstr "Falha na conexão com o serviço de nuvem. Por favor, tente novamente." @@ -2681,8 +2647,8 @@ msgid "Print file not found. please slice again." msgstr "Arquivo de impressão não encontrado. Por favor, fatie novamente." msgid "" -"The print file exceeds the maximum allowable size (1GB). Please simplify the " -"model and slice again." +"The print file exceeds the maximum allowable size (1GB). Please simplify the model " +"and slice again." msgstr "" "O arquivo de impressão excede o tamanho máximo permitido (1GB). Por favor, " "simplifique o modelo e fatie novamente." @@ -2693,28 +2659,25 @@ msgstr "Falha ao enviar o trabalho de impressão. Por favor, tente novamente." msgid "Failed to upload file to ftp. Please try again." msgstr "Falha ao enviar o arquivo via FTP. Por favor, tente novamente." -msgid "" -"Check the current status of the bambu server by clicking on the link above." +msgid "Check the current status of the bambu server by clicking on the link above." msgstr "Verifique o estado atual do servidor Bambu clicando no link acima." msgid "" -"The size of the print file is too large. Please adjust the file size and try " -"again." +"The size of the print file is too large. Please adjust the file size and try again." msgstr "" -"O tamanho do arquivo de impressão é muito grande. Por favor, ajuste o " -"tamanho do arquivo e tente novamente." +"O tamanho do arquivo de impressão é muito grande. Por favor, ajuste o tamanho do " +"arquivo e tente novamente." msgid "Print file not found, Please slice it again and send it for printing." msgstr "" -"Arquivo de impressão não encontrado. Por favor, fatie-o novamente e envie " -"para impressão." +"Arquivo de impressão não encontrado. Por favor, fatie-o novamente e envie para " +"impressão." msgid "" -"Failed to upload print file to FTP. Please check the network status and try " -"again." +"Failed to upload print file to FTP. Please check the network status and try again." msgstr "" -"Falha ao enviar o arquivo de impressão via FTP. Por favor, verifique o " -"estado da rede e tente novamente." +"Falha ao enviar o arquivo de impressão via FTP. Por favor, verifique o estado da " +"rede e tente novamente." msgid "Sending print job over LAN" msgstr "Enviando trabalho de impressão via LAN" @@ -2737,13 +2700,11 @@ msgstr "Enviando configuração de impressão" #, c-format, boost-format msgid "Successfully sent. Will automatically jump to the device page in %ss" msgstr "" -"Enviado com sucesso. Irá saltar automaticamente para a página do dispositivo " -"em %ss" +"Enviado com sucesso. Irá saltar automaticamente para a página do dispositivo em %ss" #, c-format, boost-format msgid "Successfully sent. Will automatically jump to the next page in %ss" -msgstr "" -"Enviado com sucesso. Irá saltar automaticamente para a próxima página em %ss" +msgstr "Enviado com sucesso. Irá saltar automaticamente para a próxima página em %ss" msgid "An SD card needs to be inserted before printing via LAN." msgstr "Um cartão SD precisa ser inserido antes de imprimir via LAN." @@ -2765,11 +2726,11 @@ msgid "Importing SLA archive" msgstr "Importando arquivo SLA" msgid "" -"The SLA archive doesn't contain any presets. Please activate some SLA " -"printer preset first before importing that SLA archive." +"The SLA archive doesn't contain any presets. Please activate some SLA printer preset " +"first before importing that SLA archive." msgstr "" -"O arquivo SLA não contém nenhum perfil. Por favor, ative alguns perfis de " -"impressora SLA antes de importar esse arquivo SLA." +"O arquivo SLA não contém nenhum perfil. Por favor, ative alguns perfis de impressora " +"SLA antes de importar esse arquivo SLA." msgid "Importing canceled." msgstr "Importação cancelada." @@ -2778,20 +2739,18 @@ msgid "Importing done." msgstr "Importação concluída." msgid "" -"The imported SLA archive did not contain any presets. The current SLA " -"presets were used as fallback." +"The imported SLA archive did not contain any presets. The current SLA presets were " +"used as fallback." msgstr "" -"O arquivo SLA importado não contém nenhum perfil. Os perfis SLA atuais foram " -"usados como alternativa." +"O arquivo SLA importado não contém nenhum perfil. Os perfis SLA atuais foram usados " +"como alternativa." msgid "You cannot load SLA project with a multi-part object on the bed" -msgstr "" -"Você não pode carregar um projeto SLA com um objeto de várias peças na mesa" +msgstr "Você não pode carregar um projeto SLA com um objeto de várias peças na mesa" msgid "Please check your object list before preset changing." msgstr "" -"Por favor, verifique sua lista de objetos antes de mudar a configuração " -"predefinida." +"Por favor, verifique sua lista de objetos antes de mudar a configuração predefinida." msgid "Attention!" msgstr "Atenção!" @@ -2836,19 +2795,16 @@ msgid "Libraries" msgstr "Bibliotecas" msgid "" -"This software uses open source components whose copyright and other " -"proprietary rights belong to their respective owners" +"This software uses open source components whose copyright and other proprietary " +"rights belong to their respective owners" msgstr "" -"Este software utiliza componentes open source cujos direitos autorais e " -"outros direitos de propriedade pertencem aos seus respectivos proprietários" +"Este software utiliza componentes open source cujos direitos autorais e outros " +"direitos de propriedade pertencem aos seus respectivos proprietários" #, c-format, boost-format msgid "About %s" msgstr "Sobre %s" -msgid "Orca Slicer" -msgstr "" - msgid "OrcaSlicer is based on BambuStudio, PrusaSlicer, and SuperSlicer." msgstr "OrcaSlicer é baseado no BambuStudio, PrusaSlicer e SuperSlicer." @@ -2856,12 +2812,10 @@ msgid "BambuStudio is originally based on PrusaSlicer by PrusaResearch." msgstr "BambuStudio é originalmente baseado no PrusaSlicer pela PrusaResearch." msgid "PrusaSlicer is originally based on Slic3r by Alessandro Ranellucci." -msgstr "" -"PrusaSlicer é originalmente baseado no Slic3r por Alessandro Ranellucci." +msgstr "PrusaSlicer é originalmente baseado no Slic3r por Alessandro Ranellucci." msgid "" -"Slic3r was created by Alessandro Ranellucci with the help of many other " -"contributors." +"Slic3r was created by Alessandro Ranellucci with the help of many other contributors." msgstr "" "Slic3r foi criado por Alessandro Ranellucci com a ajuda de muitos outros " "colaboradores." @@ -2892,7 +2846,7 @@ msgid "max" msgstr "máx" msgid "min" -msgstr "min." +msgstr "mín" #, boost-format msgid "The input value should be greater than %1% and less than %2%" @@ -2901,11 +2855,6 @@ msgstr "O valor de entrada deve ser maior que %1% e menor que %2%" msgid "SN" msgstr "SN" -msgid "Setting AMS slot information while printing is not supported" -msgstr "" -"A configuração das informações do slot AMS durante a impressão não é " -"suportada" - msgid "Factors of Flow Dynamics Calibration" msgstr "Fatores de Calibração de Dinâmica de Fluxo" @@ -2918,10 +2867,12 @@ msgstr "Fator K" msgid "Factor N" msgstr "Fator N" +msgid "Setting AMS slot information while printing is not supported" +msgstr "A configuração das informações do slot AMS durante a impressão não é suportada" + msgid "Setting Virtual slot information while printing is not supported" msgstr "" -"A configuração de informações do slot virtual durante a impressão não é " -"suportada" +"A configuração de informações do slot virtual durante a impressão não é suportada" msgid "Are you sure you want to clear the filament information?" msgstr "Tem certeza de que deseja limpar as informações do filamento?" @@ -2931,11 +2882,11 @@ msgstr "Você precisa selecionar o tipo e a cor do material primeiro." #, c-format, boost-format msgid "Please input a valid value (K in %.1f~%.1f)" -msgstr "" +msgstr "Por favor insira um valor válido (K entre %.1f~%.1f)" #, c-format, boost-format msgid "Please input a valid value (K in %.1f~%.1f, N in %.1f~%.1f)" -msgstr "" +msgstr "Por favor insira um valor válido (K entre %.1f~%.1f, N entre %.1f~%.1f)" msgid "Other Color" msgstr "Outra Cor" @@ -2947,9 +2898,9 @@ msgid "Dynamic flow calibration" msgstr "Calibração dinâmica do fluxo" msgid "" -"The nozzle temp and max volumetric speed will affect the calibration " -"results. Please fill in the same values as the actual printing. They can be " -"auto-filled by selecting a filament preset." +"The nozzle temp and max volumetric speed will affect the calibration results. Please " +"fill in the same values as the actual printing. They can be auto-filled by selecting " +"a filament preset." msgstr "" "A temperatura do bico e a fluxo volumétrico máximo afetarão os resultados da " "calibração. Preencha os mesmos valores que a impressão atual. Eles podem ser " @@ -2986,13 +2937,13 @@ msgid "Next" msgstr "Próximo" msgid "" -"Calibration completed. Please find the most uniform extrusion line on your " -"hot bed like the picture below, and fill the value on its left side into the " -"factor K input box." +"Calibration completed. Please find the most uniform extrusion line on your hot bed " +"like the picture below, and fill the value on its left side into the factor K input " +"box." msgstr "" -"Calibração concluída. Por favor, encontre a linha de extrusão mais uniforme " -"na sua mesa aquecida como na imagem abaixo, e preencha o valor do seu lado " -"esquerdo na caixa de entrada do fator K." +"Calibração concluída. Por favor, encontre a linha de extrusão mais uniforme na sua " +"mesa aquecida como na imagem abaixo, e preencha o valor do seu lado esquerdo na " +"caixa de entrada do fator K." msgid "Save" msgstr "Salvar" @@ -3023,11 +2974,10 @@ msgstr "Passo" msgid "AMS Slots" msgstr "Espaços do AMS" -msgid "" -"Note: Only the AMS slots loaded with the same material type can be selected." +msgid "Note: Only the AMS slots loaded with the same material type can be selected." msgstr "" -"Nota: Apenas os espaços do AMS carregados com o mesmo tipo de material podem " -"ser selecionadas." +"Nota: Apenas os espaços do AMS carregados com o mesmo tipo de material podem ser " +"selecionadas." msgid "Enable AMS" msgstr "Ativar AMS" @@ -3041,25 +2991,24 @@ msgstr "Desativar AMS" msgid "Print with the filament mounted on the back of chassis" msgstr "Imprimir com o filamento montado na parte de trás do chassi" -msgid "Current Cabin humidity" -msgstr "Umidade da cabine atual" +msgid "Current AMS humidity" +msgstr "" msgid "" -"Please change the desiccant when it is too wet. The indicator may not " -"represent accurately in following cases : when the lid is open or the " -"desiccant pack is changed. it take hours to absorb the moisture, low " -"temperatures also slow down the process." +"Please change the desiccant when it is too wet. The indicator may not represent " +"accurately in following cases : when the lid is open or the desiccant pack is " +"changed. it take hours to absorb the moisture, low temperatures also slow down the " +"process." msgstr "" -"Por favor, mude o dessecante quando estiver muito molhado. O indicador pode " -"não representar com precisão nos casos a seguir: quando a tampa está aberta " -"ou quando o dessecante é trocado. Leva horas para absorver a umidade, baixas " -"temperaturas também atrasam o processo." +"Por favor, mude o dessecante quando estiver muito molhado. O indicador pode não " +"representar com precisão nos casos a seguir: quando a tampa está aberta ou quando o " +"dessecante é trocado. Leva horas para absorver a umidade, baixas temperaturas também " +"atrasam o processo." -msgid "" -"Config which AMS slot should be used for a filament used in the print job" +msgid "Config which AMS slot should be used for a filament used in the print job" msgstr "" -"Configure qual espaço do AMS deve ser usado para um filamento usado no " -"trabalho de impressão" +"Configure qual espaço do AMS deve ser usado para um filamento usado no trabalho de " +"impressão" msgid "Filament used in this print job" msgstr "Filamento usado neste trabalho de impressão" @@ -3086,8 +3035,7 @@ msgid "" "When the current material run out, the printer will continue to print in the " "following order." msgstr "" -"Quando o material atual acabar, a impressora continuará a imprimir na " -"seguinte ordem." +"Quando o material atual acabar, a impressora continuará a imprimir na seguinte ordem." msgid "Group" msgstr "Grupo" @@ -3095,22 +3043,20 @@ msgstr "Grupo" msgid "The printer does not currently support auto refill." msgstr "A impressora atualmente não suporta recarga automática." -msgid "" -"AMS filament backup is not enabled, please enable it in the AMS settings." +msgid "AMS filament backup is not enabled, please enable it in the AMS settings." msgstr "" -"O backup de filamento do AMS não está ativado, por favor, ative-o nas " -"configurações do AMS." +"O backup de filamento do AMS não está ativado, por favor ative-o nas configurações " +"do AMS." msgid "" -"If there are two identical filaments in AMS, AMS filament backup will be " -"enabled. \n" -"(Currently supporting automatic supply of consumables with the same brand, " -"material type, and color)" +"If there are two identical filaments in AMS, AMS filament backup will be enabled. \n" +"(Currently supporting automatic supply of consumables with the same brand, material " +"type, and color)" msgstr "" -"Se houver dois filamentos idênticos no AMS, o backup de filamento do AMS " -"será ativado. \n" -"(Funciona atualmente com recarga automática de filamentos da mesma marca, " -"tipo de material e cor)" +"Se houver dois filamentos idênticos no AMS, o backup de filamento do AMS será " +"ativado. \n" +"(Funciona atualmente com recarga automática de filamentos da mesma marca, tipo de " +"material e cor)" msgid "DRY" msgstr "SECO" @@ -3125,58 +3071,54 @@ msgid "Insertion update" msgstr "Atualização de inserção" msgid "" -"The AMS will automatically read the filament information when inserting a " -"new Bambu Lab filament. This takes about 20 seconds." +"The AMS will automatically read the filament information when inserting a new Bambu " +"Lab filament. This takes about 20 seconds." msgstr "" "O AMS irá ler automaticamente as informações do filamento ao inserir um novo " "filamento da Bambu Lab. Isso leva cerca de 20 segundos." msgid "" -"Note: if a new filament is inserted during printing, the AMS will not " -"automatically read any information until printing is completed." +"Note: if a new filament is inserted during printing, the AMS will not automatically " +"read any information until printing is completed." msgstr "" -"Nota: se um novo filamento for inserido durante a impressão, o AMS não irá " -"ler automaticamente nenhuma informação até que a impressão seja concluída." +"Nota: se um novo filamento for inserido durante a impressão, o AMS não irá ler " +"automaticamente nenhuma informação até que a impressão seja concluída." msgid "" -"When inserting a new filament, the AMS will not automatically read its " -"information, leaving it blank for you to enter manually." +"When inserting a new filament, the AMS will not automatically read its information, " +"leaving it blank for you to enter manually." msgstr "" -"Ao inserir um novo filamento, o AMS não irá ler automaticamente suas " -"informações, deixando-o em branco para você inserir manualmente." +"Ao inserir um novo filamento, o AMS não irá ler automaticamente suas informações, " +"deixando-o em branco para você inserir manualmente." msgid "Power on update" msgstr "Atualização de inicialização" msgid "" -"The AMS will automatically read the information of inserted filament on " -"start-up. It will take about 1 minute.The reading process will roll filament " -"spools." +"The AMS will automatically read the information of inserted filament on start-up. It " +"will take about 1 minute.The reading process will roll filament spools." msgstr "" -"O AMS irá ler automaticamente as informações do filamento inserido na " -"inicialização. Levará cerca de 1 minuto. O processo de leitura irá girar as " -"bobinas de filamento." +"O AMS irá ler automaticamente as informações do filamento inserido na inicialização. " +"Levará cerca de 1 minuto. O processo de leitura irá girar as bobinas de filamento." msgid "" -"The AMS will not automatically read information from inserted filament " -"during startup and will continue to use the information recorded before the " -"last shutdown." +"The AMS will not automatically read information from inserted filament during " +"startup and will continue to use the information recorded before the last shutdown." msgstr "" -"O AMS não irá ler automaticamente informações do filamento inserido durante " -"a inicialização e continuará a usar as informações registradas antes do " -"último desligamento." +"O AMS não irá ler automaticamente informações do filamento inserido durante a " +"inicialização e continuará a usar as informações registradas antes do último " +"desligamento." msgid "Update remaining capacity" msgstr "Atualizar capacidade restante" msgid "" -"The AMS will estimate Bambu filament's remaining capacity after the filament " -"info is updated. During printing, remaining capacity will be updated " -"automatically." +"The AMS will estimate Bambu filament's remaining capacity after the filament info is " +"updated. During printing, remaining capacity will be updated automatically." msgstr "" -"O AMS irá estimar a capacidade restante do filamento Bambu após as " -"informações do filamento serem atualizadas. Durante a impressão, a " -"capacidade restante será atualizada automaticamente." +"O AMS irá estimar a capacidade restante do filamento Bambu após as informações do " +"filamento serem atualizadas. Durante a impressão, a capacidade restante será " +"atualizada automaticamente." msgid "AMS filament backup" msgstr "Backup de filamento do AMS" @@ -3192,11 +3134,11 @@ msgid "Air Printing Detection" msgstr "Detecção de Impressão Aérea" msgid "" -"Detects clogging and filament grinding, halting printing immediately to " -"conserve time and filament." +"Detects clogging and filament grinding, halting printing immediately to conserve " +"time and filament." msgstr "" -"Detecta o entupimento e erosão de filamento, parando a impressão " -"imediatamente para conservar tempo e filamento." +"Detecta o entupimento e erosão de filamento, parando a impressão imediatamente para " +"conservar tempo e filamento." msgid "File" msgstr "Arquivo" @@ -3208,15 +3150,15 @@ msgid "" "Failed to download the plug-in. Please check your firewall settings and vpn " "software, check and retry." msgstr "" -"Falha ao baixar o plug-in. Verifique as configurações do seu firewall e " -"software vpn, verifique e tente novamente." +"Falha ao baixar o plug-in. Verifique as configurações do seu firewall e software " +"vpn, verifique e tente novamente." msgid "" -"Failed to install the plug-in. Please check whether it is blocked or deleted " -"by anti-virus software." +"Failed to install the plug-in. Please check whether it is blocked or deleted by anti-" +"virus software." msgstr "" -"Falha ao instalar o plug-in. Verifique se ele está bloqueado ou excluído " -"pelo software antivírus." +"Falha ao instalar o plug-in. Verifique se ele está bloqueado ou excluído pelo " +"software antivírus." msgid "click here to see more info" msgstr "clique aqui para ver mais informações" @@ -3228,18 +3170,17 @@ msgid "" ") to locate the toolhead's position. This prevents device moving beyond the " "printable boundary and causing equipment wear." msgstr "" -") para localizar a posição da extrusora. Isso impede que o dispositivo se " -"mova além do limite imprimível e cause desgaste no equipamento." +") para localizar a posição da extrusora. Isso impede que o dispositivo se mova além " +"do limite imprimível e cause desgaste no equipamento." msgid "Go Home" msgstr "Ir para Ínicio" msgid "" -"A error occurred. Maybe memory of system is not enough or it's a bug of the " -"program" +"A error occurred. Maybe memory of system is not enough or it's a bug of the program" msgstr "" -"Ocorreu um erro. Talvez a memória do sistema não seja suficiente ou seja um " -"bug do programa" +"Ocorreu um erro. Talvez a memória do sistema não seja suficiente ou seja um bug do " +"programa" msgid "Please save project and restart the program. " msgstr "Por favor, salve o projeto e reinicie o programa. " @@ -3282,48 +3223,47 @@ msgstr "Ocorreu um erro desconhecido ao exportar G-code." #, boost-format msgid "" -"Copying of the temporary G-code to the output G-code failed. Maybe the SD " -"card is write locked?\n" +"Copying of the temporary G-code to the output G-code failed. Maybe the SD card is " +"write locked?\n" "Error message: %1%" msgstr "" -"A cópia do G-code temporário para o G-code de saída falhou. Talvez o cartão " -"SD esteja bloqueado?\n" +"A cópia do G-code temporário para o G-code de saída falhou. Talvez o cartão SD " +"esteja bloqueado?\n" "Mensagem de erro: %1%" #, boost-format msgid "" -"Copying of the temporary G-code to the output G-code failed. There might be " -"problem with target device, please try exporting again or using different " -"device. The corrupted output G-code is at %1%.tmp." +"Copying of the temporary G-code to the output G-code failed. There might be problem " +"with target device, please try exporting again or using different device. The " +"corrupted output G-code is at %1%.tmp." msgstr "" -"A cópia do G-code temporário para o G-code de saída falhou. Pode haver " -"problema com o dispositivo de destino, por favor, tente exportar novamente " -"ou usar outro dispositivo. O G-code de saída corrompido está em %1%.tmp." +"A cópia do G-code temporário para o G-code de saída falhou. Pode haver problema com " +"o dispositivo de destino, por favor tente exportar novamente ou usar outro " +"dispositivo. O G-code de saída corrompido está em %1%.tmp." #, boost-format msgid "" -"Renaming of the G-code after copying to the selected destination folder has " -"failed. Current path is %1%.tmp. Please try exporting again." +"Renaming of the G-code after copying to the selected destination folder has failed. " +"Current path is %1%.tmp. Please try exporting again." msgstr "" -"Renomear o G-code após copiar para a pasta destino selecionada falhou. O " -"caminho atual é %1%.tmp. Por favor, tente exportar novamente." +"Renomear o G-code após copiar para a pasta destino selecionada falhou. O caminho " +"atual é %1%.tmp. Por favor, tente exportar novamente." #, boost-format msgid "" -"Copying of the temporary G-code has finished but the original code at %1% " -"couldn't be opened during copy check. The output G-code is at %2%.tmp." +"Copying of the temporary G-code has finished but the original code at %1% couldn't " +"be opened during copy check. The output G-code is at %2%.tmp." msgstr "" -"A cópia do G-code temporário foi concluída, mas o código original em %1% não " -"pôde ser aberto durante a verificação da cópia. O G-gode de saída está em " -"%2%.tmp." +"A cópia do G-code temporário foi concluída, mas o código original em %1% não pôde " +"ser aberto durante a verificação da cópia. O G-gode de saída está em %2%.tmp." #, boost-format msgid "" -"Copying of the temporary G-code has finished but the exported code couldn't " -"be opened during copy check. The output G-code is at %1%.tmp." +"Copying of the temporary G-code has finished but the exported code couldn't be " +"opened during copy check. The output G-code is at %1%.tmp." msgstr "" -"A cópia do G-code temporário foi concluída, mas o código exportado não pôde " -"ser aberto durante a verificação da cópia. O G-code de saída está em %1%.tmp." +"A cópia do G-code temporário foi concluída, mas o código exportado não pôde ser " +"aberto durante a verificação da cópia. O G-code de saída está em %1%.tmp." #, boost-format msgid "G-code file exported to %1%" @@ -3348,8 +3288,7 @@ msgstr "Cópia do G-Code temporário para o G-Code de saída falhou" #, boost-format msgid "Scheduling upload to `%1%`. See Window -> Print Host Upload Queue" msgstr "" -"Agendando o envio para `%1%`. Veja Janela -> Fila de Envio do Anfitrião de " -"Impressão" +"Agendando o envio para `%1%`. Veja Janela -> Fila de Envio do Anfitrião de Impressão" msgid "Device" msgstr "Dispositivo" @@ -3364,11 +3303,11 @@ msgid "Edit multiple printers" msgstr "Editar múltiplas impressoras" msgid "Select connected printers (0/6)" -msgstr "" +msgstr "Selecione impressoras conectadas (0/6)" #, c-format, boost-format msgid "Select Connected Printers (%d/6)" -msgstr "" +msgstr "Selecione Impressoras Conectadas (%d/6)" #, c-format, boost-format msgid "The maximum number of printers that can be selected is %d" @@ -3401,11 +3340,10 @@ msgstr "Status do dispositivo" msgid "Actions" msgstr "Ações" -msgid "" -"Please select the devices you would like to manage here (up to 6 devices)" +msgid "Please select the devices you would like to manage here (up to 6 devices)" msgstr "" -"Por favor, selecione os dispositivos que você gostaria de gerenciar aqui " -"(até 6 dispositivos)" +"Por favor, selecione os dispositivos que você gostaria de gerenciar aqui (até 6 " +"dispositivos)" msgid "Add" msgstr "Adicionar" @@ -3432,7 +3370,7 @@ msgid "Printing Failed" msgstr "Falha na Impressão" msgid "Printing Pause" -msgstr "" +msgstr "Pausa de Impressão" msgid "Prepare" msgstr "Preparar" @@ -3531,23 +3469,21 @@ msgid "Send Options" msgstr "Opções de envio" msgid "Send to" -msgstr "" +msgstr "Enviar para" msgid "" -"printers at the same time.(It depends on how many devices can undergo " -"heating at the same time.)" +"printers at the same time.(It depends on how many devices can undergo heating at the " +"same time.)" msgstr "" -"impressoras ao mesmo tempo. (Depende de quantos dispositivos podem ser " -"submetidos ao mesmo tempo.)" +"impressoras ao mesmo tempo. (Depende de quantos dispositivos podem ser submetidos ao " +"mesmo tempo.)" msgid "Wait" msgstr "Aguarde" -msgid "" -"minute each batch.(It depends on how long it takes to complete the heating.)" +msgid "minute each batch.(It depends on how long it takes to complete the heating.)" msgstr "" -"minuto por cada lote.(Depende de quanto tempo leva para completar o " -"aquecimento.)" +"minuto por cada lote.(Depende de quanto tempo leva para completar o aquecimento.)" msgid "Send" msgstr "Enviar" @@ -3580,17 +3516,14 @@ msgid "Size in X and Y of the rectangular plate." msgstr "Tamanho em X e Y da mesa retangular." msgid "" -"Distance of the 0,0 G-code coordinate from the front left corner of the " -"rectangle." -msgstr "" -"Distância da coordenada do G-Code 0,0 do canto frontal esquerdo do retângulo." +"Distance of the 0,0 G-code coordinate from the front left corner of the rectangle." +msgstr "Distância da coordenada do G-Code 0,0 do canto frontal esquerdo do retângulo." msgid "" -"Diameter of the print bed. It is assumed that origin (0,0) is located in the " -"center." +"Diameter of the print bed. It is assumed that origin (0,0) is located in the center." msgstr "" -"Diâmetro da mesa de impressão. É assumido que a origem (0,0) está localizada " -"no centro." +"Diâmetro da mesa de impressão. É assumido que a origem (0,0) está localizada no " +"centro." msgid "Rectangular" msgstr "Retangular" @@ -3628,10 +3561,8 @@ msgstr "Erro! Modelo inválido" msgid "The selected file contains no geometry." msgstr "O arquivo selecionado não contém geometria." -msgid "" -"The selected file contains several disjoint areas. This is not supported." -msgstr "" -"O arquivo selecionado contém várias áreas disjuntas. Isso não é suportado." +msgid "The selected file contains several disjoint areas. This is not supported." +msgstr "O arquivo selecionado contém várias áreas disjuntas. Isso não é suportado." msgid "Choose a file to import bed texture from (PNG/SVG):" msgstr "Escolha um arquivo para importar a textura da mesa (PNG/SVG):" @@ -3643,15 +3574,15 @@ msgid "Bed Shape" msgstr "Forma da Mesa" msgid "" -"The recommended minimum temperature is less than 190 degree or the " -"recommended maximum temperature is greater than 300 degree.\n" +"The recommended minimum temperature is less than 190 degree or the recommended " +"maximum temperature is greater than 300 degree.\n" msgstr "" -"A temperatura mínima recomendada é inferior a 190 graus ou a temperatura " -"máxima recomendada é superior a 300 graus.\n" +"A temperatura mínima recomendada é inferior a 190 graus ou a temperatura máxima " +"recomendada é superior a 300 graus.\n" msgid "" -"The recommended minimum temperature cannot be higher than the recommended " -"maximum temperature.\n" +"The recommended minimum temperature cannot be higher than the recommended maximum " +"temperature.\n" msgstr "" "A temperatura mínima recomendada não pode ser superior à temperatura máxima " "recomendada.\n" @@ -3664,18 +3595,16 @@ msgid "" "Please make sure whether to use the temperature to print.\n" "\n" msgstr "" -"O bico pode ficar bloqueado quando a temperatura estiver fora da faixa " -"recomendada.\n" +"O bico pode ficar bloqueado quando a temperatura estiver fora da faixa recomendada.\n" "Por favor, certifique-se de usar a temperatura para imprimir.\n" "\n" #, c-format, boost-format msgid "" -"Recommended nozzle temperature of this filament type is [%d, %d] degree " -"centigrade" +"Recommended nozzle temperature of this filament type is [%d, %d] degree centigrade" msgstr "" -"A temperatura do bico recomendada para este tipo de filamento é [%d, %d] " -"graus centígrados" +"A temperatura do bico recomendada para este tipo de filamento é [%d, %d] graus " +"centígrados" msgid "" "Too small max volumetric speed.\n" @@ -3686,13 +3615,13 @@ msgstr "" #, c-format, boost-format msgid "" -"Current chamber temperature is higher than the material's safe " -"temperature,it may result in material softening and clogging.The maximum " -"safe temperature for the material is %d" +"Current chamber temperature is higher than the material's safe temperature,it may " +"result in material softening and clogging.The maximum safe temperature for the " +"material is %d" msgstr "" "A temperatura da câmara atual está mais alta do que a temperatura segura do " -"material, pode resultar em amolecimento e entupimento do material. A " -"temperatura máxima segura para o material é %d" +"material, pode resultar em amolecimento e entupimento do material. A temperatura " +"máxima segura para o material é %d" msgid "" "Too small layer height.\n" @@ -3718,19 +3647,17 @@ msgstr "" "A altura da primeira camada será redefinida para 0.2." msgid "" -"This setting is only used for model size tunning with small value in some " -"cases.\n" +"This setting is only used for model size tunning with small value in some cases.\n" "For example, when model size has small error and hard to be assembled.\n" "For large size tuning, please use model scale function.\n" "\n" "The value will be reset to 0." msgstr "" -"Esta configuração é usada apenas para ajustar o tamanho do modelo com um " -"valor pequeno em alguns casos.\n" -"Por exemplo, quando o tamanho do modelo tem um pequeno erro e é difícil de " -"ser montado.\n" -"Para ajustes de tamanho grandes, por favor, use a função de escala do " -"modelo.\n" +"Esta configuração é usada apenas para ajustar o tamanho do modelo com um valor " +"pequeno em alguns casos.\n" +"Por exemplo, quando o tamanho do modelo tem um pequeno erro e é difícil de ser " +"montado.\n" +"Para ajustes de tamanho grandes, por favor use a função de escala do modelo.\n" "\n" "O valor será redefinido para 0." @@ -3742,39 +3669,39 @@ msgid "" "The value will be reset to 0." msgstr "" "Uma compensação de pé de elefante muito grande é irrazoável.\n" -"Se realmente tiver um efeito sério de pé de elefante, por favor, verifique " -"outras configurações.\n" +"Se realmente tiver um efeito sério de pé de elefante, por favor verifique outras " +"configurações.\n" "Por exemplo, se a temperatura da mesa estiver muito alta.\n" "\n" "O valor será redefinido para 0." msgid "" -"Alternate extra wall does't work well when ensure vertical shell thickness " -"is set to All. " +"Alternate extra wall does't work well when ensure vertical shell thickness is set to " +"All. " msgstr "" -"O perímetro extra alternado não funciona bem quando a espessura vertical da " -"está definida para Todos. " +"O perímetro extra alternado não funciona bem quando a espessura vertical da está " +"definida para Todos. " msgid "" "Change these settings automatically? \n" -"Yes - Change ensure vertical shell thickness to Moderate and enable " -"alternate extra wall\n" +"Yes - Change ensure vertical shell thickness to Moderate and enable alternate extra " +"wall\n" "No - Don't use alternate extra wall" msgstr "" "Alterar essas configurações automaticamente?\n" -"Sim - Alterar a espessura vertical do perímetro para Moderado e ativar o " -"perímetro extra alternado\n" +"Sim - Alterar a espessura vertical do perímetro para Moderado e ativar o perímetro " +"extra alternado\n" "Não - Não usar o perímetro extra alternado" msgid "" -"Prime tower does not work when Adaptive Layer Height or Independent Support " -"Layer Height is on.\n" +"Prime tower does not work when Adaptive Layer Height or Independent Support Layer " +"Height is on.\n" "Which do you want to keep?\n" "YES - Keep Prime Tower\n" "NO - Keep Adaptive Layer Height and Independent Support Layer Height" msgstr "" -"A Torre Prime não funciona quando a Altura de Camada Adaptativa ou a Altura " -"de Camada de Suporte Independente está ativada.\n" +"A Torre Prime não funciona quando a Altura de Camada Adaptativa ou a Altura de " +"Camada de Suporte Independente está ativada.\n" "Qual você deseja manter?\n" "SIM — Manter a Torre Prime\n" "NÃO — Manter a Altura de Camada Adaptativa e a Altura de Camada de Suporte " @@ -3797,8 +3724,8 @@ msgid "" "YES - Keep Prime Tower\n" "NO - Keep Independent Support Layer Height" msgstr "" -"A Torre Prime não funciona quando a Altura da Camada de Suporte Independente " -"está ativa.\n" +"A Torre Prime não funciona quando a Altura da Camada de Suporte Independente está " +"ativa.\n" "Qual você deseja manter?\n" "SIM — Manter a Torre Prime\n" "NÃO — Manter a Altura da Camada de Suporte Independente" @@ -3811,12 +3738,12 @@ msgstr "" "Redefinir para 0." msgid "" -"Spiral mode only works when wall loops is 1, support is disabled, top shell " -"layers is 0, sparse infill density is 0 and timelapse type is traditional." +"Spiral mode only works when wall loops is 1, support is disabled, top shell layers " +"is 0, sparse infill density is 0 and timelapse type is traditional." msgstr "" "O modo espiral só funciona quando o perímetro é igual a 1, o suporte está " -"desativado, as camadas de topo são 0, a densidade de preenchimento não " -"sólido é 0 e o tipo de timelapse é tradicional." +"desativado, as camadas de topo são 0, a densidade de preenchimento esparso é 0 e o " +"tipo de timelapse é tradicional." msgid " But machines with I3 structure will not generate timelapse videos." msgstr " Mas máquinas com estrutura I3 não gerarão vídeos de timelapse." @@ -3909,8 +3836,7 @@ msgid "Paused due to AMS lost" msgstr "Pausado devido à perda do AMS" msgid "Paused due to low speed of the heat break fan" -msgstr "" -"Pausado devido a baixa velocidade do ventilador do bloco de aquecimento" +msgstr "Pausado devido a baixa velocidade do ventilador do bloco de aquecimento" msgid "Paused due to chamber temperature control error" msgstr "Pausado devido a erro no controle de temperatura da câmara" @@ -3961,37 +3887,34 @@ msgid "Update failed." msgstr "Atualização falhou." msgid "" -"The current chamber temperature or the target chamber temperature exceeds " -"45℃.In order to avoid extruder clogging,low temperature filament(PLA/PETG/" -"TPU) is not allowed to be loaded." +"The current chamber temperature or the target chamber temperature exceeds 45℃.In " +"order to avoid extruder clogging,low temperature filament(PLA/PETG/TPU) is not " +"allowed to be loaded." msgstr "" -"A temperatura atual da câmara ou a temperatura da câmara alvo excede 45℃. " -"Para evitar obstrução do extrusor, não é permitido carregar filamento de " -"baixa temperatura (PLA/PETG/TPU)." +"A temperatura atual da câmara ou a temperatura da câmara alvo excede 45℃. Para " +"evitar obstrução do extrusor, não é permitido carregar filamento de baixa " +"temperatura (PLA/PETG/TPU)." msgid "" -"Low temperature filament(PLA/PETG/TPU) is loaded in the extruder.In order to " -"avoid extruder clogging,it is not allowed to set the chamber temperature " -"above 45℃." +"Low temperature filament(PLA/PETG/TPU) is loaded in the extruder.In order to avoid " +"extruder clogging,it is not allowed to set the chamber temperature above 45℃." msgstr "" -"Filamento de baixa temperatura (PLA/PETG/TPU) está carregado na extrusora. " -"Para evitar obstrução do extrusor, não é permitido ajustar a temperatura da " -"câmara acima de 45℃." +"Filamento de baixa temperatura (PLA/PETG/TPU) está carregado na extrusora. Para " +"evitar obstrução do extrusor, não é permitido ajustar a temperatura da câmara acima " +"de 45℃." msgid "" -"When you set the chamber temperature below 40℃, the chamber temperature " -"control will not be activated. And the target chamber temperature will " -"automatically be set to 0℃." +"When you set the chamber temperature below 40℃, the chamber temperature control will " +"not be activated. And the target chamber temperature will automatically be set to 0℃." msgstr "" -"Quando você definir a temperatura da câmara abaixo de 40℃, o controle de " -"temperatura da câmara não será ativado. E a temperatura alvo da câmara será " -"automaticamente definida como 0℃." +"Quando você definir a temperatura da câmara abaixo de 40℃, o controle de temperatura " +"da câmara não será ativado. E a temperatura alvo da câmara será automaticamente " +"definida como 0℃." msgid "Failed to start printing job" msgstr "Falha ao iniciar o trabalho de impressão" -msgid "" -"This calibration does not support the currently selected nozzle diameter" +msgid "This calibration does not support the currently selected nozzle diameter" msgstr "Esta calibração não suporta o diâmetro do bico atualmente selecionado" msgid "Current flowrate cali param is invalid" @@ -4013,18 +3936,18 @@ msgid "Bambu PET-CF/PA6-CF is not supported by AMS." msgstr "Bambu PET-CF/PA6-CF não é suportado pelo AMS." msgid "" -"Damp PVA will become flexible and get stuck inside AMS,please take care to " -"dry it before use." +"Damp PVA will become flexible and get stuck inside AMS,please take care to dry it " +"before use." msgstr "" -"O PVA úmido se tornará flexível e ficará preso dentro do AMS, por favor, " -"tenha cuidado para secá-lo antes de usar." +"O PVA úmido se tornará flexível e ficará preso dentro do AMS, por favor tenha " +"cuidado para secá-lo antes de usar." msgid "" -"CF/GF filaments are hard and brittle, It's easy to break or get stuck in " -"AMS, please use with caution." +"CF/GF filaments are hard and brittle, It's easy to break or get stuck in AMS, please " +"use with caution." msgstr "" -"Os filamentos CF/GF são duros e quebradiços, é fácil quebrar ou ficar preso " -"no AMS, por favor, use com cautela." +"Os filamentos CF/GF são duros e quebradiços, é fácil quebrar ou ficar preso no AMS, " +"por favor use com cautela." msgid "default" msgstr "padrão" @@ -4035,8 +3958,8 @@ msgstr "Editar G-Code personalizado (%1%)" msgid "Built-in placeholders (Double click item to add to G-code)" msgstr "" -"Marcadores de posição incorporados (Clique duas vezes no item para adicionar " -"ao G-code)" +"Marcadores de posição incorporados (Clique duas vezes no item para adicionar ao G-" +"code)" msgid "Search gcode placeholders" msgstr "Procurar marcadores de posição do G-code" @@ -4126,11 +4049,9 @@ msgstr "" #, boost-format msgid "" -"Invalid input format. Expected vector of dimensions in the following format: " -"\"%1%\"" +"Invalid input format. Expected vector of dimensions in the following format: \"%1%\"" msgstr "" -"Formato de entrada inválido. Vetor de dimensões esperado no seguinte " -"formato: \"%1%\"" +"Formato de entrada inválido. Vetor de dimensões esperado no seguinte formato: \"%1%\"" msgid "Input value is out of range" msgstr "Valor de entrada está fora do limite" @@ -4209,7 +4130,7 @@ msgid "Tower" msgstr "Torre" msgid "Total" -msgstr "Total:" +msgstr "Total" msgid "Total Estimation" msgstr "Estimativa Total" @@ -4341,13 +4262,13 @@ msgid "Quality / Speed" msgstr "Qualidade / Velocidade" msgid "Smooth" -msgstr "Suavização" +msgstr "Suave" msgid "Radius" msgstr "Raio" msgid "Keep min" -msgstr "Manter Mínimo" +msgstr "Manter mínimo" msgid "Left mouse button:" msgstr "Botão esquerdo do mouse:" @@ -4407,7 +4328,7 @@ msgid "Orient" msgstr "Orientar" msgid "Arrange options" -msgstr "Opções de Organização" +msgstr "Opções de organização" msgid "Spacing" msgstr "Espaçamento" @@ -4416,7 +4337,7 @@ msgid "0 means auto spacing." msgstr "0 significa auto-espaçamento." msgid "Auto rotate for arrangement" -msgstr "Girar automaticamente para arranjo" +msgstr "Girar automaticamente para arranjar" msgid "Allow multiple materials on same plate" msgstr "Permitir vários materiais na mesma mesa" @@ -4483,11 +4404,11 @@ msgstr "Tamanho:" #, boost-format msgid "" -"Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please " -"separate the conflicted objects farther (%s <-> %s)." +"Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please separate " +"the conflicted objects farther (%s <-> %s)." msgstr "" -"Foram encontrados conflitos de caminhos de G-code na camada %d, z = %.2lf " -"mm. Por favor, separe mais os objetos em conflito (%s <-> %s)." +"Foram encontrados conflitos de caminhos de G-code na camada %d, z = %.2lf mm. Por " +"favor, separe mais os objetos em conflito (%s <-> %s)." msgid "An object is layed over the boundary of plate." msgstr "Um objeto está sobre a borda da mesa." @@ -4503,12 +4424,12 @@ msgstr "Apenas o objeto em edição está visível." msgid "" "An object is laid over the boundary of plate or exceeds the height limit.\n" -"Please solve the problem by moving it totally on or off the plate, and " -"confirming that the height is within the build volume." +"Please solve the problem by moving it totally on or off the plate, and confirming " +"that the height is within the build volume." msgstr "" "Um objeto está sobre a borda da mesa ou ultrapassa o limite de altura.\n" -"Por favor, resolva o problema movendo-o totalmente para dentro ou para fora " -"da mesa, e confirmando que a altura está dentro do volume de impressão." +"Por favor, resolva o problema movendo-o totalmente para dentro ou para fora da mesa, " +"e confirmando que a altura está dentro do volume de impressão." msgid "Calibration step selection" msgstr "Seleção de etapa de calibração" @@ -4529,12 +4450,12 @@ msgid "Calibration program" msgstr "Programa de calibração" msgid "" -"The calibration program detects the status of your device automatically to " -"minimize deviation.\n" +"The calibration program detects the status of your device automatically to minimize " +"deviation.\n" "It keeps the device performing optimally." msgstr "" -"O programa de calibração detecta automaticamente o estado do seu dispositivo " -"para minimizar desvios.\n" +"O programa de calibração detecta automaticamente o estado do seu dispositivo para " +"minimizar desvios.\n" "Mantém o dispositivo com desempenho ideal." msgid "Calibration Flow" @@ -4854,10 +4775,10 @@ msgid "Clone copies of selections" msgstr "Clonar cópias das seleções" msgid "Duplicate Current Plate" -msgstr "" +msgstr "Duplicar Mesa Atual" msgid "Duplicate the current plate" -msgstr "" +msgstr "Duplica a mesa atual" msgid "Select all" msgstr "Selecionar tudo" @@ -4935,16 +4856,16 @@ msgid "Flow rate test - Pass 2" msgstr "Teste de fluxo - Passo 2" msgid "YOLO (Recommended)" -msgstr "" +msgstr "YOLO (Recomendado)" msgid "Orca YOLO flowrate calibration, 0.01 step" -msgstr "" +msgstr "Calibração de fluxo YOLO Orca, passo de 0.01" msgid "YOLO (perfectionist version)" -msgstr "" +msgstr "YOLO (versão perfeccionista)" msgid "Orca YOLO flowrate calibration, 0.005 step" -msgstr "" +msgstr "Calibração de fluxo YOLO Orca, passo de 0.005" msgid "Flow rate" msgstr "Fluxo" @@ -5018,7 +4939,7 @@ msgstr "&Ajuda" #, c-format, boost-format msgid "A file exists with the same name: %s, do you want to override it." -msgstr "Já existe um arquivo com o mesmo nome: %s. Deseja substituí-lo?" +msgstr "Existe um arquivo com o mesmo nome: %s, você deseja substituí-lo?" #, c-format, boost-format msgid "A config exists with the same name: %s, do you want to override it." @@ -5039,10 +4960,8 @@ msgstr "Escolha um diretório" #, c-format, boost-format msgid "There is %d config exported. (Only non-system configs)" msgid_plural "There are %d configs exported. (Only non-system configs)" -msgstr[0] "" -"Foi exportada uma configuração (%d). (Apenas configurações não do sistema)" -msgstr[1] "" -"Foram exportadas %d configurações. (Apenas configurações não do sistema)" +msgstr[0] "Foi exportada uma configuração (%d). (Apenas configurações não do sistema)" +msgstr[1] "Foram exportadas %d configurações. (Apenas configurações não do sistema)" msgid "Export result" msgstr "Resultado da exportação" @@ -5052,23 +4971,22 @@ msgstr "Selecione o perfil para carregar:" #, c-format, boost-format msgid "There is %d config imported. (Only non-system and compatible configs)" -msgid_plural "" -"There are %d configs imported. (Only non-system and compatible configs)" +msgid_plural "There are %d configs imported. (Only non-system and compatible configs)" msgstr[0] "" -"Foi importada uma configuração (%d). (Apenas configurações compatíveis e não " -"do sistema)" +"Foi importada uma configuração (%d). (Apenas configurações compatíveis e não do " +"sistema)" msgstr[1] "" -"Foram importadas %d configurações. (Apenas configurações compatíveis e não " -"do sistema)" +"Foram importadas %d configurações. (Apenas configurações compatíveis e não do " +"sistema)" msgid "" "\n" -"Hint: Make sure you have added the corresponding printer before importing " -"the configs." +"Hint: Make sure you have added the corresponding printer before importing the " +"configs." msgstr "" "\n" -"Dica: Certifique-se de ter adicionado a impressora correspondente antes de " -"importar as configurações." +"Dica: Certifique-se de ter adicionado a impressora correspondente antes de importar " +"as configurações." msgid "Import result" msgstr "Resultado da importação" @@ -5100,41 +5018,33 @@ msgstr "Sincronização" msgid "The device cannot handle more conversations. Please retry later." msgstr "" -"O dispositivo não pode lidar com mais conversas. Por favor, tente novamente " -"mais tarde." +"O dispositivo não pode lidar com mais conversas. Por favor, tente novamente mais " +"tarde." msgid "Player is malfunctioning. Please reinstall the system player." -msgstr "" -"O reprodutor está com problemas. Por favor, reinstale o reprodutor do " -"sistema." +msgstr "O reprodutor está com problemas. Por favor, reinstale o reprodutor do sistema." msgid "The player is not loaded, please click \"play\" button to retry." msgstr "" -"O reprodutor não está carregado, por favor, clique no botão \"Reproduzir\" " -"para tentar novamente." +"O reprodutor não está carregado, por favor clique no botão \"Reproduzir\" para " +"tentar novamente." msgid "Please confirm if the printer is connected." msgstr "Por favor, confirme se a impressora está conectada." -msgid "" -"The printer is currently busy downloading. Please try again after it " -"finishes." -msgstr "" -"A impressora está sendo baixada no momento. Tente novamente após terminar." +msgid "The printer is currently busy downloading. Please try again after it finishes." +msgstr "A impressora está sendo baixada no momento. Tente novamente após terminar." msgid "Printer camera is malfunctioning." msgstr "A câmera da impressora está com problemas." msgid "Problem occurred. Please update the printer firmware and try again." msgstr "" -"Ocorreu um problema. Por favor, atualize o firmware da impressora e tente " -"novamente." +"Ocorreu um problema. Por favor, atualize o firmware da impressora e tente novamente." -msgid "" -"LAN Only Liveview is off. Please turn on the liveview on printer screen." +msgid "LAN Only Liveview is off. Please turn on the liveview on printer screen." msgstr "" -"Liveview via LAN está desativado. Por favor, ative a liveview na tela da " -"impressora." +"Liveview via LAN está desativado. Por favor, ative a liveview na tela da impressora." msgid "Please enter the IP of printer to connect." msgstr "Por favor, digite o IP da impressora para conectar." @@ -5146,17 +5056,17 @@ msgid "Connection Failed. Please check the network and try again" msgstr "Falha na conexão. Por favor, verifique a rede e tente novamente" msgid "" -"Please check the network and try again, You can restart or update the " -"printer if the issue persists." +"Please check the network and try again, You can restart or update the printer if the " +"issue persists." msgstr "" -"Por favor, verifique a rede e tente novamente, você pode reiniciar ou " -"atualizar a impressora se o problema persistir." +"Por favor, verifique a rede e tente novamente, você pode reiniciar ou atualizar a " +"impressora se o problema persistir." msgid "The printer has been logged out and cannot connect." msgstr "A impressora foi desconectada e não pode se conectar." -msgid "Stopped." -msgstr "Parado." +msgid "Video Stopped." +msgstr "Vídeo Parado." msgid "LAN Connection Failed (Failed to start liveview)" msgstr "Falha na conexão da LAN (Falha ao iniciar a visualização ao vivo)" @@ -5247,10 +5157,6 @@ msgstr "Recarregar lista de arquivos da impressora." msgid "No printers." msgstr "Nenhuma impressora." -#, c-format, boost-format -msgid "Connect failed [%d]!" -msgstr "Falha ao conectar [%d]!" - msgid "Loading file list..." msgstr "Carregando lista de arquivos..." @@ -5260,18 +5166,17 @@ msgstr "Sem arquivos" msgid "Load failed" msgstr "Falha ao carregar" -msgid "Initialize failed (Device connection not ready)!" -msgstr "Inicialização falhou (Conexão do dispositivo não está pronta)!" +msgid "" +"Browsing file in SD card is not supported in current firmware. Please update the " +"printer firmware." +msgstr "" +"Procurar arquivo no cartão SD não é suportado no firmware atual. Por favor, atualize " +"o firmware da impressora." msgid "" -"Browsing file in SD card is not supported in current firmware. Please update " -"the printer firmware." +"Please check if the SD card is inserted into the printer.\n" +"If it still cannot be read, you can try formatting the SD card." msgstr "" -"Procurar arquivo no cartão SD não é suportado no firmware atual. Por favor, " -"atualize o firmware da impressora." - -msgid "Initialize failed (Storage unavailable, insert SD card.)!" -msgstr "Inicialização falhou (falha no armazenamento, insira o cartão SD.)!" msgid "LAN Connection Failed (Failed to view sdcard)" msgstr "Falha na conexão LAN (Falha para ver o cartão SD)" @@ -5279,20 +5184,15 @@ msgstr "Falha na conexão LAN (Falha para ver o cartão SD)" msgid "Browsing file in SD card is not supported in LAN Only Mode." msgstr "Procurar arquivo no cartão SD não é suportado no Modo Somente LAN." -#, c-format, boost-format -msgid "Initialize failed (%s)!" -msgstr "Inicialização falhou (%s)!" - #, c-format, boost-format msgid "You are going to delete %u file from printer. Are you sure to continue?" -msgid_plural "" -"You are going to delete %u files from printer. Are you sure to continue?" +msgid_plural "You are going to delete %u files from printer. Are you sure to continue?" msgstr[0] "" -"Você está prestes a excluir %u arquivo da impressora. Tem certeza de que " -"deseja continuar?" +"Você está prestes a excluir %u arquivo da impressora. Tem certeza de que deseja " +"continuar?" msgstr[1] "" -"Você está prestes a excluir %u arquivos da impressora. Tem certeza de que " -"deseja continuar?" +"Você está prestes a excluir %u arquivos da impressora. Tem certeza de que deseja " +"continuar?" msgid "Delete files" msgstr "Excluir arquivos" @@ -5314,11 +5214,11 @@ msgid "Failed to parse model information." msgstr "Falha ao analisar a informação do modelo." msgid "" -"The .gcode.3mf file contains no G-code data.Please slice it with Orca Slicer " -"and export a new .gcode.3mf file." +"The .gcode.3mf file contains no G-code data.Please slice it with Orca Slicer and " +"export a new .gcode.3mf file." msgstr "" -"O arquivo .gcode.3mf não contém dados de G-code. Por favor, fatie com Orca " -"Slicer e exporte um novo arquivo .gcode.3mf." +"O arquivo .gcode.3mf não contém dados de G-code. Por favor, fatie com Orca Slicer e " +"exporte um novo arquivo .gcode.3mf." #, c-format, boost-format msgid "File '%s' was lost! Please download it again." @@ -5349,11 +5249,11 @@ msgid "Downloading %d%%..." msgstr "Baixando %d%%..." msgid "" -"Reconnecting the printer, the operation cannot be completed immediately, " -"please try again later." +"Reconnecting the printer, the operation cannot be completed immediately, please try " +"again later." msgstr "" -"Reconectando a impressora, a operação não pôde ser concluída imediatamente, " -"por favor, tente novamente mais tarde." +"Reconectando a impressora, a operação não pôde ser concluída imediatamente, por " +"favor tente novamente mais tarde." msgid "File does not exist." msgstr "O arquivo não existe." @@ -5433,10 +5333,8 @@ msgid "How do you like this printing file?" msgstr "O que você achou deste arquivo de impressão?" msgid "" -"(The model has already been rated. Your rating will overwrite the previous " -"rating.)" -msgstr "" -"(O modelo já foi avaliado. Sua avaliação substituirá a avaliação anterior.)" +"(The model has already been rated. Your rating will overwrite the previous rating.)" +msgstr "(O modelo já foi avaliado. Sua avaliação substituirá a avaliação anterior.)" msgid "Rate" msgstr "Avaliar" @@ -5511,11 +5409,9 @@ msgid "Layer: %d/%d" msgstr "Camada: %d/%d" msgid "" -"Please heat the nozzle to above 170 degree before loading or unloading " -"filament." +"Please heat the nozzle to above 170 degree before loading or unloading filament." msgstr "" -"Aqueça o bico a mais de 170 graus antes de carregar ou descarregar o " -"filamento." +"Aqueça o bico a mais de 170 graus antes de carregar ou descarregar o filamento." msgid "Still unload" msgstr "Ainda descarregando" @@ -5527,12 +5423,11 @@ msgid "Please select an AMS slot before calibration" msgstr "Selecione um slot AMS antes da calibração" msgid "" -"Cannot read filament info: the filament is loaded to the tool head,please " -"unload the filament and try again." +"Cannot read filament info: the filament is loaded to the tool head,please unload the " +"filament and try again." msgstr "" -"Não é possível ler as informações do filamento: o filamento está carregado " -"na cabeça da ferramenta, por favor, descarregue o filamento e tente " -"novamente." +"Não é possível ler as informações do filamento: o filamento está carregado na cabeça " +"da ferramenta, por favor descarregue o filamento e tente novamente." msgid "This only takes effect during printing" msgstr "Isso só tem efeito durante a impressão" @@ -5598,12 +5493,12 @@ msgid " can not be opened\n" msgstr " não pode ser aberto\n" msgid "" -"The following issues occurred during the process of uploading images. Do you " -"want to ignore them?\n" +"The following issues occurred during the process of uploading images. Do you want to " +"ignore them?\n" "\n" msgstr "" -"Os seguintes problemas ocorreram durante o processo de carregamento das " -"imagens. Você deseja ignorá-los?\n" +"Os seguintes problemas ocorreram durante o processo de carregamento das imagens. " +"Você deseja ignorá-los?\n" "\n" msgid "info" @@ -5611,8 +5506,8 @@ msgstr "informação" msgid "Synchronizing the printing results. Please retry a few seconds later." msgstr "" -"Sincronizando os resultados da impressão. Por favor, tente novamente alguns " -"segundos depois." +"Sincronizando os resultados da impressão. Por favor, tente novamente alguns segundos " +"depois." msgid "Upload failed\n" msgstr "Falha no envio\n" @@ -5625,8 +5520,8 @@ msgid "" "\n" " error code: " msgstr "" -"O resultado do seu comentário não pode ser enviado devido a alguns motivos. " -"Como segue:\n" +"O resultado do seu comentário não pode ser enviado devido a alguns motivos. Como " +"segue:\n" "\n" " código de erro: " @@ -5643,11 +5538,11 @@ msgstr "" "Gostaria de ser redirecionado para a página da web para avaliar?" msgid "" -"Some of your images failed to upload. Would you like to redirect to the " -"webpage for rating?" +"Some of your images failed to upload. Would you like to redirect to the webpage for " +"rating?" msgstr "" -"Algumas de suas imagens não puderam ser carregadas. Gostaria de ser " -"redirecionado para a página da web para avaliar?" +"Algumas de suas imagens não puderam ser carregadas. Gostaria de ser redirecionado " +"para a página da web para avaliar?" msgid "You can select up to 16 images." msgstr "Você pode selecionar até 16 imagens." @@ -5700,8 +5595,7 @@ msgid "Newer 3mf version" msgstr "Nova versão 3mf" msgid "" -"The 3mf file version is in Beta and it is newer than the current OrcaSlicer " -"version." +"The 3mf file version is in Beta and it is newer than the current OrcaSlicer version." msgstr "" "A versão 3mf do arquivo está em Beta e é mais nova do que a versão atual do " "OrcaSlicer." @@ -5713,13 +5607,11 @@ msgid "Download Beta Version" msgstr "Baixar versão beta" msgid "The 3mf file version is newer than the current Orca Slicer version." -msgstr "" -"A versão do arquivo 3mf é mais recente que a versão atual do Orca Slicer." +msgstr "A versão do arquivo 3mf é mais recente que a versão atual do Orca Slicer." msgid "Update your Orca Slicer could enable all functionality in the 3mf file." msgstr "" -"Atualizar seu Orca Slicer poderia permitir todas as funcionalidades do " -"arquivo 3mf." +"Atualizar seu Orca Slicer poderia permitir todas as funcionalidades do arquivo 3mf." msgid "Current Version: " msgstr "Versão Atual: " @@ -5730,6 +5622,25 @@ msgstr "Última Versão: " msgid "Not for now" msgstr "Não por enquanto" +msgid "Server Exception" +msgstr "Exceção de Servidor" + +msgid "" +"The server is unable to respond. Please click the link below to check the server " +"status." +msgstr "" + +msgid "" +"If the server is in a fault state, you can temporarily use offline printing or local " +"network printing." +msgstr "" + +msgid "How to use LAN only mode" +msgstr "" + +msgid "Don't show this dialog again" +msgstr "Não mostrar esse diálogo novamente" + msgid "3D Mouse disconnected." msgstr "Mouse 3D desconectado." @@ -5856,12 +5767,10 @@ msgstr "Camadas" msgid "Range" msgstr "Intervalo" -msgid "" -"The application cannot run normally because OpenGL version is lower than " -"2.0.\n" +msgid "The application cannot run normally because OpenGL version is lower than 2.0.\n" msgstr "" -"A aplicação não pode ser executada normalmente porque a versão do OpenGL é " -"inferior a 2.0.\n" +"A aplicação não pode ser executada normalmente porque a versão do OpenGL é inferior " +"a 2.0.\n" msgid "Please upgrade your graphics card driver." msgstr "Por favor, atualize o driver da sua placa de vídeo." @@ -5898,11 +5807,11 @@ msgid "Enable detection of build plate position" msgstr "Ativar detecção da posição da mesa" msgid "" -"The localization tag of build plate is detected, and printing is paused if " -"the tag is not in predefined range." +"The localization tag of build plate is detected, and printing is paused if the tag " +"is not in predefined range." msgstr "" -"A etiqueta de localização da mesa é detectada e a impressão é pausada se a " -"etiqueta não estiver na faixa predefinida." +"A etiqueta de localização da mesa é detectada e a impressão é pausada se a etiqueta " +"não estiver na faixa predefinida." msgid "First Layer Inspection" msgstr "Inspeção da Primeira Camada" @@ -5920,8 +5829,7 @@ msgid "Nozzle Clumping Detection" msgstr "Detecção de acúmulo no bico" msgid "Check if the nozzle is clumping by filament or other foreign objects." -msgstr "" -"Verifica se o bico está com filamento acumulado ou outros objetos estranhos." +msgstr "Verifica se o bico está com filamento acumulado ou outros objetos estranhos." msgid "Nozzle Type" msgstr "Tipo de bico" @@ -5952,7 +5860,7 @@ msgid "View all object's settings" msgstr "Ver todas as configurações do objeto" msgid "Material settings" -msgstr "" +msgstr "Configurações de material" msgid "Remove current plate (if not last one)" msgstr "Remover a mesa atual (se não for a última)" @@ -5973,7 +5881,7 @@ msgid "Edit current plate name" msgstr "Editar nome da mesa atual" msgid "Move plate to the front" -msgstr "" +msgstr "Mover mesa para frente" msgid "Customize current plate" msgstr "Personalizar a mesa atual" @@ -6034,27 +5942,24 @@ msgid "Search plate, object and part." msgstr "Pesquisar mesa, objeto e peça." msgid "Pellets" -msgstr "" +msgstr "Pellets" -msgid "" -"No AMS filaments. Please select a printer in 'Device' page to load AMS info." +msgid "No AMS filaments. Please select a printer in 'Device' page to load AMS info." msgstr "" -"Sem filamentos AMS. Por favor, selecione uma impressora na página " -"'Dispositivo' para carregar informações AMS." +"Sem filamentos AMS. Por favor, selecione uma impressora na página 'Dispositivo' para " +"carregar informações AMS." msgid "Sync filaments with AMS" msgstr "Sincronizar filamentos com AMS" msgid "" -"Sync filaments with AMS will drop all current selected filament presets and " -"colors. Do you want to continue?" +"Sync filaments with AMS will drop all current selected filament presets and colors. " +"Do you want to continue?" msgstr "" -"Sincronizar filamentos com AMS eliminará todas os presets de filamento e " -"cores selecionadas atualmente. Deseja continuar?" +"Sincronizar filamentos com AMS eliminará todas os presets de filamento e cores " +"selecionadas atualmente. Deseja continuar?" -msgid "" -"Already did a synchronization, do you want to sync only changes or resync " -"all?" +msgid "Already did a synchronization, do you want to sync only changes or resync all?" msgstr "" "Já foi feita uma sincronização, deseja sincronizar apenas as alterações ou " "ressincronizar tudo?" @@ -6069,13 +5974,12 @@ msgid "There are no compatible filaments, and sync is not performed." msgstr "Não há filamentos compatíveis, e a sincronização não é realizada." msgid "" -"There are some unknown filaments mapped to generic preset. Please update " -"Orca Slicer or restart Orca Slicer to check if there is an update to system " -"presets." +"There are some unknown filaments mapped to generic preset. Please update Orca Slicer " +"or restart Orca Slicer to check if there is an update to system presets." msgstr "" -"Alguns filamentos desconhecidos foram mapeados para preset genérico. Por " -"favor, atualize o Orca Slicer ou reinicie o Orca Slicer para verificar se há " -"uma atualização para presets do sistema." +"Alguns filamentos desconhecidos foram mapeados para preset genérico. Por favor, " +"atualize o Orca Slicer ou reinicie o Orca Slicer para verificar se há uma " +"atualização para presets do sistema." #, boost-format msgid "Do you want to save changes to \"%1%\"?" @@ -6086,8 +5990,8 @@ msgid "" "Successfully unmounted. The device %s(%s) can now be safely removed from the " "computer." msgstr "" -"Desmontado com sucesso. O dispositivo %s(%s) agora pode ser removido com " -"segurança do computador." +"Desmontado com sucesso. O dispositivo %s(%s) agora pode ser removido com segurança " +"do computador." #, c-format, boost-format msgid "Ejecting of device %s(%s) has failed." @@ -6100,29 +6004,29 @@ msgid "Restore" msgstr "Restaurar" msgid "" -"The current hot bed temperature is relatively high. The nozzle may be " -"clogged when printing this filament in a closed enclosure. Please open the " -"front door and/or remove the upper glass." +"The current hot bed temperature is relatively high. The nozzle may be clogged when " +"printing this filament in a closed enclosure. Please open the front door and/or " +"remove the upper glass." msgstr "" -"A temperatura atual da mesa aquecida está relativamente alta. A boquilha " -"pode ficar obstruída ao imprimir este filamento em um compartimento fechado. " -"Por favor, abra a porta frontal e/ou remova o vidro superior." +"A temperatura atual da mesa aquecida está relativamente alta. A boquilha pode ficar " +"obstruída ao imprimir este filamento em um compartimento fechado. Por favor, abra a " +"porta frontal e/ou remova o vidro superior." msgid "" -"The nozzle hardness required by the filament is higher than the default " -"nozzle hardness of the printer. Please replace the hardened nozzle or " -"filament, otherwise, the nozzle will be attrited or damaged." +"The nozzle hardness required by the filament is higher than the default nozzle " +"hardness of the printer. Please replace the hardened nozzle or filament, otherwise, " +"the nozzle will be attrited or damaged." msgstr "" -"A dureza do bico necessária pelo filamento é maior do que a dureza padrão do " -"bico da impressora. Por favor, substitua a boquilha endurecida ou o " -"filamento, caso contrário, a boquilha será desgastada ou danificada." +"A dureza do bico necessária pelo filamento é maior do que a dureza padrão do bico da " +"impressora. Por favor, substitua a boquilha endurecida ou o filamento, caso " +"contrário, a boquilha será desgastada ou danificada." msgid "" -"Enabling traditional timelapse photography may cause surface imperfections. " -"It is recommended to change to smooth mode." +"Enabling traditional timelapse photography may cause surface imperfections. It is " +"recommended to change to smooth mode." msgstr "" -"A habilitação da fotografia tradicional em timelapse pode causar " -"imperfeições na superfície. É recomendado mudar para o modo suave." +"A habilitação da fotografia tradicional em timelapse pode causar imperfeições na " +"superfície. É recomendado mudar para o modo suave." msgid "Expand sidebar" msgstr "Expandir barra lateral" @@ -6135,8 +6039,7 @@ msgid "Loading file: %s" msgstr "Carregando arquivo: %s" msgid "The 3mf is not supported by OrcaSlicer, load geometry data only." -msgstr "" -"O 3mf não é suportado pelo OrcaSlicer, carregar apenas dados de geometria." +msgstr "O 3mf não é suportado pelo OrcaSlicer, carregar apenas dados de geometria." msgid "Load 3mf" msgstr "Carregar 3mf" @@ -6146,19 +6049,18 @@ msgid "" "The 3mf's version %s is newer than %s's version %s, Found following keys " "unrecognized:" msgstr "" -"A versão %s do 3mf é mais recente do que a versão %s do %s, encontradas as " -"seguintes chaves não reconhecidas:" +"A versão %s do 3mf é mais recente do que a versão %s do %s, encontradas as seguintes " +"chaves não reconhecidas:" msgid "You'd better upgrade your software.\n" msgstr "Será melhor atualizar o seu software.\n" #, c-format, boost-format msgid "" -"The 3mf's version %s is newer than %s's version %s, Suggest to upgrade your " -"software." +"The 3mf's version %s is newer than %s's version %s, Suggest to upgrade your software." msgstr "" -"A versão %s do 3mf é mais recente do que a versão %s do %s, sugerimos " -"atualizar seu software." +"A versão %s do 3mf é mais recente do que a versão %s do %s, sugerimos atualizar seu " +"software." msgid "Invalid values found in the 3mf:" msgstr "Valores inválidos encontrados no 3mf:" @@ -6168,36 +6070,33 @@ msgstr "Por favor, corrija-os nas guias de parâmetros" msgid "The 3mf has following modified G-codes in filament or printer presets:" msgstr "" -"O 3mf possui os seguintes G-codes modificados em presets de filamento ou " -"impressora:" +"O 3mf possui os seguintes G-codes modificados em presets de filamento ou impressora:" msgid "" -"Please confirm that these modified G-codes are safe to prevent any damage to " -"the machine!" +"Please confirm that these modified G-codes are safe to prevent any damage to the " +"machine!" msgstr "" -"Por favor, confirme se esses G-codes modificados são seguros para evitar " -"qualquer dano à máquina!" +"Por favor, confirme se esses G-codes modificados são seguros para evitar qualquer " +"dano à máquina!" msgid "Modified G-codes" msgstr "G-codes modificados" msgid "The 3mf has following customized filament or printer presets:" -msgstr "" -"O 3mf possui os seguintes perfis de filamento ou impressora personalizados:" +msgstr "O 3mf possui os seguintes perfis de filamento ou impressora personalizados:" msgid "" -"Please confirm that the G-codes within these presets are safe to prevent any " -"damage to the machine!" +"Please confirm that the G-codes within these presets are safe to prevent any damage " +"to the machine!" msgstr "" -"Por favor, confirme se os G-codes dentro desses presets são seguros para " -"evitar qualquer dano à máquina!" +"Por favor, confirme se os G-codes dentro desses presets são seguros para evitar " +"qualquer dano à máquina!" msgid "Customized Preset" msgstr "Perfil Personalizado" msgid "Name of components inside step file is not UTF8 format!" -msgstr "" -"O nome dos componentes dentro do arquivo STEP não está no formato UTF-8!" +msgstr "O nome dos componentes dentro do arquivo STEP não está no formato UTF-8!" msgid "The name may show garbage characters!" msgstr "O nome pode exibir caracteres inválidos!" @@ -6207,9 +6106,7 @@ msgstr "Lembrar minha escolha." #, boost-format msgid "Failed loading file \"%1%\". An invalid configuration was found." -msgstr "" -"Falha ao carregar o arquivo \"%1%\". Foi encontrada uma configuração " -"inválida." +msgstr "Falha ao carregar o arquivo \"%1%\". Foi encontrada uma configuração inválida." msgid "Objects with zero volume removed" msgstr "Objetos com volume zero removidos" @@ -6234,8 +6131,7 @@ msgid "" "the file be loaded as a single object having multiple parts?" msgstr "" "Este arquivo contém vários objetos posicionados em alturas múltiplas.\n" -"Em vez de considerá-los como múltiplos objetos, o arquivo deve ser " -"carregado\n" +"Em vez de considerá-los como múltiplos objetos, o arquivo deve ser carregado\n" "como um único objeto com múltiplas peças?" msgid "Multi-part object detected" @@ -6251,11 +6147,11 @@ msgid "The file does not contain any geometry data." msgstr "O arquivo não contém dados de geometria." msgid "" -"Your object appears to be too large, Do you want to scale it down to fit the " -"heat bed automatically?" +"Your object appears to be too large, Do you want to scale it down to fit the heat " +"bed automatically?" msgstr "" -"Seu objeto parece ser muito grande. Deseja dimensioná-lo para caber na mesa " -"de aquecimento automaticamente?" +"Seu objeto parece ser muito grande. Deseja dimensioná-lo para caber na mesa de " +"aquecimento automaticamente?" msgid "Object too large" msgstr "Objeto muito grande" @@ -6353,8 +6249,7 @@ msgstr "Fatiando Mesa %d" msgid "Please resolve the slicing errors and publish again." msgstr "Por favor, resolva os erros de fatiamento e publique novamente." -msgid "" -"Network Plug-in is not detected. Network related features are unavailable." +msgid "Network Plug-in is not detected. Network related features are unavailable." msgstr "" "O plug-in de rede não está detectado. Recursos relacionados à rede estão " "indisponíveis." @@ -6364,12 +6259,11 @@ msgid "" "The loaded file contains gcode only, Can not enter the Prepare page" msgstr "" "Modo somente de visualização:\n" -"O arquivo carregado contém apenas código G, não é possível acessar a página " -"de Preparação" +"O arquivo carregado contém apenas código G, não é possível acessar a página de " +"Preparação" msgid "You can keep the modified presets to the new project or discard them" -msgstr "" -"Você pode manter os presets modificados no novo projeto ou descartá-los" +msgstr "Você pode manter os presets modificados no novo projeto ou descartá-los" msgid "Creating a new project" msgstr "Criando um novo projeto" @@ -6379,12 +6273,12 @@ msgstr "Carregar Projeto" msgid "" "Failed to save the project.\n" -"Please check whether the folder exists online or if other programs open the " -"project file." +"Please check whether the folder exists online or if other programs open the project " +"file." msgstr "" "Falha ao salvar o projeto.\n" -"Por favor, verifique se a pasta existe online ou se outros programas estão " -"com o arquivo do projeto aberto." +"Por favor, verifique se a pasta existe online ou se outros programas estão com o " +"arquivo do projeto aberto." msgid "Save project" msgstr "Salvar Projeto" @@ -6409,8 +6303,7 @@ msgid "Project downloaded %d%%" msgstr "Projeto baixado %d%%" msgid "" -"Importing to Orca Slicer failed. Please download the file and manually " -"import it." +"Importing to Orca Slicer failed. Please download the file and manually import it." msgstr "" "A importação para a Orca Slicer falhou. Por favor, baixe o arquivo e importe " "manualmente." @@ -6440,8 +6333,7 @@ msgstr "Falha ao descompactar arquivo para %1%: %2%" #, boost-format msgid "Failed to find unzipped file at %1%. Unzipping of file has failed." msgstr "" -"Falha ao encontrar arquivo descompactado em %1%. Descompactação do arquivo " -"falhou." +"Falha ao encontrar arquivo descompactado em %1%. Descompactação do arquivo falhou." msgid "Drop project file" msgstr "Solte o arquivo do projeto" @@ -6455,6 +6347,9 @@ msgstr "Abrir como projeto" msgid "Import geometry only" msgstr "Importar apenas a geometria" +msgid "This option can be changed later in preferences, under 'Load Behaviour'." +msgstr "" + msgid "Only one G-code file can be opened at the same time." msgstr "Apenas um arquivo de código G pode ser aberto de cada vez." @@ -6489,27 +6384,25 @@ msgid "The provided file name is not valid." msgstr "O nome de arquivo fornecido não é válido." msgid "The following characters are not allowed by a FAT file system:" -msgstr "" -"Os seguintes caracteres não são permitidos por um sistema de arquivos FAT:" +msgstr "Os seguintes caracteres não são permitidos por um sistema de arquivos FAT:" msgid "Save Sliced file as:" msgstr "Salvar arquivo fatiado como:" #, c-format, boost-format msgid "" -"The file %s has been sent to the printer's storage space and can be viewed " -"on the printer." +"The file %s has been sent to the printer's storage space and can be viewed on the " +"printer." msgstr "" -"O arquivo %s foi enviado para o espaço de armazenamento da impressora e pode " -"ser visualizado na impressora." +"O arquivo %s foi enviado para o espaço de armazenamento da impressora e pode ser " +"visualizado na impressora." msgid "" -"Unable to perform boolean operation on model meshes. Only positive parts " -"will be kept. You may fix the meshes and try again." +"Unable to perform boolean operation on model meshes. Only positive parts will be " +"kept. You may fix the meshes and try again." msgstr "" -"Não é possível executar a operação booleana em malhas de modelo. Somente " -"partes positivas serão mantidas. Você pode consertar as malhas e tentar " -"novamente." +"Não é possível executar a operação booleana em malhas de modelo. Somente partes " +"positivas serão mantidas. Você pode consertar as malhas e tentar novamente." #, boost-format msgid "Reason: part \"%1%\" is empty." @@ -6528,25 +6421,24 @@ msgid "Reason: \"%1%\" and another part have no intersection." msgstr "Motivo: \"%1%\" e outra parte não tem intersecção." msgid "" -"Unable to perform boolean operation on model meshes. Only positive parts " -"will be exported." +"Unable to perform boolean operation on model meshes. Only positive parts will be " +"exported." msgstr "" msgid "" -"Are you sure you want to store original SVGs with their local paths into the " -"3MF file?\n" +"Are you sure you want to store original SVGs with their local paths into the 3MF " +"file?\n" "If you hit 'NO', all SVGs in the project will not be editable any more." msgstr "" -"Você tem certeza de que deseja armazenar os SVGs originais com seus caminhos " -"locais no arquivo 3MF?\n" +"Você tem certeza de que deseja armazenar os SVGs originais com seus caminhos locais " +"no arquivo 3MF?\n" "Se pressionar 'NÃO', todos os SVGs no projeto não serão mais editáveis." msgid "Private protection" msgstr "Proteção privada" msgid "Is the printer ready? Is the print sheet in place, empty and clean?" -msgstr "" -"A impressora está pronta? O folha de impressão está no lugar, vazia e limpa?" +msgstr "A impressora está pronta? O folha de impressão está no lugar, vazia e limpa?" msgid "Upload and Print" msgstr "Enviar e Imprimir" @@ -6566,8 +6458,7 @@ msgstr "Enviar para a impressora" msgid "Custom supports and color painting were removed before repairing." msgstr "" -"Os suportes personalizados e a pintura de cores foram removidos antes do " -"reparo." +"Os suportes personalizados e a pintura de cores foram removidos antes do reparo." msgid "Optimize Rotation" msgstr "Otimizar Rotação" @@ -6618,21 +6509,20 @@ msgid "Tips:" msgstr "Dicas:" msgid "" -"\"Fix Model\" feature is currently only on Windows. Please repair the model " -"on Orca Slicer(windows) or CAD softwares." +"\"Fix Model\" feature is currently only on Windows. Please repair the model on Orca " +"Slicer(windows) or CAD softwares." msgstr "" -"A função \"Corrigir Modelo\" está atualmente disponível apenas no Windows. " -"Por favor, repare o modelo no Orca Slicer (Windows) ou softwares CAD." +"A função \"Corrigir Modelo\" está atualmente disponível apenas no Windows. Por " +"favor, repare o modelo no Orca Slicer (Windows) ou softwares CAD." #, c-format, boost-format msgid "" -"Plate% d: %s is not suggested to be used to print filament %s(%s). If you " -"still want to do this printing, please set this filament's bed temperature " -"to non zero." +"Plate% d: %s is not suggested to be used to print filament %s(%s). If you still want " +"to do this printing, please set this filament's bed temperature to non zero." msgstr "" -"Mesa %d: %s não é recomendada para ser usada para imprimir filamento %s(%s). " -"Se você ainda quiser fazer esta impressão, por favor, defina a temperatura " -"de mesa deste filamento para zero" +"Mesa %d: %s não é recomendada para ser usada para imprimir filamento %s(%s). Se você " +"ainda quiser fazer esta impressão, por favor defina a temperatura de mesa deste " +"filamento para diferente de zero." msgid "Switching the language requires application restart.\n" msgstr "Mudar o idioma requer reiniciar o aplicativo.\n" @@ -6644,8 +6534,7 @@ msgid "Language selection" msgstr "Seleção de Idioma" msgid "Switching application language while some presets are modified." -msgstr "" -"A mudança do idioma do aplicativo enquanto alguns presets estão modificados." +msgstr "A mudança do idioma do aplicativo enquanto alguns presets estão modificados." msgid "Changing application language" msgstr "Alterando o idioma do aplicativo" @@ -6666,16 +6555,16 @@ msgid "Choose Download Directory" msgstr "Escolha o Diretório de Download" msgid "Associate" -msgstr "" +msgstr "Associar" msgid "with OrcaSlicer so that Orca can open models from" msgstr "" msgid "Current Association: " -msgstr "" +msgstr "Associação Atual:" msgid "Current Instance" -msgstr "" +msgstr "Instância Atual" msgid "Current Instance Path: " msgstr "" @@ -6705,12 +6594,12 @@ msgid "Stealth Mode" msgstr "Modo Oculto" msgid "" -"This stops the transmission of data to Bambu's cloud services. Users who " -"don't use BBL machines or use LAN mode only can safely turn on this function." +"This stops the transmission of data to Bambu's cloud services. Users who don't use " +"BBL machines or use LAN mode only can safely turn on this function." msgstr "" -"Isso interrompe a transmissão de dados para os serviços de nuvem de Bambu. " -"Os usuários que não usam máquinas BBL ou usar modo LAN só podem ativar esta " -"função com segurança." +"Isso interrompe a transmissão de dados para os serviços de nuvem de Bambu. Os " +"usuários que não usam máquinas BBL ou usar modo LAN só podem ativar esta função com " +"segurança." msgid "Enable network plugin" msgstr "Ativar plugin de rede" @@ -6731,22 +6620,20 @@ msgid "Allow only one OrcaSlicer instance" msgstr "Permitir apenas uma instância OrcaSlicer" msgid "" -"On OSX there is always only one instance of app running by default. However " -"it is allowed to run multiple instances of same app from the command line. " -"In such case this settings will allow only one instance." +"On OSX there is always only one instance of app running by default. However it is " +"allowed to run multiple instances of same app from the command line. In such case " +"this settings will allow only one instance." msgstr "" "No OSX, sempre há uma instância do aplicativo sendo executado por padrão. No " -"entanto, é permitido executar várias instâncias do mesmo aplicativo a partir " -"da linha de comando. Neste caso, apenas uma instância será permitida." +"entanto, é permitido executar várias instâncias do mesmo aplicativo a partir da " +"linha de comando. Neste caso, apenas uma instância será permitida." msgid "" -"If this is enabled, when starting OrcaSlicer and another instance of the " -"same OrcaSlicer is already running, that instance will be reactivated " -"instead." +"If this is enabled, when starting OrcaSlicer and another instance of the same " +"OrcaSlicer is already running, that instance will be reactivated instead." msgstr "" -"Se esta opção estiver habilitada, ao iniciar o OrcaSlicer e outra instância " -"do mesmo OrcaSlicer já estiver em execução, essa instância será reativada em " -"vez disso." +"Se esta opção estiver habilitada, ao iniciar o OrcaSlicer e outra instância do mesmo " +"OrcaSlicer já estiver em execução, essa instância será reativada em vez disso." msgid "Home" msgstr "Início" @@ -6776,11 +6663,11 @@ msgid "Zoom to mouse position" msgstr "Zoom para a posição do mouse" msgid "" -"Zoom in towards the mouse pointer's position in the 3D view, rather than the " -"2D window center." +"Zoom in towards the mouse pointer's position in the 3D view, rather than the 2D " +"window center." msgstr "" -"Dar zoom em direção à posição do ponteiro do mouse na visualização 3D, em " -"vez do centro da janela 2D." +"Dar zoom em direção à posição do ponteiro do mouse na visualização 3D, em vez do " +"centro da janela 2D." msgid "Use free camera" msgstr "Usar câmera livre" @@ -6792,7 +6679,7 @@ msgid "Reverse mouse zoom" msgstr "Inverter zoom do mouse" msgid "If enabled, reverses the direction of zoom with mouse wheel." -msgstr "Se ativo, inverte a direção de zoom com o mouse" +msgstr "Se ativo, inverte a direção de zoom com a roda do mouse." msgid "Show splash screen" msgstr "Mostrar tela de abertura" @@ -6812,8 +6699,7 @@ msgstr "Volumes de Purga: Auto-calcular toda vez que a cor mudar." msgid "If enabled, auto-calculate every time the color changed." msgstr "Se ativado, auto-calcular toda vez que a cor mudar." -msgid "" -"Flushing volumes: Auto-calculate every time when the filament is changed." +msgid "Flushing volumes: Auto-calculate every time when the filament is changed." msgstr "Volumes de Purga: Auto-calcular toda vez que a cor mudar." msgid "If enabled, auto-calculate every time when filament is changed" @@ -6823,22 +6709,21 @@ msgid "Remember printer configuration" msgstr "Lembrar configuração da impressora" msgid "" -"If enabled, Orca will remember and switch filament/process configuration for " -"each printer automatically." +"If enabled, Orca will remember and switch filament/process configuration for each " +"printer automatically." msgstr "" -"Se ativo, Orca vai lembrar e alternar a configuração de filamento/processo " -"para cada impressora automaticamente." +"Se ativo, Orca vai lembrar e alternar a configuração de filamento/processo para cada " +"impressora automaticamente." msgid "Multi-device Management(Take effect after restarting Orca)." -msgstr "" -"Gerenciamento de multi-dispositivos(Entra em vigor após reiniciar o Orca)." +msgstr "Gerenciamento de multi-dispositivos(Entra em vigor após reiniciar o Orca)." msgid "" -"With this option enabled, you can send a task to multiple devices at the " -"same time and manage multiple devices." +"With this option enabled, you can send a task to multiple devices at the same time " +"and manage multiple devices." msgstr "" -"Com esta opção habilitada, você pode enviar uma tarefa para vários " -"dispositivos ao mesmo tempo e gerenciar vários dispositivos." +"Com esta opção habilitada, você pode enviar uma tarefa para vários dispositivos ao " +"mesmo tempo e gerenciar vários dispositivos." msgid "Auto arrange plate after cloning" msgstr "" @@ -6850,8 +6735,7 @@ msgid "Network" msgstr "Rede" msgid "Auto sync user presets(Printer/Filament/Process)" -msgstr "" -"Sincronização automática de presets do usuário(Impressora/Filamento/Processo)" +msgstr "Sincronização automática de presets do usuário(Impressora/Filamento/Processo)" msgid "User Sync" msgstr "Sincronização do Usuário" @@ -6872,23 +6756,19 @@ msgid "Associate .3mf files to OrcaSlicer" msgstr "Associar arquivos .3mf ao OrcaSlicer" msgid "If enabled, sets OrcaSlicer as default application to open .3mf files" -msgstr "" -"Se ativado, define OrcaSlicer como aplicativo padrão para abrir arquivos .3mf" +msgstr "Se ativado, define OrcaSlicer como aplicativo padrão para abrir arquivos .3mf" msgid "Associate .stl files to OrcaSlicer" msgstr "Associar arquivos .stl ao OrcaSlicer" msgid "If enabled, sets OrcaSlicer as default application to open .stl files" -msgstr "" -"Se ativado, define OrcaSlicer como aplicativo padrão para abrir arquivos .stl" +msgstr "Se ativado, define OrcaSlicer como aplicativo padrão para abrir arquivos .stl" msgid "Associate .step/.stp files to OrcaSlicer" msgstr "Associar arquivos .step/.stp ao OrcaSlicer" msgid "If enabled, sets OrcaSlicer as default application to open .step files" -msgstr "" -"Se ativado, define OrcaSlicer como aplicativo padrão para abrir " -"arquivos .step" +msgstr "Se ativado, define OrcaSlicer como aplicativo padrão para abrir arquivos .step" msgid "Associate web links to OrcaSlicer" msgstr "Associar links da web ao OrcaSlicer" @@ -6896,6 +6776,24 @@ msgstr "Associar links da web ao OrcaSlicer" msgid "Associate URLs to OrcaSlicer" msgstr "Associar URLs ao OrcaSlicer" +msgid "Load All" +msgstr "Carregar Tudo" + +msgid "Ask When Relevant" +msgstr "Perguntar Quando Relevante" + +msgid "Always Ask" +msgstr "Perguntar Sempre" + +msgid "Load Geometry Only" +msgstr "Carregar Apenas Geometria" + +msgid "Load Behaviour" +msgstr "Carregar Comportamento" + +msgid "Should printer/filament/process settings be loaded when opening a .3mf?" +msgstr "" + msgid "Maximum recent projects" msgstr "Máximo de projetos recentes" @@ -6911,11 +6809,8 @@ msgstr "Sem avisos ao carregar 3MF com códigos G modificados" msgid "Auto-Backup" msgstr "Backup Automático" -msgid "" -"Backup your project periodically for restoring from the occasional crash." -msgstr "" -"Faça backup do seu projeto periodicamente para restaurar de falhas " -"ocasionais." +msgid "Backup your project periodically for restoring from the occasional crash." +msgstr "Faça backup do seu projeto periodicamente para restaurar de falhas ocasionais." msgid "every" msgstr "cada" @@ -7134,8 +7029,7 @@ msgid "Jump to model publish web page" msgstr "Ir para a página web de publicação de modelos" msgid "Note: The preparation may takes several minutes. Please be patient." -msgstr "" -"Nota: A preparação pode levar vários minutos. Por favor, seja paciente." +msgstr "Nota: A preparação pode levar vários minutos. Por favor, seja paciente." msgid "Publish" msgstr "Publicar" @@ -7286,89 +7180,84 @@ msgstr "Tempo limite de sincronização das informações do dispositivo" msgid "Cannot send the print job when the printer is updating firmware" msgstr "" -"Não é possível enviar o trabalho de impressão quando a impressora está " -"atualizando o firmware" +"Não é possível enviar o trabalho de impressão quando a impressora está atualizando o " +"firmware" -msgid "" -"The printer is executing instructions. Please restart printing after it ends" +msgid "The printer is executing instructions. Please restart printing after it ends" msgstr "" -"A impressora está executando instruções. Por favor, reinicie a impressão " -"após terminar" +"A impressora está executando instruções. Por favor, reinicie a impressão após " +"terminar" msgid "The printer is busy on other print job" msgstr "A impressora está ocupada com outro trabalho de impressão" #, c-format, boost-format msgid "" -"Filament %s exceeds the number of AMS slots. Please update the printer " -"firmware to support AMS slot assignment." +"Filament %s exceeds the number of AMS slots. Please update the printer firmware to " +"support AMS slot assignment." msgstr "" -"O filamento %s excede o número de slots AMS. Por favor, atualize o firmware " -"da impressora para suportar a atribuição de slots AMS." +"O filamento %s excede o número de slots AMS. Por favor, atualize o firmware da " +"impressora para suportar a atribuição de slots AMS." msgid "" -"Filament exceeds the number of AMS slots. Please update the printer firmware " -"to support AMS slot assignment." +"Filament exceeds the number of AMS slots. Please update the printer firmware to " +"support AMS slot assignment." msgstr "" "O filamento excede o número de slots AMS. Por favor, atualize o firmware da " "impressora para suportar a atribuição de slots AMS." msgid "" -"Filaments to AMS slots mappings have been established. You can click a " -"filament above to change its mapping AMS slot" +"Filaments to AMS slots mappings have been established. You can click a filament " +"above to change its mapping AMS slot" msgstr "" -"Foram estabelecidos mapeamentos de filamentos para slots AMS. Você pode " -"clicar em um filamento acima para mudar seu slot AMS mapeado" +"Foram estabelecidos mapeamentos de filamentos para slots AMS. Você pode clicar em um " +"filamento acima para mudar seu slot AMS mapeado" msgid "" -"Please click each filament above to specify its mapping AMS slot before " -"sending the print job" +"Please click each filament above to specify its mapping AMS slot before sending the " +"print job" msgstr "" -"Por favor, clique em cada filamento acima para especificar seu slot AMS " -"mapeado antes de enviar o trabalho de impressão" +"Por favor, clique em cada filamento acima para especificar seu slot AMS mapeado " +"antes de enviar o trabalho de impressão" #, c-format, boost-format msgid "" -"Filament %s does not match the filament in AMS slot %s. Please update the " -"printer firmware to support AMS slot assignment." -msgstr "" -"O filamento %s não corresponde ao filamento no slot AMS %s. Por favor, " -"atualize o firmware da impressora para suportar a atribuição de slots AMS." - -msgid "" -"Filament does not match the filament in AMS slot. Please update the printer " +"Filament %s does not match the filament in AMS slot %s. Please update the printer " "firmware to support AMS slot assignment." msgstr "" -"O filamento não corresponde ao filamento no slot AMS. Por favor, atualize o " +"O filamento %s não corresponde ao filamento no slot AMS %s. Por favor, atualize o " "firmware da impressora para suportar a atribuição de slots AMS." msgid "" -"The printer firmware only supports sequential mapping of filament => AMS " -"slot." +"Filament does not match the filament in AMS slot. Please update the printer firmware " +"to support AMS slot assignment." msgstr "" -"O firmware da impressora só suporta mapeamento sequencial de filamento => " -"slot AMS." +"O filamento não corresponde ao filamento no slot AMS. Por favor, atualize o firmware " +"da impressora para suportar a atribuição de slots AMS." + +msgid "The printer firmware only supports sequential mapping of filament => AMS slot." +msgstr "" +"O firmware da impressora só suporta mapeamento sequencial de filamento => slot AMS." msgid "An SD card needs to be inserted before printing." msgstr "Um cartão SD precisa ser inserido antes de imprimir." #, c-format, boost-format msgid "" -"The selected printer (%s) is incompatible with the chosen printer profile in " -"the slicer (%s)." +"The selected printer (%s) is incompatible with the chosen printer profile in the " +"slicer (%s)." msgstr "" -"A impressora selecionada (%s) é incompatível com o perfil escolhido de " -"impressora no fatiador (%s)." +"A impressora selecionada (%s) é incompatível com o perfil escolhido de impressora no " +"fatiador (%s)." msgid "An SD card needs to be inserted to record timelapse." msgstr "Um cartão SD precisa ser inserido para gravar o timelapse." msgid "" -"Cannot send the print job to a printer whose firmware is required to get " -"updated." +"Cannot send the print job to a printer whose firmware is required to get updated." msgstr "" -"Não é possível enviar o trabalho de impressão para uma impressora cujo " -"firmware precisa ser atualizado." +"Não é possível enviar o trabalho de impressão para uma impressora cujo firmware " +"precisa ser atualizado." msgid "Cannot send the print job for empty plate" msgstr "Não é possível enviar o trabalho de impressão para uma mesa vazia" @@ -7377,17 +7266,16 @@ msgid "This printer does not support printing all plates" msgstr "Esta impressora não suporta a impressão em todas as mesas" msgid "" -"When enable spiral vase mode, machines with I3 structure will not generate " -"timelapse videos." +"When enable spiral vase mode, machines with I3 structure will not generate timelapse " +"videos." msgstr "" -"Quando o modo vaso espiral está ativado, máquinas com estrutura I3 não irão " -"gerar vídeos timelapse." +"Quando o modo vaso espiral está ativado, máquinas com estrutura I3 não irão gerar " +"vídeos timelapse." -msgid "" -"Timelapse is not supported because Print sequence is set to \"By object\"." +msgid "Timelapse is not supported because Print sequence is set to \"By object\"." msgstr "" -"Timelapse não é suportado porque a sequência de impressão está configurada " -"para \"Por objeto\"." +"Timelapse não é suportado porque a sequência de impressão está configurada para " +"\"Por objeto\"." msgid "Errors" msgstr "Erros" @@ -7397,21 +7285,20 @@ msgstr "Por favor, verifique o seguinte:" msgid "" "The printer type selected when generating G-Code is not consistent with the " -"currently selected printer. It is recommended that you use the same printer " -"type for slicing." +"currently selected printer. It is recommended that you use the same printer type for " +"slicing." msgstr "" -"O tipo de impressora selecionado ao gerar o G-Code não está consistente com " -"a impressora atualmente selecionada. É recomendado que você use o mesmo tipo " -"de impressora para fatiar." +"O tipo de impressora selecionado ao gerar o G-Code não está consistente com a " +"impressora atualmente selecionada. É recomendado que você use o mesmo tipo de " +"impressora para fatiar." msgid "" -"There are some unknown filaments in the AMS mappings. Please check whether " -"they are the required filaments. If they are okay, press \"Confirm\" to " -"start printing." +"There are some unknown filaments in the AMS mappings. Please check whether they are " +"the required filaments. If they are okay, press \"Confirm\" to start printing." msgstr "" -"Há alguns filamentos desconhecidos nos mapeamentos AMS. Por favor, verifique " -"se eles são os filamentos necessários. Se estiverem corretos, pressione " -"\"Confirmar\" para iniciar a impressão." +"Há alguns filamentos desconhecidos nos mapeamentos AMS. Por favor, verifique se eles " +"são os filamentos necessários. Se estiverem corretos, pressione \"Confirmar\" para " +"iniciar a impressão." #, c-format, boost-format msgid "nozzle in preset: %s %s" @@ -7422,45 +7309,37 @@ msgid "nozzle memorized: %.2f %s" msgstr "bico memorizado: %.2f %s" msgid "" -"Your nozzle diameter in sliced file is not consistent with memorized nozzle. " -"If you changed your nozzle lately, please go to Device > Printer Parts to " -"change settings." +"Your nozzle diameter in sliced file is not consistent with memorized nozzle. If you " +"changed your nozzle lately, please go to Device > Printer Parts to change settings." msgstr "" -"Seu diâmetro de bico no arquivo fatiado não é consistente com o bico " -"memorizado. Se você mudou seu bico recentemente, vá para Dispositivo > " -"Partes da impressora para alterar as configurações." +"Seu diâmetro de bico no arquivo fatiado não é consistente com o bico memorizado. Se " +"você mudou seu bico recentemente, vá para Dispositivo > Partes da impressora para " +"alterar as configurações." #, c-format, boost-format -msgid "" -"Printing high temperature material(%s material) with %s may cause nozzle " -"damage" +msgid "Printing high temperature material(%s material) with %s may cause nozzle damage" msgstr "" -"Imprimir material de temperatura alta (material %s) com %s poderá causar " -"danos ao bico" +"Imprimir material de temperatura alta (material %s) com %s poderá causar danos ao " +"bico" msgid "Please fix the error above, otherwise printing cannot continue." msgstr "" -"Por favor, corrija o erro acima, caso contrário a impressão não poderá " -"continuar." +"Por favor, corrija o erro acima, caso contrário a impressão não poderá continuar." + +msgid "Please click the confirm button if you still want to proceed with printing." +msgstr "" +"Por favor, clique no botão de confirmação se ainda deseja prosseguir com a impressão." + +msgid "Connecting to the printer. Unable to cancel during the connection process." +msgstr "" +"Conectando à impressora. Não é possível cancelar durante o processo de conexão." msgid "" -"Please click the confirm button if you still want to proceed with printing." +"Caution to use! Flow calibration on Textured PEI Plate may fail due to the scattered " +"surface." msgstr "" -"Por favor, clique no botão de confirmação se ainda deseja prosseguir com a " -"impressão." - -msgid "" -"Connecting to the printer. Unable to cancel during the connection process." -msgstr "" -"Conectando à impressora. Não é possível cancelar durante o processo de " -"conexão." - -msgid "" -"Caution to use! Flow calibration on Textured PEI Plate may fail due to the " -"scattered surface." -msgstr "" -"Cuidado ao usar! A calibração de fluxo no PEI Texturizado pode falhar devido " -"à superfície irregular." +"Cuidado ao usar! A calibração de fluxo no PEI Texturizado pode falhar devido à " +"superfície irregular." msgid "Automatic flow calibration using Micro Lidar" msgstr "Calibração automática de fluxo usando Micro Lidar" @@ -7471,23 +7350,23 @@ msgstr "Modificando o nome do dispositivo" msgid "Bind with Pin Code" msgstr "Vincular com Código PIN" +msgid "Bind with Access Code" +msgstr "" + msgid "Send to Printer SD card" msgstr "Enviar para o cartão SD da impressora" msgid "Cannot send the print task when the upgrade is in progress" msgstr "" -"Não é possível enviar a tarefa de impressão quando a atualização está em " -"progresso" +"Não é possível enviar a tarefa de impressão quando a atualização está em progresso" msgid "The selected printer is incompatible with the chosen printer presets." msgstr "" -"A impressora selecionada é incompatível com os perfis de impressora " -"escolhidos." +"A impressora selecionada é incompatível com os perfis de impressora escolhidos." msgid "An SD card needs to be inserted before send to printer SD card." msgstr "" -"Um cartão SD precisa ser inserido antes de enviar para o cartão SD da " -"impressora." +"Um cartão SD precisa ser inserido antes de enviar para o cartão SD da impressora." msgid "The printer is required to be in the same LAN as Orca Slicer." msgstr "A impressora deve estar na mesma LAN do Orca Slicer." @@ -7566,18 +7445,17 @@ msgid "Terms and Conditions" msgstr "Termos e Condições" msgid "" -"Thank you for purchasing a Bambu Lab device.Before using your Bambu Lab " -"device, please read the terms and conditions.By clicking to agree to use " -"your Bambu Lab device, you agree to abide by the Privacy Policy and Terms of " -"Use(collectively, the \"Terms\"). If you do not comply with or agree to the " -"Bambu Lab Privacy Policy, please do not use Bambu Lab equipment and services." +"Thank you for purchasing a Bambu Lab device.Before using your Bambu Lab device, " +"please read the terms and conditions.By clicking to agree to use your Bambu Lab " +"device, you agree to abide by the Privacy Policy and Terms of Use(collectively, the " +"\"Terms\"). If you do not comply with or agree to the Bambu Lab Privacy Policy, " +"please do not use Bambu Lab equipment and services." msgstr "" -"Obrigado por adquirir um dispositivo Bambu Lab. Antes de usar seu " -"dispositivo Bambu Lab, leia os termos e condições. Ao clicar para concordar " -"em usar seu dispositivo Bambu Lab, você concorda em cumprir a Política de " -"Privacidade e os Termos de Uso (coletivamente, os \"Termos\"). Se você não " -"concordar ou não cumprir com a Política de Privacidade da Bambu Lab, não use " -"os equipamentos e serviços da Bambu Lab." +"Obrigado por adquirir um dispositivo Bambu Lab. Antes de usar seu dispositivo Bambu " +"Lab, leia os termos e condições. Ao clicar para concordar em usar seu dispositivo " +"Bambu Lab, você concorda em cumprir a Política de Privacidade e os Termos de Uso " +"(coletivamente, os \"Termos\"). Se você não concordar ou não cumprir com a Política " +"de Privacidade da Bambu Lab, não use os equipamentos e serviços da Bambu Lab." msgid "and" msgstr "e" @@ -7593,31 +7471,28 @@ msgstr "Declaração sobre o Programa de Melhoria da Experiência do Usuário" #, c-format, boost-format msgid "" -"In the 3D Printing community, we learn from each other's successes and " -"failures to adjust our own slicing parameters and settings. %s follows the " -"same principle and uses machine learning to improve its performance from the " -"successes and failures of the vast number of prints by our users. We are " -"training %s to be smarter by feeding them the real-world data. If you are " -"willing, this service will access information from your error logs and usage " -"logs, which may include information described in Privacy Policy. We will " -"not collect any Personal Data by which an individual can be identified " -"directly or indirectly, including without limitation names, addresses, " -"payment information, or phone numbers. By enabling this service, you agree " -"to these terms and the statement about Privacy Policy." +"In the 3D Printing community, we learn from each other's successes and failures to " +"adjust our own slicing parameters and settings. %s follows the same principle and " +"uses machine learning to improve its performance from the successes and failures of " +"the vast number of prints by our users. We are training %s to be smarter by feeding " +"them the real-world data. If you are willing, this service will access information " +"from your error logs and usage logs, which may include information described in " +"Privacy Policy. We will not collect any Personal Data by which an individual can be " +"identified directly or indirectly, including without limitation names, addresses, " +"payment information, or phone numbers. By enabling this service, you agree to these " +"terms and the statement about Privacy Policy." msgstr "" -"Na comunidade de Impressão 3D, aprendemos com os sucessos e falhas uns dos " -"outros para ajustar nossos próprios parâmetros de fatiamento e " -"configurações. %s segue o mesmo princípio e utiliza aprendizado de máquina " -"para melhorar seu desempenho a partir dos sucessos e falhas do grande número " -"de impressões feitas por nossos usuários. Estamos treinando %s para ser mais " -"inteligente alimentando-os com dados do mundo real. Se você concordar, este " -"serviço acessará informações de seus registros de erros e registros de uso, " -"que podem incluir informações descritas na Política de Privacidade. Não " -"coletaremos quaisquer Dados Pessoais pelos quais um indivíduo possa ser " -"identificado diretamente ou indiretamente, incluindo, sem limitação, nomes, " -"endereços, informações de pagamento ou números de telefone. Ao ativar este " -"serviço, você concorda com estes termos e com a declaração sobre a Política " -"de Privacidade." +"Na comunidade de Impressão 3D, aprendemos com os sucessos e falhas uns dos outros " +"para ajustar nossos próprios parâmetros de fatiamento e configurações. %s segue o " +"mesmo princípio e utiliza aprendizado de máquina para melhorar seu desempenho a " +"partir dos sucessos e falhas do grande número de impressões feitas por nossos " +"usuários. Estamos treinando %s para ser mais inteligente alimentando-os com dados do " +"mundo real. Se você concordar, este serviço acessará informações de seus registros " +"de erros e registros de uso, que podem incluir informações descritas na Política de " +"Privacidade. Não coletaremos quaisquer Dados Pessoais pelos quais um indivíduo possa " +"ser identificado diretamente ou indiretamente, incluindo, sem limitação, nomes, " +"endereços, informações de pagamento ou números de telefone. Ao ativar este serviço, " +"você concorda com estes termos e com a declaração sobre a Política de Privacidade." msgid "Statement on User Experience Improvement Plan" msgstr "Declaração sobre o Plano de Melhoria da Experiência do Usuário" @@ -7635,8 +7510,7 @@ msgid "Please log in first." msgstr "Por favor, faça login primeiro." msgid "There was a problem connecting to the printer. Please try again." -msgstr "" -"Houve um problema ao conectar-se à impressora. Por favor, tente novamente." +msgstr "Houve um problema ao conectar-se à impressora. Por favor, tente novamente." msgid "Failed to log out." msgstr "Falha ao desconectar." @@ -7653,35 +7527,33 @@ msgid "Search in preset" msgstr "Pesquisar nos presets" msgid "Click to reset all settings to the last saved preset." -msgstr "" -"Clique para redefinir todas as configurações para o último preset salvo." +msgstr "Clique para redefinir todas as configurações para o último preset salvo." msgid "" -"Prime tower is required for smooth timelapse. There may be flaws on the " -"model without prime tower. Are you sure you want to disable prime tower?" +"Prime tower is required for smooth timelapse. There may be flaws on the model " +"without prime tower. Are you sure you want to disable prime tower?" msgstr "" -"A Torre Prime é necessária para um timelapse suave. Pode haver falhas no " -"modelo sem a torre prime. Tem certeza de que deseja desativar a torre prime?" +"A Torre Prime é necessária para um timelapse suave. Pode haver falhas no modelo sem " +"a torre prime. Tem certeza de que deseja desativar a torre prime?" msgid "" -"Prime tower is required for smooth timelapse. There may be flaws on the " -"model without prime tower. Do you want to enable prime tower?" +"Prime tower is required for smooth timelapse. There may be flaws on the model " +"without prime tower. Do you want to enable prime tower?" msgstr "" -"A Torre Prime é necessária para um timelapse suave. Pode haver falhas no " -"modelo sem a torre prime. Deseja ativar a torre prime?" +"A Torre Prime é necessária para um timelapse suave. Pode haver falhas no modelo sem " +"a torre prime. Deseja ativar a torre prime?" msgid "Still print by object?" msgstr "Ainda imprimir por objeto?" msgid "" -"We have added an experimental style \"Tree Slim\" that features smaller " -"support volume but weaker strength.\n" +"We have added an experimental style \"Tree Slim\" that features smaller support " +"volume but weaker strength.\n" "We recommend using it with: 0 interface layers, 0 top distance, 2 walls." msgstr "" -"Adicionamos um estilo experimental \"Tree Slim\" que apresenta um volume de " -"suporte menor, mas uma resistência mais fraca.\n" -"Recomendamos usar com: 0 camadas de interface, 0 distância superior, 2 " -"paredes." +"Adicionamos um estilo experimental \"Tree Slim\" que apresenta um volume de suporte " +"menor, mas uma resistência mais fraca.\n" +"Recomendamos usar com: 0 camadas de interface, 0 distância superior, 2 paredes." msgid "" "Change these settings automatically? \n" @@ -7693,34 +7565,33 @@ msgstr "" "Não - Não alterar essas configurações para mim" msgid "" -"For \"Tree Strong\" and \"Tree Hybrid\" styles, we recommend the following " -"settings: at least 2 interface layers, at least 0.1mm top z distance or " -"using support materials on interface." +"For \"Tree Strong\" and \"Tree Hybrid\" styles, we recommend the following settings: " +"at least 2 interface layers, at least 0.1mm top z distance or using support " +"materials on interface." msgstr "" "Para os estilos \"Tree Strong\" e \"Tree Hybrid\", recomendamos as seguintes " -"configurações: pelo menos 2 camadas de interface, pelo menos 0.1mm de " -"distância superior em z ou uso de materiais de suporte na interface." +"configurações: pelo menos 2 camadas de interface, pelo menos 0.1mm de distância " +"superior em z ou uso de materiais de suporte na interface." msgid "" -"When using support material for the support interface, We recommend the " -"following settings:\n" -"0 top z distance, 0 interface spacing, concentric pattern and disable " -"independent support layer height" +"When using support material for the support interface, We recommend the following " +"settings:\n" +"0 top z distance, 0 interface spacing, concentric pattern and disable independent " +"support layer height" msgstr "" -"Ao usar material de suporte para a interface de suporte, recomendamos as " -"seguintes configurações:\n" -"distância z superior 0, espaçamento de interface 0, padrão concêntrico e " -"desabilitar altura de camada de suporte independente" +"Ao usar material de suporte para a interface de suporte, recomendamos as seguintes " +"configurações:\n" +"distância z superior 0, espaçamento de interface 0, padrão concêntrico e desabilitar " +"altura de camada de suporte independente" msgid "" -"Enabling this option will modify the model's shape. If your print requires " -"precise dimensions or is part of an assembly, it's important to double-check " -"whether this change in geometry impacts the functionality of your print." +"Enabling this option will modify the model's shape. If your print requires precise " +"dimensions or is part of an assembly, it's important to double-check whether this " +"change in geometry impacts the functionality of your print." msgstr "" -"Habilitar esta opção modificará a forma do modelo. Se sua impressão exigir " -"dimensões precisas ou fizer parte de uma montagem, é importante verificar " -"duplamente se essa mudança na geometria afeta a funcionalidade da sua " -"impressão." +"Habilitar esta opção modificará a forma do modelo. Se sua impressão exigir dimensões " +"precisas ou fizer parte de uma montagem, é importante verificar duplamente se essa " +"mudança na geometria afeta a funcionalidade da sua impressão." msgid "Are you sure you want to enable this option?" msgstr "Tem certeza de que deseja habilitar esta opção?" @@ -7735,12 +7606,11 @@ msgstr "" "Ela será definida como altura mínima da camada\n" msgid "" -"Layer height exceeds the limit in Printer Settings -> Extruder -> Layer " -"height limits ,this may cause printing quality issues." +"Layer height exceeds the limit in Printer Settings -> Extruder -> Layer height " +"limits ,this may cause printing quality issues." msgstr "" -"A altura da camada excede o limite em Configurações da Impressora -> " -"Extrusora -> Limites de altura da camada, isso pode causar problemas de " -"qualidade de impressão." +"A altura da camada excede o limite em Configurações da Impressora -> Extrusora -> " +"Limites de altura da camada, isso pode causar problemas de qualidade de impressão." msgid "Adjust to the set range automatically? \n" msgstr "Ajustar automaticamente à faixa definida? \n" @@ -7752,39 +7622,109 @@ msgid "Ignore" msgstr "Ignorar" msgid "" -"Experimental feature: Retracting and cutting off the filament at a greater " -"distance during filament changes to minimize flush.Although it can notably " -"reduce flush, it may also elevate the risk of nozzle clogs or other " -"printing complications." +"Experimental feature: Retracting and cutting off the filament at a greater distance " +"during filament changes to minimize flush.Although it can notably reduce flush, it " +"may also elevate the risk of nozzle clogs or other printing complications." msgstr "" -"Recurso experimental: Retrair e cortar o filamento a uma distância maior " -"durante mudanças de filamento para minimizar a purga. Embora possa reduzir " -"notavelmente a purga, ele também pode elevar o risco de bolhas no bico ou " -"outras complicações de impressão." +"Recurso experimental: Retrair e cortar o filamento a uma distância maior durante " +"mudanças de filamento para minimizar a purga. Embora possa reduzir notavelmente a " +"purga, ele também pode elevar o risco de bolhas no bico ou outras complicações de " +"impressão." msgid "" -"Experimental feature: Retracting and cutting off the filament at a greater " -"distance during filament changes to minimize flush.Although it can notably " -"reduce flush, it may also elevate the risk of nozzle clogs or other printing " -"complications.Please use with the latest printer firmware." +"Experimental feature: Retracting and cutting off the filament at a greater distance " +"during filament changes to minimize flush.Although it can notably reduce flush, it " +"may also elevate the risk of nozzle clogs or other printing complications.Please use " +"with the latest printer firmware." msgstr "" -"Recurso experimental: Retrair e cortar o filamento a uma distância maior " -"durante as trocas de filamento para minimizar a purga. Embora isso possa " -"reduzir consideravelmente a purga, também pode aumentar o risco de " -"obstruções no bico ou outras complicações de impressão. Por favor, use com o " -"firmware mais recente da impressora." +"Recurso experimental: Retrair e cortar o filamento a uma distância maior durante as " +"trocas de filamento para minimizar a purga. Embora isso possa reduzir " +"consideravelmente a purga, também pode aumentar o risco de obstruções no bico ou " +"outras complicações de impressão. Por favor, use com o firmware mais recente da " +"impressora." msgid "" -"When recording timelapse without toolhead, it is recommended to add a " -"\"Timelapse Wipe Tower\" \n" -"by right-click the empty position of build plate and choose \"Add " -"Primitive\"->\"Timelapse Wipe Tower\"." +"When recording timelapse without toolhead, it is recommended to add a \"Timelapse " +"Wipe Tower\" \n" +"by right-click the empty position of build plate and choose \"Add Primitive\"-" +">\"Timelapse Wipe Tower\"." msgstr "" -"Ao gravar um timelapse sem o hotend aparecer, é recomendável adicionar uma " -"\"Torre Prime para Timelapse\" \n" +"Ao gravar um timelapse sem o hotend aparecer, é recomendável adicionar uma \"Torre " +"Prime para Timelapse\" \n" "clique com o botão direito na posição vazia da mesa e escolha \"Adicionar " "Primitivo\"->\"Torre Prime para Timelapse\"." +msgid "" +"A copy of the current system preset will be created, which will be detached from the " +"system preset." +msgstr "" +"Uma cópia do perfil de sistema atual será criada, que será desanexada da perfil de " +"sistema." + +msgid "The current custom preset will be detached from the parent system preset." +msgstr "O perfil customizado atual será desanexado do perfil de sistema pai." + +msgid "Modifications to the current profile will be saved." +msgstr "Modificações ao perfil atual serão salvas." + +msgid "" +"This action is not revertible.\n" +"Do you want to proceed?" +msgstr "" +"Esta ação não é reversível.\n" +"Você quer prosseguir?" + +msgid "Detach preset" +msgstr "Desanexar perfil" + +msgid "This is a default preset." +msgstr "Esse é um perfil padrão." + +msgid "This is a system preset." +msgstr "Esse é um perfil do sistema." + +msgid "Current preset is inherited from the default preset." +msgstr "Perfil atual é herdado do perfil padrão." + +msgid "Current preset is inherited from" +msgstr "Perfil atual é herdado de" + +msgid "It can't be deleted or modified." +msgstr "Não pode ser excluído ou modificado." + +msgid "Any modifications should be saved as a new preset inherited from this one." +msgstr "Qualquer modificação deve ser salva como um novo perfil herdade deste." + +msgid "To do that please specify a new name for the preset." +msgstr "Para fazer isso, por favor especifique um novo nome para o perfil." + +msgid "Additional information:" +msgstr "Informação adicional:" + +msgid "vendor" +msgstr "fornecedor" + +msgid "printer model" +msgstr "modelo de impressora" + +msgid "default print profile" +msgstr "perfil de impressora padrão" + +msgid "default filament profile" +msgstr "perfil de filamento padrão" + +msgid "default SLA material profile" +msgstr "perfil de material SLA padrão" + +msgid "default SLA print profile" +msgstr "perfil de impressora SLA padrão" + +msgid "full profile name" +msgstr "nome completo do perfil" + +msgid "symbolic profile name" +msgstr "nome simbólico do perfil" + msgid "Line width" msgstr "Largura da linha" @@ -7822,14 +7762,13 @@ msgid "Overhang speed" msgstr "Velocidade em overhangs" msgid "" -"This is the speed for various overhang degrees. Overhang degrees are " -"expressed as a percentage of line width. 0 speed means no slowing down for " -"the overhang degree range and wall speed is used" +"This is the speed for various overhang degrees. Overhang degrees are expressed as a " +"percentage of line width. 0 speed means no slowing down for the overhang degree " +"range and wall speed is used" msgstr "" -"Esta é a velocidade para vários graus de avanço. Os graus de avanço são " -"expressos como uma porcentagem da largura da linha. A velocidade 0 significa " -"que não há desaceleração para o intervalo de graus de avanço e a velocidade " -"do perímetro é usada" +"Esta é a velocidade para vários graus de avanço. Os graus de avanço são expressos " +"como uma porcentagem da largura da linha. A velocidade 0 significa que não há " +"desaceleração para o intervalo de graus de avanço e a velocidade do perímetro é usada" msgid "Bridge" msgstr "Ponte" @@ -7882,26 +7821,30 @@ msgstr "Scripts de pós-processamento" msgid "Notes" msgstr "Notas" +msgid "Dependencies" +msgstr "Dependências" + +msgid "Profile dependencies" +msgstr "Dependências de perfil" + msgid "Frequent" msgstr "Frequente" #, c-format, boost-format msgid "" "Following line %s contains reserved keywords.\n" -"Please remove it, or will beat G-code visualization and printing time " -"estimation." +"Please remove it, or will beat G-code visualization and printing time estimation." msgid_plural "" "Following lines %s contain reserved keywords.\n" -"Please remove them, or will beat G-code visualization and printing time " -"estimation." +"Please remove them, or will beat G-code visualization and printing time estimation." msgstr[0] "" "A linha %s seguinte contém palavras-chave reservadas.\n" -"Por favor, remova-a, ou afetará a visualização do código G e a estimativa de " -"tempo de impressão." +"Por favor, remova-a, ou afetará a visualização do código G e a estimativa de tempo " +"de impressão." msgstr[1] "" "As linhas %s seguintes contêm palavras-chave reservadas.\n" -"Por favor, remova-as, ou afetará a visualização do código G e a estimativa " -"de tempo de impressão." +"Por favor, remova-as, ou afetará a visualização do código G e a estimativa de tempo " +"de impressão." msgid "Reserved keywords found" msgstr "Palavras-chave reservadas encontradas" @@ -7919,8 +7862,7 @@ msgid "Recommended nozzle temperature" msgstr "Temperatura recomendada do bico" msgid "Recommended nozzle temperature range of this filament. 0 means no set" -msgstr "" -"Faixa de temperatura recomendada para esta boquilha. 0 significa não definido" +msgstr "Faixa de temperatura recomendada para esta boquilha. 0 significa não definido" msgid "Flow ratio and Pressure Advance" msgstr "" @@ -7941,16 +7883,16 @@ msgid "Cool Plate (SuperTack)" msgstr "" msgid "" -"Bed temperature when cool plate is installed. Value 0 means the filament " -"does not support to print on the Cool Plate SuperTack" +"Bed temperature when cool plate is installed. Value 0 means the filament does not " +"support to print on the Cool Plate SuperTack" msgstr "" msgid "Cool Plate" msgstr "Mesa Fria" msgid "" -"Bed temperature when cool plate is installed. Value 0 means the filament " -"does not support to print on the Cool Plate" +"Bed temperature when cool plate is installed. Value 0 means the filament does not " +"support to print on the Cool Plate" msgstr "" "Temperatura da mesa quando a cool plate (mesa fria) está instalada. Valor 0 " "significa que o filamento não suporta impressão na cool plate" @@ -7959,38 +7901,37 @@ msgid "Textured Cool plate" msgstr "" msgid "" -"Bed temperature when cool plate is installed. Value 0 means the filament " -"does not support to print on the Textured Cool Plate" +"Bed temperature when cool plate is installed. Value 0 means the filament does not " +"support to print on the Textured Cool Plate" msgstr "" msgid "Engineering plate" msgstr "Mesa de engenharia" msgid "" -"Bed temperature when engineering plate is installed. Value 0 means the " -"filament does not support to print on the Engineering Plate" +"Bed temperature when engineering plate is installed. Value 0 means the filament does " +"not support to print on the Engineering Plate" msgstr "" -"Temperatura da mesa quando a mesa de engenharia está instalada. Valor 0 " -"significa que o filamento não suporta impressão na Mesa de Engenharia" +"Temperatura da mesa quando a mesa de engenharia está instalada. Valor 0 significa " +"que o filamento não suporta impressão na Mesa de Engenharia" msgid "Smooth PEI Plate / High Temp Plate" msgstr "Mesa PEI lisa / Mesa de alta temperatura" msgid "" -"Bed temperature when Smooth PEI Plate/High temperature plate is installed. " -"Value 0 means the filament does not support to print on the Smooth PEI Plate/" -"High Temp Plate" +"Bed temperature when Smooth PEI Plate/High temperature plate is installed. Value 0 " +"means the filament does not support to print on the Smooth PEI Plate/High Temp Plate" msgstr "" -"Temperatura da mesa quando a mesa PEI lisa/ de alta temperatura está " -"instalada. O valor 0 significa que o filamento não suporta a impressão na " -"Mesa PEI lisa/Mesa de Alta Temperatura" +"Temperatura da mesa quando a mesa PEI lisa/ de alta temperatura está instalada. O " +"valor 0 significa que o filamento não suporta a impressão na Mesa PEI lisa/Mesa de " +"Alta Temperatura" msgid "Textured PEI Plate" msgstr "Mesa PEI Texturizada" msgid "" -"Bed temperature when Textured PEI Plate is installed. Value 0 means the " -"filament does not support to print on the Textured PEI Plate" +"Bed temperature when Textured PEI Plate is installed. Value 0 means the filament " +"does not support to print on the Textured PEI Plate" msgstr "" "Temperatura da mesa quando a mesa PEI texturizada está instalada. O valor 0 " "significa que o filamento não suporta impressão na mesa PEI texturizada" @@ -8011,26 +7952,26 @@ msgid "Min fan speed threshold" msgstr "Limiar de velocidade mínima do ventilador" msgid "" -"Part cooling fan speed will start to run at min speed when the estimated " -"layer time is no longer than the layer time in setting. When layer time is " -"shorter than threshold, fan speed is interpolated between the minimum and " -"maximum fan speed according to layer printing time" +"Part cooling fan speed will start to run at min speed when the estimated layer time " +"is no longer than the layer time in setting. When layer time is shorter than " +"threshold, fan speed is interpolated between the minimum and maximum fan speed " +"according to layer printing time" msgstr "" "A velocidade do ventilador de resfriamento da peça começará a funcionar na " -"velocidade mínima quando o tempo estimado da camada não for mais longo do " -"que o tempo da camada ajustado. Quando o tempo da camada for menor que o " -"limite, a velocidade do ventilador é interpolada entre a velocidade mínima e " -"máxima de acordo com o tempo de impressão da camada" +"velocidade mínima quando o tempo estimado da camada não for mais longo do que o " +"tempo da camada ajustado. Quando o tempo da camada for menor que o limite, a " +"velocidade do ventilador é interpolada entre a velocidade mínima e máxima de acordo " +"com o tempo de impressão da camada" msgid "Max fan speed threshold" msgstr "Limiar de velocidade máxima do ventilador" msgid "" -"Part cooling fan speed will be max when the estimated layer time is shorter " -"than the setting value" +"Part cooling fan speed will be max when the estimated layer time is shorter than the " +"setting value" msgstr "" -"A velocidade do ventilador de resfriamento da peça será máxima quando o " -"tempo estimado da camada for menor que o valor ajustado" +"A velocidade do ventilador de resfriamento da peça será máxima quando o tempo " +"estimado da camada for menor que o valor ajustado" msgid "Auxiliary part cooling fan" msgstr "Ventilador auxiliar de resfriamento da peça" @@ -8054,15 +7995,13 @@ msgid "Wipe tower parameters" msgstr "Parâmetros da Torre Prime" msgid "Toolchange parameters with single extruder MM printers" -msgstr "" -"Parâmetros de troca de ferramentas com impressoras MM de extrusora única" +msgstr "Parâmetros de troca de ferramentas com impressoras MM de extrusora única" msgid "Ramming settings" msgstr "Configurações de moldeamento" msgid "Toolchange parameters with multi extruder MM printers" -msgstr "" -"Parâmetros de troca de ferramentas com impressoras MM de múltiplas extrusoras" +msgstr "Parâmetros de troca de ferramentas com impressoras MM de múltiplas extrusoras" msgid "Printable space" msgstr "Espaço de impressão" @@ -8127,7 +8066,7 @@ msgid "Motion ability" msgstr "Movimento" msgid "Normal" -msgstr "normal" +msgstr "Normal" msgid "Speed limitation" msgstr "Limitação de velocidade" @@ -8147,8 +8086,8 @@ msgstr "" msgid "" "Single Extruder Multi Material is selected, \n" "and all extruders must have the same diameter.\n" -"Do you want to change the diameter for all extruders to first extruder " -"nozzle diameter value?" +"Do you want to change the diameter for all extruders to first extruder nozzle " +"diameter value?" msgstr "" msgid "Nozzle diameter" @@ -8161,8 +8100,8 @@ msgid "Single extruder multi-material parameters" msgstr "Parâmetros de múltiplos materiais com um único extrusor" msgid "" -"This is a single extruder multi-material printer, diameters of all extruders " -"will be set to the new value. Do you want to proceed?" +"This is a single extruder multi-material printer, diameters of all extruders will be " +"set to the new value. Do you want to proceed?" msgstr "" msgid "Layer height limits" @@ -8179,8 +8118,7 @@ msgid "" "\n" "Shall I disable it in order to enable Firmware Retraction?" msgstr "" -"A opção de Limpeza não está disponível ao usar o modo de Retração de " -"Firmware.\n" +"A opção de Limpeza não está disponível ao usar o modo de Retração de Firmware.\n" "\n" "Deseja desativá-lo para habilitar a Retração de Firmware?" @@ -8192,11 +8130,11 @@ msgstr "Desanexado" #, c-format, boost-format msgid "" -"%d Filament Preset and %d Process Preset is attached to this printer. Those " -"presets would be deleted if the printer is deleted." +"%d Filament Preset and %d Process Preset is attached to this printer. Those presets " +"would be deleted if the printer is deleted." msgstr "" -"%d Preset de Filamento e %d Preset de Processo estão vinculados a esta " -"impressora. Esses presets serão excluídos se a impressora for deletada." +"%d Preset de Filamento e %d Preset de Processo estão vinculados a esta impressora. " +"Esses presets serão excluídos se a impressora for deletada." msgid "Presets inherited by other presets can not be deleted!" msgstr "Os perfis herdados por outros perfis não podem ser excluídos!" @@ -8218,12 +8156,12 @@ msgstr[1] "Os seguintes perfis também serão excluídos." msgid "" "Are you sure to delete the selected preset? \n" -"If the preset corresponds to a filament currently in use on your printer, " -"please reset the filament information for that slot." +"If the preset corresponds to a filament currently in use on your printer, please " +"reset the filament information for that slot." msgstr "" "Tem certeza de que deseja excluir o perfil selecionado? \n" -"Se o perfil corresponde a um filamento atualmente em uso em sua impressora, " -"redefina as informações do filamento para esse slot." +"Se o perfil corresponde a um filamento atualmente em uso em sua impressora, redefina " +"as informações do filamento para esse slot." #, boost-format msgid "Are you sure to %1% the selected preset?" @@ -8239,8 +8177,7 @@ msgid "Click to reset current value and attach to the global value." msgstr "Clique para redefinir o valor atual e anexá-lo ao valor global." msgid "Click to drop current modify and reset to saved value." -msgstr "" -"Clique para descartar a modificação atual e redefinir para o valor salvo." +msgstr "Clique para descartar a modificação atual e redefinir para o valor salvo." msgid "Process Settings" msgstr "Configurações do Processo" @@ -8309,16 +8246,16 @@ msgstr "O perfil \"%1%\" contém as seguintes alterações não salvas:" #, boost-format msgid "" -"Preset \"%1%\" is not compatible with the new printer profile and it " -"contains the following unsaved changes:" +"Preset \"%1%\" is not compatible with the new printer profile and it contains the " +"following unsaved changes:" msgstr "" -"O perfil \"%1%\" não é compatível com o novo perfil da impressora e contém " -"as seguintes alterações não salvas:" +"O perfil \"%1%\" não é compatível com o novo perfil da impressora e contém as " +"seguintes alterações não salvas:" #, boost-format msgid "" -"Preset \"%1%\" is not compatible with the new process profile and it " -"contains the following unsaved changes:" +"Preset \"%1%\" is not compatible with the new process profile and it contains the " +"following unsaved changes:" msgstr "" "O perfil \"%1%\" não é compatível com o novo perfil de processo e contém as " "seguintes alterações não salvas:" @@ -8336,8 +8273,8 @@ msgstr "" msgid "" "\n" -"You can save or discard the preset values you have modified, or choose to " -"transfer the values you have modified to the new preset." +"You can save or discard the preset values you have modified, or choose to transfer " +"the values you have modified to the new preset." msgstr "" "\n" "Você pode salvar ou descartar os valores predefinidos que você modificou, ou " @@ -8348,12 +8285,12 @@ msgstr "Você modificou suas configurações anteriormente." msgid "" "\n" -"You can discard the preset values you have modified, or choose to transfer " -"the modified values to the new project" +"You can discard the preset values you have modified, or choose to transfer the " +"modified values to the new project" msgstr "" "\n" "Você pode descartar os valores predefinidos que você modificou, ou escolher " -"transferir os valores modificados para o novo projeto." +"transferir os valores modificados para o novo projeto" msgid "Extruders count" msgstr "Número de extrusoras" @@ -8370,29 +8307,26 @@ msgstr "Mostrar todos os perfis (incluindo os incompatíveis)" msgid "Select presets to compare" msgstr "Selecione os perfis para comparar" -msgid "" -"You can only transfer to current active profile because it has been modified." -msgstr "" -"Só é possível transferir para o perfil ativo atual porque ele foi modificado." +msgid "You can only transfer to current active profile because it has been modified." +msgstr "Só é possível transferir para o perfil ativo atual porque ele foi modificado." msgid "" "Transfer the selected options from left preset to the right.\n" -"Note: New modified presets will be selected in settings tabs after close " -"this dialog." +"Note: New modified presets will be selected in settings tabs after close this dialog." msgstr "" "Transfira as opções selecionadas do perfil à esquerda para o da direita.\n" -"Nota: Novos perfis modificados serão selecionados nas guias de configurações " -"após fechar este diálogo." +"Nota: Novos perfis modificados serão selecionados nas guias de configurações após " +"fechar este diálogo." msgid "Transfer values from left to right" msgstr "Transferir valores da esquerda para a direita" msgid "" -"If enabled, this dialog can be used for transfer selected values from left " -"to right preset." +"If enabled, this dialog can be used for transfer selected values from left to right " +"preset." msgstr "" -"Se ativo, este diálogo pode ser usado para transferir valores selecionados " -"do perfil à esquerda para o da direita." +"Se ativo, este diálogo pode ser usado para transferir valores selecionados do perfil " +"à esquerda para o da direita." msgid "Add File" msgstr "Adicionar arquivo" @@ -8453,8 +8387,7 @@ msgid "" "%s will update the configuration package, Otherwise it won't be able to start" msgstr "" "O pacote de configuração é incompatível com a aplicação atual.\n" -"%s atualizará o pacote de configuração, caso contrário, não será possível " -"iniciar" +"%s atualizará o pacote de configuração, caso contrário, não será possível iniciar" #, c-format, boost-format msgid "Exit %s" @@ -8483,10 +8416,10 @@ msgid "The color count should be in range [%d, %d]." msgstr "" msgid "Recommended " -msgstr "" +msgstr "Recomendado " msgid "Current filament colors:" -msgstr "" +msgstr "Cores de filamento atuais:" msgid "Quick set:" msgstr "" @@ -8498,7 +8431,7 @@ msgid "Approximate color matching." msgstr "" msgid "Append" -msgstr "" +msgstr "Adicionar" msgid "Add consumable extruder after existing extruders." msgstr "" @@ -8507,10 +8440,10 @@ msgid "Reset mapped extruders." msgstr "" msgid "Cluster colors" -msgstr "" +msgstr "Agrupar cores" msgid "Map Filament" -msgstr "" +msgstr "Mapear Filamento" msgid "" "Note:The color has been selected, you can choose OK \n" @@ -8526,27 +8459,25 @@ msgid "Ramming customization" msgstr "Customização de moldeamento" msgid "" -"Ramming denotes the rapid extrusion just before a tool change in a single-" -"extruder MM printer. Its purpose is to properly shape the end of the " -"unloaded filament so it does not prevent insertion of the new filament and " -"can itself be reinserted later. This phase is important and different " -"materials can require different extrusion speeds to get the good shape. For " -"this reason, the extrusion rates during ramming are adjustable.\n" +"Ramming denotes the rapid extrusion just before a tool change in a single-extruder " +"MM printer. Its purpose is to properly shape the end of the unloaded filament so it " +"does not prevent insertion of the new filament and can itself be reinserted later. " +"This phase is important and different materials can require different extrusion " +"speeds to get the good shape. For this reason, the extrusion rates during ramming " +"are adjustable.\n" "\n" -"This is an expert-level setting, incorrect adjustment will likely lead to " -"jams, extruder wheel grinding into filament etc." +"This is an expert-level setting, incorrect adjustment will likely lead to jams, " +"extruder wheel grinding into filament etc." msgstr "" -"O moldeamento denota a extrusão rápida logo antes de uma troca de " -"ferramentas em uma impressora MM de extrusão única. Seu propósito é dar " -"forma adequadamente à ponta do filamento descarregado para que não impeça a " -"inserção do novo filamento e possa ser reinserido posteriormente. Essa fase " -"é importante e diferentes materiais podem exigir velocidades de extrusão " -"diferentes para obter uma boa forma. Por esse motivo, as taxas de extrusão " -"durante o moldeamento são ajustáveis.\n" +"O moldeamento denota a extrusão rápida logo antes de uma troca de ferramentas em uma " +"impressora MM de extrusão única. Seu propósito é dar forma adequadamente à ponta do " +"filamento descarregado para que não impeça a inserção do novo filamento e possa ser " +"reinserido posteriormente. Essa fase é importante e diferentes materiais podem " +"exigir velocidades de extrusão diferentes para obter uma boa forma. Por esse motivo, " +"as taxas de extrusão durante o moldeamento são ajustáveis.\n" "\n" -"Esta é uma configuração de nível especialista, ajustes incorretos " -"provavelmente resultarão em travamentos, moagem da roda de extrusão no " -"filamento, etc." +"Esta é uma configuração de nível especialista, ajustes incorretos provavelmente " +"resultarão em travamentos, moagem da roda de extrusão no filamento, etc." msgid "Total ramming time" msgstr "Tempo total de moldeamento" @@ -8576,9 +8507,8 @@ msgid "" "Orca would re-calculate your flushing volumes every time the filaments color " "changed. You could disable the auto-calculate in Orca Slicer > Preferences" msgstr "" -"O Orca recalculará seus volumes de purga toda vez que a cor dos filamentos " -"for alterada. Você pode desativar o cálculo automático em Orca Slicer > " -"Preferências" +"O Orca recalculará seus volumes de purga toda vez que a cor dos filamentos for " +"alterada. Você pode desativar o cálculo automático em Orca Slicer > Preferências" msgid "Flushing volume (mm³) for each filament pair." msgstr "Volume de purga (mm³) para cada par de filamentos." @@ -8610,29 +8540,29 @@ msgid "To" msgstr "Para" msgid "" -"Windows Media Player is required for this task! Do you want to enable " -"'Windows Media Player' for your operation system?" +"Windows Media Player is required for this task! Do you want to enable 'Windows Media " +"Player' for your operation system?" msgstr "" msgid "" -"BambuSource has not correctly been registered for media playing! Press Yes " -"to re-register it. You will be promoted twice" +"BambuSource has not correctly been registered for media playing! Press Yes to re-" +"register it. You will be promoted twice" msgstr "" msgid "" -"Missing BambuSource component registered for media playing! Please re-" -"install BambuStudio or seek after-sales help." +"Missing BambuSource component registered for media playing! Please re-install " +"BambuStudio or seek after-sales help." msgstr "" msgid "" -"Using a BambuSource from a different install, video play may not work " -"correctly! Press Yes to fix it." +"Using a BambuSource from a different install, video play may not work correctly! " +"Press Yes to fix it." msgstr "" msgid "" -"Your system is missing H.264 codecs for GStreamer, which are required to " -"play video. (Try installing the gstreamer1.0-plugins-bad or gstreamer1.0-" -"libav packages, then restart Orca Slicer?)" +"Your system is missing H.264 codecs for GStreamer, which are required to play " +"video. (Try installing the gstreamer1.0-plugins-bad or gstreamer1.0-libav packages, " +"then restart Orca Slicer?)" msgstr "" msgid "Bambu Network plug-in not detected." @@ -8699,13 +8629,13 @@ msgid "Shift+R" msgstr "Shift+R" msgid "" -"Auto orientates selected objects or all objects.If there are selected " -"objects, it just orientates the selected ones.Otherwise, it will orientates " -"all objects in the current disk." +"Auto orientates selected objects or all objects.If there are selected objects, it " +"just orientates the selected ones.Otherwise, it will orientates all objects in the " +"current disk." msgstr "" -"Orienta automaticamente os objetos selecionados ou todos os objetos. Se " -"houver objetos selecionados, ele apenas orientará os selecionados. Caso " -"contrário, orientará todos os objetos no disco atual." +"Orienta automaticamente os objetos selecionados ou todos os objetos. Se houver " +"objetos selecionados, ele apenas orientará os selecionados. Caso contrário, " +"orientará todos os objetos no disco atual." msgid "Shift+Tab" msgstr "Shift+Tab" @@ -8921,11 +8851,10 @@ msgstr "informações de atualização da versão %s:" msgid "Network plug-in update" msgstr "Atualização do plug-in de rede" -msgid "" -"Click OK to update the Network plug-in when Orca Slicer launches next time." +msgid "Click OK to update the Network plug-in when Orca Slicer launches next time." msgstr "" -"Clique em OK para atualizar o plug-in de rede quando o Orca Slicer for " -"iniciado novamente." +"Clique em OK para atualizar o plug-in de rede quando o Orca Slicer for iniciado " +"novamente." #, c-format, boost-format msgid "A new Network plug-in(%s) available, Do you want to install it?" @@ -8979,21 +8908,21 @@ msgstr "Exibir vista ao vivo" msgid "Confirm and Update Nozzle" msgstr "Confirmar e Atualizar Bico" -msgid "LAN Connection Failed (Sending print file)" -msgstr "Falha na conexão LAN (enviando arquivo de impressão)" +msgid "Connect the printer using IP and access code" +msgstr "" + +msgid "Step 1. Please confirm Orca Slicer and your printer are in the same LAN." +msgstr "" msgid "" -"Step 1, please confirm Orca Slicer and your printer are in the same LAN." +"Step 2. If the IP and Access Code below are different from the actual values on your " +"printer, please correct them." msgstr "" -"Passo 1, por favor, confirme se o Orca Slicer e sua impressora estão na " -"mesma LAN." msgid "" -"Step 2, if the IP and Access Code below are different from the actual values " -"on your printer, please correct them." +"Step 3. Please obtain the device SN from the printer side; it is usually found in " +"the device information on the printer screen." msgstr "" -"Passo 2, se o IP e o Código de Acesso abaixo forem diferentes dos valores " -"reais na sua impressora, corrija-os." msgid "IP" msgstr "PI" @@ -9001,28 +8930,48 @@ msgstr "PI" msgid "Access Code" msgstr "Código de Acesso" +msgid "Printer model" +msgstr "Modelo de impressora" + +msgid "Printer name" +msgstr "Nome da impressora" + msgid "Where to find your printer's IP and Access Code?" msgstr "Onde encontrar o IP e o Código de Acesso da sua impressora?" -msgid "Step 3: Ping the IP address to check for packet loss and latency." +msgid "Connect" +msgstr "Conectar" + +msgid "Manual Setup" msgstr "" -"Passo 3: Pingue o endereço IP para verificar a perda de pacotes e a latência." -msgid "Test" -msgstr "Testar" +msgid "connecting..." +msgstr "conectando..." -msgid "IP and Access Code Verified! You may close the window" -msgstr "IP e Código de Acesso Verificados! Você pode fechar a janela" +msgid "Failed to connect to printer." +msgstr "" + +msgid "Failed to publish login request." +msgstr "" + +msgid "The printer has already been bound." +msgstr "" + +msgid "The printer mode is incorrect, please switch to LAN Only." +msgstr "" + +msgid "Connecting to printer... The dialog will close later" +msgstr "" msgid "Connection failed, please double check IP and Access Code" -msgstr "Falha na conexão, por favor, verifique o IP e o Código de Acesso" +msgstr "Falha na conexão, por favor verifique o IP e o Código de Acesso" msgid "" "Connection failed! If your IP and Access Code is correct, \n" "please move to step 3 for troubleshooting network issues" msgstr "" "Conexão falhou! Se o seu IP e Código de Acesso estão corretos, \n" -"por favor, passe para o passo 3 para resolver problemas de rede" +"por favor passe para o passo 3 para resolver problemas de rede" msgid "Model:" msgstr "Modelo:" @@ -9052,29 +9001,28 @@ msgid "Updating successful" msgstr "Atualização bem-sucedida" msgid "" -"Are you sure you want to update? This will take about 10 minutes. Do not " -"turn off the power while the printer is updating." +"Are you sure you want to update? This will take about 10 minutes. Do not turn off " +"the power while the printer is updating." msgstr "" -"Tem certeza de que deseja atualizar? Isso levará cerca de 10 minutos. Não " -"desligue a energia enquanto a impressora estiver atualizando." +"Tem certeza de que deseja atualizar? Isso levará cerca de 10 minutos. Não desligue a " +"energia enquanto a impressora estiver atualizando." msgid "" -"An important update was detected and needs to be run before printing can " -"continue. Do you want to update now? You can also update later from 'Upgrade " -"firmware'." +"An important update was detected and needs to be run before printing can continue. " +"Do you want to update now? You can also update later from 'Upgrade firmware'." msgstr "" "Uma atualização importante foi detectada e precisa ser executada antes que a " -"impressão possa continuar. Deseja atualizar agora? Você também pode " -"atualizar posteriormente em 'Atualizar firmware'." +"impressão possa continuar. Deseja atualizar agora? Você também pode atualizar " +"posteriormente em 'Atualizar firmware'." msgid "" "The firmware version is abnormal. Repairing and updating are required before " -"printing. Do you want to update now? You can also update later on printer or " -"update next time starting Orca." +"printing. Do you want to update now? You can also update later on printer or update " +"next time starting Orca." msgstr "" "A versão do firmware está anormal. Reparar e atualizar é necessário antes de " -"imprimir. Você deseja atualizar agora? Você também pode atualizar mais tarde " -"na impressora ou atualizar da próxima vez que iniciar o Orca." +"imprimir. Você deseja atualizar agora? Você também pode atualizar mais tarde na " +"impressora ou atualizar da próxima vez que iniciar o Orca." msgid "Extension Board" msgstr "Mesa de Extensão" @@ -9146,34 +9094,31 @@ msgid "Open G-code file:" msgstr "Abrir arquivo G-code:" msgid "" -"One object has empty initial layer and can't be printed. Please Cut the " -"bottom or enable supports." +"One object has empty initial layer and can't be printed. Please Cut the bottom or " +"enable supports." msgstr "" -"Um objeto tem uma primeira camada vazia e não pode ser impresso. Por favor, " -"corte a base ou habilite os suportes." +"Um objeto tem uma primeira camada vazia e não pode ser impresso. Por favor, corte a " +"base ou habilite os suportes." #, boost-format msgid "Object can't be printed for empty layer between %1% and %2%." -msgstr "" -"O objeto não pode ser impresso devido a uma camada vazia entre %1% e %2%." +msgstr "O objeto não pode ser impresso devido a uma camada vazia entre %1% e %2%." #, boost-format msgid "Object: %1%" msgstr "Objeto: %1%" msgid "" -"Maybe parts of the object at these height are too thin, or the object has " -"faulty mesh" +"Maybe parts of the object at these height are too thin, or the object has faulty mesh" msgstr "" -"Talvez partes do objeto nessa altura sejam muito finas, ou o objeto tenha " -"uma malha com falhas" +"Talvez partes do objeto nessa altura sejam muito finas, ou o objeto tenha uma malha " +"com falhas" msgid "No object can be printed. Maybe too small" msgstr "Nenhum objeto pode ser impresso. Talvez seja muito pequeno" msgid "" -"Your print is very close to the priming regions. Make sure there is no " -"collision." +"Your print is very close to the priming regions. Make sure there is no collision." msgstr "" msgid "" @@ -9200,7 +9145,7 @@ msgid "Overhang wall" msgstr "Overhang" msgid "Sparse infill" -msgstr "Preenchimento" +msgstr "Preenchimento esparso" msgid "Internal solid infill" msgstr "Preenchimento sólido" @@ -9229,15 +9174,15 @@ msgstr "Múltiplo" #, boost-format msgid "Failed to calculate line width of %1%. Can not get value of \"%2%\" " msgstr "" -"Falha ao calcular a largura da linha de %1%. Não é possível obter o valor de " -"\"%2%\". " +"Falha ao calcular a largura da linha de %1%. Não é possível obter o valor de \"%2%" +"\". " msgid "" -"Invalid spacing supplied to Flow::with_spacing(), check your layer height " -"and extrusion width" +"Invalid spacing supplied to Flow::with_spacing(), check your layer height and " +"extrusion width" msgstr "" -"Espaçamento inválido fornecido para Flow::with_spacing(), verifique a altura " -"da camada e a largura da extrusão." +"Espaçamento inválido fornecido para Flow::with_spacing(), verifique a altura da " +"camada e a largura da extrusão." msgid "undefined error" msgstr "erro indefinido" @@ -9333,11 +9278,9 @@ msgid "write callback failed" msgstr "falha na chamada de escrita" #, boost-format -msgid "" -"%1% is too close to exclusion area, there may be collisions when printing." +msgid "%1% is too close to exclusion area, there may be collisions when printing." msgstr "" -"%1% está muito perto da área de exclusão, pode haver colisões durante a " -"impressão." +"%1% está muito perto da área de exclusão, pode haver colisões durante a impressão." #, boost-format msgid "%1% is too close to others, and collisions may be caused." @@ -9352,8 +9295,7 @@ msgstr " está muito perto de outros, pode haver colisões durante a impressão. msgid " is too close to exclusion area, there may be collisions when printing." msgstr "" -" está muito perto da área de exclusão, pode haver colisões durante a " -"impressão." +" está muito perto da área de exclusão, pode haver colisões durante a impressão." msgid "Prime Tower" msgstr "Torre Prime" @@ -9366,41 +9308,38 @@ msgstr " está muito perto da área de exclusão, e ocorrerão colisões.\n" msgid "" "Can not print multiple filaments which have large difference of temperature " -"together. Otherwise, the extruder and nozzle may be blocked or damaged " -"during printing" +"together. Otherwise, the extruder and nozzle may be blocked or damaged during " +"printing" msgstr "" -"Não é possível imprimir vários filamentos que têm grande diferença de " -"temperatura juntos. Caso contrário, o extrusor e a bocal podem ficar " -"bloqueados ou danificados durante a impressão" +"Não é possível imprimir vários filamentos que têm grande diferença de temperatura " +"juntos. Caso contrário, o extrusor e a bocal podem ficar bloqueados ou danificados " +"durante a impressão" msgid "No extrusions under current settings." msgstr "Nenhuma extrusão com as configurações atuais." msgid "" -"Smooth mode of timelapse is not supported when \"by object\" sequence is " -"enabled." +"Smooth mode of timelapse is not supported when \"by object\" sequence is enabled." msgstr "" -"O modo suave do timelapse não é suportado quando a sequência \"por objeto\" " -"está ativada." +"O modo suave do timelapse não é suportado quando a sequência \"por objeto\" está " +"ativada." msgid "" -"Please select \"By object\" print sequence to print multiple objects in " -"spiral vase mode." +"Please select \"By object\" print sequence to print multiple objects in spiral vase " +"mode." msgstr "" -"Por favor, selecione a sequência de impressão \"Por objeto\" para imprimir " -"vários objetos no modo vaso espiral." +"Por favor, selecione a sequência de impressão \"Por objeto\" para imprimir vários " +"objetos no modo vaso espiral." msgid "" -"The spiral vase mode does not work when an object contains more than one " -"materials." +"The spiral vase mode does not work when an object contains more than one materials." msgstr "" -"O modo de vaso espiral não funciona quando um objeto contém mais de um " -"material." +"O modo de vaso espiral não funciona quando um objeto contém mais de um material." #, boost-format msgid "" -"While the object %1% itself fits the build volume, it exceeds the maximum " -"build volume height because of material shrinkage compensation." +"While the object %1% itself fits the build volume, it exceeds the maximum build " +"volume height because of material shrinkage compensation." msgstr "" #, boost-format @@ -9409,34 +9348,33 @@ msgstr "O objeto %1% excede a altura máxima do volume de impressão." #, boost-format msgid "" -"While the object %1% itself fits the build volume, its last layer exceeds " -"the maximum build volume height." +"While the object %1% itself fits the build volume, its last layer exceeds the " +"maximum build volume height." msgstr "" -"Embora o objeto %1% em si se ajuste ao volume de impressão, sua última " -"camada excede a altura máxima do volume de impressão." +"Embora o objeto %1% em si se ajuste ao volume de impressão, sua última camada excede " +"a altura máxima do volume de impressão." msgid "" -"You might want to reduce the size of your model or change current print " -"settings and retry." +"You might want to reduce the size of your model or change current print settings and " +"retry." msgstr "" -"Você pode querer reduzir o tamanho do seu modelo ou alterar as configurações " -"de impressão atuais e tentar novamente." +"Você pode querer reduzir o tamanho do seu modelo ou alterar as configurações de " +"impressão atuais e tentar novamente." msgid "Variable layer height is not supported with Organic supports." msgstr "A altura de camada variável não é suportada com suportes orgânicos." msgid "" -"Different nozzle diameters and different filament diameters may not work " -"well when the prime tower is enabled. It's very experimental, so please " -"proceed with caution." +"Different nozzle diameters and different filament diameters may not work well when " +"the prime tower is enabled. It's very experimental, so please proceed with caution." msgstr "" msgid "" -"The Wipe Tower is currently only supported with the relative extruder " -"addressing (use_relative_e_distances=1)." +"The Wipe Tower is currently only supported with the relative extruder addressing " +"(use_relative_e_distances=1)." msgstr "" -"A Torre Prime atualmente só é suportada com o endereçamento relativo da " -"extrusora (use_relative_e_distances=1)." +"A Torre Prime atualmente só é suportada com o endereçamento relativo da extrusora " +"(use_relative_e_distances=1)." msgid "" "Ooze prevention is only supported with the wipe tower when " @@ -9447,48 +9385,44 @@ msgid "" "The prime tower is currently only supported for the Marlin, RepRap/Sprinter, " "RepRapFirmware and Repetier G-code flavors." msgstr "" -"A Torre Prime atualmente só é suportada para os G-code do tipo Marlin, " -"RepRap/Sprinter, RepRapFirmware e Repetier." +"A Torre Prime atualmente só é suportada para os G-code do tipo Marlin, RepRap/" +"Sprinter, RepRapFirmware e Repetier." msgid "The prime tower is not supported in \"By object\" print." msgstr "A Torre Prime não é suportada na impressão \"Por objeto\"." msgid "" -"The prime tower is not supported when adaptive layer height is on. It " -"requires that all objects have the same layer height." +"The prime tower is not supported when adaptive layer height is on. It requires that " +"all objects have the same layer height." msgstr "" -"A Torre Prime não é suportada quando a altura de camada adaptativa está " -"ativa. Isso requer que todos os objetos tenham a mesma altura de camada." +"A Torre Prime não é suportada quando a altura de camada adaptativa está ativa. Isso " +"requer que todos os objetos tenham a mesma altura de camada." msgid "The prime tower requires \"support gap\" to be multiple of layer height" msgstr "" -"A Torre Prime requer que o \"lacuna de suporte\" seja múltiplo da altura da " -"camada" +"A Torre Prime requer que o \"lacuna de suporte\" seja múltiplo da altura da camada" msgid "The prime tower requires that all objects have the same layer heights" -msgstr "" -"A Torre Prime requer que todos os objetos tenham as mesmas alturas de camada" +msgstr "A Torre Prime requer que todos os objetos tenham as mesmas alturas de camada" msgid "" -"The prime tower requires that all objects are printed over the same number " -"of raft layers" +"The prime tower requires that all objects are printed over the same number of raft " +"layers" msgstr "" -"A Torre Prime requer que todos os objetos sejam impressos sobre o mesmo " -"número de camadas da Jangada." +"A Torre Prime requer que todos os objetos sejam impressos sobre o mesmo número de " +"camadas da Jangada" msgid "" -"The prime tower requires that all objects are sliced with the same layer " -"heights." +"The prime tower requires that all objects are sliced with the same layer heights." msgstr "" -"A Torre Prime requer que todos os objetos sejam fatiados com as mesmas " -"alturas de camada." +"A Torre Prime requer que todos os objetos sejam fatiados com as mesmas alturas de " +"camada." msgid "" -"The prime tower is only supported if all objects have the same variable " -"layer height" +"The prime tower is only supported if all objects have the same variable layer height" msgstr "" -"A Torre Prime só é suportada se todos os objetos tiverem a mesma altura de " -"camada variável" +"A Torre Prime só é suportada se todos os objetos tiverem a mesma altura de camada " +"variável" msgid "Too small line width" msgstr "Largura de linha muito pequena" @@ -9496,118 +9430,111 @@ msgstr "Largura de linha muito pequena" msgid "Too large line width" msgstr "Largura de linha muito grande" -msgid "" -"The prime tower requires that support has the same layer height with object." -msgstr "" -"A Torre Prime requer que o suporte tenha a mesma altura de camada do objeto." +msgid "The prime tower requires that support has the same layer height with object." +msgstr "A Torre Prime requer que o suporte tenha a mesma altura de camada do objeto." msgid "" "Organic support tree tip diameter must not be smaller than support material " "extrusion width." msgstr "" -"O diâmetro da ponta da árvore de suporte orgânico não deve ser menor do que " -"a largura de extrusão do material de suporte." +"O diâmetro da ponta da árvore de suporte orgânico não deve ser menor do que a " +"largura de extrusão do material de suporte." msgid "" "Organic support branch diameter must not be smaller than 2x support material " "extrusion width." msgstr "" -"O diâmetro do ramo de suporte orgânico não deve ser menor do que 2x a " -"largura de extrusão do material de suporte." +"O diâmetro do ramo de suporte orgânico não deve ser menor do que 2x a largura de " +"extrusão do material de suporte." msgid "" -"Organic support branch diameter must not be smaller than support tree tip " -"diameter." +"Organic support branch diameter must not be smaller than support tree tip diameter." msgstr "" -"O diâmetro do ramo de suporte orgânico não deve ser menor do que o diâmetro " -"da ponta da árvore de suporte." +"O diâmetro do ramo de suporte orgânico não deve ser menor do que o diâmetro da ponta " +"da árvore de suporte." -msgid "" -"Support enforcers are used but support is not enabled. Please enable support." +msgid "Support enforcers are used but support is not enabled. Please enable support." msgstr "" -"Os reforços de suporte são usados, mas o suporte não está habilitado. Por " -"favor, habilite o suporte." +"Os reforços de suporte são usados, mas o suporte não está habilitado. Por favor, " +"habilite o suporte." msgid "Layer height cannot exceed nozzle diameter" msgstr "A altura da camada não pode exceder o diâmetro da bocal" msgid "" -"Relative extruder addressing requires resetting the extruder position at " -"each layer to prevent loss of floating point accuracy. Add \"G92 E0\" to " -"layer_gcode." +"Relative extruder addressing requires resetting the extruder position at each layer " +"to prevent loss of floating point accuracy. Add \"G92 E0\" to layer_gcode." msgstr "" -"O endereçamento relativo do extrusor requer a reinicialização da posição do " -"extrusor em cada camada para evitar perda de precisão de ponto flutuante. " -"Adicione \"G92 E0\" ao código de camada." +"O endereçamento relativo do extrusor requer a reinicialização da posição do extrusor " +"em cada camada para evitar perda de precisão de ponto flutuante. Adicione \"G92 E0\" " +"ao código de camada." msgid "" -"\"G92 E0\" was found in before_layer_gcode, which is incompatible with " -"absolute extruder addressing." +"\"G92 E0\" was found in before_layer_gcode, which is incompatible with absolute " +"extruder addressing." msgstr "" "\"G92 E0\" foi encontrado em before_layer_gcode, o que é incompatível com o " "endereçamento absoluto do extrusor." msgid "" -"\"G92 E0\" was found in layer_gcode, which is incompatible with absolute " -"extruder addressing." +"\"G92 E0\" was found in layer_gcode, which is incompatible with absolute extruder " +"addressing." msgstr "" -"\"G92 E0\" foi encontrado em layer_gcode, o que é incompatível com o " -"endereçamento absoluto do extrusor." +"\"G92 E0\" foi encontrado em layer_gcode, o que é incompatível com o endereçamento " +"absoluto do extrusor." #, c-format, boost-format msgid "Plate %d: %s does not support filament %s" msgstr "Mesa %d: %s não suporta filamento %s" -msgid "" -"Setting the jerk speed too low could lead to artifacts on curved surfaces" +msgid "Setting the jerk speed too low could lead to artifacts on curved surfaces" msgstr "" -"Definir a velocidade de jerk muito baixa pode levar a artefatos em " -"superfícies curvas" +"Definir a velocidade de jerk muito baixa pode levar a artefatos em superfícies curvas" msgid "" "The jerk setting exceeds the printer's maximum jerk (machine_max_jerk_x/" "machine_max_jerk_y).\n" "Orca will automatically cap the jerk speed to ensure it doesn't surpass the " "printer's capabilities.\n" -"You can adjust the maximum jerk setting in your printer's configuration to " -"get higher speeds." +"You can adjust the maximum jerk setting in your printer's configuration to get " +"higher speeds." msgstr "" -"A configuração de jerk excede o jerk máximo da impressora " -"(machine_max_jerk_x/machine_max_jerk_y).\n" -"Orca automaticamente limitará a velocidade do jerk para garantir que não " -"ultrapasse as capacidades da impressora.\n" -"Você pode ajustar a configuração de jerk máximo na configuração da sua " -"impressora para obter velocidades mais altas." +"A configuração de jerk excede o jerk máximo da impressora (machine_max_jerk_x/" +"machine_max_jerk_y).\n" +"Orca automaticamente limitará a velocidade do jerk para garantir que não ultrapasse " +"as capacidades da impressora.\n" +"Você pode ajustar a configuração de jerk máximo na configuração da sua impressora " +"para obter velocidades mais altas." msgid "" "The acceleration setting exceeds the printer's maximum acceleration " "(machine_max_acceleration_extruding).\n" -"Orca will automatically cap the acceleration speed to ensure it doesn't " -"surpass the printer's capabilities.\n" -"You can adjust the machine_max_acceleration_extruding value in your " -"printer's configuration to get higher speeds." +"Orca will automatically cap the acceleration speed to ensure it doesn't surpass the " +"printer's capabilities.\n" +"You can adjust the machine_max_acceleration_extruding value in your printer's " +"configuration to get higher speeds." msgstr "" "A configuração de aceleração excede a aceleração máxima da impressora " "(machine_max_acceleration_extruding).\n" -"Orca automaticamente limitará a velocidade de aceleração para garantir que " -"não ultrapasse as capacidades da impressora.\n" -"Você pode ajustar o valor de machine_max_acceleration_extruding na " -"configuração da sua impressora para obter velocidades mais altas." +"Orca automaticamente limitará a velocidade de aceleração para garantir que não " +"ultrapasse as capacidades da impressora.\n" +"Você pode ajustar o valor de machine_max_acceleration_extruding na configuração da " +"sua impressora para obter velocidades mais altas." msgid "" -"The travel acceleration setting exceeds the printer's maximum travel " -"acceleration (machine_max_acceleration_travel).\n" -"Orca will automatically cap the travel acceleration speed to ensure it " -"doesn't surpass the printer's capabilities.\n" +"The travel acceleration setting exceeds the printer's maximum travel acceleration " +"(machine_max_acceleration_travel).\n" +"Orca will automatically cap the travel acceleration speed to ensure it doesn't " +"surpass the printer's capabilities.\n" "You can adjust the machine_max_acceleration_travel value in your printer's " "configuration to get higher speeds." msgstr "" "A configuração de aceleração de deslocamento excede a aceleração máxima de " "deslocamento da impressora (machine_max_acceleration_travel).\n" -"O Orca irá automaticamente limitar a velocidade de aceleração de " -"deslocamento para garantir que não ultrapasse as capacidades da impressora.\n" -"Você pode ajustar o valor de machine_max_acceleration_travel na configuração " -"da sua impressora para obter velocidades mais altas." +"O Orca irá automaticamente limitar a velocidade de aceleração de deslocamento para " +"garantir que não ultrapasse as capacidades da impressora.\n" +"Você pode ajustar o valor de machine_max_acceleration_travel na configuração da sua " +"impressora para obter velocidades mais altas." msgid "" "Filament shrinkage will not be used because filament shrinkage for the used " @@ -9633,14 +9560,13 @@ msgid "Bed exclude area" msgstr "Área de exclusão da mesa" msgid "" -"Unprintable area in XY plane. For example, X1 Series printers use the front " -"left corner to cut filament during filament change. The area is expressed as " -"polygon by points in following format: \"XxY, XxY, ...\"" +"Unprintable area in XY plane. For example, X1 Series printers use the front left " +"corner to cut filament during filament change. The area is expressed as polygon by " +"points in following format: \"XxY, XxY, ...\"" msgstr "" -"Área não imprimível no plano XY. Por exemplo, impressoras da série X1 usam o " -"canto esquerdo frontal para cortar o filamento durante a troca de filamento. " -"A área é expressa como um polígono por pontos no seguinte formato: \"XxY, " -"XxY, ...\"" +"Área não imprimível no plano XY. Por exemplo, impressoras da série X1 usam o canto " +"esquerdo frontal para cortar o filamento durante a troca de filamento. A área é " +"expressa como um polígono por pontos no seguinte formato: \"XxY, XxY, ...\"" msgid "Bed custom texture" msgstr "Textura personalizada da mesa" @@ -9651,32 +9577,27 @@ msgstr "Modelo personalizado da mesa" msgid "Elephant foot compensation" msgstr "Compensação de pé de elefante" -msgid "" -"Shrink the initial layer on build plate to compensate for elephant foot " -"effect" -msgstr "" -"Reduza a primeira camada na mesa para compensar o efeito de pé de elefante" +msgid "Shrink the initial layer on build plate to compensate for elephant foot effect" +msgstr "Reduza a primeira camada na mesa para compensar o efeito de pé de elefante" msgid "Elephant foot compensation layers" msgstr "Camadas de compensação de pé de elefante" msgid "" -"The number of layers on which the elephant foot compensation will be active. " -"The first layer will be shrunk by the elephant foot compensation value, then " -"the next layers will be linearly shrunk less, up to the layer indicated by " -"this value." +"The number of layers on which the elephant foot compensation will be active. The " +"first layer will be shrunk by the elephant foot compensation value, then the next " +"layers will be linearly shrunk less, up to the layer indicated by this value." msgstr "" -"O número de camadas em que a compensação de pé de elefante estará ativa. A " -"primeira camada será reduzida pelo valor de compensação de pé de elefante, e " -"então as próximas camadas serão reduzidas linearmente, até a camada indicada " -"por este valor." +"O número de camadas em que a compensação de pé de elefante estará ativa. A primeira " +"camada será reduzida pelo valor de compensação de pé de elefante, e então as " +"próximas camadas serão reduzidas linearmente, até a camada indicada por este valor." msgid "layers" msgstr "camadas" msgid "" -"Slicing height for each layer. Smaller layer height means more accurate and " -"more printing time" +"Slicing height for each layer. Smaller layer height means more accurate and more " +"printing time" msgstr "" "Altura de fatiamento para cada camada. Altura de camada menor significa mais " "precisão e mais tempo de impressão" @@ -9692,8 +9613,7 @@ msgstr "Orientação preferida" msgid "Automatically orient stls on the Z-axis upon initial import" msgstr "" -"Orientar automaticamente os arquivos STL no eixo Z durante a importação " -"inicial" +"Orientar automaticamente os arquivos STL no eixo Z durante a importação inicial" msgid "Printer preset names" msgstr "Nomes de presets da impressora" @@ -9710,36 +9630,34 @@ msgid "Hostname, IP or URL" msgstr "Nome do host, IP ou URL" msgid "" -"Orca Slicer can upload G-code files to a printer host. This field should " -"contain the hostname, IP address or URL of the printer host instance. Print " -"host behind HAProxy with basic auth enabled can be accessed by putting the " -"user name and password into the URL in the following format: https://" -"username:password@your-octopi-address/" +"Orca Slicer can upload G-code files to a printer host. This field should contain the " +"hostname, IP address or URL of the printer host instance. Print host behind HAProxy " +"with basic auth enabled can be accessed by putting the user name and password into " +"the URL in the following format: https://username:password@your-octopi-address/" msgstr "" -"O Orca Slicer pode enviar arquivos G-code para um host de impressora. Este " -"campo deve conter o nome do host, o endereço IP ou a URL da instância do " -"host de impressora. O host de impressão atrás do HAProxy com autenticação " -"básica ativada pode ser acessado colocando o nome de usuário e senha na URL " -"no seguinte formato: https://username:password@your-octopi-address/" +"O Orca Slicer pode enviar arquivos G-code para um host de impressora. Este campo " +"deve conter o nome do host, o endereço IP ou a URL da instância do host de " +"impressora. O host de impressão atrás do HAProxy com autenticação básica ativada " +"pode ser acessado colocando o nome de usuário e senha na URL no seguinte formato: " +"https://username:password@your-octopi-address/" msgid "Device UI" msgstr "Interface do dispositivo" -msgid "" -"Specify the URL of your device user interface if it's not same as print_host" +msgid "Specify the URL of your device user interface if it's not same as print_host" msgstr "" -"Especifique a URL da interface do usuário do seu dispositivo se não for a " -"mesma do print_host" +"Especifique a URL da interface do usuário do seu dispositivo se não for a mesma do " +"print_host" msgid "API Key / Password" msgstr "Chave da API / Senha" msgid "" -"Orca Slicer can upload G-code files to a printer host. This field should " -"contain the API Key or the password required for authentication." +"Orca Slicer can upload G-code files to a printer host. This field should contain the " +"API Key or the password required for authentication." msgstr "" -"O Orca Slicer pode enviar arquivos G-code para um host de impressora. Este " -"campo deve conter a Chave da API ou a senha necessária para autenticação." +"O Orca Slicer pode enviar arquivos G-code para um host de impressora. Este campo " +"deve conter a Chave da API ou a senha necessária para autenticação." msgid "Name of the printer" msgstr "Nome da impressora" @@ -9748,13 +9666,12 @@ msgid "HTTPS CA File" msgstr "Arquivo CA HTTPS" msgid "" -"Custom CA certificate file can be specified for HTTPS OctoPrint connections, " -"in crt/pem format. If left blank, the default OS CA certificate repository " -"is used." +"Custom CA certificate file can be specified for HTTPS OctoPrint connections, in crt/" +"pem format. If left blank, the default OS CA certificate repository is used." msgstr "" -"O arquivo de certificado CA personalizado pode ser especificado para " -"conexões HTTPS OctoPrint, no formato crt/pem. Se deixado em branco, o " -"repositório de certificados CA padrão do sistema operacional é usado." +"O arquivo de certificado CA personalizado pode ser especificado para conexões HTTPS " +"OctoPrint, no formato crt/pem. Se deixado em branco, o repositório de certificados " +"CA padrão do sistema operacional é usado." msgid "User" msgstr "Usuário" @@ -9767,8 +9684,8 @@ msgstr "Ignorar verificações de revogação de certificado HTTPS" msgid "" "Ignore HTTPS certificate revocation checks in case of missing or offline " -"distribution points. One may want to enable this option for self signed " -"certificates if connection fails." +"distribution points. One may want to enable this option for self signed certificates " +"if connection fails." msgstr "" "Ignorar verificações de revogação de certificado HTTPS em caso de pontos de " "distribuição ausentes ou offline. Pode-se querer habilitar esta opção para " @@ -9798,15 +9715,15 @@ msgid "Avoid crossing wall - Max detour length" msgstr "Evitar perímetros - Distância máximo do desvio" msgid "" -"Maximum detour distance for avoiding crossing wall. Don't detour if the " -"detour distance is large than this value. Detour length could be specified " -"either as an absolute value or as percentage (for example 50%) of a direct " -"travel path. Zero to disable" +"Maximum detour distance for avoiding crossing wall. Don't detour if the detour " +"distance is large than this value. Detour length could be specified either as an " +"absolute value or as percentage (for example 50%) of a direct travel path. Zero to " +"disable" msgstr "" -"Distância máxima de desvio para evitar atravessar o perímetro. Não desviar " -"se a distância de desvio for maior que esse valor. A distancia do desvio " -"pode ser especificada como um valor absoluto ou como porcentagem (por " -"exemplo, 50%) de um caminho de deslocamento direto. Zero para desativar" +"Distância máxima de desvio para evitar atravessar o perímetro. Não desviar se a " +"distância de desvio for maior que esse valor. A distancia do desvio pode ser " +"especificada como um valor absoluto ou como porcentagem (por exemplo, 50%) de um " +"caminho de deslocamento direto. Zero para desativar" msgid "mm or %" msgstr "mm ou %" @@ -9815,8 +9732,8 @@ msgid "Other layers" msgstr "Outras camadas" msgid "" -"Bed temperature for layers except the initial one. Value 0 means the " -"filament does not support to print on the Cool Plate" +"Bed temperature for layers except the initial one. Value 0 means the filament does " +"not support to print on the Cool Plate" msgstr "" "Temperatura da mesa para camadas exceto a inicial. O valor 0 significa que o " "filamento não suporta a impressão na Cool Plate (Mesa Fria)" @@ -9825,27 +9742,27 @@ msgid "°C" msgstr "°C" msgid "" -"Bed temperature for layers except the initial one. Value 0 means the " -"filament does not support to print on the Textured Cool Plate" +"Bed temperature for layers except the initial one. Value 0 means the filament does " +"not support to print on the Textured Cool Plate" msgstr "" msgid "" -"Bed temperature for layers except the initial one. Value 0 means the " -"filament does not support to print on the Engineering Plate" +"Bed temperature for layers except the initial one. Value 0 means the filament does " +"not support to print on the Engineering Plate" msgstr "" "Temperatura da mesa para camadas exceto a inicial. O valor 0 significa que o " "filamento não suporta a impressão no Engenharia Plate" msgid "" -"Bed temperature for layers except the initial one. Value 0 means the " -"filament does not support to print on the High Temp Plate" +"Bed temperature for layers except the initial one. Value 0 means the filament does " +"not support to print on the High Temp Plate" msgstr "" "Temperatura da mesa para camadas exceto a inicial. O valor 0 significa que o " "filamento não suporta a impressão no Plate de Alta Temperatura" msgid "" -"Bed temperature for layers except the initial one. Value 0 means the " -"filament does not support to print on the Textured PEI Plate" +"Bed temperature for layers except the initial one. Value 0 means the filament does " +"not support to print on the Textured PEI Plate" msgstr "" "Temperatura da mesa para camadas exceto a inicial. O valor 0 significa que o " "filamento não suporta a impressão no Plate de PEI Texturizado" @@ -9857,42 +9774,42 @@ msgid "Initial layer bed temperature" msgstr "Temperatura da mesa da primeira camada" msgid "" -"Bed temperature of the initial layer. Value 0 means the filament does not " -"support to print on the Cool Plate SuperTack" +"Bed temperature of the initial layer. Value 0 means the filament does not support to " +"print on the Cool Plate SuperTack" msgstr "" msgid "" -"Bed temperature of the initial layer. Value 0 means the filament does not " -"support to print on the Cool Plate" +"Bed temperature of the initial layer. Value 0 means the filament does not support to " +"print on the Cool Plate" msgstr "" -"Temperatura da mesa na primeira camada. O valor 0 significa que o filamento " -"não suporta a impressão na Cool Plate (Mesa Fria)" +"Temperatura da mesa na primeira camada. O valor 0 significa que o filamento não " +"suporta a impressão na Cool Plate (Mesa Fria)" msgid "" -"Bed temperature of the initial layer. Value 0 means the filament does not " -"support to print on the Textured Cool Plate" +"Bed temperature of the initial layer. Value 0 means the filament does not support to " +"print on the Textured Cool Plate" msgstr "" msgid "" -"Bed temperature of the initial layer. Value 0 means the filament does not " -"support to print on the Engineering Plate" +"Bed temperature of the initial layer. Value 0 means the filament does not support to " +"print on the Engineering Plate" msgstr "" -"Temperatura da mesa na primeira camada. O valor 0 significa que o filamento " -"não suporta a impressão no Engenharia Plate" +"Temperatura da mesa na primeira camada. O valor 0 significa que o filamento não " +"suporta a impressão no Engenharia Plate" msgid "" -"Bed temperature of the initial layer. Value 0 means the filament does not " -"support to print on the High Temp Plate" +"Bed temperature of the initial layer. Value 0 means the filament does not support to " +"print on the High Temp Plate" msgstr "" -"Temperatura da mesa na primeira camada. O valor 0 significa que o filamento " -"não suporta a impressão no Plate de Alta Temperatura" +"Temperatura da mesa na primeira camada. O valor 0 significa que o filamento não " +"suporta a impressão no Plate de Alta Temperatura" msgid "" -"Bed temperature of the initial layer. Value 0 means the filament does not " -"support to print on the Textured PEI Plate" +"Bed temperature of the initial layer. Value 0 means the filament does not support to " +"print on the Textured PEI Plate" msgstr "" -"Temperatura da mesa na primeira camada. O valor 0 significa que o filamento " -"não suporta a impressão no Plate de PEI Texturizado" +"Temperatura da mesa na primeira camada. O valor 0 significa que o filamento não " +"suporta a impressão no Plate de PEI Texturizado" msgid "Bed types supported by the printer" msgstr "Tipos de mesa suportadas pela impressora" @@ -9928,59 +9845,56 @@ msgid "Bottom shell layers" msgstr "Camadas de base" msgid "" -"This is the number of solid layers of bottom shell, including the bottom " -"surface layer. When the thickness calculated by this value is thinner than " -"bottom shell thickness, the bottom shell layers will be increased" +"This is the number of solid layers of bottom shell, including the bottom surface " +"layer. When the thickness calculated by this value is thinner than bottom shell " +"thickness, the bottom shell layers will be increased" msgstr "" -"Este é o número de camadas sólidas da base, incluindo a primeira camada. " -"Quando a espessura calculada por este valor for mais fina do que a espessura " -"da base, o número das camadas da base serão aumentadas" +"Este é o número de camadas sólidas da base, incluindo a primeira camada. Quando a " +"espessura calculada por este valor for mais fina do que a espessura da base, o " +"número das camadas da base serão aumentadas" msgid "Bottom shell thickness" msgstr "Espessura da base" msgid "" "The number of bottom solid layers is increased when slicing if the thickness " -"calculated by bottom shell layers is thinner than this value. This can avoid " -"having too thin shell when layer height is small. 0 means that this setting " -"is disabled and thickness of bottom shell is absolutely determined by bottom " -"shell layers" +"calculated by bottom shell layers is thinner than this value. This can avoid having " +"too thin shell when layer height is small. 0 means that this setting is disabled and " +"thickness of bottom shell is absolutely determined by bottom shell layers" msgstr "" -"O número de camadas sólidas da base é aumentado ao fatiar se a espessura " -"calculada pelas camadas da base for mais fina do que este valor. Isso pode " -"evitar que a base seja muito fina quando a altura da camada é pequena. 0 " -"significa que esta configuração está desativada e a espessura da base é " -"absolutamente determinada pelas camadas da base" +"O número de camadas sólidas da base é aumentado ao fatiar se a espessura calculada " +"pelas camadas da base for mais fina do que este valor. Isso pode evitar que a base " +"seja muito fina quando a altura da camada é pequena. 0 significa que esta " +"configuração está desativada e a espessura da base é absolutamente determinada pelas " +"camadas da base" msgid "Apply gap fill" msgstr "Preenchimento de vão" msgid "" -"Enables gap fill for the selected solid surfaces. The minimum gap length " -"that will be filled can be controlled from the filter out tiny gaps option " -"below.\n" +"Enables gap fill for the selected solid surfaces. The minimum gap length that will " +"be filled can be controlled from the filter out tiny gaps option below.\n" "\n" "Options:\n" -"1. Everywhere: Applies gap fill to top, bottom and internal solid surfaces " -"for maximum strength\n" -"2. Top and Bottom surfaces: Applies gap fill to top and bottom surfaces " -"only, balancing print speed, reducing potential over extrusion in the solid " -"infill and making sure the top and bottom surfaces have no pin hole gaps\n" +"1. Everywhere: Applies gap fill to top, bottom and internal solid surfaces for " +"maximum strength\n" +"2. Top and Bottom surfaces: Applies gap fill to top and bottom surfaces only, " +"balancing print speed, reducing potential over extrusion in the solid infill and " +"making sure the top and bottom surfaces have no pin hole gaps\n" "3. Nowhere: Disables gap fill for all solid infill areas. \n" "\n" -"Note that if using the classic perimeter generator, gap fill may also be " -"generated between perimeters, if a full width line cannot fit between them. " -"That perimeter gap fill is not controlled by this setting. \n" +"Note that if using the classic perimeter generator, gap fill may also be generated " +"between perimeters, if a full width line cannot fit between them. That perimeter gap " +"fill is not controlled by this setting. \n" "\n" -"If you would like all gap fill, including the classic perimeter generated " -"one, removed, set the filter out tiny gaps value to a large number, like " -"999999. \n" +"If you would like all gap fill, including the classic perimeter generated one, " +"removed, set the filter out tiny gaps value to a large number, like 999999. \n" "\n" -"However this is not advised, as gap fill between perimeters is contributing " -"to the model's strength. For models where excessive gap fill is generated " -"between perimeters, a better option would be to switch to the arachne wall " -"generator and use this option to control whether the cosmetic top and bottom " -"surface gap fill is generated" +"However this is not advised, as gap fill between perimeters is contributing to the " +"model's strength. For models where excessive gap fill is generated between " +"perimeters, a better option would be to switch to the arachne wall generator and use " +"this option to control whether the cosmetic top and bottom surface gap fill is " +"generated" msgstr "" msgid "Everywhere" @@ -9992,70 +9906,97 @@ msgstr "Superfícies superior e inferior" msgid "Nowhere" msgstr "Nunca" -msgid "Force cooling for overhang and bridge" -msgstr "Forçar resfriamento para overhangs e pontes" - -msgid "" -"Enable this option to optimize part cooling fan speed for overhang and " -"bridge to get better cooling" +msgid "Force cooling for overhangs and bridges" msgstr "" -"Ative esta opção para otimizar a velocidade do ventilador de resfriamento de " -"peças para overhangs e ponte para obter melhor resfriamento" - -msgid "Fan speed for overhang" -msgstr "Velocidade do ventilador para overhangs" msgid "" -"Force part cooling fan to be this speed when printing bridge or overhang " -"wall which has large overhang degree. Forcing cooling for overhang and " -"bridge can get better quality for these part" +"Enable this option to allow adjustment of the part cooling fan speed for " +"specifically for overhangs, internal and external bridges. Setting the fan speed " +"specifically for these features can improve overall print quality and reduce warping." msgstr "" -"Forçar o ventilador de resfriamento da peça a ser nesta velocidade ao " -"imprimir ponte ou overhang que tenha um grande grau de inclinação. Forçar o " -"resfriamento para overhang e ponte pode obter melhor qualidade para estas " -"partes" -msgid "Cooling overhang threshold" -msgstr "Overhang limiar de resfriamento" - -#, c-format -msgid "" -"Force cooling fan to be specific speed when overhang degree of printed part " -"exceeds this value. Expressed as percentage which indicates how much width " -"of the line without support from lower layer. 0% means forcing cooling for " -"all outer wall no matter how much overhang degree" +msgid "Overhangs and external bridges fan speed" msgstr "" -"Forçar o ventilador de resfriamento a ser uma velocidade específica quando o " -"grau de inclinação da peça impressa excede este valor. Expresso como " -"porcentagem, que indica quanto da largura da linha sem suporte da camada " -"inferior.Zero significa forçar o resfriamento para toda o perímetro externo, " -"não importa quanto seja o grau de inclinação" - -msgid "Bridge infill direction" -msgstr "Direção de preenchimento de ponte" msgid "" -"Bridging angle override. If left to zero, the bridging angle will be " -"calculated automatically. Otherwise the provided angle will be used for " -"external bridges. Use 180°for zero angle." +"Use this part cooling fan speed when printing bridges or overhang walls with an " +"overhang threshold that exceeds the value set in the 'Overhangs cooling threshold' " +"parameter above. Increasing the cooling specifically for overhangs and bridges can " +"improve the overall print quality of these features.\n" +"\n" +"Please note, this fan speed is clamped on the lower end by the minimum fan speed " +"threshold set above. It is also adjusted upwards up to the maximum fan speed " +"threshold when the minimum layer time threshold is not met." +msgstr "" + +msgid "Overhang cooling activation threshold" +msgstr "" + +#, c-format, boost-format +msgid "" +"When the overhang exceeds this specified threshold, force the cooling fan to run at " +"the 'Overhang Fan Speed' set below. This threshold is expressed as a percentage, " +"indicating the portion of each line's width that is unsupported by the layer beneath " +"it. Setting this value to 0% forces the cooling fan to run for all outer walls, " +"regardless of the overhang degree." +msgstr "" + +msgid "External bridge infill direction" +msgstr "" + +msgid "" +"Bridging angle override. If left to zero, the bridging angle will be calculated " +"automatically. Otherwise the provided angle will be used for external bridges. Use " +"180°for zero angle." msgstr "" "Substituição de ângulo de ponte. Se deixado em zero, o ângulo de ponte será " -"calculado automaticamente. Caso contrário, o ângulo fornecido será usado " -"para pontes externas. Use 180° para ângulo zero." +"calculado automaticamente. Caso contrário, o ângulo fornecido será usado para pontes " +"externas. Use 180° para ângulo zero." -msgid "Bridge density" -msgstr "Densidade de ponte" - -msgid "Density of external bridges. 100% means solid bridge. Default is 100%." +msgid "Internal bridge infill direction" +msgstr "" + +msgid "" +"Internal bridging angle override. If left to zero, the bridging angle will be " +"calculated automatically. Otherwise the provided angle will be used for internal " +"bridges. Use 180°for zero angle.\n" +"\n" +"It is recommended to leave it at 0 unless there is a specific model need not to." +msgstr "" + +msgid "External bridge density" +msgstr "" + +msgid "" +"Controls the density (spacing) of external bridge lines. 100% means solid bridge. " +"Default is 100%.\n" +"\n" +"Lower density external bridges can help improve reliability as there is more space " +"for air to circulate around the extruded bridge, improving its cooling speed." +msgstr "" + +msgid "Internal bridge density" +msgstr "" + +msgid "" +"Controls the density (spacing) of internal bridge lines. 100% means solid bridge. " +"Default is 100%.\n" +"\n" +" Lower density internal bridges can help reduce top surface pillowing and improve " +"internal bridge reliability as there is more space for air to circulate around the " +"extruded bridge, improving its cooling speed. \n" +"\n" +"This option works particularly well when combined with the second internal bridge " +"over infill option, further improving internal bridging structure before solid " +"infill is extruded." msgstr "" -"Densidade de pontes externas. 100% significa ponte sólida. O padrão é 100%." msgid "Bridge flow ratio" msgstr "Fluxo em ponte" msgid "" -"Decrease this value slightly(for example 0.9) to reduce the amount of " -"material for bridge, to improve sag. \n" +"Decrease this value slightly(for example 0.9) to reduce the amount of material for " +"bridge, to improve sag. \n" "\n" "The actual bridge flow used is calculated by multiplying this value with the " "filament flow ratio, and if set, the object's flow ratio." @@ -10065,24 +10006,23 @@ msgid "Internal bridge flow ratio" msgstr "Fluxo em ponte interna" msgid "" -"This value governs the thickness of the internal bridge layer. This is the " -"first layer over sparse infill. Decrease this value slightly (for example " -"0.9) to improve surface quality over sparse infill.\n" +"This value governs the thickness of the internal bridge layer. This is the first " +"layer over sparse infill. Decrease this value slightly (for example 0.9) to improve " +"surface quality over sparse infill.\n" "\n" -"The actual internal bridge flow used is calculated by multiplying this value " -"with the bridge flow ratio, the filament flow ratio, and if set, the " -"object's flow ratio." +"The actual internal bridge flow used is calculated by multiplying this value with " +"the bridge flow ratio, the filament flow ratio, and if set, the object's flow ratio." msgstr "" msgid "Top surface flow ratio" msgstr "Fluxo em superfície superior" msgid "" -"This factor affects the amount of material for top solid infill. You can " -"decrease it slightly to have smooth surface finish. \n" +"This factor affects the amount of material for top solid infill. You can decrease it " +"slightly to have smooth surface finish. \n" "\n" -"The actual top surface flow used is calculated by multiplying this value " -"with the filament flow ratio, and if set, the object's flow ratio." +"The actual top surface flow used is calculated by multiplying this value with the " +"filament flow ratio, and if set, the object's flow ratio." msgstr "" msgid "Bottom surface flow ratio" @@ -10091,77 +10031,67 @@ msgstr "Fluxo em superfície inferior" msgid "" "This factor affects the amount of material for bottom solid infill. \n" "\n" -"The actual bottom solid infill flow used is calculated by multiplying this " -"value with the filament flow ratio, and if set, the object's flow ratio." +"The actual bottom solid infill flow used is calculated by multiplying this value " +"with the filament flow ratio, and if set, the object's flow ratio." msgstr "" msgid "Precise wall" msgstr "Parede precisa" msgid "" -"Improve shell precision by adjusting outer wall spacing. This also improves " -"layer consistency.\n" -"Note: This setting will only take effect if the wall sequence is configured " -"to Inner-Outer" +"Improve shell precision by adjusting outer wall spacing. This also improves layer " +"consistency." msgstr "" -"Melhore a precisão da parede ajustando o espaçamento do perímetro externo. " -"Isso também melhora a consistência da camada.\n" -"Nota: Esta configuração só terá efeito se a sequência do perímetro estiver " -"configurada para Interior-Exterior" msgid "Only one wall on top surfaces" msgstr "Perímetro único em superfícies superiores" msgid "" -"Use only one wall on flat top surface, to give more space to the top infill " -"pattern" +"Use only one wall on flat top surface, to give more space to the top infill pattern" msgstr "" -"Use apenas um perímetro em superfície superior, para dar mais espaço ao " -"padrão de preenchimento superior" +"Use apenas um perímetro em superfície superior, para dar mais espaço ao padrão de " +"preenchimento superior" msgid "One wall threshold" msgstr "Limite de perímetro único" #, no-c-format, no-boost-format msgid "" -"If a top surface has to be printed and it's partially covered by another " -"layer, it won't be considered at a top layer where its width is below this " -"value. This can be useful to not let the 'one perimeter on top' trigger on " -"surface that should be covered only by perimeters. This value can be a mm or " -"a % of the perimeter extrusion width.\n" -"Warning: If enabled, artifacts can be created if you have some thin features " -"on the next layer, like letters. Set this setting to 0 to remove these " -"artifacts." +"If a top surface has to be printed and it's partially covered by another layer, it " +"won't be considered at a top layer where its width is below this value. This can be " +"useful to not let the 'one perimeter on top' trigger on surface that should be " +"covered only by perimeters. This value can be a mm or a % of the perimeter extrusion " +"width.\n" +"Warning: If enabled, artifacts can be created if you have some thin features on the " +"next layer, like letters. Set this setting to 0 to remove these artifacts." msgstr "" -"Se uma superfície superior tiver que ser impressa e estiver parcialmente " -"coberta por outra camada, ela não será considerada em uma camada superior " -"onde sua largura estiver abaixo deste valor. Isso pode ser útil para não " -"permitir que o 'um perímetro no topo' seja ativado em uma superfície que " -"deve ser coberta apenas por perímetros. Este valor pode ser em mm ou % da " -"largura de extrusão do perímetro.\n" +"Se uma superfície superior tiver que ser impressa e estiver parcialmente coberta por " +"outra camada, ela não será considerada em uma camada superior onde sua largura " +"estiver abaixo deste valor. Isso pode ser útil para não permitir que o 'um perímetro " +"no topo' seja ativado em uma superfície que deve ser coberta apenas por perímetros. " +"Este valor pode ser em mm ou % da largura de extrusão do perímetro.\n" "Aviso: Se habilitado, artefatos podem ser criados se você tiver algumas " -"características finas na próxima camada, como letras. Defina esta " -"configuração para 0 para remover esses artefatos." +"características finas na próxima camada, como letras. Defina esta configuração para " +"0 para remover esses artefatos." msgid "Only one wall on first layer" msgstr "Perímetro único na primeira camada" msgid "" -"Use only one wall on first layer, to give more space to the bottom infill " -"pattern" +"Use only one wall on first layer, to give more space to the bottom infill pattern" msgstr "" -"Use apenas um perímetro na primeira camada, para dar mais espaço ao padrão " -"de preenchimento inferior" +"Use apenas um perímetro na primeira camada, para dar mais espaço ao padrão de " +"preenchimento inferior" msgid "Extra perimeters on overhangs" msgstr "Perímetros extras em overhangs" msgid "" -"Create additional perimeter paths over steep overhangs and areas where " -"bridges cannot be anchored. " +"Create additional perimeter paths over steep overhangs and areas where bridges " +"cannot be anchored. " msgstr "" -"Crie caminhos de perímetro adicionais em overhangs íngremes e áreas onde " -"pontes não podem ser ancoradas. " +"Crie caminhos de perímetro adicionais em overhangs íngremes e áreas onde pontes não " +"podem ser ancoradas. " msgid "Reverse on even" msgstr "" @@ -10170,12 +10100,11 @@ msgid "Overhang reversal" msgstr "Reversão de suspensão" msgid "" -"Extrude perimeters that have a part over an overhang in the reverse " -"direction on even layers. This alternating pattern can drastically improve " -"steep overhangs.\n" +"Extrude perimeters that have a part over an overhang in the reverse direction on " +"even layers. This alternating pattern can drastically improve steep overhangs.\n" "\n" -"This setting can also help reduce part warping due to the reduction of " -"stresses in the part walls." +"This setting can also help reduce part warping due to the reduction of stresses in " +"the part walls." msgstr "" msgid "Reverse only internal perimeters" @@ -10185,32 +10114,30 @@ msgid "" "Apply the reverse perimeters logic only on internal perimeters. \n" "\n" "This setting greatly reduces part stresses as they are now distributed in " -"alternating directions. This should reduce part warping while also " -"maintaining external wall quality. This feature can be very useful for warp " -"prone material, like ABS/ASA, and also for elastic filaments, like TPU and " -"Silk PLA. It can also help reduce warping on floating regions over " -"supports.\n" +"alternating directions. This should reduce part warping while also maintaining " +"external wall quality. This feature can be very useful for warp prone material, like " +"ABS/ASA, and also for elastic filaments, like TPU and Silk PLA. It can also help " +"reduce warping on floating regions over supports.\n" "\n" -"For this setting to be the most effective, it is recommended to set the " -"Reverse Threshold to 0 so that all internal walls print in alternating " -"directions on even layers irrespective of their overhang degree." +"For this setting to be the most effective, it is recommended to set the Reverse " +"Threshold to 0 so that all internal walls print in alternating directions on even " +"layers irrespective of their overhang degree." msgstr "" msgid "Bridge counterbore holes" msgstr "Pontes para furos rebaixados" msgid "" -"This option creates bridges for counterbore holes, allowing them to be " -"printed without support. Available modes include:\n" +"This option creates bridges for counterbore holes, allowing them to be printed " +"without support. Available modes include:\n" "1. None: No bridge is created.\n" "2. Partially Bridged: Only a part of the unsupported area will be bridged.\n" "3. Sacrificial Layer: A full sacrificial bridge layer is created." msgstr "" -"Esta opção cria pontes para furos rebaixados, permitindo que sejam impressos " -"sem suporte. Os modos disponíveis incluem:\n" +"Esta opção cria pontes para furos rebaixados, permitindo que sejam impressos sem " +"suporte. Os modos disponíveis incluem:\n" "1. Nenhum: Nenhuma ponte é criada.\n" -"2. Parcialmente Ponteada: Apenas uma parte da área não suportada será " -"ponteada.\n" +"2. Parcialmente Ponteada: Apenas uma parte da área não suportada será ponteada.\n" "3. Camada Sacrificial: Uma camada completa de ponte sacrificial é criada." msgid "Partially bridged" @@ -10227,11 +10154,11 @@ msgstr "Limiar de inversão de overhang" #, no-c-format, no-boost-format msgid "" -"Number of mm the overhang need to be for the reversal to be considered " -"useful. Can be a % of the perimeter width.\n" +"Number of mm the overhang need to be for the reversal to be considered useful. Can " +"be a % of the perimeter width.\n" "Value 0 enables reversal on every even layers regardless.\n" -"When Detect overhang wall is not enabled, this option is ignored and " -"reversal happens on every even layers regardless." +"When Detect overhang wall is not enabled, this option is ignored and reversal " +"happens on every even layers regardless." msgstr "" msgid "Classic mode" @@ -10245,31 +10172,29 @@ msgstr "Reduzir velocidade em overhangs" msgid "Enable this option to slow printing down for different overhang degree" msgstr "" -"Ative esta opção para diminuir a velocidade de impressão em diferentes graus " -"de inclinação" +"Ative esta opção para diminuir a velocidade de impressão em diferentes graus de " +"inclinação" msgid "Slow down for curled perimeters" msgstr "Reduzir vel. para perímetros encurvados" #, no-c-format, no-boost-format msgid "" -"Enable this option to slow down printing in areas where perimeters may have " -"curled upwards.For example, additional slowdown will be applied when " -"printing overhangs on sharp corners like the front of the Benchy hull, " -"reducing curling which compounds over multiple layers.\n" +"Enable this option to slow down printing in areas where perimeters may have curled " +"upwards.For example, additional slowdown will be applied when printing overhangs on " +"sharp corners like the front of the Benchy hull, reducing curling which compounds " +"over multiple layers.\n" "\n" -" It is generally recommended to have this option switched on unless your " -"printer cooling is powerful enough or the print speed slow enough that " -"perimeter curling does not happen. If printing with a high external " -"perimeter speed, this parameter may introduce slight artifacts when slowing " -"down due to the large variance in print speeds. If you notice artifacts, " -"ensure your pressure advance is tuned correctly.\n" +" It is generally recommended to have this option switched on unless your printer " +"cooling is powerful enough or the print speed slow enough that perimeter curling " +"does not happen. If printing with a high external perimeter speed, this parameter " +"may introduce slight artifacts when slowing down due to the large variance in print " +"speeds. If you notice artifacts, ensure your pressure advance is tuned correctly.\n" "\n" -"Note: When this option is enabled, overhang perimeters are treated like " -"overhangs, meaning the overhang speed is applied even if the overhanging " -"perimeter is part of a bridge. For example, when the perimeters are 100% " -"overhanging, with no wall supporting them from underneath, the 100% overhang " -"speed will be applied." +"Note: When this option is enabled, overhang perimeters are treated like overhangs, " +"meaning the overhang speed is applied even if the overhanging perimeter is part of a " +"bridge. For example, when the perimeters are 100% overhanging, with no wall " +"supporting them from underneath, the 100% overhang speed will be applied." msgstr "" msgid "mm/s or %" @@ -10281,10 +10206,9 @@ msgstr "Externo" msgid "" "Speed of the externally visible bridge extrusions. \n" "\n" -"In addition, if Slow down for curled perimeters is disabled or Classic " -"overhang mode is enabled, it will be the print speed of overhang walls that " -"are supported by less than 13%, whether they are part of a bridge or an " -"overhang." +"In addition, if Slow down for curled perimeters is disabled or Classic overhang mode " +"is enabled, it will be the print speed of overhang walls that are supported by less " +"than 13%, whether they are part of a bridge or an overhang." msgstr "" msgid "mm/s" @@ -10294,8 +10218,8 @@ msgid "Internal" msgstr "Interno" msgid "" -"Speed of internal bridges. If the value is expressed as a percentage, it " -"will be calculated based on the bridge_speed. Default value is 150%." +"Speed of internal bridges. If the value is expressed as a percentage, it will be " +"calculated based on the bridge_speed. Default value is 150%." msgstr "" msgid "Brim width" @@ -10308,22 +10232,20 @@ msgid "Brim type" msgstr "Tipo de borda" msgid "" -"This controls the generation of the brim at outer and/or inner side of " -"models. Auto means the brim width is analyzed and calculated automatically." +"This controls the generation of the brim at outer and/or inner side of models. Auto " +"means the brim width is analyzed and calculated automatically." msgstr "" "Isso controla a geração da borda no lado externo e/ou interno dos modelos. " -"Automático significa que a largura da borda é analisada e calculada " -"automaticamente." +"Automático significa que a largura da borda é analisada e calculada automaticamente." msgid "Brim-object gap" msgstr "Espaço entre a borda e objeto" msgid "" -"A gap between innermost brim line and object can make brim be removed more " -"easily" +"A gap between innermost brim line and object can make brim be removed more easily" msgstr "" -"Um espaço entre a linha da borda mais interna e o objeto pode facilitar a " -"remoção da borda" +"Um espaço entre a linha da borda mais interna e o objeto pode facilitar a remoção da " +"borda" msgid "Brim ears" msgstr "Orelhas da borda" @@ -10351,8 +10273,8 @@ msgid "" "indicates the minimum length of the deviation for the decimation.\n" "0 to deactivate" msgstr "" -"A geometria será decimada antes de detectar ângulos agudos. Este parâmetro " -"indica o comprimento mínimo da divergência para a decimação.\n" +"A geometria será decimada antes de detectar ângulos agudos. Este parâmetro indica o " +"comprimento mínimo da divergência para a decimação.\n" "0 para desativar" msgid "Compatible machine" @@ -10364,12 +10286,24 @@ msgstr "uáquina compatível ascendente" msgid "Compatible machine condition" msgstr "Condição de máquina compatível" +msgid "" +"A boolean expression using the configuration values of an active printer profile. If " +"this expression evaluates to true, this profile is considered compatible with the " +"active printer profile." +msgstr "" + msgid "Compatible process profiles" msgstr "Perfis de processo compatíveis" msgid "Compatible process profiles condition" msgstr "Condição de perfis de processo compatíveis" +msgid "" +"A boolean expression using the configuration values of an active print profile. If " +"this expression evaluates to true, this profile is considered compatible with the " +"active print profile." +msgstr "" + msgid "Print sequence, layer by layer or object by object" msgstr "Sequência de impressão, camada por camada ou objeto por objeto" @@ -10392,26 +10326,24 @@ msgid "Slow printing down for better layer cooling" msgstr "Diminuir a velocidade de impressão para melhor resfriamento de camada" msgid "" -"Enable this option to slow printing speed down to make the final layer time " -"not shorter than the layer time threshold in \"Max fan speed threshold\", so " -"that layer can be cooled for longer time. This can improve the cooling " -"quality for needle and small details" +"Enable this option to slow printing speed down to make the final layer time not " +"shorter than the layer time threshold in \"Max fan speed threshold\", so that layer " +"can be cooled for longer time. This can improve the cooling quality for needle and " +"small details" msgstr "" -"Ative esta opção para diminuir a velocidade de impressão para que o tempo da " -"camada final não seja menor do que o limite de tempo da camada em \"Limiar " -"de velocidade máxima do ventilador\", para que a camada possa ser resfriada " -"por mais tempo. Isso pode melhorar a qualidade de resfriamento para detalhes " -"pequenos" +"Ative esta opção para diminuir a velocidade de impressão para que o tempo da camada " +"final não seja menor do que o limite de tempo da camada em \"Limiar de velocidade " +"máxima do ventilador\", para que a camada possa ser resfriada por mais tempo. Isso " +"pode melhorar a qualidade de resfriamento para detalhes pequenos" msgid "Normal printing" msgstr "Impressão normal" msgid "" -"The default acceleration of both normal printing and travel except initial " -"layer" +"The default acceleration of both normal printing and travel except initial layer" msgstr "" -"A aceleração padrão tanto para a impressão normal quanto para o movimento, " -"exceto na primeira camada" +"A aceleração padrão tanto para a impressão normal quanto para o movimento, exceto na " +"primeira camada" msgid "mm/s²" msgstr "mm/s²" @@ -10432,15 +10364,14 @@ msgid "Activate air filtration" msgstr "Ativar filtragem de ar" msgid "Activate for better air filtration. G-code command: M106 P3 S(0-255)" -msgstr "" -"Ative para uma melhor filtragem de ar. Comando G-code: M106 P3 S(0-255)" +msgstr "Ative para uma melhor filtragem de ar. Comando G-code: M106 P3 S(0-255)" msgid "Fan speed" msgstr "Velocidade do ventilador" msgid "" -"Speed of exhaust fan during printing.This speed will overwrite the speed in " -"filament custom gcode" +"Speed of exhaust fan during printing.This speed will overwrite the speed in filament " +"custom gcode" msgstr "" "Velocidade do ventilador de exaustão durante a impressão. Esta velocidade " "substituirá a velocidade no gcode personalizado do filamento" @@ -10452,82 +10383,124 @@ msgid "No cooling for the first" msgstr "Sem resfriamento para as primeiras" msgid "" -"Close all cooling fan for the first certain layers. Cooling fan of the first " -"layer used to be closed to get better build plate adhesion" +"Close all cooling fan for the first certain layers. Cooling fan of the first layer " +"used to be closed to get better build plate adhesion" msgstr "" -"Feche todos os ventiladores de resfriamento para as primeiras camadas. O " -"ventilador de resfriamento da primeira camada costuma ser desligado para " -"obter uma melhor adesão à mesa" +"Feche todos os ventiladores de resfriamento para as primeiras camadas. O ventilador " +"de resfriamento da primeira camada costuma ser desligado para obter uma melhor " +"adesão à mesa" msgid "Don't support bridges" msgstr "Não suportar pontes" msgid "" -"Don't support the whole bridge area which make support very large. Bridge " -"usually can be printing directly without support if not very long" +"Don't support the whole bridge area which make support very large. Bridge usually " +"can be printing directly without support if not very long" msgstr "" -"Não suportar toda a área da ponte que faz com que o suporte seja muito " -"grande. Ponte geralmente pode ser impressa diretamente sem suporte se não " -"for muito longa" +"Não suportar toda a área da ponte que faz com que o suporte seja muito grande. Ponte " +"geralmente pode ser impressa diretamente sem suporte se não for muito longa" -msgid "Thick bridges" -msgstr "Ponte grossa" +msgid "Thick external bridges" +msgstr "" msgid "" -"If enabled, bridges are more reliable, can bridge longer distances, but may " -"look worse. If disabled, bridges look better but are reliable just for " -"shorter bridged distances." +"If enabled, bridges are more reliable, can bridge longer distances, but may look " +"worse. If disabled, bridges look better but are reliable just for shorter bridged " +"distances." msgstr "" -"Se ativado, as pontes são mais confiáveis, podem cobrir distâncias maiores, " -"mas podem parecer piores. Se desativado, as pontes ficam melhores, mas são " -"confiáveis apenas para distâncias de ponte mais curtas." +"Se ativado, as pontes são mais confiáveis, podem cobrir distâncias maiores, mas " +"podem parecer piores. Se desativado, as pontes ficam melhores, mas são confiáveis " +"apenas para distâncias de ponte mais curtas." msgid "Thick internal bridges" msgstr "Ponte interna grossa" msgid "" -"If enabled, thick internal bridges will be used. It's usually recommended to " -"have this feature turned on. However, consider turning it off if you are " -"using large nozzles." +"If enabled, thick internal bridges will be used. It's usually recommended to have " +"this feature turned on. However, consider turning it off if you are using large " +"nozzles." msgstr "" -"Se ativado, serão usadas pontes internas grossas. Geralmente é recomendado " -"ter este recurso ativado. No entanto, considere desativá-lo se estiver " -"usando bocais grandes." +"Se ativado, serão usadas pontes internas grossas. Geralmente é recomendado ter este " +"recurso ativado. No entanto, considere desativá-lo se estiver usando bocais grandes." -msgid "Filter out small internal bridges (beta)" -msgstr "" +msgid "Extra bridge layers (beta)" +msgstr "Camadas extra de ponte (beta)" msgid "" -"This option can help reducing pillowing on top surfaces in heavily slanted " -"or curved models.\n" +"This option enables the generation of an extra bridge layer over internal and/or " +"external bridges.\n" "\n" -"By default, small internal bridges are filtered out and the internal solid " -"infill is printed directly over the sparse infill. This works well in most " -"cases, speeding up printing without too much compromise on top surface " -"quality. \n" +"Extra bridge layers help improve bridge appearance and reliability, as the solid " +"infill is better supported. This is especially useful in fast printers, where the " +"bridge and solid infill speeds vary greatly. The extra bridge layer results in " +"reduced pillowing on top surfaces, as well as reduced separation of the external " +"bridge layer from its surrounding perimeters.\n" "\n" -"However, in heavily slanted or curved models especially where too low sparse " -"infill density is used, this may result in curling of the unsupported solid " -"infill, causing pillowing.\n" +"It is generally recommended to set this to at least 'External bridge only', unless " +"specific issues with the sliced model are found.\n" "\n" -"Disabling this option will print internal bridge layer over slightly " -"unsupported internal solid infill. The options below control the amount of " -"filtering, i.e. the amount of internal bridges created.\n" +"Options:\n" +"1. Disabled - does not generate second bridge layers. This is the default and is set " +"for compatibility purposes.\n" +"2. External bridge only - generates second bridge layers for external-facing bridges " +"only. Please note that small bridges that are shorter or narrower than the set " +"number of perimeters will be skipped as they would not benefit from a second bridge " +"layer. If generated, the second bridge layer will be extruded parallel to the first " +"bridge layer to reinforce the bridge strength.\n" +"3. Internal bridge only - generates second bridge layers for internal bridges over " +"sparse infill only. Please note that the internal bridges count towards the top " +"shell layer count of your model. The second internal bridge layer will be extruded " +"as close to perpendicular to the first as possible. If multiple regions in the same " +"island, with varying bridge angles are present, the last region of that island will " +"be selected as the angle reference.\n" +"4. Apply to all - generates second bridge layers for both internal and external-" +"facing bridges\n" +msgstr "" + +msgid "Disabled" +msgstr "Desativado" + +msgid "External bridge only" +msgstr "Apenas pontes externas" + +msgid "Internal bridge only" +msgstr "Apenas pontes internas" + +msgid "Apply to all" +msgstr "Aplicar a todos" + +msgid "Filter out small internal bridges" +msgstr "Filtrar pontes internas pequenas" + +msgid "" +"This option can help reduce pillowing on top surfaces in heavily slanted or curved " +"models.\n" "\n" -"Filter - enable this option. This is the default behavior and works well in " -"most cases.\n" +"By default, small internal bridges are filtered out and the internal solid infill is " +"printed directly over the sparse infill. This works well in most cases, speeding up " +"printing without too much compromise on top surface quality. \n" "\n" -"Limited filtering - creates internal bridges on heavily slanted surfaces, " -"while avoiding creating unnecessary internal bridges. This works well for " -"most difficult models.\n" +"However, in heavily slanted or curved models, especially where too low a sparse " +"infill density is used, this may result in curling of the unsupported solid infill, " +"causing pillowing.\n" "\n" -"No filtering - creates internal bridges on every potential internal " -"overhang. This option is useful for heavily slanted top surface models. " -"However, in most cases it creates too many unnecessary bridges." +"Enabling limited filtering or no filtering will print internal bridge layer over " +"slightly unsupported internal solid infill. The options below control the " +"sensitivity of the filtering, i.e. they control where internal bridges are created.\n" +"\n" +"1. Filter - enables this option. This is the default behavior and works well in most " +"cases.\n" +"\n" +"2. Limited filtering - creates internal bridges on heavily slanted surfaces while " +"avoiding unnecessary bridges. This works well for most difficult models.\n" +"\n" +"3. No filtering - creates internal bridges on every potential internal overhang. " +"This option is useful for heavily slanted top surface models; however, in most " +"cases, it creates too many unnecessary bridges." msgstr "" msgid "Filter" -msgstr "" +msgstr "Filtro" msgid "Limited filtering" msgstr "Filtragem limitada" @@ -10539,13 +10512,13 @@ msgid "Max bridge length" msgstr "Distância de ponte máxima" msgid "" -"Max length of bridges that don't need support. Set it to 0 if you want all " -"bridges to be supported, and set it to a very large value if you don't want " -"any bridges to be supported." +"Max length of bridges that don't need support. Set it to 0 if you want all bridges " +"to be supported, and set it to a very large value if you don't want any bridges to " +"be supported." msgstr "" -"Comprimento máximo de pontes que não precisam de suporte. Defina-o como 0 se " -"desejar que todas as pontes tenham suporte, e defina-o como um valor muito " -"grande se não desejar que nenhuma ponte tenha suporte." +"Comprimento máximo de pontes que não precisam de suporte. Defina-o como 0 se desejar " +"que todas as pontes tenham suporte, e defina-o como um valor muito grande se não " +"desejar que nenhuma ponte tenha suporte." msgid "End G-code" msgstr "G-code de finalização" @@ -10557,11 +10530,11 @@ msgid "Between Object Gcode" msgstr "G-code entre objetos" msgid "" -"Insert Gcode between objects. This parameter will only come into effect when " -"you print your models object by object" +"Insert Gcode between objects. This parameter will only come into effect when you " +"print your models object by object" msgstr "" -"Insira o G-code entre objetos. Este parâmetro só terá efeito quando você " -"imprimir seus modelos objeto por objeto" +"Insira o G-code entre objetos. Este parâmetro só terá efeito quando você imprimir " +"seus modelos objeto por objeto" msgid "End G-code when finish the printing of this filament" msgstr "G-code de finalização ao terminar a impressão deste filamento" @@ -10570,25 +10543,23 @@ msgid "Ensure vertical shell thickness" msgstr "Garantir a espessura vertical do perímetro" msgid "" -"Add solid infill near sloping surfaces to guarantee the vertical shell " -"thickness (top+bottom solid layers)\n" -"None: No solid infill will be added anywhere. Caution: Use this option " -"carefully if your model has sloped surfaces\n" +"Add solid infill near sloping surfaces to guarantee the vertical shell thickness " +"(top+bottom solid layers)\n" +"None: No solid infill will be added anywhere. Caution: Use this option carefully if " +"your model has sloped surfaces\n" "Critical Only: Avoid adding solid infill for walls\n" "Moderate: Add solid infill for heavily sloping surfaces only\n" "All: Add solid infill for all suitable sloping surfaces\n" "Default value is All." msgstr "" -"Adicione preenchimento sólido próximo a superfícies inclinadas para garantir " -"a espessura vertical (camadas de topo+base)\n" -"Nenhum: Nenhum preenchimento sólido será adicionado em nenhum lugar. " -"Cuidado: Use esta opção com cuidado se o seu modelo tiver superfícies " -"inclinadas\n" +"Adicione preenchimento sólido próximo a superfícies inclinadas para garantir a " +"espessura vertical (camadas de topo+base)\n" +"Nenhum: Nenhum preenchimento sólido será adicionado em nenhum lugar. Cuidado: Use " +"esta opção com cuidado se o seu modelo tiver superfícies inclinadas\n" "Apenas crítico: Evite adicionar preenchimento sólido para paredes\n" "Moderado: Adicione preenchimento sólido apenas para superfícies fortemente " "inclinadas\n" -"Todos: Adicione preenchimento sólido para todas as superfícies inclinadas " -"adequadas\n" +"Todos: Adicione preenchimento sólido para todas as superfícies inclinadas adequadas\n" "O valor padrão é Todos." msgid "Critical Only" @@ -10632,56 +10603,54 @@ msgstr "Padrão de superfície inferior" msgid "Line pattern of bottom surface infill, not bridge infill" msgstr "" -"Padrão de linha do preenchimento da superfície inferior, não do " -"preenchimento da ponte" +"Padrão de linha do preenchimento da superfície inferior, não do preenchimento da " +"ponte" msgid "Internal solid infill pattern" msgstr "Padrão de preenchimento sólido interno" msgid "" -"Line pattern of internal solid infill. if the detect narrow internal solid " -"infill be enabled, the concentric pattern will be used for the small area." +"Line pattern of internal solid infill. if the detect narrow internal solid infill be " +"enabled, the concentric pattern will be used for the small area." msgstr "" -"Padrão de linha do preenchimento sólido interno. Se a detecção de " -"preenchimento sólido interno estreito estiver ativada, o padrão concêntrico " -"será usado para a área pequena." +"Padrão de linha do preenchimento sólido interno. Se a detecção de preenchimento " +"sólido interno estreito estiver ativada, o padrão concêntrico será usado para a área " +"pequena." msgid "" -"Line width of outer wall. If expressed as a %, it will be computed over the " -"nozzle diameter." +"Line width of outer wall. If expressed as a %, it will be computed over the nozzle " +"diameter." msgstr "" -"Largura da linha do perímetro externo. Se expresso como porcentagem, será " -"calculado sobre o diâmetro do bico." +"Largura da linha do perímetro externo. Se expresso como porcentagem, será calculado " +"sobre o diâmetro do bico." msgid "" -"Speed of outer wall which is outermost and visible. It's used to be slower " -"than inner wall speed to get better quality." +"Speed of outer wall which is outermost and visible. It's used to be slower than " +"inner wall speed to get better quality." msgstr "" -"Velocidade do perímetro externo que é o mais externo e visível. Geralmente é " -"mais lenta que a velocidade do perímetro interno para obter melhor qualidade." +"Velocidade do perímetro externo que é o mais externo e visível. Geralmente é mais " +"lenta que a velocidade do perímetro interno para obter melhor qualidade." msgid "Small perimeters" msgstr "Pequenos perímetros" msgid "" "This separate setting will affect the speed of perimeters having radius <= " -"small_perimeter_threshold (usually holes). If expressed as percentage (for " -"example: 80%) it will be calculated on the outer wall speed setting above. " -"Set to zero for auto." +"small_perimeter_threshold (usually holes). If expressed as percentage (for example: " +"80%) it will be calculated on the outer wall speed setting above. Set to zero for " +"auto." msgstr "" "Essa configuração separada afetará a velocidade dos perímetros com raio <= " -"small_perimeter_threshold (geralmente buracos). Se expresso como porcentagem " -"(por exemplo: 80%), será calculado com base na configuração de velocidade do " -"perímetro externo acima. Defina como zero para automático." +"small_perimeter_threshold (geralmente buracos). Se expresso como porcentagem (por " +"exemplo: 80%), será calculado com base na configuração de velocidade do perímetro " +"externo acima. Defina como zero para automático." msgid "Small perimeters threshold" msgstr "Limiar de pequenos perímetros" -msgid "" -"This sets the threshold for small perimeter length. Default threshold is 0mm" +msgid "This sets the threshold for small perimeter length. Default threshold is 0mm" msgstr "" -"Isso define o limite para o comprimento do perímetro pequeno. O limite " -"padrão é 0mm" +"Isso define o limite para o comprimento do perímetro pequeno. O limite padrão é 0mm" msgid "Walls printing order" msgstr "Ordem de impressão dos perímetros" @@ -10689,49 +10658,45 @@ msgstr "Ordem de impressão dos perímetros" msgid "" "Print sequence of the internal (inner) and external (outer) walls. \n" "\n" -"Use Inner/Outer for best overhangs. This is because the overhanging walls " -"can adhere to a neighbouring perimeter while printing. However, this option " -"results in slightly reduced surface quality as the external perimeter is " -"deformed by being squashed to the internal perimeter.\n" +"Use Inner/Outer for best overhangs. This is because the overhanging walls can adhere " +"to a neighbouring perimeter while printing. However, this option results in slightly " +"reduced surface quality as the external perimeter is deformed by being squashed to " +"the internal perimeter.\n" "\n" -"Use Inner/Outer/Inner for the best external surface finish and dimensional " -"accuracy as the external wall is printed undisturbed from an internal " -"perimeter. However, overhang performance will reduce as there is no internal " -"perimeter to print the external wall against. This option requires a minimum " -"of 3 walls to be effective as it prints the internal walls from the 3rd " -"perimeter onwards first, then the external perimeter and, finally, the first " -"internal perimeter. This option is recommended against the Outer/Inner " -"option in most cases. \n" +"Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy " +"as the external wall is printed undisturbed from an internal perimeter. However, " +"overhang performance will reduce as there is no internal perimeter to print the " +"external wall against. This option requires a minimum of 3 walls to be effective as " +"it prints the internal walls from the 3rd perimeter onwards first, then the external " +"perimeter and, finally, the first internal perimeter. This option is recommended " +"against the Outer/Inner option in most cases. \n" "\n" -"Use Outer/Inner for the same external wall quality and dimensional accuracy " -"benefits of Inner/Outer/Inner option. However, the z seams will appear less " -"consistent as the first extrusion of a new layer starts on a visible " -"surface.\n" +"Use Outer/Inner for the same external wall quality and dimensional accuracy benefits " +"of Inner/Outer/Inner option. However, the z seams will appear less consistent as the " +"first extrusion of a new layer starts on a visible surface.\n" "\n" " " msgstr "" "Sequência de impressão dos perímetros internos e externos. \n" "\n" -"Use Interior/Exterior para melhores overhangs. Isso ocorre porque os " -"perímetros salientes podem aderir a um perímetro vizinho durante a " -"impressão. No entanto, esta opção resulta em uma qualidade superficial " -"ligeiramente reduzida, pois o perímetro externo é deformado ao ser esmagado " -"pelo perímetro interno.\n" +"Use Interior/Exterior para melhores overhangs. Isso ocorre porque os perímetros " +"salientes podem aderir a um perímetro vizinho durante a impressão. No entanto, esta " +"opção resulta em uma qualidade superficial ligeiramente reduzida, pois o perímetro " +"externo é deformado ao ser esmagado pelo perímetro interno.\n" "\n" -"Use Interior/Exterior/Interior para o melhor acabamento superficial externo " -"e precisão dimensional, pois o perímetro externo é impresso sem interrupções " -"a partir de um perímetro interno. No entanto, o desempenho da inclinaçãoserá " -"reduzido, pois não há perímetro interno para imprimir o perímetro externo. " -"Esta opção requer um mínimo de 3 perímetros para ser eficaz, pois imprime os " -"perímetros internos a partir do terceiro perímetro em diante primeiro, " -"depois o perímetro externo e, por fim, o primeiro perímetro interno. Esta " -"opção é recomendada em relação à opção Exterior/Interior na maioria dos " -"casos. \n" +"Use Interior/Exterior/Interior para o melhor acabamento superficial externo e " +"precisão dimensional, pois o perímetro externo é impresso sem interrupções a partir " +"de um perímetro interno. No entanto, o desempenho da inclinaçãoserá reduzido, pois " +"não há perímetro interno para imprimir o perímetro externo. Esta opção requer um " +"mínimo de 3 perímetros para ser eficaz, pois imprime os perímetros internos a partir " +"do terceiro perímetro em diante primeiro, depois o perímetro externo e, por fim, o " +"primeiro perímetro interno. Esta opção é recomendada em relação à opção Exterior/" +"Interior na maioria dos casos. \n" "\n" -"Use Exterior/Interior para obter os mesmos benefícios de qualidade de parede " -"externa e precisão dimensional da opção Interior/Exterior/Interior. No " -"entanto, as costuras z aparecerão menos consistentes, pois a primeira " -"extrusão de uma nova camada começa em uma superfície visível.\n" +"Use Exterior/Interior para obter os mesmos benefícios de qualidade de parede externa " +"e precisão dimensional da opção Interior/Exterior/Interior. No entanto, as costuras " +"z aparecerão menos consistentes, pois a primeira extrusão de uma nova camada começa " +"em uma superfície visível.\n" "\n" " " @@ -10748,35 +10713,33 @@ msgid "Print infill first" msgstr "Preenchimento primeiro" msgid "" -"Order of wall/infill. When the tickbox is unchecked the walls are printed " -"first, which works best in most cases.\n" +"Order of wall/infill. When the tickbox is unchecked the walls are printed first, " +"which works best in most cases.\n" "\n" "Printing infill first may help with extreme overhangs as the walls have the " -"neighbouring infill to adhere to. However, the infill will slightly push out " -"the printed walls where it is attached to them, resulting in a worse " -"external surface finish. It can also cause the infill to shine through the " -"external surfaces of the part." +"neighbouring infill to adhere to. However, the infill will slightly push out the " +"printed walls where it is attached to them, resulting in a worse external surface " +"finish. It can also cause the infill to shine through the external surfaces of the " +"part." msgstr "" -"Ordem de perímetro/preenchimento. Quando a caixa de seleção não desmarcada, " -"as paredes são impressas primeiro, o que funciona melhor na maioria dos " -"casos.\n" +"Ordem de perímetro/preenchimento. Quando a caixa de seleção não desmarcada, as " +"paredes são impressas primeiro, o que funciona melhor na maioria dos casos.\n" "\n" -"Imprimir as paredes primeiro pode ajudar com overhangs extremos, pois as " -"paredes têm o preenchimento vizinho para aderir. No entanto, o preenchimento " -"empurrará levemente as paredes impressas onde está conectado a elas, " -"resultando em um acabamento de superfície externa pior. Também pode fazer " -"com que o preenchimento apareça através das superfícies externas da peça." +"Imprimir as paredes primeiro pode ajudar com overhangs extremos, pois as paredes têm " +"o preenchimento vizinho para aderir. No entanto, o preenchimento empurrará levemente " +"as paredes impressas onde está conectado a elas, resultando em um acabamento de " +"superfície externa pior. Também pode fazer com que o preenchimento apareça através " +"das superfícies externas da peça." msgid "Wall loop direction" msgstr "Direção da volta do perímetro" msgid "" -"The direction which the wall loops are extruded when looking down from the " -"top.\n" +"The direction which the wall loops are extruded when looking down from the top.\n" "\n" -"By default all walls are extruded in counter-clockwise, unless Reverse on " -"even is enabled. Set this to any option other than Auto will force the wall " -"direction regardless of the Reverse on even.\n" +"By default all walls are extruded in counter-clockwise, unless Reverse on even is " +"enabled. Set this to any option other than Auto will force the wall direction " +"regardless of the Reverse on even.\n" "\n" "This option will be disabled if spiral vase mode is enabled." msgstr "" @@ -10791,28 +10754,27 @@ msgid "Height to rod" msgstr "Altura até a haste" msgid "" -"Distance of the nozzle tip to the lower rod. Used for collision avoidance in " -"by-object printing." +"Distance of the nozzle tip to the lower rod. Used for collision avoidance in by-" +"object printing." msgstr "" -"Distância da ponta do bico ao tubo inferior. Usado para evitar colisões na " -"impressão por objeto." +"Distância da ponta do bico ao tubo inferior. Usado para evitar colisões na impressão " +"por objeto." msgid "Height to lid" msgstr "Altura até a tampa" msgid "" -"Distance of the nozzle tip to the lid. Used for collision avoidance in by-" -"object printing." -msgstr "" -"Distância da ponta do bico à tampa. Usado para evitar colisões na impressão " -"por objeto." - -msgid "" -"Clearance radius around extruder. Used for collision avoidance in by-object " +"Distance of the nozzle tip to the lid. Used for collision avoidance in by-object " "printing." msgstr "" -"Raio de folga ao redor do extrusor. Usado para evitar colisões na impressão " -"por objeto." +"Distância da ponta do bico à tampa. Usado para evitar colisões na impressão por " +"objeto." + +msgid "" +"Clearance radius around extruder. Used for collision avoidance in by-object printing." +msgstr "" +"Raio de folga ao redor do extrusor. Usado para evitar colisões na impressão por " +"objeto." msgid "Nozzle height" msgstr "Altura do bico" @@ -10824,68 +10786,65 @@ msgid "Bed mesh min" msgstr "Mínimo do bed mesh" msgid "" -"This option sets the min point for the allowed bed mesh area. Due to the " -"probe's XY offset, most printers are unable to probe the entire bed. To " -"ensure the probe point does not go outside the bed area, the minimum and " -"maximum points of the bed mesh should be set appropriately. OrcaSlicer " -"ensures that adaptive_bed_mesh_min/adaptive_bed_mesh_max values do not " -"exceed these min/max points. This information can usually be obtained from " -"your printer manufacturer. The default setting is (-99999, -99999), which " -"means there are no limits, thus allowing probing across the entire bed." +"This option sets the min point for the allowed bed mesh area. Due to the probe's XY " +"offset, most printers are unable to probe the entire bed. To ensure the probe point " +"does not go outside the bed area, the minimum and maximum points of the bed mesh " +"should be set appropriately. OrcaSlicer ensures that adaptive_bed_mesh_min/" +"adaptive_bed_mesh_max values do not exceed these min/max points. This information " +"can usually be obtained from your printer manufacturer. The default setting is " +"(-99999, -99999), which means there are no limits, thus allowing probing across the " +"entire bed." msgstr "" -"Esta opção define o ponto mínimo para a área permitida do bed mesh. Devido " -"ao deslocamento XY da sonda, a maioria das impressoras não consegue sondar " -"toda a mesa. Para garantir que o ponto da sonda não saia da área da mesa, os " -"pontos mínimo e máximo do bed mesh devem ser configurados adequadamente. O " -"OrcaSlicer garante que os valores adaptive_bed_mesh_min/" -"adaptive_bed_mesh_max não excedam esses pontos mínimo/máximo. Essas " -"informações geralmente podem ser obtidas com o fabricante da sua impressora. " -"A configuração padrão é (-99999, -99999), o que significa que não há " +"Esta opção define o ponto mínimo para a área permitida do bed mesh. Devido ao " +"deslocamento XY da sonda, a maioria das impressoras não consegue sondar toda a mesa. " +"Para garantir que o ponto da sonda não saia da área da mesa, os pontos mínimo e " +"máximo do bed mesh devem ser configurados adequadamente. O OrcaSlicer garante que os " +"valores adaptive_bed_mesh_min/adaptive_bed_mesh_max não excedam esses pontos mínimo/" +"máximo. Essas informações geralmente podem ser obtidas com o fabricante da sua " +"impressora. A configuração padrão é (-99999, -99999), o que significa que não há " "limites, permitindo a sondagem em toda a mesa." msgid "Bed mesh max" msgstr "Máximo do bed mesh" msgid "" -"This option sets the max point for the allowed bed mesh area. Due to the " -"probe's XY offset, most printers are unable to probe the entire bed. To " -"ensure the probe point does not go outside the bed area, the minimum and " -"maximum points of the bed mesh should be set appropriately. OrcaSlicer " -"ensures that adaptive_bed_mesh_min/adaptive_bed_mesh_max values do not " -"exceed these min/max points. This information can usually be obtained from " -"your printer manufacturer. The default setting is (99999, 99999), which " -"means there are no limits, thus allowing probing across the entire bed." +"This option sets the max point for the allowed bed mesh area. Due to the probe's XY " +"offset, most printers are unable to probe the entire bed. To ensure the probe point " +"does not go outside the bed area, the minimum and maximum points of the bed mesh " +"should be set appropriately. OrcaSlicer ensures that adaptive_bed_mesh_min/" +"adaptive_bed_mesh_max values do not exceed these min/max points. This information " +"can usually be obtained from your printer manufacturer. The default setting is " +"(99999, 99999), which means there are no limits, thus allowing probing across the " +"entire bed." msgstr "" -"Esta opção define o ponto máximo para a área permitida do bed mesh. Devido " -"ao deslocamento XY da sonda, a maioria das impressoras não consegue sondar " -"toda a mesa. Para garantir que o ponto da sonda não saia da área da mesa, os " -"pontos mínimo e máximo do bed mesh devem ser configurados adequadamente. O " -"OrcaSlicer garante que os valores adaptive_bed_mesh_min/" -"adaptive_bed_mesh_max não excedam esses pontos mínimo/máximo. Essas " -"informações geralmente podem ser obtidas com o fabricante da sua impressora. " -"A configuração padrão é (99999, 99999), o que significa que não há limites, " -"permitindo a sondagem em toda a mesa." +"Esta opção define o ponto máximo para a área permitida do bed mesh. Devido ao " +"deslocamento XY da sonda, a maioria das impressoras não consegue sondar toda a mesa. " +"Para garantir que o ponto da sonda não saia da área da mesa, os pontos mínimo e " +"máximo do bed mesh devem ser configurados adequadamente. O OrcaSlicer garante que os " +"valores adaptive_bed_mesh_min/adaptive_bed_mesh_max não excedam esses pontos mínimo/" +"máximo. Essas informações geralmente podem ser obtidas com o fabricante da sua " +"impressora. A configuração padrão é (99999, 99999), o que significa que não há " +"limites, permitindo a sondagem em toda a mesa." msgid "Probe point distance" msgstr "Distância entre pontos de sonda" msgid "" -"This option sets the preferred distance between probe points (grid size) for " -"the X and Y directions, with the default being 50mm for both X and Y." +"This option sets the preferred distance between probe points (grid size) for the X " +"and Y directions, with the default being 50mm for both X and Y." msgstr "" -"Esta opção define a distância preferencial entre pontos de sonda (tamanho da " -"grade) para as direções X e Y, sendo o padrão 50mm para ambas as direções X " -"e Y." +"Esta opção define a distância preferencial entre pontos de sonda (tamanho da grade) " +"para as direções X e Y, sendo o padrão 50mm para ambas as direções X e Y." msgid "Mesh margin" msgstr "Margem da malha" msgid "" -"This option determines the additional distance by which the adaptive bed " -"mesh area should be expanded in the XY directions." +"This option determines the additional distance by which the adaptive bed mesh area " +"should be expanded in the XY directions." msgstr "" -"Esta opção determina a distância adicional pela qual a área do bed mesh " -"adaptável deve ser expandida nas direções XY." +"Esta opção determina a distância adicional pela qual a área do bed mesh adaptável " +"deve ser expandida nas direções XY." msgid "Extruder Color" msgstr "Cor do extrusor" @@ -10900,65 +10859,59 @@ msgid "Flow ratio" msgstr "Fluxo" msgid "" -"The material may have volumetric change after switching between molten state " -"and crystalline state. This setting changes all extrusion flow of this " -"filament in gcode proportionally. Recommended value range is between 0.95 " -"and 1.05. Maybe you can tune this value to get nice flat surface when there " -"has slight overflow or underflow" +"The material may have volumetric change after switching between molten state and " +"crystalline state. This setting changes all extrusion flow of this filament in gcode " +"proportionally. Recommended value range is between 0.95 and 1.05. Maybe you can tune " +"this value to get nice flat surface when there has slight overflow or underflow" msgstr "" -"O material pode ter mudança volumétrica após a troca entre o estado fundido " -"e o estado cristalino. Esta configuração altera todo o fluxo de extrusão " -"deste filamento no gcode proporcionalmente. A faixa de valores recomendada " -"está entre 0.95 e 1.05. Talvez você possa ajustar esse valor para obter uma " -"superfície plana agradável quando houver um leve transbordamento ou subfluxo" +"O material pode ter mudança volumétrica após a troca entre o estado fundido e o " +"estado cristalino. Esta configuração altera todo o fluxo de extrusão deste filamento " +"no gcode proporcionalmente. A faixa de valores recomendada está entre 0.95 e 1.05. " +"Talvez você possa ajustar esse valor para obter uma superfície plana agradável " +"quando houver um leve transbordamento ou subfluxo" msgid "" -"The material may have volumetric change after switching between molten state " -"and crystalline state. This setting changes all extrusion flow of this " -"filament in gcode proportionally. Recommended value range is between 0.95 " -"and 1.05. Maybe you can tune this value to get nice flat surface when there " -"has slight overflow or underflow. \n" +"The material may have volumetric change after switching between molten state and " +"crystalline state. This setting changes all extrusion flow of this filament in gcode " +"proportionally. Recommended value range is between 0.95 and 1.05. Maybe you can tune " +"this value to get nice flat surface when there has slight overflow or underflow. \n" "\n" -"The final object flow ratio is this value multiplied by the filament flow " -"ratio." +"The final object flow ratio is this value multiplied by the filament flow ratio." msgstr "" msgid "Enable pressure advance" msgstr "Habilitar Pressure advance" msgid "" -"Enable pressure advance, auto calibration result will be overwritten once " -"enabled." +"Enable pressure advance, auto calibration result will be overwritten once enabled." msgstr "" -"Habilitar Pressure advance, o resultado da calibração automática será " -"sobrescrito uma vez habilitado." +"Habilitar Pressure advance, o resultado da calibração automática será sobrescrito " +"uma vez habilitado." msgid "Pressure advance(Klipper) AKA Linear advance factor(Marlin)" -msgstr "" -"Pressure advance(Klipper) também conhecido como Linear advance factor(Marlin)" +msgstr "Pressure advance(Klipper) também conhecido como Linear advance factor(Marlin)" msgid "Enable adaptive pressure advance (beta)" msgstr "" #, no-c-format, no-boost-format msgid "" -"With increasing print speeds (and hence increasing volumetric flow through " -"the nozzle) and increasing accelerations, it has been observed that the " -"effective PA value typically decreases. This means that a single PA value is " -"not always 100% optimal for all features and a compromise value is usually " -"used that does not cause too much bulging on features with lower flow speed " -"and accelerations while also not causing gaps on faster features.\n" +"With increasing print speeds (and hence increasing volumetric flow through the " +"nozzle) and increasing accelerations, it has been observed that the effective PA " +"value typically decreases. This means that a single PA value is not always 100% " +"optimal for all features and a compromise value is usually used that does not cause " +"too much bulging on features with lower flow speed and accelerations while also not " +"causing gaps on faster features.\n" "\n" -"This feature aims to address this limitation by modeling the response of " -"your printer's extrusion system depending on the volumetric flow speed and " -"acceleration it is printing at. Internally, it generates a fitted model that " -"can extrapolate the needed pressure advance for any given volumetric flow " -"speed and acceleration, which is then emitted to the printer depending on " -"the current print conditions.\n" +"This feature aims to address this limitation by modeling the response of your " +"printer's extrusion system depending on the volumetric flow speed and acceleration " +"it is printing at. Internally, it generates a fitted model that can extrapolate the " +"needed pressure advance for any given volumetric flow speed and acceleration, which " +"is then emitted to the printer depending on the current print conditions.\n" "\n" -"When enabled, the pressure advance value above is overridden. However, a " -"reasonable default value above is strongly recommended to act as a fallback " -"and for when tool changing.\n" +"When enabled, the pressure advance value above is overridden. However, a reasonable " +"default value above is strongly recommended to act as a fallback and for when tool " +"changing.\n" "\n" msgstr "" @@ -10968,31 +10921,29 @@ msgstr "" #, no-c-format, no-boost-format msgid "" "Add sets of pressure advance (PA) values, the volumetric flow speeds and " -"accelerations they were measured at, separated by a comma. One set of values " -"per line. For example\n" +"accelerations they were measured at, separated by a comma. One set of values per " +"line. For example\n" "0.04,3.96,3000\n" "0.033,3.96,10000\n" "0.029,7.91,3000\n" "0.026,7.91,10000\n" "\n" "How to calibrate:\n" -"1. Run the pressure advance test for at least 3 speeds per acceleration " -"value. It is recommended that the test is run for at least the speed of the " -"external perimeters, the speed of the internal perimeters and the fastest " -"feature print speed in your profile (usually its the sparse or solid " -"infill). Then run them for the same speeds for the slowest and fastest print " -"accelerations,and no faster than the recommended maximum acceleration as " -"given by the Klipper input shaper.\n" +"1. Run the pressure advance test for at least 3 speeds per acceleration value. It is " +"recommended that the test is run for at least the speed of the external perimeters, " +"the speed of the internal perimeters and the fastest feature print speed in your " +"profile (usually its the sparse or solid infill). Then run them for the same speeds " +"for the slowest and fastest print accelerations,and no faster than the recommended " +"maximum acceleration as given by the Klipper input shaper.\n" "2. Take note of the optimal PA value for each volumetric flow speed and " -"acceleration. You can find the flow number by selecting flow from the color " -"scheme drop down and move the horizontal slider over the PA pattern lines. " -"The number should be visible at the bottom of the page. The ideal PA value " -"should be decreasing the higher the volumetric flow is. If it is not, " -"confirm that your extruder is functioning correctly.The slower and with less " -"acceleration you print, the larger the range of acceptable PA values. If no " -"difference is visible, use the PA value from the faster test.3. Enter the " -"triplets of PA values, Flow and Accelerations in the text box here and save " -"your filament profile\n" +"acceleration. You can find the flow number by selecting flow from the color scheme " +"drop down and move the horizontal slider over the PA pattern lines. The number " +"should be visible at the bottom of the page. The ideal PA value should be decreasing " +"the higher the volumetric flow is. If it is not, confirm that your extruder is " +"functioning correctly.The slower and with less acceleration you print, the larger " +"the range of acceptable PA values. If no difference is visible, use the PA value " +"from the faster test.3. Enter the triplets of PA values, Flow and Accelerations in " +"the text box here and save your filament profile\n" "\n" msgstr "" @@ -11000,10 +10951,10 @@ msgid "Enable adaptive pressure advance for overhangs (beta)" msgstr "" msgid "" -"Enable adaptive PA for overhangs as well as when flow changes within the " -"same feature. This is an experimental option, as if the PA profile is not " -"set accurately, it will cause uniformity issues on the external surfaces " -"before and after overhangs.\n" +"Enable adaptive PA for overhangs as well as when flow changes within the same " +"feature. This is an experimental option, as if the PA profile is not set accurately, " +"it will cause uniformity issues on the external surfaces before and after " +"overhangs.\n" msgstr "" msgid "Pressure advance for bridges" @@ -11012,43 +10963,41 @@ msgstr "" msgid "" "Pressure advance value for bridges. Set to 0 to disable. \n" "\n" -" A lower PA value when printing bridges helps reduce the appearance of " -"slight under extrusion immediately after bridges. This is caused by the " -"pressure drop in the nozzle when printing in the air and a lower PA helps " -"counteract this." +" A lower PA value when printing bridges helps reduce the appearance of slight under " +"extrusion immediately after bridges. This is caused by the pressure drop in the " +"nozzle when printing in the air and a lower PA helps counteract this." msgstr "" msgid "" -"Default line width if other line widths are set to 0. If expressed as a %, " -"it will be computed over the nozzle diameter." +"Default line width if other line widths are set to 0. If expressed as a %, it will " +"be computed over the nozzle diameter." msgstr "" -"Largura de linha padrão se outras larguras de linha estiverem definidas como " -"0. Se expresso como %, será calculado sobre o diâmetro do bico." +"Largura de linha padrão se outras larguras de linha estiverem definidas como 0. Se " +"expresso como %, será calculado sobre o diâmetro do bico." msgid "Keep fan always on" msgstr "Manter o ventilador sempre ligado" msgid "" -"If enable this setting, part cooling fan will never be stopped and will run " -"at least at minimum speed to reduce the frequency of starting and stopping" +"If enable this setting, part cooling fan will never be stopped and will run at least " +"at minimum speed to reduce the frequency of starting and stopping" msgstr "" -"Se habilitar esta configuração, o ventilador de resfriamento da peça nunca " -"será desligado e funcionará pelo menos na velocidade mínima para reduzir a " -"frequência de início e parada" +"Se habilitar esta configuração, o ventilador de resfriamento da peça nunca será " +"desligado e funcionará pelo menos na velocidade mínima para reduzir a frequência de " +"início e parada" msgid "Don't slow down outer walls" msgstr "" msgid "" -"If enabled, this setting will ensure external perimeters are not slowed down " -"to meet the minimum layer time. This is particularly helpful in the below " -"scenarios:\n" +"If enabled, this setting will ensure external perimeters are not slowed down to meet " +"the minimum layer time. This is particularly helpful in the below scenarios:\n" "\n" " 1. To avoid changes in shine when printing glossy filaments \n" -"2. To avoid changes in external wall speed which may create slight wall " -"artifacts that appear like z banding \n" -"3. To avoid printing at speeds which cause VFAs (fine artifacts) on the " -"external walls\n" +"2. To avoid changes in external wall speed which may create slight wall artifacts " +"that appear like z banding \n" +"3. To avoid printing at speeds which cause VFAs (fine artifacts) on the external " +"walls\n" "\n" msgstr "" @@ -11056,14 +11005,14 @@ msgid "Layer time" msgstr "Tempo da camada" msgid "" -"Part cooling fan will be enabled for layers of which estimated time is " -"shorter than this value. Fan speed is interpolated between the minimum and " -"maximum fan speeds according to layer printing time" +"Part cooling fan will be enabled for layers of which estimated time is shorter than " +"this value. Fan speed is interpolated between the minimum and maximum fan speeds " +"according to layer printing time" msgstr "" -"O ventilador de resfriamento da peça será ativado para camadas cujo tempo " -"estimado seja menor que esse valor. A velocidade do ventilador é interpolada " -"entre as velocidades mínima e máxima do ventilador de acordo com o tempo de " -"impressão da camada" +"O ventilador de resfriamento da peça será ativado para camadas cujo tempo estimado " +"seja menor que esse valor. A velocidade do ventilador é interpolada entre as " +"velocidades mínima e máxima do ventilador de acordo com o tempo de impressão da " +"camada" msgid "Default color" msgstr "Cor padrão" @@ -11081,21 +11030,21 @@ msgid "Required nozzle HRC" msgstr "HRC do bico requerido" msgid "" -"Minimum HRC of nozzle required to print the filament. Zero means no checking " -"of nozzle's HRC." +"Minimum HRC of nozzle required to print the filament. Zero means no checking of " +"nozzle's HRC." msgstr "" -"HRC mínimo do bico necessário para imprimir o filamento. Zero significa que " -"não há verificação do HRC do bico." +"HRC mínimo do bico necessário para imprimir o filamento. Zero significa que não há " +"verificação do HRC do bico." msgid "" -"This setting stands for how much volume of filament can be melted and " -"extruded per second. Printing speed is limited by max volumetric speed, in " -"case of too high and unreasonable speed setting. Can't be zero" +"This setting stands for how much volume of filament can be melted and extruded per " +"second. Printing speed is limited by max volumetric speed, in case of too high and " +"unreasonable speed setting. Can't be zero" msgstr "" "Essa configuração representa quanto volume de filamento pode ser derretido e " -"extrudado por segundo. A velocidade de impressão é limitada pela fluxo " -"volumétrico máximo, no caso de configurações de velocidade muito altas e " -"irrazoáveis. Não pode ser zero" +"extrudado por segundo. A velocidade de impressão é limitada pela fluxo volumétrico " +"máximo, no caso de configurações de velocidade muito altas e irrazoáveis. Não pode " +"ser zero" msgid "mm³/s" msgstr "mm³/s" @@ -11104,82 +11053,80 @@ msgid "Filament load time" msgstr "Tempo de carga do filamento" msgid "" -"Time to load new filament when switch filament. It's usually applicable for " -"single-extruder multi-material machines. For tool changers or multi-tool " -"machines, it's typically 0. For statistics only" +"Time to load new filament when switch filament. It's usually applicable for single-" +"extruder multi-material machines. For tool changers or multi-tool machines, it's " +"typically 0. For statistics only" msgstr "" msgid "Filament unload time" msgstr "Tempo de descarga do filamento" msgid "" -"Time to unload old filament when switch filament. It's usually applicable " -"for single-extruder multi-material machines. For tool changers or multi-tool " -"machines, it's typically 0. For statistics only" +"Time to unload old filament when switch filament. It's usually applicable for single-" +"extruder multi-material machines. For tool changers or multi-tool machines, it's " +"typically 0. For statistics only" msgstr "" msgid "Tool change time" msgstr "" msgid "" -"Time taken to switch tools. It's usually applicable for tool changers or " -"multi-tool machines. For single-extruder multi-material machines, it's " -"typically 0. For statistics only" +"Time taken to switch tools. It's usually applicable for tool changers or multi-tool " +"machines. For single-extruder multi-material machines, it's typically 0. For " +"statistics only" msgstr "" msgid "" -"Filament diameter is used to calculate extrusion in gcode, so it's important " -"and should be accurate" +"Filament diameter is used to calculate extrusion in gcode, so it's important and " +"should be accurate" msgstr "" -"O diâmetro do filamento é usado para calcular a extrusão no gcode, portanto, " -"é importante e deve ser preciso" +"O diâmetro do filamento é usado para calcular a extrusão no gcode, portanto, é " +"importante e deve ser preciso" msgid "Pellet flow coefficient" msgstr "" msgid "" -"Pellet flow coefficient is empirically derived and allows for volume " -"calculation for pellet printers.\n" +"Pellet flow coefficient is empirically derived and allows for volume calculation for " +"pellet printers.\n" "\n" -"Internally it is converted to filament_diameter. All other volume " -"calculations remain the same.\n" +"Internally it is converted to filament_diameter. All other volume calculations " +"remain the same.\n" "\n" "filament_diameter = sqrt( (4 * pellet_flow_coefficient) / PI )" msgstr "" msgid "Shrinkage (XY)" -msgstr "" +msgstr "Encolhimento (XY)" #, no-c-format, no-boost-format msgid "" -"Enter the shrinkage percentage that the filament will get after cooling (94% " -"if you measure 94mm instead of 100mm). The part will be scaled in xy to " -"compensate. Only the filament used for the perimeter is taken into account.\n" -"Be sure to allow enough space between objects, as this compensation is done " -"after the checks." +"Enter the shrinkage percentage that the filament will get after cooling (94% if you " +"measure 94mm instead of 100mm). The part will be scaled in xy to compensate. Only " +"the filament used for the perimeter is taken into account.\n" +"Be sure to allow enough space between objects, as this compensation is done after " +"the checks." msgstr "" -"Informe a porcentagem de retração que o filamento terá após o resfriamento " -"(94% se você medir 94mm em vez de 100mm). A peça será escalada em xy para " -"compensar. Apenas o filamento usado para o perímetro é levado em " -"consideração.\n" -"Certifique-se de permitir espaço suficiente entre objetos, pois essa " -"compensação é feita após as verificações." +"Informe a porcentagem de retração que o filamento terá após o resfriamento (94% se " +"você medir 94mm em vez de 100mm). A peça será escalada em xy para compensar. Apenas " +"o filamento usado para o perímetro é levado em consideração.\n" +"Certifique-se de permitir espaço suficiente entre objetos, pois essa compensação é " +"feita após as verificações." msgid "Shrinkage (Z)" -msgstr "" +msgstr "Encolhimento (Z)" #, no-c-format, no-boost-format msgid "" -"Enter the shrinkage percentage that the filament will get after cooling (94% " -"if you measure 94mm instead of 100mm). The part will be scaled in Z to " -"compensate." +"Enter the shrinkage percentage that the filament will get after cooling (94% if you " +"measure 94mm instead of 100mm). The part will be scaled in Z to compensate." msgstr "" msgid "Loading speed" msgstr "Velocidade de carregamento" msgid "Speed used for loading the filament on the wipe tower." -msgstr "Velocidade usada para carregar o filamento na Torre Prime" +msgstr "Velocidade usada para carregar o filamento na Torre Prime." msgid "Loading speed at the start" msgstr "Velocidade de carregamento no início" @@ -11191,17 +11138,16 @@ msgid "Unloading speed" msgstr "Velocidade de descarregamento" msgid "" -"Speed used for unloading the filament on the wipe tower (does not affect " -"initial part of unloading just after ramming)." +"Speed used for unloading the filament on the wipe tower (does not affect initial " +"part of unloading just after ramming)." msgstr "" -"Velocidade usada para descarregar o filamento na Torre Prime (não afeta a " -"parte inicial do descarregamento logo após o moldeamento)." +"Velocidade usada para descarregar o filamento na Torre Prime (não afeta a parte " +"inicial do descarregamento logo após o moldeamento)." msgid "Unloading speed at the start" msgstr "Velocidade de descarregamento no início" -msgid "" -"Speed used for unloading the tip of the filament immediately after ramming." +msgid "Speed used for unloading the tip of the filament immediately after ramming." msgstr "" "Velocidade usada para descarregar a ponta do filamento imediatamente após o " "moldeamento." @@ -11210,20 +11156,19 @@ msgid "Delay after unloading" msgstr "Atraso após o descarregamento" msgid "" -"Time to wait after the filament is unloaded. May help to get reliable " -"toolchanges with flexible materials that may need more time to shrink to " -"original dimensions." +"Time to wait after the filament is unloaded. May help to get reliable toolchanges " +"with flexible materials that may need more time to shrink to original dimensions." msgstr "" -"Tempo de espera após o filamento ser descarregado. Pode ajudar a obter " -"trocas de ferramentas confiáveis com materiais flexíveis que podem precisar " -"de mais tempo para encolher para as dimensões originais." +"Tempo de espera após o filamento ser descarregado. Pode ajudar a obter trocas de " +"ferramentas confiáveis com materiais flexíveis que podem precisar de mais tempo para " +"encolher para as dimensões originais." msgid "Number of cooling moves" msgstr "Número de movimentos de resfriamento" msgid "" -"Filament is cooled by being moved back and forth in the cooling tubes. " -"Specify desired number of these moves." +"Filament is cooled by being moved back and forth in the cooling tubes. Specify " +"desired number of these moves." msgstr "" "O filamento é resfriado movendo-se para frente e para trás nos tubos de " "resfriamento. Especifique o número desejado desses movimentos." @@ -11238,9 +11183,9 @@ msgid "Stamping distance measured from the center of the cooling tube" msgstr "" msgid "" -"If set to nonzero value, filament is moved toward the nozzle between the " -"individual cooling moves (\"stamping\"). This option configures how long " -"this movement should be before the filament is retracted again." +"If set to nonzero value, filament is moved toward the nozzle between the individual " +"cooling moves (\"stamping\"). This option configures how long this movement should " +"be before the filament is retracted again." msgstr "" msgid "Speed of the first cooling move" @@ -11255,33 +11200,32 @@ msgid "Minimal purge on wipe tower" msgstr "Purga mínima na Torre Prime" msgid "" -"After a tool change, the exact position of the newly loaded filament inside " -"the nozzle may not be known, and the filament pressure is likely not yet " -"stable. Before purging the print head into an infill or a sacrificial " -"object, Orca Slicer will always prime this amount of material into the wipe " -"tower to produce successive infill or sacrificial object extrusions reliably." +"After a tool change, the exact position of the newly loaded filament inside the " +"nozzle may not be known, and the filament pressure is likely not yet stable. Before " +"purging the print head into an infill or a sacrificial object, Orca Slicer will " +"always prime this amount of material into the wipe tower to produce successive " +"infill or sacrificial object extrusions reliably." msgstr "" -"Após uma troca de filamento, a posição exata do filamento recém-carregado " -"dentro do bico pode não ser conhecida, e a pressão do filamento " -"provavelmente ainda não está estável. Antes de purgar a cabeça de impressão " -"em um preenchimento ou em um objeto de sacrifício, o Orca Slicer sempre " -"preparará essa quantidade de material na Torre Prime para produzir extrusões " -"sucessivas de preenchimento ou de objeto de sacrifício de forma confiável." +"Após uma troca de filamento, a posição exata do filamento recém-carregado dentro do " +"bico pode não ser conhecida, e a pressão do filamento provavelmente ainda não está " +"estável. Antes de purgar a cabeça de impressão em um preenchimento ou em um objeto " +"de sacrifício, o Orca Slicer sempre preparará essa quantidade de material na Torre " +"Prime para produzir extrusões sucessivas de preenchimento ou de objeto de sacrifício " +"de forma confiável." msgid "Speed of the last cooling move" msgstr "Velocidade do último movimento de resfriamento" msgid "Cooling moves are gradually accelerating towards this speed." msgstr "" -"Os movimentos de resfriamento estão gradualmente acelerando em direção a " -"esta velocidade." +"Os movimentos de resfriamento estão gradualmente acelerando em direção a esta " +"velocidade." msgid "Ramming parameters" msgstr "Parâmetros de moldeamento" msgid "" -"This string is edited by RammingDialog and contains ramming specific " -"parameters." +"This string is edited by RammingDialog and contains ramming specific parameters." msgstr "" "Esta frase é editada pelo RammingDialog e contém parâmetros específicos de " "moldeamento." @@ -11290,16 +11234,16 @@ msgid "Enable ramming for multi-tool setups" msgstr "Habilitar moldeamento para configurações de multi-extrusora" msgid "" -"Perform ramming when using multi-tool printer (i.e. when the 'Single " -"Extruder Multimaterial' in Printer Settings is unchecked). When checked, a " -"small amount of filament is rapidly extruded on the wipe tower just before " -"the toolchange. This option is only used when the wipe tower is enabled." +"Perform ramming when using multi-tool printer (i.e. when the 'Single Extruder " +"Multimaterial' in Printer Settings is unchecked). When checked, a small amount of " +"filament is rapidly extruded on the wipe tower just before the toolchange. This " +"option is only used when the wipe tower is enabled." msgstr "" -"Realizar moldeamentoao usando impressora multi-extrusora(ou seja, quando a " -"opção 'Único Extrusor Multimaterial' em Configurações de Impressora está " -"desmarcada). Quando ativo, uma pequena quantidade de filamento é rapidamente " -"extrudado na Torre Prime logo antes da troca de extrusora. Esta opção é " -"usada apenas quando a Torre Prime está habilitada." +"Realizar moldeamentoao usando impressora multi-extrusora(ou seja, quando a opção " +"'Único Extrusor Multimaterial' em Configurações de Impressora está desmarcada). " +"Quando ativo, uma pequena quantidade de filamento é rapidamente extrudado na Torre " +"Prime logo antes da troca de extrusora. Esta opção é usada apenas quando a Torre " +"Prime está habilitada." msgid "Multi-tool ramming volume" msgstr "Volume de moldeamento multi-extrusora" @@ -11328,32 +11272,28 @@ msgstr "O tipo de material do filamento" msgid "Soluble material" msgstr "Material solúvel" -msgid "" -"Soluble material is commonly used to print support and support interface" +msgid "Soluble material is commonly used to print support and support interface" msgstr "" -"O material solúvel é comumente usado para imprimir suporte e interface de " -"suporte" +"O material solúvel é comumente usado para imprimir suporte e interface de suporte" msgid "Support material" msgstr "Material de suporte" -msgid "" -"Support material is commonly used to print support and support interface" +msgid "Support material is commonly used to print support and support interface" msgstr "" -"O material de suporte é comumente usado para imprimir suporte e interface de " -"suporte" +"O material de suporte é comumente usado para imprimir suporte e interface de suporte" msgid "Softening temperature" msgstr "Temperatura de amolecimento" msgid "" -"The material softens at this temperature, so when the bed temperature is " -"equal to or greater than it, it's highly recommended to open the front door " -"and/or remove the upper glass to avoid clogging." +"The material softens at this temperature, so when the bed temperature is equal to or " +"greater than it, it's highly recommended to open the front door and/or remove the " +"upper glass to avoid clogging." msgstr "" -"O material amolece a esta temperatura, portanto, quando a temperatura da " -"mesa for igual ou maior que ela, é altamente recomendável abrir a porta da " -"frente e/ou remover o vidro superior para evitar entupimentos." +"O material amolece a esta temperatura, portanto, quando a temperatura da mesa for " +"igual ou maior que ela, é altamente recomendável abrir a porta da frente e/ou " +"remover o vidro superior para evitar entupimentos." msgid "Price" msgstr "Preço" @@ -11374,24 +11314,22 @@ msgid "(Undefined)" msgstr "(Indefinido)" msgid "Sparse infill direction" -msgstr "Direção do preenchimento" +msgstr "Direção do preenchimento esparso" msgid "" -"Angle for sparse infill pattern, which controls the start or main direction " -"of line" +"Angle for sparse infill pattern, which controls the start or main direction of line" msgstr "" -"Ângulo para o padrão de preenchimento não sólido, que controla o início ou a " -"direção principal da linha" +"Ângulo para o padrão de preenchimento esparso, que controla o início ou a direção " +"principal da linha" msgid "Solid infill direction" msgstr "Direção do preenchimento sólido" msgid "" -"Angle for solid infill pattern, which controls the start or main direction " -"of line" +"Angle for solid infill pattern, which controls the start or main direction of line" msgstr "" -"Ângulo para padrão de preenchimento sólido, que controla a direção inicial " -"ou principal da linha" +"Ângulo para padrão de preenchimento sólido, que controla a direção inicial ou " +"principal da linha" msgid "Rotate solid infill direction" msgstr "Rotaciona a direção do preenchimento sólido" @@ -11400,26 +11338,28 @@ msgid "Rotate the solid infill direction by 90° for each layer." msgstr "Rotaciona a direção do preenchimento em 90° para cada camada." msgid "Sparse infill density" -msgstr "Densidade do preenchimento" +msgstr "Densidade do preenchimento esparso" #, no-c-format, no-boost-format msgid "" -"Density of internal sparse infill, 100% turns all sparse infill into solid " -"infill and internal solid infill pattern will be used" +"Density of internal sparse infill, 100% turns all sparse infill into solid infill " +"and internal solid infill pattern will be used" msgstr "" -"Densidade do preenchimento não sólido interno, 100% transforma todo o " -"preenchimento não sólido em preenchimento sólido e será usado o padrão de " -"preenchimento sólido interno" +"Densidade do preenchimento esparso interno, 100% transforma todo o preenchimento " +"esparso em preenchimento sólido e será usado o padrão de preenchimento sólido interno" msgid "Sparse infill pattern" -msgstr "Padrão de preenchimento" +msgstr "Padrão de preenchimento esparso" msgid "Line pattern for internal sparse infill" -msgstr "Padrão de linha para preenchimento interno" +msgstr "Padrão de linha para preenchimento esparso interno" msgid "Grid" msgstr "Grade" +msgid "2D Lattice" +msgstr "" + msgid "Line" msgstr "Linha" @@ -11450,30 +11390,47 @@ msgstr "Relâmpago" msgid "Cross Hatch" msgstr "Padrão Cruzado" +msgid "Quarter Cubic" +msgstr "" + +msgid "Lattice angle 1" +msgstr "" + +msgid "" +"The angle of the first set of 2D lattice elements in the Z direction. Zero is " +"vertical." +msgstr "" + +msgid "Lattice angle 2" +msgstr "" + +msgid "" +"The angle of the second set of 2D lattice elements in the Z direction. Zero is " +"vertical." +msgstr "" + msgid "Sparse infill anchor length" -msgstr "Comp. da âncora de preenchimento" +msgstr "Comprimento da âncora de preenchimento esparso" msgid "" "Connect an infill line to an internal perimeter with a short segment of an " -"additional perimeter. If expressed as percentage (example: 15%) it is " -"calculated over infill extrusion width. Orca Slicer tries to connect two " -"close infill lines to a short perimeter segment. If no such perimeter " -"segment shorter than infill_anchor_max is found, the infill line is " -"connected to a perimeter segment at just one side and the length of the " -"perimeter segment taken is limited to this parameter, but no longer than " -"anchor_length_max. \n" -"Set this parameter to zero to disable anchoring perimeters connected to a " -"single infill line." +"additional perimeter. If expressed as percentage (example: 15%) it is calculated " +"over infill extrusion width. Orca Slicer tries to connect two close infill lines to " +"a short perimeter segment. If no such perimeter segment shorter than " +"infill_anchor_max is found, the infill line is connected to a perimeter segment at " +"just one side and the length of the perimeter segment taken is limited to this " +"parameter, but no longer than anchor_length_max. \n" +"Set this parameter to zero to disable anchoring perimeters connected to a single " +"infill line." msgstr "" -"Conecte uma linha de preenchimento a um perímetro interno com um segmento " -"curto de um perímetro adicional. Se expresso como porcentagem (exemplo: " -"15%), é calculado sobre a largura de extrusão do preenchimento. O Orca " -"Slicer tenta conectar duas linhas de preenchimento próximas a um segmento " -"curto de perímetro. Se nenhum segmento de perímetro mais curto que " -"infill_anchor_max for encontrado, a linha de preenchimento é conectada a um " -"segmento de perímetro em apenas um lado e o comprimento do segmento de " -"perímetro tomado é limitado a este parâmetro, mas não mais do que " -"anchor_length_max. \n" +"Conecte uma linha de preenchimento a um perímetro interno com um segmento curto de " +"um perímetro adicional. Se expresso como porcentagem (exemplo: 15%), é calculado " +"sobre a largura de extrusão do preenchimento. O Orca Slicer tenta conectar duas " +"linhas de preenchimento próximas a um segmento curto de perímetro. Se nenhum " +"segmento de perímetro mais curto que infill_anchor_max for encontrado, a linha de " +"preenchimento é conectada a um segmento de perímetro em apenas um lado e o " +"comprimento do segmento de perímetro tomado é limitado a este parâmetro, mas não " +"mais do que anchor_length_max. \n" "Defina este parâmetro como zero para desabilitar os perímetros de ancoragem " "conectados a uma única linha de preenchimento." @@ -11484,30 +11441,29 @@ msgid "1000 (unlimited)" msgstr "1000 (ilimitado)" msgid "Maximum length of the infill anchor" -msgstr "Comp. máx. da âncora de preench." +msgstr "Comprimento máximo da âncora de preenchimento" msgid "" "Connect an infill line to an internal perimeter with a short segment of an " -"additional perimeter. If expressed as percentage (example: 15%) it is " -"calculated over infill extrusion width. Orca Slicer tries to connect two " -"close infill lines to a short perimeter segment. If no such perimeter " -"segment shorter than this parameter is found, the infill line is connected " -"to a perimeter segment at just one side and the length of the perimeter " -"segment taken is limited to infill_anchor, but no longer than this " -"parameter. \n" -"If set to 0, the old algorithm for infill connection will be used, it should " -"create the same result as with 1000 & 0." +"additional perimeter. If expressed as percentage (example: 15%) it is calculated " +"over infill extrusion width. Orca Slicer tries to connect two close infill lines to " +"a short perimeter segment. If no such perimeter segment shorter than this parameter " +"is found, the infill line is connected to a perimeter segment at just one side and " +"the length of the perimeter segment taken is limited to infill_anchor, but no longer " +"than this parameter. \n" +"If set to 0, the old algorithm for infill connection will be used, it should create " +"the same result as with 1000 & 0." msgstr "" -"Conecte uma linha de preenchimento a um perímetro interno com um segmento " -"curto de um perímetro adicional. Se expresso como porcentagem (exemplo: " -"15%), é calculado sobre a largura de extrusão do preenchimento. O Orca " -"Slicer tenta conectar duas linhas de preenchimento próximas a um segmento " -"curto de perímetro. Se nenhum segmento de perímetro mais curto que este " -"parâmetro for encontrado, a linha de preenchimento é conectada a um segmento " -"de perímetro em apenas um lado e o comprimento do segmento de perímetro " -"tomado é limitado a infill_anchor, mas não mais do que este parâmetro. \n" -"Se definido como 0, o antigo algoritmo de conexão de preenchimento será " -"usado, ele deve criar o mesmo resultado que com 1000 e 0." +"Conecte uma linha de preenchimento a um perímetro interno com um segmento curto de " +"um perímetro adicional. Se expresso como porcentagem (exemplo: 15%), é calculado " +"sobre a largura de extrusão do preenchimento. O Orca Slicer tenta conectar duas " +"linhas de preenchimento próximas a um segmento curto de perímetro. Se nenhum " +"segmento de perímetro mais curto que este parâmetro for encontrado, a linha de " +"preenchimento é conectada a um segmento de perímetro em apenas um lado e o " +"comprimento do segmento de perímetro tomado é limitado a infill_anchor, mas não mais " +"do que este parâmetro. \n" +"Se definido como 0, o antigo algoritmo de conexão de preenchimento será usado, ele " +"deve criar o mesmo resultado que com 1000 e 0." msgid "0 (Simple connect)" msgstr "0 (Conexão simples)" @@ -11522,50 +11478,43 @@ msgid "Acceleration of travel moves" msgstr "Aceleração dos movimentos de deslocamento" msgid "" -"Acceleration of top surface infill. Using a lower value may improve top " -"surface quality" +"Acceleration of top surface infill. Using a lower value may improve top surface " +"quality" msgstr "" "Aceleração do preenchimento da superfície superior. Usar um valor menor pode " "melhorar a qualidade da superfície superior" msgid "Acceleration of outer wall. Using a lower value can improve quality" -msgstr "" -"Aceleração do perímetro externo. Usar um valor menor pode melhorar a " -"qualidade" +msgstr "Aceleração do perímetro externo. Usar um valor menor pode melhorar a qualidade" msgid "" -"Acceleration of bridges. If the value is expressed as a percentage (e.g. " -"50%), it will be calculated based on the outer wall acceleration." +"Acceleration of bridges. If the value is expressed as a percentage (e.g. 50%), it " +"will be calculated based on the outer wall acceleration." msgstr "" -"Aceleração das pontes. Se o valor for expresso como uma porcentagem (por " -"exemplo, 50%), será calculado com base na aceleração do perímetro externo." +"Aceleração das pontes. Se o valor for expresso como uma porcentagem (por exemplo, " +"50%), será calculado com base na aceleração do perímetro externo." msgid "mm/s² or %" msgstr "mm/s² ou %" msgid "" -"Acceleration of sparse infill. If the value is expressed as a percentage " -"(e.g. 100%), it will be calculated based on the default acceleration." +"Acceleration of sparse infill. If the value is expressed as a percentage (e.g. " +"100%), it will be calculated based on the default acceleration." msgstr "" -"Aceleração do preenchimento não sólido. Se o valor for expresso como uma " -"porcentagem (por exemplo, 100%), será calculado com base na aceleração " -"padrão." +"Aceleração do preenchimento esparso. Se o valor for expresso como uma porcentagem " +"(por exemplo, 100%), será calculado com base na aceleração padrão." msgid "" -"Acceleration of internal solid infill. If the value is expressed as a " -"percentage (e.g. 100%), it will be calculated based on the default " -"acceleration." +"Acceleration of internal solid infill. If the value is expressed as a percentage (e." +"g. 100%), it will be calculated based on the default acceleration." msgstr "" "Aceleração do preenchimento sólido interno. Se o valor for expresso como uma " -"porcentagem (por exemplo, 100%), será calculado com base na aceleração " -"padrão." +"porcentagem (por exemplo, 100%), será calculado com base na aceleração padrão." msgid "" -"Acceleration of initial layer. Using a lower value can improve build plate " -"adhesive" +"Acceleration of initial layer. Using a lower value can improve build plate adhesive" msgstr "" -"Aceleração da primeira camada. Usar um valor menor pode melhorar a adesão à " -"mesa" +"Aceleração da primeira camada. Usar um valor menor pode melhorar a adesão à mesa" msgid "Enable accel_to_decel" msgstr "Habilitar accel_to_decel" @@ -11577,10 +11526,8 @@ msgid "accel_to_decel" msgstr "accel_to_decel" #, c-format, boost-format -msgid "" -"Klipper's max_accel_to_decel will be adjusted to this %% of acceleration" -msgstr "" -"O max_accel_to_decel do Klipper será ajustado para esse %% de aceleração" +msgid "Klipper's max_accel_to_decel will be adjusted to this %% of acceleration" +msgstr "O max_accel_to_decel do Klipper será ajustado para esse %% de aceleração" msgid "Jerk of outer walls" msgstr "Jerk nas paredes externas" @@ -11601,21 +11548,21 @@ msgid "Jerk for travel" msgstr "Jerk no deslocamento" msgid "" -"Line width of initial layer. If expressed as a %, it will be computed over " -"the nozzle diameter." +"Line width of initial layer. If expressed as a %, it will be computed over the " +"nozzle diameter." msgstr "" -"Largura da linha da primeira camada. Se expresso como uma %, será calculado " -"sobre o diâmetro do bico." +"Largura da linha da primeira camada. Se expresso como uma %, será calculado sobre o " +"diâmetro do bico." msgid "Initial layer height" msgstr "Altura da primeira camada" msgid "" -"Height of initial layer. Making initial layer height to be thick slightly " -"can improve build plate adhesion" +"Height of initial layer. Making initial layer height to be thick slightly can " +"improve build plate adhesion" msgstr "" -"Altura da primeira camada. Tornar a altura da primeira camada ligeiramente " -"espessa pode melhorar a adesão à mesa" +"Altura da primeira camada. Tornar a altura da primeira camada ligeiramente espessa " +"pode melhorar a adesão à mesa" msgid "Speed of initial layer except the solid infill part" msgstr "Velocidade da primeira camada, exceto a parte de preenchimento sólido" @@ -11639,59 +11586,63 @@ msgid "" "The first few layers are printed slower than normal. The speed is gradually " "increased in a linear fashion over the specified number of layers." msgstr "" -"As primeiras camadas são impressas mais lentamente do que o normal. A " -"velocidade é aumentada gradualmente de forma linear sobre o número " -"especificado de camadas." +"As primeiras camadas são impressas mais lentamente do que o normal. A velocidade é " +"aumentada gradualmente de forma linear sobre o número especificado de camadas." msgid "Initial layer nozzle temperature" msgstr "Temperatura do bico da primeira camada" msgid "Nozzle temperature to print initial layer when using this filament" -msgstr "" -"Temperatura do bico para imprimir a primeira camada ao usar este filamento" +msgstr "Temperatura do bico para imprimir a primeira camada ao usar este filamento" msgid "Full fan speed at layer" msgstr "Velocidade total do ventilador na camada" msgid "" "Fan speed will be ramped up linearly from zero at layer " -"\"close_fan_the_first_x_layers\" to maximum at layer " -"\"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower " -"than \"close_fan_the_first_x_layers\", in which case the fan will be running " -"at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1." +"\"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer\". " +"\"full_fan_speed_layer\" will be ignored if lower than " +"\"close_fan_the_first_x_layers\", in which case the fan will be running at maximum " +"allowed speed at layer \"close_fan_the_first_x_layers\" + 1." msgstr "" "A velocidade do ventilador aumentará linearmente de zero na camada " -"\"close_fan_the_first_x_layers\" para o máximo na camada " -"\"full_fan_speed_layer\". \"full_fan_speed_layer\" será ignorado se for " -"menor que \"close_fan_the_first_x_layers\", caso em que o ventilador " -"funcionará na velocidade máxima permitida na camada " -"\"close_fan_the_first_x_layers\" + 1." +"\"close_fan_the_first_x_layers\" para o máximo na camada \"full_fan_speed_layer\". " +"\"full_fan_speed_layer\" será ignorado se for menor que " +"\"close_fan_the_first_x_layers\", caso em que o ventilador funcionará na velocidade " +"máxima permitida na camada \"close_fan_the_first_x_layers\" + 1." msgid "layer" -msgstr "" +msgstr "camada" msgid "Support interface fan speed" msgstr "Velocidade do ventilador de interface de suporte" msgid "" -"This fan speed is enforced during all support interfaces, to be able to " -"weaken their bonding with a high fan speed.\n" -"Set to -1 to disable this override.\n" -"Can only be overridden by disable_fan_first_layers." +"This part cooling fan speed is applied when printing support interfaces. Setting " +"this parameter to a higher than regular speed reduces the layer binding strength " +"between supports and the supported part, making them easier to separate.\n" +"Set to -1 to disable it.\n" +"This setting is overridden by disable_fan_first_layers." +msgstr "" + +msgid "Internal bridges fan speed" msgstr "" -"Esta velocidade do ventilador é aplicada durante todas as interfaces de " -"suporte, para enfraquecer sua ligação com uma alta velocidade do " -"ventilador.\n" -"Defina como -1 para desativar esta substituição.\n" -"Só pode ser substituído por disable_fan_first_layers." msgid "" -"Randomly jitter while printing the wall, so that the surface has a rough " -"look. This setting controls the fuzzy position" +"The part cooling fan speed used for all internal bridges. Set to -1 to use the " +"overhang fan speed settings instead.\n" +"\n" +"Reducing the internal bridges fan speed, compared to your regular fan speed, can " +"help reduce part warping due to excessive cooling applied over a large surface for a " +"prolonged period of time." msgstr "" -"Movimento aleatório durante a impressão do perímetro, de modo que a " -"superfície tenha uma aparência áspera. Essa configuração controla a textura " -"fuzzy" + +msgid "" +"Randomly jitter while printing the wall, so that the surface has a rough look. This " +"setting controls the fuzzy position" +msgstr "" +"Movimento aleatório durante a impressão do perímetro, de modo que a superfície tenha " +"uma aparência áspera. Essa configuração controla a textura fuzzy" msgid "Contour" msgstr "Contorno" @@ -11706,21 +11657,17 @@ msgid "Fuzzy skin thickness" msgstr "Espessura da textura fuzzy" msgid "" -"The width within which to jitter. It's advised to be below outer wall line " -"width" +"The width within which to jitter. It's advised to be below outer wall line width" msgstr "" -"A largura dentro da qual tremer. É desaconselhável que seja menor do que a " -"largura da linha do perímetro externo" +"A largura dentro da qual tremer. É desaconselhável que seja menor do que a largura " +"da linha do perímetro externo" msgid "Fuzzy skin point distance" msgstr "Distância do ponto da textura fuzzy" -msgid "" -"The average distance between the random points introduced on each line " -"segment" +msgid "The average distance between the random points introduced on each line segment" msgstr "" -"A distância média entre os pontos aleatórios introduzidos em cada segmento " -"de linha" +"A distância média entre os pontos aleatórios introduzidos em cada segmento de linha" msgid "Apply fuzzy skin to first layer" msgstr "Aplicar texture fuzzy à primeira camada" @@ -11728,6 +11675,59 @@ msgstr "Aplicar texture fuzzy à primeira camada" msgid "Whether to apply fuzzy skin on the first layer" msgstr "Se deve aplicar textura fuzzy na primeira camada" +msgid "Fuzzy skin noise type" +msgstr "" + +msgid "" +"Noise type to use for fuzzy skin generation.\n" +"Classic: Classic uniform random noise.\n" +"Perlin: Perlin noise, which gives a more consistent texture.\n" +"Billow: Similar to perlin noise, but clumpier.\n" +"Ridged Multifractal: Ridged noise with sharp, jagged features. Creates marble-like " +"textures.\n" +"Voronoi: Divides the surface into voronoi cells, and displaces each one by a random " +"amount. Creates a patchwork texture." +msgstr "" + +msgid "Classic" +msgstr "Clássico" + +msgid "Perlin" +msgstr "Perlin" + +msgid "Billow" +msgstr "Billow" + +msgid "Ridged Multifractal" +msgstr "" + +msgid "Voronoi" +msgstr "Voronoi" + +msgid "Fuzzy skin feature size" +msgstr "" + +msgid "" +"The base size of the coherent noise features, in mm. Higher values will result in " +"larger features." +msgstr "" + +msgid "Fuzzy Skin Noise Octaves" +msgstr "" + +msgid "" +"The number of octaves of coherent noise to use. Higher values increase the detail of " +"the noise, but also increase computation time." +msgstr "" + +msgid "Fuzzy skin noise persistence" +msgstr "" + +msgid "" +"The decay rate for higher octaves of the coherent noise. Lower values will result in " +"smoother noise." +msgstr "" + msgid "Filter out tiny gaps" msgstr "Filtrar vazios pequenos" @@ -11735,80 +11735,76 @@ msgid "Layers and Perimeters" msgstr "Camadas e Perímetros" msgid "" -"Don't print gap fill with a length is smaller than the threshold specified " -"(in mm). This setting applies to top, bottom and solid infill and, if using " -"the classic perimeter generator, to wall gap fill. " +"Don't print gap fill with a length is smaller than the threshold specified (in mm). " +"This setting applies to top, bottom and solid infill and, if using the classic " +"perimeter generator, to wall gap fill. " msgstr "" msgid "" -"Speed of gap infill. Gap usually has irregular line width and should be " -"printed more slowly" +"Speed of gap infill. Gap usually has irregular line width and should be printed more " +"slowly" msgstr "" -"Velocidade de preenchimento de vão. Vazios geralmente têm largura de linha " -"irregular e devem ser impressas mais lentamente" +"Velocidade de preenchimento de vão. Vazios geralmente têm largura de linha irregular " +"e devem ser impressas mais lentamente" msgid "Precise Z height" msgstr "Altura Z precisa" msgid "" -"Enable this to get precise z height of object after slicing. It will get the " -"precise object height by fine-tuning the layer heights of the last few " -"layers. Note that this is an experimental parameter." +"Enable this to get precise z height of object after slicing. It will get the precise " +"object height by fine-tuning the layer heights of the last few layers. Note that " +"this is an experimental parameter." msgstr "" -"Ative isto para obter altura Z precisa do objeto após fatiar. Ele obterá a " -"altura do objeto exata ajustando as alturas da camada das últimas camadas. " -"Observe que este é um parâmetro experimental." +"Ative isto para obter altura Z precisa do objeto após fatiar. Ele obterá a altura do " +"objeto exata ajustando as alturas da camada das últimas camadas. Observe que este é " +"um parâmetro experimental." msgid "Arc fitting" msgstr "Ajuste de arco (Arc fitting)" msgid "" -"Enable this to get a G-code file which has G2 and G3 moves. The fitting " -"tolerance is same as the resolution. \n" +"Enable this to get a G-code file which has G2 and G3 moves. The fitting tolerance is " +"same as the resolution. \n" "\n" -"Note: For Klipper machines, this option is recommended to be disabled. " -"Klipper does not benefit from arc commands as these are split again into " -"line segments by the firmware. This results in a reduction in surface " -"quality as line segments are converted to arcs by the slicer and then back " -"to line segments by the firmware." +"Note: For Klipper machines, this option is recommended to be disabled. Klipper does " +"not benefit from arc commands as these are split again into line segments by the " +"firmware. This results in a reduction in surface quality as line segments are " +"converted to arcs by the slicer and then back to line segments by the firmware." msgstr "" -"Habilite isso para obter um arquivo de código G, que tenha movimentos G2 e " -"G3. A tolerância adequada é a mesma que a resolução. \n" +"Habilite isso para obter um arquivo de código G, que tenha movimentos G2 e G3. A " +"tolerância adequada é a mesma que a resolução. \n" "\n" -"Nota: Para máquinas klipper, esta opção é recomendada estar desativada. " -"Klipper não beneficia de comandos de arco pois eles são divididos novamente " -"em segmentos de linha pelo firmware. Isso resulta em uma redução da " -"qualidade de superfície à medida que os segmentos de linha são convertidos " -"em arcos pelo fatiador e depois revertem para segmentos de linha pelo " -"firmware." +"Nota: Para máquinas klipper, esta opção é recomendada estar desativada. Klipper não " +"beneficia de comandos de arco pois eles são divididos novamente em segmentos de " +"linha pelo firmware. Isso resulta em uma redução da qualidade de superfície à medida " +"que os segmentos de linha são convertidos em arcos pelo fatiador e depois revertem " +"para segmentos de linha pelo firmware." msgid "Add line number" msgstr "Adicionar número da linha" msgid "Enable this to add line number(Nx) at the beginning of each G-Code line" msgstr "" -"Habilitar isso para adicionar o número da linha (Nx) no início de cada linha " -"do G-Code" +"Habilitar isso para adicionar o número da linha (Nx) no início de cada linha do G-" +"Code" msgid "Scan first layer" msgstr "Escanear primeira camada" -msgid "" -"Enable this to enable the camera on printer to check the quality of first " -"layer" +msgid "Enable this to enable the camera on printer to check the quality of first layer" msgstr "" -"Habilitar isso para ativar a câmera na impressora para verificar a qualidade " -"da primeira camada" +"Habilitar isso para ativar a câmera na impressora para verificar a qualidade da " +"primeira camada" msgid "Nozzle type" msgstr "Tipo de bico" msgid "" -"The metallic material of nozzle. This determines the abrasive resistance of " -"nozzle, and what kind of filament can be printed" +"The metallic material of nozzle. This determines the abrasive resistance of nozzle, " +"and what kind of filament can be printed" msgstr "" -"O material metálico do bico. Isso determina a resistência ao desgaste do " -"bico e que tipo de filamento pode ser impresso" +"O material metálico do bico. Isso determina a resistência ao desgaste do bico e que " +"tipo de filamento pode ser impresso" msgid "Undefine" msgstr "Não definido" @@ -11826,11 +11822,10 @@ msgid "Nozzle HRC" msgstr "Bico HRC" msgid "" -"The nozzle's hardness. Zero means no checking for nozzle's hardness during " -"slicing." +"The nozzle's hardness. Zero means no checking for nozzle's hardness during slicing." msgstr "" -"A dureza do bico. Zero significa que não há verificação da dureza do bico " -"durante a fatiamento." +"A dureza do bico. Zero significa que não há verificação da dureza do bico durante a " +"fatiamento." msgid "HRC" msgstr "RH" @@ -11858,35 +11853,32 @@ msgstr "Melhor posição do objeto" msgid "Best auto arranging position in range [0,1] w.r.t. bed shape." msgstr "" -"Melhor posição de arranjo automático na faixa [0,1] em relação ao formato da " -"mesa." +"Melhor posição de arranjo automático na faixa [0,1] em relação ao formato da mesa." msgid "" -"Enable this option if machine has auxiliary part cooling fan. G-code " -"command: M106 P2 S(0-255)." +"Enable this option if machine has auxiliary part cooling fan. G-code command: M106 " +"P2 S(0-255)." msgstr "" -"Habilitar esta opção se a máquina tiver ventilador auxiliar de resfriamento " -"da peça. Comando G-code: M106 P2 S(0-255)." +"Habilitar esta opção se a máquina tiver ventilador auxiliar de resfriamento da peça. " +"Comando G-code: M106 P2 S(0-255)." msgid "" -"Start the fan this number of seconds earlier than its target start time (you " -"can use fractional seconds). It assumes infinite acceleration for this time " -"estimation, and will only take into account G1 and G0 moves (arc fitting is " -"unsupported).\n" -"It won't move fan commands from custom gcodes (they act as a sort of " -"'barrier').\n" -"It won't move fan commands into the start gcode if the 'only custom start " -"gcode' is activated.\n" +"Start the fan this number of seconds earlier than its target start time (you can use " +"fractional seconds). It assumes infinite acceleration for this time estimation, and " +"will only take into account G1 and G0 moves (arc fitting is unsupported).\n" +"It won't move fan commands from custom gcodes (they act as a sort of 'barrier').\n" +"It won't move fan commands into the start gcode if the 'only custom start gcode' is " +"activated.\n" "Use 0 to deactivate." msgstr "" -"Comece o ventilador este número de segundos antes do tempo de início do alvo " -"(você pode usar segundos fracionários). Ele assume aceleração infinita para " -"esta estimativa de tempo e só levará em conta os movimentos G1 e G0 (o " -"ajuste de arco não é suportado).\n" -"Não moverá comandos do ventilador de gcodes personalizados (eles funcionam " -"como uma espécie de 'barreira').\n" -"Não moverá comandos do ventilador para o início do gcode se o 'apenas gcode " -"de início personalizado' estiver ativado.\n" +"Comece o ventilador este número de segundos antes do tempo de início do alvo (você " +"pode usar segundos fracionários). Ele assume aceleração infinita para esta " +"estimativa de tempo e só levará em conta os movimentos G1 e G0 (o ajuste de arco não " +"é suportado).\n" +"Não moverá comandos do ventilador de gcodes personalizados (eles funcionam como uma " +"espécie de 'barreira').\n" +"Não moverá comandos do ventilador para o início do gcode se o 'apenas gcode de " +"início personalizado' estiver ativado.\n" "Use 0 para desativar." msgid "Only overhangs" @@ -11899,18 +11891,17 @@ msgid "Fan kick-start time" msgstr "Tempo de inicialização do ventilador" msgid "" -"Emit a max fan speed command for this amount of seconds before reducing to " -"target speed to kick-start the cooling fan.\n" -"This is useful for fans where a low PWM/power may be insufficient to get the " -"fan started spinning from a stop, or to get the fan up to speed faster.\n" +"Emit a max fan speed command for this amount of seconds before reducing to target " +"speed to kick-start the cooling fan.\n" +"This is useful for fans where a low PWM/power may be insufficient to get the fan " +"started spinning from a stop, or to get the fan up to speed faster.\n" "Set to 0 to deactivate." msgstr "" -"Emita um comando de velocidade máxima do ventilador por esta quantidade de " -"segundos antes de reduzir para a velocidade alvo para iniciar o ventilador " -"de resfriamento.\n" -"Isto é útil para ventiladores onde um baixo PWM/potência pode ser " -"insuficiente para fazer o ventilador começar a girar a partir de uma parada, " -"ou para fazer o ventilador alcançar a velocidade mais rapidamente.\n" +"Emita um comando de velocidade máxima do ventilador por esta quantidade de segundos " +"antes de reduzir para a velocidade alvo para iniciar o ventilador de resfriamento.\n" +"Isto é útil para ventiladores onde um baixo PWM/potência pode ser insuficiente para " +"fazer o ventilador começar a girar a partir de uma parada, ou para fazer o " +"ventilador alcançar a velocidade mais rapidamente.\n" "Defina como 0 para desativar." msgid "Time cost" @@ -11929,8 +11920,8 @@ msgid "" "This option is enabled if machine support controlling chamber temperature\n" "G-code command: M141 S(0-255)" msgstr "" -"Esta opção está habilitada se a máquina suportar o controle da temperatura " -"da câmara.\n" +"Esta opção está habilitada se a máquina suportar o controle da temperatura da " +"câmara.\n" "Comando G-code: M141 S(0-255)" msgid "Support air filtration" @@ -11940,8 +11931,8 @@ msgid "" "Enable this if printer support air filtration\n" "G-code command: M106 P3 S(0-255)" msgstr "" -"Esta opção está habilitada se a máquina suportar o controle da temperatura " -"da câmara.\n" +"Esta opção está habilitada se a máquina suportar o controle da temperatura da " +"câmara.\n" "Comando G-code: M141 S(0-255)" msgid "G-code flavor" @@ -11969,16 +11960,15 @@ msgid "Label objects" msgstr "Etiquetar objetos" msgid "" -"Enable this to add comments into the G-Code labeling print moves with what " -"object they belong to, which is useful for the Octoprint CancelObject " -"plugin. This settings is NOT compatible with Single Extruder Multi Material " -"setup and Wipe into Object / Wipe into Infill." +"Enable this to add comments into the G-Code labeling print moves with what object " +"they belong to, which is useful for the Octoprint CancelObject plugin. This settings " +"is NOT compatible with Single Extruder Multi Material setup and Wipe into Object / " +"Wipe into Infill." msgstr "" -"Ative isso para adicionar comentários no G-Code etiquetando movimentos de " -"impressão com a qual objeto eles pertencem, o que é útil para o plugin " -"CancelObject do Octoprint. Esta configuração NÃO é compatível com a " -"configuração de Material Múltiplo de Extrusora Única e Limpeza no Objeto / " -"Limpeza no Preenchimento." +"Ative isso para adicionar comentários no G-Code etiquetando movimentos de impressão " +"com a qual objeto eles pertencem, o que é útil para o plugin CancelObject do " +"Octoprint. Esta configuração NÃO é compatível com a configuração de Material " +"Múltiplo de Extrusora Única e Limpeza no Objeto / Limpeza no Preenchimento." msgid "Exclude objects" msgstr "Excluir objetos" @@ -11991,23 +11981,23 @@ msgstr "G-code detalhado" msgid "" "Enable this to get a commented G-code file, with each line explained by a " -"descriptive text. If you print from SD card, the additional weight of the " -"file could make your firmware slow down." +"descriptive text. If you print from SD card, the additional weight of the file could " +"make your firmware slow down." msgstr "" -"Ative isso para obter um arquivo G-code comentado, com cada linha explicada " -"por um texto descritivo. Se você imprimir do cartão SD, o peso adicional do " -"arquivo pode fazer com que o firmware fique mais lento." +"Ative isso para obter um arquivo G-code comentado, com cada linha explicada por um " +"texto descritivo. Se você imprimir do cartão SD, o peso adicional do arquivo pode " +"fazer com que o firmware fique mais lento." msgid "Infill combination" msgstr "Combinar preenchimento" msgid "" -"Automatically Combine sparse infill of several layers to print together to " -"reduce time. Wall is still printed with original layer height." +"Automatically Combine sparse infill of several layers to print together to reduce " +"time. Wall is still printed with original layer height." msgstr "" -"Combina automaticamente o preenchimento não sólido de várias camadas para " -"imprimir juntas e reduzir o tempo. O perímetro ainda é impresso com a altura " -"original da camada." +"Combina automaticamente o preenchimento esparso de várias camadas para imprimir " +"juntas e reduzir o tempo. O perímetro ainda é impresso com a altura original da " +"camada." msgid "Infill combination - Max layer height" msgstr "" @@ -12015,80 +12005,76 @@ msgstr "" msgid "" "Maximum layer height for the combined sparse infill. \n" "\n" -"Set it to 0 or 100% to use the nozzle diameter (for maximum reduction in " -"print time) or a value of ~80% to maximize sparse infill strength.\n" +"Set it to 0 or 100% to use the nozzle diameter (for maximum reduction in print time) " +"or a value of ~80% to maximize sparse infill strength.\n" "\n" -"The number of layers over which infill is combined is derived by dividing " -"this value with the layer height and rounded down to the nearest decimal.\n" +"The number of layers over which infill is combined is derived by dividing this value " +"with the layer height and rounded down to the nearest decimal.\n" "\n" -"Use either absolute mm values (eg. 0.32mm for a 0.4mm nozzle) or % values " -"(eg 80%). This value must not be larger than the nozzle diameter." +"Use either absolute mm values (eg. 0.32mm for a 0.4mm nozzle) or % values (eg 80%). " +"This value must not be larger than the nozzle diameter." msgstr "" msgid "Filament to print internal sparse infill." -msgstr "Filamento para imprimir preenchimento interno não sólido." +msgstr "Filamento para imprimir preenchimento esparso interno." msgid "" -"Line width of internal sparse infill. If expressed as a %, it will be " -"computed over the nozzle diameter." +"Line width of internal sparse infill. If expressed as a %, it will be computed over " +"the nozzle diameter." msgstr "" -"Largura da linha do preenchimento interno não sólido. Se expresso como %, " -"será calculado sobre o diâmetro do bico." +"Largura da linha do preenchimento esparso interno. Se expresso como %, será " +"calculado sobre o diâmetro do bico." msgid "Infill/Wall overlap" msgstr "Sobreposição de preenchimento/perímetro" #, no-c-format, no-boost-format msgid "" -"Infill area is enlarged slightly to overlap with wall for better bonding. " -"The percentage value is relative to line width of sparse infill. Set this " -"value to ~10-15% to minimize potential over extrusion and accumulation of " -"material resulting in rough top surfaces." +"Infill area is enlarged slightly to overlap with wall for better bonding. The " +"percentage value is relative to line width of sparse infill. Set this value to " +"~10-15% to minimize potential over extrusion and accumulation of material resulting " +"in rough top surfaces." msgstr "" -"A área de preenchimento é aumentada ligeiramente para se sobrepor à parede " -"para uma melhor ligação. O valor percentual é relativo à largura da linha do " -"preencimento. Defina este valor como ~10-15% para minimizar uma potencial " -"sobre extrusão e acumulo de material resultando em superfícies superiores " -"ásperas." +"A área de preenchimento é aumentada ligeiramente para se sobrepor à parede para uma " +"melhor ligação. O valor percentual é relativo à largura da linha do preencimento " +"esparso. Defina este valor como ~10-15% para minimizar uma potencial sobre extrusão " +"e acumulo de material resultando em superfícies superiores ásperas." msgid "Top/Bottom solid infill/wall overlap" msgstr "Sobreposição Superior/Inferior de preenchimento sólido/parede" #, no-c-format, no-boost-format msgid "" -"Top solid infill area is enlarged slightly to overlap with wall for better " -"bonding and to minimize the appearance of pinholes where the top infill " -"meets the walls. A value of 25-30% is a good starting point, minimizing the " -"appearance of pinholes. The percentage value is relative to line width of " -"sparse infill" +"Top solid infill area is enlarged slightly to overlap with wall for better bonding " +"and to minimize the appearance of pinholes where the top infill meets the walls. A " +"value of 25-30% is a good starting point, minimizing the appearance of pinholes. The " +"percentage value is relative to line width of sparse infill" msgstr "" -"A área de preenchimento sólido é ligeiramente alargada para se sobrepor à " -"parede para melhor ligação e para minimizar a aparência de buracos onde o " -"preenchimento encontra as paredes. Um valor de 25-30% é um bom ponto de " -"partida, minimizando a aparência dos buracos. O valor percentual é relativo " -"à largura da linha do preenchimento" +"A área de preenchimento sólido é ligeiramente alargada para se sobrepor à parede " +"para melhor ligação e para minimizar a aparência de buracos onde o preenchimento " +"encontra as paredes. Um valor de 25-30% é um bom ponto de partida, minimizando a " +"aparência dos buracos. O valor percentual é relativo à largura da linha do " +"preenchimento esparso" msgid "Speed of internal sparse infill" -msgstr "Velocidade do preenchimento" +msgstr "Velocidade do preenchimento esparso interno" msgid "Interface shells" msgstr "Paredes de interface" msgid "" -"Force the generation of solid shells between adjacent materials/volumes. " -"Useful for multi-extruder prints with translucent materials or manual " -"soluble support material" +"Force the generation of solid shells between adjacent materials/volumes. Useful for " +"multi-extruder prints with translucent materials or manual soluble support material" msgstr "" -"Força a geração de perímetros sólidos entre materiais/volumes adjacentes. " -"Útil para impressões com múltiplos extrusores com materiais translúcidos ou " -"suporte solúvel manual" +"Força a geração de perímetros sólidos entre materiais/volumes adjacentes. Útil para " +"impressões com múltiplos extrusores com materiais translúcidos ou suporte solúvel " +"manual" msgid "Maximum width of a segmented region" msgstr "Largura máxima de uma região segmentada" msgid "Maximum width of a segmented region. Zero disables this feature." -msgstr "" -"Largura máxima de uma região segmentada. Zero desativa essa funcionalidade." +msgstr "Largura máxima de uma região segmentada. Zero desativa essa funcionalidade." msgid "Interlocking depth of a segmented region" msgstr "Profundidade de entrelaçamento de uma região segmentada" @@ -12104,9 +12090,9 @@ msgid "Use beam interlocking" msgstr "" msgid "" -"Generate interlocking beam structure at the locations where different " -"filaments touch. This improves the adhesion between filaments, especially " -"models printed in different materials." +"Generate interlocking beam structure at the locations where different filaments " +"touch. This improves the adhesion between filaments, especially models printed in " +"different materials." msgstr "" msgid "Interlocking beam width" @@ -12125,36 +12111,36 @@ msgid "Interlocking beam layers" msgstr "" msgid "" -"The height of the beams of the interlocking structure, measured in number of " -"layers. Less layers is stronger, but more prone to defects." +"The height of the beams of the interlocking structure, measured in number of layers. " +"Less layers is stronger, but more prone to defects." msgstr "" msgid "Interlocking depth" msgstr "" msgid "" -"The distance from the boundary between filaments to generate interlocking " -"structure, measured in cells. Too few cells will result in poor adhesion." +"The distance from the boundary between filaments to generate interlocking structure, " +"measured in cells. Too few cells will result in poor adhesion." msgstr "" msgid "Interlocking boundary avoidance" msgstr "" msgid "" -"The distance from the outside of a model where interlocking structures will " -"not be generated, measured in cells." +"The distance from the outside of a model where interlocking structures will not be " +"generated, measured in cells." msgstr "" msgid "Ironing Type" msgstr "Tipo do passar ferro" msgid "" -"Ironing is using small flow to print on same height of surface again to make " -"flat surface more smooth. This setting controls which layer being ironed" +"Ironing is using small flow to print on same height of surface again to make flat " +"surface more smooth. This setting controls which layer being ironed" msgstr "" -"Passar a ferro utiliza um pequeno fluxo para imprimir na mesma altura da " -"superfície novamente para deixá-la mais lisa. Esta configuração controla " -"qual camada está sendo passada a ferro" +"Passar a ferro utiliza um pequeno fluxo para imprimir na mesma altura da superfície " +"novamente para deixá-la mais lisa. Esta configuração controla qual camada está sendo " +"passada a ferro" msgid "No ironing" msgstr "Desativado" @@ -12178,12 +12164,11 @@ msgid "Ironing flow" msgstr "Fluxo do passar ferro" msgid "" -"The amount of material to extrude during ironing. Relative to flow of normal " -"layer height. Too high value results in overextrusion on the surface" +"The amount of material to extrude during ironing. Relative to flow of normal layer " +"height. Too high value results in overextrusion on the surface" msgstr "" -"A quantidade de material a extrudar durante o passar a ferro. Relativo ao " -"fluxo da altura normal da camada. Um valor muito alto resulta em " -"superextrusão na superfície" +"A quantidade de material a extrudar durante o passar a ferro. Relativo ao fluxo da " +"altura normal da camada. Um valor muito alto resulta em superextrusão na superfície" msgid "Ironing line spacing" msgstr "Espaçamento de linha do passar ferro" @@ -12191,6 +12176,14 @@ msgstr "Espaçamento de linha do passar ferro" msgid "The distance between the lines of ironing" msgstr "A distância entre as linhas do passar ferro" +msgid "Ironing inset" +msgstr "" + +msgid "" +"The distance to keep from the edges. A value of 0 sets this to half of the nozzle " +"diameter" +msgstr "" + msgid "Ironing speed" msgstr "Velocidade do passar ferro" @@ -12201,25 +12194,24 @@ msgid "Ironing angle" msgstr "Ângulo do passar ferro" msgid "" -"The angle ironing is done at. A negative number disables this function and " -"uses the default method." +"The angle ironing is done at. A negative number disables this function and uses the " +"default method." msgstr "" -"O ângulo em que o passar a ferro é feito. Um número negativo desativa essa " -"função e usa o método padrão." +"O ângulo em que o passar a ferro é feito. Um número negativo desativa essa função e " +"usa o método padrão." msgid "This gcode part is inserted at every layer change after lift z" -msgstr "" -"Esta parte do gcode é inserida em cada mudança de camada após levantar z" +msgstr "Esta parte do gcode é inserida em cada mudança de camada após levantar z" msgid "Supports silent mode" msgstr "Suporta modo silencioso" msgid "" -"Whether the machine supports silent mode in which machine use lower " -"acceleration to print" +"Whether the machine supports silent mode in which machine use lower acceleration to " +"print" msgstr "" -"Se a máquina suporta o modo silencioso, no qual a máquina usa uma aceleração " -"mais baixa para imprimir" +"Se a máquina suporta o modo silencioso, no qual a máquina usa uma aceleração mais " +"baixa para imprimir" msgid "Emit limits to G-code" msgstr "Emitir limites para o G-code" @@ -12235,11 +12227,11 @@ msgstr "" "Esta opção será ignorada se o tipo do G-code estiver definido para Klipper." msgid "" -"This G-code will be used as a code for the pause print. User can insert " -"pause G-code in gcode viewer" +"This G-code will be used as a code for the pause print. User can insert pause G-code " +"in gcode viewer" msgstr "" -"Este G-code será usado como um código para pausar a impressão. O usuário " -"pode inserir o G-code de pausa no visualizador de G-code" +"Este G-code será usado como um código para pausar a impressão. O usuário pode " +"inserir o G-code de pausa no visualizador de G-code" msgid "This G-code will be used as a custom code" msgstr "Este G-code será usado como um código personalizado" @@ -12254,15 +12246,14 @@ msgid "Flow Compensation Model" msgstr "Modelo de Compensação de Fluxo" msgid "" -"Flow Compensation Model, used to adjust the flow for small infill areas. The " -"model is expressed as a comma separated pair of values for extrusion length " -"and flow correction factors, one per line, in the following format: " -"\"1.234,5.678\"" +"Flow Compensation Model, used to adjust the flow for small infill areas. The model " +"is expressed as a comma separated pair of values for extrusion length and flow " +"correction factors, one per line, in the following format: \"1.234,5.678\"" msgstr "" "Modelo de Compensação de Fluxo, usado para ajustar o fluxo para áreas de " -"preenchimento pequenas. O modelo é expresso como um par de valores separados " -"por vírgula para o comprimento de extrusão e os fatores de correção de " -"fluxo, um por linha, no seguinte formato: \"1.234,5.678\"" +"preenchimento pequenas. O modelo é expresso como um par de valores separados por " +"vírgula para o comprimento de extrusão e os fatores de correção de fluxo, um por " +"linha, no seguinte formato: \"1.234,5.678\"" msgid "Maximum speed X" msgstr "Velocidade máxima X" @@ -12364,82 +12355,77 @@ msgid "Maximum acceleration for travel" msgstr "Aceleração máxima para deslocamento" msgid "Maximum acceleration for travel (M204 T), it only applies to Marlin 2" -msgstr "" -"Aceleração máxima para deslocamento (M204 T), aplica-se apenas ao Marlin 2" +msgstr "Aceleração máxima para deslocamento (M204 T), aplica-se apenas ao Marlin 2" msgid "" -"Part cooling fan speed may be increased when auto cooling is enabled. This " -"is the maximum speed limitation of part cooling fan" +"Part cooling fan speed may be increased when auto cooling is enabled. This is the " +"maximum speed limitation of part cooling fan" msgstr "" -"A velocidade do ventilador de resfriamento da peça pode ser aumentada quando " -"o resfriamento automático está habilitado. Este é o limite máximo de " -"velocidade do ventilador de resfriamento da peça" +"A velocidade do ventilador de resfriamento da peça pode ser aumentada quando o " +"resfriamento automático está habilitado. Este é o limite máximo de velocidade do " +"ventilador de resfriamento da peça" msgid "Max" msgstr "Máx" msgid "" -"The largest printable layer height for extruder. Used tp limits the maximum " -"layer hight when enable adaptive layer height" +"The largest printable layer height for extruder. Used tp limits the maximum layer " +"hight when enable adaptive layer height" msgstr "" -"A maior altura de camada imprimível para o extrusor. Usado para limitar a " -"altura máxima da camada quando a altura da camada adaptativa está ativada" +"A maior altura de camada imprimível para o extrusor. Usado para limitar a altura " +"máxima da camada quando a altura da camada adaptativa está ativada" msgid "Extrusion rate smoothing" msgstr "Suavização da extrusão" msgid "" -"This parameter smooths out sudden extrusion rate changes that happen when " -"the printer transitions from printing a high flow (high speed/larger width) " -"extrusion to a lower flow (lower speed/smaller width) extrusion and vice " -"versa.\n" +"This parameter smooths out sudden extrusion rate changes that happen when the " +"printer transitions from printing a high flow (high speed/larger width) extrusion to " +"a lower flow (lower speed/smaller width) extrusion and vice versa.\n" "\n" -"It defines the maximum rate by which the extruded volumetric flow in mm3/sec " -"can change over time. Higher values mean higher extrusion rate changes are " -"allowed, resulting in faster speed transitions.\n" +"It defines the maximum rate by which the extruded volumetric flow in mm3/sec can " +"change over time. Higher values mean higher extrusion rate changes are allowed, " +"resulting in faster speed transitions.\n" "\n" "A value of 0 disables the feature. \n" "\n" -"For a high speed, high flow direct drive printer (like the Bambu lab or " -"Voron) this value is usually not needed. However it can provide some " -"marginal benefit in certain cases where feature speeds vary greatly. For " -"example, when there are aggressive slowdowns due to overhangs. In these " -"cases a high value of around 300-350mm3/s2 is recommended as this allows for " -"just enough smoothing to assist pressure advance achieve a smoother flow " -"transition.\n" +"For a high speed, high flow direct drive printer (like the Bambu lab or Voron) this " +"value is usually not needed. However it can provide some marginal benefit in certain " +"cases where feature speeds vary greatly. For example, when there are aggressive " +"slowdowns due to overhangs. In these cases a high value of around 300-350mm3/s2 is " +"recommended as this allows for just enough smoothing to assist pressure advance " +"achieve a smoother flow transition.\n" "\n" -"For slower printers without pressure advance, the value should be set much " -"lower. A value of 10-15mm3/s2 is a good starting point for direct drive " -"extruders and 5-10mm3/s2 for Bowden style. \n" +"For slower printers without pressure advance, the value should be set much lower. A " +"value of 10-15mm3/s2 is a good starting point for direct drive extruders and 5-10mm3/" +"s2 for Bowden style. \n" "\n" "This feature is known as Pressure Equalizer in Prusa slicer.\n" "\n" "Note: this parameter disables arc fitting." msgstr "" -"Este parâmetro suaviza as mudanças súbitas na taxa de extrusão que ocorrem " -"quando a impressora faz a transição de uma extrusão de alto fluxo (alta " -"velocidade/maior largura) para uma extrusão de baixo fluxo (baixa velocidade/" -"menor largura) e vice-versa.\n" +"Este parâmetro suaviza as mudanças súbitas na taxa de extrusão que ocorrem quando a " +"impressora faz a transição de uma extrusão de alto fluxo (alta velocidade/maior " +"largura) para uma extrusão de baixo fluxo (baixa velocidade/menor largura) e vice-" +"versa.\n" "\n" -"Define a taxa máxima pela qual o fluxo volumétrico extrudado em mm3/seg pode " -"mudar ao longo do tempo. Valores mais altos significam que mudanças de taxa " -"de extrusão mais altas são permitidas, resultando em transições de " -"velocidade mais rápidas.\n" +"Define a taxa máxima pela qual o fluxo volumétrico extrudado em mm3/seg pode mudar " +"ao longo do tempo. Valores mais altos significam que mudanças de taxa de extrusão " +"mais altas são permitidas, resultando em transições de velocidade mais rápidas.\n" "\n" "Um valor de 0 desativa o recurso.\n" "\n" -"Para uma impressora de acionamento direto de alta velocidade e alto fluxo " -"(como a Bambu lab ou Voron), esse valor geralmente não é necessário. No " -"entanto, pode fornecer alguns benefícios marginais em certos casos em que as " -"velocidades das características variam muito. Por exemplo, quando há " -"desacelerações agressivas devido a overhangs. Nesses casos, um valor alto de " -"cerca de 300-350mm3/s2 é recomendado, pois isso permite apenas suavização " -"suficiente para ajudar o Pressure advance a alcançar uma transição de fluxo " -"mais suave.\n" +"Para uma impressora de acionamento direto de alta velocidade e alto fluxo (como a " +"Bambu lab ou Voron), esse valor geralmente não é necessário. No entanto, pode " +"fornecer alguns benefícios marginais em certos casos em que as velocidades das " +"características variam muito. Por exemplo, quando há desacelerações agressivas " +"devido a overhangs. Nesses casos, um valor alto de cerca de 300-350mm3/s2 é " +"recomendado, pois isso permite apenas suavização suficiente para ajudar o Pressure " +"advance a alcançar uma transição de fluxo mais suave.\n" "\n" -"Para impressoras mais lentas sem Pressure advance, o valor deve ser definido " -"muito mais baixo. Um valor de 10-15mm3/s2 é um bom ponto de partida para " -"extrusoras de acionamento direto e 5-10mm3/s2 para estilo Bowden.\n" +"Para impressoras mais lentas sem Pressure advance, o valor deve ser definido muito " +"mais baixo. Um valor de 10-15mm3/s2 é um bom ponto de partida para extrusoras de " +"acionamento direto e 5-10mm3/s2 para estilo Bowden.\n" "\n" "Este recurso é conhecido como Equalizador de Pressão no slicer Prusa.\n" "\n" @@ -12452,63 +12438,58 @@ msgid "Smoothing segment length" msgstr "Distancia do segmento de suavização" msgid "" -"A lower value results in smoother extrusion rate transitions. However, this " -"results in a significantly larger gcode file and more instructions for the " -"printer to process. \n" +"A lower value results in smoother extrusion rate transitions. However, this results " +"in a significantly larger gcode file and more instructions for the printer to " +"process. \n" "\n" "Default value of 3 works well for most cases. If your printer is stuttering, " "increase this value to reduce the number of adjustments made\n" "\n" -"Allowed values: 1-5" +"Allowed values: 0.5-5" +msgstr "" + +msgid "Apply only on external features" +msgstr "" + +msgid "" +"Applies extrusion rate smoothing only on external perimeters and overhangs. This can " +"help reduce artefacts due to sharp speed transitions on externally visible overhangs " +"without impacting the print speed of features that will not be visible to the user." msgstr "" -"Um valor menor resulta em transições de extrusão mais suaves. No entanto, " -"isso resulta em um arquivo Gcode significativamente maior e mais instruções " -"para a impressora processar.\n" -"\n" -"O valor padrão de 3 funciona bem para a maioria dos casos. Se sua impressora " -"estiver engasgando, aumente este valor para reduzir o número de ajustes " -"feitos.\n" -"\n" -"Valores permitidos: 1-5" msgid "Minimum speed for part cooling fan" msgstr "Velocidade mínima para o ventilador de resfriamento da peça" msgid "" -"Speed of auxiliary part cooling fan. Auxiliary fan will run at this speed " -"during printing except the first several layers which is defined by no " -"cooling layers.\n" -"Please enable auxiliary_fan in printer settings to use this feature. G-code " -"command: M106 P2 S(0-255)" +"Speed of auxiliary part cooling fan. Auxiliary fan will run at this speed during " +"printing except the first several layers which is defined by no cooling layers.\n" +"Please enable auxiliary_fan in printer settings to use this feature. G-code command: " +"M106 P2 S(0-255)" msgstr "" -"Velocidade do ventilador auxiliar de resfriamento de peças. O ventilador " -"auxiliar funcionará nesta velocidade durante a impressão, exceto nas " -"primeiras camadas, que são definidas por camadas sem resfriamento.\n" +"Velocidade do ventilador auxiliar de resfriamento de peças. O ventilador auxiliar " +"funcionará nesta velocidade durante a impressão, exceto nas primeiras camadas, que " +"são definidas por camadas sem resfriamento.\n" "\n" -"Por favor, habilite o ventilador auxiliar nas configurações da impressora " -"para usar esta função. Comando G-code: M106 P2 S(0-255)" +"Por favor, habilite o ventilador auxiliar nas configurações da impressora para usar " +"esta função. Comando G-code: M106 P2 S(0-255)" msgid "Min" msgstr "Mín" msgid "" -"The lowest printable layer height for extruder. Used tp limits the minimum " -"layer hight when enable adaptive layer height" +"The lowest printable layer height for extruder. Used tp limits the minimum layer " +"hight when enable adaptive layer height" msgstr "" -"A menor altura de camada imprimível para o extrusor. Usado para limitar a " -"altura mínima da camada ao habilitar a altura de camada adaptativa" +"A menor altura de camada imprimível para o extrusor. Usado para limitar a altura " +"mínima da camada ao habilitar a altura de camada adaptativa" msgid "Min print speed" msgstr "Velocidade de impressão mínima" msgid "" -"The minimum printing speed that the printer will slow down to to attempt to " -"maintain the minimum layer time above, when slow down for better layer " -"cooling is enabled." +"The minimum print speed to which the printer slows down to maintain the minimum " +"layer time defined above when the slowdown for better layer cooling is enabled." msgstr "" -"A velocidade de impressão mínima para a qual a impressora diminuirá a " -"velocidade para tentar manter o tempo mínimo de camada acima, quando a " -"desaceleração para um melhor resfriamento da camada estiver habilitada." msgid "Diameter of nozzle" msgstr "Diâmetro do bico" @@ -12517,8 +12498,8 @@ msgid "Configuration notes" msgstr "Notas de configuração" msgid "" -"You can put here your personal notes. This text will be added to the G-code " -"header comments." +"You can put here your personal notes. This text will be added to the G-code header " +"comments." msgstr "" "Você pode colocar aqui suas notas pessoais. Este texto será adicionado aos " "comentários do cabeçalho do G-code." @@ -12527,11 +12508,11 @@ msgid "Host Type" msgstr "Tipo de Host" msgid "" -"Orca Slicer can upload G-code files to a printer host. This field must " -"contain the kind of the host." +"Orca Slicer can upload G-code files to a printer host. This field must contain the " +"kind of the host." msgstr "" -"O Orca Slicer pode carregar arquivos de código G para um hospedeiro de " -"impressora. Este campo deve conter o tipo de hospedeiro." +"O Orca Slicer pode carregar arquivos de código G para um hospedeiro de impressora. " +"Este campo deve conter o tipo de hospedeiro." msgid "Nozzle volume" msgstr "Volume do bico" @@ -12543,8 +12524,7 @@ msgid "Cooling tube position" msgstr "Posição do tubo de resfriamento" msgid "Distance of the center-point of the cooling tube from the extruder tip." -msgstr "" -"Distância do ponto central do tubo de resfriamento da ponta do extrusor." +msgstr "Distância do ponto central do tubo de resfriamento da ponta do extrusor." msgid "Cooling tube length" msgstr "Comprimento do tubo de resfriamento" @@ -12558,63 +12538,58 @@ msgid "High extruder current on filament swap" msgstr "Corrente da extrusora alta na troca de filamento" msgid "" -"It may be beneficial to increase the extruder motor current during the " -"filament exchange sequence to allow for rapid ramming feed rates and to " -"overcome resistance when loading a filament with an ugly shaped tip." +"It may be beneficial to increase the extruder motor current during the filament " +"exchange sequence to allow for rapid ramming feed rates and to overcome resistance " +"when loading a filament with an ugly shaped tip." msgstr "" -"Pode ser benéfico aumentar a corrente do motor da extrusora durante a " -"sequência de troca de filamento para permitir taxas de moldeamento rápidas e " -"para superar a resistência ao carregar um filamento com uma ponta com forma " -"irregular." +"Pode ser benéfico aumentar a corrente do motor da extrusora durante a sequência de " +"troca de filamento para permitir taxas de moldeamento rápidas e para superar a " +"resistência ao carregar um filamento com uma ponta com forma irregular." msgid "Filament parking position" msgstr "Posição de estacionamento do filamento" msgid "" -"Distance of the extruder tip from the position where the filament is parked " -"when unloaded. This should match the value in printer firmware." +"Distance of the extruder tip from the position where the filament is parked when " +"unloaded. This should match the value in printer firmware." msgstr "" -"Distância da ponta do extrusor da posição onde o filamento é estacionado " -"quando descarregado. Isso deve corresponder ao valor no firmware da " -"impressora." +"Distância da ponta do extrusor da posição onde o filamento é estacionado quando " +"descarregado. Isso deve corresponder ao valor no firmware da impressora." msgid "Extra loading distance" msgstr "Distância de carregamento extra" msgid "" -"When set to zero, the distance the filament is moved from parking position " -"during load is exactly the same as it was moved back during unload. When " -"positive, it is loaded further, if negative, the loading move is shorter " -"than unloading." +"When set to zero, the distance the filament is moved from parking position during " +"load is exactly the same as it was moved back during unload. When positive, it is " +"loaded further, if negative, the loading move is shorter than unloading." msgstr "" -"Quando definido como zero, a distância que o filamento é movido da posição " -"de estacionamento durante o carregamento é exatamente a mesma que foi movida " -"durante o descarregamento. Quando positivo, é carregado mais longe, se " -"negativo, o movimento de carregamento é mais curto do que o descarregamento." +"Quando definido como zero, a distância que o filamento é movido da posição de " +"estacionamento durante o carregamento é exatamente a mesma que foi movida durante o " +"descarregamento. Quando positivo, é carregado mais longe, se negativo, o movimento " +"de carregamento é mais curto do que o descarregamento." msgid "Start end points" msgstr "Pontos de início e fim" msgid "The start and end points which is from cutter area to garbage can." -msgstr "" -"Os pontos de início e fim que vão da área do cortador até a lata de lixo." +msgstr "Os pontos de início e fim que vão da área do cortador até a lata de lixo." msgid "Reduce infill retraction" msgstr "Reduzir retração durante o preenchimento" msgid "" -"Don't retract when the travel is in infill area absolutely. That means the " -"oozing can't been seen. This can reduce times of retraction for complex " -"model and save printing time, but make slicing and G-code generating slower" +"Don't retract when the travel is in infill area absolutely. That means the oozing " +"can't been seen. This can reduce times of retraction for complex model and save " +"printing time, but make slicing and G-code generating slower" msgstr "" -"Não retrair quando o movimento está na área de preenchimento completamente. " -"Isso significa que o vazamento não pode ser visto. Isso pode reduzir o " -"número de retratações para modelos complexos e economizar tempo de " -"impressão, mas torna a geração de fatiamento e G-code mais lenta" +"Não retrair quando o movimento está na área de preenchimento completamente. Isso " +"significa que o vazamento não pode ser visto. Isso pode reduzir o número de " +"retratações para modelos complexos e economizar tempo de impressão, mas torna a " +"geração de fatiamento e G-code mais lenta" msgid "" -"This option will drop the temperature of the inactive extruders to prevent " -"oozing." +"This option will drop the temperature of the inactive extruders to prevent oozing." msgstr "" msgid "Filename format" @@ -12633,23 +12608,23 @@ msgid "Make overhangs printable - Maximum angle" msgstr "Overhangs imprimíveis - ângulo máx" msgid "" -"Maximum angle of overhangs to allow after making more steep overhangs " -"printable.90° will not change the model at all and allow any overhang, while " -"0 will replace all overhangs with conical material." +"Maximum angle of overhangs to allow after making more steep overhangs printable.90° " +"will not change the model at all and allow any overhang, while 0 will replace all " +"overhangs with conical material." msgstr "" "Ângulo máximo do overhang permitido antes de fazer ângulos mais íngremes " -"imprimíveis. 90° não vai fazer nenhuma mudança no modelo e vai permitir " -"qualquer overhang. 0 vai substituir todos overhangs por uma forma cônica." +"imprimíveis. 90° não vai fazer nenhuma mudança no modelo e vai permitir qualquer " +"overhang. 0 vai substituir todos overhangs por uma forma cônica." msgid "Make overhangs printable - Hole area" msgstr "Overhangs imprimíveis - área do furo" msgid "" -"Maximum area of a hole in the base of the model before it's filled by " -"conical material.A value of 0 will fill all the holes in the model base." +"Maximum area of a hole in the base of the model before it's filled by conical " +"material.A value of 0 will fill all the holes in the model base." msgstr "" -"Área maxima de um furo na base do modelo antes que ele seja preenchido por " -"uma forma cônica. Um valor 0 irá preencher todos os furos do modelo." +"Área maxima de um furo na base do modelo antes que ele seja preenchido por uma forma " +"cônica. Um valor 0 irá preencher todos os furos do modelo." msgid "mm²" msgstr "mm2" @@ -12659,22 +12634,22 @@ msgstr "Detectar overhangs" #, c-format, boost-format msgid "" -"Detect the overhang percentage relative to line width and use different " -"speed to print. For 100%% overhang, bridge speed is used." +"Detect the overhang percentage relative to line width and use different speed to " +"print. For 100%% overhang, bridge speed is used." msgstr "" -"Detecta a porcentagem relativa de overhang em relação a largura do perímetro " -"e usa uma velocidade diferente de impressão. Para overhangs 100%%, a " -"velocidade de ponte é usada." +"Detecta a porcentagem relativa de overhang em relação a largura do perímetro e usa " +"uma velocidade diferente de impressão. Para overhangs 100%%, a velocidade de ponte é " +"usada." msgid "Filament to print walls" msgstr "" msgid "" -"Line width of inner wall. If expressed as a %, it will be computed over the " -"nozzle diameter." +"Line width of inner wall. If expressed as a %, it will be computed over the nozzle " +"diameter." msgstr "" -"Largura do perímetro interno. Se expressado como %, será computado de acordo " -"com o diâmetro do bico." +"Largura do perímetro interno. Se expressado como %, será computado de acordo com o " +"diâmetro do bico." msgid "Speed of inner wall" msgstr "Velocidade do perímetro interno" @@ -12686,43 +12661,42 @@ msgid "Alternate extra wall" msgstr "Parede extra alternada" msgid "" -"This setting adds an extra wall to every other layer. This way the infill " -"gets wedged vertically between the walls, resulting in stronger prints. \n" +"This setting adds an extra wall to every other layer. This way the infill gets " +"wedged vertically between the walls, resulting in stronger prints. \n" "\n" -"When this option is enabled, the ensure vertical shell thickness option " -"needs to be disabled. \n" +"When this option is enabled, the ensure vertical shell thickness option needs to be " +"disabled. \n" "\n" -"Using lightning infill together with this option is not recommended as there " -"is limited infill to anchor the extra perimeters to." +"Using lightning infill together with this option is not recommended as there is " +"limited infill to anchor the extra perimeters to." msgstr "" -"Esta configuração adiciona um perímetro extra a cada duas camadas. Dessa " -"forma, o preenchimento fica encaixado verticalmente entre as paredes, " -"resultando em impressões mais resistentes. \n" +"Esta configuração adiciona um perímetro extra a cada duas camadas. Dessa forma, o " +"preenchimento fica encaixado verticalmente entre as paredes, resultando em " +"impressões mais resistentes. \n" "\n" "Quando esta opção está ativada, a opção de garantir a espessura vertical do " "perímetro precisa ser desativada. \n" "\n" -"Não é recomendado usar o preenchimento rápido juntamente com esta opção, " -"pois há preenchimento limitado para ancorar os perímetros extras." +"Não é recomendado usar o preenchimento rápido juntamente com esta opção, pois há " +"preenchimento limitado para ancorar os perímetros extras." msgid "" -"If you want to process the output G-code through custom scripts, just list " -"their absolute paths here. Separate multiple scripts with a semicolon. " -"Scripts will be passed the absolute path to the G-code file as the first " -"argument, and they can access the Orca Slicer config settings by reading " -"environment variables." +"If you want to process the output G-code through custom scripts, just list their " +"absolute paths here. Separate multiple scripts with a semicolon. Scripts will be " +"passed the absolute path to the G-code file as the first argument, and they can " +"access the Orca Slicer config settings by reading environment variables." msgstr "" -"Se você deseja processar o G-code de saída por meio de scripts " -"personalizados, basta listar seus caminhos absolutos aqui. Separe vários " -"scripts com um ponto e vírgula. Os scripts receberão o caminho absoluto para " -"o arquivo G-code como primeiro argumento, e eles podem acessar as " -"configurações do Orca Slicer lendo variáveis de ambiente." +"Se você deseja processar o G-code de saída por meio de scripts personalizados, basta " +"listar seus caminhos absolutos aqui. Separe vários scripts com um ponto e vírgula. " +"Os scripts receberão o caminho absoluto para o arquivo G-code como primeiro " +"argumento, e eles podem acessar as configurações do Orca Slicer lendo variáveis de " +"ambiente." msgid "Printer type" -msgstr "" +msgstr "Tipo de impressora" msgid "Type of the printer" -msgstr "" +msgstr "Tipo da impressora" msgid "Printer notes" msgstr "Notas da impressora" @@ -12731,7 +12705,7 @@ msgid "You can put your notes regarding the printer here." msgstr "Você pode inserir suas observações sobre a impressora aqui." msgid "Printer variant" -msgstr "" +msgstr "Variante da impressora" msgid "Raft contact Z distance" msgstr "Distância (Z) de contato da Jangada" @@ -12756,46 +12730,43 @@ msgstr "Expansão da primeira camada" msgid "Expand the first raft or support layer to improve bed plate adhesion" msgstr "" -"Expanda a primeira camada da Jangada ou Suporte para melhorar a adesão à " -"mesa de impressão" +"Expanda a primeira camada da Jangada ou Suporte para melhorar a adesão à mesa de " +"impressão" msgid "Raft layers" msgstr "Camadas da Jangada" msgid "" -"Object will be raised by this number of support layers. Use this function to " -"avoid wrapping when print ABS" +"Object will be raised by this number of support layers. Use this function to avoid " +"wrapping when print ABS" msgstr "" -"O objeto será elevado por este número de camadas de suporte. Use esta função " -"para evitar o enrugamento ao imprimir ABS" +"O objeto será elevado por este número de camadas de suporte. Use esta função para " +"evitar o enrugamento ao imprimir ABS" msgid "" -"G-code path is generated after simplifying the contour of model to avoid too " -"much points and gcode lines in gcode file. Smaller value means higher " -"resolution and more time to slice" +"G-code path is generated after simplifying the contour of model to avoid too much " +"points and gcode lines in gcode file. Smaller value means higher resolution and more " +"time to slice" msgstr "" -"O caminho do G-code é gerado após simplificar o contorno do modelo para " -"evitar muitos pontos e linhas de código G no arquivo de código G. Um valor " -"menor significa maior resolução e mais tempo para fatiar" +"O caminho do G-code é gerado após simplificar o contorno do modelo para evitar " +"muitos pontos e linhas de código G no arquivo de código G. Um valor menor significa " +"maior resolução e mais tempo para fatiar" msgid "Travel distance threshold" msgstr "Limiar de distância de deslocamento" -msgid "" -"Only trigger retraction when the travel distance is longer than this " -"threshold" +msgid "Only trigger retraction when the travel distance is longer than this threshold" msgstr "" -"Disparar a retração somente quando a distância da deslocamento for maior que " -"este limite" +"Disparar a retração somente quando a distância da deslocamento for maior que este " +"limite" msgid "Retract amount before wipe" msgstr "Quantidade de retração antes da limpeza" -msgid "" -"The length of fast retraction before wipe, relative to retraction length" +msgid "The length of fast retraction before wipe, relative to retraction length" msgstr "" -"O comprimento da retração rápida antes da limpeza, em relação ao comprimento " -"da retração" +"O comprimento da retração rápida antes da limpeza, em relação ao comprimento da " +"retração" msgid "Retract when change layer" msgstr "Retrair ao mudar de camada" @@ -12807,55 +12778,52 @@ msgid "Retract on top layer" msgstr "" msgid "" -"Force a retraction on top layer. Disabling could prevent clog on very slow " -"patterns with small movements, like Hilbert curve" +"Force a retraction on top layer. Disabling could prevent clog on very slow patterns " +"with small movements, like Hilbert curve" msgstr "" msgid "Retraction Length" msgstr "Distância de retração" msgid "" -"Some amount of material in extruder is pulled back to avoid ooze during long " -"travel. Set zero to disable retraction" +"Some amount of material in extruder is pulled back to avoid ooze during long travel. " +"Set zero to disable retraction" msgstr "" -"Alguma quantidade de material no extrusor é puxada para trás para evitar " -"oozing durante viagens longas. Defina zero para desativar a retração" +"Alguma quantidade de material no extrusor é puxada para trás para evitar oozing " +"durante viagens longas. Defina zero para desativar a retração" msgid "Long retraction when cut(experimental)" msgstr "Retração longa quando cortado(experimental)" msgid "" -"Experimental feature.Retracting and cutting off the filament at a longer " -"distance during changes to minimize purge.While this reduces flush " -"significantly, it may also raise the risk of nozzle clogs or other printing " -"problems." +"Experimental feature.Retracting and cutting off the filament at a longer distance " +"during changes to minimize purge.While this reduces flush significantly, it may also " +"raise the risk of nozzle clogs or other printing problems." msgstr "" -"Recurso experimental. Retrair e cortar o filamento a uma distância mais " -"longa durante mudanças para minimizar a purga. Isto reduz significativamente " -"a purga, pode também aumentar o risco de bolhas no bico ou de outros " -"problemas de impressão." +"Recurso experimental. Retrair e cortar o filamento a uma distância mais longa " +"durante mudanças para minimizar a purga. Isto reduz significativamente a purga, pode " +"também aumentar o risco de bolhas no bico ou de outros problemas de impressão." msgid "Retraction distance when cut" msgstr "Distância de retração ao cortar" msgid "" -"Experimental feature.Retraction length before cutting off during filament " -"change" +"Experimental feature.Retraction length before cutting off during filament change" msgstr "" -"Funcionalidade experimental. Comprimento de retração antes de cortar durante " -"a mudança de filamento" +"Funcionalidade experimental. Comprimento de retração antes de cortar durante a " +"mudança de filamento" msgid "Z-hop height" -msgstr "" +msgstr "Altura de Z-hop" msgid "" -"Whenever the retraction is done, the nozzle is lifted a little to create " -"clearance between nozzle and the print. It prevents nozzle from hitting the " -"print when travel move. Using spiral line to lift z can prevent stringing" +"Whenever the retraction is done, the nozzle is lifted a little to create clearance " +"between nozzle and the print. It prevents nozzle from hitting the print when travel " +"move. Using spiral line to lift z can prevent stringing" msgstr "" -"Sempre que a retração é feita, o bico é levantado um pouco para criar folga " -"entre o bico e a impressão. Isso evita que o bico atinja a impressão ao se " -"mover. Usar linha espiral para levantar z pode evitar stringing" +"Sempre que a retração é feita, o bico é levantado um pouco para criar folga entre o " +"bico e a impressão. Isso evita que o bico atinja a impressão ao se mover. Usar linha " +"espiral para levantar z pode evitar stringing" msgid "Z hop lower boundary" msgstr "Limite inferior do Z hop" @@ -12871,14 +12839,14 @@ msgid "Z hop upper boundary" msgstr "Limite superior do Z hop" msgid "" -"If this value is positive, Z hop will only come into effect when Z is above " -"the parameter: \"Z hop lower boundary\" and is below this value" +"If this value is positive, Z hop will only come into effect when Z is above the " +"parameter: \"Z hop lower boundary\" and is below this value" msgstr "" -"Se este valor for positivo, o Z hop só entrará em vigor quando Z estiver " -"acima do parâmetro: \"Limite inferior do Z hop\" e abaixo deste valor" +"Se este valor for positivo, o Z hop só entrará em vigor quando Z estiver acima do " +"parâmetro: \"Limite inferior do Z hop\" e abaixo deste valor" msgid "Z-hop type" -msgstr "" +msgstr "Tipo de Z-hop" msgid "Z hop type" msgstr "Tipo de Z hop" @@ -12893,39 +12861,39 @@ msgid "Traveling angle" msgstr "" msgid "" -"Traveling angle for Slope and Spiral Z hop type. Setting it to 90° results " -"in Normal Lift" +"Traveling angle for Slope and Spiral Z hop type. Setting it to 90° results in Normal " +"Lift" msgstr "" msgid "Only lift Z above" msgstr "Elevar Z apenas acima de" msgid "" -"If you set this to a positive value, Z lift will only take place above the " -"specified absolute Z." +"If you set this to a positive value, Z lift will only take place above the specified " +"absolute Z." msgstr "" -"Se você definir isso como um valor positivo, a elevação de Z só ocorrerá " -"acima do Z absoluto especificado." +"Se você definir isso como um valor positivo, a elevação de Z só ocorrerá acima do Z " +"absoluto especificado." msgid "Only lift Z below" msgstr "Elevar Z apenas abaixo de" msgid "" -"If you set this to a positive value, Z lift will only take place below the " -"specified absolute Z." +"If you set this to a positive value, Z lift will only take place below the specified " +"absolute Z." msgstr "" -"Se você definir isso como um valor positivo, a elevação de Z só ocorrerá " -"abaixo do Z absoluto especificado." +"Se você definir isso como um valor positivo, a elevação de Z só ocorrerá abaixo do Z " +"absoluto especificado." msgid "On surfaces" msgstr "Nas superfícies" msgid "" -"Enforce Z Hop behavior. This setting is impacted by the above settings (Only " -"lift Z above/below)." +"Enforce Z Hop behavior. This setting is impacted by the above settings (Only lift Z " +"above/below)." msgstr "" -"Forçar Z Hop. Essa configuração é impactada pelas configurações acima " -"(Somente elevar Z acima/abaixo)" +"Forçar Z Hop. Essa configuração é impactada pelas configurações acima (Somente " +"elevar Z acima/abaixo)" msgid "All Surfaces" msgstr "Todas as superfícies" @@ -12943,19 +12911,19 @@ msgid "Extra length on restart" msgstr "Comprimento extra na retração" msgid "" -"When the retraction is compensated after the travel move, the extruder will " -"push this additional amount of filament. This setting is rarely needed." +"When the retraction is compensated after the travel move, the extruder will push " +"this additional amount of filament. This setting is rarely needed." msgstr "" "Quando a retração é compensada após o movimento de deslocamento, o extrusor " -"empurrará essa quantidade adicional de filamento. Esta configuração é " -"raramente necessária." +"empurrará essa quantidade adicional de filamento. Esta configuração é raramente " +"necessária." msgid "" -"When the retraction is compensated after changing tool, the extruder will " -"push this additional amount of filament." +"When the retraction is compensated after changing tool, the extruder will push this " +"additional amount of filament." msgstr "" -"Quando a retração é compensada após a troca de ferramenta, o extrusor " -"empurrará essa quantidade adicional de filamento." +"Quando a retração é compensada após a troca de ferramenta, o extrusor empurrará essa " +"quantidade adicional de filamento." msgid "Retraction Speed" msgstr "Velocidade de retração" @@ -12967,22 +12935,20 @@ msgid "De-retraction Speed" msgstr "Velocidade de desretração" msgid "" -"Speed for reloading filament into extruder. Zero means same speed with " -"retraction" +"Speed for reloading filament into extruder. Zero means same speed with retraction" msgstr "" -"Velocidade para recarregar o filamento no extrusor. Zero significa mesma " -"velocidade de retração" +"Velocidade para recarregar o filamento no extrusor. Zero significa mesma velocidade " +"de retração" msgid "Use firmware retraction" msgstr "Usar retração de firmware" msgid "" -"This experimental setting uses G10 and G11 commands to have the firmware " -"handle the retraction. This is only supported in recent Marlin." +"This experimental setting uses G10 and G11 commands to have the firmware handle the " +"retraction. This is only supported in recent Marlin." msgstr "" -"Esta configuração experimental usa os comandos G10 e G11 para fazer com que " -"o firmware gerencie a retração. Isso é suportado apenas no Marlin mais " -"recente." +"Esta configuração experimental usa os comandos G10 e G11 para fazer com que o " +"firmware gerencie a retração. Isso é suportado apenas no Marlin mais recente." msgid "Show auto-calibration marks" msgstr "Mostrar marcas de autocalibração automática" @@ -12990,11 +12956,9 @@ msgstr "Mostrar marcas de autocalibração automática" msgid "Disable set remaining print time" msgstr "Desabilitar definir tempo de impressão restante" -msgid "" -"Disable generating of the M73: Set remaining print time in the final gcode" +msgid "Disable generating of the M73: Set remaining print time in the final gcode" msgstr "" -"Desativar a geração do M73: Definir tempo restante de impressão no código " -"final" +"Desativar a geração do M73: Definir tempo restante de impressão no código final" msgid "Seam position" msgstr "Posição da costura" @@ -13018,25 +12982,25 @@ msgid "Staggered inner seams" msgstr "Costuras internas escalonadas" msgid "" -"This option causes the inner seams to be shifted backwards based on their " -"depth, forming a zigzag pattern." +"This option causes the inner seams to be shifted backwards based on their depth, " +"forming a zigzag pattern." msgstr "" -"Esta opção faz com que as costuras internas sejam deslocadas para trás com " -"base em sua profundidade, formando um padrão de zigue-zague." +"Esta opção faz com que as costuras internas sejam deslocadas para trás com base em " +"sua profundidade, formando um padrão de zigue-zague." msgid "Seam gap" msgstr "Espaço entre costuras" msgid "" -"In order to reduce the visibility of the seam in a closed loop extrusion, " -"the loop is interrupted and shortened by a specified amount.\n" -"This amount can be specified in millimeters or as a percentage of the " -"current extruder diameter. The default value for this parameter is 10%." +"In order to reduce the visibility of the seam in a closed loop extrusion, the loop " +"is interrupted and shortened by a specified amount.\n" +"This amount can be specified in millimeters or as a percentage of the current " +"extruder diameter. The default value for this parameter is 10%." msgstr "" -"Para reduzir a visibilidade da costura em uma extrusão de loop fechado, o " -"loop é interrompido e encurtado por uma quantidade especificada.\n" -"Esta quantidade pode ser especificada em milímetros ou como uma porcentagem " -"do diâmetro atual do extrusor. O valor padrão para este parâmetro é 10%." +"Para reduzir a visibilidade da costura em uma extrusão de loop fechado, o loop é " +"interrompido e encurtado por uma quantidade especificada.\n" +"Esta quantidade pode ser especificada em milímetros ou como uma porcentagem do " +"diâmetro atual do extrusor. O valor padrão para este parâmetro é 10%." msgid "Scarf joint seam (beta)" msgstr "Costura Scarf (beta)" @@ -13050,67 +13014,62 @@ msgid "Conditional scarf joint" msgstr "Costura Scarf condicional" msgid "" -"Apply scarf joints only to smooth perimeters where traditional seams do not " -"conceal the seams at sharp corners effectively." +"Apply scarf joints only to smooth perimeters where traditional seams do not conceal " +"the seams at sharp corners effectively." msgstr "" -"Aplique a Costura Scarf apenas em perímetros suaves onde costuras " -"tradicionais não escondem as costuras em cantos agudos de forma eficaz." +"Aplique a Costura Scarf apenas em perímetros suaves onde costuras tradicionais não " +"escondem as costuras em cantos agudos de forma eficaz." msgid "Conditional angle threshold" msgstr "Ângulo condicional" msgid "" -"This option sets the threshold angle for applying a conditional scarf joint " -"seam.\n" -"If the maximum angle within the perimeter loop exceeds this value " -"(indicating the absence of sharp corners), a scarf joint seam will be used. " -"The default value is 155°." +"This option sets the threshold angle for applying a conditional scarf joint seam.\n" +"If the maximum angle within the perimeter loop exceeds this value (indicating the " +"absence of sharp corners), a scarf joint seam will be used. The default value is " +"155°." msgstr "" -"Esta opção define o ângulo limite para aplicar uma costura scarf " -"condicional.\n" -"Se o ângulo máximo dentro do loop do perímetro exceder esse valor (indicando " -"a ausência de cantos afiados), será usada uma costura scarf. O valor padrão " -"é 155°." +"Esta opção define o ângulo limite para aplicar uma costura scarf condicional.\n" +"Se o ângulo máximo dentro do loop do perímetro exceder esse valor (indicando a " +"ausência de cantos afiados), será usada uma costura scarf. O valor padrão é 155°." msgid "Conditional overhang threshold" msgstr "Overhang condicional" #, no-c-format, no-boost-format msgid "" -"This option determines the overhang threshold for the application of scarf " -"joint seams. If the unsupported portion of the perimeter is less than this " -"threshold, scarf joint seams will be applied. The default threshold is set " -"at 40% of the external wall's width. Due to performance considerations, the " -"degree of overhang is estimated." +"This option determines the overhang threshold for the application of scarf joint " +"seams. If the unsupported portion of the perimeter is less than this threshold, " +"scarf joint seams will be applied. The default threshold is set at 40% of the " +"external wall's width. Due to performance considerations, the degree of overhang is " +"estimated." msgstr "" -"Esta opção determina o limiar de inclinação para a aplicação de costuras " -"Scarf. Se a parte sem suporte do perímetro for inferior a esse limite, as " -"costuras Scarf serão aplicadas. O limite padrão é definido em 40% da largura " -"do perímetro externo. Devido a considerações de desempenho, o grau de " -"inclinação é estimado." +"Esta opção determina o limiar de inclinação para a aplicação de costuras Scarf. Se a " +"parte sem suporte do perímetro for inferior a esse limite, as costuras Scarf serão " +"aplicadas. O limite padrão é definido em 40% da largura do perímetro externo. Devido " +"a considerações de desempenho, o grau de inclinação é estimado." msgid "Scarf joint speed" msgstr "Velocidade da Costura Scarf" msgid "" -"This option sets the printing speed for scarf joints. It is recommended to " -"print scarf joints at a slow speed (less than 100 mm/s). It's also " -"advisable to enable 'Extrusion rate smoothing' if the set speed varies " -"significantly from the speed of the outer or inner walls. If the speed " -"specified here is higher than the speed of the outer or inner walls, the " -"printer will default to the slower of the two speeds. When specified as a " -"percentage (e.g., 80%), the speed is calculated based on the respective " -"outer or inner wall speed. The default value is set to 100%." +"This option sets the printing speed for scarf joints. It is recommended to print " +"scarf joints at a slow speed (less than 100 mm/s). It's also advisable to enable " +"'Extrusion rate smoothing' if the set speed varies significantly from the speed of " +"the outer or inner walls. If the speed specified here is higher than the speed of " +"the outer or inner walls, the printer will default to the slower of the two speeds. " +"When specified as a percentage (e.g., 80%), the speed is calculated based on the " +"respective outer or inner wall speed. The default value is set to 100%." msgstr "" -"Esta opção define a velocidade de impressão para as costuras Scarf. É " -"recomendável imprimir as costuras Scarf em uma velocidade baixa (menor que " -"100 mm/s). Também é aconselhável habilitar 'Suavização da taxa de extrusão' " -"se a velocidade definida variar significativamente da velocidade das paredes " -"externas ou internas. Se a velocidade especificada aqui for maior que a " -"velocidade das paredes externas ou internas, a impressora utilizará a mais " -"lenta das duas velocidades. Quando especificado como uma porcentagem (por " -"exemplo, 80%), a velocidade é calculada com base na velocidade do perímetro " -"externo ou interna respectiva. O valor padrão é definido como 100%." +"Esta opção define a velocidade de impressão para as costuras Scarf. É recomendável " +"imprimir as costuras Scarf em uma velocidade baixa (menor que 100 mm/s). Também é " +"aconselhável habilitar 'Suavização da taxa de extrusão' se a velocidade definida " +"variar significativamente da velocidade das paredes externas ou internas. Se a " +"velocidade especificada aqui for maior que a velocidade das paredes externas ou " +"internas, a impressora utilizará a mais lenta das duas velocidades. Quando " +"especificado como uma porcentagem (por exemplo, 80%), a velocidade é calculada com " +"base na velocidade do perímetro externo ou interna respectiva. O valor padrão é " +"definido como 100%." msgid "Scarf joint flow ratio" msgstr "Fluxo da Costura Scarf" @@ -13123,12 +13082,12 @@ msgstr "Altura inicial da junta Scarf" msgid "" "Start height of the scarf.\n" -"This amount can be specified in millimeters or as a percentage of the " -"current layer height. The default value for this parameter is 0." +"This amount can be specified in millimeters or as a percentage of the current layer " +"height. The default value for this parameter is 0." msgstr "" "Altura inicial da costura Scarf.\n" -"Esta quantidade pode ser especificada em milímetros ou como uma porcentagem " -"da altura atual da camada. O valor padrão para este parâmetro é 0." +"Esta quantidade pode ser especificada em milímetros ou como uma porcentagem da " +"altura atual da camada. O valor padrão para este parâmetro é 0." msgid "Scarf around entire wall" msgstr "Costura Scarf em torno do perímetro" @@ -13140,11 +13099,10 @@ msgid "Scarf length" msgstr "Comprimento da Costura Scarf" msgid "" -"Length of the scarf. Setting this parameter to zero effectively disables the " -"scarf." +"Length of the scarf. Setting this parameter to zero effectively disables the scarf." msgstr "" -"Comprimento da costura Scarf. Definir este parâmetro como zero desabilita a " -"costura Scarf." +"Comprimento da costura Scarf. Definir este parâmetro como zero desabilita a costura " +"Scarf." msgid "Scarf steps" msgstr "Passos da junta Scarf" @@ -13162,21 +13120,21 @@ msgid "Role base wipe speed" msgstr "Velocidade base de limpeza da função" msgid "" -"The wipe speed is determined by the speed of the current extrusion role.e.g. " -"if a wipe action is executed immediately following an outer wall extrusion, " -"the speed of the outer wall extrusion will be utilized for the wipe action." +"The wipe speed is determined by the speed of the current extrusion role.e.g. if a " +"wipe action is executed immediately following an outer wall extrusion, the speed of " +"the outer wall extrusion will be utilized for the wipe action." msgstr "" -"A velocidade de limpeza é determinada pela velocidade do tipo de extrusão " -"atual. Por exemplo, se uma ação de limpeza for executada imediatamente após " -"uma extrusão de perímetro externo, a velocidade da extrusão do perímetro " -"externo será utilizada para a ação de limpeza." +"A velocidade de limpeza é determinada pela velocidade do tipo de extrusão atual. Por " +"exemplo, se uma ação de limpeza for executada imediatamente após uma extrusão de " +"perímetro externo, a velocidade da extrusão do perímetro externo será utilizada para " +"a ação de limpeza." msgid "Wipe on loops" msgstr "Limpeza em loops" msgid "" -"To minimize the visibility of the seam in a closed loop extrusion, a small " -"inward movement is executed before the extruder leaves the loop." +"To minimize the visibility of the seam in a closed loop extrusion, a small inward " +"movement is executed before the extruder leaves the loop." msgstr "" "Para minimizar a visibilidade da costura em uma extrusão de loop fechado, é " "executado um pequeno movimento para dentro antes que o extrusor saia do loop." @@ -13185,40 +13143,38 @@ msgid "Wipe before external loop" msgstr "Limpeza antes do loop externo" msgid "" -"To minimize visibility of potential overextrusion at the start of an " -"external perimeter when printing with Outer/Inner or Inner/Outer/Inner wall " -"print order, the de-retraction is performed slightly on the inside from the " -"start of the external perimeter. That way any potential over extrusion is " -"hidden from the outside surface. \n" +"To minimize visibility of potential overextrusion at the start of an external " +"perimeter when printing with Outer/Inner or Inner/Outer/Inner wall print order, the " +"de-retraction is performed slightly on the inside from the start of the external " +"perimeter. That way any potential over extrusion is hidden from the outside " +"surface. \n" "\n" -"This is useful when printing with Outer/Inner or Inner/Outer/Inner wall " -"print order as in these modes it is more likely an external perimeter is " -"printed immediately after a de-retraction move." +"This is useful when printing with Outer/Inner or Inner/Outer/Inner wall print order " +"as in these modes it is more likely an external perimeter is printed immediately " +"after a de-retraction move." msgstr "" -"Para minimizar a visibilidade de sobreextrusão potencial no início de um " -"perímetro externo ao imprimir com a ordem de impressão de perímetro Externo/" -"Interno ou Interno/Externo/Interno, a desretração é executada ligeiramente " -"no interior a partir do início do perímetro externo. Dessa forma, qualquer " -"sobreextrusão potencial é ocultada da superfície externa. \n" +"Para minimizar a visibilidade de sobreextrusão potencial no início de um perímetro " +"externo ao imprimir com a ordem de impressão de perímetro Externo/Interno ou Interno/" +"Externo/Interno, a desretração é executada ligeiramente no interior a partir do " +"início do perímetro externo. Dessa forma, qualquer sobreextrusão potencial é " +"ocultada da superfície externa. \n" "\n" -"Isso é útil ao imprimir com a ordem de impressão de perímetro Externa/" -"Interna ou Interna/Externa/Interna, pois nesses modos é mais provável que um " -"perímetro externo seja impresso imediatamente após um movimento de " -"desretração." +"Isso é útil ao imprimir com a ordem de impressão de perímetro Externa/Interna ou " +"Interna/Externa/Interna, pois nesses modos é mais provável que um perímetro externo " +"seja impresso imediatamente após um movimento de desretração." msgid "Wipe speed" msgstr "Velocidade de limpeza" msgid "" -"The wipe speed is determined by the speed setting specified in this " -"configuration.If the value is expressed as a percentage (e.g. 80%), it will " -"be calculated based on the travel speed setting above.The default value for " -"this parameter is 80%" +"The wipe speed is determined by the speed setting specified in this configuration.If " +"the value is expressed as a percentage (e.g. 80%), it will be calculated based on " +"the travel speed setting above.The default value for this parameter is 80%" msgstr "" "A velocidade de limpeza é determinada pela velocidade especificada nesta " -"configuração. Se o valor for expresso como uma porcentagem (por exemplo, " -"80%), será calculado com base na configuração de velocidade de deslocamento " -"acima. O valor padrão para este parâmetro é 80%" +"configuração. Se o valor for expresso como uma porcentagem (por exemplo, 80%), será " +"calculado com base na configuração de velocidade de deslocamento acima. O valor " +"padrão para este parâmetro é 80%" msgid "Skirt distance" msgstr "Distância da saia" @@ -13230,8 +13186,8 @@ msgid "Skirt start point" msgstr "" msgid "" -"Angle from the object center to skirt start point. Zero is the most right " -"position, counter clockwise is positive angle." +"Angle from the object center to skirt start point. Zero is the most right position, " +"counter clockwise is positive angle." msgstr "" msgid "Skirt height" @@ -13244,36 +13200,33 @@ msgid "Draft shield" msgstr "Escudo" msgid "" -"A draft shield is useful to protect an ABS or ASA print from warping and " -"detaching from print bed due to wind draft. It is usually needed only with " -"open frame printers, i.e. without an enclosure. \n" +"A draft shield is useful to protect an ABS or ASA print from warping and detaching " +"from print bed due to wind draft. It is usually needed only with open frame " +"printers, i.e. without an enclosure. \n" "\n" -"Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt " -"height' is used.\n" -"Note: With the draft shield active, the skirt will be printed at skirt " -"distance from the object. Therefore, if brims are active it may intersect " -"with them. To avoid this, increase the skirt distance value.\n" +"Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' " +"is used.\n" +"Note: With the draft shield active, the skirt will be printed at skirt distance from " +"the object. Therefore, if brims are active it may intersect with them. To avoid " +"this, increase the skirt distance value.\n" msgstr "" -msgid "Disabled" -msgstr "Desativado" - msgid "Enabled" msgstr "Ativado" msgid "Skirt type" -msgstr "" +msgstr "Tipo de saia" -msgid "" -"Combined - single skirt for all objects, Per object - individual object " -"skirt." +msgid "Combined - single skirt for all objects, Per object - individual object skirt." msgstr "" +"Combinado - saia única para todos os objetos, Por objeto - saias individuais por " +"objeto" msgid "Combined" -msgstr "" +msgstr "Combinado" msgid "Per object" -msgstr "" +msgstr "Por objeto" msgid "Skirt loops" msgstr "Voltas da saia" @@ -13286,39 +13239,39 @@ msgstr "Velocidade da saia" msgid "Speed of skirt, in mm/s. Zero means use default layer extrusion speed." msgstr "" -"Velocidade da saia, em mm/s. Zero significa usar a velocidade padrão de " -"extrusão da camada." +"Velocidade da saia, em mm/s. Zero significa usar a velocidade padrão de extrusão da " +"camada." msgid "Skirt minimum extrusion length" msgstr "Comprimento mínimo de extrusão da saia" msgid "" -"Minimum filament extrusion length in mm when printing the skirt. Zero means " -"this feature is disabled.\n" +"Minimum filament extrusion length in mm when printing the skirt. Zero means this " +"feature is disabled.\n" "\n" -"Using a non zero value is useful if the printer is set up to print without a " -"prime line.\n" -"Final number of loops is not taling into account whli arranging or " -"validating objects distance. Increase loop number in such case. " +"Using a non zero value is useful if the printer is set up to print without a prime " +"line.\n" +"Final number of loops is not taling into account whli arranging or validating " +"objects distance. Increase loop number in such case. " msgstr "" msgid "" -"The printing speed in exported gcode will be slowed down, when the estimated " -"layer time is shorter than this value, to get better cooling for these layers" +"The printing speed in exported gcode will be slowed down, when the estimated layer " +"time is shorter than this value, to get better cooling for these layers" msgstr "" -"A velocidade de impressão no gcode exportado será reduzida quando o tempo " -"estimado da camada for menor que esse valor, para obter uma melhor " -"resfriamento para essas camadas" +"A velocidade de impressão no gcode exportado será reduzida quando o tempo estimado " +"da camada for menor que esse valor, para obter uma melhor resfriamento para essas " +"camadas" msgid "Minimum sparse infill threshold" -msgstr "Limiar mínimo de preenchimento" +msgstr "Limiar mínimo de preenchimento esparso" msgid "" -"Sparse infill area which is smaller than threshold value is replaced by " -"internal solid infill" +"Sparse infill area which is smaller than threshold value is replaced by internal " +"solid infill" msgstr "" -"A área de preenchimento não sólido que é menor que o valor de limiar é " -"substituída por preenchimento sólido interno" +"A área de preenchimento esparso que é menor que o valor de limiar é substituída por " +"preenchimento sólido interno" msgid "Solid infill" msgstr "" @@ -13327,64 +13280,60 @@ msgid "Filament to print solid infill" msgstr "" msgid "" -"Line width of internal solid infill. If expressed as a %, it will be " -"computed over the nozzle diameter." +"Line width of internal solid infill. If expressed as a %, it will be computed over " +"the nozzle diameter." msgstr "" -"Largura da linha de preenchimento sólido interno. Se expresso como uma %, " -"será calculado sobre o diâmetro do bico." +"Largura da linha de preenchimento sólido interno. Se expresso como uma %, será " +"calculado sobre o diâmetro do bico." msgid "Speed of internal solid infill, not the top and bottom surface" msgstr "" -"Velocidade de preenchimento sólido interno, não a superfície superior e " -"inferior" +"Velocidade de preenchimento sólido interno, não a superfície superior e inferior" msgid "" -"Spiralize smooths out the z moves of the outer contour. And turns a solid " -"model into a single walled print with solid bottom layers. The final " -"generated model has no seam" +"Spiralize smooths out the z moves of the outer contour. And turns a solid model into " +"a single walled print with solid bottom layers. The final generated model has no seam" msgstr "" -"A espiralização suaviza os movimentos z do contorno externo. E transforma um " -"modelo sólido em uma impressão de perímetro único com camadas inferiores " -"sólidas. O modelo final gerado não tem costura" +"A espiralização suaviza os movimentos z do contorno externo. E transforma um modelo " +"sólido em uma impressão de perímetro único com camadas inferiores sólidas. O modelo " +"final gerado não tem costura" msgid "Smooth Spiral" msgstr "Espiral Suave" msgid "" -"Smooth Spiral smooths out X and Y moves as well, resulting in no visible " -"seam at all, even in the XY directions on walls that are not vertical" +"Smooth Spiral smooths out X and Y moves as well, resulting in no visible seam at " +"all, even in the XY directions on walls that are not vertical" msgstr "" -"A Espiral Suave suaviza os movimentos X e Y, resultando em nenhuma costura " -"visível, mesmo nas direções XY em paredes que não são verticais" +"A Espiral Suave suaviza os movimentos X e Y, resultando em nenhuma costura visível, " +"mesmo nas direções XY em paredes que não são verticais" msgid "Max XY Smoothing" msgstr "Suavização Máxima XY" msgid "" -"Maximum distance to move points in XY to try to achieve a smooth spiralIf " -"expressed as a %, it will be computed over nozzle diameter" +"Maximum distance to move points in XY to try to achieve a smooth spiralIf expressed " +"as a %, it will be computed over nozzle diameter" msgstr "" -"Distância máxima para mover pontos em XY para tentar obter uma espiral " -"suave. Se expresso como uma %, será calculado sobre o diâmetro do bico" +"Distância máxima para mover pontos em XY para tentar obter uma espiral suave. Se " +"expresso como uma %, será calculado sobre o diâmetro do bico" msgid "" -"If smooth or traditional mode is selected, a timelapse video will be " -"generated for each print. After each layer is printed, a snapshot is taken " -"with the chamber camera. All of these snapshots are composed into a " -"timelapse video when printing completes. If smooth mode is selected, the " -"toolhead will move to the excess chute after each layer is printed and then " -"take a snapshot. Since the melt filament may leak from the nozzle during the " -"process of taking a snapshot, prime tower is required for smooth mode to " -"wipe nozzle." +"If smooth or traditional mode is selected, a timelapse video will be generated for " +"each print. After each layer is printed, a snapshot is taken with the chamber " +"camera. All of these snapshots are composed into a timelapse video when printing " +"completes. If smooth mode is selected, the toolhead will move to the excess chute " +"after each layer is printed and then take a snapshot. Since the melt filament may " +"leak from the nozzle during the process of taking a snapshot, prime tower is " +"required for smooth mode to wipe nozzle." msgstr "" -"Se o modo suave ou tradicional for selecionado, um vídeo em time-lapse será " -"gerado para cada impressão. Após cada camada ser impressa, uma captura de " -"tela é feita com a câmera da câmara. Todas essas capturas de tela são " -"compostas em um vídeo em time-lapse quando a impressão é concluída. Se o " -"modo suave for selecionado, a extrusora se moverá para fora após cada camada " -"ser impressa e então tirará uma captura de tela. Como o filamento derretido " -"pode vazar do bico durante o processo de tirar uma captura de tela, é " -"necessário uma Torre Prime para o modo suave para limpar o bico." +"Se o modo suave ou tradicional for selecionado, um vídeo em time-lapse será gerado " +"para cada impressão. Após cada camada ser impressa, uma captura de tela é feita com " +"a câmera da câmara. Todas essas capturas de tela são compostas em um vídeo em time-" +"lapse quando a impressão é concluída. Se o modo suave for selecionado, a extrusora " +"se moverá para fora após cada camada ser impressa e então tirará uma captura de " +"tela. Como o filamento derretido pode vazar do bico durante o processo de tirar uma " +"captura de tela, é necessário uma Torre Prime para o modo suave para limpar o bico." msgid "Traditional" msgstr "Tradicional" @@ -13394,27 +13343,26 @@ msgstr "Variação de temperatura" #. TRN PrintSettings : "Ooze prevention" > "Temperature variation" msgid "" -"Temperature difference to be applied when an extruder is not active. The " -"value is not used when 'idle_temperature' in filament settings is set to non " -"zero value." +"Temperature difference to be applied when an extruder is not active. The value is " +"not used when 'idle_temperature' in filament settings is set to non zero value." msgstr "" msgid "Preheat time" msgstr "" msgid "" -"To reduce the waiting time after tool change, Orca can preheat the next tool " -"while the current tool is still in use. This setting specifies the time in " -"seconds to preheat the next tool. Orca will insert a M104 command to preheat " -"the tool in advance." +"To reduce the waiting time after tool change, Orca can preheat the next tool while " +"the current tool is still in use. This setting specifies the time in seconds to " +"preheat the next tool. Orca will insert a M104 command to preheat the tool in " +"advance." msgstr "" msgid "Preheat steps" msgstr "" msgid "" -"Insert multiple preheat commands(e.g. M104.1). Only useful for Prusa XL. For " -"other printers, please set it to 1." +"Insert multiple preheat commands(e.g. M104.1). Only useful for Prusa XL. For other " +"printers, please set it to 1." msgstr "" msgid "Start G-code" @@ -13436,17 +13384,15 @@ msgid "Manual Filament Change" msgstr "Troca Manual de Filamento" msgid "" -"Enable this option to omit the custom Change filament G-code only at the " -"beginning of the print. The tool change command (e.g., T0) will be skipped " -"throughout the entire print. This is useful for manual multi-material " -"printing, where we use M600/PAUSE to trigger the manual filament change " -"action." +"Enable this option to omit the custom Change filament G-code only at the beginning " +"of the print. The tool change command (e.g., T0) will be skipped throughout the " +"entire print. This is useful for manual multi-material printing, where we use M600/" +"PAUSE to trigger the manual filament change action." msgstr "" -"Ative esta opção para omitir o código G de troca de filamento personalizado " -"apenas no início da impressão. O comando de troca de ferramenta (por " -"exemplo, T0) será ignorado durante toda a impressão. Isso é útil para " -"impressão manual de vários materiais, onde usamos M600/PAUSE para acionar a " -"ação de troca manual de filamento." +"Ative esta opção para omitir o código G de troca de filamento personalizado apenas " +"no início da impressão. O comando de troca de ferramenta (por exemplo, T0) será " +"ignorado durante toda a impressão. Isso é útil para impressão manual de vários " +"materiais, onde usamos M600/PAUSE para acionar a ação de troca manual de filamento." msgid "Purge in prime tower" msgstr "Purgar na Torre Prime" @@ -13461,48 +13407,46 @@ msgid "No sparse layers (beta)" msgstr "Sem camadas esparsas (beta)" msgid "" -"If enabled, the wipe tower will not be printed on layers with no " -"toolchanges. On layers with a toolchange, extruder will travel downward to " -"print the wipe tower. User is responsible for ensuring there is no collision " -"with the print." +"If enabled, the wipe tower will not be printed on layers with no toolchanges. On " +"layers with a toolchange, extruder will travel downward to print the wipe tower. " +"User is responsible for ensuring there is no collision with the print." msgstr "" -"Se ativado, a Torre Prime não será impressa em camadas sem troca de " -"ferramenta. Em camadas com uma troca de ferramenta, a extrusora viajará para " -"baixo para imprimir a Torre Prime. O usuário é responsável por garantir que " -"não haja colisão com a impressão." +"Se ativado, a Torre Prime não será impressa em camadas sem troca de ferramenta. Em " +"camadas com uma troca de ferramenta, a extrusora viajará para baixo para imprimir a " +"Torre Prime. O usuário é responsável por garantir que não haja colisão com a " +"impressão." msgid "Prime all printing extruders" msgstr "Primer todos os extrusores de impressão" msgid "" -"If enabled, all printing extruders will be primed at the front edge of the " -"print bed at the start of the print." +"If enabled, all printing extruders will be primed at the front edge of the print bed " +"at the start of the print." msgstr "" -"Se ativado, todos os extrusores de impressão serão iniciados na borda " -"frontal da mesa de impressão no início da impressão." +"Se ativado, todos os extrusores de impressão serão iniciados na borda frontal da " +"mesa de impressão no início da impressão." msgid "Slice gap closing radius" msgstr "Tolerância do fatiamento" msgid "" -"Cracks smaller than 2x gap closing radius are being filled during the " -"triangle mesh slicing. The gap closing operation may reduce the final print " -"resolution, therefore it is advisable to keep the value reasonably low." +"Cracks smaller than 2x gap closing radius are being filled during the triangle mesh " +"slicing. The gap closing operation may reduce the final print resolution, therefore " +"it is advisable to keep the value reasonably low." msgstr "" -"Espaços menores que 2x a tolerância de fatiamentoo serão preenchidas durante " -"o fatiamento da malha. Aumentar a tolerância de fatiamento pode reduzir a " -"resolução final da impressão, portanto, é aconselhável manter o valor " -"razoavelmente baixo." +"Espaços menores que 2x a tolerância de fatiamentoo serão preenchidas durante o " +"fatiamento da malha. Aumentar a tolerância de fatiamento pode reduzir a resolução " +"final da impressão, portanto, é aconselhável manter o valor razoavelmente baixo." msgid "Slicing Mode" msgstr "Modo de Fatiamento" msgid "" -"Use \"Even-odd\" for 3DLabPrint airplane models. Use \"Close holes\" to " -"close all holes in the model." +"Use \"Even-odd\" for 3DLabPrint airplane models. Use \"Close holes\" to close all " +"holes in the model." msgstr "" -"Use \"Par-impar\" para modelos de avião 3DLabPrint. Use \"Fechar buracos\" " -"para fechar todos os buracos no modelo." +"Use \"Par-impar\" para modelos de avião 3DLabPrint. Use \"Fechar buracos\" para " +"fechar todos os buracos no modelo." msgid "Regular" msgstr "Padrão" @@ -13517,15 +13461,15 @@ msgid "Z offset" msgstr "Deslocamento Z" msgid "" -"This value will be added (or subtracted) from all the Z coordinates in the " -"output G-code. It is used to compensate for bad Z endstop position: for " -"example, if your endstop zero actually leaves the nozzle 0.3mm far from the " -"print bed, set this to -0.3 (or fix your endstop)." +"This value will be added (or subtracted) from all the Z coordinates in the output G-" +"code. It is used to compensate for bad Z endstop position: for example, if your " +"endstop zero actually leaves the nozzle 0.3mm far from the print bed, set this to " +"-0.3 (or fix your endstop)." msgstr "" -"Este valor será adicionado (ou subtraído) de todas as coordenadas Z no G-" -"code de saída. É usado para compensar a má posição do fim de curso Z: por " -"exemplo, se o zero do seu fim de curso na verdade deixa o bico 0,3 mm longe " -"da mesa de impressão, ajuste isso para -0,3 (ou corrija o seu fim de curso)." +"Este valor será adicionado (ou subtraído) de todas as coordenadas Z no G-code de " +"saída. É usado para compensar a má posição do fim de curso Z: por exemplo, se o zero " +"do seu fim de curso na verdade deixa o bico 0,3 mm longe da mesa de impressão, " +"ajuste isso para -0,3 (ou corrija o seu fim de curso)." msgid "Enable support" msgstr "Ativar suporte" @@ -13534,25 +13478,21 @@ msgid "Enable support generation." msgstr "Ativar a geração de suporte." msgid "" -"normal(auto) and tree(auto) is used to generate support automatically. If " -"normal(manual) or tree(manual) is selected, only support enforcers are " -"generated" +"Normal (auto) and Tree (auto) is used to generate support automatically. If Normal " +"(manual) or Tree (manual) is selected, only support enforcers are generated" msgstr "" -"normal(auto) e tree(auto) são usados para gerar suporte automaticamente. Se " -"normal(manual) ou tree(manual) for selecionado, apenas os suportes são " -"gerados" -msgid "normal(auto)" -msgstr "normal(automático)" +msgid "Normal (auto)" +msgstr "" -msgid "tree(auto)" -msgstr "árvore(automático)" +msgid "Tree (auto)" +msgstr "" -msgid "normal(manual)" -msgstr "normal(manual)" +msgid "Normal (manual)" +msgstr "" -msgid "tree(manual)" -msgstr "árvore(manual)" +msgid "Tree (manual)" +msgstr "" msgid "Support/object xy distance" msgstr "Distância xy entre suporte e objeto" @@ -13564,8 +13504,7 @@ msgid "Pattern angle" msgstr "Ângulo de padrão" msgid "Use this setting to rotate the support pattern on the horizontal plane." -msgstr "" -"Use esta configuração para girar o padrão de suporte no plano horizontal." +msgstr "Use esta configuração para girar o padrão de suporte no plano horizontal." msgid "On build plate only" msgstr "Somente na mesa" @@ -13576,12 +13515,9 @@ msgstr "Não criar suporte na superfície do modelo, apenas na mesa" msgid "Support critical regions only" msgstr "Suportar apenas regiões críticas" -msgid "" -"Only create support for critical regions including sharp tail, cantilever, " -"etc." +msgid "Only create support for critical regions including sharp tail, cantilever, etc." msgstr "" -"Crie suporte apenas para regiões críticas, incluindo cauda afiada, balanço, " -"etc." +"Crie suporte apenas para regiões críticas, incluindo cauda afiada, balanço, etc." msgid "Remove small overhangs" msgstr "Remover pequenos overhangs" @@ -13605,43 +13541,39 @@ msgid "Support/raft base" msgstr "Suporte/Jangada" msgid "" -"Filament to print support base and raft. \"Default\" means no specific " -"filament for support and current filament is used" +"Filament to print support base and raft. \"Default\" means no specific filament for " +"support and current filament is used" msgstr "" -"Filamento para imprimir Jangada e Suporte. \"Padrão\" significa nenhum " -"filamento específico para Suporte e o filamento atual será usado" +"Filamento para imprimir Jangada e Suporte. \"Padrão\" significa nenhum filamento " +"específico para Suporte e o filamento atual será usado" msgid "Avoid interface filament for base" msgstr "Evitar o filamento da interface para a base" -msgid "" -"Avoid using support interface filament to print support base if possible." +msgid "Avoid using support interface filament to print support base if possible." msgstr "" -"Evite usar o filamento da interface de suporte para imprimir a base, se " -"possível." +"Evite usar o filamento da interface de suporte para imprimir a base, se possível." msgid "" -"Line width of support. If expressed as a %, it will be computed over the " -"nozzle diameter." +"Line width of support. If expressed as a %, it will be computed over the nozzle " +"diameter." msgstr "" -"Largura da linha de suporte. Se expresso como %, será calculado sobre o " -"diâmetro do bico." +"Largura da linha de suporte. Se expresso como %, será calculado sobre o diâmetro do " +"bico." msgid "Interface use loop pattern" msgstr "Interface usa padrão de loop" -msgid "" -"Cover the top contact layer of the supports with loops. Disabled by default." +msgid "Cover the top contact layer of the supports with loops. Disabled by default." msgstr "" -"Cubra a camada de contato superior dos suportes com loops. Desativado por " -"padrão." +"Cubra a camada de contato superior dos suportes com loops. Desativado por padrão." msgid "Support/raft interface" msgstr "Interface de Suporte/Jangada" msgid "" -"Filament to print support interface. \"Default\" means no specific filament " -"for support interface and current filament is used" +"Filament to print support interface. \"Default\" means no specific filament for " +"support interface and current filament is used" msgstr "" "Filamento para imprimir a interface de suporte. \"Padrão\" significa nenhum " "filamento específico para a interface de suporte e o filamento atual é usado" @@ -13671,8 +13603,7 @@ msgid "Bottom interface spacing" msgstr "Espaçamento da interface inferior" msgid "Spacing of bottom interface lines. Zero means solid interface" -msgstr "" -"Espaçamento das linhas de interface inferior. Zero significa interface sólida" +msgstr "Espaçamento das linhas de interface inferior. Zero significa interface sólida" msgid "Speed of support interface" msgstr "Velocidade da interface de suporte" @@ -13693,13 +13624,12 @@ msgid "Interface pattern" msgstr "Padrão de interface" msgid "" -"Line pattern of support interface. Default pattern for non-soluble support " -"interface is Rectilinear, while default pattern for soluble support " -"interface is Concentric" +"Line pattern of support interface. Default pattern for non-soluble support interface " +"is Rectilinear, while default pattern for soluble support interface is Concentric" msgstr "" -"Padrão de linha de interface de suporte. O padrão padrão para interface de " -"suporte não solúvel é reticulado, enquanto o padrão padrão para interface de " -"suporte solúvel é concêntrico" +"Padrão de linha de interface de suporte. O padrão padrão para interface de suporte " +"não solúvel é reticulado, enquanto o padrão padrão para interface de suporte solúvel " +"é concêntrico" msgid "Rectilinear Interlaced" msgstr "Reticulado Interligado" @@ -13720,22 +13650,19 @@ msgid "Speed of support" msgstr "Velocidade do suporte" msgid "" -"Style and shape of the support. For normal support, projecting the supports " -"into a regular grid will create more stable supports (default), while snug " -"support towers will save material and reduce object scarring.\n" -"For tree support, slim and organic style will merge branches more " -"aggressively and save a lot of material (default organic), while hybrid " -"style will create similar structure to normal support under large flat " -"overhangs." +"Style and shape of the support. For normal support, projecting the supports into a " +"regular grid will create more stable supports (default), while snug support towers " +"will save material and reduce object scarring.\n" +"For tree support, slim and organic style will merge branches more aggressively and " +"save a lot of material (default organic), while hybrid style will create similar " +"structure to normal support under large flat overhangs." msgstr "" -"Estilo e forma do suporte. Para suporte normal, projetar os suportes em uma " -"grade regular criará suportes mais estáveis (padrão), enquanto torres de " -"suporte ajustadas economizarão material e reduzirão a cicatrização do " -"objeto.\n" -"Para suporte de árvore, estilo fino e orgânico mesclarão os galhos de forma " -"mais agressiva e economizarão muito material (orgânico padrão), enquanto o " -"estilo híbrido criará uma estrutura semelhante ao suporte normal em grandes " -"overhangs planas." +"Estilo e forma do suporte. Para suporte normal, projetar os suportes em uma grade " +"regular criará suportes mais estáveis (padrão), enquanto torres de suporte ajustadas " +"economizarão material e reduzirão a cicatrização do objeto.\n" +"Para suporte de árvore, estilo fino e orgânico mesclarão os galhos de forma mais " +"agressiva e economizarão muito material (orgânico padrão), enquanto o estilo híbrido " +"criará uma estrutura semelhante ao suporte normal em grandes overhangs planas." msgid "Default (Grid/Organic" msgstr "" @@ -13759,86 +13686,89 @@ msgid "Independent support layer height" msgstr "Altura independente da camada de suporte" msgid "" -"Support layer uses layer height independent with object layer. This is to " -"support customizing z-gap and save print time.This option will be invalid " -"when the prime tower is enabled." +"Support layer uses layer height independent with object layer. This is to support " +"customizing z-gap and save print time.This option will be invalid when the prime " +"tower is enabled." msgstr "" -"A camada de suporte usa uma altura de camada independente da camada do " -"objeto. Isso é para suportar a personalização do z-gap e economizar tempo de " -"impressão. Esta opção será inválida quando a Torre Prime estiver ativa." +"A camada de suporte usa uma altura de camada independente da camada do objeto. Isso " +"é para suportar a personalização do z-gap e economizar tempo de impressão. Esta " +"opção será inválida quando a Torre Prime estiver ativa." msgid "Threshold angle" msgstr "Ângulo de limite" msgid "" -"Support will be generated for overhangs whose slope angle is below the " -"threshold." +"Support will be generated for overhangs whose slope angle is below the threshold." +msgstr "" +"O suporte será gerado para overhangs cujo ângulo de inclinação estiver abaixo do " +"limite." + +msgid "Threshold overlap" +msgstr "" + +msgid "" +"If threshold angle is zero, support will be generated for overhangs whose overlap is " +"below the threshold. The smaller this value is, the steeper the overhang that can be " +"printed without support." msgstr "" -"O suporte será gerado para overhangs cujo ângulo de inclinação estiver " -"abaixo do limite." msgid "Tree support branch angle" msgstr "Ângulo da ramificação" msgid "" -"This setting determines the maximum overhang angle that t he branches of " -"tree support allowed to make.If the angle is increased, the branches can be " -"printed more horizontally, allowing them to reach farther." +"This setting determines the maximum overhang angle that t he branches of tree " +"support allowed to make.If the angle is increased, the branches can be printed more " +"horizontally, allowing them to reach farther." msgstr "" -"Esta configuração determina o ângulo máximo de inclinação que as " -"ramificações de suporte de árvore podem fazer. Se o ângulo for aumentado, as " -"ramificações podem ser impressas de forma mais horizontal, permitindo que " -"alcancem mais longe." +"Esta configuração determina o ângulo máximo de inclinação que as ramificações de " +"suporte de árvore podem fazer. Se o ângulo for aumentado, as ramificações podem ser " +"impressas de forma mais horizontal, permitindo que alcancem mais longe." msgid "Preferred Branch Angle" msgstr "Ângulo preferido da ramificação" #. TRN PrintSettings: "Organic supports" > "Preferred Branch Angle" msgid "" -"The preferred angle of the branches, when they do not have to avoid the " -"model. Use a lower angle to make them more vertical and more stable. Use a " -"higher angle for branches to merge faster." +"The preferred angle of the branches, when they do not have to avoid the model. Use a " +"lower angle to make them more vertical and more stable. Use a higher angle for " +"branches to merge faster." msgstr "" -"O ângulo preferido das ramificações, quando eles não precisam evitar o " -"modelo. Use um ângulo mais baixo para torná-los mais verticais e mais " -"estáveis. Use um ângulo mais alto para que as ramificações se fundam mais " -"rápido." +"O ângulo preferido das ramificações, quando eles não precisam evitar o modelo. Use " +"um ângulo mais baixo para torná-los mais verticais e mais estáveis. Use um ângulo " +"mais alto para que as ramificações se fundam mais rápido." msgid "Tree support branch distance" msgstr "Distância entre ramificações" -msgid "" -"This setting determines the distance between neighboring tree support nodes." +msgid "This setting determines the distance between neighboring tree support nodes." msgstr "" -"Essa configuração determina a distância entre os nós de suporte de árvore " -"vizinhos." +"Essa configuração determina a distância entre os nós de suporte de árvore vizinhos." msgid "Branch Density" msgstr "Densidade da ramificação" #. TRN PrintSettings: "Organic supports" > "Branch Density" msgid "" -"Adjusts the density of the support structure used to generate the tips of " -"the branches. A higher value results in better overhangs but the supports " -"are harder to remove, thus it is recommended to enable top support " -"interfaces instead of a high branch density value if dense interfaces are " -"needed." +"Adjusts the density of the support structure used to generate the tips of the " +"branches. A higher value results in better overhangs but the supports are harder to " +"remove, thus it is recommended to enable top support interfaces instead of a high " +"branch density value if dense interfaces are needed." msgstr "" "Ajusta a densidade da estrutura de suporte usada para gerar as pontas das " -"ramificações. Um valor mais alto resulta em overhangs melhores, mas os " -"suportes são mais difíceis de remover, portanto, é recomendável ativar as " -"interfaces superiores de suporte em vez de um valor de densidade de ramo " -"alto se forem necessárias interfaces densas." +"ramificações. Um valor mais alto resulta em overhangs melhores, mas os suportes são " +"mais difíceis de remover, portanto, é recomendável ativar as interfaces superiores " +"de suporte em vez de um valor de densidade de ramo alto se forem necessárias " +"interfaces densas." msgid "Adaptive layer height" msgstr "Altura de camada adaptativa" msgid "" -"Enabling this option means the height of tree support layer except the " -"first will be automatically calculated " +"Enabling this option means the height of tree support layer except the first will " +"be automatically calculated " msgstr "" -"Ao ativar essa opção, a altura da camada de suporte de árvore, exceto a " -"primeira, será calculada automaticamente " +"Ao ativar essa opção, a altura da camada de suporte de árvore, exceto a primeira, " +"será calculada automaticamente " msgid "Auto brim width" msgstr "Largura de borda automática" @@ -13847,8 +13777,8 @@ msgid "" "Enabling this option means the width of the brim for tree support will be " "automatically calculated" msgstr "" -"Ao ativar essa opção, a largura da borda para suporte de árvore será " -"calculada automaticamente" +"Ao ativar essa opção, a largura da borda para suporte de árvore será calculada " +"automaticamente" msgid "Tree support brim width" msgstr "Largura da borda de suporte de árvore" @@ -13875,28 +13805,26 @@ msgstr "Ângulo do diâmetro da ramificação" #. TRN PrintSettings: "Organic supports" > "Branch Diameter Angle" msgid "" -"The angle of the branches' diameter as they gradually become thicker towards " -"the bottom. An angle of 0 will cause the branches to have uniform thickness " -"over their length. A bit of an angle can increase stability of the organic " -"support." +"The angle of the branches' diameter as they gradually become thicker towards the " +"bottom. An angle of 0 will cause the branches to have uniform thickness over their " +"length. A bit of an angle can increase stability of the organic support." msgstr "" -"O ângulo das ramificações à medida que elas gradualmente se tornam mais " -"espessos em direção à base. Um ângulo de 0 fará com que as ramificações " -"tenham espessura uniforme ao longo de seu comprimento. Um pequeno ângulo " -"pode aumentar a estabilidade do suporte orgânico." +"O ângulo das ramificações à medida que elas gradualmente se tornam mais espessos em " +"direção à base. Um ângulo de 0 fará com que as ramificações tenham espessura " +"uniforme ao longo de seu comprimento. Um pequeno ângulo pode aumentar a estabilidade " +"do suporte orgânico." msgid "Branch Diameter with double walls" msgstr "Diâmetro da ramificação com perí. duplo" #. TRN PrintSettings: "Organic supports" > "Branch Diameter" msgid "" -"Branches with area larger than the area of a circle of this diameter will be " -"printed with double walls for stability. Set this value to zero for no " -"double walls." +"Branches with area larger than the area of a circle of this diameter will be printed " +"with double walls for stability. Set this value to zero for no double walls." msgstr "" -"Ramificações com área maior do que a área de um círculo com este diâmetro " -"serão impressas com paredes duplas para estabilidade. Defina este valor como " -"zero para não ter paredes duplas." +"Ramificações com área maior do que a área de um círculo com este diâmetro serão " +"impressas com paredes duplas para estabilidade. Defina este valor como zero para não " +"ter paredes duplas." msgid "Support wall loops" msgstr "Perímetros de suporte" @@ -13908,26 +13836,23 @@ msgid "Tree support with infill" msgstr "Suporte de árvore com preenchimento" msgid "" -"This setting specifies whether to add infill inside large hollows of tree " -"support" +"This setting specifies whether to add infill inside large hollows of tree support" msgstr "" -"Essa configuração especifica se deve adicionar preenchimento dentro de " -"grandes cavidades do suporte de árvore" +"Essa configuração especifica se deve adicionar preenchimento dentro de grandes " +"cavidades do suporte de árvore" msgid "Activate temperature control" msgstr "Ativar controle de temperatura" msgid "" -"Enable this option for automated chamber temperature control. This option " -"activates the emitting of an M191 command before the " -"\"machine_start_gcode\"\n" -" which sets the chamber temperature and waits until it is reached. In " -"addition, it emits an M141 command at the end of the print to turn off the " -"chamber heater, if present. \n" +"Enable this option for automated chamber temperature control. This option activates " +"the emitting of an M191 command before the \"machine_start_gcode\"\n" +" which sets the chamber temperature and waits until it is reached. In addition, it " +"emits an M141 command at the end of the print to turn off the chamber heater, if " +"present. \n" "\n" -"This option relies on the firmware supporting the M191 and M141 commands " -"either via macros or natively and is usually used when an active chamber " -"heater is installed." +"This option relies on the firmware supporting the M191 and M141 commands either via " +"macros or natively and is usually used when an active chamber heater is installed." msgstr "" msgid "Chamber temperature" @@ -13935,22 +13860,20 @@ msgstr "Temperatura da câmara" msgid "" "For high-temperature materials like ABS, ASA, PC, and PA, a higher chamber " -"temperature can help suppress or reduce warping and potentially lead to " -"higher interlayer bonding strength. However, at the same time, a higher " -"chamber temperature will reduce the efficiency of air filtration for ABS and " -"ASA. \n" +"temperature can help suppress or reduce warping and potentially lead to higher " +"interlayer bonding strength. However, at the same time, a higher chamber temperature " +"will reduce the efficiency of air filtration for ABS and ASA. \n" "\n" -"For PLA, PETG, TPU, PVA, and other low-temperature materials, this option " -"should be disabled (set to 0) as the chamber temperature should be low to " -"avoid extruder clogging caused by material softening at the heat break.\n" +"For PLA, PETG, TPU, PVA, and other low-temperature materials, this option should be " +"disabled (set to 0) as the chamber temperature should be low to avoid extruder " +"clogging caused by material softening at the heat break.\n" "\n" -"If enabled, this parameter also sets a gcode variable named " -"chamber_temperature, which can be used to pass the desired chamber " -"temperature to your print start macro, or a heat soak macro like this: " -"PRINT_START (other variables) CHAMBER_TEMP=[chamber_temperature]. This may " -"be useful if your printer does not support M141/M191 commands, or if you " -"desire to handle heat soaking in the print start macro if no active chamber " -"heater is installed." +"If enabled, this parameter also sets a gcode variable named chamber_temperature, " +"which can be used to pass the desired chamber temperature to your print start macro, " +"or a heat soak macro like this: PRINT_START (other variables) " +"CHAMBER_TEMP=[chamber_temperature]. This may be useful if your printer does not " +"support M141/M191 commands, or if you desire to handle heat soaking in the print " +"start macro if no active chamber heater is installed." msgstr "" msgid "Nozzle temperature for layers after the initial one" @@ -13960,29 +13883,28 @@ msgid "Detect thin wall" msgstr "Detectar perímetro fino" msgid "" -"Detect thin wall which can't contain two line width. And use single line to " -"print. Maybe printed not very well, because it's not closed loop" +"Detect thin wall which can't contain two line width. And use single line to print. " +"Maybe printed not very well, because it's not closed loop" msgstr "" -"Detecta paredes finas que não podem conter duas larguras de linha. E usa uma " -"linha única para imprimir. Talvez seja impresso não muito bem, porque não é " -"um loop fechado" +"Detecta paredes finas que não podem conter duas larguras de linha. E usa uma linha " +"única para imprimir. Talvez seja impresso não muito bem, porque não é um loop fechado" msgid "" -"This gcode is inserted when change filament, including T command to trigger " -"tool change" +"This gcode is inserted when change filament, including T command to trigger tool " +"change" msgstr "" -"Este gcode é inserido ao trocar o filamento, incluindo o comando T para " -"acionar a troca de ferramenta" +"Este gcode é inserido ao trocar o filamento, incluindo o comando T para acionar a " +"troca de ferramenta" msgid "This gcode is inserted when the extrusion role is changed" msgstr "Esse gcode é inserido quando o tipo de extrusão muda" msgid "" -"Line width for top surfaces. If expressed as a %, it will be computed over " -"the nozzle diameter." +"Line width for top surfaces. If expressed as a %, it will be computed over the " +"nozzle diameter." msgstr "" -"Largura da linha para superfícies superiores. Se expressa em %, será " -"calculada sobre o diâmetro do bico." +"Largura da linha para superfícies superiores. Se expressa em %, será calculada sobre " +"o diâmetro do bico." msgid "Speed of top surface infill which is solid" msgstr "Velocidade de preenchimento da superfície superior, que é sólida" @@ -13991,14 +13913,13 @@ msgid "Top shell layers" msgstr "Camadas de topo" msgid "" -"This is the number of solid layers of top shell, including the top surface " -"layer. When the thickness calculated by this value is thinner than top shell " -"thickness, the top shell layers will be increased" +"This is the number of solid layers of top shell, including the top surface layer. " +"When the thickness calculated by this value is thinner than top shell thickness, the " +"top shell layers will be increased" msgstr "" -"Este é o número de camadas sólidas do perímetro superior, incluindo a camada " -"da superfície superior. Quando a espessura calculada por este valor for " -"menor do que a espessura do perímetro superior, as camadas do perímetro " -"superior serão aumentadas" +"Este é o número de camadas sólidas do perímetro superior, incluindo a camada da " +"superfície superior. Quando a espessura calculada por este valor for menor do que a " +"espessura do perímetro superior, as camadas do perímetro superior serão aumentadas" msgid "Top solid layers" msgstr "Camadas sólidas superiores" @@ -14007,17 +13928,16 @@ msgid "Top shell thickness" msgstr "Espessura da parede de topo" msgid "" -"The number of top solid layers is increased when slicing if the thickness " -"calculated by top shell layers is thinner than this value. This can avoid " -"having too thin shell when layer height is small. 0 means that this setting " -"is disabled and thickness of top shell is absolutely determined by top shell " -"layers" +"The number of top solid layers is increased when slicing if the thickness calculated " +"by top shell layers is thinner than this value. This can avoid having too thin shell " +"when layer height is small. 0 means that this setting is disabled and thickness of " +"top shell is absolutely determined by top shell layers" msgstr "" "O número de camadas sólidas superiores é aumentado ao fatiar se a espessura " -"calculada pelas camadas da parede superior for menor do que este valor. Isso " -"pode evitar que a parede seja muito fina quando a altura da camada é " -"pequena. 0 significa que esta configuração está desativada e a espessura da " -"parede superior é determinada exclusivamente pelas camadas da parede superior" +"calculada pelas camadas da parede superior for menor do que este valor. Isso pode " +"evitar que a parede seja muito fina quando a altura da camada é pequena. 0 significa " +"que esta configuração está desativada e a espessura da parede superior é determinada " +"exclusivamente pelas camadas da parede superior" msgid "Speed of travel which is faster and without extrusion" msgstr "Velocidade de deslocamento mais rápida e sem extrusão" @@ -14026,46 +13946,43 @@ msgid "Wipe while retracting" msgstr "Limpar enquanto retrai" msgid "" -"Move nozzle along the last extrusion path when retracting to clean leaked " -"material on nozzle. This can minimize blob when print new part after travel" +"Move nozzle along the last extrusion path when retracting to clean leaked material " +"on nozzle. This can minimize blob when print new part after travel" msgstr "" -"Movimentar o bico ao longo do último caminho de extrusão ao retrair para " -"limpar o material vazado no bico. Isso pode minimizar a formação de blob " -"quando imprimir uma nova peça após o deslocamento" +"Movimentar o bico ao longo do último caminho de extrusão ao retrair para limpar o " +"material vazado no bico. Isso pode minimizar a formação de blob quando imprimir uma " +"nova peça após o deslocamento" msgid "Wipe Distance" msgstr "Distância de limpeza" msgid "" -"Describe how long the nozzle will move along the last path when " -"retracting. \n" +"Describe how long the nozzle will move along the last path when retracting. \n" "\n" -"Depending on how long the wipe operation lasts, how fast and long the " -"extruder/filament retraction settings are, a retraction move may be needed " -"to retract the remaining filament. \n" +"Depending on how long the wipe operation lasts, how fast and long the extruder/" +"filament retraction settings are, a retraction move may be needed to retract the " +"remaining filament. \n" "\n" -"Setting a value in the retract amount before wipe setting below will perform " -"any excess retraction before the wipe, else it will be performed after." +"Setting a value in the retract amount before wipe setting below will perform any " +"excess retraction before the wipe, else it will be performed after." msgstr "" -"Descreva por quanto tempo o bico se moverá ao longo do último caminho ao " -"retrair. \n" +"Descreva por quanto tempo o bico se moverá ao longo do último caminho ao retrair. \n" "\n" -"Dependendo de quanto tempo dura a operação de limpeza, quão rápidas e longas " -"são as configurações de retração do extrusor/filamento, pode ser necessário " -"um movimento de retração para recolher o filamento restante. \n" +"Dependendo de quanto tempo dura a operação de limpeza, quão rápidas e longas são as " +"configurações de retração do extrusor/filamento, pode ser necessário um movimento de " +"retração para recolher o filamento restante. \n" "\n" -"Definir um valor na configuração de quantidade de retração antes da limpeza " -"abaixo executará qualquer retração em excesso antes da limpeza, caso " -"contrário, será realizada após." +"Definir um valor na configuração de quantidade de retração antes da limpeza abaixo " +"executará qualquer retração em excesso antes da limpeza, caso contrário, será " +"realizada após." msgid "" -"The wiping tower can be used to clean up the residue on the nozzle and " -"stabilize the chamber pressure inside the nozzle, in order to avoid " -"appearance defects when printing objects." +"The wiping tower can be used to clean up the residue on the nozzle and stabilize the " +"chamber pressure inside the nozzle, in order to avoid appearance defects when " +"printing objects." msgstr "" -"A Torre Prime pode ser usada para limpar o resíduo no bico e estabilizar a " -"pressão na câmara dentro do bico, a fim de evitar defeitos de aparência ao " -"imprimir objetos." +"A Torre Prime pode ser usada para limpar o resíduo no bico e estabilizar a pressão " +"na câmara dentro do bico, a fim de evitar defeitos de aparência ao imprimir objetos." msgid "Purging volumes" msgstr "Volumes de purga" @@ -14074,11 +13991,11 @@ msgid "Flush multiplier" msgstr "Multiplicador de purga" msgid "" -"The actual flushing volumes is equal to the flush multiplier multiplied by " -"the flushing volumes in the table." +"The actual flushing volumes is equal to the flush multiplier multiplied by the " +"flushing volumes in the table." msgstr "" -"Os volumes de purga reais são iguais ao multiplicador de purga multiplicado " -"pelos volumes de purga na tabela." +"Os volumes de purga reais são iguais ao multiplicador de purga multiplicado pelos " +"volumes de purga na tabela." msgid "Prime volume" msgstr "Volume de material" @@ -14099,111 +14016,108 @@ msgid "Stabilization cone apex angle" msgstr "Ângulo do ápice do cone de estabilização" msgid "" -"Angle at the apex of the cone that is used to stabilize the wipe tower. " -"Larger angle means wider base." +"Angle at the apex of the cone that is used to stabilize the wipe tower. Larger angle " +"means wider base." msgstr "" -"Ângulo no ápice do cone usado para estabilizar a Torre Prime. Um ângulo " -"maior significa uma base mais larga." +"Ângulo no ápice do cone usado para estabilizar a Torre Prime. Um ângulo maior " +"significa uma base mais larga." msgid "Maximum wipe tower print speed" msgstr "Velocidade máxima de impressão da Torre Prime" msgid "" -"The maximum print speed when purging in the wipe tower and printing the wipe " -"tower sparse layers. When purging, if the sparse infill speed or calculated " -"speed from the filament max volumetric speed is lower, the lowest will be " -"used instead.\n" +"The maximum print speed when purging in the wipe tower and printing the wipe tower " +"sparse layers. When purging, if the sparse infill speed or calculated speed from the " +"filament max volumetric speed is lower, the lowest will be used instead.\n" "\n" -"When printing the sparse layers, if the internal perimeter speed or " -"calculated speed from the filament max volumetric speed is lower, the lowest " -"will be used instead.\n" +"When printing the sparse layers, if the internal perimeter speed or calculated speed " +"from the filament max volumetric speed is lower, the lowest will be used instead.\n" "\n" -"Increasing this speed may affect the tower's stability as well as increase " -"the force with which the nozzle collides with any blobs that may have formed " -"on the wipe tower.\n" +"Increasing this speed may affect the tower's stability as well as increase the force " +"with which the nozzle collides with any blobs that may have formed on the wipe " +"tower.\n" "\n" -"Before increasing this parameter beyond the default of 90mm/sec, make sure " -"your printer can reliably bridge at the increased speeds and that ooze when " -"tool changing is well controlled.\n" +"Before increasing this parameter beyond the default of 90mm/sec, make sure your " +"printer can reliably bridge at the increased speeds and that ooze when tool changing " +"is well controlled.\n" "\n" "For the wipe tower external perimeters the internal perimeter speed is used " "regardless of this setting." msgstr "" -"A velocidade máxima de impressão ao purgar na Torre Prime e ao imprimir as " -"camadas esparsas da Torre Prime. Ao purgar, se a velocidade do preenchimento " -"ou a velocidade calculada a partir da velocidade volumétrica máxima do " -"filamento for menor, a menor será utilizada.\n" +"A velocidade máxima de impressão ao purgar na Torre Prime e ao imprimir as camadas " +"esparsas da Torre Prime. Ao purgar, se a velocidade do preenchimento esparso ou a " +"velocidade calculada a partir da velocidade volumétrica máxima do filamento for " +"menor, a menor será utilizada.\n" "\n" "Ao imprimir as camadas esparsas, se a velocidade do perímetro interno ou a " -"velocidade calculada a partir da velocidade volumétrica máxima do filamento " -"for menor, a menor será utilizada.\n" +"velocidade calculada a partir da velocidade volumétrica máxima do filamento for " +"menor, a menor será utilizada.\n" "\n" -"Aumentar essa velocidade pode afetar a estabilidade da torre, bem como " -"aumentar a força com que o bico colide com quaisquer bolhas que possam ter " -"se formado na Torre Prime.\n" +"Aumentar essa velocidade pode afetar a estabilidade da torre, bem como aumentar a " +"força com que o bico colide com quaisquer bolhas que possam ter se formado na Torre " +"Prime.\n" "\n" -"Antes de aumentar esse parâmetro além do padrão de 90mm/s, certifique-se de " -"que sua impressora pode realizar pontes de forma confiável nas velocidades " -"aumentadas e que a extrusão ao trocar a ferramenta está bem controlada.\n" +"Antes de aumentar esse parâmetro além do padrão de 90mm/s, certifique-se de que sua " +"impressora pode realizar pontes de forma confiável nas velocidades aumentadas e que " +"a extrusão ao trocar a ferramenta está bem controlada.\n" "\n" -"Para os perímetros externos da Torre Prime, a velocidade do perímetro " -"interno é utilizada independentemente dessa configuração." +"Para os perímetros externos da Torre Prime, a velocidade do perímetro interno é " +"utilizada independentemente dessa configuração." msgid "" -"The extruder to use when printing perimeter of the wipe tower. Set to 0 to " -"use the one that is available (non-soluble would be preferred)." +"The extruder to use when printing perimeter of the wipe tower. Set to 0 to use the " +"one that is available (non-soluble would be preferred)." msgstr "" -"Extrusor a ser usada ao imprimir o perímetro da Torre Prime. Defina como 0 " -"para usar a disponível (não solúvel é preferido)." +"Extrusor a ser usada ao imprimir o perímetro da Torre Prime. Defina como 0 para usar " +"a disponível (não solúvel é preferido)." msgid "Purging volumes - load/unload volumes" msgstr "Volumes de purga - volumes de carga/descarga" msgid "" -"This vector saves required volumes to change from/to each tool used on the " -"wipe tower. These values are used to simplify creation of the full purging " -"volumes below." +"This vector saves required volumes to change from/to each tool used on the wipe " +"tower. These values are used to simplify creation of the full purging volumes below." msgstr "" -"Este vetor salva os volumes necessários para mudar de/para cada ferramenta " -"usada na Torre Prime. Esses valores são usados para simplificar a criação " -"dos volumes de purga completos abaixo." +"Este vetor salva os volumes necessários para mudar de/para cada ferramenta usada na " +"Torre Prime. Esses valores são usados para simplificar a criação dos volumes de " +"purga completos abaixo." msgid "" -"Purging after filament change will be done inside objects' infills. This may " -"lower the amount of waste and decrease the print time. If the walls are " -"printed with transparent filament, the mixed color infill will be seen " -"outside. It will not take effect, unless the prime tower is enabled." +"Purging after filament change will be done inside objects' infills. This may lower " +"the amount of waste and decrease the print time. If the walls are printed with " +"transparent filament, the mixed color infill will be seen outside. It will not take " +"effect, unless the prime tower is enabled." msgstr "" -"A purga após a troca de filamento será feita dentro do preenchimento dos " -"objetos. Isso pode reduzir a quantidade de resíduos e diminuir o tempo de " -"impressão. Se as paredes forem impressas com filamento transparente, o " -"preenchimento de cor mista será visível do lado de fora. Isso não terá " +"A purga após a troca de filamento será feita dentro do preenchimento dos objetos. " +"Isso pode reduzir a quantidade de resíduos e diminuir o tempo de impressão. Se as " +"paredes forem impressas com filamento transparente, o preenchimento de cor mista " +"será visível do lado de fora. Isso não terá efeito, a menos que a Torre Prime esteja " +"ativa." + +msgid "" +"Purging after filament change will be done inside objects' support. This may lower " +"the amount of waste and decrease the print time. It will not take effect, unless the " +"prime tower is enabled." +msgstr "" +"A purga após a troca de filamento será feita dentro do suporte dos objetos. Isso " +"pode reduzir a quantidade de resíduos e diminuir o tempo de impressão. Isso não terá " "efeito, a menos que a Torre Prime esteja ativa." -msgid "" -"Purging after filament change will be done inside objects' support. This may " -"lower the amount of waste and decrease the print time. It will not take " -"effect, unless the prime tower is enabled." -msgstr "" -"A purga após a troca de filamento será feita dentro do suporte dos objetos. " -"Isso pode reduzir a quantidade de resíduos e diminuir o tempo de impressão. " -"Isso não terá efeito, a menos que a Torre Prime esteja ativa." - msgid "" "This object will be used to purge the nozzle after a filament change to save " -"filament and decrease the print time. Colours of the objects will be mixed " -"as a result. It will not take effect, unless the prime tower is enabled." +"filament and decrease the print time. Colours of the objects will be mixed as a " +"result. It will not take effect, unless the prime tower is enabled." msgstr "" "Este objeto será usado para purgar o bico após uma troca de filamento para " -"economizar filamento e diminuir o tempo de impressão. As cores dos objetos " -"serão misturadas como resultado. Isso não terá efeito, a menos que a Torre " -"Prime esteja ativa." +"economizar filamento e diminuir o tempo de impressão. As cores dos objetos serão " +"misturadas como resultado. Isso não terá efeito, a menos que a Torre Prime esteja " +"ativa." msgid "Maximal bridging distance" msgstr "Distância máxima de ponte" msgid "Maximal distance between supports on sparse infill sections." -msgstr "Distância máxima entre suportes em seções de preenchimento não sólido." +msgstr "Distância máxima entre suportes em seções de preenchimento esparso." msgid "Wipe tower purge lines spacing" msgstr "Espaçamento das linhas de purga da Torre Prime" @@ -14215,18 +14129,17 @@ msgid "Extra flow for purging" msgstr "" msgid "" -"Extra flow used for the purging lines on the wipe tower. This makes the " -"purging lines thicker or narrower than they normally would be. The spacing " -"is adjusted automatically." +"Extra flow used for the purging lines on the wipe tower. This makes the purging " +"lines thicker or narrower than they normally would be. The spacing is adjusted " +"automatically." msgstr "" msgid "Idle temperature" msgstr "" msgid "" -"Nozzle temperature when the tool is currently not used in multi-tool " -"setups.This is only used when 'Ooze prevention' is active in Print Settings. " -"Set to 0 to disable." +"Nozzle temperature when the tool is currently not used in multi-tool setups.This is " +"only used when 'Ooze prevention' is active in Print Settings. Set to 0 to disable." msgstr "" msgid "X-Y hole compensation" @@ -14234,40 +14147,37 @@ msgstr "Compensação XY de furos" msgid "" "Holes of object will be grown or shrunk in XY plane by the configured value. " -"Positive value makes holes bigger. Negative value makes holes smaller. This " -"function is used to adjust size slightly when the object has assembling issue" +"Positive value makes holes bigger. Negative value makes holes smaller. This function " +"is used to adjust size slightly when the object has assembling issue" msgstr "" -"Os furos do objeto serão aumentados ou reduzidos no plano XY pelo valor " -"configurado. Valor positivo aumenta os furos. Valor negativo reduz os furos. " -"Essa função é usada para ajustar ligeiramente o tamanho quando o objeto tem " -"problema de montagem" +"Os furos do objeto serão aumentados ou reduzidos no plano XY pelo valor configurado. " +"Valor positivo aumenta os furos. Valor negativo reduz os furos. Essa função é usada " +"para ajustar ligeiramente o tamanho quando o objeto tem problema de montagem" msgid "X-Y contour compensation" msgstr "Compensação XY de contornos" msgid "" -"Contour of object will be grown or shrunk in XY plane by the configured " -"value. Positive value makes contour bigger. Negative value makes contour " -"smaller. This function is used to adjust size slightly when the object has " -"assembling issue" +"Contour of object will be grown or shrunk in XY plane by the configured value. " +"Positive value makes contour bigger. Negative value makes contour smaller. This " +"function is used to adjust size slightly when the object has assembling issue" msgstr "" -"O contorno do objeto será expandido ou reduzido no plano XY pelo valor " -"configurado. Valor positivo aumenta o contorno. Valor negativo diminui o " -"contorno. Essa função é usada para ajustar ligeiramente o tamanho quando o " -"objeto tem problemas de montagem" +"O contorno do objeto será expandido ou reduzido no plano XY pelo valor configurado. " +"Valor positivo aumenta o contorno. Valor negativo diminui o contorno. Essa função é " +"usada para ajustar ligeiramente o tamanho quando o objeto tem problemas de montagem" msgid "Convert holes to polyholes" msgstr "Converter furos em polifuros" msgid "" -"Search for almost-circular holes that span more than one layer and convert " -"the geometry to polyholes. Use the nozzle size and the (biggest) diameter to " -"compute the polyhole.\n" +"Search for almost-circular holes that span more than one layer and convert the " +"geometry to polyholes. Use the nozzle size and the (biggest) diameter to compute the " +"polyhole.\n" "See http://hydraraptor.blogspot.com/2011/02/polyholes.html" msgstr "" -"Procura por furos quase circulares que abrangem mais de uma camada e " -"converta a geometria em polifuros. Usa o tamanho do bico e o diâmetro " -"(maior) para calcular o polifuro.\n" +"Procura por furos quase circulares que abrangem mais de uma camada e converta a " +"geometria em polifuros. Usa o tamanho do bico e o diâmetro (maior) para calcular o " +"polifuro.\n" "Consulte http://hydraraptor.blogspot.com/2011/02/polyholes.html" msgid "Polyhole detection margin" @@ -14276,15 +14186,15 @@ msgstr "Margem de detecção de polifuros" #, no-c-format, no-boost-format msgid "" "Maximum defection of a point to the estimated radius of the circle.\n" -"As cylinders are often exported as triangles of varying size, points may not " -"be on the circle circumference. This setting allows you some leeway to " -"broaden the detection.\n" +"As cylinders are often exported as triangles of varying size, points may not be on " +"the circle circumference. This setting allows you some leeway to broaden the " +"detection.\n" "In mm or in % of the radius." msgstr "" "Máxima deflexão de um ponto para o raio estimado do círculo.\n" -"Como os cilindros frequentemente são exportados como triângulos de tamanho " -"variável, os pontos podem não estar na circunferência do círculo. Esta " -"configuração permite-lhe alguma margem para alargar a detecção.\n" +"Como os cilindros frequentemente são exportados como triângulos de tamanho variável, " +"os pontos podem não estar na circunferência do círculo. Esta configuração permite-" +"lhe alguma margem para alargar a detecção.\n" "Em milímetros ou em % do raio." msgid "Polyhole twist" @@ -14297,47 +14207,43 @@ msgid "G-code thumbnails" msgstr "Miniaturas de G-code" msgid "" -"Picture sizes to be stored into a .gcode and .sl1 / .sl1s files, in the " -"following format: \"XxY, XxY, ...\"" +"Picture sizes to be stored into a .gcode and .sl1 / .sl1s files, in the following " +"format: \"XxY, XxY, ...\"" msgstr "" -"Tamanhos das imagens a serem armazenados em arquivos .gcode e .sl1 / .sl1s, " -"no seguinte formato: \"XxY, XxY, ...\"" +"Tamanhos das imagens a serem armazenados em arquivos .gcode e .sl1 / .sl1s, no " +"seguinte formato: \"XxY, XxY, ...\"" msgid "Format of G-code thumbnails" msgstr "Formato das miniaturas de G-code" msgid "" -"Format of G-code thumbnails: PNG for best quality, JPG for smallest size, " -"QOI for low memory firmware" +"Format of G-code thumbnails: PNG for best quality, JPG for smallest size, QOI for " +"low memory firmware" msgstr "" -"Formato das miniaturas de G-code: PNG para melhor qualidade, JPG para menor " -"tamanho, QOI para firmware de baixa memória" +"Formato das miniaturas de G-code: PNG para melhor qualidade, JPG para menor tamanho, " +"QOI para firmware de baixa memória" msgid "Use relative E distances" msgstr "Usar distâncias E relativas" msgid "" -"Relative extrusion is recommended when using \"label_objects\" option.Some " -"extruders work better with this option unchecked (absolute extrusion mode). " -"Wipe tower is only compatible with relative mode. It is recommended on most " -"printers. Default is checked" +"Relative extrusion is recommended when using \"label_objects\" option.Some extruders " +"work better with this option unchecked (absolute extrusion mode). Wipe tower is only " +"compatible with relative mode. It is recommended on most printers. Default is checked" msgstr "" "A extrusão relativa é recomendada ao usar a opção \"label_objects\". Algumas " -"extrusoras funcionam melhor com esta opção desmarcada (modo de extrusão " -"absoluta). A Torre Prime é compatível apenas com o modo relativo. É " -"recomendado na maioria das impressoras. O padrão é ativado" +"extrusoras funcionam melhor com esta opção desmarcada (modo de extrusão absoluta). A " +"Torre Prime é compatível apenas com o modo relativo. É recomendado na maioria das " +"impressoras. O padrão é ativado" msgid "" -"Classic wall generator produces walls with constant extrusion width and for " -"very thin areas is used gap-fill. Arachne engine produces walls with " -"variable extrusion width" +"Classic wall generator produces walls with constant extrusion width and for very " +"thin areas is used gap-fill. Arachne engine produces walls with variable extrusion " +"width" msgstr "" -"O gerador de perímetro clássico produz paredes com largura de extrusão " -"constante e para áreas muito finas é usado preenchimento de vão. O motor " -"Arachne produz perímetros com largura de extrusão variável" - -msgid "Classic" -msgstr "Clássico" +"O gerador de perímetro clássico produz paredes com largura de extrusão constante e " +"para áreas muito finas é usado preenchimento de vão. O motor Arachne produz " +"perímetros com largura de extrusão variável" msgid "Arachne" msgstr "Arachne" @@ -14346,139 +14252,133 @@ msgid "Wall transition length" msgstr "Comprimento da transição de perímetro" msgid "" -"When transitioning between different numbers of walls as the part becomes " -"thinner, a certain amount of space is allotted to split or join the wall " -"segments. It's expressed as a percentage over nozzle diameter" +"When transitioning between different numbers of walls as the part becomes thinner, a " +"certain amount of space is allotted to split or join the wall segments. It's " +"expressed as a percentage over nozzle diameter" msgstr "" -"Ao fazer a transição entre diferentes números de paredes à medida que a peça " -"fica mais fina, uma certa quantidade de espaço é designada para dividir ou " -"unir os segmentos do perímetro. É expresso como uma porcentagem sobre o " -"diâmetro do bico" +"Ao fazer a transição entre diferentes números de paredes à medida que a peça fica " +"mais fina, uma certa quantidade de espaço é designada para dividir ou unir os " +"segmentos do perímetro. É expresso como uma porcentagem sobre o diâmetro do bico" msgid "Wall transitioning filter margin" msgstr "Margem de filtro de transição de perímetro" msgid "" -"Prevent transitioning back and forth between one extra wall and one less. " -"This margin extends the range of extrusion widths which follow to [Minimum " -"wall width - margin, 2 * Minimum wall width + margin]. Increasing this " -"margin reduces the number of transitions, which reduces the number of " -"extrusion starts/stops and travel time. However, large extrusion width " -"variation can lead to under- or overextrusion problems. It's expressed as a " -"percentage over nozzle diameter" +"Prevent transitioning back and forth between one extra wall and one less. This " +"margin extends the range of extrusion widths which follow to [Minimum wall width - " +"margin, 2 * Minimum wall width + margin]. Increasing this margin reduces the number " +"of transitions, which reduces the number of extrusion starts/stops and travel time. " +"However, large extrusion width variation can lead to under- or overextrusion " +"problems. It's expressed as a percentage over nozzle diameter" msgstr "" -"Evita a transição de ida e volta entre um perímetro extra e um a menos. Esta " -"margem amplia o intervalo de larguras de extrusão que seguem para [Largura " -"mínima da perímetro - margem, 2 * Largura mínima da perímetro + margem]. " -"Aumentar esta margem reduz o número de transições, o que reduz o número de " -"inícios / paradas de extrusão e o tempo de deslocamento. No entanto, uma " -"grande variação na largura de extrusão pode levar a problemas de subextrusão " -"ou superextrusão. É expresso como uma porcentagem sobre o diâmetro do bico" +"Evita a transição de ida e volta entre um perímetro extra e um a menos. Esta margem " +"amplia o intervalo de larguras de extrusão que seguem para [Largura mínima da " +"perímetro - margem, 2 * Largura mínima da perímetro + margem]. Aumentar esta margem " +"reduz o número de transições, o que reduz o número de inícios / paradas de extrusão " +"e o tempo de deslocamento. No entanto, uma grande variação na largura de extrusão " +"pode levar a problemas de subextrusão ou superextrusão. É expresso como uma " +"porcentagem sobre o diâmetro do bico" msgid "Wall transitioning threshold angle" msgstr "Ângulo de limite de transição de perímetro" msgid "" -"When to create transitions between even and odd numbers of walls. A wedge " -"shape with an angle greater than this setting will not have transitions and " -"no walls will be printed in the center to fill the remaining space. Reducing " -"this setting reduces the number and length of these center walls, but may " -"leave gaps or overextrude" +"When to create transitions between even and odd numbers of walls. A wedge shape with " +"an angle greater than this setting will not have transitions and no walls will be " +"printed in the center to fill the remaining space. Reducing this setting reduces the " +"number and length of these center walls, but may leave gaps or overextrude" msgstr "" -"Quando criar transições entre números pares e ímpares de paredes. Uma forma " -"de cunha com um ângulo maior do que esta configuração não terá transições e " -"nenhumo perímetro será impresso no centro para preencher o espaço restante. " -"Reduzir esta configuração reduz o número e o comprimento dessas paredes " -"centrais, mas pode deixar vazios ou extrusão excessiva" +"Quando criar transições entre números pares e ímpares de paredes. Uma forma de cunha " +"com um ângulo maior do que esta configuração não terá transições e nenhumo perímetro " +"será impresso no centro para preencher o espaço restante. Reduzir esta configuração " +"reduz o número e o comprimento dessas paredes centrais, mas pode deixar vazios ou " +"extrusão excessiva" msgid "Wall distribution count" msgstr "Contagem de distribuição de perímetro" msgid "" -"The number of walls, counted from the center, over which the variation needs " -"to be spread. Lower values mean that the outer walls don't change in width" +"The number of walls, counted from the center, over which the variation needs to be " +"spread. Lower values mean that the outer walls don't change in width" msgstr "" -"O número de paredes, contadas a partir do centro, sobre as quais a variação " -"precisa ser espalhada. Valores menores significam que as paredes externas " -"não mudam de largura" +"O número de paredes, contadas a partir do centro, sobre as quais a variação precisa " +"ser espalhada. Valores menores significam que as paredes externas não mudam de " +"largura" msgid "Minimum feature size" msgstr "Tamanho mínimo do elemento" msgid "" -"Minimum thickness of thin features. Model features that are thinner than " -"this value will not be printed, while features thicker than the Minimum " -"feature size will be widened to the Minimum wall width. It's expressed as a " -"percentage over nozzle diameter" +"Minimum thickness of thin features. Model features that are thinner than this value " +"will not be printed, while features thicker than the Minimum feature size will be " +"widened to the Minimum wall width. It's expressed as a percentage over nozzle " +"diameter" msgstr "" -"Espessura mínima de elementos finos. Elementos do modelo que são mais finos " -"do que este valor não serão impressos, enquanto elementos mais espessos que " -"o tamanho mínimo do elemento serão alargados até a largura mínima do " -"perímetro. É expresso como uma porcentagem sobre o diâmetro do bico" +"Espessura mínima de elementos finos. Elementos do modelo que são mais finos do que " +"este valor não serão impressos, enquanto elementos mais espessos que o tamanho " +"mínimo do elemento serão alargados até a largura mínima do perímetro. É expresso " +"como uma porcentagem sobre o diâmetro do bico" msgid "Minimum wall length" msgstr "Comprimento mínimo do perímetro" msgid "" -"Adjust this value to prevent short, unclosed walls from being printed, which " -"could increase print time. Higher values remove more and longer walls.\n" +"Adjust this value to prevent short, unclosed walls from being printed, which could " +"increase print time. Higher values remove more and longer walls.\n" "\n" -"NOTE: Bottom and top surfaces will not be affected by this value to prevent " -"visual gaps on the outside of the model. Adjust 'One wall threshold' in the " -"Advanced settings below to adjust the sensitivity of what is considered a " -"top-surface. 'One wall threshold' is only visible if this setting is set " -"above the default value of 0.5, or if single-wall top surfaces is enabled." +"NOTE: Bottom and top surfaces will not be affected by this value to prevent visual " +"gaps on the outside of the model. Adjust 'One wall threshold' in the Advanced " +"settings below to adjust the sensitivity of what is considered a top-surface. 'One " +"wall threshold' is only visible if this setting is set above the default value of " +"0.5, or if single-wall top surfaces is enabled." msgstr "" -"Ajuste este valor para evitar que perímetros curtos e não fechados sejam " -"impressos, o que poderia aumentar o tempo de impressão. Valores mais altos " -"removem perímetros mais longos.\n" +"Ajuste este valor para evitar que perímetros curtos e não fechados sejam impressos, " +"o que poderia aumentar o tempo de impressão. Valores mais altos removem perímetros " +"mais longos.\n" "\n" -"NOTA: As superfícies inferior e superior não serão afetadas por este valor " -"para evitar lacunas visuais no exterior do modelo. Ajuste o 'Limiar de um " -"perímetro' nas configurações avançadas abaixo para ajustar a sensibilidade " -"do que é considerado uma superfície superior. 'Limiar de um perímetro' só é " -"visível se esta configuração estiver acima do valor padrão de 0,5, ou se " -"superfícies superiores de uma única parede estiverem habilitadas." +"NOTA: As superfícies inferior e superior não serão afetadas por este valor para " +"evitar lacunas visuais no exterior do modelo. Ajuste o 'Limiar de um perímetro' nas " +"configurações avançadas abaixo para ajustar a sensibilidade do que é considerado uma " +"superfície superior. 'Limiar de um perímetro' só é visível se esta configuração " +"estiver acima do valor padrão de 0,5, ou se superfícies superiores de uma única " +"parede estiverem habilitadas." msgid "First layer minimum wall width" msgstr "Largura mínima do perímetro da primeira camada" msgid "" -"The minimum wall width that should be used for the first layer is " -"recommended to be set to the same size as the nozzle. This adjustment is " -"expected to enhance adhesion." +"The minimum wall width that should be used for the first layer is recommended to be " +"set to the same size as the nozzle. This adjustment is expected to enhance adhesion." msgstr "" "A largura mínima do perímetro que deve ser usada para a primeira camada é " -"recomendada para ser definida com o mesmo tamanho do bico. Este ajuste é " -"esperado para melhorar a aderência." +"recomendada para ser definida com o mesmo tamanho do bico. Este ajuste é esperado " +"para melhorar a aderência." msgid "Minimum wall width" msgstr "Largura mínima do perímetro" msgid "" -"Width of the wall that will replace thin features (according to the Minimum " -"feature size) of the model. If the Minimum wall width is thinner than the " -"thickness of the feature, the wall will become as thick as the feature " -"itself. It's expressed as a percentage over nozzle diameter" +"Width of the wall that will replace thin features (according to the Minimum feature " +"size) of the model. If the Minimum wall width is thinner than the thickness of the " +"feature, the wall will become as thick as the feature itself. It's expressed as a " +"percentage over nozzle diameter" msgstr "" -"Largura do perímetro que substituirá elementos finos (de acordo com o " -"tamanho mínimo do elemento) do modelo. Se a Largura mínima do perímetro for " -"mais fina do que a espessura do elemento, o perímetro será tão espesso " -"quanto o próprio elemento. É expresso como uma porcentagem sobre o diâmetro " -"do bico" +"Largura do perímetro que substituirá elementos finos (de acordo com o tamanho mínimo " +"do elemento) do modelo. Se a Largura mínima do perímetro for mais fina do que a " +"espessura do elemento, o perímetro será tão espesso quanto o próprio elemento. É " +"expresso como uma porcentagem sobre o diâmetro do bico" msgid "Detect narrow internal solid infill" msgstr "Detectar preenchimento sólido interno estreito" msgid "" "This option will auto detect narrow internal solid infill area. If enabled, " -"concentric pattern will be used for the area to speed printing up. " -"Otherwise, rectilinear pattern is used by default." +"concentric pattern will be used for the area to speed printing up. Otherwise, " +"rectilinear pattern is used by default." msgstr "" -"Esta opção irá detectar automaticamente áreas de preenchimento sólido " -"interno estreito. Se ativada, o padrão concêntrico será usado para a área " -"para acelerar a impressão. Caso contrário, o padrão reticulado é usado por " -"padrão." +"Esta opção irá detectar automaticamente áreas de preenchimento sólido interno " +"estreito. Se ativada, o padrão concêntrico será usado para a área para acelerar a " +"impressão. Caso contrário, o padrão reticulado é usado por padrão." msgid "invalid value " msgstr "valor inválido " @@ -14503,17 +14403,16 @@ msgstr "Sem verificação" msgid "Do not run any validity checks, such as gcode path conflicts check." msgstr "" -"Não execute nenhuma verificação de validade, como a verificação de conflitos " -"de caminho do gcode." +"Não execute nenhuma verificação de validade, como a verificação de conflitos de " +"caminho do gcode." msgid "Ensure on bed" msgstr "Garantir na mesa" -msgid "" -"Lift the object above the bed when it is partially below. Disabled by default" +msgid "Lift the object above the bed when it is partially below. Disabled by default" msgstr "" -"Eleve o objeto acima da mesa quando estiver parcialmente abaixo. Desativado " -"por padrão" +"Eleve o objeto acima da mesa quando estiver parcialmente abaixo. Desativado por " +"padrão" msgid "Orient Options" msgstr "Opções de Orientação" @@ -14534,13 +14433,11 @@ msgid "Data directory" msgstr "Diretório de dados" msgid "" -"Load and store settings at the given directory. This is useful for " -"maintaining different profiles or including configurations from a network " -"storage." +"Load and store settings at the given directory. This is useful for maintaining " +"different profiles or including configurations from a network storage." msgstr "" -"Carregar e armazenar configurações no diretório fornecido. Isso é útil para " -"manter diferentes perfis ou incluir configurações de um armazenamento em " -"rede." +"Carregar e armazenar configurações no diretório fornecido. Isso é útil para manter " +"diferentes perfis ou incluir configurações de um armazenamento em rede." msgid "Load custom gcode" msgstr "Carregar gcode personalizado" @@ -14555,22 +14452,22 @@ msgid "Contains z-hop present at the beginning of the custom G-code block." msgstr "Contém o z-hop presente no início do bloco de G-code personalizado." msgid "" -"Position of the extruder at the beginning of the custom G-code block. If the " -"custom G-code travels somewhere else, it should write to this variable so " -"OrcaSlicer knows where it travels from when it gets control back." +"Position of the extruder at the beginning of the custom G-code block. If the custom " +"G-code travels somewhere else, it should write to this variable so OrcaSlicer knows " +"where it travels from when it gets control back." msgstr "" "Posição do extrusor no início do bloco de G-code personalizado. Se o G-code " -"personalizado se deslocar para outro lugar, ele deve escrever nesta variável " -"para que o PrusaSlicer saiba de onde se desloca quando recupera o controle." +"personalizado se deslocar para outro lugar, ele deve escrever nesta variável para " +"que o PrusaSlicer saiba de onde se desloca quando recupera o controle." msgid "" -"Retraction state at the beginning of the custom G-code block. If the custom " -"G-code moves the extruder axis, it should write to this variable so " -"OrcaSlicer de-retracts correctly when it gets control back." +"Retraction state at the beginning of the custom G-code block. If the custom G-code " +"moves the extruder axis, it should write to this variable so OrcaSlicer de-retracts " +"correctly when it gets control back." msgstr "" "Estado de retração no início do bloco de G-code personalizado. Se o G-code " -"personalizado mover o eixo do extrusor, ele deve escrever nesta variável " -"para que o PrusaSlicer desretraia corretamente quando recupera o controle." +"personalizado mover o eixo do extrusor, ele deve escrever nesta variável para que o " +"PrusaSlicer desretraia corretamente quando recupera o controle." msgid "Extra de-retraction" msgstr "Desretração extra" @@ -14582,8 +14479,7 @@ msgid "Absolute E position" msgstr "" msgid "" -"Current position of the extruder axis. Only used with absolute extruder " -"addressing." +"Current position of the extruder axis. Only used with absolute extruder addressing." msgstr "" msgid "Current extruder" @@ -14595,12 +14491,9 @@ msgstr "Índice base zero da extrusora atualmente utilizada." msgid "Current object index" msgstr "Índice do objeto atual" -msgid "" -"Specific for sequential printing. Zero-based index of currently printed " -"object." +msgid "Specific for sequential printing. Zero-based index of currently printed object." msgstr "" -"Específico para impressão sequencial. Índice base zero do objeto atualmente " -"impresso." +"Específico para impressão sequencial. Índice base zero do objeto atualmente impresso." msgid "Has wipe tower" msgstr "Tem Torre Prime" @@ -14611,9 +14504,7 @@ msgstr "Se a Torre Prime está sendo gerada ou não na impressão." msgid "Initial extruder" msgstr "Extrusora inicial" -msgid "" -"Zero-based index of the first extruder used in the print. Same as " -"initial_tool." +msgid "Zero-based index of the first extruder used in the print. Same as initial_tool." msgstr "" "Índice base zero da primeira extrusora utilizada na impressão. Mesmo que " "ferramenta_inicial." @@ -14622,8 +14513,7 @@ msgid "Initial tool" msgstr "Ferramenta inicial" msgid "" -"Zero-based index of the first extruder used in the print. Same as " -"initial_extruder." +"Zero-based index of the first extruder used in the print. Same as initial_extruder." msgstr "" "Índice base zero da primeira extrusora utilizada na impressão. Mesmo que " "extrusora_inicial." @@ -14631,10 +14521,8 @@ msgstr "" msgid "Is extruder used?" msgstr "Extrusora utilizada?" -msgid "" -"Vector of booleans stating whether a given extruder is used in the print." -msgstr "" -"Vetor de booleanos indicando se uma dada extrusora é utilizada na impressão." +msgid "Vector of booleans stating whether a given extruder is used in the print." +msgstr "Vetor de booleanos indicando se uma dada extrusora é utilizada na impressão." msgid "Has single extruder MM priming" msgstr "" @@ -14646,8 +14534,7 @@ msgid "Volume per extruder" msgstr "Volume por extrusora" msgid "Total filament volume extruded per extruder during the entire print." -msgstr "" -"Volume total de filamento extrudado por extrusora durante toda a impressão." +msgstr "Volume total de filamento extrudado por extrusora durante toda a impressão." msgid "Total toolchanges" msgstr "Total de trocas de ferramenta" @@ -14668,18 +14555,18 @@ msgid "" "Weight per extruder extruded during the entire print. Calculated from " "filament_density value in Filament Settings." msgstr "" -"Peso por extrusora extrudido durante toda a impressão. Calculado a partir do " -"valor de densidade do filamento nas configurações de filamento." +"Peso por extrusora extrudido durante toda a impressão. Calculado a partir do valor " +"de densidade do filamento nas configurações de filamento." msgid "Total weight" msgstr "Peso total" msgid "" -"Total weight of the print. Calculated from filament_density value in " -"Filament Settings." +"Total weight of the print. Calculated from filament_density value in Filament " +"Settings." msgstr "" -"Peso total da impressão. Calculado a partir do valor de densidade do " -"filamento nas configurações de filamento." +"Peso total da impressão. Calculado a partir do valor de densidade do filamento nas " +"configurações de filamento." msgid "Total layer count" msgstr "Total de camadas" @@ -14698,21 +14585,20 @@ msgstr "Número de instâncias" msgid "Total number of object instances in the print, summed over all objects." msgstr "" -"Número total de instâncias de objeto na impressão, somadas sobre todos os " -"objetos." +"Número total de instâncias de objeto na impressão, somadas sobre todos os objetos." msgid "Scale per object" msgstr "Escala por objeto" msgid "" "Contains a string with the information about what scaling was applied to the " -"individual objects. Indexing of the objects is zero-based (first object has " -"index 0).\n" +"individual objects. Indexing of the objects is zero-based (first object has index " +"0).\n" "Example: 'x:100% y:50% z:100'." msgstr "" "Contém uma frase com informações sobre qual escala foi aplicada aos objetos " -"individuais. A indexação dos objetos é baseada em zero (o primeiro objeto " -"tem índice 0).\n" +"individuais. A indexação dos objetos é baseada em zero (o primeiro objeto tem índice " +"0).\n" "Exemplo: 'x:100% y:50% z:100'." msgid "Input filename without extension" @@ -14721,24 +14607,20 @@ msgstr "Nome do arquivo de entrada sem extensão" msgid "Source filename of the first object, without extension." msgstr "Nome do arquivo de origem do primeiro objeto, sem extensão." -msgid "" -"The vector has two elements: x and y coordinate of the point. Values in mm." -msgstr "" -"O vetor possui dois elementos: coordenada x e y do ponto. Valores em mm." +msgid "The vector has two elements: x and y coordinate of the point. Values in mm." +msgstr "O vetor possui dois elementos: coordenada x e y do ponto. Valores em mm." msgid "" -"The vector has two elements: x and y dimension of the bounding box. Values " -"in mm." +"The vector has two elements: x and y dimension of the bounding box. Values in mm." msgstr "" -"O vetor tem dois elementos: dimensão x e y da caixa delimitadora. Valores em " -"mm." +"O vetor tem dois elementos: dimensão x e y da caixa delimitadora. Valores em mm." msgid "First layer convex hull" msgstr "Parede convexa da primeira camada" msgid "" -"Vector of points of the first layer convex hull. Each element has the " -"following format:'[x, y]' (x and y are floating-point numbers in mm)." +"Vector of points of the first layer convex hull. Each element has the following " +"format:'[x, y]' (x and y are floating-point numbers in mm)." msgstr "" "Vetor de pontos do perímetro convexo da primeira camada. Cada elemento tem o " "seguinte formato: '[x, y]' (x e y são números em ponto flutuante em mm)." @@ -14786,11 +14668,11 @@ msgid "Filament preset name" msgstr "Nome do perfil de filamento" msgid "" -"Names of the filament presets used for slicing. The variable is a vector " -"containing one name for each extruder." +"Names of the filament presets used for slicing. The variable is a vector containing " +"one name for each extruder." msgstr "" -"Nomes dos perfis de filamento usados para fatiar. A variável é um vetor " -"contendo um nome para cada extrusora." +"Nomes dos perfis de filamento usados para fatiar. A variável é um vetor contendo um " +"nome para cada extrusora." msgid "Printer preset name" msgstr "Nome do perfil de impressora" @@ -14808,8 +14690,7 @@ msgid "Number of extruders" msgstr "" msgid "" -"Total number of extruders, regardless of whether they are used in the " -"current print." +"Total number of extruders, regardless of whether they are used in the current print." msgstr "" msgid "Layer number" @@ -14817,18 +14698,15 @@ msgstr "Número da camada" msgid "Index of the current layer. One-based (i.e. first layer is number 1)." msgstr "" -"Índice da camada atual. Baseado em um (ou seja, a primeira camada é o número " -"1)." +"Índice da camada atual. Baseado em um (ou seja, a primeira camada é o número 1)." msgid "Layer z" msgstr "Camada z" msgid "" -"Height of the current layer above the print bed, measured to the top of the " -"layer." +"Height of the current layer above the print bed, measured to the top of the layer." msgstr "" -"Altura da camada atual acima da mesa de impressão, medida até o topo da " -"camada." +"Altura da camada atual acima da mesa de impressão, medida até o topo da camada." msgid "Maximal layer z" msgstr "Altura máxima da camada z" @@ -14874,11 +14752,10 @@ msgstr "overhangs grandes" #, c-format, boost-format msgid "" -"It seems object %s has %s. Please re-orient the object or enable support " -"generation." +"It seems object %s has %s. Please re-orient the object or enable support generation." msgstr "" -"Parece que o objeto %s tem %s. Por favor, reoriente o objeto ou habilite a " -"geração de suporte." +"Parece que o objeto %s tem %s. Por favor, reoriente o objeto ou habilite a geração " +"de suporte." msgid "Optimizing toolpath" msgstr "Otimizando caminho da ferramenta" @@ -14887,19 +14764,18 @@ msgid "Slicing mesh" msgstr "Fatiando malha" msgid "" -"No layers were detected. You might want to repair your STL file(s) or check " -"their size or thickness and retry.\n" +"No layers were detected. You might want to repair your STL file(s) or check their " +"size or thickness and retry.\n" msgstr "" -"Nenhuma camada foi detectada. Você pode querer reparar seu(s) arquivo(s) STL " -"ou verificar seu tamanho ou espessura e tentar novamente.\n" +"Nenhuma camada foi detectada. Você pode querer reparar seu(s) arquivo(s) STL ou " +"verificar seu tamanho ou espessura e tentar novamente.\n" msgid "" -"An object's XY size compensation will not be used because it is also color-" -"painted.\n" +"An object's XY size compensation will not be used because it is also color-painted.\n" "XY Size compensation can not be combined with color-painting." msgstr "" -"A compensação de tamanho XY de um objeto não será usada porque ele também " -"está pintado com cor.\n" +"A compensação de tamanho XY de um objeto não será usada porque ele também está " +"pintado com cor.\n" "A compensação de tamanho XY não pode ser combinada com pintura colorida." #, c-format, boost-format @@ -14933,11 +14809,10 @@ msgstr "Suporte: corrigir buracos na camada %d" msgid "Support: propagate branches at layer %d" msgstr "Suporte: propagar ramificações na camada %d" -msgid "" -"Unknown file format. Input file must have .stl, .obj, .amf(.xml) extension." +msgid "Unknown file format. Input file must have .stl, .obj, .amf(.xml) extension." msgstr "" -"Formato de arquivo desconhecido. O arquivo de entrada deve ter " -"extensão .stl, .obj, .amf(.xml)." +"Formato de arquivo desconhecido. O arquivo de entrada deve ter extensão .stl, .obj, ." +"amf(.xml)." msgid "Loading of a model file failed." msgstr "Falha ao carregar um arquivo de modelo." @@ -14947,8 +14822,8 @@ msgstr "O arquivo fornecido não pôde ser lido porque está vazio" msgid "Unknown file format. Input file must have .3mf or .zip.amf extension." msgstr "" -"Formato de arquivo desconhecido. O arquivo de entrada deve ter extensão .3mf " -"ou .zip.amf." +"Formato de arquivo desconhecido. O arquivo de entrada deve ter extensão .3mf ou .zip." +"amf." msgid "Canceled" msgstr "Cancelado" @@ -15007,11 +14882,9 @@ msgstr "Terminar" msgid "How to use calibration result?" msgstr "Como usar o resultado da calibração?" -msgid "" -"You could change the Flow Dynamics Calibration Factor in material editing" +msgid "You could change the Flow Dynamics Calibration Factor in material editing" msgstr "" -"Você pode alterar o Fator de Calibração de Dinâmica de Fluxo na edição de " -"materiais" +"Você pode alterar o Fator de Calibração de Dinâmica de Fluxo na edição de materiais" msgid "" "The current firmware version of the printer does not support calibration.\n" @@ -15068,11 +14941,9 @@ msgstr "O nome é o mesmo que outro nome de preset existente" msgid "create new preset failed." msgstr "falha ao criar novo preset." -msgid "" -"Are you sure to cancel the current calibration and return to the home page?" +msgid "Are you sure to cancel the current calibration and return to the home page?" msgstr "" -"Tem certeza de que deseja cancelar a calibração atual e retornar à página " -"inicial?" +"Tem certeza de que deseja cancelar a calibração atual e retornar à página inicial?" msgid "No Printer Connected!" msgstr "Nenhuma impressora conectada!" @@ -15087,15 +14958,14 @@ msgid "The input value size must be 3." msgstr "O tamanho do valor de entrada deve ser 3." msgid "" -"This machine type can only hold 16 history results per nozzle. You can " -"delete the existing historical results and then start calibration. Or you " -"can continue the calibration, but you cannot create new calibration " -"historical results. \n" +"This machine type can only hold 16 history results per nozzle. You can delete the " +"existing historical results and then start calibration. Or you can continue the " +"calibration, but you cannot create new calibration historical results. \n" "Do you still want to continue the calibration?" msgstr "" -"Esse tipo de máquina só pode manter 16 resultados por bico no histórico. " -"Você pode deletar resultados existentes e então começar a calibração. Ou " -"você pode continuar, mas não poderá criar novos resultados. \n" +"Esse tipo de máquina só pode manter 16 resultados por bico no histórico. Você pode " +"deletar resultados existentes e então começar a calibração. Ou você pode continuar, " +"mas não poderá criar novos resultados. \n" "Você ainda quer continuar com a calibração?" msgid "Connecting to printer..." @@ -15109,21 +14979,21 @@ msgstr "O resultado da Calibração de Dinâmica de Fluxo foi salvo na impressor #, c-format, boost-format msgid "" -"There is already a historical calibration result with the same name: %s. " -"Only one of the results with the same name is saved. Are you sure you want " -"to override the historical result?" +"There is already a historical calibration result with the same name: %s. Only one of " +"the results with the same name is saved. Are you sure you want to override the " +"historical result?" msgstr "" -"Já existe um resultado de calibração histórico com o mesmo nome: %s. Apenas " -"um dos resultados com o mesmo nome é salvo. Tem certeza que deseja " -"sobrescrever o resultado histórico?" +"Já existe um resultado de calibração histórico com o mesmo nome: %s. Apenas um dos " +"resultados com o mesmo nome é salvo. Tem certeza que deseja sobrescrever o resultado " +"histórico?" #, c-format, boost-format msgid "" -"This machine type can only hold %d history results per nozzle. This result " -"will not be saved." +"This machine type can only hold %d history results per nozzle. This result will not " +"be saved." msgstr "" -"Este tipo de máquina só pode salvar %d resultados por bico. Este resultado " -"não será salvo." +"Este tipo de máquina só pode salvar %d resultados por bico. Este resultado não será " +"salvo." msgid "Internal Error" msgstr "Erro Interno" @@ -15135,30 +15005,29 @@ msgid "Flow rate calibration result has been saved to preset" msgstr "O resultado da calibração de fluxo foi salvo no preset" msgid "Max volumetric speed calibration result has been saved to preset" -msgstr "" -"O resultado da calibração de fluxo volumétrico máximo foi salvo no preset" +msgstr "O resultado da calibração de fluxo volumétrico máximo foi salvo no preset" msgid "When do you need Flow Dynamics Calibration" msgstr "Quando você precisa da Calibração de Dinâmica de Fluxo" msgid "" -"We now have added the auto-calibration for different filaments, which is " -"fully automated and the result will be saved into the printer for future " -"use. You only need to do the calibration in the following limited cases:\n" -"1. If you introduce a new filament of different brands/models or the " -"filament is damp;\n" +"We now have added the auto-calibration for different filaments, which is fully " +"automated and the result will be saved into the printer for future use. You only " +"need to do the calibration in the following limited cases:\n" +"1. If you introduce a new filament of different brands/models or the filament is " +"damp;\n" "2. if the nozzle is worn out or replaced with a new one;\n" -"3. If the max volumetric speed or print temperature is changed in the " -"filament setting." +"3. If the max volumetric speed or print temperature is changed in the filament " +"setting." msgstr "" -"Adicionamos agora a auto-calibração para diferentes filamentos, que é " -"totalmente automatizada e o resultado será salvo na impressora para uso " -"futuro. Você só precisa fazer a calibração nos seguintes casos limitados:\n" +"Adicionamos agora a auto-calibração para diferentes filamentos, que é totalmente " +"automatizada e o resultado será salvo na impressora para uso futuro. Você só precisa " +"fazer a calibração nos seguintes casos limitados:\n" "1. Se você introduzir um novo filamento de marcas/modelos diferentes ou se o " "filamento estiver úmido;\n" "2. se o bico estiver desgastado ou substituído por um novo;\n" -"3. Se o fluxo volumétrico máximo ou a temperatura de impressão forem " -"alteradas na configuração do filamento." +"3. Se o fluxo volumétrico máximo ou a temperatura de impressão forem alteradas na " +"configuração do filamento." msgid "About this calibration" msgstr "Sobre esta calibração" @@ -15166,108 +15035,103 @@ msgstr "Sobre esta calibração" msgid "" "Please find the details of Flow Dynamics Calibration from our wiki.\n" "\n" -"Usually the calibration is unnecessary. When you start a single color/" -"material print, with the \"flow dynamics calibration\" option checked in the " -"print start menu, the printer will follow the old way, calibrate the " -"filament before the print; When you start a multi color/material print, the " -"printer will use the default compensation parameter for the filament during " -"every filament switch which will have a good result in most cases.\n" +"Usually the calibration is unnecessary. When you start a single color/material " +"print, with the \"flow dynamics calibration\" option checked in the print start " +"menu, the printer will follow the old way, calibrate the filament before the print; " +"When you start a multi color/material print, the printer will use the default " +"compensation parameter for the filament during every filament switch which will have " +"a good result in most cases.\n" "\n" "Please note that there are a few cases that can make the calibration results " -"unreliable, such as insufficient adhesion on the build plate. Improving " -"adhesion can be achieved by washing the build plate or applying glue. For " -"more information on this topic, please refer to our Wiki.\n" +"unreliable, such as insufficient adhesion on the build plate. Improving adhesion can " +"be achieved by washing the build plate or applying glue. For more information on " +"this topic, please refer to our Wiki.\n" "\n" -"The calibration results have about 10 percent jitter in our test, which may " -"cause the result not exactly the same in each calibration. We are still " -"investigating the root cause to do improvements with new updates." +"The calibration results have about 10 percent jitter in our test, which may cause " +"the result not exactly the same in each calibration. We are still investigating the " +"root cause to do improvements with new updates." msgstr "" msgid "When to use Flow Rate Calibration" msgstr "Quando usar a Calibração de Fluxo" msgid "" -"After using Flow Dynamics Calibration, there might still be some extrusion " -"issues, such as:\n" -"1. Over-Extrusion: Excess material on your printed object, forming blobs or " -"zits, or the layers seem thicker than expected and not uniform.\n" -"2. Under-Extrusion: Very thin layers, weak infill strength, or gaps in the " -"top layer of the model, even when printing slowly.\n" +"After using Flow Dynamics Calibration, there might still be some extrusion issues, " +"such as:\n" +"1. Over-Extrusion: Excess material on your printed object, forming blobs or zits, or " +"the layers seem thicker than expected and not uniform.\n" +"2. Under-Extrusion: Very thin layers, weak infill strength, or gaps in the top layer " +"of the model, even when printing slowly.\n" "3. Poor Surface Quality: The surface of your prints seems rough or uneven.\n" -"4. Weak Structural Integrity: Prints break easily or don't seem as sturdy as " -"they should be." +"4. Weak Structural Integrity: Prints break easily or don't seem as sturdy as they " +"should be." msgstr "" -"Depois de usar a Calibração de Dinâmica de Fluxo, ainda pode haver alguns " -"problemas de extrusão, como:\n" +"Depois de usar a Calibração de Dinâmica de Fluxo, ainda pode haver alguns problemas " +"de extrusão, como:\n" "1. Superextrusão: excesso de material no objeto impresso, formando grumos ou " -"espinhas, ou as camadas parecem mais espessas do que o esperado e não " -"uniformes.\n" -"2. Subextrusão: camadas muito finas, resistência fraca do preenchimento ou " -"vazios na camada superior do modelo, mesmo ao imprimir lentamente.\n" -"3. Baixa Qualidade de Superfície: a superfície de suas impressões parece " -"áspera ou irregular.\n" -"4. Integridade Estrutural Fraca: as impressões quebram facilmente ou não " -"parecem tão robustas quanto deveriam." +"espinhas, ou as camadas parecem mais espessas do que o esperado e não uniformes.\n" +"2. Subextrusão: camadas muito finas, resistência fraca do preenchimento ou vazios na " +"camada superior do modelo, mesmo ao imprimir lentamente.\n" +"3. Baixa Qualidade de Superfície: a superfície de suas impressões parece áspera ou " +"irregular.\n" +"4. Integridade Estrutural Fraca: as impressões quebram facilmente ou não parecem tão " +"robustas quanto deveriam." msgid "" -"In addition, Flow Rate Calibration is crucial for foaming materials like LW-" -"PLA used in RC planes. These materials expand greatly when heated, and " -"calibration provides a useful reference flow rate." +"In addition, Flow Rate Calibration is crucial for foaming materials like LW-PLA used " +"in RC planes. These materials expand greatly when heated, and calibration provides a " +"useful reference flow rate." msgstr "" -"Além disso, a Calibração de Fluxo é crucial para materiais espumantes como " -"LW-PLA usados em aviões RC. Esses materiais se expandem muito quando " -"aquecidos, e a calibração fornece uma taxa de fluxo de referência útil." +"Além disso, a Calibração de Fluxo é crucial para materiais espumantes como LW-PLA " +"usados em aviões RC. Esses materiais se expandem muito quando aquecidos, e a " +"calibração fornece uma taxa de fluxo de referência útil." msgid "" -"Flow Rate Calibration measures the ratio of expected to actual extrusion " -"volumes. The default setting works well in Bambu Lab printers and official " -"filaments as they were pre-calibrated and fine-tuned. For a regular " -"filament, you usually won't need to perform a Flow Rate Calibration unless " -"you still see the listed defects after you have done other calibrations. For " -"more details, please check out the wiki article." +"Flow Rate Calibration measures the ratio of expected to actual extrusion volumes. " +"The default setting works well in Bambu Lab printers and official filaments as they " +"were pre-calibrated and fine-tuned. For a regular filament, you usually won't need " +"to perform a Flow Rate Calibration unless you still see the listed defects after you " +"have done other calibrations. For more details, please check out the wiki article." msgstr "" -"A Calibração de Fluxo mede a relação entre os volumes de extrusão esperados " -"e reais. A configuração padrão funciona bem em impressoras Bambu Lab e " -"filamentos oficiais, pois foram pré-calibrados e ajustados. Para um " -"filamento regular, geralmente você não precisará realizar uma Calibração da " -"Taxa de Fluxo a menos que ainda veja os defeitos listados após ter feito " -"outras calibrações. Para mais detalhes, consulte o artigo na wiki." +"A Calibração de Fluxo mede a relação entre os volumes de extrusão esperados e reais. " +"A configuração padrão funciona bem em impressoras Bambu Lab e filamentos oficiais, " +"pois foram pré-calibrados e ajustados. Para um filamento regular, geralmente você " +"não precisará realizar uma Calibração da Taxa de Fluxo a menos que ainda veja os " +"defeitos listados após ter feito outras calibrações. Para mais detalhes, consulte o " +"artigo na wiki." msgid "" -"Auto Flow Rate Calibration utilizes Bambu Lab's Micro-Lidar technology, " -"directly measuring the calibration patterns. However, please be advised that " -"the efficacy and accuracy of this method may be compromised with specific " -"types of materials. Particularly, filaments that are transparent or semi-" -"transparent, sparkling-particled, or have a high-reflective finish may not " -"be suitable for this calibration and can produce less-than-desirable " -"results.\n" +"Auto Flow Rate Calibration utilizes Bambu Lab's Micro-Lidar technology, directly " +"measuring the calibration patterns. However, please be advised that the efficacy and " +"accuracy of this method may be compromised with specific types of materials. " +"Particularly, filaments that are transparent or semi-transparent, sparkling-" +"particled, or have a high-reflective finish may not be suitable for this calibration " +"and can produce less-than-desirable results.\n" "\n" -"The calibration results may vary between each calibration or filament. We " -"are still improving the accuracy and compatibility of this calibration " -"through firmware updates over time.\n" +"The calibration results may vary between each calibration or filament. We are still " +"improving the accuracy and compatibility of this calibration through firmware " +"updates over time.\n" "\n" -"Caution: Flow Rate Calibration is an advanced process, to be attempted only " -"by those who fully understand its purpose and implications. Incorrect usage " -"can lead to sub-par prints or printer damage. Please make sure to carefully " -"read and understand the process before doing it." +"Caution: Flow Rate Calibration is an advanced process, to be attempted only by those " +"who fully understand its purpose and implications. Incorrect usage can lead to sub-" +"par prints or printer damage. Please make sure to carefully read and understand the " +"process before doing it." msgstr "" -"A Calibração Automática de Fluxo utiliza a tecnologia Micro-Lidar da Bambu " -"Lab, medindo diretamente os padrões de calibração. No entanto, esteja ciente " -"de que a eficácia e precisão deste método podem ser comprometidas com tipos " -"específicos de materiais. Especialmente, filamentos que são transparentes ou " -"semi-transparentes, com partículas brilhantes ou com acabamento altamente " -"reflexivo podem não ser adequados para esta calibração e podem produzir " -"resultados abaixo do desejado.\n" +"A Calibração Automática de Fluxo utiliza a tecnologia Micro-Lidar da Bambu Lab, " +"medindo diretamente os padrões de calibração. No entanto, esteja ciente de que a " +"eficácia e precisão deste método podem ser comprometidas com tipos específicos de " +"materiais. Especialmente, filamentos que são transparentes ou semi-transparentes, " +"com partículas brilhantes ou com acabamento altamente reflexivo podem não ser " +"adequados para esta calibração e podem produzir resultados abaixo do desejado.\n" "\n" -"Os resultados da calibração podem variar entre cada calibração ou filamento. " -"Ainda estamos melhorando a precisão e compatibilidade desta calibração por " -"meio de atualizações de firmware ao longo do tempo.\n" +"Os resultados da calibração podem variar entre cada calibração ou filamento. Ainda " +"estamos melhorando a precisão e compatibilidade desta calibração por meio de " +"atualizações de firmware ao longo do tempo.\n" "\n" -"Atenção: A Calibração da Taxa de Fluxo é um processo avançado, para ser " -"tentado apenas por aqueles que entendem completamente seu propósito e " -"implicações. O uso incorreto pode resultar em impressões de baixa qualidade " -"ou danos à impressora. Certifique-se de ler e entender cuidadosamente o " -"processo antes de fazê-lo." +"Atenção: A Calibração da Taxa de Fluxo é um processo avançado, para ser tentado " +"apenas por aqueles que entendem completamente seu propósito e implicações. O uso " +"incorreto pode resultar em impressões de baixa qualidade ou danos à impressora. " +"Certifique-se de ler e entender cuidadosamente o processo antes de fazê-lo." msgid "When you need Max Volumetric Speed Calibration" msgstr "Quando você precisa da Calibração de Velocidade Volumétrica Máxima" @@ -15277,8 +15141,7 @@ msgstr "Sobre-extrusão ou sub-extrusão" msgid "Max Volumetric Speed calibration is recommended when you print with:" msgstr "" -"A calibração de Velocidade Volumétrica Máxima é recomendada quando você " -"imprime com:" +"A calibração de Velocidade Volumétrica Máxima é recomendada quando você imprime com:" msgid "material with significant thermal shrinkage/expansion, such as..." msgstr "material com significativa contração/expansão térmica, como..." @@ -15290,18 +15153,17 @@ msgid "We found the best Flow Dynamics Calibration Factor" msgstr "Encontramos o melhor Fator de Calibração de Dinâmica de Fluxo" msgid "" -"Part of the calibration failed! You may clean the plate and retry. The " -"failed test result would be dropped." +"Part of the calibration failed! You may clean the plate and retry. The failed test " +"result would be dropped." msgstr "" -"Parte da calibração falhou! Você pode limpar a mesa e tentar novamente. O " -"resultado do teste falho será descartado." +"Parte da calibração falhou! Você pode limpar a mesa e tentar novamente. O resultado " +"do teste falho será descartado." msgid "" -"*We recommend you to add brand, materia, type, and even humidity level in " -"the Name" +"*We recommend you to add brand, materia, type, and even humidity level in the Name" msgstr "" -"*Recomendamos que você adicione marca, material, tipo e até mesmo nível de " -"umidade no nome" +"*Recomendamos que você adicione marca, material, tipo e até mesmo nível de umidade " +"no nome" msgid "Failed" msgstr "Falhou" @@ -15313,8 +15175,8 @@ msgid "The name cannot exceed 40 characters." msgstr "O nome não pode ter mais de 40 caracteres." msgid "" -"Only one of the results with the same name will be saved. Are you sure you " -"want to override the other results?" +"Only one of the results with the same name will be saved. Are you sure you want to " +"override the other results?" msgstr "" msgid "Please find the best line on your plate" @@ -15373,8 +15235,7 @@ msgid "Please choose a block with smoothest top surface." msgstr "Por favor, escolha um bloco com a superfície superior mais lisa." msgid "Please input a valid value (0 <= Max Volumetric Speed <= 60)" -msgstr "" -"Por favor, insira um valor válido (0 <= Velocidade Volumétrica Máxima <= 60)" +msgstr "Por favor, insira um valor válido (0 <= Velocidade Volumétrica Máxima <= 60)" msgid "Calibration Type" msgstr "Tipo de Calibração" @@ -15389,11 +15250,11 @@ msgid "Title" msgstr "Título" msgid "" -"A test model will be printed. Please clear the build plate and place it back " -"to the hot bed before calibration." +"A test model will be printed. Please clear the build plate and place it back to the " +"hot bed before calibration." msgstr "" -"Um modelo de teste será impresso. Por favor, limpe a mesa e a coloque de " -"volta na mesa aquecida antes da calibração." +"Um modelo de teste será impresso. Por favor, limpe a mesa e a coloque de volta na " +"mesa aquecida antes da calibração." msgid "Printing Parameters" msgstr "Parâmetros de Impressão" @@ -15417,8 +15278,7 @@ msgid "" msgstr "" "Dicas para material de calibração:\n" "- Materiais que podem compartilhar a mesma temperatura de mesa aquecida\n" -"- Diferentes marcas e famílias de filamentos (Marca = Bambu, Família = " -"Básico, Fosco)" +"- Diferentes marcas e famílias de filamentos (Marca = Bambu, Família = Básico, Fosco)" msgid "Pattern" msgstr "Padrão" @@ -15577,7 +15437,7 @@ msgid "PETG" msgstr "PETG" msgid "PCTG" -msgstr "" +msgstr "PCTG" msgid "TPU" msgstr "TPU" @@ -15670,8 +15530,7 @@ msgid "Upload to Printer Host with the following filename:" msgstr "Enviar para o Host da Impressora com o seguinte nome de arquivo:" msgid "Use forward slashes ( / ) as a directory separator if needed." -msgstr "" -"Use barras inclinadas ( / ) como separador de diretórios, se necessário." +msgstr "Use barras inclinadas ( / ) como separador de diretórios, se necessário." msgid "Upload to storage" msgstr "Enviar para armazenamento" @@ -15847,56 +15706,53 @@ msgid "Create" msgstr "Criar" msgid "Vendor is not selected, please reselect vendor." -msgstr "Fornecedor não está selecionado, por favor, reselecione o fornecedor." +msgstr "Fornecedor não está selecionado, por favor reselecione o fornecedor." msgid "Custom vendor is not input, please input custom vendor." msgstr "" "O fornecedor personalizado não foi inserido, por favor insira o fornecedor " "personalizado." -msgid "" -"\"Bambu\" or \"Generic\" can not be used as a Vendor for custom filaments." +msgid "\"Bambu\" or \"Generic\" can not be used as a Vendor for custom filaments." msgstr "" -"\"Bambu\" ou \"Genérico\" não podem ser usados como fornecedor para " -"filamentos personalizados." +"\"Bambu\" ou \"Genérico\" não podem ser usados como fornecedor para filamentos " +"personalizados." msgid "Filament type is not selected, please reselect type." -msgstr "" -"O tipo de filamento não está selecionado, por favor, reselecione o tipo." +msgstr "O tipo de filamento não está selecionado, por favor reselecione o tipo." msgid "Filament serial is not entered, please enter serial." -msgstr "O serial do filamento não foi inserido, por favor, insira o serial." +msgstr "O serial do filamento não foi inserido, por favor insira o serial." msgid "" -"There may be escape characters in the vendor or serial input of filament. " -"Please delete and re-enter." +"There may be escape characters in the vendor or serial input of filament. Please " +"delete and re-enter." msgstr "" -"Pode haver caracteres de escape na entrada de fornecedor ou serial do " -"filamento. Por favor, exclua e insira novamente." +"Pode haver caracteres de escape na entrada de fornecedor ou serial do filamento. Por " +"favor, exclua e insira novamente." msgid "All inputs in the custom vendor or serial are spaces. Please re-enter." msgstr "" -"Todas as entradas no fornecedor personalizado ou serial são espaços. Por " -"favor, insira novamente." +"Todas as entradas no fornecedor personalizado ou serial são espaços. Por favor, " +"insira novamente." msgid "The vendor can not be a number. Please re-enter." msgstr "O fornecedor não pode ser um número. Por favor, insira novamente." -msgid "" -"You have not selected a printer or preset yet. Please select at least one." +msgid "You have not selected a printer or preset yet. Please select at least one." msgstr "" -"Você ainda não selecionou uma impressora ou preset. Por favor, selecione " -"pelo menos um." +"Você ainda não selecionou uma impressora ou preset. Por favor, selecione pelo menos " +"um." #, c-format, boost-format msgid "" "The Filament name %s you created already exists. \n" -"If you continue creating, the preset created will be displayed with its full " -"name. Do you want to continue?" +"If you continue creating, the preset created will be displayed with its full name. " +"Do you want to continue?" msgstr "" "O nome do Filamento %s que você criou já existe. \n" -"Se você continuar a criar, a preset criado será exibido com o seu nome " -"completo. Você quer continuar?" +"Se você continuar a criar, a preset criado será exibido com o seu nome completo. " +"Você quer continuar?" msgid "Some existing presets have failed to be created, as follows:\n" msgstr "Alguns presets existentes falharam ao serem criados, como segue:\n" @@ -15909,8 +15765,7 @@ msgstr "" "Você deseja reescrevê-lo?" msgid "" -"We would rename the presets as \"Vendor Type Serial @printer you " -"selected\". \n" +"We would rename the presets as \"Vendor Type Serial @printer you selected\". \n" "To add preset for more printers, Please go to printer selection" msgstr "" "Renomearíamos os presets como \"Fornecedor Tipo Serial @ impressora que você " @@ -15940,7 +15795,7 @@ msgid "Create Type" msgstr "Tipo de Criação" msgid "The model is not found, please reselect vendor." -msgstr "O modelo não foi encontrado, por favor, reselecione o fornecedor." +msgstr "O modelo não foi encontrado, por favor reselecione o fornecedor." msgid "Select Model" msgstr "Selecionar Modelo" @@ -15977,23 +15832,22 @@ msgstr "Altura de impressão máxima" #, c-format, boost-format msgid "The file exceeds %d MB, please import again." -msgstr "O arquivo excede %d MB, por favor, importe novamente." +msgstr "O arquivo excede %d MB, por favor importe novamente." msgid "Exception in obtaining file size, please import again." -msgstr "Exceção ao obter o tamanho do arquivo, por favor, importe novamente." +msgstr "Exceção ao obter o tamanho do arquivo, por favor importe novamente." msgid "Preset path is not find, please reselect vendor." -msgstr "" -"O caminho do preset não é encontrado, por favor, reselecione o fornecedor." +msgstr "O caminho do preset não é encontrado, por favor reselecione o fornecedor." msgid "The printer model was not found, please reselect." -msgstr "O modelo da impressora não foi encontrado, por favor, reselecione." +msgstr "O modelo da impressora não foi encontrado, por favor reselecione." msgid "The nozzle diameter is not found, please reselect." -msgstr "O diâmetro do bico não foi encontrado, por favor, reselecione." +msgstr "O diâmetro do bico não foi encontrado, por favor reselecione." msgid "The printer preset is not found, please reselect." -msgstr "O preset da impressora não foi encontrado, por favor, reselecione." +msgstr "O preset da impressora não foi encontrado, por favor reselecione." msgid "Printer Preset" msgstr "Preset de Impressora" @@ -16011,37 +15865,35 @@ msgid "Back Page 1" msgstr "Voltar à Página 1" msgid "" -"You have not yet chosen which printer preset to create based on. Please " -"choose the vendor and model of the printer" +"You have not yet chosen which printer preset to create based on. Please choose the " +"vendor and model of the printer" msgstr "" -"Você ainda não escolheu em qual preset de impressora basear-se. Por favor, " -"escolha o fornecedor e modelo da impressora" +"Você ainda não escolheu em qual preset de impressora basear-se. Por favor, escolha o " +"fornecedor e modelo da impressora" msgid "" -"You have entered an illegal input in the printable area section on the first " -"page. Please check before creating it." +"You have entered an illegal input in the printable area section on the first page. " +"Please check before creating it." msgstr "" -"Você inseriu uma entrada ilegal na seção de área imprimível na primeira " -"página. Por favor, verifique antes de criar." +"Você inseriu uma entrada ilegal na seção de área imprimível na primeira página. Por " +"favor, verifique antes de criar." msgid "The custom printer or model is not entered, please enter it." msgstr "A impressora ou modelo personalizado não foi colocado." msgid "" -"The printer preset you created already has a preset with the same name. Do " -"you want to overwrite it?\n" -"\tYes: Overwrite the printer preset with the same name, and filament and " -"process presets with the same preset name will be recreated \n" -"and filament and process presets without the same preset name will be " -"reserve.\n" +"The printer preset you created already has a preset with the same name. Do you want " +"to overwrite it?\n" +"\tYes: Overwrite the printer preset with the same name, and filament and process " +"presets with the same preset name will be recreated \n" +"and filament and process presets without the same preset name will be reserve.\n" "\tCancel: Do not create a preset, return to the creation interface." msgstr "" -"O modelo de impressora que você criou já possui um modelo com o mesmo nome. " -"Deseja substituí-lo?\n" +"O modelo de impressora que você criou já possui um modelo com o mesmo nome. Deseja " +"substituí-lo?\n" " \tSim: Substituir o modelo de impressora com o mesmo nome, e os modelos de " "filamento e processo com o mesmo nome do modelo serão recriados, \n" -" e os modelos de filamento e processo sem o mesmo nome do modelo serão " -"preservados.\n" +" e os modelos de filamento e processo sem o mesmo nome do modelo serão preservados.\n" " \tCancelar: Não criar um modelo, retornar para a interface de criação." msgid "You need to select at least one filament preset." @@ -16060,36 +15912,32 @@ msgid "Vendor is not find, please reselect." msgstr "Fornecedor não encontrado, por favor selecione novamente." msgid "Current vendor has no models, please reselect." -msgstr "O fornecedor atual não possui modelos, por favor, selecione novamente." +msgstr "O fornecedor atual não possui modelos, por favor selecione novamente." msgid "" -"You have not selected the vendor and model or entered the custom vendor and " -"model." +"You have not selected the vendor and model or entered the custom vendor and model." msgstr "" "Você não selecionou um fornecedor e modelo nem colocou fornecer e modelo " "personalizado." msgid "" -"There may be escape characters in the custom printer vendor or model. Please " -"delete and re-enter." +"There may be escape characters in the custom printer vendor or model. Please delete " +"and re-enter." msgstr "" -"Pode haver caracteres de escape no fornecedor ou modelo personalizado da " -"impressora. Por favor, exclua e insira novamente." +"Pode haver caracteres de escape no fornecedor ou modelo personalizado da impressora. " +"Por favor, exclua e insira novamente." -msgid "" -"All inputs in the custom printer vendor or model are spaces. Please re-enter." +msgid "All inputs in the custom printer vendor or model are spaces. Please re-enter." msgstr "" -"Todas as entradas no fornecedor ou modelo personalizado da impressora são " -"espaços. Por favor, insira novamente." +"Todas as entradas no fornecedor ou modelo personalizado da impressora são espaços. " +"Por favor, insira novamente." msgid "Please check bed printable shape and origin input." msgstr "Por favor, verifique a forma imprimível da mesa e a entrada de origem." -msgid "" -"You have not yet selected the printer to replace the nozzle, please choose." +msgid "You have not yet selected the printer to replace the nozzle, please choose." msgstr "" -"Você ainda não selecionou a impressora para substituir o bico, por favor, " -"escolha." +"Você ainda não selecionou a impressora para substituir o bico, por favor escolha." msgid "Create Printer Successful" msgstr "Impressora criada com sucesso" @@ -16101,37 +15949,34 @@ msgid "Printer Created" msgstr "Impressora criada" msgid "Please go to printer settings to edit your presets" -msgstr "" -"Por favor vá parar configurações de impressora para editar os seus presets" +msgstr "Por favor vá parar configurações de impressora para editar os seus presets" msgid "Filament Created" msgstr "Filamento criado" msgid "" "Please go to filament setting to edit your presets if you need.\n" -"Please note that nozzle temperature, hot bed temperature, and maximum " -"volumetric speed has a significant impact on printing quality. Please set " -"them carefully." +"Please note that nozzle temperature, hot bed temperature, and maximum volumetric " +"speed has a significant impact on printing quality. Please set them carefully." msgstr "" -"Por favor, vá para as configurações do filamento para editar seus presets, " -"se necessário. \n" -"Por favor, note que a temperatura do bico, temperatura da mesa aquecida e " -"velocidade volumétrica máxima têm um impacto significativo na qualidade de " -"impressão. Por favor, ajuste-os com cuidado." +"Por favor, vá para as configurações do filamento para editar seus presets, se " +"necessário. \n" +"Por favor, note que a temperatura do bico, temperatura da mesa aquecida e velocidade " +"volumétrica máxima têm um impacto significativo na qualidade de impressão. Por " +"favor, ajuste-os com cuidado." msgid "" "\n" "\n" -"Orca has detected that your user presets synchronization function is not " -"enabled, which may result in unsuccessful Filament settings on the Device " -"page. \n" +"Orca has detected that your user presets synchronization function is not enabled, " +"which may result in unsuccessful Filament settings on the Device page. \n" "Click \"Sync user presets\" to enable the synchronization function." msgstr "" "\n" "\n" -"Orca detectou que a função de sincronização das suas predefinições de " -"usuário não está habilitada, o que pode resultar em falhas nas configurações " -"de Filamento na página do Dispositivo. \n" +"Orca detectou que a função de sincronização das suas predefinições de usuário não " +"está habilitada, o que pode resultar em falhas nas configurações de Filamento na " +"página do Dispositivo. \n" "Clique em \"Sincronizar presets do usuário\" para habilitar a função de " "sincronização." @@ -16173,14 +16018,13 @@ msgstr "Exportação bem-sucedida" #, c-format, boost-format msgid "" -"The '%s' folder already exists in the current directory. Do you want to " -"clear it and rebuild it.\n" -"If not, a time suffix will be added, and you can modify the name after " -"creation." +"The '%s' folder already exists in the current directory. Do you want to clear it and " +"rebuild it.\n" +"If not, a time suffix will be added, and you can modify the name after creation." msgstr "" "A pasta '%s' já existe no diretório atual. Deseja limpá-la e reconstruí-la?\n" -"Se não, um sufixo de tempo será adicionado, e você poderá modificar o nome " -"após a criação." +"Se não, um sufixo de tempo será adicionado, e você poderá modificar o nome após a " +"criação." msgid "" "Printer and all the filament&&process presets that belongs to the printer. \n" @@ -16198,43 +16042,38 @@ msgstr "" "Pode ser compartilhado com outros." msgid "" -"Only display printer names with changes to printer, filament, and process " -"presets." +"Only display printer names with changes to printer, filament, and process presets." msgstr "" -"Só exibir nomes de impressoras com alterações nos presets de impressora, " -"filamento e processo." +"Só exibir nomes de impressoras com alterações nos presets de impressora, filamento e " +"processo." msgid "Only display the filament names with changes to filament presets." -msgstr "" -"Apenas exibir os nomes dos filamentos com alterações nos presets de " -"filamento." +msgstr "Apenas exibir os nomes dos filamentos com alterações nos presets de filamento." msgid "" -"Only printer names with user printer presets will be displayed, and each " -"preset you choose will be exported as a zip." +"Only printer names with user printer presets will be displayed, and each preset you " +"choose will be exported as a zip." msgstr "" -"Apenas os nomes das impressoras com presets de impressora do usuário serão " -"exibidos, e cada preset escolhido será exportado como um arquivo zip." +"Apenas os nomes das impressoras com presets de impressora do usuário serão exibidos, " +"e cada preset escolhido será exportado como um arquivo zip." msgid "" "Only the filament names with user filament presets will be displayed, \n" -"and all user filament presets in each filament name you select will be " -"exported as a zip." +"and all user filament presets in each filament name you select will be exported as a " +"zip." msgstr "" -"Apenas os nomes dos filamentos com presets de filamento do usuário serão " -"exibidos, \n" -"e todas as presets de filamento do usuário em cada nome de filamento " -"selecionado serão exportadas como um arquivo zip." +"Apenas os nomes dos filamentos com presets de filamento do usuário serão exibidos, \n" +"e todas as presets de filamento do usuário em cada nome de filamento selecionado " +"serão exportadas como um arquivo zip." msgid "" "Only printer names with changed process presets will be displayed, \n" -"and all user process presets in each printer name you select will be " -"exported as a zip." +"and all user process presets in each printer name you select will be exported as a " +"zip." msgstr "" -"Apenas os nomes das impressoras com presets de processo alterados serão " -"exibidos, \n" -"e todos os presets de processo do usuário em cada nome de impressora " -"selecionado serão exportados como um arquivo zip." +"Apenas os nomes das impressoras com presets de processo alterados serão exibidos, \n" +"e todos os presets de processo do usuário em cada nome de impressora selecionado " +"serão exportados como um arquivo zip." msgid "Please select at least one printer or filament." msgstr "Por favor, selecione pelo menos uma impressora ou filamento." @@ -16244,8 +16083,8 @@ msgstr "Por favor, selecione um tipo que deseja exportar" msgid "Failed to create temporary folder, please try Export Configs again." msgstr "" -"Falha ao criar uma pasta temporária, por favor, tente exportar as " -"configurações novamente." +"Falha ao criar uma pasta temporária, por favor tente exportar as configurações " +"novamente." msgid "Edit Filament" msgstr "Editar Filamento" @@ -16254,11 +16093,11 @@ msgid "Filament presets under this filament" msgstr "Presets de filamento sob este filamento" msgid "" -"Note: If the only preset under this filament is deleted, the filament will " -"be deleted after exiting the dialog." +"Note: If the only preset under this filament is deleted, the filament will be " +"deleted after exiting the dialog." msgstr "" -"Nota: Se o único preset sob este filamento for excluído, o filamento será " -"excluído após sair da janela." +"Nota: Se o único preset sob este filamento for excluído, o filamento será excluído " +"após sair da janela." msgid "Presets inherited by other presets can not be deleted" msgstr "Presets herdados por outros presets não podem ser excluídos" @@ -16288,10 +16127,9 @@ msgid "" "If you are using this filament on your printer, please reset the filament " "information for that slot." msgstr "" -"Todos os presets de filamento pertencentes a este filamento seriam " -"excluídas. \n" -"Se você estiver usando este filamento em sua impressora, redefina as " -"informações do filamento para esse slot." +"Todos os presets de filamento pertencentes a este filamento seriam excluídas. \n" +"Se você estiver usando este filamento em sua impressora, redefina as informações do " +"filamento para esse slot." msgid "Delete filament" msgstr "Excluir filamento" @@ -16307,8 +16145,8 @@ msgstr "Copiar preset do filamento" msgid "The filament choice not find filament preset, please reselect it" msgstr "" -"O filamento selecionado não encontra preset de filamento, por favor, " -"selecione novamente" +"O filamento selecionado não encontra preset de filamento, por favor selecione " +"novamente" msgid "[Delete Required]" msgstr "[Excluir Necessário]" @@ -16317,7 +16155,7 @@ msgid "Edit Preset" msgstr "Editar Preset" msgid "For more information, please check out Wiki" -msgstr "Para mais informações, por favor, consulte a Wiki" +msgstr "Para mais informações, por favor consulte a Wiki" msgid "Collapse" msgstr "Recolher" @@ -16330,8 +16168,8 @@ msgid "nozzle memorized: %.1f %s" msgstr "bico memorizado: %.1f %s" msgid "" -"Your nozzle diameter in preset is not consistent with memorized nozzle " -"diameter. Did you change your nozzle lately?" +"Your nozzle diameter in preset is not consistent with memorized nozzle diameter. Did " +"you change your nozzle lately?" msgstr "" "O diâmetro do bico no seu perfil não está consistente com o diâmetro do bico " "memorizado. Você mudou seu bico recentemente?" @@ -16347,11 +16185,11 @@ msgid "The start, end or step is not valid value." msgstr "O início, fim ou passo não é um valor válido." msgid "" -"Unable to calibrate: maybe because the set calibration value range is too " -"large, or the step is too small" +"Unable to calibrate: maybe because the set calibration value range is too large, or " +"the step is too small" msgstr "" -"Incapaz de calibrar: talvez porque a faixa de valor de calibração definida " -"seja muito grande ou o passo seja muito pequeno" +"Incapaz de calibrar: talvez porque a faixa de valor de calibração definida seja " +"muito grande ou o passo seja muito pequeno" msgid "Physical Printer" msgstr "Impressora Física" @@ -16359,6 +16197,9 @@ msgstr "Impressora Física" msgid "Print Host upload" msgstr "Upload do Host de Impressão" +msgid "Test" +msgstr "Testar" + msgid "Could not get a valid Printer Host reference" msgstr "Não foi possível obter uma referência válida do Host de Impressão" @@ -16378,26 +16219,25 @@ msgid "Replace the BambuLab's device tab with print host webui" msgstr "" msgid "" -"HTTPS CA file is optional. It is only needed if you use HTTPS with a self-" -"signed certificate." +"HTTPS CA file is optional. It is only needed if you use HTTPS with a self-signed " +"certificate." msgstr "" "O arquivo CA HTTPS é opcional. É necessário apenas se você usar HTTPS com um " "certificado autoassinado." msgid "Certificate files (*.crt, *.pem)|*.crt;*.pem|All files|*.*" -msgstr "" -"Arquivos de certificado (*.crt, *.pem)|*.crt;*.pem|Todos os arquivos|*.*" +msgstr "Arquivos de certificado (*.crt, *.pem)|*.crt;*.pem|Todos os arquivos|*.*" msgid "Open CA certificate file" msgstr "Abrir arquivo de certificado CA" #, c-format, boost-format msgid "" -"On this system, %s uses HTTPS certificates from the system Certificate Store " -"or Keychain." +"On this system, %s uses HTTPS certificates from the system Certificate Store or " +"Keychain." msgstr "" -"Neste sistema, %s usa certificados HTTPS da loja de certificados do sistema " -"ou do Keychain." +"Neste sistema, %s usa certificados HTTPS da loja de certificados do sistema ou do " +"Keychain." msgid "" "To use a custom CA file, please import your CA file into Certificate Store / " @@ -16410,8 +16250,7 @@ msgid "Login/Test" msgstr "Login/Teste" msgid "Connection to printers connected via the print host failed." -msgstr "" -"A conexão às impressoras conectadas através do host de impressão falhou." +msgstr "A conexão às impressoras conectadas através do host de impressão falhou." #, c-format, boost-format msgid "Mismatched type of print host: %s" @@ -16445,18 +16284,17 @@ msgid "Upload not enabled on FlashAir card." msgstr "Upload não ativado no cartão FlashAir." msgid "Connection to FlashAir works correctly and upload is enabled." -msgstr "" -"A conexão com o FlashAir funciona corretamente e o upload está ativado." +msgstr "A conexão com o FlashAir funciona corretamente e o upload está ativado." msgid "Could not connect to FlashAir" msgstr "Não foi possível conectar-se ao FlashAir" msgid "" -"Note: FlashAir with firmware 2.00.02 or newer and activated upload function " -"is required." +"Note: FlashAir with firmware 2.00.02 or newer and activated upload function is " +"required." msgstr "" -"Nota: FlashAir com firmware 2.00.02 ou mais recente e função de upload " -"ativada são necessárias." +"Nota: FlashAir com firmware 2.00.02 ou mais recente e função de upload ativada são " +"necessárias." msgid "Connection to MKS works correctly." msgstr "A conexão com o MKS funciona corretamente." @@ -16507,7 +16345,7 @@ msgid "Connection to Prusa Connect works correctly." msgstr "A conexão com o Prusa Connect funciona corretamente." msgid "Could not connect to Prusa Connect" -msgstr "Não foi possível conectar-se ao Prusa Connect." +msgstr "Não foi possível conectar-se ao Prusa Connect" msgid "Connection to Repetier works correctly." msgstr "A conexão com o Repetier funciona corretamente." @@ -16516,7 +16354,7 @@ msgid "Could not connect to Repetier" msgstr "Não foi possível conectar-se ao Repetier" msgid "Note: Repetier version at least 0.90.0 is required." -msgstr "Nota: A versão do Repetier deve ser igual ou maior que 0.90.0" +msgstr "Nota: A versão do Repetier deve ser igual ou maior que 0.90.0." #, boost-format msgid "" @@ -16547,265 +16385,256 @@ msgstr "" "Error: \"%2%\"" msgid "" -"It has a small layer height, and results in almost negligible layer lines " -"and high printing quality. It is suitable for most general printing cases." +"It has a small layer height, and results in almost negligible layer lines and high " +"printing quality. It is suitable for most general printing cases." msgstr "" "Possui uma pequena altura de camada, resultando em linhas de camada quase " -"imperceptíveis e alta qualidade de impressão. É adequado para a maioria dos " -"casos gerais de impressão." +"imperceptíveis e alta qualidade de impressão. É adequado para a maioria dos casos " +"gerais de impressão." msgid "" -"Compared with the default profile of a 0.2 mm nozzle, it has lower speeds " -"and acceleration, and the sparse infill pattern is Gyroid. So, it results in " -"much higher printing quality, but a much longer printing time." +"Compared with the default profile of a 0.2 mm nozzle, it has lower speeds and " +"acceleration, and the sparse infill pattern is Gyroid. So, it results in much higher " +"printing quality, but a much longer printing time." msgstr "" -"Comparado com o perfil padrão de um bico de 0,2 mm, ele tem velocidades e " -"aceleração mais baixas, e o padrão de preenchimento é Giroide. Isso resulta " -"em uma qualidade de impressão muito superior, mas um tempo de impressão " -"muito mais longo." +"Comparado com o perfil padrão de um bico de 0,2 mm, ele tem velocidades e aceleração " +"mais baixas, e o padrão de preenchimento esparso é Giroide. Isso resulta em uma " +"qualidade de impressão muito superior, mas um tempo de impressão muito mais longo." msgid "" -"Compared with the default profile of a 0.2 mm nozzle, it has a slightly " -"bigger layer height, and results in almost negligible layer lines, and " -"slightly shorter printing time." -msgstr "" -"Comparado com o perfil padrão de um bico de 0,2 mm, tem uma altura de camada " -"um pouco maior, resultando em linhas de camada quase insignificantes e um " -"tempo de impressão ligeiramente menor." - -msgid "" -"Compared with the default profile of a 0.2 mm nozzle, it has a bigger layer " -"height, and results in slightly visible layer lines, but shorter printing " +"Compared with the default profile of a 0.2 mm nozzle, it has a slightly bigger layer " +"height, and results in almost negligible layer lines, and slightly shorter printing " "time." msgstr "" -"Comparado com o perfil padrão de um bico de 0,2 mm, tem uma altura de camada " -"maior, o que resulta em linhas de camada ligeiramente visíveis, mas um tempo " +"Comparado com o perfil padrão de um bico de 0,2 mm, tem uma altura de camada um " +"pouco maior, resultando em linhas de camada quase insignificantes e um tempo de " +"impressão ligeiramente menor." + +msgid "" +"Compared with the default profile of a 0.2 mm nozzle, it has a bigger layer height, " +"and results in slightly visible layer lines, but shorter printing time." +msgstr "" +"Comparado com o perfil padrão de um bico de 0,2 mm, tem uma altura de camada maior, " +"o que resulta em linhas de camada ligeiramente visíveis, mas um tempo de impressão " +"menor." + +msgid "" +"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer height, " +"and results in almost invisible layer lines and higher printing quality, but shorter " +"printing time." +msgstr "" +"Comparado com o perfil padrão de um bico de 0,2 mm, tem uma altura de camada menor, " +"resultando em linhas de camada quase invisíveis e maior qualidade de impressão, mas " +"um tempo de impressão menor." + +msgid "" +"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer lines, " +"lower speeds and acceleration, and the sparse infill pattern is Gyroid. So, it " +"results in almost invisible layer lines and much higher printing quality, but much " +"longer printing time." +msgstr "" +"Comparado com o perfil padrão de um bico de 0,2 mm, tem linhas de camada menores, " +"velocidades e aceleração mais baixas, e o padrão de preenchimento esparso é Giroide. " +"Isso resulta em linhas de camada quase invisíveis e uma qualidade de impressão muito " +"superior, mas um tempo de impressão muito maior." + +msgid "" +"Compared with the default profile of 0.2 mm nozzle, it has a smaller layer height, " +"and results in minimal layer lines and higher printing quality, but shorter printing " +"time." +msgstr "" +"Comparado com o perfil padrão de um bico de 0,2 mm, tem uma altura de camada menor, " +"resultando em linhas de camada mínimas e maior qualidade de impressão, mas um tempo " "de impressão menor." msgid "" -"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer " -"height, and results in almost invisible layer lines and higher printing " -"quality, but shorter printing time." +"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer lines, " +"lower speeds and acceleration, and the sparse infill pattern is Gyroid. So, it " +"results in minimal layer lines and much higher printing quality, but much longer " +"printing time." msgstr "" -"Comparado com o perfil padrão de um bico de 0,2 mm, tem uma altura de camada " -"menor, resultando em linhas de camada quase invisíveis e maior qualidade de " -"impressão, mas um tempo de impressão menor." +"Comparado com o perfil padrão de um bico de 0,2 mm, tem linhas de camada menores, " +"velocidades e aceleração mais baixas, e o padrão de preenchimento esparso é Giroide. " +"Isso resulta em linhas de camada mínimas e uma qualidade de impressão muito " +"superior, mas um tempo de impressão muito maior." msgid "" -"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer " -"lines, lower speeds and acceleration, and the sparse infill pattern is " -"Gyroid. So, it results in almost invisible layer lines and much higher " -"printing quality, but much longer printing time." -msgstr "" -"Comparado com o perfil padrão de um bico de 0,2 mm, tem linhas de camada " -"menores, velocidades e aceleração mais baixas, e o padrão de preenchimento é " -"Giroide. Isso resulta em linhas de camada quase invisíveis e uma qualidade " -"de impressão muito superior, mas um tempo de impressão muito maior." - -msgid "" -"Compared with the default profile of 0.2 mm nozzle, it has a smaller layer " -"height, and results in minimal layer lines and higher printing quality, but " -"shorter printing time." -msgstr "" -"Comparado com o perfil padrão de um bico de 0,2 mm, tem uma altura de camada " -"menor, resultando em linhas de camada mínimas e maior qualidade de " -"impressão, mas um tempo de impressão menor." - -msgid "" -"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer " -"lines, lower speeds and acceleration, and the sparse infill pattern is " -"Gyroid. So, it results in minimal layer lines and much higher printing " -"quality, but much longer printing time." -msgstr "" -"Comparado com o perfil padrão de um bico de 0,2 mm, tem linhas de camada " -"menores, velocidades e aceleração mais baixas, e o padrão de preenchimento é " -"Giroide. Isso resulta em linhas de camada mínimas e uma qualidade de " -"impressão muito superior, mas um tempo de impressão muito maior." - -msgid "" -"It has a general layer height, and results in general layer lines and " -"printing quality. It is suitable for most general printing cases." +"It has a general layer height, and results in general layer lines and printing " +"quality. It is suitable for most general printing cases." msgstr "" "Tem uma altura de camada padrão e resulta em linhas de camada e qualidade de " "impressão padrão. É adequado para a maioria dos casos de impressão." msgid "" -"Compared with the default profile of a 0.4 mm nozzle, it has more wall loops " -"and a higher sparse infill density. So, it results in higher strength of the " -"prints, but more filament consumption and longer printing time." +"Compared with the default profile of a 0.4 mm nozzle, it has more wall loops and a " +"higher sparse infill density. So, it results in higher strength of the prints, but " +"more filament consumption and longer printing time." msgstr "" "Comparado com o perfil padrão de uma bico de 0,4 mm, tem mais paredes e uma " -"densidade de preenchimento mais alta. Portanto, resulta em maior " -"resistência, mas com consumo maior de filamento e tempo de impressão mais " -"longo." +"densidade de preenchimento esparso mais alta. Portanto, resulta em maior " +"resistência, mas com consumo maior de filamento e tempo de impressão mais longo." msgid "" -"Compared with the default profile of a 0.4 mm nozzle, it has a bigger layer " -"height, and results in more apparent layer lines and lower printing quality, " -"but slightly shorter printing time." +"Compared with the default profile of a 0.4 mm nozzle, it has a bigger layer height, " +"and results in more apparent layer lines and lower printing quality, but slightly " +"shorter printing time." msgstr "" -"Comparado com o perfil padrão de uma bico de 0,4 mm, tem uma altura de " -"camada maior, resultando em linhas de camada mais aparentes e qualidade mais " -"baixa, mas com um tempo de impressão um pouco menor." +"Comparado com o perfil padrão de uma bico de 0,4 mm, tem uma altura de camada maior, " +"resultando em linhas de camada mais aparentes e qualidade mais baixa, mas com um " +"tempo de impressão um pouco menor." msgid "" -"Compared with the default profile of a 0.4 mm nozzle, it has a bigger layer " -"height, and results in more apparent layer lines and lower printing quality, " -"but shorter printing time." +"Compared with the default profile of a 0.4 mm nozzle, it has a bigger layer height, " +"and results in more apparent layer lines and lower printing quality, but shorter " +"printing time." msgstr "" -"Comparado com o perfil padrão de uma bico de 0,4 mm, tem uma altura de " -"camada maior, resultando em linhas de camada mais aparentes e qualidade mais " -"baixa, mas com um tempo de impressão menor." +"Comparado com o perfil padrão de uma bico de 0,4 mm, tem uma altura de camada maior, " +"resultando em linhas de camada mais aparentes e qualidade mais baixa, mas com um " +"tempo de impressão menor." msgid "" -"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer " -"height, and results in less apparent layer lines and higher printing " -"quality, but longer printing time." +"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer height, " +"and results in less apparent layer lines and higher printing quality, but longer " +"printing time." msgstr "" -"Comparado com o perfil padrão de um bico de 0,4 mm, tem uma altura de camada " -"menor, resultando em linhas de camada menos aparentes e maior qualidade de " -"impressão, mas com um tempo de impressão maior." +"Comparado com o perfil padrão de um bico de 0,4 mm, tem uma altura de camada menor, " +"resultando em linhas de camada menos aparentes e maior qualidade de impressão, mas " +"com um tempo de impressão maior." msgid "" -"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer " -"height, lower speeds and acceleration, and the sparse infill pattern is " -"Gyroid. So, it results in less apparent layer lines and much higher printing " -"quality, but much longer printing time." +"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer height, " +"lower speeds and acceleration, and the sparse infill pattern is Gyroid. So, it " +"results in less apparent layer lines and much higher printing quality, but much " +"longer printing time." msgstr "" -"Comparado com o perfil padrão de um bico de 0,4 mm, tem uma altura de camada " -"menor, velocidades e aceleração mais baixas, e o padrão de preenchimento é " -"Giroide. Portanto, resulta em linhas de camada menos aparentes e qualidade " -"de impressão maior, mas com um tempo de impressão muito maior." +"Comparado com o perfil padrão de um bico de 0,4 mm, tem uma altura de camada menor, " +"velocidades e aceleração mais baixas, e o padrão de preenchimento esparso é Giroide. " +"Portanto, resulta em linhas de camada menos aparentes e qualidade de impressão " +"maior, mas com um tempo de impressão muito maior." msgid "" -"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer " -"height, and results in almost negligible layer lines and higher printing " -"quality, but longer printing time." +"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer height, " +"and results in almost negligible layer lines and higher printing quality, but longer " +"printing time." msgstr "" -"Comparado com o perfil padrão de um bico de 0,4 mm, tem uma altura de camada " -"menor, resultando em linhas de camada quase insignificantes e maior " -"qualidade de impressão, mas com um maior tempo de impressão." +"Comparado com o perfil padrão de um bico de 0,4 mm, tem uma altura de camada menor, " +"resultando em linhas de camada quase insignificantes e maior qualidade de impressão, " +"mas com um maior tempo de impressão." msgid "" -"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer " -"height, lower speeds and acceleration, and the sparse infill pattern is " -"Gyroid. So, it results in almost negligible layer lines and much higher " -"printing quality, but much longer printing time." +"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer height, " +"lower speeds and acceleration, and the sparse infill pattern is Gyroid. So, it " +"results in almost negligible layer lines and much higher printing quality, but much " +"longer printing time." msgstr "" -"Comparado com o perfil padrão de um bico de 0,4 mm, tem uma altura de camada " -"menor, velocidades e aceleração mais baixas, e o padrão de preenchimento é " -"Giroide. Portanto, resulta em linhas de camada quase insignificantes e " -"qualidade de impressão muito maior, mas com um tempo de impressão muito " +"Comparado com o perfil padrão de um bico de 0,4 mm, tem uma altura de camada menor, " +"velocidades e aceleração mais baixas, e o padrão de preenchimento esparso é Giroide. " +"Portanto, resulta em linhas de camada quase insignificantes e qualidade de impressão " +"muito maior, mas com um tempo de impressão muito maior." + +msgid "" +"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer height, " +"and results in almost negligible layer lines and longer printing time." +msgstr "" +"Comparado com o perfil padrão de um bico de 0,4 mm, tem uma altura de camada menor, " +"resultando em linhas de camada quase insignificantes, mas com um tempo de impressão " "maior." msgid "" -"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer " -"height, and results in almost negligible layer lines and longer printing " -"time." +"It has a big layer height, and results in apparent layer lines and ordinary printing " +"quality and printing time." msgstr "" -"Comparado com o perfil padrão de um bico de 0,4 mm, tem uma altura de camada " -"menor, resultando em linhas de camada quase insignificantes, mas com um " -"tempo de impressão maior." +"Tem uma altura de camada grande, resultando em linhas de camada aparentes com " +"qualidade e tempo de impressão normais." msgid "" -"It has a big layer height, and results in apparent layer lines and ordinary " -"printing quality and printing time." +"Compared with the default profile of a 0.6 mm nozzle, it has more wall loops and a " +"higher sparse infill density. So, it results in higher strength of the prints, but " +"more filament consumption and longer printing time." msgstr "" -"Tem uma altura de camada grande, resultando em linhas de camada aparentes " -"com qualidade e tempo de impressão normais." +"Comparado com o perfil padrão de um bico de 0,6 mm, tem mais paredes e uma densidade " +"de preenchimento esparso mais alta. Portanto, resulta em uma resistência maior, mas " +"com um consumo de filamento maior e um tempo de impressão mais longo." msgid "" -"Compared with the default profile of a 0.6 mm nozzle, it has more wall loops " -"and a higher sparse infill density. So, it results in higher strength of the " -"prints, but more filament consumption and longer printing time." +"Compared with the default profile of a 0.6 mm nozzle, it has a bigger layer height, " +"and results in more apparent layer lines and lower printing quality, but shorter " +"printing time in some printing cases." msgstr "" -"Comparado com o perfil padrão de um bico de 0,6 mm, tem mais paredes e uma " -"densidade de preenchimento mais alta. Portanto, resulta em uma resistência " -"maior, mas com um consumo de filamento maior e um tempo de impressão mais " -"longo." +"Comparado com o perfil padrão de um bico de 0,6 mm, tem uma altura de camada maior, " +"resultando em linhas de camada mais aparentes e qualidade mais baixa, mas com um " +"tempo de impressão menor em alguns casos de impressão." msgid "" -"Compared with the default profile of a 0.6 mm nozzle, it has a bigger layer " -"height, and results in more apparent layer lines and lower printing quality, " -"but shorter printing time in some printing cases." +"Compared with the default profile of a 0.6 mm nozzle, it has a bigger layer height, " +"and results in much more apparent layer lines and much lower printing quality, but " +"shorter printing time in some printing cases." msgstr "" -"Comparado com o perfil padrão de um bico de 0,6 mm, tem uma altura de camada " -"maior, resultando em linhas de camada mais aparentes e qualidade mais baixa, " +"Comparado com o perfil padrão de um bico de 0,6 mm, tem uma altura de camada maior, " +"resultando em linhas de camada muito mais aparentes e qualidade muito mais baixa, " "mas com um tempo de impressão menor em alguns casos de impressão." msgid "" -"Compared with the default profile of a 0.6 mm nozzle, it has a bigger layer " -"height, and results in much more apparent layer lines and much lower " -"printing quality, but shorter printing time in some printing cases." +"Compared with the default profile of a 0.6 mm nozzle, it has a smaller layer height, " +"and results in less apparent layer lines and slight higher printing quality, but " +"longer printing time." msgstr "" -"Comparado com o perfil padrão de um bico de 0,6 mm, tem uma altura de camada " -"maior, resultando em linhas de camada muito mais aparentes e qualidade muito " -"mais baixa, mas com um tempo de impressão menor em alguns casos de impressão." +"Comparado com o perfil padrão de um bico de 0,6 mm, tem uma altura de camada menor, " +"resultando em linhas de camada menos aparentes e qualidade ligeiramente maior, mas " +"com um tempo de impressão maior." msgid "" -"Compared with the default profile of a 0.6 mm nozzle, it has a smaller layer " -"height, and results in less apparent layer lines and slight higher printing " -"quality, but longer printing time." +"Compared with the default profile of a 0.6 mm nozzle, it has a smaller layer height, " +"and results in less apparent layer lines and higher printing quality, but longer " +"printing time." msgstr "" -"Comparado com o perfil padrão de um bico de 0,6 mm, tem uma altura de camada " -"menor, resultando em linhas de camada menos aparentes e qualidade " -"ligeiramente maior, mas com um tempo de impressão maior." +"Comparado com o perfil padrão de um bico de 0,6 mm, tem uma altura de camada menor, " +"resultando em linhas de camada menos aparentes e maior qualidade de impressão, mas " +"com um tempo de impressão maior." msgid "" -"Compared with the default profile of a 0.6 mm nozzle, it has a smaller layer " -"height, and results in less apparent layer lines and higher printing " -"quality, but longer printing time." -msgstr "" -"Comparado com o perfil padrão de um bico de 0,6 mm, tem uma altura de camada " -"menor, resultando em linhas de camada menos aparentes e maior qualidade de " -"impressão, mas com um tempo de impressão maior." - -msgid "" -"It has a very big layer height, and results in very apparent layer lines, " -"low printing quality and general printing time." +"It has a very big layer height, and results in very apparent layer lines, low " +"printing quality and general printing time." msgstr "" "Tem uma altura de camada muito grande, resultando em linhas de camada muito " "aparentes, com qualidade e tempo de impressão baixo." msgid "" -"Compared with the default profile of a 0.8 mm nozzle, it has a bigger layer " -"height, and results in very apparent layer lines and much lower printing " -"quality, but shorter printing time in some printing cases." +"Compared with the default profile of a 0.8 mm nozzle, it has a bigger layer height, " +"and results in very apparent layer lines and much lower printing quality, but " +"shorter printing time in some printing cases." msgstr "" -"Comparado com o perfil padrão de um bico de 0,8 mm, tem uma altura de camada " -"maior, resultando em linhas de camada muito aparentes e qualidade muito mais " -"baixa, mas com um tempo de impressão menor em alguns casos de impressão." +"Comparado com o perfil padrão de um bico de 0,8 mm, tem uma altura de camada maior, " +"resultando em linhas de camada muito aparentes e qualidade muito mais baixa, mas com " +"um tempo de impressão menor em alguns casos de impressão." msgid "" -"Compared with the default profile of a 0.8 mm nozzle, it has a much bigger " -"layer height, and results in extremely apparent layer lines and much lower " -"printing quality, but much shorter printing time in some printing cases." +"Compared with the default profile of a 0.8 mm nozzle, it has a much bigger layer " +"height, and results in extremely apparent layer lines and much lower printing " +"quality, but much shorter printing time in some printing cases." +msgstr "" +"Comparado com o perfil padrão de um bico de 0,8 mm, tem uma altura de camada muito " +"maior, resultando em linhas de camada extremamente aparentes e qualidade muito mais " +"baixa, mas com um tempo de impressão muito menor em alguns casos de impressão." + +msgid "" +"Compared with the default profile of a 0.8 mm nozzle, it has a slightly smaller " +"layer height, and results in slightly less but still apparent layer lines and " +"slightly higher printing quality, but longer printing time in some printing cases." msgstr "" "Comparado com o perfil padrão de um bico de 0,8 mm, tem uma altura de camada " -"muito maior, resultando em linhas de camada extremamente aparentes e " -"qualidade muito mais baixa, mas com um tempo de impressão muito menor em " +"ligeiramente menor, resultando em linhas de camada menos aparentes, mas ainda " +"visíveis, e qualidade ligeiramente maior, mas com um tempo de impressão maior em " "alguns casos de impressão." msgid "" -"Compared with the default profile of a 0.8 mm nozzle, it has a slightly " -"smaller layer height, and results in slightly less but still apparent layer " -"lines and slightly higher printing quality, but longer printing time in some " -"printing cases." +"Compared with the default profile of a 0.8 mm nozzle, it has a smaller layer height, " +"and results in less but still apparent layer lines and slightly higher printing " +"quality, but longer printing time in some printing cases." msgstr "" -"Comparado com o perfil padrão de um bico de 0,8 mm, tem uma altura de camada " -"ligeiramente menor, resultando em linhas de camada menos aparentes, mas " -"ainda visíveis, e qualidade ligeiramente maior, mas com um tempo de " -"impressão maior em alguns casos de impressão." - -msgid "" -"Compared with the default profile of a 0.8 mm nozzle, it has a smaller layer " -"height, and results in less but still apparent layer lines and slightly " -"higher printing quality, but longer printing time in some printing cases." -msgstr "" -"Comparado com o perfil padrão de um bico de 0,8 mm, tem uma altura de camada " -"menor, resultando em linhas de camada menos aparentes, mas ainda visíveis, e " -"qualidade ligeiramente maior, mas com um tempo de impressão maior em alguns " -"casos de impressão." +"Comparado com o perfil padrão de um bico de 0,8 mm, tem uma altura de camada menor, " +"resultando em linhas de camada menos aparentes, mas ainda visíveis, e qualidade " +"ligeiramente maior, mas com um tempo de impressão maior em alguns casos de impressão." msgid "Connected to Obico successfully!" msgstr "Conectado ao Obico com sucesso!" @@ -16820,15 +16649,14 @@ msgid "Could not connect to SimplyPrint" msgstr "Não é possível conectar a SimplyPrint" msgid "Internal error" -msgstr "" +msgstr "Erro interno" msgid "Unknown error" msgstr "Erro desconhecido" msgid "SimplyPrint account not linked. Go to Connect options to set it up." msgstr "" -"Conta SimplyPrint não vinculada. Vá para as opções de conexão para configurá-" -"la." +"Conta SimplyPrint não vinculada. Vá para as opções de conexão para configurá-la." msgid "Connection to Flashforge works correctly." msgstr "A conexão com a Flashforge está funcionando corretamente." @@ -16840,12 +16668,10 @@ msgid "The provided state is not correct." msgstr "O estado fornecido não está correto." msgid "Please give the required permissions when authorizing this application." -msgstr "" -"Por favor, forneça as permissões necessárias ao autorizar este aplicativo." +msgstr "Por favor, forneça as permissões necessárias ao autorizar este aplicativo." msgid "Something unexpected happened when trying to log in, please try again." -msgstr "" -"Algo inesperado aconteceu ao tentar conectar, por favor tente novamente." +msgstr "Algo inesperado aconteceu ao tentar conectar, por favor tente novamente." msgid "User cancelled." msgstr "O usuário cancelou." @@ -16857,20 +16683,19 @@ msgid "" "consistency?" msgstr "" "Parede precisa\n" -"Você sabia que ativar o Perímetro Preciso pode melhorar a precisão e a " -"consistência da camada?" +"Você sabia que ativar o Perímetro Preciso pode melhorar a precisão e a consistência " +"da camada?" #: resources/data/hints.ini: [hint:Sandwich mode] msgid "" "Sandwich mode\n" -"Did you know that you can use sandwich mode (inner-outer-inner) to improve " -"precision and layer consistency if your model doesn't have very steep " -"overhangs?" +"Did you know that you can use sandwich mode (inner-outer-inner) to improve precision " +"and layer consistency if your model doesn't have very steep overhangs?" msgstr "" "Modo sanduíche\n" -"Você sabia que pode usar o modo sanduíche (interno-externo-interno) para " -"melhorar a precisão e a consistência da camada se o seu modelo não tiver " -"overhangs muito íngremes?" +"Você sabia que pode usar o modo sanduíche (interno-externo-interno) para melhorar a " +"precisão e a consistência da camada se o seu modelo não tiver overhangs muito " +"íngremes?" #: resources/data/hints.ini: [hint:Chamber temperature] msgid "" @@ -16883,12 +16708,12 @@ msgstr "" #: resources/data/hints.ini: [hint:Calibration] msgid "" "Calibration\n" -"Did you know that calibrating your printer can do wonders? Check out our " -"beloved calibration solution in OrcaSlicer." +"Did you know that calibrating your printer can do wonders? Check out our beloved " +"calibration solution in OrcaSlicer." msgstr "" "Calibração\n" -"Você sabia que calibrar sua impressora pode fazer maravilhas? Confira nossa " -"amada solução de calibração no OrcaSlicer." +"Você sabia que calibrar sua impressora pode fazer maravilhas? Confira nossa amada " +"solução de calibração no OrcaSlicer." #: resources/data/hints.ini: [hint:Auxiliary fan] msgid "" @@ -16896,8 +16721,7 @@ msgid "" "Did you know that OrcaSlicer supports Auxiliary part cooling fan?" msgstr "" "Ventilador auxiliar\n" -"Você sabia que o OrcaSlicer suporta ventilador auxiliar de resfriamento de " -"peças?" +"Você sabia que o OrcaSlicer suporta ventilador auxiliar de resfriamento de peças?" #: resources/data/hints.ini: [hint:Air filtration] msgid "" @@ -16918,18 +16742,18 @@ msgstr "" #: resources/data/hints.ini: [hint:Switch workspaces] msgid "" "Switch workspaces\n" -"You can switch between Prepare and Preview workspaces by " -"pressing the Tab key." +"You can switch between Prepare and Preview workspaces by pressing the " +"Tab key." msgstr "" "Alternar espaços de trabalho\n" -"Você pode alternar entre os espaços de trabalho Preparar e " -"Visualizar pressionando a tecla Tab." +"Você pode alternar entre os espaços de trabalho Preparar e Visualizar " +"pressionando a tecla Tab." #: resources/data/hints.ini: [hint:How to use keyboard shortcuts] msgid "" "How to use keyboard shortcuts\n" -"Did you know that Orca Slicer offers a wide range of keyboard shortcuts and " -"3D scene operations." +"Did you know that Orca Slicer offers a wide range of keyboard shortcuts and 3D scene " +"operations." msgstr "" "Como usar atalhos de teclado\n" "Você sabia que o Orca Slicer oferece uma ampla gama de atalhos de teclado e " @@ -16938,22 +16762,22 @@ msgstr "" #: resources/data/hints.ini: [hint:Reverse on odd] msgid "" "Reverse on odd\n" -"Did you know that Reverse on odd feature can significantly improve " -"the surface quality of your overhangs?" +"Did you know that Reverse on odd feature can significantly improve the " +"surface quality of your overhangs?" msgstr "" "Inverter em ímpar\n" -"Você sabia que a função Inverter em ímpar pode melhorar " -"significativamente a qualidade da superfície dos overhangs?" +"Você sabia que a função Inverter em ímpar pode melhorar significativamente a " +"qualidade da superfície dos overhangs?" #: resources/data/hints.ini: [hint:Cut Tool] msgid "" "Cut Tool\n" -"Did you know that you can cut a model at any angle and position with the " -"cutting tool?" +"Did you know that you can cut a model at any angle and position with the cutting " +"tool?" msgstr "" "Ferramenta de corte\n" -"Você sabia que pode cortar um modelo em qualquer ângulo e posição com a " -"ferramenta de corte?" +"Você sabia que pode cortar um modelo em qualquer ângulo e posição com a ferramenta " +"de corte?" #: resources/data/hints.ini: [hint:Fix Model] msgid "" @@ -16962,8 +16786,8 @@ msgid "" "problems on the Windows system?" msgstr "" "Corrigir Modelo\n" -"Você sabia que pode corrigir um modelo 3D corrompido para evitar muitos " -"problemas de fatiamento no sistema Windows?" +"Você sabia que pode corrigir um modelo 3D corrompido para evitar muitos problemas de " +"fatiamento no sistema Windows?" #: resources/data/hints.ini: [hint:Timelapse] msgid "" @@ -16984,44 +16808,43 @@ msgstr "" #: resources/data/hints.ini: [hint:Auto-Orient] msgid "" "Auto-Orient\n" -"Did you know that you can rotate objects to an optimal orientation for " -"printing by a simple click?" +"Did you know that you can rotate objects to an optimal orientation for printing by a " +"simple click?" msgstr "" "Auto-orientar\n" -"Você sabia que pode girar objetos para uma orientação ideal para impressão " -"com um simples clique?" +"Você sabia que pode girar objetos para uma orientação ideal para impressão com um " +"simples clique?" #: resources/data/hints.ini: [hint:Lay on Face] msgid "" "Lay on Face\n" -"Did you know that you can quickly orient a model so that one of its faces " -"sits on the print bed? Select the \"Place on face\" function or press the " -"F key." +"Did you know that you can quickly orient a model so that one of its faces sits on " +"the print bed? Select the \"Place on face\" function or press the F key." msgstr "" "Apoiar face à superfície\n" -"Você sabia que pode rapidamente orientar um modelo para que uma de suas " -"faces fique sobre a base de impressão? Selecione a função \"Apoiar na face\" " -"ou pressione a tecla F." +"Você sabia que pode rapidamente orientar um modelo para que uma de suas faces fique " +"sobre a base de impressão? Selecione a função \"Apoiar na face\" ou pressione a " +"tecla F." #: resources/data/hints.ini: [hint:Object List] msgid "" "Object List\n" -"Did you know that you can view all objects/parts in a list and change " -"settings for each object/part?" +"Did you know that you can view all objects/parts in a list and change settings for " +"each object/part?" msgstr "" "Lista de Objetos\n" -"Você sabia que pode visualizar todos os objetos/peças em uma lista e alterar " -"as configurações para cada objeto/peça?" +"Você sabia que pode visualizar todos os objetos/peças em uma lista e alterar as " +"configurações para cada objeto/peça?" #: resources/data/hints.ini: [hint:Search Functionality] msgid "" "Search Functionality\n" -"Did you know that you use the Search tool to quickly find a specific Orca " -"Slicer setting?" +"Did you know that you use the Search tool to quickly find a specific Orca Slicer " +"setting?" msgstr "" "Funcionalidade de Busca\n" -"Você sabia que pode usar a ferramenta de busca para encontrar rapidamente " -"uma configuração específica do Orca Slicer?" +"Você sabia que pode usar a ferramenta de busca para encontrar rapidamente uma " +"configuração específica do Orca Slicer?" #: resources/data/hints.ini: [hint:Simplify Model] msgid "" @@ -17030,36 +16853,36 @@ msgid "" "Simplify mesh feature? Right-click the model and select Simplify model." msgstr "" "Simplificar Modelo\n" -"Você sabia que pode reduzir o número de triângulos em uma malha usando a " -"função Simplificar malha? Clique com o botão direito no modelo e selecione " -"Simplificar modelo." +"Você sabia que pode reduzir o número de triângulos em uma malha usando a função " +"Simplificar malha? Clique com o botão direito no modelo e selecione Simplificar " +"modelo." #: resources/data/hints.ini: [hint:Slicing Parameter Table] msgid "" "Slicing Parameter Table\n" -"Did you know that you can view all objects/parts on a table and change " -"settings for each object/part?" +"Did you know that you can view all objects/parts on a table and change settings for " +"each object/part?" msgstr "" "Tabela de Parâmetros de Fatiamento\n" -"Você sabia que pode visualizar todos os objetos/peças em uma tabela e " -"alterar as configurações para cada objeto/peça?" +"Você sabia que pode visualizar todos os objetos/peças em uma tabela e alterar as " +"configurações para cada objeto/peça?" #: resources/data/hints.ini: [hint:Split to Objects/Parts] msgid "" "Split to Objects/Parts\n" -"Did you know that you can split a big object into small ones for easy " -"colorizing or printing?" +"Did you know that you can split a big object into small ones for easy colorizing or " +"printing?" msgstr "" "Dividir em Objetos/Peças\n" -"Você sabia que pode dividir um objeto grande em peças menores para facilitar " -"a colorização ou a impressão?" +"Você sabia que pode dividir um objeto grande em peças menores para facilitar a " +"colorização ou a impressão?" #: resources/data/hints.ini: [hint:Subtract a Part] msgid "" "Subtract a Part\n" -"Did you know that you can subtract one mesh from another using the Negative " -"part modifier? That way you can, for example, create easily resizable holes " -"directly in Orca Slicer." +"Did you know that you can subtract one mesh from another using the Negative part " +"modifier? That way you can, for example, create easily resizable holes directly in " +"Orca Slicer." msgstr "" "Subtrair uma Peça\n" "Você sabia que pode subtrair uma malha da outra usando o modificador de peça " @@ -17069,115 +16892,114 @@ msgstr "" #: resources/data/hints.ini: [hint:STEP] msgid "" "STEP\n" -"Did you know that you can improve your print quality by slicing a STEP file " -"instead of an STL?\n" -"Orca Slicer supports slicing STEP files, providing smoother results than a " -"lower resolution STL. Give it a try!" +"Did you know that you can improve your print quality by slicing a STEP file instead " +"of an STL?\n" +"Orca Slicer supports slicing STEP files, providing smoother results than a lower " +"resolution STL. Give it a try!" msgstr "" "STEP\n" -"Você sabia que pode melhorar a qualidade da impressão fatiando um arquivo " -"STEP ao invés de um STL?\n" -"Orca Slicer é compatível com arquivos STEP, gerando resultados mais suaves " -"do que um STL em baixa resolução. Tente!" +"Você sabia que pode melhorar a qualidade da impressão fatiando um arquivo STEP ao " +"invés de um STL?\n" +"Orca Slicer é compatível com arquivos STEP, gerando resultados mais suaves do que um " +"STL em baixa resolução. Tente!" #: resources/data/hints.ini: [hint:Z seam location] msgid "" "Z seam location\n" -"Did you know that you can customize the location of the Z seam, and even " -"paint it on your print, to have it in a less visible location? This improves " -"the overall look of your model. Check it out!" +"Did you know that you can customize the location of the Z seam, and even paint it on " +"your print, to have it in a less visible location? This improves the overall look of " +"your model. Check it out!" msgstr "" "Local da costura\n" -"Você sabia que pode customizar a posição da costura, e até mesmo pintá-la na " -"sua peça, para tê-la em um lugar menos visível? Isso vai aumentar a " -"qualidade geral do seu modelo. Tente!" +"Você sabia que pode customizar a posição da costura, e até mesmo pintá-la na sua " +"peça, para tê-la em um lugar menos visível? Isso vai aumentar a qualidade geral do " +"seu modelo. Tente!" #: resources/data/hints.ini: [hint:Fine-tuning for flow rate] msgid "" "Fine-tuning for flow rate\n" -"Did you know that flow rate can be fine-tuned for even better-looking " -"prints? Depending on the material, you can improve the overall finish of the " -"printed model by doing some fine-tuning." +"Did you know that flow rate can be fine-tuned for even better-looking prints? " +"Depending on the material, you can improve the overall finish of the printed model " +"by doing some fine-tuning." msgstr "" "Ajuste fino do fluxo\n" -"Você sabia que o fluxo pode ser ajustado para impressões ainda melhores? " -"Dependendo do material, você pode melhorar o acabamento final da sua peça " -"fazendo alguns ajustes." +"Você sabia que o fluxo pode ser ajustado para impressões ainda melhores? Dependendo " +"do material, você pode melhorar o acabamento final da sua peça fazendo alguns " +"ajustes." #: resources/data/hints.ini: [hint:Split your prints into plates] msgid "" "Split your prints into plates\n" -"Did you know that you can split a model that has a lot of parts into " -"individual plates ready to print? This will simplify the process of keeping " -"track of all the parts." +"Did you know that you can split a model that has a lot of parts into individual " +"plates ready to print? This will simplify the process of keeping track of all the " +"parts." msgstr "" "Divida suas impressões em mesas\n" -"Você sabia que pode dividir um modelo que tem diversas peças individuais em " -"mesas distintas prontas para imprimir? Isso vai simplificar o processo e o " -"avanço das impressões." +"Você sabia que pode dividir um modelo que tem diversas peças individuais em mesas " +"distintas prontas para imprimir? Isso vai simplificar o processo e o avanço das " +"impressões." -#: resources/data/hints.ini: [hint:Speed up your print with Adaptive Layer -#: Height] +#: resources/data/hints.ini: [hint:Speed up your print with Adaptive Layer Height] msgid "" "Speed up your print with Adaptive Layer Height\n" -"Did you know that you can print a model even faster, by using the Adaptive " -"Layer Height option? Check it out!" +"Did you know that you can print a model even faster, by using the Adaptive Layer " +"Height option? Check it out!" msgstr "" "Agilize sua impressão com a Altura de Camada Adaptativa\n" -"Você sabia que pode imprimir um modelo ainda mais rápido, usando a opção de " -"Altura de Camada Adaptativa? Tente!" +"Você sabia que pode imprimir um modelo ainda mais rápido, usando a opção de Altura " +"de Camada Adaptativa? Tente!" #: resources/data/hints.ini: [hint:Support painting] msgid "" "Support painting\n" -"Did you know that you can paint the location of your supports? This feature " -"makes it easy to place the support material only on the sections of the " -"model that actually need it." +"Did you know that you can paint the location of your supports? This feature makes it " +"easy to place the support material only on the sections of the model that actually " +"need it." msgstr "" "Pintura de suporte\n" -"Você sabia que pode pintar a localização dos seus suportes? Essa " -"funcionalidade facilita colocar o material de suporte apenas nas seções do " -"modelo que realmente precisam." +"Você sabia que pode pintar a localização dos seus suportes? Essa funcionalidade " +"facilita colocar o material de suporte apenas nas seções do modelo que realmente " +"precisam." #: resources/data/hints.ini: [hint:Different types of supports] msgid "" "Different types of supports\n" -"Did you know that you can choose from multiple types of supports? Tree " -"supports work great for organic models, while saving filament and improving " -"print speed. Check them out!" +"Did you know that you can choose from multiple types of supports? Tree supports work " +"great for organic models, while saving filament and improving print speed. Check " +"them out!" msgstr "" "Diferentes tipos de suportes\n" -"Você sabia que pode escolher entre vários tipos de suportes? Os suportes de " -"árvore funcionam muito bem para modelos orgânicos, enquanto economizam " -"filamento e melhoram a velocidade de impressão. Confira-os!" +"Você sabia que pode escolher entre vários tipos de suportes? Os suportes de árvore " +"funcionam muito bem para modelos orgânicos, enquanto economizam filamento e melhoram " +"a velocidade de impressão. Confira-os!" #: resources/data/hints.ini: [hint:Printing Silk Filament] msgid "" "Printing Silk Filament\n" "Did you know that Silk filament needs special consideration to print it " -"successfully? Higher temperature and lower speed are always recommended for " -"the best results." +"successfully? Higher temperature and lower speed are always recommended for the best " +"results." msgstr "" "Impressão de Filamento de Seda\n" -"Você sabia que o filamento de seda precisa de considerações especiais para " -"ser impresso com sucesso? Uma temperatura mais alta e uma velocidade mais " -"baixa são sempre recomendadas para obter os melhores resultados." +"Você sabia que o filamento de seda precisa de considerações especiais para ser " +"impresso com sucesso? Uma temperatura mais alta e uma velocidade mais baixa são " +"sempre recomendadas para obter os melhores resultados." #: resources/data/hints.ini: [hint:Brim for better adhesion] msgid "" "Brim for better adhesion\n" -"Did you know that when printing models have a small contact interface with " -"the printing surface, it's recommended to use a brim?" +"Did you know that when printing models have a small contact interface with the " +"printing surface, it's recommended to use a brim?" msgstr "" "Borda para melhor adesão\n" -"Você sabia que, ao imprimir modelos com uma pequena interface de contato com " -"a superfície de impressão, é recomendável usar uma borda?" +"Você sabia que, ao imprimir modelos com uma pequena interface de contato com a " +"superfície de impressão, é recomendável usar uma borda?" #: resources/data/hints.ini: [hint:Set parameters for multiple objects] msgid "" "Set parameters for multiple objects\n" -"Did you know that you can set slicing parameters for all selected objects at " -"one time?" +"Did you know that you can set slicing parameters for all selected objects at one " +"time?" msgstr "" "Definir parâmetros para vários objetos\n" "Você sabia que pode definir parâmetros de fatiamento para todos os objetos " @@ -17194,48 +17016,207 @@ msgstr "" #: resources/data/hints.ini: [hint:Flush into support/objects/infill] msgid "" "Flush into support/objects/infill\n" -"Did you know that you can save the wasted filament by flushing them into " -"support/objects/infill during filament change?" +"Did you know that you can save the wasted filament by flushing them into support/" +"objects/infill during filament change?" msgstr "" "Purga no suporte/objetos/preenchimento\n" -"Você sabia que pode economizar o filamento desperdiçado ao purgar nos " -"suportes/objetos/preenchimento durante a troca de filamento?" +"Você sabia que pode economizar o filamento desperdiçado ao purgar nos suportes/" +"objetos/preenchimento durante a troca de filamento?" #: resources/data/hints.ini: [hint:Improve strength] msgid "" "Improve strength\n" -"Did you know that you can use more wall loops and higher sparse infill " -"density to improve the strength of the model?" +"Did you know that you can use more wall loops and higher sparse infill density to " +"improve the strength of the model?" msgstr "" "Melhorar a resistência\n" -"Você sabia que pode usar mais loops de perímetro e densidade de " -"preenchimento não sólido mais alta para melhorar a resistência do modelo?" +"Você sabia que pode usar mais loops de perímetro e densidade de preenchimento " +"esparso mais alta para melhorar a resistência do modelo?" -#: resources/data/hints.ini: [hint:When need to print with the printer door -#: opened] +#: resources/data/hints.ini: [hint:When need to print with the printer door opened] msgid "" "When need to print with the printer door opened\n" -"Did you know that opening the printer door can reduce the probability of " -"extruder/hotend clogging when printing lower temperature filament with a " -"higher enclosure temperature. More info about this in the Wiki." +"Did you know that opening the printer door can reduce the probability of extruder/" +"hotend clogging when printing lower temperature filament with a higher enclosure " +"temperature. More info about this in the Wiki." msgstr "" "Quando é necessário imprimir com a porta da impressora aberta\n" "Você sabia que abrir a porta da impressora pode reduzir a probabilidade de " -"entupimento do extrusor/bico aquecido ao imprimir filamento de temperatura " -"mais baixa com uma temperatura de invólucro mais alta. Mais informações " -"sobre isso na Wiki." +"entupimento do extrusor/bico aquecido ao imprimir filamento de temperatura mais " +"baixa com uma temperatura de invólucro mais alta. Mais informações sobre isso na " +"Wiki." #: resources/data/hints.ini: [hint:Avoid warping] msgid "" "Avoid warping\n" -"Did you know that when printing materials that are prone to warping such as " -"ABS, appropriately increasing the heatbed temperature can reduce the " -"probability of warping." +"Did you know that when printing materials that are prone to warping such as ABS, " +"appropriately increasing the heatbed temperature can reduce the probability of " +"warping." msgstr "" "Evitar empenamento\n" -"Você sabia que ao imprimir materiais propensos ao empenamento, como ABS, " -"aumentar adequadamente a temperatura da mesa aquecida pode reduzir a " -"probabilidade de empenamento?" +"Você sabia que ao imprimir materiais propensos ao empenamento, como ABS, aumentar " +"adequadamente a temperatura da mesa aquecida pode reduzir a probabilidade de " +"empenamento?" + +#~ msgid "Current Cabin humidity" +#~ msgstr "Umidade da cabine atual" + +#~ msgid "Stopped." +#~ msgstr "Parado." + +#, c-format, boost-format +#~ msgid "Connect failed [%d]!" +#~ msgstr "Falha ao conectar [%d]!" + +#~ msgid "Initialize failed (Device connection not ready)!" +#~ msgstr "Inicialização falhou (Conexão do dispositivo não está pronta)!" + +#~ msgid "Initialize failed (Storage unavailable, insert SD card.)!" +#~ msgstr "Inicialização falhou (falha no armazenamento, insira o cartão SD.)!" + +#, c-format, boost-format +#~ msgid "Initialize failed (%s)!" +#~ msgstr "Inicialização falhou (%s)!" + +#~ msgid "LAN Connection Failed (Sending print file)" +#~ msgstr "Falha na conexão LAN (enviando arquivo de impressão)" + +#~ msgid "Step 1, please confirm Orca Slicer and your printer are in the same LAN." +#~ msgstr "" +#~ "Passo 1, por favor confirme se o Orca Slicer e sua impressora estão na mesma LAN." + +#~ msgid "" +#~ "Step 2, if the IP and Access Code below are different from the actual values on " +#~ "your printer, please correct them." +#~ msgstr "" +#~ "Passo 2, se o IP e o Código de Acesso abaixo forem diferentes dos valores reais " +#~ "na sua impressora, corrija-os." + +#~ msgid "Step 3: Ping the IP address to check for packet loss and latency." +#~ msgstr "" +#~ "Passo 3: Pingue o endereço IP para verificar a perda de pacotes e a latência." + +#~ msgid "IP and Access Code Verified! You may close the window" +#~ msgstr "IP e Código de Acesso Verificados! Você pode fechar a janela" + +#~ msgid "Force cooling for overhang and bridge" +#~ msgstr "Forçar resfriamento para overhangs e pontes" + +#~ msgid "" +#~ "Enable this option to optimize part cooling fan speed for overhang and bridge to " +#~ "get better cooling" +#~ msgstr "" +#~ "Ative esta opção para otimizar a velocidade do ventilador de resfriamento de " +#~ "peças para overhangs e ponte para obter melhor resfriamento" + +#~ msgid "Fan speed for overhang" +#~ msgstr "Velocidade do ventilador para overhangs" + +#~ msgid "" +#~ "Force part cooling fan to be this speed when printing bridge or overhang wall " +#~ "which has large overhang degree. Forcing cooling for overhang and bridge can get " +#~ "better quality for these part" +#~ msgstr "" +#~ "Forçar o ventilador de resfriamento da peça a ser nesta velocidade ao imprimir " +#~ "ponte ou overhang que tenha um grande grau de inclinação. Forçar o resfriamento " +#~ "para overhang e ponte pode obter melhor qualidade para estas partes" + +#~ msgid "Cooling overhang threshold" +#~ msgstr "Overhang limiar de resfriamento" + +#, c-format +#~ msgid "" +#~ "Force cooling fan to be specific speed when overhang degree of printed part " +#~ "exceeds this value. Expressed as percentage which indicates how much width of the " +#~ "line without support from lower layer. 0% means forcing cooling for all outer " +#~ "wall no matter how much overhang degree" +#~ msgstr "" +#~ "Forçar o ventilador de resfriamento a ser uma velocidade específica quando o grau " +#~ "de inclinação da peça impressa excede este valor. Expresso como porcentagem, que " +#~ "indica quanto da largura da linha sem suporte da camada inferior.Zero significa " +#~ "forçar o resfriamento para toda o perímetro externo, não importa quanto seja o " +#~ "grau de inclinação" + +#~ msgid "Bridge infill direction" +#~ msgstr "Direção de preenchimento de ponte" + +#~ msgid "Bridge density" +#~ msgstr "Densidade de ponte" + +#~ msgid "Density of external bridges. 100% means solid bridge. Default is 100%." +#~ msgstr "Densidade de pontes externas. 100% significa ponte sólida. O padrão é 100%." + +#~ msgid "" +#~ "Improve shell precision by adjusting outer wall spacing. This also improves layer " +#~ "consistency.\n" +#~ "Note: This setting will only take effect if the wall sequence is configured to " +#~ "Inner-Outer" +#~ msgstr "" +#~ "Melhore a precisão da parede ajustando o espaçamento do perímetro externo. Isso " +#~ "também melhora a consistência da camada.\n" +#~ "Nota: Esta configuração só terá efeito se a sequência do perímetro estiver " +#~ "configurada para Interior-Exterior" + +#~ msgid "Thick bridges" +#~ msgstr "Ponte grossa" + +#~ msgid "" +#~ "This fan speed is enforced during all support interfaces, to be able to weaken " +#~ "their bonding with a high fan speed.\n" +#~ "Set to -1 to disable this override.\n" +#~ "Can only be overridden by disable_fan_first_layers." +#~ msgstr "" +#~ "Esta velocidade do ventilador é aplicada durante todas as interfaces de suporte, " +#~ "para enfraquecer sua ligação com uma alta velocidade do ventilador.\n" +#~ "Defina como -1 para desativar esta substituição.\n" +#~ "Só pode ser substituído por disable_fan_first_layers." + +#~ msgid "" +#~ "A lower value results in smoother extrusion rate transitions. However, this " +#~ "results in a significantly larger gcode file and more instructions for the " +#~ "printer to process. \n" +#~ "\n" +#~ "Default value of 3 works well for most cases. If your printer is stuttering, " +#~ "increase this value to reduce the number of adjustments made\n" +#~ "\n" +#~ "Allowed values: 1-5" +#~ msgstr "" +#~ "Um valor menor resulta em transições de extrusão mais suaves. No entanto, isso " +#~ "resulta em um arquivo Gcode significativamente maior e mais instruções para a " +#~ "impressora processar.\n" +#~ "\n" +#~ "O valor padrão de 3 funciona bem para a maioria dos casos. Se sua impressora " +#~ "estiver engasgando, aumente este valor para reduzir o número de ajustes feitos.\n" +#~ "\n" +#~ "Valores permitidos: 1-5" + +#~ msgid "" +#~ "The minimum printing speed that the printer will slow down to to attempt to " +#~ "maintain the minimum layer time above, when slow down for better layer cooling is " +#~ "enabled." +#~ msgstr "" +#~ "A velocidade de impressão mínima para a qual a impressora diminuirá a velocidade " +#~ "para tentar manter o tempo mínimo de camada acima, quando a desaceleração para um " +#~ "melhor resfriamento da camada estiver habilitada." + +#~ msgid "" +#~ "normal(auto) and tree(auto) is used to generate support automatically. If " +#~ "normal(manual) or tree(manual) is selected, only support enforcers are generated" +#~ msgstr "" +#~ "normal(auto) e tree(auto) são usados para gerar suporte automaticamente. Se " +#~ "normal(manual) ou tree(manual) for selecionado, apenas os suportes são gerados" + +#~ msgid "normal(auto)" +#~ msgstr "normal(automático)" + +#~ msgid "tree(auto)" +#~ msgstr "árvore(automático)" + +#~ msgid "normal(manual)" +#~ msgstr "normal(manual)" + +#~ msgid "tree(manual)" +#~ msgstr "árvore(manual)" #~ msgid "ShiftLeft mouse button" #~ msgstr "Botão do mouse ShiftLeft" @@ -17263,75 +17244,70 @@ msgstr "" #~ msgstr "Inverter em ímpares" #~ msgid "" -#~ "Extrude perimeters that have a part over an overhang in the reverse " -#~ "direction on odd layers. This alternating pattern can drastically improve " -#~ "steep overhangs.\n" +#~ "Extrude perimeters that have a part over an overhang in the reverse direction on " +#~ "odd layers. This alternating pattern can drastically improve steep overhangs.\n" #~ "\n" -#~ "This setting can also help reduce part warping due to the reduction of " -#~ "stresses in the part walls." +#~ "This setting can also help reduce part warping due to the reduction of stresses " +#~ "in the part walls." #~ msgstr "" -#~ "Extruir perímetros, que tenham uma parte sobre um overhang, na direção " -#~ "reversa em camadas ímpares. Este padrão alternado pode melhorar " -#~ "drasticamente perímetros íngremes.\n" +#~ "Extruir perímetros, que tenham uma parte sobre um overhang, na direção reversa em " +#~ "camadas ímpares. Este padrão alternado pode melhorar drasticamente perímetros " +#~ "íngremes.\n" #~ "\n" -#~ "Este ajuste também pode ajudar a reduzir a deformação da peça devido à " -#~ "redução das tensões nas paredes da peça." +#~ "Este ajuste também pode ajudar a reduzir a deformação da peça devido à redução " +#~ "das tensões nas paredes da peça." #~ msgid "" #~ "Apply the reverse perimeters logic only on internal perimeters. \n" #~ "\n" #~ "This setting greatly reduces part stresses as they are now distributed in " -#~ "alternating directions. This should reduce part warping while also " -#~ "maintaining external wall quality. This feature can be very useful for " -#~ "warp prone material, like ABS/ASA, and also for elastic filaments, like " -#~ "TPU and Silk PLA. It can also help reduce warping on floating regions " -#~ "over supports.\n" +#~ "alternating directions. This should reduce part warping while also maintaining " +#~ "external wall quality. This feature can be very useful for warp prone material, " +#~ "like ABS/ASA, and also for elastic filaments, like TPU and Silk PLA. It can also " +#~ "help reduce warping on floating regions over supports.\n" #~ "\n" -#~ "For this setting to be the most effective, it is recommended to set the " -#~ "Reverse Threshold to 0 so that all internal walls print in alternating " -#~ "directions on odd layers irrespective of their overhang degree." +#~ "For this setting to be the most effective, it is recommended to set the Reverse " +#~ "Threshold to 0 so that all internal walls print in alternating directions on odd " +#~ "layers irrespective of their overhang degree." #~ msgstr "" #~ "Aplicar a lógica de perímetros reversos apenas em perímetros internos.\n" #~ "\n" -#~ "Este ajuste reduz muito as tensões na peça, já que agora são distribuídas " -#~ "em direções alternadas. Isso deve reduzir a deformação da peça, mantendo " -#~ "a qualidade do perímetro externo. Este recurso pode ser muito útil para " -#~ "materiais propensos a deformações, como ABS/ASA, e também para filamentos " -#~ "elásticos, como TPU e Silk PLA. Também pode ajudar a reduzir a deformação " -#~ "em regiões flutuantes sobre suportes.\n" +#~ "Este ajuste reduz muito as tensões na peça, já que agora são distribuídas em " +#~ "direções alternadas. Isso deve reduzir a deformação da peça, mantendo a qualidade " +#~ "do perímetro externo. Este recurso pode ser muito útil para materiais propensos a " +#~ "deformações, como ABS/ASA, e também para filamentos elásticos, como TPU e Silk " +#~ "PLA. Também pode ajudar a reduzir a deformação em regiões flutuantes sobre " +#~ "suportes.\n" #~ "\n" -#~ "Para que este ajuste seja mais eficaz, recomenda-se definir o Limiar " -#~ "Reverso como 0 para que todos os perímetros internos sejam impressos em " -#~ "direções alternadas em camadas ímpares, independentemente de seu grau de ." +#~ "Para que este ajuste seja mais eficaz, recomenda-se definir o Limiar Reverso como " +#~ "0 para que todos os perímetros internos sejam impressos em direções alternadas em " +#~ "camadas ímpares, independentemente de seu grau de ." #, no-c-format, no-boost-format #~ msgid "" -#~ "Number of mm the overhang need to be for the reversal to be considered " -#~ "useful. Can be a % of the perimeter width.\n" +#~ "Number of mm the overhang need to be for the reversal to be considered useful. " +#~ "Can be a % of the perimeter width.\n" #~ "Value 0 enables reversal on every odd layers regardless." #~ msgstr "" -#~ "Número de milímetros que o precisa ter para que a reversão seja " -#~ "considerada útil. Pode ser um % da largura do perímetro.\n" -#~ "O valor 0 permite a reversão em todas as camadas ímpares " -#~ "independentemente." +#~ "Número de milímetros que o precisa ter para que a reversão seja considerada útil. " +#~ "Pode ser um % da largura do perímetro.\n" +#~ "O valor 0 permite a reversão em todas as camadas ímpares independentemente." #~ msgid "" -#~ "The direction which the wall loops are extruded when looking down from " -#~ "the top.\n" +#~ "The direction which the wall loops are extruded when looking down from the top.\n" #~ "\n" -#~ "By default all walls are extruded in counter-clockwise, unless Reverse on " -#~ "odd is enabled. Set this to any option other than Auto will force the " -#~ "wall direction regardless of the Reverse on odd.\n" +#~ "By default all walls are extruded in counter-clockwise, unless Reverse on odd is " +#~ "enabled. Set this to any option other than Auto will force the wall direction " +#~ "regardless of the Reverse on odd.\n" #~ "\n" #~ "This option will be disabled if spiral vase mode is enabled." #~ msgstr "" -#~ "A direção na qual os loops da perímetro são extrudados quando vistos de " -#~ "cima.\n" +#~ "A direção na qual os loops da perímetro são extrudados quando vistos de cima.\n" #~ "\n" -#~ "Por padrão, todas as paredes são extrudadas no sentido anti-horário, a " -#~ "menos que o Reverso em ímpar esteja ativado. Definir isso como qualquer " -#~ "opção que não seja Automático forçará a direção do perímetro, " -#~ "independentemente do Reverso em ímpar.\n" +#~ "Por padrão, todas as paredes são extrudadas no sentido anti-horário, a menos que " +#~ "o Reverso em ímpar esteja ativado. Definir isso como qualquer opção que não seja " +#~ "Automático forçará a direção do perímetro, independentemente do Reverso em " +#~ "ímpar.\n" #~ "\n" #~ "Esta opção será desativada se o modo de vaso espiral estiver ativado." @@ -17343,181 +17319,168 @@ msgstr "" #~ "Portanto, redefina a camada da saia para 1 para evitar isso." #~ msgid "" -#~ "The geometry will be decimated before dectecting sharp angles. This " -#~ "parameter indicates the minimum length of the deviation for the " -#~ "decimation.\n" +#~ "The geometry will be decimated before dectecting sharp angles. This parameter " +#~ "indicates the minimum length of the deviation for the decimation.\n" #~ "0 to deactivate" #~ msgstr "" -#~ "A geometria será decimada antes de detectar ângulos agudos. Este " -#~ "parâmetro indica o comprimento mínimo da divergência para a decimação.\n" +#~ "A geometria será decimada antes de detectar ângulos agudos. Este parâmetro indica " +#~ "o comprimento mínimo da divergência para a decimação.\n" #~ "0 para desativar" #~ msgid "" -#~ "Start the fan this number of seconds earlier than its target start time " -#~ "(you can use fractional seconds). It assumes infinite acceleration for " -#~ "this time estimation, and will only take into account G1 and G0 moves " -#~ "(arc fitting is unsupported).\n" -#~ "It won't move fan commands from custom gcodes (they act as a sort of " -#~ "'barrier').\n" -#~ "It won't move fan comands into the start gcode if the 'only custom start " -#~ "gcode' is activated.\n" +#~ "Start the fan this number of seconds earlier than its target start time (you can " +#~ "use fractional seconds). It assumes infinite acceleration for this time " +#~ "estimation, and will only take into account G1 and G0 moves (arc fitting is " +#~ "unsupported).\n" +#~ "It won't move fan commands from custom gcodes (they act as a sort of 'barrier').\n" +#~ "It won't move fan comands into the start gcode if the 'only custom start gcode' " +#~ "is activated.\n" #~ "Use 0 to deactivate." #~ msgstr "" -#~ "Comece o ventilador este número de segundos antes do tempo de início do " -#~ "alvo (você pode usar segundos fracionários). Ele assume aceleração " -#~ "infinita para esta estimativa de tempo e só levará em conta os movimentos " -#~ "G1 e G0 (o ajuste de arco não é suportado).\n" -#~ "Não moverá comandos do ventilador de gcodes personalizados (eles " -#~ "funcionam como uma espécie de 'barreira').\n" -#~ "Não moverá comandos do ventilador para o início do gcode se o 'apenas " -#~ "gcode de início personalizado' estiver ativado.\n" +#~ "Comece o ventilador este número de segundos antes do tempo de início do alvo " +#~ "(você pode usar segundos fracionários). Ele assume aceleração infinita para esta " +#~ "estimativa de tempo e só levará em conta os movimentos G1 e G0 (o ajuste de arco " +#~ "não é suportado).\n" +#~ "Não moverá comandos do ventilador de gcodes personalizados (eles funcionam como " +#~ "uma espécie de 'barreira').\n" +#~ "Não moverá comandos do ventilador para o início do gcode se o 'apenas gcode de " +#~ "início personalizado' estiver ativado.\n" #~ "Use 0 para desativar." #~ msgid "" #~ "A draft shield is useful to protect an ABS or ASA print from warping and " -#~ "detaching from print bed due to wind draft. It is usually needed only " -#~ "with open frame printers, i.e. without an enclosure. \n" +#~ "detaching from print bed due to wind draft. It is usually needed only with open " +#~ "frame printers, i.e. without an enclosure. \n" #~ "\n" #~ "Options:\n" #~ "Enabled = skirt is as tall as the highest printed object.\n" #~ "Limited = skirt is as tall as specified by skirt height.\n" #~ "\n" -#~ "Note: With the draft shield active, the skirt will be printed at skirt " -#~ "distance from the object. Therefore, if brims are active it may intersect " -#~ "with them. To avoid this, increase the skirt distance value.\n" +#~ "Note: With the draft shield active, the skirt will be printed at skirt distance " +#~ "from the object. Therefore, if brims are active it may intersect with them. To " +#~ "avoid this, increase the skirt distance value.\n" #~ msgstr "" -#~ "Um escudo é útil para proteger uma impressão ABS ou ASA de empenamento e " -#~ "de se descolar da mesa de impressão devido à corrrentes de ar. " -#~ "Normalmente, só é necessária com impressoras abertas, ou seja, sem câmara " -#~ "fechada. \n" +#~ "Um escudo é útil para proteger uma impressão ABS ou ASA de empenamento e de se " +#~ "descolar da mesa de impressão devido à corrrentes de ar. Normalmente, só é " +#~ "necessária com impressoras abertas, ou seja, sem câmara fechada. \n" #~ "\n" #~ "Opções:\n" #~ "Ativado = saia tem a mesma altura que o maior objeto a ser impresso.\n" #~ "Limitado = saia tem altura especificada pela altura de saia.\n" #~ "\n" -#~ "Nota: Com o escudo ativo, a saia será impressa na distância de saia do " -#~ "objeto. Portanto, se bordas estiverem ativas, pode se interceptar com " -#~ "eles. Para evitar isso, aumente o valor da distância da saia.\n" +#~ "Nota: Com o escudo ativo, a saia será impressa na distância de saia do objeto. " +#~ "Portanto, se bordas estiverem ativas, pode se interceptar com eles. Para evitar " +#~ "isso, aumente o valor da distância da saia.\n" #~ msgid "Limited" #~ msgstr "Limitada" #~ msgid "" -#~ "Minimum filament extrusion length in mm when printing the skirt. Zero " -#~ "means this feature is disabled.\n" +#~ "Minimum filament extrusion length in mm when printing the skirt. Zero means this " +#~ "feature is disabled.\n" #~ "\n" -#~ "Using a non zero value is useful if the printer is set up to print " -#~ "without a prime line." +#~ "Using a non zero value is useful if the printer is set up to print without a " +#~ "prime line." #~ msgstr "" -#~ "Comprimento mínimo de extrusão de filamento em mm ao imprimir a saia. " -#~ "Zero significa que esta característica está desabilitada.\n" +#~ "Comprimento mínimo de extrusão de filamento em mm ao imprimir a saia. Zero " +#~ "significa que esta característica está desabilitada.\n" #~ "\n" -#~ "Usar um valor não zero é útil se a impressora estiver configurada para " -#~ "imprimir sem uma linha de limpeza." +#~ "Usar um valor não zero é útil se a impressora estiver configurada para imprimir " +#~ "sem uma linha de limpeza." #~ msgid "" -#~ "Adjust this value to prevent short, unclosed walls from being printed, " -#~ "which could increase print time. Higher values remove more and longer " -#~ "walls.\n" +#~ "Adjust this value to prevent short, unclosed walls from being printed, which " +#~ "could increase print time. Higher values remove more and longer walls.\n" #~ "\n" -#~ "NOTE: Bottom and top surfaces will not be affected by this value to " -#~ "prevent visual gaps on the ouside of the model. Adjust 'One wall " -#~ "threshold' in the Advanced settings below to adjust the sensitivity of " -#~ "what is considered a top-surface. 'One wall threshold' is only visible if " -#~ "this setting is set above the default value of 0.5, or if single-wall top " -#~ "surfaces is enabled." +#~ "NOTE: Bottom and top surfaces will not be affected by this value to prevent " +#~ "visual gaps on the ouside of the model. Adjust 'One wall threshold' in the " +#~ "Advanced settings below to adjust the sensitivity of what is considered a top-" +#~ "surface. 'One wall threshold' is only visible if this setting is set above the " +#~ "default value of 0.5, or if single-wall top surfaces is enabled." #~ msgstr "" #~ "Ajuste este valor para evitar que perímetros curtos e não fechados sejam " -#~ "impressos, o que poderia aumentar o tempo de impressão. Valores mais " -#~ "altos removem perímetros mais longos.\n" +#~ "impressos, o que poderia aumentar o tempo de impressão. Valores mais altos " +#~ "removem perímetros mais longos.\n" #~ "\n" -#~ "NOTA: As superfícies inferior e superior não serão afetadas por este " -#~ "valor para evitar lacunas visuais no exterior do modelo. Ajuste o 'Limiar " -#~ "de um perímetro' nas configurações avançadas abaixo para ajustar a " -#~ "sensibilidade do que é considerado uma superfície superior. 'Limiar de um " -#~ "perímetro' só é visível se esta configuração estiver acima do valor " -#~ "padrão de 0,5, ou se superfícies superiores de uma única parede estiverem " -#~ "habilitadas." +#~ "NOTA: As superfícies inferior e superior não serão afetadas por este valor para " +#~ "evitar lacunas visuais no exterior do modelo. Ajuste o 'Limiar de um perímetro' " +#~ "nas configurações avançadas abaixo para ajustar a sensibilidade do que é " +#~ "considerado uma superfície superior. 'Limiar de um perímetro' só é visível se " +#~ "esta configuração estiver acima do valor padrão de 0,5, ou se superfícies " +#~ "superiores de uma única parede estiverem habilitadas." #~ msgid "Don't filter out small internal bridges (beta)" #~ msgstr "Não filtrar pequenas pontes internas (beta)" #~ msgid "" -#~ "This option can help reducing pillowing on top surfaces in heavily " -#~ "slanted or curved models.\n" +#~ "This option can help reducing pillowing on top surfaces in heavily slanted or " +#~ "curved models.\n" #~ "\n" -#~ "By default, small internal bridges are filtered out and the internal " -#~ "solid infill is printed directly over the sparse infill. This works well " -#~ "in most cases, speeding up printing without too much compromise on top " -#~ "surface quality. \n" +#~ "By default, small internal bridges are filtered out and the internal solid infill " +#~ "is printed directly over the sparse infill. This works well in most cases, " +#~ "speeding up printing without too much compromise on top surface quality. \n" #~ "\n" -#~ "However, in heavily slanted or curved models especially where too low " -#~ "sparse infill density is used, this may result in curling of the " -#~ "unsupported solid infill, causing pillowing.\n" +#~ "However, in heavily slanted or curved models especially where too low sparse " +#~ "infill density is used, this may result in curling of the unsupported solid " +#~ "infill, causing pillowing.\n" #~ "\n" -#~ "Enabling this option will print internal bridge layer over slightly " -#~ "unsupported internal solid infill. The options below control the amount " -#~ "of filtering, i.e. the amount of internal bridges created.\n" +#~ "Enabling this option will print internal bridge layer over slightly unsupported " +#~ "internal solid infill. The options below control the amount of filtering, i.e. " +#~ "the amount of internal bridges created.\n" #~ "\n" -#~ "Disabled - Disables this option. This is the default behavior and works " -#~ "well in most cases.\n" +#~ "Disabled - Disables this option. This is the default behavior and works well in " +#~ "most cases.\n" #~ "\n" -#~ "Limited filtering - Creates internal bridges on heavily slanted surfaces, " -#~ "while avoiding creating unnecessary internal bridges. This works well for " -#~ "most difficult models.\n" +#~ "Limited filtering - Creates internal bridges on heavily slanted surfaces, while " +#~ "avoiding creating unnecessary internal bridges. This works well for most " +#~ "difficult models.\n" #~ "\n" -#~ "No filtering - Creates internal bridges on every potential internal " -#~ "overhang. This option is useful for heavily slanted top surface models. " -#~ "However, in most cases it creates too many unnecessary bridges." +#~ "No filtering - Creates internal bridges on every potential internal overhang. " +#~ "This option is useful for heavily slanted top surface models. However, in most " +#~ "cases it creates too many unnecessary bridges." #~ msgstr "" -#~ "Esta opção pode ajudar a reduzir o pillowing nas superfícies superiores " -#~ "em modelos fortemente inclinados ou curvos.\n" +#~ "Esta opção pode ajudar a reduzir o pillowing nas superfícies superiores em " +#~ "modelos fortemente inclinados ou curvos.\n" #~ "\n" -#~ "Por padrão, pequenas pontes internas são filtradas e o preenchimento " -#~ "sólido interno é impresso diretamente sobre o preenchimento não sólido. " -#~ "Isso funciona bem na maioria dos casos, acelerando a impressão sem " -#~ "comprometer muito a qualidade da superfície superior. \n" +#~ "Por padrão, pequenas pontes internas são filtradas e o preenchimento sólido " +#~ "interno é impresso diretamente sobre o preenchimento esparso. Isso funciona bem " +#~ "na maioria dos casos, acelerando a impressão sem comprometer muito a qualidade da " +#~ "superfície superior. \n" #~ "\n" -#~ "No entanto, em modelos fortemente inclinados ou curvos, especialmente " -#~ "quando a densidade de preenchimento não sólido é muito baixa, isso pode " -#~ "resultar em enrolamento do preenchimento sólido não suportado, causando " -#~ "pillowing.\n" +#~ "No entanto, em modelos fortemente inclinados ou curvos, especialmente quando a " +#~ "densidade de preenchimento esparso é muito baixa, isso pode resultar em " +#~ "enrolamento do preenchimento sólido não suportado, causando pillowing.\n" #~ "\n" -#~ "Ativar esta opção imprimirá uma camada de ponte interna sobre o " -#~ "preenchimento sólido interno ligeiramente não suportado. As opções abaixo " -#~ "controlam a quantidade de filtragem, ou seja, a quantidade de pontes " -#~ "internas criadas.\n" +#~ "Ativar esta opção imprimirá uma camada de ponte interna sobre o preenchimento " +#~ "sólido interno ligeiramente não suportado. As opções abaixo controlam a " +#~ "quantidade de filtragem, ou seja, a quantidade de pontes internas criadas.\n" #~ "\n" -#~ "Desativado - Desativa esta opção. Este é o comportamento padrão e " -#~ "funciona bem na maioria dos casos.\n" +#~ "Desativado - Desativa esta opção. Este é o comportamento padrão e funciona bem na " +#~ "maioria dos casos.\n" #~ "\n" -#~ "Filtragem limitada - Cria pontes internas em superfícies fortemente " -#~ "inclinadas, evitando a criação de pontes internas desnecessárias. Isso " -#~ "funciona bem para a maioria dos modelos difíceis.\n" +#~ "Filtragem limitada - Cria pontes internas em superfícies fortemente inclinadas, " +#~ "evitando a criação de pontes internas desnecessárias. Isso funciona bem para a " +#~ "maioria dos modelos difíceis.\n" #~ "\n" -#~ "Sem filtragem - Cria pontes internas em cada inclinação interna " -#~ "potencial. Esta opção é útil para modelos com superfície superior " -#~ "fortemente inclinada. No entanto, na maioria dos casos, cria pontes " -#~ "desnecessárias demais." +#~ "Sem filtragem - Cria pontes internas em cada inclinação interna potencial. Esta " +#~ "opção é útil para modelos com superfície superior fortemente inclinada. No " +#~ "entanto, na maioria dos casos, cria pontes desnecessárias demais." #~ msgid "Shrinkage" #~ msgstr "Retração" #~ msgid "" -#~ "Enables gap fill for the selected surfaces. The minimum gap length that " -#~ "will be filled can be controlled from the filter out tiny gaps option " -#~ "below.\n" +#~ "Enables gap fill for the selected surfaces. The minimum gap length that will be " +#~ "filled can be controlled from the filter out tiny gaps option below.\n" #~ "\n" #~ "Options:\n" -#~ "1. Everywhere: Applies gap fill to top, bottom and internal solid " -#~ "surfaces\n" -#~ "2. Top and Bottom surfaces: Applies gap fill to top and bottom surfaces " -#~ "only\n" +#~ "1. Everywhere: Applies gap fill to top, bottom and internal solid surfaces\n" +#~ "2. Top and Bottom surfaces: Applies gap fill to top and bottom surfaces only\n" #~ "3. Nowhere: Disables gap fill\n" #~ msgstr "" -#~ "Ativa o preenchimento de vão para as superfícies selecionadas. O " -#~ "comprimento mínimo do vão que será preenchida pode ser controlado a " -#~ "partir da opção de filtrar pequenas s abaixo.\n" +#~ "Ativa o preenchimento de vão para as superfícies selecionadas. O comprimento " +#~ "mínimo do vão que será preenchida pode ser controlado a partir da opção de " +#~ "filtrar pequenas s abaixo.\n" #~ "\n" #~ "Opções:\n" #~ "1. Em todos os lugares: Aplica preenchimento de s às superfícies sólidas " @@ -17527,130 +17490,122 @@ msgstr "" #~ "3. Em nenhum lugar: Desativa o preenchimento de s\n" #~ msgid "" -#~ "Decrease this value slightly(for example 0.9) to reduce the amount of " -#~ "material for bridge, to improve sag" +#~ "Decrease this value slightly(for example 0.9) to reduce the amount of material " +#~ "for bridge, to improve sag" #~ msgstr "" -#~ "Diminua ligeiramente este valor (por exemplo, 0.9) para reduzir a " -#~ "quantidade de material para ponte, para melhorar a flacidez" +#~ "Diminua ligeiramente este valor (por exemplo, 0.9) para reduzir a quantidade de " +#~ "material para ponte, para melhorar a flacidez" #~ msgid "" -#~ "This value governs the thickness of the internal bridge layer. This is " -#~ "the first layer over sparse infill. Decrease this value slightly (for " -#~ "example 0.9) to improve surface quality over sparse infill." +#~ "This value governs the thickness of the internal bridge layer. This is the first " +#~ "layer over sparse infill. Decrease this value slightly (for example 0.9) to " +#~ "improve surface quality over sparse infill." #~ msgstr "" -#~ "Este valor governa a espessura da camada interna da ponte. Esta é a " -#~ "primeira camada sobre o preenchimento. Diminua ligeiramente este valor " -#~ "(por exemplo, 0.9) para melhorar a qualidade da superfície sobre o " -#~ "preenchimento esparsamente." +#~ "Este valor governa a espessura da camada interna da ponte. Esta é a primeira " +#~ "camada sobre o preenchimento esparso . Diminua ligeiramente este valor (por " +#~ "exemplo, 0.9) para melhorar a qualidade da superfície sobre o preenchimento " +#~ "esparso." #~ msgid "" -#~ "This factor affects the amount of material for top solid infill. You can " -#~ "decrease it slightly to have smooth surface finish" +#~ "This factor affects the amount of material for top solid infill. You can decrease " +#~ "it slightly to have smooth surface finish" #~ msgstr "" -#~ "Este fator afeta a quantidade de material para o preenchimento sólido " -#~ "superior. Você pode diminuí-lo ligeiramente para ter um acabamento de " -#~ "superfície suave" +#~ "Este fator afeta a quantidade de material para o preenchimento sólido superior. " +#~ "Você pode diminuí-lo ligeiramente para ter um acabamento de superfície suave" #~ msgid "This factor affects the amount of material for bottom solid infill" #~ msgstr "" -#~ "Este fator afeta a quantidade de material para o preenchimento sólido " -#~ "inferior" +#~ "Este fator afeta a quantidade de material para o preenchimento sólido inferior" #~ msgid "" #~ "Enable this option to slow printing down in areas where potential curled " #~ "perimeters may exist" #~ msgstr "" -#~ "Ative esta opção para diminuir a velocidade de impressão em áreas onde " -#~ "podem existir potenciais perímetros curvados (warping)" +#~ "Ative esta opção para diminuir a velocidade de impressão em áreas onde podem " +#~ "existir potenciais perímetros curvados (warping)" #~ msgid "Speed of bridge and completely overhang wall" #~ msgstr "Velocidade de ponte e paredes compostas completamente de overhangs" #~ msgid "" -#~ "Speed of internal bridge. If the value is expressed as a percentage, it " -#~ "will be calculated based on the bridge_speed. Default value is 150%." +#~ "Speed of internal bridge. If the value is expressed as a percentage, it will be " +#~ "calculated based on the bridge_speed. Default value is 150%." #~ msgstr "" -#~ "Velocidade da ponte interna. Se o valor for expresso como porcentagem, " -#~ "será calculado com base na velocidade da ponte. O valor padrão é 150%." +#~ "Velocidade da ponte interna. Se o valor for expresso como porcentagem, será " +#~ "calculado com base na velocidade da ponte. O valor padrão é 150%." #~ msgid "Time to load new filament when switch filament. For statistics only" #~ msgstr "" #~ "Tempo para carregar novo filamento ao trocar de filamento. Apenas para " #~ "estatísticas" -#~ msgid "" -#~ "Time to unload old filament when switch filament. For statistics only" +#~ msgid "Time to unload old filament when switch filament. For statistics only" #~ msgstr "" -#~ "Tempo para descarregar o filamento antigo ao trocar de filamento. Apenas " -#~ "para estatísticas" +#~ "Tempo para descarregar o filamento antigo ao trocar de filamento. Apenas para " +#~ "estatísticas" #~ msgid "" -#~ "Time for the printer firmware (or the Multi Material Unit 2.0) to load a " -#~ "new filament during a tool change (when executing the T code). This time " -#~ "is added to the total print time by the G-code time estimator." +#~ "Time for the printer firmware (or the Multi Material Unit 2.0) to load a new " +#~ "filament during a tool change (when executing the T code). This time is added to " +#~ "the total print time by the G-code time estimator." #~ msgstr "" -#~ "Tempo para o firmware da impressora (ou a Unidade de Material Multi 2.0) " -#~ "carregar um novo filamento durante uma troca de ferramenta (ao executar o " -#~ "código T). Este tempo é adicionado ao tempo total de impressão pelo " -#~ "estimador de tempo do G-code." +#~ "Tempo para o firmware da impressora (ou a Unidade de Material Multi 2.0) carregar " +#~ "um novo filamento durante uma troca de ferramenta (ao executar o código T). Este " +#~ "tempo é adicionado ao tempo total de impressão pelo estimador de tempo do G-code." #~ msgid "" -#~ "Time for the printer firmware (or the Multi Material Unit 2.0) to unload " -#~ "a filament during a tool change (when executing the T code). This time is " -#~ "added to the total print time by the G-code time estimator." +#~ "Time for the printer firmware (or the Multi Material Unit 2.0) to unload a " +#~ "filament during a tool change (when executing the T code). This time is added to " +#~ "the total print time by the G-code time estimator." #~ msgstr "" #~ "Tempo para o firmware da impressora (ou a Unidade de Material Multi 2.0) " -#~ "descarregar um filamento durante uma troca de ferramenta (ao executar o " -#~ "código T). Este tempo é adicionado ao tempo total de impressão pelo " -#~ "estimador de tempo do G-code." +#~ "descarregar um filamento durante uma troca de ferramenta (ao executar o código " +#~ "T). Este tempo é adicionado ao tempo total de impressão pelo estimador de tempo " +#~ "do G-code." #~ msgid "Filter out gaps smaller than the threshold specified" #~ msgstr "Filtrar vazios menores que o limite especificado" #~ msgid "" -#~ "Enable this option for chamber temperature control. An M191 command will " -#~ "be added before \"machine_start_gcode\"\n" +#~ "Enable this option for chamber temperature control. An M191 command will be added " +#~ "before \"machine_start_gcode\"\n" #~ "G-code commands: M141/M191 S(0-255)" #~ msgstr "" -#~ "Ative esta opção para controle de temperatura da câmara. Um comando M191 " -#~ "será adicionado antes de \"machine_start_gcode\"\n" +#~ "Ative esta opção para controle de temperatura da câmara. Um comando M191 será " +#~ "adicionado antes de \"machine_start_gcode\"\n" #~ "Comandos G-code: M141/M191 S(0-255)" #~ msgid "" -#~ "Higher chamber temperature can help suppress or reduce warping and " -#~ "potentially lead to higher interlayer bonding strength for high " -#~ "temperature materials like ABS, ASA, PC, PA and so on.At the same time, " -#~ "the air filtration of ABS and ASA will get worse.While for PLA, PETG, " -#~ "TPU, PVA and other low temperature materials,the actual chamber " -#~ "temperature should not be high to avoid cloggings, so 0 which stands for " -#~ "turning off is highly recommended" +#~ "Higher chamber temperature can help suppress or reduce warping and potentially " +#~ "lead to higher interlayer bonding strength for high temperature materials like " +#~ "ABS, ASA, PC, PA and so on.At the same time, the air filtration of ABS and ASA " +#~ "will get worse.While for PLA, PETG, TPU, PVA and other low temperature materials," +#~ "the actual chamber temperature should not be high to avoid cloggings, so 0 which " +#~ "stands for turning off is highly recommended" #~ msgstr "" #~ "Uma temperatura mais alta na câmara pode ajudar a suprimir ou reduzir o " -#~ "empenamento e potencialmente levar a uma maior resistência de ligação " -#~ "entre camadas para materiais de alta temperatura como ABS, ASA, PC, PA e " -#~ "assim por diante. Ao mesmo tempo, a filtragem de ar de ABS e ASA ficará " -#~ "pior. Para PLA, PETG, TPU, PVA e outros materiais de baixa temperatura, a " -#~ "temperatura real da câmara não deve ser alta para evitar obstruções, " -#~ "portanto, é altamente recomendável usar 0, que significa desligado" +#~ "empenamento e potencialmente levar a uma maior resistência de ligação entre " +#~ "camadas para materiais de alta temperatura como ABS, ASA, PC, PA e assim por " +#~ "diante. Ao mesmo tempo, a filtragem de ar de ABS e ASA ficará pior. Para PLA, " +#~ "PETG, TPU, PVA e outros materiais de baixa temperatura, a temperatura real da " +#~ "câmara não deve ser alta para evitar obstruções, portanto, é altamente " +#~ "recomendável usar 0, que significa desligado" #~ msgid "" -#~ "Different nozzle diameters and different filament diameters is not " -#~ "allowed when prime tower is enabled." +#~ "Different nozzle diameters and different filament diameters is not allowed when " +#~ "prime tower is enabled." #~ msgstr "" #~ "Diâmetros de bico diferentes e diâmetros de filamento diferentes não são " #~ "permitidos quando a Torre Prime está ativa." -#~ msgid "" -#~ "Ooze prevention is currently not supported with the prime tower enabled." +#~ msgid "Ooze prevention is currently not supported with the prime tower enabled." #~ msgstr "" -#~ "A prevenção de vazamento atualmente não é suportada com a Torre Prime " -#~ "ativa." +#~ "A prevenção de vazamento atualmente não é suportada com a Torre Prime ativa." -#~ msgid "" -#~ "Interlocking depth of a segmented region. Zero disables this feature." +#~ msgid "Interlocking depth of a segmented region. Zero disables this feature." #~ msgstr "" -#~ "Profundidade de entrelaçamento de uma região segmentada. Zero desativa " -#~ "essa funcionalidade." +#~ "Profundidade de entrelaçamento de uma região segmentada. Zero desativa essa " +#~ "funcionalidade." #~ msgid "Wipe tower extruder" #~ msgstr "Extrusora da Torre Prime" @@ -17665,21 +17620,21 @@ msgstr "" #~ msgstr "Não associado a nenhum aplicativo" #~ msgid "" -#~ "Associate OrcaSlicer with prusaslicer:// links so that Orca can open " -#~ "models from Printable.com" +#~ "Associate OrcaSlicer with prusaslicer:// links so that Orca can open models from " +#~ "Printable.com" #~ msgstr "" -#~ "Associar OrcaSlicer com links prusaslicer:// para que o Orca possa abrir " -#~ "modelos do Printable.com" +#~ "Associar OrcaSlicer com links prusaslicer:// para que o Orca possa abrir modelos " +#~ "do Printable.com" #~ msgid "Associate bambustudio://" #~ msgstr "Associar bambustudio://" #~ msgid "" -#~ "Associate OrcaSlicer with bambustudio:// links so that Orca can open " -#~ "models from makerworld.com" +#~ "Associate OrcaSlicer with bambustudio:// links so that Orca can open models from " +#~ "makerworld.com" #~ msgstr "" -#~ "Associar OrcaSlicer com bambustudio:// para que o Orca possa abrir " -#~ "modelos de makerworld.com" +#~ "Associar OrcaSlicer com bambustudio:// para que o Orca possa abrir modelos de " +#~ "makerworld.com" #~ msgid "Associate cura://" #~ msgstr "Associar cura://" @@ -17688,15 +17643,15 @@ msgstr "" #~ "Associate OrcaSlicer with cura:// links so that Orca can open models from " #~ "thingiverse.com" #~ msgstr "" -#~ "Associar OrcaSlicer com links cura:// para que o Orca possa abrir modelos " -#~ "do thingiverse.com" +#~ "Associar OrcaSlicer com links cura:// para que o Orca possa abrir modelos do " +#~ "thingiverse.com" #~ msgid "" -#~ "File size exceeds the 100MB upload limit. Please upload your file through " -#~ "the panel." +#~ "File size exceeds the 100MB upload limit. Please upload your file through the " +#~ "panel." #~ msgstr "" -#~ "O tamanho do arquivo excede o limite de envio de 100MB. Por favor, envie " -#~ "seu arquivo através do painel." +#~ "O tamanho do arquivo excede o limite de envio de 100MB. Por favor, envie seu " +#~ "arquivo através do painel." #~ msgid "Please input a valid value (K in 0~0.3)" #~ msgstr "Por favor, insira um valor válido (K entre 0~0.3)" @@ -17715,64 +17670,63 @@ msgstr "" #~ msgstr "Pausa na Impressão" #~ msgid "Printer local connection failed, please try again." -#~ msgstr "Falha na conexão local da impressora, por favor, tente novamente." +#~ msgstr "Falha na conexão local da impressora, por favor tente novamente." #~ msgid "" #~ "Please find the details of Flow Dynamics Calibration from our wiki.\n" #~ "\n" -#~ "Usually the calibration is unnecessary. When you start a single color/" -#~ "material print, with the \"flow dynamics calibration\" option checked in " -#~ "the print start menu, the printer will follow the old way, calibrate the " -#~ "filament before the print; When you start a multi color/material print, " -#~ "the printer will use the default compensation parameter for the filament " -#~ "during every filament switch which will have a good result in most " -#~ "cases.\n" +#~ "Usually the calibration is unnecessary. When you start a single color/material " +#~ "print, with the \"flow dynamics calibration\" option checked in the print start " +#~ "menu, the printer will follow the old way, calibrate the filament before the " +#~ "print; When you start a multi color/material print, the printer will use the " +#~ "default compensation parameter for the filament during every filament switch " +#~ "which will have a good result in most cases.\n" #~ "\n" -#~ "Please note there are a few cases that will make the calibration result " -#~ "not reliable: using a texture plate to do the calibration; the build " -#~ "plate does not have good adhesion (please wash the build plate or apply " -#~ "gluestick!) ...You can find more from our wiki.\n" +#~ "Please note there are a few cases that will make the calibration result not " +#~ "reliable: using a texture plate to do the calibration; the build plate does not " +#~ "have good adhesion (please wash the build plate or apply gluestick!) ...You can " +#~ "find more from our wiki.\n" #~ "\n" -#~ "The calibration results have about 10 percent jitter in our test, which " -#~ "may cause the result not exactly the same in each calibration. We are " -#~ "still investigating the root cause to do improvements with new updates." +#~ "The calibration results have about 10 percent jitter in our test, which may cause " +#~ "the result not exactly the same in each calibration. We are still investigating " +#~ "the root cause to do improvements with new updates." #~ msgstr "" #~ "Encontre os detalhes da Calibração de Dinâmica de Fluxo na nossa wiki.\n" #~ "\n" -#~ "Normalmente, a calibração não é necessária. Quando você inicia uma " -#~ "impressão de cor/material única, com a opção \"calibração de dinâmica de " -#~ "fluxo\" ativada no menu de início da impressão, a impressora seguirá o " -#~ "método antigo, calibrando o filamento antes da impressão; Quando você " -#~ "inicia uma impressão de cor/material múltipla, a impressora usará o " -#~ "parâmetro de compensação padrão para o filamento durante cada troca de " -#~ "filamento, o que resultará em um bom resultado na maioria dos casos.\n" +#~ "Normalmente, a calibração não é necessária. Quando você inicia uma impressão de " +#~ "cor/material única, com a opção \"calibração de dinâmica de fluxo\" ativada no " +#~ "menu de início da impressão, a impressora seguirá o método antigo, calibrando o " +#~ "filamento antes da impressão; Quando você inicia uma impressão de cor/material " +#~ "múltipla, a impressora usará o parâmetro de compensação padrão para o filamento " +#~ "durante cada troca de filamento, o que resultará em um bom resultado na maioria " +#~ "dos casos.\n" #~ "\n" #~ "Por favor, note que existem alguns casos que podem tornar o resultado da " -#~ "calibração não confiável: usar uma mesa texturizada para fazer a " -#~ "calibração; a mesa não tem boa adesão (por favor, lave a mesa ou aplique " -#~ "cola!) ... Você pode encontrar mais informações em nossa wiki.\n" +#~ "calibração não confiável: usar uma mesa texturizada para fazer a calibração; a " +#~ "mesa não tem boa adesão (por favor lave a mesa ou aplique cola!) ... Você pode " +#~ "encontrar mais informações em nossa wiki.\n" #~ "\n" -#~ "Os resultados da calibração têm cerca de 10 por cento de oscilação em " -#~ "nossos testes, o que pode fazer com que o resultado não seja exatamente o " -#~ "mesmo em cada calibração. Ainda estamos investigando a causa raiz para " -#~ "fazer melhorias com novas atualizações." +#~ "Os resultados da calibração têm cerca de 10 por cento de oscilação em nossos " +#~ "testes, o que pode fazer com que o resultado não seja exatamente o mesmo em cada " +#~ "calibração. Ainda estamos investigando a causa raiz para fazer melhorias com " +#~ "novas atualizações." #~ msgid "" -#~ "Only one of the results with the same name will be saved. Are you sure " -#~ "you want to overrides the other results?" +#~ "Only one of the results with the same name will be saved. Are you sure you want " +#~ "to overrides the other results?" #~ msgstr "" -#~ "Apenas um dos resultados com o mesmo nome será salvo. Você tem certeza de " -#~ "que deseja substituir os outros resultados?" +#~ "Apenas um dos resultados com o mesmo nome será salvo. Você tem certeza de que " +#~ "deseja substituir os outros resultados?" #, c-format, boost-format #~ msgid "" -#~ "There is already a historical calibration result with the same name: %s. " -#~ "Only one of the results with the same name is saved. Are you sure you " -#~ "want to overrides the historical result?" +#~ "There is already a historical calibration result with the same name: %s. Only one " +#~ "of the results with the same name is saved. Are you sure you want to overrides " +#~ "the historical result?" #~ msgstr "" -#~ "Já existe um resultado de calibração histórico com o mesmo nome: %s. " -#~ "Apenas um dos resultados com o mesmo nome é salvo. Você tem certeza de " -#~ "que deseja substituir o resultado histórico?" +#~ "Já existe um resultado de calibração histórico com o mesmo nome: %s. Apenas um " +#~ "dos resultados com o mesmo nome é salvo. Você tem certeza de que deseja " +#~ "substituir o resultado histórico?" #~ msgid "Please find the cornor with perfect degree of extrusion" #~ msgstr "Por favor, encontre o canto com o grau perfeito de extrusão" @@ -17781,4 +17735,4 @@ msgstr "" #~ msgstr "X" #~ msgid "Y" -#~ msgstr "A" +#~ msgstr "Y" diff --git a/localization/i18n/ru/OrcaSlicer_ru.po b/localization/i18n/ru/OrcaSlicer_ru.po index 368635fff3..2f26e9bd11 100644 --- a/localization/i18n/ru/OrcaSlicer_ru.po +++ b/localization/i18n/ru/OrcaSlicer_ru.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: OrcaSlicer V2.2.0 Official Release\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-01-04 17:35+0100\n" +"POT-Creation-Date: 2025-02-14 23:42+0800\n" "PO-Revision-Date: 2024-09-25 22:36+0700\n" "Last-Translator: \n" "Language-Team: Andylg \n" @@ -2868,9 +2868,6 @@ msgstr "" msgid "About %s" msgstr "О %s" -msgid "Orca Slicer" -msgstr "" - msgid "OrcaSlicer is based on BambuStudio, PrusaSlicer, and SuperSlicer." msgstr "OrcaSlicer основан на проектах BambuStudio, PrusaSlicer и SuperSlicer." @@ -2922,9 +2919,6 @@ msgstr "Введённое значение должно быть больше % msgid "SN" msgstr "Серийный №" -msgid "Setting AMS slot information while printing is not supported" -msgstr "Изменение информации о слотах АСПП во время печати не поддерживается" - msgid "Factors of Flow Dynamics Calibration" msgstr "Коэф. калиб. динам. потока" @@ -2937,6 +2931,9 @@ msgstr "Коэф. K" msgid "Factor N" msgstr "Коэф. N" +msgid "Setting AMS slot information while printing is not supported" +msgstr "Изменение информации о слотах АСПП во время печати не поддерживается" + msgid "Setting Virtual slot information while printing is not supported" msgstr "" "Настройка информации виртуального слота во время печати не поддерживается" @@ -3062,8 +3059,8 @@ msgstr "Отключить АСПП" msgid "Print with the filament mounted on the back of chassis" msgstr "Печать материалом, установленным на задней части корпуса." -msgid "Current Cabin humidity" -msgstr "Текущая влажность внутри АСПП" +msgid "Current AMS humidity" +msgstr "" msgid "" "Please change the desiccant when it is too wet. The indicator may not " @@ -5216,9 +5213,8 @@ msgstr "" msgid "The printer has been logged out and cannot connect." msgstr "Принтер вышел из системы и не может подключиться." -# ??? видеотрансляция остановлена -msgid "Stopped." -msgstr "Трансляция с камеры остановлена." +msgid "Video Stopped." +msgstr "" # ??? Сбой подключения к локальной сети (не удалось запустить просмотр в реальном времени msgid "LAN Connection Failed (Failed to start liveview)" @@ -5311,10 +5307,6 @@ msgstr "Перезагрузка списка файлов с принтера." msgid "No printers." msgstr "Принтеры отсутствуют." -#, c-format, boost-format -msgid "Connect failed [%d]!" -msgstr "Ошибка подключения [%d]!" - msgid "Loading file list..." msgstr "Загрузка списка файлов..." @@ -5324,9 +5316,6 @@ msgstr "Файлы отсутствуют" msgid "Load failed" msgstr "Ошибка загрузки" -msgid "Initialize failed (Device connection not ready)!" -msgstr "Ошибка инициализации (подключённое устройство не готово)!" - msgid "" "Browsing file in SD card is not supported in current firmware. Please update " "the printer firmware." @@ -5334,8 +5323,10 @@ msgstr "" "На текущей версии прошивки просмотр файлов на SD-карте не поддерживается. " "Пожалуйста, обновите прошивку принтера." -msgid "Initialize failed (Storage unavailable, insert SD card.)!" -msgstr "Ошибка инициализации (хранилище недоступно, вставьте SD-карту)!" +msgid "" +"Please check if the SD card is inserted into the printer.\n" +"If it still cannot be read, you can try formatting the SD card." +msgstr "" msgid "LAN Connection Failed (Failed to view sdcard)" msgstr "Сбой подключения к локальной сети (не удалось просмотреть sd-карту)" @@ -5343,10 +5334,6 @@ msgstr "Сбой подключения к локальной сети (не у msgid "Browsing file in SD card is not supported in LAN Only Mode." msgstr "Просмотр файлов на SD-карте не поддерживается в режиме «Только LAN»." -#, c-format, boost-format -msgid "Initialize failed (%s)!" -msgstr "Ошибка инициализации (%s)!" - #, c-format, boost-format msgid "You are going to delete %u file from printer. Are you sure to continue?" msgid_plural "" @@ -5796,6 +5783,25 @@ msgstr "Последняя версия: " msgid "Not for now" msgstr "Не сейчас" +msgid "Server Exception" +msgstr "" + +msgid "" +"The server is unable to respond. Please click the link below to check the " +"server status." +msgstr "" + +msgid "" +"If the server is in a fault state, you can temporarily use offline printing " +"or local network printing." +msgstr "" + +msgid "How to use LAN only mode" +msgstr "" + +msgid "Don't show this dialog again" +msgstr "" + msgid "3D Mouse disconnected." msgstr "3D-мышь отключена." @@ -6522,6 +6528,10 @@ msgstr "Открыть как проект" msgid "Import geometry only" msgstr "Импортировать только геометрию" +msgid "" +"This option can be changed later in preferences, under 'Load Behaviour'." +msgstr "" + msgid "Only one G-code file can be opened at the same time." msgstr "Одновременно можно открыть только один файл G-кода." @@ -6984,6 +6994,24 @@ msgstr "Сопоставление веб-ссылок с OrcaSlicer" msgid "Associate URLs to OrcaSlicer" msgstr "Ассоциировать URL-адреса с OrcaSlicer" +msgid "Load All" +msgstr "" + +msgid "Ask When Relevant" +msgstr "" + +msgid "Always Ask" +msgstr "" + +msgid "Load Geometry Only" +msgstr "" + +msgid "Load Behaviour" +msgstr "" + +msgid "Should printer/filament/process settings be loaded when opening a .3mf?" +msgstr "" + msgid "Maximum recent projects" msgstr "Максимальное количество недавних проектов" @@ -7567,6 +7595,9 @@ msgstr "Изменение имени принтера" msgid "Bind with Pin Code" msgstr "Привязать с помощью пин-кода" +msgid "Bind with Access Code" +msgstr "" + msgid "Send to Printer SD card" msgstr "Отправить на SD-карту принтера" @@ -7876,6 +7907,75 @@ msgstr "" "Щёлкните правой кнопкой мыши на пустом месте стола и выберите «Добавить " "примитив» -> «Черновая башня таймлапса»." +msgid "" +"A copy of the current system preset will be created, which will be detached " +"from the system preset." +msgstr "" + +msgid "" +"The current custom preset will be detached from the parent system preset." +msgstr "" + +msgid "Modifications to the current profile will be saved." +msgstr "" + +msgid "" +"This action is not revertible.\n" +"Do you want to proceed?" +msgstr "" + +msgid "Detach preset" +msgstr "" + +msgid "This is a default preset." +msgstr "" + +msgid "This is a system preset." +msgstr "" + +msgid "Current preset is inherited from the default preset." +msgstr "" + +msgid "Current preset is inherited from" +msgstr "" + +msgid "It can't be deleted or modified." +msgstr "" + +msgid "" +"Any modifications should be saved as a new preset inherited from this one." +msgstr "" + +msgid "To do that please specify a new name for the preset." +msgstr "" + +msgid "Additional information:" +msgstr "" + +msgid "vendor" +msgstr "" + +msgid "printer model" +msgstr "" + +msgid "default print profile" +msgstr "" + +msgid "default filament profile" +msgstr "" + +msgid "default SLA material profile" +msgstr "" + +msgid "default SLA print profile" +msgstr "" + +msgid "full profile name" +msgstr "" + +msgid "symbolic profile name" +msgstr "" + msgid "Line width" msgstr "Ширина экструзии" @@ -7974,6 +8074,12 @@ msgstr "Скрипты постобработки" msgid "Notes" msgstr "Заметки" +msgid "Dependencies" +msgstr "" + +msgid "Profile dependencies" +msgstr "" + msgid "Frequent" msgstr "Частые" @@ -9123,21 +9229,22 @@ msgstr "Открыть видеотрансляцию" msgid "Confirm and Update Nozzle" msgstr "Подтвердить и обновить сопло" -msgid "LAN Connection Failed (Sending print file)" -msgstr "Сбой подключения к локальной сети (отправка файла на печать)" - -msgid "" -"Step 1, please confirm Orca Slicer and your printer are in the same LAN." +msgid "Connect the printer using IP and access code" msgstr "" -"Шаг 1. Пожалуйста, убедитесь, что Orca Slicer и ваш принтер находятся в " -"одной локальной сети." msgid "" -"Step 2, if the IP and Access Code below are different from the actual values " +"Step 1. Please confirm Orca Slicer and your printer are in the same LAN." +msgstr "" + +msgid "" +"Step 2. If the IP and Access Code below are different from the actual values " "on your printer, please correct them." msgstr "" -"Шаг 2. Если приведенный ниже IP-адрес и код доступа отличаются от " -"фактических значений на вашем принтере, пожалуйста, исправьте их." + +msgid "" +"Step 3. Please obtain the device SN from the printer side; it is usually " +"found in the device information on the printer screen." +msgstr "" msgid "IP" msgstr "IP" @@ -9145,18 +9252,38 @@ msgstr "IP" msgid "Access Code" msgstr "Код доступа" +msgid "Printer model" +msgstr "" + +msgid "Printer name" +msgstr "" + msgid "Where to find your printer's IP and Access Code?" msgstr "Где найти IP-адрес и код доступа к вашему принтеру?" -msgid "Step 3: Ping the IP address to check for packet loss and latency." +msgid "Connect" msgstr "" -"Шаг 3. Пропингуйте IP-адрес, чтобы проверить потерю пакетов и задержку." -msgid "Test" -msgstr "Тест" +msgid "Manual Setup" +msgstr "" -msgid "IP and Access Code Verified! You may close the window" -msgstr "IP-адрес и код доступа подтверждены! Вы можете закрыть окно." +msgid "connecting..." +msgstr "" + +msgid "Failed to connect to printer." +msgstr "" + +msgid "Failed to publish login request." +msgstr "" + +msgid "The printer has already been bound." +msgstr "" + +msgid "The printer mode is incorrect, please switch to LAN Only." +msgstr "" + +msgid "Connecting to printer... The dialog will close later" +msgstr "" msgid "Connection failed, please double check IP and Access Code" msgstr "" @@ -10186,46 +10313,45 @@ msgstr "Верхняя и нижняя поверхности" msgid "Nowhere" msgstr "Нигде" -msgid "Force cooling for overhang and bridge" -msgstr "Принудительный обдув навесов и мостов" +msgid "Force cooling for overhangs and bridges" +msgstr "" msgid "" -"Enable this option to optimize part cooling fan speed for overhang and " -"bridge to get better cooling" +"Enable this option to allow adjustment of the part cooling fan speed for " +"specifically for overhangs, internal and external bridges. Setting the fan " +"speed specifically for these features can improve overall print quality and " +"reduce warping." msgstr "" -"Включите, чтобы оптимизировать скорость вентилятора охлаждения моделей для " -"нависаний и мостов для обеспечения лучшего их охлаждения." -msgid "Fan speed for overhang" -msgstr "Скорость вентилятора на нависаниях" +msgid "Overhangs and external bridges fan speed" +msgstr "" msgid "" -"Force part cooling fan to be this speed when printing bridge or overhang " -"wall which has large overhang degree. Forcing cooling for overhang and " -"bridge can get better quality for these part" +"Use this part cooling fan speed when printing bridges or overhang walls with " +"an overhang threshold that exceeds the value set in the 'Overhangs cooling " +"threshold' parameter above. Increasing the cooling specifically for " +"overhangs and bridges can improve the overall print quality of these " +"features.\n" +"\n" +"Please note, this fan speed is clamped on the lower end by the minimum fan " +"speed threshold set above. It is also adjusted upwards up to the maximum fan " +"speed threshold when the minimum layer time threshold is not met." msgstr "" -"Заставляет вентилятор обдува модели работать на этой скорости при печати " -"мостов или нависающих периметров, имеющих большую степень свеса. " -"Принудительное охлаждение позволяет повысить качество печати этих частей." -msgid "Cooling overhang threshold" -msgstr "Порог включения обдува на нависаниях" +msgid "Overhang cooling activation threshold" +msgstr "" -#, fuzzy, c-format +#, c-format, boost-format msgid "" -"Force cooling fan to be specific speed when overhang degree of printed part " -"exceeds this value. Expressed as percentage which indicates how much width " -"of the line without support from lower layer. 0% means forcing cooling for " -"all outer wall no matter how much overhang degree" +"When the overhang exceeds this specified threshold, force the cooling fan to " +"run at the 'Overhang Fan Speed' set below. This threshold is expressed as a " +"percentage, indicating the portion of each line's width that is unsupported " +"by the layer beneath it. Setting this value to 0% forces the cooling fan to " +"run for all outer walls, regardless of the overhang degree." msgstr "" -"Принудительное включение вентилятора обдува модели на определенную скорость, " -"если степень нависания печатаемой части превышает данное значение. " -"Выражается в процентах и показывает, насколько велика ширина периметра без " -"поддержки со стороны нижнего слоя. 0% означает принудительное охлаждение " -"всего внешнего периметра независимо от степени нависания." -msgid "Bridge infill direction" -msgstr "Угол печати мостов" +msgid "External bridge infill direction" +msgstr "" msgid "" "Bridging angle override. If left to zero, the bridging angle will be " @@ -10236,12 +10362,45 @@ msgstr "" "рассчитывается автоматически. В противном случае заданный угол будет " "использоваться для наружных мостов. Для нулевого угла установите 180°." -msgid "Bridge density" -msgstr "Плотность мостов" - -msgid "Density of external bridges. 100% means solid bridge. Default is 100%." +msgid "Internal bridge infill direction" +msgstr "" + +msgid "" +"Internal bridging angle override. If left to zero, the bridging angle will " +"be calculated automatically. Otherwise the provided angle will be used for " +"internal bridges. Use 180°for zero angle.\n" +"\n" +"It is recommended to leave it at 0 unless there is a specific model need not " +"to." +msgstr "" + +msgid "External bridge density" +msgstr "" + +msgid "" +"Controls the density (spacing) of external bridge lines. 100% means solid " +"bridge. Default is 100%.\n" +"\n" +"Lower density external bridges can help improve reliability as there is more " +"space for air to circulate around the extruded bridge, improving its cooling " +"speed." +msgstr "" + +msgid "Internal bridge density" +msgstr "" + +msgid "" +"Controls the density (spacing) of internal bridge lines. 100% means solid " +"bridge. Default is 100%.\n" +"\n" +" Lower density internal bridges can help reduce top surface pillowing and " +"improve internal bridge reliability as there is more space for air to " +"circulate around the extruded bridge, improving its cooling speed. \n" +"\n" +"This option works particularly well when combined with the second internal " +"bridge over infill option, further improving internal bridging structure " +"before solid infill is extruded." msgstr "" -"Плотность наружных мостов. 100% - сплошной мост. По умолчанию задано 100%." msgid "Bridge flow ratio" msgstr "Коэффициент потока мостов" @@ -10326,14 +10485,8 @@ msgstr "Точные периметры" msgid "" "Improve shell precision by adjusting outer wall spacing. This also improves " -"layer consistency.\n" -"Note: This setting will only take effect if the wall sequence is configured " -"to Inner-Outer" +"layer consistency." msgstr "" -"Повышение точности оболочки за счет регулировки расстояния между внешними " -"периметрами. Это также позволяет уменьшить расслоение слоёв.\n" -"Примечание: параметр будет действовать только в том случае, если " -"последовательность печати периметров задана «Внутренний/внешний»." msgid "Only one wall on top surfaces" msgstr "Только один периметр на верхней поверхности" @@ -10643,12 +10796,24 @@ msgstr "условия для совместимых принтеров" msgid "Compatible machine condition" msgstr "Состояние совместимой машины" +msgid "" +"A boolean expression using the configuration values of an active printer " +"profile. If this expression evaluates to true, this profile is considered " +"compatible with the active printer profile." +msgstr "" + msgid "Compatible process profiles" msgstr "Совместимые профили процессов" msgid "Compatible process profiles condition" msgstr "Состояние совместимых профилей процессов" +msgid "" +"A boolean expression using the configuration values of an active print " +"profile. If this expression evaluates to true, this profile is considered " +"compatible with the active print profile." +msgstr "" + msgid "Print sequence, layer by layer or object by object" msgstr "Выбор последовательности печати моделей - одновременно или по очереди." @@ -10749,8 +10914,8 @@ msgstr "" "Опция, препятствующая печати поддержки под мостами. Мост обычно можно " "печатать без поддержки, если он не очень длинный." -msgid "Thick bridges" -msgstr "Толстые мосты" +msgid "Thick external bridges" +msgstr "" msgid "" "If enabled, bridges are more reliable, can bridge longer distances, but may " @@ -10773,63 +10938,87 @@ msgstr "" "рекомендуется включить эту функцию. Однако при использовании сопел больших " "диаметров рекомендуется отключить эту опцию." -# ??? Фильтрация небольших внутренних мостов -msgid "Filter out small internal bridges (beta)" -msgstr "Отфильтровать небольшие внутренние мосты (beta)" +msgid "Extra bridge layers (beta)" +msgstr "" msgid "" -"This option can help reducing pillowing on top surfaces in heavily slanted " -"or curved models.\n" +"This option enables the generation of an extra bridge layer over internal " +"and/or external bridges.\n" +"\n" +"Extra bridge layers help improve bridge appearance and reliability, as the " +"solid infill is better supported. This is especially useful in fast " +"printers, where the bridge and solid infill speeds vary greatly. The extra " +"bridge layer results in reduced pillowing on top surfaces, as well as " +"reduced separation of the external bridge layer from its surrounding " +"perimeters.\n" +"\n" +"It is generally recommended to set this to at least 'External bridge only', " +"unless specific issues with the sliced model are found.\n" +"\n" +"Options:\n" +"1. Disabled - does not generate second bridge layers. This is the default " +"and is set for compatibility purposes.\n" +"2. External bridge only - generates second bridge layers for external-facing " +"bridges only. Please note that small bridges that are shorter or narrower " +"than the set number of perimeters will be skipped as they would not benefit " +"from a second bridge layer. If generated, the second bridge layer will be " +"extruded parallel to the first bridge layer to reinforce the bridge " +"strength.\n" +"3. Internal bridge only - generates second bridge layers for internal " +"bridges over sparse infill only. Please note that the internal bridges count " +"towards the top shell layer count of your model. The second internal bridge " +"layer will be extruded as close to perpendicular to the first as possible. " +"If multiple regions in the same island, with varying bridge angles are " +"present, the last region of that island will be selected as the angle " +"reference.\n" +"4. Apply to all - generates second bridge layers for both internal and " +"external-facing bridges\n" +msgstr "" + +msgid "Disabled" +msgstr "Отключено" + +msgid "External bridge only" +msgstr "" + +msgid "Internal bridge only" +msgstr "" + +msgid "Apply to all" +msgstr "" + +msgid "Filter out small internal bridges" +msgstr "" + +msgid "" +"This option can help reduce pillowing on top surfaces in heavily slanted or " +"curved models.\n" "\n" "By default, small internal bridges are filtered out and the internal solid " "infill is printed directly over the sparse infill. This works well in most " "cases, speeding up printing without too much compromise on top surface " "quality. \n" "\n" -"However, in heavily slanted or curved models especially where too low sparse " -"infill density is used, this may result in curling of the unsupported solid " -"infill, causing pillowing.\n" +"However, in heavily slanted or curved models, especially where too low a " +"sparse infill density is used, this may result in curling of the unsupported " +"solid infill, causing pillowing.\n" "\n" -"Disabling this option will print internal bridge layer over slightly " -"unsupported internal solid infill. The options below control the amount of " -"filtering, i.e. the amount of internal bridges created.\n" +"Enabling limited filtering or no filtering will print internal bridge layer " +"over slightly unsupported internal solid infill. The options below control " +"the sensitivity of the filtering, i.e. they control where internal bridges " +"are created.\n" "\n" -"Filter - enable this option. This is the default behavior and works well in " -"most cases.\n" +"1. Filter - enables this option. This is the default behavior and works well " +"in most cases.\n" "\n" -"Limited filtering - creates internal bridges on heavily slanted surfaces, " -"while avoiding creating unnecessary internal bridges. This works well for " -"most difficult models.\n" +"2. Limited filtering - creates internal bridges on heavily slanted surfaces " +"while avoiding unnecessary bridges. This works well for most difficult " +"models.\n" "\n" -"No filtering - creates internal bridges on every potential internal " -"overhang. This option is useful for heavily slanted top surface models. " -"However, in most cases it creates too many unnecessary bridges." +"3. No filtering - creates internal bridges on every potential internal " +"overhang. This option is useful for heavily slanted top surface models; " +"however, in most cases, it creates too many unnecessary bridges." msgstr "" -"Эта опция может помочь уменьшить образование эффекта «дырявой подушки» на " -"верхних сильно наклонных поверхностях или изогнутых моделях.\n" -"\n" -"По умолчанию, маленькие внутренние мосты отфильтровываются, а внутреннее " -"сплошное заполнение печатается непосредственно поверх разреженного " -"заполнения. В большинстве случаев это хорошо работает, ускоряя печать без " -"особого ущерба для качества верхней поверхности. Однако, на сильно наклонных " -"поверхностях или изогнутых моделях, особенно при низкой плотности " -"заполнения, это может привести к скручиванию неподдерживаемого сплошного " -"заполнения и образованию эффекта «дырявой подушки».\n" -"\n" -"Отключение позволит печатать слой внутреннего моста над слабо поддерживаемым " -"внутренним сплошным заполнением. Приведённые ниже параметры управляют " -"степенью фильтрации, т.е. количеством создаваемых внутренних мостов.\n" -"\n" -"Фильтрация включена по умолчанию и хорошо работает в большинстве случаев.\n" -"\n" -"Ограниченная фильтрация - создаёт внутренние мосты на сильно наклонных " -"поверхностях, при этом избегая создания ненужных внутренних мостов. Это " -"хорошо работает на большинстве сложных моделях.\n" -"\n" -"Без фильтрации - мосты создаются над каждым потенциально внутреннем " -"нависании. Этот вариант полезен для моделей с сильно наклонной верхней " -"поверхностью. Однако в большинстве случаев этот вариант создаёт слишком " -"много ненужных мостов." msgid "Filter" msgstr "Фильтровать" @@ -11834,6 +12023,9 @@ msgstr "Шаблон разреженного заполнения." msgid "Grid" msgstr "Сетка" +msgid "2D Lattice" +msgstr "" + msgid "Line" msgstr "Линии" @@ -11864,6 +12056,25 @@ msgstr "Молния" msgid "Cross Hatch" msgstr "Перекрестная решётка" +msgid "Quarter Cubic" +msgstr "" + +msgid "Lattice angle 1" +msgstr "" + +msgid "" +"The angle of the first set of 2D lattice elements in the Z direction. Zero " +"is vertical." +msgstr "" + +msgid "Lattice angle 2" +msgstr "" + +msgid "" +"The angle of the second set of 2D lattice elements in the Z direction. Zero " +"is vertical." +msgstr "" + msgid "Sparse infill anchor length" msgstr "Длина привязок разреженного заполнения" @@ -12093,15 +12304,25 @@ msgid "Support interface fan speed" msgstr "Скорость вентилятора на связующем слое" msgid "" -"This fan speed is enforced during all support interfaces, to be able to " -"weaken their bonding with a high fan speed.\n" -"Set to -1 to disable this override.\n" -"Can only be overridden by disable_fan_first_layers." +"This part cooling fan speed is applied when printing support interfaces. " +"Setting this parameter to a higher than regular speed reduces the layer " +"binding strength between supports and the supported part, making them easier " +"to separate.\n" +"Set to -1 to disable it.\n" +"This setting is overridden by disable_fan_first_layers." +msgstr "" + +msgid "Internal bridges fan speed" +msgstr "" + +msgid "" +"The part cooling fan speed used for all internal bridges. Set to -1 to use " +"the overhang fan speed settings instead.\n" +"\n" +"Reducing the internal bridges fan speed, compared to your regular fan speed, " +"can help reduce part warping due to excessive cooling applied over a large " +"surface for a prolonged period of time." msgstr "" -"Скорость, применяемая ко всем связующим слоях, чтобы высокой скоростью " -"вентилятора ослабить сцепление между слоями.\n" -"Установите значение -1, чтобы запретить переопределять этот параметр.\n" -"Может быть отменено только командой disable_fan_first_layers." msgid "" "Randomly jitter while printing the wall, so that the surface has a rough " @@ -12149,6 +12370,59 @@ msgstr "Нечёткая оболочки на первом слое" msgid "Whether to apply fuzzy skin on the first layer" msgstr "Применять ли нечёткую оболочку к первому слою." +msgid "Fuzzy skin noise type" +msgstr "" + +msgid "" +"Noise type to use for fuzzy skin generation.\n" +"Classic: Classic uniform random noise.\n" +"Perlin: Perlin noise, which gives a more consistent texture.\n" +"Billow: Similar to perlin noise, but clumpier.\n" +"Ridged Multifractal: Ridged noise with sharp, jagged features. Creates " +"marble-like textures.\n" +"Voronoi: Divides the surface into voronoi cells, and displaces each one by a " +"random amount. Creates a patchwork texture." +msgstr "" + +msgid "Classic" +msgstr "Классический" + +msgid "Perlin" +msgstr "" + +msgid "Billow" +msgstr "" + +msgid "Ridged Multifractal" +msgstr "" + +msgid "Voronoi" +msgstr "" + +msgid "Fuzzy skin feature size" +msgstr "" + +msgid "" +"The base size of the coherent noise features, in mm. Higher values will " +"result in larger features." +msgstr "" + +msgid "Fuzzy Skin Noise Octaves" +msgstr "" + +msgid "" +"The number of octaves of coherent noise to use. Higher values increase the " +"detail of the noise, but also increase computation time." +msgstr "" + +msgid "Fuzzy skin noise persistence" +msgstr "" + +msgid "" +"The decay rate for higher octaves of the coherent noise. Lower values will " +"result in smoother noise." +msgstr "" + # Или пробелы оставить??? msgid "Filter out tiny gaps" msgstr "Игнорировать небольшие щели" @@ -12655,6 +12929,14 @@ msgstr "Расстояние между линиями разглаживани msgid "The distance between the lines of ironing" msgstr "Расстояние между линиями разглаживания." +msgid "Ironing inset" +msgstr "" + +msgid "" +"The distance to keep from the edges. A value of 0 sets this to half of the " +"nozzle diameter" +msgstr "" + msgid "Ironing speed" msgstr "Скорость разглаживания" @@ -12932,17 +13214,18 @@ msgid "" "Default value of 3 works well for most cases. If your printer is stuttering, " "increase this value to reduce the number of adjustments made\n" "\n" -"Allowed values: 1-5" +"Allowed values: 0.5-5" +msgstr "" + +msgid "Apply only on external features" +msgstr "" + +msgid "" +"Applies extrusion rate smoothing only on external perimeters and overhangs. " +"This can help reduce artefacts due to sharp speed transitions on externally " +"visible overhangs without impacting the print speed of features that will " +"not be visible to the user." msgstr "" -"Меньшее значение приводит к более плавному изменению скорости экструзии. " -"Однако это приводит к значительному увеличению размера G-код файла и " -"увеличению количества инструкций для обработки принтером. \n" -"\n" -"Значение по умолчанию, равное 3, хорошо подходит для большинства случаев. " -"Если принтер печатает с мини-фризами, увеличьте это значение, чтобы " -"уменьшить количество выполняемых изменений.\n" -"\n" -"Допустимые значения: 1–5." msgid "Minimum speed for part cooling fan" msgstr "Минимальная скорость вентилятора обдува модели." @@ -12975,13 +13258,10 @@ msgid "Min print speed" msgstr "Минимальная скорость печати" msgid "" -"The minimum printing speed that the printer will slow down to to attempt to " -"maintain the minimum layer time above, when slow down for better layer " -"cooling is enabled." +"The minimum print speed to which the printer slows down to maintain the " +"minimum layer time defined above when the slowdown for better layer cooling " +"is enabled." msgstr "" -"Минимальная скорость печати, до которой принтер замедлится, чтобы попытаться " -"сохранить минимальное время слоя, указанное выше, если включена опция " -"«Замедлять печать для лучшего охлаждения слоёв»." msgid "Diameter of nozzle" msgstr "Диаметр сопла" @@ -13759,9 +14039,6 @@ msgstr "" "активна кайма, она может пересекаться с юбкой. Чтобы избежать этого, " "увеличьте значение «Расстояние до юбки».\n" -msgid "Disabled" -msgstr "Отключено" - msgid "Enabled" msgstr "Включено" @@ -14075,26 +14352,22 @@ msgid "Enable support generation." msgstr "Включить генерацию поддержки." msgid "" -"normal(auto) and tree(auto) is used to generate support automatically. If " -"normal(manual) or tree(manual) is selected, only support enforcers are " +"Normal (auto) and Tree (auto) is used to generate support automatically. If " +"Normal (manual) or Tree (manual) is selected, only support enforcers are " "generated" msgstr "" -"Тип поддержки «Обычная (авто)» и «Древовидная (авто)» используются для " -"автоматического создания поддержки. Если выбран тип поддержки «Обычная " -"(вручную)» или «Древовидная (вручную)», генерируется только принудительная " -"поддержка." -msgid "normal(auto)" -msgstr "Обычная (авто)" +msgid "Normal (auto)" +msgstr "" -msgid "tree(auto)" -msgstr "Древовидная (авто)" +msgid "Tree (auto)" +msgstr "" -msgid "normal(manual)" -msgstr "Обычная (вручную)" +msgid "Normal (manual)" +msgstr "" -msgid "tree(manual)" -msgstr "Древовидная (вручную)" +msgid "Tree (manual)" +msgstr "" msgid "Support/object xy distance" msgstr "Зазор между моделью и поддержкой по XY" @@ -14330,6 +14603,15 @@ msgstr "" "Для нависаний, угол наклона которых ниже заданного порогового значения, " "будут использоваться поддержки." +msgid "Threshold overlap" +msgstr "" + +msgid "" +"If threshold angle is zero, support will be generated for overhangs whose " +"overlap is below the threshold. The smaller this value is, the steeper the " +"overhang that can be printed without support." +msgstr "" + msgid "Tree support branch angle" msgstr "Угол нависания ветвей древовидной поддержки" @@ -14935,9 +15217,6 @@ msgstr "" "условии, что у вас правильно откалиброван LA/PA). Этот параметр также влияет " "на концентрическое заполнение." -msgid "Classic" -msgstr "Классический" - msgid "Arachne" msgstr "Arachne" @@ -17002,6 +17281,9 @@ msgstr "Физический принтер" msgid "Print Host upload" msgstr "Загрузка на хост печати" +msgid "Test" +msgstr "Тест" + msgid "Could not get a valid Printer Host reference" msgstr "Не удалось получить действительную ссылку на хост принтера" @@ -17883,6 +18165,236 @@ msgstr "" "ABS, повышение температуры подогреваемого стола может снизить эту " "вероятность?" +#~ msgid "Current Cabin humidity" +#~ msgstr "Текущая влажность внутри АСПП" + +# ??? видеотрансляция остановлена +#~ msgid "Stopped." +#~ msgstr "Трансляция с камеры остановлена." + +#, c-format, boost-format +#~ msgid "Connect failed [%d]!" +#~ msgstr "Ошибка подключения [%d]!" + +#~ msgid "Initialize failed (Device connection not ready)!" +#~ msgstr "Ошибка инициализации (подключённое устройство не готово)!" + +#~ msgid "Initialize failed (Storage unavailable, insert SD card.)!" +#~ msgstr "Ошибка инициализации (хранилище недоступно, вставьте SD-карту)!" + +#, c-format, boost-format +#~ msgid "Initialize failed (%s)!" +#~ msgstr "Ошибка инициализации (%s)!" + +#~ msgid "LAN Connection Failed (Sending print file)" +#~ msgstr "Сбой подключения к локальной сети (отправка файла на печать)" + +#~ msgid "" +#~ "Step 1, please confirm Orca Slicer and your printer are in the same LAN." +#~ msgstr "" +#~ "Шаг 1. Пожалуйста, убедитесь, что Orca Slicer и ваш принтер находятся в " +#~ "одной локальной сети." + +#~ msgid "" +#~ "Step 2, if the IP and Access Code below are different from the actual " +#~ "values on your printer, please correct them." +#~ msgstr "" +#~ "Шаг 2. Если приведенный ниже IP-адрес и код доступа отличаются от " +#~ "фактических значений на вашем принтере, пожалуйста, исправьте их." + +#~ msgid "Step 3: Ping the IP address to check for packet loss and latency." +#~ msgstr "" +#~ "Шаг 3. Пропингуйте IP-адрес, чтобы проверить потерю пакетов и задержку." + +#~ msgid "IP and Access Code Verified! You may close the window" +#~ msgstr "IP-адрес и код доступа подтверждены! Вы можете закрыть окно." + +#~ msgid "Force cooling for overhang and bridge" +#~ msgstr "Принудительный обдув навесов и мостов" + +#~ msgid "" +#~ "Enable this option to optimize part cooling fan speed for overhang and " +#~ "bridge to get better cooling" +#~ msgstr "" +#~ "Включите, чтобы оптимизировать скорость вентилятора охлаждения моделей " +#~ "для нависаний и мостов для обеспечения лучшего их охлаждения." + +#~ msgid "Fan speed for overhang" +#~ msgstr "Скорость вентилятора на нависаниях" + +#~ msgid "" +#~ "Force part cooling fan to be this speed when printing bridge or overhang " +#~ "wall which has large overhang degree. Forcing cooling for overhang and " +#~ "bridge can get better quality for these part" +#~ msgstr "" +#~ "Заставляет вентилятор обдува модели работать на этой скорости при печати " +#~ "мостов или нависающих периметров, имеющих большую степень свеса. " +#~ "Принудительное охлаждение позволяет повысить качество печати этих частей." + +#~ msgid "Cooling overhang threshold" +#~ msgstr "Порог включения обдува на нависаниях" + +#, fuzzy, c-format +#~ msgid "" +#~ "Force cooling fan to be specific speed when overhang degree of printed " +#~ "part exceeds this value. Expressed as percentage which indicates how much " +#~ "width of the line without support from lower layer. 0% means forcing " +#~ "cooling for all outer wall no matter how much overhang degree" +#~ msgstr "" +#~ "Принудительное включение вентилятора обдува модели на определенную " +#~ "скорость, если степень нависания печатаемой части превышает данное " +#~ "значение. Выражается в процентах и показывает, насколько велика ширина " +#~ "периметра без поддержки со стороны нижнего слоя. 0% означает " +#~ "принудительное охлаждение всего внешнего периметра независимо от степени " +#~ "нависания." + +#~ msgid "Bridge infill direction" +#~ msgstr "Угол печати мостов" + +#~ msgid "Bridge density" +#~ msgstr "Плотность мостов" + +#~ msgid "" +#~ "Density of external bridges. 100% means solid bridge. Default is 100%." +#~ msgstr "" +#~ "Плотность наружных мостов. 100% - сплошной мост. По умолчанию задано 100%." + +#~ msgid "" +#~ "Improve shell precision by adjusting outer wall spacing. This also " +#~ "improves layer consistency.\n" +#~ "Note: This setting will only take effect if the wall sequence is " +#~ "configured to Inner-Outer" +#~ msgstr "" +#~ "Повышение точности оболочки за счет регулировки расстояния между внешними " +#~ "периметрами. Это также позволяет уменьшить расслоение слоёв.\n" +#~ "Примечание: параметр будет действовать только в том случае, если " +#~ "последовательность печати периметров задана «Внутренний/внешний»." + +#~ msgid "Thick bridges" +#~ msgstr "Толстые мосты" + +# ??? Фильтрация небольших внутренних мостов +#~ msgid "Filter out small internal bridges (beta)" +#~ msgstr "Отфильтровать небольшие внутренние мосты (beta)" + +#~ msgid "" +#~ "This option can help reducing pillowing on top surfaces in heavily " +#~ "slanted or curved models.\n" +#~ "\n" +#~ "By default, small internal bridges are filtered out and the internal " +#~ "solid infill is printed directly over the sparse infill. This works well " +#~ "in most cases, speeding up printing without too much compromise on top " +#~ "surface quality. \n" +#~ "\n" +#~ "However, in heavily slanted or curved models especially where too low " +#~ "sparse infill density is used, this may result in curling of the " +#~ "unsupported solid infill, causing pillowing.\n" +#~ "\n" +#~ "Disabling this option will print internal bridge layer over slightly " +#~ "unsupported internal solid infill. The options below control the amount " +#~ "of filtering, i.e. the amount of internal bridges created.\n" +#~ "\n" +#~ "Filter - enable this option. This is the default behavior and works well " +#~ "in most cases.\n" +#~ "\n" +#~ "Limited filtering - creates internal bridges on heavily slanted surfaces, " +#~ "while avoiding creating unnecessary internal bridges. This works well for " +#~ "most difficult models.\n" +#~ "\n" +#~ "No filtering - creates internal bridges on every potential internal " +#~ "overhang. This option is useful for heavily slanted top surface models. " +#~ "However, in most cases it creates too many unnecessary bridges." +#~ msgstr "" +#~ "Эта опция может помочь уменьшить образование эффекта «дырявой подушки» на " +#~ "верхних сильно наклонных поверхностях или изогнутых моделях.\n" +#~ "\n" +#~ "По умолчанию, маленькие внутренние мосты отфильтровываются, а внутреннее " +#~ "сплошное заполнение печатается непосредственно поверх разреженного " +#~ "заполнения. В большинстве случаев это хорошо работает, ускоряя печать без " +#~ "особого ущерба для качества верхней поверхности. Однако, на сильно " +#~ "наклонных поверхностях или изогнутых моделях, особенно при низкой " +#~ "плотности заполнения, это может привести к скручиванию неподдерживаемого " +#~ "сплошного заполнения и образованию эффекта «дырявой подушки».\n" +#~ "\n" +#~ "Отключение позволит печатать слой внутреннего моста над слабо " +#~ "поддерживаемым внутренним сплошным заполнением. Приведённые ниже " +#~ "параметры управляют степенью фильтрации, т.е. количеством создаваемых " +#~ "внутренних мостов.\n" +#~ "\n" +#~ "Фильтрация включена по умолчанию и хорошо работает в большинстве " +#~ "случаев.\n" +#~ "\n" +#~ "Ограниченная фильтрация - создаёт внутренние мосты на сильно наклонных " +#~ "поверхностях, при этом избегая создания ненужных внутренних мостов. Это " +#~ "хорошо работает на большинстве сложных моделях.\n" +#~ "\n" +#~ "Без фильтрации - мосты создаются над каждым потенциально внутреннем " +#~ "нависании. Этот вариант полезен для моделей с сильно наклонной верхней " +#~ "поверхностью. Однако в большинстве случаев этот вариант создаёт слишком " +#~ "много ненужных мостов." + +#~ msgid "" +#~ "This fan speed is enforced during all support interfaces, to be able to " +#~ "weaken their bonding with a high fan speed.\n" +#~ "Set to -1 to disable this override.\n" +#~ "Can only be overridden by disable_fan_first_layers." +#~ msgstr "" +#~ "Скорость, применяемая ко всем связующим слоях, чтобы высокой скоростью " +#~ "вентилятора ослабить сцепление между слоями.\n" +#~ "Установите значение -1, чтобы запретить переопределять этот параметр.\n" +#~ "Может быть отменено только командой disable_fan_first_layers." + +#~ msgid "" +#~ "A lower value results in smoother extrusion rate transitions. However, " +#~ "this results in a significantly larger gcode file and more instructions " +#~ "for the printer to process. \n" +#~ "\n" +#~ "Default value of 3 works well for most cases. If your printer is " +#~ "stuttering, increase this value to reduce the number of adjustments made\n" +#~ "\n" +#~ "Allowed values: 1-5" +#~ msgstr "" +#~ "Меньшее значение приводит к более плавному изменению скорости экструзии. " +#~ "Однако это приводит к значительному увеличению размера G-код файла и " +#~ "увеличению количества инструкций для обработки принтером. \n" +#~ "\n" +#~ "Значение по умолчанию, равное 3, хорошо подходит для большинства случаев. " +#~ "Если принтер печатает с мини-фризами, увеличьте это значение, чтобы " +#~ "уменьшить количество выполняемых изменений.\n" +#~ "\n" +#~ "Допустимые значения: 1–5." + +#~ msgid "" +#~ "The minimum printing speed that the printer will slow down to to attempt " +#~ "to maintain the minimum layer time above, when slow down for better layer " +#~ "cooling is enabled." +#~ msgstr "" +#~ "Минимальная скорость печати, до которой принтер замедлится, чтобы " +#~ "попытаться сохранить минимальное время слоя, указанное выше, если " +#~ "включена опция «Замедлять печать для лучшего охлаждения слоёв»." + +#~ msgid "" +#~ "normal(auto) and tree(auto) is used to generate support automatically. If " +#~ "normal(manual) or tree(manual) is selected, only support enforcers are " +#~ "generated" +#~ msgstr "" +#~ "Тип поддержки «Обычная (авто)» и «Древовидная (авто)» используются для " +#~ "автоматического создания поддержки. Если выбран тип поддержки «Обычная " +#~ "(вручную)» или «Древовидная (вручную)», генерируется только " +#~ "принудительная поддержка." + +#~ msgid "normal(auto)" +#~ msgstr "Обычная (авто)" + +#~ msgid "tree(auto)" +#~ msgstr "Древовидная (авто)" + +#~ msgid "normal(manual)" +#~ msgstr "Обычная (вручную)" + +#~ msgid "tree(manual)" +#~ msgstr "Древовидная (вручную)" + #~ msgid "ShiftLeft mouse button" #~ msgstr "Левая кнопка мыши" diff --git a/localization/i18n/sv/OrcaSlicer_sv.po b/localization/i18n/sv/OrcaSlicer_sv.po index e46d2a89ac..624e2fc822 100644 --- a/localization/i18n/sv/OrcaSlicer_sv.po +++ b/localization/i18n/sv/OrcaSlicer_sv.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-01-04 17:35+0100\n" +"POT-Creation-Date: 2025-02-14 23:42+0800\n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -2778,9 +2778,6 @@ msgstr "" msgid "About %s" msgstr "Om %s" -msgid "Orca Slicer" -msgstr "" - msgid "OrcaSlicer is based on BambuStudio, PrusaSlicer, and SuperSlicer." msgstr "" @@ -2833,9 +2830,6 @@ msgstr "Inmatningsvärdet ska vara större än %1% och mindre än %2%" msgid "SN" msgstr "SN" -msgid "Setting AMS slot information while printing is not supported" -msgstr "Inställning av AMS-facks information under utskrift stöds inte" - msgid "Factors of Flow Dynamics Calibration" msgstr "Faktorer för kalibrering av flödesdynamik" @@ -2848,6 +2842,9 @@ msgstr "Faktor K" msgid "Factor N" msgstr "Faktor N" +msgid "Setting AMS slot information while printing is not supported" +msgstr "Inställning av AMS-facks information under utskrift stöds inte" + msgid "Setting Virtual slot information while printing is not supported" msgstr "Inställning av information om virtuell plats under utskrift stöds inte" @@ -2969,8 +2966,8 @@ msgstr "Inaktivera AMS" msgid "Print with the filament mounted on the back of chassis" msgstr "Skriv ut med filament på en extern spole" -msgid "Current Cabin humidity" -msgstr "Current Cabin humidity" +msgid "Current AMS humidity" +msgstr "" msgid "" "Please change the desiccant when it is too wet. The indicator may not " @@ -5028,8 +5025,8 @@ msgstr "" msgid "The printer has been logged out and cannot connect." msgstr "Printern har loggats ut och kan inte anslutas." -msgid "Stopped." -msgstr "Avbruten." +msgid "Video Stopped." +msgstr "" msgid "LAN Connection Failed (Failed to start liveview)" msgstr "LAN-anslutning misslyckades (Det gick inte att starta liveview)" @@ -5120,10 +5117,6 @@ msgstr "Reload file list from printer." msgid "No printers." msgstr "Ingen printer." -#, c-format, boost-format -msgid "Connect failed [%d]!" -msgstr "Sammankoppling misslyckades [%d]" - msgid "Loading file list..." msgstr "Laddar fil lista..." @@ -5133,9 +5126,6 @@ msgstr "Inga filer" msgid "Load failed" msgstr "Load failed" -msgid "Initialize failed (Device connection not ready)!" -msgstr "Initieringen misslyckades (Enhets anslutningen är inte klar)!" - msgid "" "Browsing file in SD card is not supported in current firmware. Please update " "the printer firmware." @@ -5143,7 +5133,9 @@ msgstr "" "Browsing file in SD card is not supported in current firmware. Please update " "the printer firmware." -msgid "Initialize failed (Storage unavailable, insert SD card.)!" +msgid "" +"Please check if the SD card is inserted into the printer.\n" +"If it still cannot be read, you can try formatting the SD card." msgstr "" msgid "LAN Connection Failed (Failed to view sdcard)" @@ -5152,10 +5144,6 @@ msgstr "LAN Connection Failed (Failed to view sdcard)" msgid "Browsing file in SD card is not supported in LAN Only Mode." msgstr "Browsing file in SD card is not supported in LAN Only Mode." -#, c-format, boost-format -msgid "Initialize failed (%s)!" -msgstr "Initieringen misslyckades (%s)!" - #, c-format, boost-format msgid "You are going to delete %u file from printer. Are you sure to continue?" msgid_plural "" @@ -5587,6 +5575,25 @@ msgstr "Senaste versionen: " msgid "Not for now" msgstr "Not for now" +msgid "Server Exception" +msgstr "" + +msgid "" +"The server is unable to respond. Please click the link below to check the " +"server status." +msgstr "" + +msgid "" +"If the server is in a fault state, you can temporarily use offline printing " +"or local network printing." +msgstr "" + +msgid "How to use LAN only mode" +msgstr "" + +msgid "Don't show this dialog again" +msgstr "" + msgid "3D Mouse disconnected." msgstr "3D mus bortkopplad." @@ -6296,6 +6303,10 @@ msgstr "Öppna som projekt" msgid "Import geometry only" msgstr "Importera endast geometrin" +msgid "" +"This option can be changed later in preferences, under 'Load Behaviour'." +msgstr "" + msgid "Only one G-code file can be opened at the same time." msgstr "Endast en G-kod kan öppnas åt gången." @@ -6713,6 +6724,24 @@ msgstr "" msgid "Associate URLs to OrcaSlicer" msgstr "" +msgid "Load All" +msgstr "" + +msgid "Ask When Relevant" +msgstr "" + +msgid "Always Ask" +msgstr "" + +msgid "Load Geometry Only" +msgstr "" + +msgid "Load Behaviour" +msgstr "" + +msgid "Should printer/filament/process settings be loaded when opening a .3mf?" +msgstr "" + msgid "Maximum recent projects" msgstr "Maximalt antal nyligen genomförda projekt" @@ -7286,6 +7315,9 @@ msgstr "Ändra enhetens namn" msgid "Bind with Pin Code" msgstr "Bind with Pin Code" +msgid "Bind with Access Code" +msgstr "" + msgid "Send to Printer SD card" msgstr "Skicka till skrivarens MicroSD-kort" @@ -7585,6 +7617,75 @@ msgstr "" "genom att högerklicka på den tomma positionen på byggplattan och välja " "\"Lägg till Primitiv\"->\"Timelapse Wipe Tower\"." +msgid "" +"A copy of the current system preset will be created, which will be detached " +"from the system preset." +msgstr "" + +msgid "" +"The current custom preset will be detached from the parent system preset." +msgstr "" + +msgid "Modifications to the current profile will be saved." +msgstr "" + +msgid "" +"This action is not revertible.\n" +"Do you want to proceed?" +msgstr "" + +msgid "Detach preset" +msgstr "" + +msgid "This is a default preset." +msgstr "" + +msgid "This is a system preset." +msgstr "" + +msgid "Current preset is inherited from the default preset." +msgstr "" + +msgid "Current preset is inherited from" +msgstr "" + +msgid "It can't be deleted or modified." +msgstr "" + +msgid "" +"Any modifications should be saved as a new preset inherited from this one." +msgstr "" + +msgid "To do that please specify a new name for the preset." +msgstr "" + +msgid "Additional information:" +msgstr "" + +msgid "vendor" +msgstr "" + +msgid "printer model" +msgstr "" + +msgid "default print profile" +msgstr "" + +msgid "default filament profile" +msgstr "" + +msgid "default SLA material profile" +msgstr "" + +msgid "default SLA print profile" +msgstr "" + +msgid "full profile name" +msgstr "" + +msgid "symbolic profile name" +msgstr "" + msgid "Line width" msgstr "Linjebredd" @@ -7681,6 +7782,12 @@ msgstr "Skript för efterbehandling" msgid "Notes" msgstr "Notes" +msgid "Dependencies" +msgstr "" + +msgid "Profile dependencies" +msgstr "" + msgid "Frequent" msgstr "Återkommande" @@ -8760,19 +8867,22 @@ msgstr "View Liveview" msgid "Confirm and Update Nozzle" msgstr "Bekräfta och uppdatera nozzeln" -msgid "LAN Connection Failed (Sending print file)" -msgstr "LAN-anslutning misslyckades (skickar utskriftsfil)" +msgid "Connect the printer using IP and access code" +msgstr "" msgid "" -"Step 1, please confirm Orca Slicer and your printer are in the same LAN." -msgstr "Steg 1: Bekräfta att Orca Slicer och din skrivare finns på samma LAN." +"Step 1. Please confirm Orca Slicer and your printer are in the same LAN." +msgstr "" msgid "" -"Step 2, if the IP and Access Code below are different from the actual values " +"Step 2. If the IP and Access Code below are different from the actual values " "on your printer, please correct them." msgstr "" -"Steg 2, om IP- och åtkomst koden nedan skiljer sig från de faktiska värdena " -"på skrivaren, korrigera dem." + +msgid "" +"Step 3. Please obtain the device SN from the printer side; it is usually " +"found in the device information on the printer screen." +msgstr "" msgid "IP" msgstr "IP" @@ -8780,17 +8890,38 @@ msgstr "IP" msgid "Access Code" msgstr "Behörighetskod: " +msgid "Printer model" +msgstr "" + +msgid "Printer name" +msgstr "" + msgid "Where to find your printer's IP and Access Code?" msgstr "Var hittar du skrivarens IP- och åtkomstkod?" -msgid "Step 3: Ping the IP address to check for packet loss and latency." -msgstr "Steg 3: Pinga IP-adressen för att kontrollera paketförlust och latens." +msgid "Connect" +msgstr "" -msgid "Test" -msgstr "Test" +msgid "Manual Setup" +msgstr "" -msgid "IP and Access Code Verified! You may close the window" -msgstr "IP- och åtkomstkoder verifierade! Du kan stänga fönstret" +msgid "connecting..." +msgstr "" + +msgid "Failed to connect to printer." +msgstr "" + +msgid "Failed to publish login request." +msgstr "" + +msgid "The printer has already been bound." +msgstr "" + +msgid "The printer mode is incorrect, please switch to LAN Only." +msgstr "" + +msgid "Connecting to printer... The dialog will close later" +msgstr "" msgid "Connection failed, please double check IP and Access Code" msgstr "Anslutningen misslyckades, kontrollera IP och åtkomstkod" @@ -9704,45 +9835,44 @@ msgstr "" msgid "Nowhere" msgstr "" -msgid "Force cooling for overhang and bridge" -msgstr "Tvinga kylning av överhäng och bridge/bryggor" +msgid "Force cooling for overhangs and bridges" +msgstr "" msgid "" -"Enable this option to optimize part cooling fan speed for overhang and " -"bridge to get better cooling" +"Enable this option to allow adjustment of the part cooling fan speed for " +"specifically for overhangs, internal and external bridges. Setting the fan " +"speed specifically for these features can improve overall print quality and " +"reduce warping." msgstr "" -"Aktivera detta val för att optimisera del kylningens hastighet för överhäng " -"och bridge/bryggor" -msgid "Fan speed for overhang" -msgstr "Fläkthastighet för överhäng" +msgid "Overhangs and external bridges fan speed" +msgstr "" msgid "" -"Force part cooling fan to be this speed when printing bridge or overhang " -"wall which has large overhang degree. Forcing cooling for overhang and " -"bridge can get better quality for these part" +"Use this part cooling fan speed when printing bridges or overhang walls with " +"an overhang threshold that exceeds the value set in the 'Overhangs cooling " +"threshold' parameter above. Increasing the cooling specifically for " +"overhangs and bridges can improve the overall print quality of these " +"features.\n" +"\n" +"Please note, this fan speed is clamped on the lower end by the minimum fan " +"speed threshold set above. It is also adjusted upwards up to the maximum fan " +"speed threshold when the minimum layer time threshold is not met." msgstr "" -"Tvinga del kylningsfläkten att hålla denna hastighet när utskrift av bridge/" -"bryggor eller överhäng som är större än överhängs graderna skrivs ut. " -"Tvingande kylning för överhäng och bridge/bryggor kan ge bättre kvalitet på " -"dessa delar" -msgid "Cooling overhang threshold" -msgstr "Överhängs kylningens tröskel" +msgid "Overhang cooling activation threshold" +msgstr "" -#, c-format +#, c-format, boost-format msgid "" -"Force cooling fan to be specific speed when overhang degree of printed part " -"exceeds this value. Expressed as percentage which indicates how much width " -"of the line without support from lower layer. 0% means forcing cooling for " -"all outer wall no matter how much overhang degree" +"When the overhang exceeds this specified threshold, force the cooling fan to " +"run at the 'Overhang Fan Speed' set below. This threshold is expressed as a " +"percentage, indicating the portion of each line's width that is unsupported " +"by the layer beneath it. Setting this value to 0% forces the cooling fan to " +"run for all outer walls, regardless of the overhang degree." msgstr "" -"Tvinga kylfläkten att vara en specifik hastighet när överhängs graden av " -"objektets del överstiger detta värde. Detta uttrycks som en procentsats som " -"anger hur mycket bredden på linjen utan stöd från det nedre lagret. 0%% " -"betyder tvinga kylning för all yttervägg oavsett överhängs grad." -msgid "Bridge infill direction" +msgid "External bridge infill direction" msgstr "" msgid "" @@ -9754,10 +9884,44 @@ msgstr "" "automatiskt. Annars kommer den medföljande vinkeln att användas för extern " "bridging. Använd 180° för noll vinkel." -msgid "Bridge density" +msgid "Internal bridge infill direction" msgstr "" -msgid "Density of external bridges. 100% means solid bridge. Default is 100%." +msgid "" +"Internal bridging angle override. If left to zero, the bridging angle will " +"be calculated automatically. Otherwise the provided angle will be used for " +"internal bridges. Use 180°for zero angle.\n" +"\n" +"It is recommended to leave it at 0 unless there is a specific model need not " +"to." +msgstr "" + +msgid "External bridge density" +msgstr "" + +msgid "" +"Controls the density (spacing) of external bridge lines. 100% means solid " +"bridge. Default is 100%.\n" +"\n" +"Lower density external bridges can help improve reliability as there is more " +"space for air to circulate around the extruded bridge, improving its cooling " +"speed." +msgstr "" + +msgid "Internal bridge density" +msgstr "" + +msgid "" +"Controls the density (spacing) of internal bridge lines. 100% means solid " +"bridge. Default is 100%.\n" +"\n" +" Lower density internal bridges can help reduce top surface pillowing and " +"improve internal bridge reliability as there is more space for air to " +"circulate around the extruded bridge, improving its cooling speed. \n" +"\n" +"This option works particularly well when combined with the second internal " +"bridge over infill option, further improving internal bridging structure " +"before solid infill is extruded." msgstr "" msgid "Bridge flow ratio" @@ -9810,9 +9974,7 @@ msgstr "" msgid "" "Improve shell precision by adjusting outer wall spacing. This also improves " -"layer consistency.\n" -"Note: This setting will only take effect if the wall sequence is configured " -"to Inner-Outer" +"layer consistency." msgstr "" msgid "Only one wall on top surfaces" @@ -10043,12 +10205,24 @@ msgstr "uppåt kompatibel maskin" msgid "Compatible machine condition" msgstr "Kompatibel maskin status" +msgid "" +"A boolean expression using the configuration values of an active printer " +"profile. If this expression evaluates to true, this profile is considered " +"compatible with the active printer profile." +msgstr "" + msgid "Compatible process profiles" msgstr "Kompatibla process profiler" msgid "Compatible process profiles condition" msgstr "Kompatibla process profilers status" +msgid "" +"A boolean expression using the configuration values of an active print " +"profile. If this expression evaluates to true, this profile is considered " +"compatible with the active print profile." +msgstr "" + msgid "Print sequence, layer by layer or object by object" msgstr "Utskrifts sekvens, lager för lager eller objekt för objekt" @@ -10146,8 +10320,8 @@ msgstr "" "support. Bridges/Bryggor kan vanligtvis skrivas ut utan support om de inte " "är för långa avstånd" -msgid "Thick bridges" -msgstr "Tjocka bridges" +msgid "Thick external bridges" +msgstr "" msgid "" "If enabled, bridges are more reliable, can bridge longer distances, but may " @@ -10167,36 +10341,86 @@ msgid "" "using large nozzles." msgstr "" -msgid "Filter out small internal bridges (beta)" +msgid "Extra bridge layers (beta)" msgstr "" msgid "" -"This option can help reducing pillowing on top surfaces in heavily slanted " -"or curved models.\n" +"This option enables the generation of an extra bridge layer over internal " +"and/or external bridges.\n" +"\n" +"Extra bridge layers help improve bridge appearance and reliability, as the " +"solid infill is better supported. This is especially useful in fast " +"printers, where the bridge and solid infill speeds vary greatly. The extra " +"bridge layer results in reduced pillowing on top surfaces, as well as " +"reduced separation of the external bridge layer from its surrounding " +"perimeters.\n" +"\n" +"It is generally recommended to set this to at least 'External bridge only', " +"unless specific issues with the sliced model are found.\n" +"\n" +"Options:\n" +"1. Disabled - does not generate second bridge layers. This is the default " +"and is set for compatibility purposes.\n" +"2. External bridge only - generates second bridge layers for external-facing " +"bridges only. Please note that small bridges that are shorter or narrower " +"than the set number of perimeters will be skipped as they would not benefit " +"from a second bridge layer. If generated, the second bridge layer will be " +"extruded parallel to the first bridge layer to reinforce the bridge " +"strength.\n" +"3. Internal bridge only - generates second bridge layers for internal " +"bridges over sparse infill only. Please note that the internal bridges count " +"towards the top shell layer count of your model. The second internal bridge " +"layer will be extruded as close to perpendicular to the first as possible. " +"If multiple regions in the same island, with varying bridge angles are " +"present, the last region of that island will be selected as the angle " +"reference.\n" +"4. Apply to all - generates second bridge layers for both internal and " +"external-facing bridges\n" +msgstr "" + +msgid "Disabled" +msgstr "" + +msgid "External bridge only" +msgstr "" + +msgid "Internal bridge only" +msgstr "" + +msgid "Apply to all" +msgstr "" + +msgid "Filter out small internal bridges" +msgstr "" + +msgid "" +"This option can help reduce pillowing on top surfaces in heavily slanted or " +"curved models.\n" "\n" "By default, small internal bridges are filtered out and the internal solid " "infill is printed directly over the sparse infill. This works well in most " "cases, speeding up printing without too much compromise on top surface " "quality. \n" "\n" -"However, in heavily slanted or curved models especially where too low sparse " -"infill density is used, this may result in curling of the unsupported solid " -"infill, causing pillowing.\n" +"However, in heavily slanted or curved models, especially where too low a " +"sparse infill density is used, this may result in curling of the unsupported " +"solid infill, causing pillowing.\n" "\n" -"Disabling this option will print internal bridge layer over slightly " -"unsupported internal solid infill. The options below control the amount of " -"filtering, i.e. the amount of internal bridges created.\n" +"Enabling limited filtering or no filtering will print internal bridge layer " +"over slightly unsupported internal solid infill. The options below control " +"the sensitivity of the filtering, i.e. they control where internal bridges " +"are created.\n" "\n" -"Filter - enable this option. This is the default behavior and works well in " -"most cases.\n" +"1. Filter - enables this option. This is the default behavior and works well " +"in most cases.\n" "\n" -"Limited filtering - creates internal bridges on heavily slanted surfaces, " -"while avoiding creating unnecessary internal bridges. This works well for " -"most difficult models.\n" +"2. Limited filtering - creates internal bridges on heavily slanted surfaces " +"while avoiding unnecessary bridges. This works well for most difficult " +"models.\n" "\n" -"No filtering - creates internal bridges on every potential internal " -"overhang. This option is useful for heavily slanted top surface models. " -"However, in most cases it creates too many unnecessary bridges." +"3. No filtering - creates internal bridges on every potential internal " +"overhang. This option is useful for heavily slanted top surface models; " +"however, in most cases, it creates too many unnecessary bridges." msgstr "" msgid "Filter" @@ -10971,6 +11195,9 @@ msgstr "Linjemönster för sparsam ifyllnad" msgid "Grid" msgstr "Grid" +msgid "2D Lattice" +msgstr "" + msgid "Line" msgstr "Linje" @@ -11001,6 +11228,25 @@ msgstr "Blixt" msgid "Cross Hatch" msgstr "Cross Hatch" +msgid "Quarter Cubic" +msgstr "" + +msgid "Lattice angle 1" +msgstr "" + +msgid "" +"The angle of the first set of 2D lattice elements in the Z direction. Zero " +"is vertical." +msgstr "" + +msgid "Lattice angle 2" +msgstr "" + +msgid "" +"The angle of the second set of 2D lattice elements in the Z direction. Zero " +"is vertical." +msgstr "" + msgid "Sparse infill anchor length" msgstr "" @@ -11184,10 +11430,24 @@ msgid "Support interface fan speed" msgstr "" msgid "" -"This fan speed is enforced during all support interfaces, to be able to " -"weaken their bonding with a high fan speed.\n" -"Set to -1 to disable this override.\n" -"Can only be overridden by disable_fan_first_layers." +"This part cooling fan speed is applied when printing support interfaces. " +"Setting this parameter to a higher than regular speed reduces the layer " +"binding strength between supports and the supported part, making them easier " +"to separate.\n" +"Set to -1 to disable it.\n" +"This setting is overridden by disable_fan_first_layers." +msgstr "" + +msgid "Internal bridges fan speed" +msgstr "" + +msgid "" +"The part cooling fan speed used for all internal bridges. Set to -1 to use " +"the overhang fan speed settings instead.\n" +"\n" +"Reducing the internal bridges fan speed, compared to your regular fan speed, " +"can help reduce part warping due to excessive cooling applied over a large " +"surface for a prolonged period of time." msgstr "" msgid "" @@ -11233,6 +11493,59 @@ msgstr "" msgid "Whether to apply fuzzy skin on the first layer" msgstr "" +msgid "Fuzzy skin noise type" +msgstr "" + +msgid "" +"Noise type to use for fuzzy skin generation.\n" +"Classic: Classic uniform random noise.\n" +"Perlin: Perlin noise, which gives a more consistent texture.\n" +"Billow: Similar to perlin noise, but clumpier.\n" +"Ridged Multifractal: Ridged noise with sharp, jagged features. Creates " +"marble-like textures.\n" +"Voronoi: Divides the surface into voronoi cells, and displaces each one by a " +"random amount. Creates a patchwork texture." +msgstr "" + +msgid "Classic" +msgstr "Klassisk" + +msgid "Perlin" +msgstr "" + +msgid "Billow" +msgstr "" + +msgid "Ridged Multifractal" +msgstr "" + +msgid "Voronoi" +msgstr "" + +msgid "Fuzzy skin feature size" +msgstr "" + +msgid "" +"The base size of the coherent noise features, in mm. Higher values will " +"result in larger features." +msgstr "" + +msgid "Fuzzy Skin Noise Octaves" +msgstr "" + +msgid "" +"The number of octaves of coherent noise to use. Higher values increase the " +"detail of the noise, but also increase computation time." +msgstr "" + +msgid "Fuzzy skin noise persistence" +msgstr "" + +msgid "" +"The decay rate for higher octaves of the coherent noise. Lower values will " +"result in smoother noise." +msgstr "" + msgid "Filter out tiny gaps" msgstr "Filtrera bort små luckor" @@ -11642,6 +11955,14 @@ msgstr "Strykning linjens mellanrum" msgid "The distance between the lines of ironing" msgstr "Avståndet mellan linjerna när strykning utförs" +msgid "Ironing inset" +msgstr "" + +msgid "" +"The distance to keep from the edges. A value of 0 sets this to half of the " +"nozzle diameter" +msgstr "" + msgid "Ironing speed" msgstr "Stryknings hastighet" @@ -11871,7 +12192,17 @@ msgid "" "Default value of 3 works well for most cases. If your printer is stuttering, " "increase this value to reduce the number of adjustments made\n" "\n" -"Allowed values: 1-5" +"Allowed values: 0.5-5" +msgstr "" + +msgid "Apply only on external features" +msgstr "" + +msgid "" +"Applies extrusion rate smoothing only on external perimeters and overhangs. " +"This can help reduce artefacts due to sharp speed transitions on externally " +"visible overhangs without impacting the print speed of features that will " +"not be visible to the user." msgstr "" msgid "Minimum speed for part cooling fan" @@ -11899,9 +12230,9 @@ msgid "Min print speed" msgstr "Min utskrifts hastighet" msgid "" -"The minimum printing speed that the printer will slow down to to attempt to " -"maintain the minimum layer time above, when slow down for better layer " -"cooling is enabled." +"The minimum print speed to which the printer slows down to maintain the " +"minimum layer time defined above when the slowdown for better layer cooling " +"is enabled." msgstr "" msgid "Diameter of nozzle" @@ -12556,9 +12887,6 @@ msgid "" "with them. To avoid this, increase the skirt distance value.\n" msgstr "" -msgid "Disabled" -msgstr "" - msgid "Enabled" msgstr "" @@ -12813,25 +13141,22 @@ msgid "Enable support generation." msgstr "Aktivera support generering." msgid "" -"normal(auto) and tree(auto) is used to generate support automatically. If " -"normal(manual) or tree(manual) is selected, only support enforcers are " +"Normal (auto) and Tree (auto) is used to generate support automatically. If " +"Normal (manual) or Tree (manual) is selected, only support enforcers are " "generated" msgstr "" -"normal(auto) och tree(auto) används för att generera support automatiskt. Om " -"normal(manual) eller tree(manual) väljs, genereras endast support " -"förstärkare." -msgid "normal(auto)" -msgstr "normal (auto)" +msgid "Normal (auto)" +msgstr "" -msgid "tree(auto)" -msgstr "träd(auto)" +msgid "Tree (auto)" +msgstr "" -msgid "normal(manual)" -msgstr "normal (manuell)" +msgid "Normal (manual)" +msgstr "" -msgid "tree(manual)" -msgstr "tree (manuell)" +msgid "Tree (manual)" +msgstr "" msgid "Support/object xy distance" msgstr "Support/objekt xy distans" @@ -13048,6 +13373,15 @@ msgid "" "threshold." msgstr "Support skapas för överhäng vars sluttning är under denna gräns." +msgid "Threshold overlap" +msgstr "" + +msgid "" +"If threshold angle is zero, support will be generated for overhangs whose " +"overlap is below the threshold. The smaller this value is, the steeper the " +"overhang that can be printed without support." +msgstr "" + msgid "Tree support branch angle" msgstr "Tree support grenarnas vinkel" @@ -13527,9 +13861,6 @@ msgstr "" "bredd och för mycket tunna områden används gap-fill. Arachne-motorn " "producerar väggar med variabel extruderings bredd." -msgid "Classic" -msgstr "Klassisk" - msgid "Arachne" msgstr "Arachne" @@ -15451,6 +15782,9 @@ msgstr "Fysisk printer" msgid "Print Host upload" msgstr "Uppladdning utskriftsvärd" +msgid "Test" +msgstr "Test" + msgid "Could not get a valid Printer Host reference" msgstr "Det gick inte att hämta en giltig printer värdreferens" @@ -16268,6 +16602,107 @@ msgstr "" "ABS, kan en lämplig ökning av värmebäddens temperatur minska sannolikheten " "för vridning." +#~ msgid "Current Cabin humidity" +#~ msgstr "Current Cabin humidity" + +#~ msgid "Stopped." +#~ msgstr "Avbruten." + +#, c-format, boost-format +#~ msgid "Connect failed [%d]!" +#~ msgstr "Sammankoppling misslyckades [%d]" + +#~ msgid "Initialize failed (Device connection not ready)!" +#~ msgstr "Initieringen misslyckades (Enhets anslutningen är inte klar)!" + +#, c-format, boost-format +#~ msgid "Initialize failed (%s)!" +#~ msgstr "Initieringen misslyckades (%s)!" + +#~ msgid "LAN Connection Failed (Sending print file)" +#~ msgstr "LAN-anslutning misslyckades (skickar utskriftsfil)" + +#~ msgid "" +#~ "Step 1, please confirm Orca Slicer and your printer are in the same LAN." +#~ msgstr "" +#~ "Steg 1: Bekräfta att Orca Slicer och din skrivare finns på samma LAN." + +#~ msgid "" +#~ "Step 2, if the IP and Access Code below are different from the actual " +#~ "values on your printer, please correct them." +#~ msgstr "" +#~ "Steg 2, om IP- och åtkomst koden nedan skiljer sig från de faktiska " +#~ "värdena på skrivaren, korrigera dem." + +#~ msgid "Step 3: Ping the IP address to check for packet loss and latency." +#~ msgstr "" +#~ "Steg 3: Pinga IP-adressen för att kontrollera paketförlust och latens." + +#~ msgid "IP and Access Code Verified! You may close the window" +#~ msgstr "IP- och åtkomstkoder verifierade! Du kan stänga fönstret" + +#~ msgid "Force cooling for overhang and bridge" +#~ msgstr "Tvinga kylning av överhäng och bridge/bryggor" + +#~ msgid "" +#~ "Enable this option to optimize part cooling fan speed for overhang and " +#~ "bridge to get better cooling" +#~ msgstr "" +#~ "Aktivera detta val för att optimisera del kylningens hastighet för " +#~ "överhäng och bridge/bryggor" + +#~ msgid "Fan speed for overhang" +#~ msgstr "Fläkthastighet för överhäng" + +#~ msgid "" +#~ "Force part cooling fan to be this speed when printing bridge or overhang " +#~ "wall which has large overhang degree. Forcing cooling for overhang and " +#~ "bridge can get better quality for these part" +#~ msgstr "" +#~ "Tvinga del kylningsfläkten att hålla denna hastighet när utskrift av " +#~ "bridge/bryggor eller överhäng som är större än överhängs graderna skrivs " +#~ "ut. Tvingande kylning för överhäng och bridge/bryggor kan ge bättre " +#~ "kvalitet på dessa delar" + +#~ msgid "Cooling overhang threshold" +#~ msgstr "Överhängs kylningens tröskel" + +#, c-format +#~ msgid "" +#~ "Force cooling fan to be specific speed when overhang degree of printed " +#~ "part exceeds this value. Expressed as percentage which indicates how much " +#~ "width of the line without support from lower layer. 0% means forcing " +#~ "cooling for all outer wall no matter how much overhang degree" +#~ msgstr "" +#~ "Tvinga kylfläkten att vara en specifik hastighet när överhängs graden av " +#~ "objektets del överstiger detta värde. Detta uttrycks som en procentsats " +#~ "som anger hur mycket bredden på linjen utan stöd från det nedre lagret. " +#~ "0%% betyder tvinga kylning för all yttervägg oavsett överhängs grad." + +#~ msgid "Thick bridges" +#~ msgstr "Tjocka bridges" + +#~ msgid "" +#~ "normal(auto) and tree(auto) is used to generate support automatically. If " +#~ "normal(manual) or tree(manual) is selected, only support enforcers are " +#~ "generated" +#~ msgstr "" +#~ "normal(auto) och tree(auto) används för att generera support automatiskt. " +#~ "Om normal(manual) eller tree(manual) väljs, genereras endast support " +#~ "förstärkare." + +#~ msgid "normal(auto)" +#~ msgstr "normal (auto)" + +#~ msgid "tree(auto)" +#~ msgstr "träd(auto)" + +#~ msgid "normal(manual)" +#~ msgstr "normal (manuell)" + +#~ msgid "tree(manual)" +#~ msgstr "tree (manuell)" + #~ msgctxt "Verb" #~ msgid "Scale" #~ msgstr "Skala" diff --git a/localization/i18n/tr/OrcaSlicer_tr.po b/localization/i18n/tr/OrcaSlicer_tr.po index 13ee660c24..e81964ad4e 100644 --- a/localization/i18n/tr/OrcaSlicer_tr.po +++ b/localization/i18n/tr/OrcaSlicer_tr.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-01-04 17:35+0100\n" -"PO-Revision-Date: 2024-10-01 22:31+0300\n" +"POT-Creation-Date: 2025-02-14 23:42+0800\n" +"PO-Revision-Date: 2025-02-03 13:32+0300\n" "Last-Translator: GlauTech\n" "Language-Team: \n" "Language: tr\n" @@ -1306,7 +1306,7 @@ msgid "Esc" msgstr "Esc" msgid "Cancel a feature until exit" -msgstr "" +msgstr "İptal et" msgid "Measure" msgstr "Ölçüm" @@ -1314,16 +1314,18 @@ msgstr "Ölçüm" msgid "" "Please confirm explosion ratio = 1,and please select at least one object" msgstr "" +"Lütfen patlama oranının = 1 olduğunu onaylayın ve lütfen en az bir nesne " +"seçin" msgid "Please select at least one object." -msgstr "" +msgstr "Lütfen en az bir nesne seçin." msgid "Edit to scale" msgstr "Ölçeğe göre düzenleyin" msgctxt "Verb" msgid "Scale all" -msgstr "" +msgstr "Tümünü ölçeklendir" msgid "None" msgstr "Hiçbiri" @@ -1338,40 +1340,46 @@ msgid "Selection" msgstr "Seçim" msgid " (Moving)" -msgstr "" +msgstr "(Hareketli)" msgid "" "Select 2 faces on objects and \n" " make objects assemble together." msgstr "" +"Nesnelerde 2 yüz seçin ve \n" +"nesnelerin bir araya gelmesini sağlayın." msgid "" "Select 2 points or circles on objects and \n" " specify distance between them." msgstr "" +"Nesnelerin üzerinde 2 nokta veya daire seçin ve \n" +"aralarındaki mesafeyi belirtin." msgid "Face" -msgstr "" +msgstr "Yüzey" msgid " (Fixed)" -msgstr "" +msgstr "(Sabit)" msgid "Point" -msgstr "" +msgstr "Nokta" msgid "" "Feature 1 has been reset, \n" "feature 2 has been feature 1" msgstr "" +"Özellik 1 sıfırlandı, \n" +"özellik 2, özellik 1 oldu" msgid "Warning:please select Plane's feature." -msgstr "" +msgstr "Uyarı: Lütfen Düzlemin özelliğini seçin." msgid "Warning:please select Point's or Circle's feature." -msgstr "" +msgstr "Uyarı: Lütfen Noktanın veya Çemberin özelliğini seçin." msgid "Warning:please select two different mesh." -msgstr "" +msgstr "Uyarı: Lütfen iki farklı ağ seçin." msgid "Copy to clipboard" msgstr "Panoya kopyala" @@ -1389,25 +1397,25 @@ msgid "Distance XYZ" msgstr "Uzaklık XYZ" msgid "Parallel" -msgstr "" +msgstr "Paralel" msgid "Center coincidence" -msgstr "" +msgstr "Merkezi" msgid "Featue 1" -msgstr "" +msgstr "Özellik 1" msgid "Reverse rotation" -msgstr "" +msgstr "Ters dönüş" msgid "Rotate around center:" -msgstr "" +msgstr "Merkezin etrafında döndürün:" msgid "Parallel distance:" -msgstr "" +msgstr "Paralel mesafe:" msgid "Flip by Face 2" -msgstr "" +msgstr "Yüzey 2’ye Göre Çevir" msgid "Ctrl+" msgstr "Ctrl+" @@ -2036,7 +2044,7 @@ msgid "Center" msgstr "Merkez" msgid "Drop" -msgstr "" +msgstr "Düşür" msgid "Edit Process Settings" msgstr "İşlem ayarlarını düzenle" @@ -2821,9 +2829,6 @@ msgstr "" msgid "About %s" msgstr "Hakkında %s" -msgid "Orca Slicer" -msgstr "" - msgid "OrcaSlicer is based on BambuStudio, PrusaSlicer, and SuperSlicer." msgstr "OrcaSlicer, BambuStudio, PrusaSlicer ve SuperSlicer'ı temel alır." @@ -2879,9 +2884,6 @@ msgstr "Giriş değeri %1%'den büyük ve %2%'den küçük olmalıdır" msgid "SN" msgstr "SN" -msgid "Setting AMS slot information while printing is not supported" -msgstr "Yazdırma sırasında AMS yuvası bilgilerinin ayarlanması desteklenmiyor" - msgid "Factors of Flow Dynamics Calibration" msgstr "Akış Dinamiği Kalibrasyonunun Faktörleri" @@ -2894,6 +2896,9 @@ msgstr "Faktör K" msgid "Factor N" msgstr "Faktör N" +msgid "Setting AMS slot information while printing is not supported" +msgstr "Yazdırma sırasında AMS yuvası bilgilerinin ayarlanması desteklenmiyor" + msgid "Setting Virtual slot information while printing is not supported" msgstr "Yazdırma desteklenmediğinde Sanal yuva bilgilerinin ayarlanması" @@ -3014,8 +3019,8 @@ msgstr "AMS'yi devre dışı bırak" msgid "Print with the filament mounted on the back of chassis" msgstr "Şasinin arkasına monte edilmiş filamentle yazdırma" -msgid "Current Cabin humidity" -msgstr "Mevcut Kabin nemi" +msgid "Current AMS humidity" +msgstr "" msgid "" "Please change the desiccant when it is too wet. The indicator may not " @@ -5107,8 +5112,8 @@ msgstr "" msgid "The printer has been logged out and cannot connect." msgstr "Yazıcıda oturum kapatıldı ve bağlanamıyor." -msgid "Stopped." -msgstr "Durdu." +msgid "Video Stopped." +msgstr "" msgid "LAN Connection Failed (Failed to start liveview)" msgstr "LAN Bağlantısı Başarısız Oldu (Canlı izleme başlatılamadı)" @@ -5199,10 +5204,6 @@ msgstr "Dosya listesini yazıcıdan yeniden yükleyin." msgid "No printers." msgstr "Yazıcı yok." -#, c-format, boost-format -msgid "Connect failed [%d]!" -msgstr "Bağlantı başarısız oldu [%d]!" - msgid "Loading file list..." msgstr "Dosya listesi yükleniyor..." @@ -5212,9 +5213,6 @@ msgstr "Dosya yok" msgid "Load failed" msgstr "Yükleme başarısız" -msgid "Initialize failed (Device connection not ready)!" -msgstr "Başlatma başarısız oldu (Cihaz bağlantısı hazır değil)!" - msgid "" "Browsing file in SD card is not supported in current firmware. Please update " "the printer firmware." @@ -5222,9 +5220,10 @@ msgstr "" "SD karttaki dosyaya göz atmak mevcut donanım yazılımında desteklenmiyor. " "Lütfen yazıcının ürün yazılımını güncelleyin." -msgid "Initialize failed (Storage unavailable, insert SD card.)!" +msgid "" +"Please check if the SD card is inserted into the printer.\n" +"If it still cannot be read, you can try formatting the SD card." msgstr "" -"Başlatma başarısız oldu (Depolama alanı kullanılamıyor, SD kartı takın.)!" msgid "LAN Connection Failed (Failed to view sdcard)" msgstr "LAN Bağlantısı Başarısız (SD kart görüntülenemedi)" @@ -5232,10 +5231,6 @@ msgstr "LAN Bağlantısı Başarısız (SD kart görüntülenemedi)" msgid "Browsing file in SD card is not supported in LAN Only Mode." msgstr "SD karttaki dosyaya göz atmak Yalnızca LAN Modunda desteklenmez." -#, c-format, boost-format -msgid "Initialize failed (%s)!" -msgstr "Başlatma başarısız oldu (%s)!" - #, c-format, boost-format msgid "You are going to delete %u file from printer. Are you sure to continue?" msgid_plural "" @@ -5677,6 +5672,25 @@ msgstr "En son sürüm:" msgid "Not for now" msgstr "Şu an için değil" +msgid "Server Exception" +msgstr "" + +msgid "" +"The server is unable to respond. Please click the link below to check the " +"server status." +msgstr "" + +msgid "" +"If the server is in a fault state, you can temporarily use offline printing " +"or local network printing." +msgstr "" + +msgid "How to use LAN only mode" +msgstr "" + +msgid "Don't show this dialog again" +msgstr "" + msgid "3D Mouse disconnected." msgstr "3D Fare bağlantısı kesildi." @@ -6398,6 +6412,10 @@ msgstr "Proje olarak aç" msgid "Import geometry only" msgstr "Yalnızca geometriyi içe aktar" +msgid "" +"This option can be changed later in preferences, under 'Load Behaviour'." +msgstr "" + msgid "Only one G-code file can be opened at the same time." msgstr "Aynı anda yalnızca bir G kodu dosyası açılabilir." @@ -6844,6 +6862,24 @@ msgstr "Web bağlantılarını OrcaSlicer ile ilişkilendirin" msgid "Associate URLs to OrcaSlicer" msgstr "URL’leri OrcaSlicer ile ilişkilendirin" +msgid "Load All" +msgstr "" + +msgid "Ask When Relevant" +msgstr "" + +msgid "Always Ask" +msgstr "" + +msgid "Load Geometry Only" +msgstr "" + +msgid "Load Behaviour" +msgstr "" + +msgid "Should printer/filament/process settings be loaded when opening a .3mf?" +msgstr "" + msgid "Maximum recent projects" msgstr "Maksimum yeni proje" @@ -7413,6 +7449,9 @@ msgstr "Cihaz adını değiştir" msgid "Bind with Pin Code" msgstr "Pin Koduyla Bağla" +msgid "Bind with Access Code" +msgstr "" + msgid "Send to Printer SD card" msgstr "Yazıcı SD kartına gönder" @@ -7718,6 +7757,81 @@ msgstr "" "Yapı plakasının boş konumuna sağ tıklayın ve \"İlkel Ekle\" -> \"Timelapse " "Temizleme Kulesi\" seçeneğini seçin." +msgid "" +"A copy of the current system preset will be created, which will be detached " +"from the system preset." +msgstr "" +"Mevcut sistem ön ayarının, sistem ön ayarından ayrılacak bir kopyası " +"oluşturulacaktır." + +msgid "" +"The current custom preset will be detached from the parent system preset." +msgstr "Geçerli özel ön ayar, ana sistem ön ayarından ayrılacaktır." + +msgid "Modifications to the current profile will be saved." +msgstr "Geçerli profilde yapılan değişiklikler kaydedilecektir." + +msgid "" +"This action is not revertible.\n" +"Do you want to proceed?" +msgstr "" +"Bu eylem geri alınamaz.\n" +"Devam etmek istiyor musunuz?" + +msgid "Detach preset" +msgstr "Ön ayarı ayır" + +msgid "This is a default preset." +msgstr "Bu varsayılan bir ön ayardır." + +msgid "This is a system preset." +msgstr "Bu bir sistem ön ayarıdır." + +msgid "Current preset is inherited from the default preset." +msgstr "Geçerli ön ayar, varsayılan ön ayardan devralınır." + +msgid "Current preset is inherited from" +msgstr "Geçerli ön ayar şu kaynaktan devralındı:" + +msgid "It can't be deleted or modified." +msgstr "Silinemez veya değiştirilemez." + +msgid "" +"Any modifications should be saved as a new preset inherited from this one." +msgstr "" +"Herhangi bir değişiklik, bundan devralınan yeni bir ön ayar olarak " +"kaydedilmelidir." + +msgid "To do that please specify a new name for the preset." +msgstr "Bunu yapmak için lütfen ön ayar için yeni bir ad belirtin." + +msgid "Additional information:" +msgstr "Ek Bilgiler:" + +msgid "vendor" +msgstr "satıcı" + +msgid "printer model" +msgstr "yazıcı modeli" + +msgid "default print profile" +msgstr "varsayılan yazdırma profili" + +msgid "default filament profile" +msgstr "varsayılan filament profili" + +msgid "default SLA material profile" +msgstr "varsayılan SLA malzeme profili" + +msgid "default SLA print profile" +msgstr "varsayılan SLA yazdırma profili" + +msgid "full profile name" +msgstr "tam profil adı" + +msgid "symbolic profile name" +msgstr "sembolik profil adı" + msgid "Line width" msgstr "Katman Genişliği" @@ -7814,6 +7928,12 @@ msgstr "İşlem Sonrası Komut Dosyaları" msgid "Notes" msgstr "Notlar" +msgid "Dependencies" +msgstr "Bağımlılıklar" + +msgid "Profile dependencies" +msgstr "Profil bağımlılıkları" + msgid "Frequent" msgstr "Sıklıkla" @@ -7870,12 +7990,14 @@ msgid "Nozzle temperature when printing" msgstr "Yazdırma sırasında nozul sıcaklığı" msgid "Cool Plate (SuperTack)" -msgstr "" +msgstr "Soğuk Plaka (SuperTack)" msgid "" "Bed temperature when cool plate is installed. Value 0 means the filament " "does not support to print on the Cool Plate SuperTack" msgstr "" +"Soğutma plakası takıldığında yatak sıcaklığı. 0 değeri, filamentin Soğuk " +"Plaka SuperTack üzerine yazdırmayı desteklemediği anlamına gelir" msgid "Cool Plate" msgstr "Soğuk Plaka" @@ -8106,7 +8228,7 @@ msgid "Layer height limits" msgstr "Katman Yüksekliği Sınırları" msgid "Z-Hop" -msgstr "" +msgstr "Z Sıçraması" msgid "Retraction when switching material" msgstr "Malzemeyi Değiştirirken Geri Çekme" @@ -8928,20 +9050,22 @@ msgstr "Canlı Önizlemeyi Görüntüle" msgid "Confirm and Update Nozzle" msgstr "Nozulu Onaylayın ve Güncelleyin" -msgid "LAN Connection Failed (Sending print file)" -msgstr "LAN Bağlantısı Başarısız (Yazdırma dosyası gönderiliyor)" - -msgid "" -"Step 1, please confirm Orca Slicer and your printer are in the same LAN." +msgid "Connect the printer using IP and access code" msgstr "" -"Adım 1, lütfen Orca Slicer ile yazıcınızın aynı LAN'da olduğunu doğrulayın." msgid "" -"Step 2, if the IP and Access Code below are different from the actual values " +"Step 1. Please confirm Orca Slicer and your printer are in the same LAN." +msgstr "" + +msgid "" +"Step 2. If the IP and Access Code below are different from the actual values " "on your printer, please correct them." msgstr "" -"Adım 2, aşağıdaki IP ve Erişim Kodu yazıcınızdaki gerçek değerlerden " -"farklıysa lütfen bunları düzeltin." + +msgid "" +"Step 3. Please obtain the device SN from the printer side; it is usually " +"found in the device information on the printer screen." +msgstr "" msgid "IP" msgstr "IP" @@ -8949,18 +9073,38 @@ msgstr "IP" msgid "Access Code" msgstr "Giriş kodu" +msgid "Printer model" +msgstr "" + +msgid "Printer name" +msgstr "" + msgid "Where to find your printer's IP and Access Code?" msgstr "Yazıcınızın IP'sini ve Erişim Kodunu nerede bulabilirsiniz?" -msgid "Step 3: Ping the IP address to check for packet loss and latency." +msgid "Connect" msgstr "" -"Adım 3: Paket kaybını ve gecikmeyi kontrol etmek için IP adresine ping atın." -msgid "Test" -msgstr "Test" +msgid "Manual Setup" +msgstr "" -msgid "IP and Access Code Verified! You may close the window" -msgstr "IP ve Erişim Kodu Doğrulandı! Pencereyi kapatabilirsin" +msgid "connecting..." +msgstr "" + +msgid "Failed to connect to printer." +msgstr "" + +msgid "Failed to publish login request." +msgstr "" + +msgid "The printer has already been bound." +msgstr "" + +msgid "The printer mode is incorrect, please switch to LAN Only." +msgstr "" + +msgid "Connecting to printer... The dialog will close later" +msgstr "" msgid "Connection failed, please double check IP and Access Code" msgstr "" @@ -9815,6 +9959,8 @@ msgid "" "Bed temperature of the initial layer. Value 0 means the filament does not " "support to print on the Cool Plate SuperTack" msgstr "" +"İlk katmanın yatak sıcaklığı. 0 değeri, filamentin Soğuk Plaka SuperTack " +"üzerine yazdırmayı desteklemediği anlamına gelir" msgid "" "Bed temperature of the initial layer. Value 0 means the filament does not " @@ -9976,45 +10122,45 @@ msgstr "Üst ve alt yüzeyler" msgid "Nowhere" msgstr "Hiçbir yerde" -msgid "Force cooling for overhang and bridge" -msgstr "Çıkıntı ve köprüler için soğutmayı zorla" +msgid "Force cooling for overhangs and bridges" +msgstr "" msgid "" -"Enable this option to optimize part cooling fan speed for overhang and " -"bridge to get better cooling" +"Enable this option to allow adjustment of the part cooling fan speed for " +"specifically for overhangs, internal and external bridges. Setting the fan " +"speed specifically for these features can improve overall print quality and " +"reduce warping." msgstr "" -"Daha iyi soğutma elde etmek amacıyla çıkıntı ve köprü için parça soğutma " -"fanı hızını optimize etmek amacıyla bu seçeneği etkinleştirin" -msgid "Fan speed for overhang" -msgstr "Çıkıntılar için fan hızı" +msgid "Overhangs and external bridges fan speed" +msgstr "" msgid "" -"Force part cooling fan to be this speed when printing bridge or overhang " -"wall which has large overhang degree. Forcing cooling for overhang and " -"bridge can get better quality for these part" +"Use this part cooling fan speed when printing bridges or overhang walls with " +"an overhang threshold that exceeds the value set in the 'Overhangs cooling " +"threshold' parameter above. Increasing the cooling specifically for " +"overhangs and bridges can improve the overall print quality of these " +"features.\n" +"\n" +"Please note, this fan speed is clamped on the lower end by the minimum fan " +"speed threshold set above. It is also adjusted upwards up to the maximum fan " +"speed threshold when the minimum layer time threshold is not met." msgstr "" -"Çıkıntı derecesi büyük olan köprü veya çıkıntılı duvara baskı yaparken parça " -"soğutma fanını bu hızda olmaya zorlayın. Çıkıntı ve köprü için soğutmayı " -"zorlamak, bu parça için daha iyi kalite elde edilmesini sağlayabilir" -msgid "Cooling overhang threshold" -msgstr "Çıkıntı soğutması" +msgid "Overhang cooling activation threshold" +msgstr "" -#, c-format +#, c-format, boost-format msgid "" -"Force cooling fan to be specific speed when overhang degree of printed part " -"exceeds this value. Expressed as percentage which indicates how much width " -"of the line without support from lower layer. 0% means forcing cooling for " -"all outer wall no matter how much overhang degree" +"When the overhang exceeds this specified threshold, force the cooling fan to " +"run at the 'Overhang Fan Speed' set below. This threshold is expressed as a " +"percentage, indicating the portion of each line's width that is unsupported " +"by the layer beneath it. Setting this value to 0% forces the cooling fan to " +"run for all outer walls, regardless of the overhang degree." msgstr "" -"Yazdırılan parçanın çıkıntı derecesi bu değeri aştığında soğutma fanını " -"belirli bir hıza zorlar. Alt katmandan destek almadan çizginin ne kadar " -"genişlediğini gösteren yüzde olarak ifade edilir. 0, çıkıntı derecesi ne " -"kadar olursa olsun tüm dış duvar için soğutmayı zorlamak anlamına gelir" -msgid "Bridge infill direction" -msgstr "Köprü dolgu açısı" +msgid "External bridge infill direction" +msgstr "" msgid "" "Bridging angle override. If left to zero, the bridging angle will be " @@ -10025,13 +10171,45 @@ msgstr "" "olarak hesaplanacaktır. Aksi halde dış köprüler için sağlanan açı " "kullanılacaktır. Sıfır açı için 180°'yi kullanın." -msgid "Bridge density" -msgstr "Köprü dolgu yoğunluğu" - -msgid "Density of external bridges. 100% means solid bridge. Default is 100%." +msgid "Internal bridge infill direction" +msgstr "" + +msgid "" +"Internal bridging angle override. If left to zero, the bridging angle will " +"be calculated automatically. Otherwise the provided angle will be used for " +"internal bridges. Use 180°for zero angle.\n" +"\n" +"It is recommended to leave it at 0 unless there is a specific model need not " +"to." +msgstr "" + +msgid "External bridge density" +msgstr "" + +msgid "" +"Controls the density (spacing) of external bridge lines. 100% means solid " +"bridge. Default is 100%.\n" +"\n" +"Lower density external bridges can help improve reliability as there is more " +"space for air to circulate around the extruded bridge, improving its cooling " +"speed." +msgstr "" + +msgid "Internal bridge density" +msgstr "" + +msgid "" +"Controls the density (spacing) of internal bridge lines. 100% means solid " +"bridge. Default is 100%.\n" +"\n" +" Lower density internal bridges can help reduce top surface pillowing and " +"improve internal bridge reliability as there is more space for air to " +"circulate around the extruded bridge, improving its cooling speed. \n" +"\n" +"This option works particularly well when combined with the second internal " +"bridge over infill option, further improving internal bridging structure " +"before solid infill is extruded." msgstr "" -"Dış köprülerin yoğunluğu. %100 sağlam köprü anlamına gelir. Varsayılan " -"%100'dür." msgid "Bridge flow ratio" msgstr "Köprülerde akış oranı" @@ -10103,14 +10281,10 @@ msgstr "Hassas duvar" msgid "" "Improve shell precision by adjusting outer wall spacing. This also improves " -"layer consistency.\n" -"Note: This setting will only take effect if the wall sequence is configured " -"to Inner-Outer" +"layer consistency." msgstr "" "Dış duvar aralığını ayarlayarak kabuk hassasiyetini artırın. Bu aynı zamanda " -"katman tutarlılığını da artırır.\n" -"Not: Bu ayar yalnızca duvar sırası İç-Dış olarak yapılandırıldığında etkili " -"olacaktır." +"katman tutarlılığını da artırır." msgid "Only one wall on top surfaces" msgstr "Üst yüzeylerde yalnızca bir duvar" @@ -10253,6 +10427,11 @@ msgid "" "When Detect overhang wall is not enabled, this option is ignored and " "reversal happens on every even layers regardless." msgstr "" +"Ters çevirmenin faydalı sayılması için çıkıntının mm sayısı olması gerekir. " +"Çevre genişliğinin %’si olabilir.\n" +"0 değeri ne olursa olsun her çift katmanda ters çevirmeyi mümkün kılar.\n" +"Çıkıntı duvarını algıla etkinleştirilmediğinde, bu seçenek göz ardı edilir " +"ve geri dönüş, her çift katmanda gerçekleşir." msgid "Classic mode" msgstr "Klasik mod" @@ -10407,7 +10586,13 @@ msgid "upward compatible machine" msgstr "yukarı doğru uyumlu makine" msgid "Compatible machine condition" -msgstr "Uyumlu yazıcıdurumu" +msgstr "Uyumlu makine durumu" + +msgid "" +"A boolean expression using the configuration values of an active printer " +"profile. If this expression evaluates to true, this profile is considered " +"compatible with the active printer profile." +msgstr "" msgid "Compatible process profiles" msgstr "Uyumlu süreç profilleri" @@ -10415,6 +10600,12 @@ msgstr "Uyumlu süreç profilleri" msgid "Compatible process profiles condition" msgstr "Uyumlu süreç profillerinin durumu" +msgid "" +"A boolean expression using the configuration values of an active print " +"profile. If this expression evaluates to true, this profile is considered " +"compatible with the active print profile." +msgstr "" + msgid "Print sequence, layer by layer or object by object" msgstr "Yazdırma sırası, katman katman veya nesne nesne" @@ -10512,8 +10703,8 @@ msgstr "" "Desteği çok büyük yapan tüm köprü alanını desteklemeyin. Bridge genellikle " "çok uzun olmasa da destek olmadan doğrudan yazdırılabilir" -msgid "Thick bridges" -msgstr "Kalın köprüler" +msgid "Thick external bridges" +msgstr "" msgid "" "If enabled, bridges are more reliable, can bridge longer distances, but may " @@ -10537,61 +10728,87 @@ msgstr "" "açık olması önerilir. Ancak büyük nozul uçları kullanıyorsanız kapatmayı " "düşünün." -msgid "Filter out small internal bridges (beta)" -msgstr "Küçük iç köprüleri filtreleyin (beta)" +msgid "Extra bridge layers (beta)" +msgstr "" msgid "" -"This option can help reducing pillowing on top surfaces in heavily slanted " -"or curved models.\n" +"This option enables the generation of an extra bridge layer over internal " +"and/or external bridges.\n" +"\n" +"Extra bridge layers help improve bridge appearance and reliability, as the " +"solid infill is better supported. This is especially useful in fast " +"printers, where the bridge and solid infill speeds vary greatly. The extra " +"bridge layer results in reduced pillowing on top surfaces, as well as " +"reduced separation of the external bridge layer from its surrounding " +"perimeters.\n" +"\n" +"It is generally recommended to set this to at least 'External bridge only', " +"unless specific issues with the sliced model are found.\n" +"\n" +"Options:\n" +"1. Disabled - does not generate second bridge layers. This is the default " +"and is set for compatibility purposes.\n" +"2. External bridge only - generates second bridge layers for external-facing " +"bridges only. Please note that small bridges that are shorter or narrower " +"than the set number of perimeters will be skipped as they would not benefit " +"from a second bridge layer. If generated, the second bridge layer will be " +"extruded parallel to the first bridge layer to reinforce the bridge " +"strength.\n" +"3. Internal bridge only - generates second bridge layers for internal " +"bridges over sparse infill only. Please note that the internal bridges count " +"towards the top shell layer count of your model. The second internal bridge " +"layer will be extruded as close to perpendicular to the first as possible. " +"If multiple regions in the same island, with varying bridge angles are " +"present, the last region of that island will be selected as the angle " +"reference.\n" +"4. Apply to all - generates second bridge layers for both internal and " +"external-facing bridges\n" +msgstr "" + +msgid "Disabled" +msgstr "Devredışı" + +msgid "External bridge only" +msgstr "" + +msgid "Internal bridge only" +msgstr "" + +msgid "Apply to all" +msgstr "" + +msgid "Filter out small internal bridges" +msgstr "" + +msgid "" +"This option can help reduce pillowing on top surfaces in heavily slanted or " +"curved models.\n" "\n" "By default, small internal bridges are filtered out and the internal solid " "infill is printed directly over the sparse infill. This works well in most " "cases, speeding up printing without too much compromise on top surface " "quality. \n" "\n" -"However, in heavily slanted or curved models especially where too low sparse " -"infill density is used, this may result in curling of the unsupported solid " -"infill, causing pillowing.\n" +"However, in heavily slanted or curved models, especially where too low a " +"sparse infill density is used, this may result in curling of the unsupported " +"solid infill, causing pillowing.\n" "\n" -"Disabling this option will print internal bridge layer over slightly " -"unsupported internal solid infill. The options below control the amount of " -"filtering, i.e. the amount of internal bridges created.\n" +"Enabling limited filtering or no filtering will print internal bridge layer " +"over slightly unsupported internal solid infill. The options below control " +"the sensitivity of the filtering, i.e. they control where internal bridges " +"are created.\n" "\n" -"Filter - enable this option. This is the default behavior and works well in " -"most cases.\n" +"1. Filter - enables this option. This is the default behavior and works well " +"in most cases.\n" "\n" -"Limited filtering - creates internal bridges on heavily slanted surfaces, " -"while avoiding creating unnecessary internal bridges. This works well for " -"most difficult models.\n" +"2. Limited filtering - creates internal bridges on heavily slanted surfaces " +"while avoiding unnecessary bridges. This works well for most difficult " +"models.\n" "\n" -"No filtering - creates internal bridges on every potential internal " -"overhang. This option is useful for heavily slanted top surface models. " -"However, in most cases it creates too many unnecessary bridges." +"3. No filtering - creates internal bridges on every potential internal " +"overhang. This option is useful for heavily slanted top surface models; " +"however, in most cases, it creates too many unnecessary bridges." msgstr "" -"Bu seçenek, aşırı eğimli veya kavisli modellerde üst yüzeylerdeki " -"yastıklamanın azaltılmasına yardımcı olabilir.\n" -"\n" -"Varsayılan olarak küçük iç köprüler filtrelenir ve iç katı dolgu doğrudan " -"seyrek dolgunun üzerine yazdırılır. Bu çoğu durumda işe yarar ve üstün yüzey " -"kalitesinden çok fazla ödün vermeden yazdırmayı hızlandırır. \n" -"\n" -"Bununla birlikte, özellikle çok düşük seyrek dolgu yoğunluğunun kullanıldığı " -"aşırı eğimli veya kavisli modellerde, bu durum desteklenmeyen katı dolgunun " -"kıvrılmasına ve yastıklanmaya neden olmasına neden olabilir.\n" -"\n" -"Bu seçeneğin devre dışı bırakılması, iç köprü katmanını hafif desteklenmeyen " -"dahili katı dolgu üzerine yazdıracaktır. Aşağıdaki seçenekler filtreleme " -"miktarını, yani oluşturulan dahili köprülerin miktarını kontrol eder.\n" -"\n" -"Filtreli - bu seçeneği etkinleştirin. Bu varsayılan davranıştır ve çoğu " -"durumda iyi çalışır.\n" -"\n" -"Sınırlı filtreli - aşırı eğimli yüzeylerde iç köprüler oluştururken gereksiz " -"iç köprülerin oluşmasını da önler. Bu, çoğu zor modelde işe yarar.\n" -"\n" -"Filtresiz - her potansiyel dahili çıkıntıda dahili köprüler oluşturur. Bu " -"seçenek aşırı eğimli üst yüzey modelleri için kullanışlıdır. Ancak çoğu " -"durumda çok fazla gereksiz köprü oluşturur." msgid "Filter" msgstr "Filtreli" @@ -11567,6 +11784,9 @@ msgstr "İç dolgu deseni" msgid "Grid" msgstr "Kafes" +msgid "2D Lattice" +msgstr "" + msgid "Line" msgstr "Çizgi" @@ -11597,6 +11817,25 @@ msgstr "Yıldırım" msgid "Cross Hatch" msgstr "Çapraz çizgi" +msgid "Quarter Cubic" +msgstr "" + +msgid "Lattice angle 1" +msgstr "" + +msgid "" +"The angle of the first set of 2D lattice elements in the Z direction. Zero " +"is vertical." +msgstr "" + +msgid "Lattice angle 2" +msgstr "" + +msgid "" +"The angle of the second set of 2D lattice elements in the Z direction. Zero " +"is vertical." +msgstr "" + msgid "Sparse infill anchor length" msgstr "Dolgu uzunluğu" @@ -11813,15 +12052,25 @@ msgid "Support interface fan speed" msgstr "Destekler için fan hızı" msgid "" -"This fan speed is enforced during all support interfaces, to be able to " -"weaken their bonding with a high fan speed.\n" -"Set to -1 to disable this override.\n" -"Can only be overridden by disable_fan_first_layers." +"This part cooling fan speed is applied when printing support interfaces. " +"Setting this parameter to a higher than regular speed reduces the layer " +"binding strength between supports and the supported part, making them easier " +"to separate.\n" +"Set to -1 to disable it.\n" +"This setting is overridden by disable_fan_first_layers." +msgstr "" + +msgid "Internal bridges fan speed" +msgstr "" + +msgid "" +"The part cooling fan speed used for all internal bridges. Set to -1 to use " +"the overhang fan speed settings instead.\n" +"\n" +"Reducing the internal bridges fan speed, compared to your regular fan speed, " +"can help reduce part warping due to excessive cooling applied over a large " +"surface for a prolonged period of time." msgstr "" -"Bu fan hızı, yüksek fan hızıyla bağlarını zayıflatabilmek için tüm destek " -"arayüzlerinde uygulanır.\n" -"Bu geçersiz kılmayı devre dışı bırakmak için -1'e ayarlayın.\n" -"Yalnızca devre dışı_fan_first_layers tarafından geçersiz kılınabilir." msgid "" "Randomly jitter while printing the wall, so that the surface has a rough " @@ -11864,6 +12113,59 @@ msgstr "Bulanık cildi ilk katmana uygulayın" msgid "Whether to apply fuzzy skin on the first layer" msgstr "İlk katmana bulanık cilt uygulanıp uygulanmayacağı" +msgid "Fuzzy skin noise type" +msgstr "" + +msgid "" +"Noise type to use for fuzzy skin generation.\n" +"Classic: Classic uniform random noise.\n" +"Perlin: Perlin noise, which gives a more consistent texture.\n" +"Billow: Similar to perlin noise, but clumpier.\n" +"Ridged Multifractal: Ridged noise with sharp, jagged features. Creates " +"marble-like textures.\n" +"Voronoi: Divides the surface into voronoi cells, and displaces each one by a " +"random amount. Creates a patchwork texture." +msgstr "" + +msgid "Classic" +msgstr "Klasik" + +msgid "Perlin" +msgstr "" + +msgid "Billow" +msgstr "" + +msgid "Ridged Multifractal" +msgstr "" + +msgid "Voronoi" +msgstr "" + +msgid "Fuzzy skin feature size" +msgstr "" + +msgid "" +"The base size of the coherent noise features, in mm. Higher values will " +"result in larger features." +msgstr "" + +msgid "Fuzzy Skin Noise Octaves" +msgstr "" + +msgid "" +"The number of octaves of coherent noise to use. Higher values increase the " +"detail of the noise, but also increase computation time." +msgstr "" + +msgid "Fuzzy skin noise persistence" +msgstr "" + +msgid "" +"The decay rate for higher octaves of the coherent noise. Lower values will " +"result in smoother noise." +msgstr "" + msgid "Filter out tiny gaps" msgstr "Küçük boşlukları filtrele" @@ -12352,6 +12654,14 @@ msgstr "Ütüleme çizgi aralığı" msgid "The distance between the lines of ironing" msgstr "Ütü çizgileri arasındaki mesafe" +msgid "Ironing inset" +msgstr "" + +msgid "" +"The distance to keep from the edges. A value of 0 sets this to half of the " +"nozzle diameter" +msgstr "" + msgid "Ironing speed" msgstr "Ütüleme hızı" @@ -12618,16 +12928,18 @@ msgid "" "Default value of 3 works well for most cases. If your printer is stuttering, " "increase this value to reduce the number of adjustments made\n" "\n" -"Allowed values: 1-5" +"Allowed values: 0.5-5" +msgstr "" + +msgid "Apply only on external features" +msgstr "" + +msgid "" +"Applies extrusion rate smoothing only on external perimeters and overhangs. " +"This can help reduce artefacts due to sharp speed transitions on externally " +"visible overhangs without impacting the print speed of features that will " +"not be visible to the user." msgstr "" -"Daha düşük bir değer, daha yumuşak ekstrüzyon hızı geçişleriyle sonuçlanır. " -"Ancak bu, önemli ölçüde daha büyük bir gcode dosyası ve yazıcının işlemesi " -"için daha fazla talimatla sonuçlanır. \n" -"\n" -"Varsayılan değer olan 3 çoğu durumda iyi çalışır. Yazıcınız takılıyorsa, " -"yapılan ayarlamaların sayısını azaltmak için bu değeri artırın\n" -"\n" -"İzin verilen değerler: 1-5" msgid "Minimum speed for part cooling fan" msgstr "Parça soğutma fanı için minimum hız" @@ -12660,13 +12972,10 @@ msgid "Min print speed" msgstr "Minimum baskı hızı" msgid "" -"The minimum printing speed that the printer will slow down to to attempt to " -"maintain the minimum layer time above, when slow down for better layer " -"cooling is enabled." +"The minimum print speed to which the printer slows down to maintain the " +"minimum layer time defined above when the slowdown for better layer cooling " +"is enabled." msgstr "" -"Daha iyi katman soğutması için yavaşlama etkinleştirildiğinde, yukarıdaki " -"minimum katman süresini korumaya çalışmak için yazıcının yavaşlayacağı " -"minimum yazdırma hızı." msgid "Diameter of nozzle" msgstr "Nozul çapı" @@ -12960,12 +13269,14 @@ msgid "Force a retraction when changes layer" msgstr "Katmanı değiştirdiğinde geri çekilmeyi zorla" msgid "Retract on top layer" -msgstr "" +msgstr "Üst katmanda geri çek" msgid "" "Force a retraction on top layer. Disabling could prevent clog on very slow " "patterns with small movements, like Hilbert curve" msgstr "" +"Üst katmanda geri çekilmeye zorlayın. Devre dışı bırakmak, Hilbert eğrisi " +"gibi küçük hareketlerin olduğu çok yavaş modellerde tıkanmayı önleyebilir" msgid "Retraction Length" msgstr "Geri Çekme Uzunluğu" @@ -13002,7 +13313,7 @@ msgstr "" "uzunluğu" msgid "Z-hop height" -msgstr "" +msgstr "Z-Sıçrama yüksekliği" msgid "" "Whenever the retraction is done, the nozzle is lifted a little to create " @@ -13036,7 +13347,7 @@ msgstr "" "altında olduğunda" msgid "Z-hop type" -msgstr "" +msgstr "Z-Sıçrama türü" msgid "Z hop type" msgstr "Z sıçraması türü" @@ -13424,9 +13735,6 @@ msgstr "" "nedenle eğer kenarlar aktifse onlarla kesişebilir. Bunu önlemek için etek " "mesafesi değerini artırın.\n" -msgid "Disabled" -msgstr "Devredışı" - msgid "Enabled" msgstr "Etkin" @@ -13719,25 +14027,22 @@ msgid "Enable support generation." msgstr "Destek oluşturmayı etkinleştir." msgid "" -"normal(auto) and tree(auto) is used to generate support automatically. If " -"normal(manual) or tree(manual) is selected, only support enforcers are " +"Normal (auto) and Tree (auto) is used to generate support automatically. If " +"Normal (manual) or Tree (manual) is selected, only support enforcers are " "generated" msgstr "" -"Desteği otomatik olarak oluşturmak için normal(otomatik) ve ağaç(otomatik) " -"kullanılır. Normal(manuel) veya ağaç(manuel) seçilirse yalnızca destek " -"uygulayıcıları oluşturulur" -msgid "normal(auto)" -msgstr "Normal(Otomatik)" +msgid "Normal (auto)" +msgstr "" -msgid "tree(auto)" -msgstr "Ağaç(Otomatik)" +msgid "Tree (auto)" +msgstr "" -msgid "normal(manual)" -msgstr "Normal(Manuel)" +msgid "Normal (manual)" +msgstr "" -msgid "tree(manual)" -msgstr "Ağaç(Manuel)" +msgid "Tree (manual)" +msgstr "" msgid "Support/object xy distance" msgstr "Destek/nesne xy mesafesi" @@ -13961,6 +14266,15 @@ msgid "" "threshold." msgstr "Eğim açısı eşiğin altında olan çıkmalar için destek oluşturulacaktır." +msgid "Threshold overlap" +msgstr "" + +msgid "" +"If threshold angle is zero, support will be generated for overhangs whose " +"overlap is below the threshold. The smaller this value is, the steeper the " +"overhang that can be printed without support." +msgstr "" + msgid "Tree support branch angle" msgstr "Ağaç desteği dal açısı" @@ -14550,9 +14864,6 @@ msgstr "" "ve çok ince alanlar için boşluk doldurma kullanılır. Arachne motoru değişken " "ekstrüzyon genişliğine sahip duvarlar üretir" -msgid "Classic" -msgstr "Klasik" - msgid "Arachne" msgstr "Arachne" @@ -16575,6 +16886,9 @@ msgstr "Fiziksel Yazıcı" msgid "Print Host upload" msgstr "Yazıcı Bağlantı Ayarları" +msgid "Test" +msgstr "Test" + msgid "Could not get a valid Printer Host reference" msgstr "Geçerli bir Yazıcı Ana Bilgisayarı referansı alınamadı" @@ -17461,6 +17775,240 @@ msgstr "" "sıcaklığının uygun şekilde arttırılmasının bükülme olasılığını " "azaltabileceğini biliyor muydunuz?" +#~ msgid "Orca Slicer" +#~ msgstr "Orca Slicer" + +#~ msgid "Current Cabin humidity" +#~ msgstr "Mevcut Kabin nemi" + +#~ msgid "Stopped." +#~ msgstr "Durdu." + +#, c-format, boost-format +#~ msgid "Connect failed [%d]!" +#~ msgstr "Bağlantı başarısız oldu [%d]!" + +#~ msgid "Initialize failed (Device connection not ready)!" +#~ msgstr "Başlatma başarısız oldu (Cihaz bağlantısı hazır değil)!" + +#~ msgid "Initialize failed (Storage unavailable, insert SD card.)!" +#~ msgstr "" +#~ "Başlatma başarısız oldu (Depolama alanı kullanılamıyor, SD kartı takın.)!" + +#, c-format, boost-format +#~ msgid "Initialize failed (%s)!" +#~ msgstr "Başlatma başarısız oldu (%s)!" + +#~ msgid "LAN Connection Failed (Sending print file)" +#~ msgstr "LAN Bağlantısı Başarısız (Yazdırma dosyası gönderiliyor)" + +#~ msgid "" +#~ "Step 1, please confirm Orca Slicer and your printer are in the same LAN." +#~ msgstr "" +#~ "Adım 1, lütfen Orca Slicer ile yazıcınızın aynı LAN'da olduğunu " +#~ "doğrulayın." + +#~ msgid "" +#~ "Step 2, if the IP and Access Code below are different from the actual " +#~ "values on your printer, please correct them." +#~ msgstr "" +#~ "Adım 2, aşağıdaki IP ve Erişim Kodu yazıcınızdaki gerçek değerlerden " +#~ "farklıysa lütfen bunları düzeltin." + +#~ msgid "Step 3: Ping the IP address to check for packet loss and latency." +#~ msgstr "" +#~ "Adım 3: Paket kaybını ve gecikmeyi kontrol etmek için IP adresine ping " +#~ "atın." + +#~ msgid "IP and Access Code Verified! You may close the window" +#~ msgstr "IP ve Erişim Kodu Doğrulandı! Pencereyi kapatabilirsin" + +#~ msgid "Force cooling for overhang and bridge" +#~ msgstr "Çıkıntı ve köprüler için soğutmayı zorla" + +#~ msgid "" +#~ "Enable this option to optimize part cooling fan speed for overhang and " +#~ "bridge to get better cooling" +#~ msgstr "" +#~ "Daha iyi soğutma elde etmek amacıyla çıkıntı ve köprü için parça soğutma " +#~ "fanı hızını optimize etmek amacıyla bu seçeneği etkinleştirin" + +#~ msgid "Fan speed for overhang" +#~ msgstr "Çıkıntılar için fan hızı" + +#~ msgid "" +#~ "Force part cooling fan to be this speed when printing bridge or overhang " +#~ "wall which has large overhang degree. Forcing cooling for overhang and " +#~ "bridge can get better quality for these part" +#~ msgstr "" +#~ "Çıkıntı derecesi büyük olan köprü veya çıkıntılı duvara baskı yaparken " +#~ "parça soğutma fanını bu hızda olmaya zorlayın. Çıkıntı ve köprü için " +#~ "soğutmayı zorlamak, bu parça için daha iyi kalite elde edilmesini " +#~ "sağlayabilir" + +#~ msgid "Cooling overhang threshold" +#~ msgstr "Çıkıntı soğutması" + +#, c-format +#~ msgid "" +#~ "Force cooling fan to be specific speed when overhang degree of printed " +#~ "part exceeds this value. Expressed as percentage which indicates how much " +#~ "width of the line without support from lower layer. 0% means forcing " +#~ "cooling for all outer wall no matter how much overhang degree" +#~ msgstr "" +#~ "Yazdırılan parçanın çıkıntı derecesi bu değeri aştığında soğutma fanını " +#~ "belirli bir hıza zorlar. Alt katmandan destek almadan çizginin ne kadar " +#~ "genişlediğini gösteren yüzde olarak ifade edilir. 0, çıkıntı derecesi ne " +#~ "kadar olursa olsun tüm dış duvar için soğutmayı zorlamak anlamına gelir" + +#~ msgid "Bridge infill direction" +#~ msgstr "Köprü dolgu açısı" + +#~ msgid "Bridge density" +#~ msgstr "Köprü dolgu yoğunluğu" + +#~ msgid "" +#~ "Density of external bridges. 100% means solid bridge. Default is 100%." +#~ msgstr "" +#~ "Dış köprülerin yoğunluğu. %100 sağlam köprü anlamına gelir. Varsayılan " +#~ "%100'dür." + +#~ msgid "" +#~ "Improve shell precision by adjusting outer wall spacing. This also " +#~ "improves layer consistency.\n" +#~ "Note: This setting will only take effect if the wall sequence is " +#~ "configured to Inner-Outer" +#~ msgstr "" +#~ "Dış duvar aralığını ayarlayarak kabuk hassasiyetini artırın. Bu aynı " +#~ "zamanda katman tutarlılığını da artırır.\n" +#~ "Not: Bu ayar yalnızca duvar sırası İç-Dış olarak yapılandırıldığında " +#~ "etkili olacaktır." + +#~ msgid "Thick bridges" +#~ msgstr "Kalın köprüler" + +#~ msgid "Filter out small internal bridges (beta)" +#~ msgstr "Küçük iç köprüleri filtreleyin (beta)" + +#~ msgid "" +#~ "This option can help reducing pillowing on top surfaces in heavily " +#~ "slanted or curved models.\n" +#~ "\n" +#~ "By default, small internal bridges are filtered out and the internal " +#~ "solid infill is printed directly over the sparse infill. This works well " +#~ "in most cases, speeding up printing without too much compromise on top " +#~ "surface quality. \n" +#~ "\n" +#~ "However, in heavily slanted or curved models especially where too low " +#~ "sparse infill density is used, this may result in curling of the " +#~ "unsupported solid infill, causing pillowing.\n" +#~ "\n" +#~ "Disabling this option will print internal bridge layer over slightly " +#~ "unsupported internal solid infill. The options below control the amount " +#~ "of filtering, i.e. the amount of internal bridges created.\n" +#~ "\n" +#~ "Filter - enable this option. This is the default behavior and works well " +#~ "in most cases.\n" +#~ "\n" +#~ "Limited filtering - creates internal bridges on heavily slanted surfaces, " +#~ "while avoiding creating unnecessary internal bridges. This works well for " +#~ "most difficult models.\n" +#~ "\n" +#~ "No filtering - creates internal bridges on every potential internal " +#~ "overhang. This option is useful for heavily slanted top surface models. " +#~ "However, in most cases it creates too many unnecessary bridges." +#~ msgstr "" +#~ "Bu seçenek, aşırı eğimli veya kavisli modellerde üst yüzeylerdeki " +#~ "yastıklamanın azaltılmasına yardımcı olabilir.\n" +#~ "\n" +#~ "Varsayılan olarak küçük iç köprüler filtrelenir ve iç katı dolgu doğrudan " +#~ "seyrek dolgunun üzerine yazdırılır. Bu çoğu durumda işe yarar ve üstün " +#~ "yüzey kalitesinden çok fazla ödün vermeden yazdırmayı hızlandırır. \n" +#~ "\n" +#~ "Bununla birlikte, özellikle çok düşük seyrek dolgu yoğunluğunun " +#~ "kullanıldığı aşırı eğimli veya kavisli modellerde, bu durum " +#~ "desteklenmeyen katı dolgunun kıvrılmasına ve yastıklanmaya neden olmasına " +#~ "neden olabilir.\n" +#~ "\n" +#~ "Bu seçeneğin devre dışı bırakılması, iç köprü katmanını hafif " +#~ "desteklenmeyen dahili katı dolgu üzerine yazdıracaktır. Aşağıdaki " +#~ "seçenekler filtreleme miktarını, yani oluşturulan dahili köprülerin " +#~ "miktarını kontrol eder.\n" +#~ "\n" +#~ "Filtreli - bu seçeneği etkinleştirin. Bu varsayılan davranıştır ve çoğu " +#~ "durumda iyi çalışır.\n" +#~ "\n" +#~ "Sınırlı filtreli - aşırı eğimli yüzeylerde iç köprüler oluştururken " +#~ "gereksiz iç köprülerin oluşmasını da önler. Bu, çoğu zor modelde işe " +#~ "yarar.\n" +#~ "\n" +#~ "Filtresiz - her potansiyel dahili çıkıntıda dahili köprüler oluşturur. Bu " +#~ "seçenek aşırı eğimli üst yüzey modelleri için kullanışlıdır. Ancak çoğu " +#~ "durumda çok fazla gereksiz köprü oluşturur." + +#~ msgid "" +#~ "This fan speed is enforced during all support interfaces, to be able to " +#~ "weaken their bonding with a high fan speed.\n" +#~ "Set to -1 to disable this override.\n" +#~ "Can only be overridden by disable_fan_first_layers." +#~ msgstr "" +#~ "Bu fan hızı, yüksek fan hızıyla bağlarını zayıflatabilmek için tüm destek " +#~ "arayüzlerinde uygulanır.\n" +#~ "Bu geçersiz kılmayı devre dışı bırakmak için -1'e ayarlayın.\n" +#~ "Yalnızca devre dışı_fan_first_layers tarafından geçersiz kılınabilir." + +#~ msgid "" +#~ "A lower value results in smoother extrusion rate transitions. However, " +#~ "this results in a significantly larger gcode file and more instructions " +#~ "for the printer to process. \n" +#~ "\n" +#~ "Default value of 3 works well for most cases. If your printer is " +#~ "stuttering, increase this value to reduce the number of adjustments made\n" +#~ "\n" +#~ "Allowed values: 1-5" +#~ msgstr "" +#~ "Daha düşük bir değer, daha yumuşak ekstrüzyon hızı geçişleriyle " +#~ "sonuçlanır. Ancak bu, önemli ölçüde daha büyük bir gcode dosyası ve " +#~ "yazıcının işlemesi için daha fazla talimatla sonuçlanır. \n" +#~ "\n" +#~ "Varsayılan değer olan 3 çoğu durumda iyi çalışır. Yazıcınız takılıyorsa, " +#~ "yapılan ayarlamaların sayısını azaltmak için bu değeri artırın\n" +#~ "\n" +#~ "İzin verilen değerler: 1-5" + +#~ msgid "" +#~ "The minimum printing speed that the printer will slow down to to attempt " +#~ "to maintain the minimum layer time above, when slow down for better layer " +#~ "cooling is enabled." +#~ msgstr "" +#~ "Daha iyi katman soğutması için yavaşlama etkinleştirildiğinde, yukarıdaki " +#~ "minimum katman süresini korumaya çalışmak için yazıcının yavaşlayacağı " +#~ "minimum yazdırma hızı." + +#~ msgid "" +#~ "normal(auto) and tree(auto) is used to generate support automatically. If " +#~ "normal(manual) or tree(manual) is selected, only support enforcers are " +#~ "generated" +#~ msgstr "" +#~ "Desteği otomatik olarak oluşturmak için normal(otomatik) ve " +#~ "ağaç(otomatik) kullanılır. Normal(manuel) veya ağaç(manuel) seçilirse " +#~ "yalnızca destek uygulayıcıları oluşturulur" + +#~ msgid "normal(auto)" +#~ msgstr "Normal(Otomatik)" + +#~ msgid "tree(auto)" +#~ msgstr "Ağaç(Otomatik)" + +#~ msgid "normal(manual)" +#~ msgstr "Normal(Manuel)" + +#~ msgid "tree(manual)" +#~ msgstr "Ağaç(Manuel)" + +#~ msgid ", ver: " +#~ msgstr ", ver: " + #~ msgid "ShiftLeft mouse button" #~ msgstr "Shift + Sol fare düğmesi" @@ -18471,13 +19019,6 @@ msgstr "" #~ msgid "Configuration package updated to " #~ msgstr "Yapılandırma paketi şu şekilde güncellendi: " -#~ msgid "" -#~ "Improve shell precision by adjusting outer wall spacing. This also " -#~ "improves layer consistency." -#~ msgstr "" -#~ "Dış duvar aralığını ayarlayarak kabuk hassasiyetini artırın. Bu aynı " -#~ "zamanda katman tutarlılığını da artırır." - #~ msgid "Enable Flow Compensation" #~ msgstr "Akış telafisi'ni etkinleştir" diff --git a/localization/i18n/uk/OrcaSlicer_uk.po b/localization/i18n/uk/OrcaSlicer_uk.po index 9ad2539bdc..90dd14a03e 100644 --- a/localization/i18n/uk/OrcaSlicer_uk.po +++ b/localization/i18n/uk/OrcaSlicer_uk.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-01-04 17:35+0100\n" +"POT-Creation-Date: 2025-02-14 23:42+0800\n" "PO-Revision-Date: 2024-12-23 20:09+0200\n" "Last-Translator: \n" "Language-Team: \n" @@ -2842,9 +2842,6 @@ msgstr "" msgid "About %s" msgstr "Про %s" -msgid "Orca Slicer" -msgstr "" - msgid "OrcaSlicer is based on BambuStudio, PrusaSlicer, and SuperSlicer." msgstr "OrcaSlicer базується на BambuStudio, PrusaSlicer та SuperSlicer." @@ -2896,9 +2893,6 @@ msgstr "Вхідне значення має бути більше %1% і мен msgid "SN" msgstr "SN" -msgid "Setting AMS slot information while printing is not supported" -msgstr "Зміна інформації про слоти AMS під час друку не підтримується" - msgid "Factors of Flow Dynamics Calibration" msgstr "Фактори Калібрування динамічного потоку" @@ -2911,6 +2905,9 @@ msgstr "Коэф. K" msgid "Factor N" msgstr "Коэф. N" +msgid "Setting AMS slot information while printing is not supported" +msgstr "Зміна інформації про слоти AMS під час друку не підтримується" + msgid "Setting Virtual slot information while printing is not supported" msgstr "" "Налаштування інформації віртуального слота під час друку не підтримується" @@ -3033,8 +3030,8 @@ msgstr "Вимкнути AMS" msgid "Print with the filament mounted on the back of chassis" msgstr "Друк із ниткою, встановленою на задній частині корпусу" -msgid "Current Cabin humidity" -msgstr "Поточна вологість у кабіні" +msgid "Current AMS humidity" +msgstr "" msgid "" "Please change the desiccant when it is too wet. The indicator may not " @@ -5149,8 +5146,8 @@ msgstr "" msgid "The printer has been logged out and cannot connect." msgstr "Принтер був вийшов із системи та не може підключитися." -msgid "Stopped." -msgstr "Зупинено." +msgid "Video Stopped." +msgstr "" msgid "LAN Connection Failed (Failed to start liveview)" msgstr "" @@ -5244,10 +5241,6 @@ msgstr "Перезавантажте список файлів з принтер msgid "No printers." msgstr "Ніяких принтерів." -#, c-format, boost-format -msgid "Connect failed [%d]!" -msgstr "Помилка підключення [%d]!" - msgid "Loading file list..." msgstr "Завантаження списку файлів..." @@ -5257,9 +5250,6 @@ msgstr "No files" msgid "Load failed" msgstr "Не вдалося завантажити" -msgid "Initialize failed (Device connection not ready)!" -msgstr "Ініціалізація не вдалася (З'єднання пристрою не готове)!" - msgid "" "Browsing file in SD card is not supported in current firmware. Please update " "the printer firmware." @@ -5267,8 +5257,10 @@ msgstr "" "Перегляд файлів на SD-картці не підтримується в поточній версії прошивки. " "Будь ласка, оновіть прошивку принтера." -msgid "Initialize failed (Storage unavailable, insert SD card.)!" -msgstr "Помилка ініціалізації (Сховище недоступне, вставте SD-карту)!" +msgid "" +"Please check if the SD card is inserted into the printer.\n" +"If it still cannot be read, you can try formatting the SD card." +msgstr "" msgid "LAN Connection Failed (Failed to view sdcard)" msgstr "Помилка підключення LAN (Не вдалося переглянути sd-карту)" @@ -5276,10 +5268,6 @@ msgstr "Помилка підключення LAN (Не вдалося пере msgid "Browsing file in SD card is not supported in LAN Only Mode." msgstr "Перегляд файлів на SD-картці не підтримується в режимі лише LAN." -#, c-format, boost-format -msgid "Initialize failed (%s)!" -msgstr "Помилка ініціалізації (%s)!" - #, c-format, boost-format msgid "You are going to delete %u file from printer. Are you sure to continue?" msgid_plural "" @@ -5726,6 +5714,25 @@ msgstr "Остання версія: " msgid "Not for now" msgstr "Наразі не потрібно" +msgid "Server Exception" +msgstr "" + +msgid "" +"The server is unable to respond. Please click the link below to check the " +"server status." +msgstr "" + +msgid "" +"If the server is in a fault state, you can temporarily use offline printing " +"or local network printing." +msgstr "" + +msgid "How to use LAN only mode" +msgstr "" + +msgid "Don't show this dialog again" +msgstr "" + msgid "3D Mouse disconnected." msgstr "3D-миша відключена." @@ -6449,6 +6456,10 @@ msgstr "Відкрити як проект" msgid "Import geometry only" msgstr "Імпортувати лише геометрію" +msgid "" +"This option can be changed later in preferences, under 'Load Behaviour'." +msgstr "" + msgid "Only one G-code file can be opened at the same time." msgstr "Водночас можна відкрити лише один файл G-коду." @@ -6899,6 +6910,24 @@ msgstr "Асоціювати веб-посилання з OrcaSlicer" msgid "Associate URLs to OrcaSlicer" msgstr "Асоціювати URL-адреси з OrcaSlicer" +msgid "Load All" +msgstr "" + +msgid "Ask When Relevant" +msgstr "" + +msgid "Always Ask" +msgstr "" + +msgid "Load Geometry Only" +msgstr "" + +msgid "Load Behaviour" +msgstr "" + +msgid "Should printer/filament/process settings be loaded when opening a .3mf?" +msgstr "" + msgid "Maximum recent projects" msgstr "Максимум останніх проектів" @@ -7467,6 +7496,9 @@ msgstr "Зміна імені пристрою" msgid "Bind with Pin Code" msgstr "Прив’язати за допомогою Пін-коду" +msgid "Bind with Access Code" +msgstr "" + msgid "Send to Printer SD card" msgstr "Надіслати на SD-карту принтера" @@ -7774,6 +7806,75 @@ msgstr "" "Клацніть правою кнопкою миші на порожній позиції монтажної плити та виберіть " "\"Додати Примітів\"->\"Timelapse Wipe Tower\"." +msgid "" +"A copy of the current system preset will be created, which will be detached " +"from the system preset." +msgstr "" + +msgid "" +"The current custom preset will be detached from the parent system preset." +msgstr "" + +msgid "Modifications to the current profile will be saved." +msgstr "" + +msgid "" +"This action is not revertible.\n" +"Do you want to proceed?" +msgstr "" + +msgid "Detach preset" +msgstr "" + +msgid "This is a default preset." +msgstr "" + +msgid "This is a system preset." +msgstr "" + +msgid "Current preset is inherited from the default preset." +msgstr "" + +msgid "Current preset is inherited from" +msgstr "" + +msgid "It can't be deleted or modified." +msgstr "" + +msgid "" +"Any modifications should be saved as a new preset inherited from this one." +msgstr "" + +msgid "To do that please specify a new name for the preset." +msgstr "" + +msgid "Additional information:" +msgstr "" + +msgid "vendor" +msgstr "" + +msgid "printer model" +msgstr "" + +msgid "default print profile" +msgstr "" + +msgid "default filament profile" +msgstr "" + +msgid "default SLA material profile" +msgstr "" + +msgid "default SLA print profile" +msgstr "" + +msgid "full profile name" +msgstr "" + +msgid "symbolic profile name" +msgstr "" + msgid "Line width" msgstr "Ширина лінії" @@ -7870,6 +7971,12 @@ msgstr "Сценарії постобробки" msgid "Notes" msgstr "Примітки" +msgid "Dependencies" +msgstr "" + +msgid "Profile dependencies" +msgstr "" + msgid "Frequent" msgstr "Частий" @@ -8987,22 +9094,22 @@ msgstr "Перегляд в реальному часі" msgid "Confirm and Update Nozzle" msgstr "Підтвердити і оновити сопло" -msgid "LAN Connection Failed (Sending print file)" -msgstr "Помилка з’єднання LAN (Надсилання файлу друку)" - -msgid "" -"Step 1, please confirm Orca Slicer and your printer are in the same LAN." +msgid "Connect the printer using IP and access code" msgstr "" -"Крок 1: Переконайтеся, що Orca Slicer і ваш принтер знаходяться в одній " -"локальній мережі." msgid "" -"Step 2, if the IP and Access Code below are different from the actual values " +"Step 1. Please confirm Orca Slicer and your printer are in the same LAN." +msgstr "" + +msgid "" +"Step 2. If the IP and Access Code below are different from the actual values " "on your printer, please correct them." msgstr "" -"Крок 2, якщо наведені нижче IP і код доступу відрізняються від " -"фактичнихзначень \n" -"на вашому принтері, будь ласка, виправте їх." + +msgid "" +"Step 3. Please obtain the device SN from the printer side; it is usually " +"found in the device information on the printer screen." +msgstr "" msgid "IP" msgstr "IP" @@ -9010,18 +9117,38 @@ msgstr "IP" msgid "Access Code" msgstr "Код доступу" +msgid "Printer model" +msgstr "" + +msgid "Printer name" +msgstr "" + msgid "Where to find your printer's IP and Access Code?" msgstr "Де знайти IP-адресу та код доступу вашого принтера?" -msgid "Step 3: Ping the IP address to check for packet loss and latency." +msgid "Connect" msgstr "" -"Крок 3: Виконайте пінг до IP-адреси для перевірки втрат пакетів та затримки." -msgid "Test" -msgstr "Тест" +msgid "Manual Setup" +msgstr "" -msgid "IP and Access Code Verified! You may close the window" -msgstr "IP-адреса та доступний код перевірено! Ви можете закрити вікно" +msgid "connecting..." +msgstr "" + +msgid "Failed to connect to printer." +msgstr "" + +msgid "Failed to publish login request." +msgstr "" + +msgid "The printer has already been bound." +msgstr "" + +msgid "The printer mode is incorrect, please switch to LAN Only." +msgstr "" + +msgid "Connecting to printer... The dialog will close later" +msgstr "" msgid "Connection failed, please double check IP and Access Code" msgstr "З’єднання не вдалося, будь ласка, перевірте IP-адресу та доступний код" @@ -9991,47 +10118,45 @@ msgstr "Верхня та нижня поверхні" msgid "Nowhere" msgstr "Ніде" -msgid "Force cooling for overhang and bridge" -msgstr "Примусове охолодження для нависань та мостів" +msgid "Force cooling for overhangs and bridges" +msgstr "" msgid "" -"Enable this option to optimize part cooling fan speed for overhang and " -"bridge to get better cooling" +"Enable this option to allow adjustment of the part cooling fan speed for " +"specifically for overhangs, internal and external bridges. Setting the fan " +"speed specifically for these features can improve overall print quality and " +"reduce warping." msgstr "" -"Увімкніть цю опцію, щоб оптимізувати швидкість вентилятора охолодженнядеталі " -"для нависання та мосту, щоб покращити охолодження" -msgid "Fan speed for overhang" -msgstr "Швидкість вентилятора для нависань" +msgid "Overhangs and external bridges fan speed" +msgstr "" msgid "" -"Force part cooling fan to be this speed when printing bridge or overhang " -"wall which has large overhang degree. Forcing cooling for overhang and " -"bridge can get better quality for these part" +"Use this part cooling fan speed when printing bridges or overhang walls with " +"an overhang threshold that exceeds the value set in the 'Overhangs cooling " +"threshold' parameter above. Increasing the cooling specifically for " +"overhangs and bridges can improve the overall print quality of these " +"features.\n" +"\n" +"Please note, this fan speed is clamped on the lower end by the minimum fan " +"speed threshold set above. It is also adjusted upwards up to the maximum fan " +"speed threshold when the minimum layer time threshold is not met." msgstr "" -"Примусити вентилятор охолодження деталі працювати на цій швидкості під час " -"друку мостів або нависаючої стінки яка має великий кут нахилу. Примусове " -"охолодження для нависань та мостів може покращити якість друку для таких " -"деталей" -msgid "Cooling overhang threshold" -msgstr "Поріг нависання для охолодження" +msgid "Overhang cooling activation threshold" +msgstr "" -#, c-format +#, c-format, boost-format msgid "" -"Force cooling fan to be specific speed when overhang degree of printed part " -"exceeds this value. Expressed as percentage which indicates how much width " -"of the line without support from lower layer. 0% means forcing cooling for " -"all outer wall no matter how much overhang degree" +"When the overhang exceeds this specified threshold, force the cooling fan to " +"run at the 'Overhang Fan Speed' set below. This threshold is expressed as a " +"percentage, indicating the portion of each line's width that is unsupported " +"by the layer beneath it. Setting this value to 0% forces the cooling fan to " +"run for all outer walls, regardless of the overhang degree." msgstr "" -"Коли ступінь нависання друкарської деталі перевищує це значення, примусово " -"Встановіть вентилятор охолодження на певну швидкість. Виражається в " -"відсотках, що вказують на ширину лінії без опори від нижнього шару. .0%% " -"означає примусове охолодження всього зовнішньої стінки незалежно від ступеня " -"нависання" -msgid "Bridge infill direction" -msgstr "Напрямок заповнення мосту" +msgid "External bridge infill direction" +msgstr "" msgid "" "Bridging angle override. If left to zero, the bridging angle will be " @@ -10042,13 +10167,45 @@ msgstr "" "обчислюватиметься автоматично. Інакше наданий кут використовуйте для " "зовнішніх мостів. Використовуйте 180 ° для нульового кута." -msgid "Bridge density" -msgstr "Щільність мосту" - -msgid "Density of external bridges. 100% means solid bridge. Default is 100%." +msgid "Internal bridge infill direction" +msgstr "" + +msgid "" +"Internal bridging angle override. If left to zero, the bridging angle will " +"be calculated automatically. Otherwise the provided angle will be used for " +"internal bridges. Use 180°for zero angle.\n" +"\n" +"It is recommended to leave it at 0 unless there is a specific model need not " +"to." +msgstr "" + +msgid "External bridge density" +msgstr "" + +msgid "" +"Controls the density (spacing) of external bridge lines. 100% means solid " +"bridge. Default is 100%.\n" +"\n" +"Lower density external bridges can help improve reliability as there is more " +"space for air to circulate around the extruded bridge, improving its cooling " +"speed." +msgstr "" + +msgid "Internal bridge density" +msgstr "" + +msgid "" +"Controls the density (spacing) of internal bridge lines. 100% means solid " +"bridge. Default is 100%.\n" +"\n" +" Lower density internal bridges can help reduce top surface pillowing and " +"improve internal bridge reliability as there is more space for air to " +"circulate around the extruded bridge, improving its cooling speed. \n" +"\n" +"This option works particularly well when combined with the second internal " +"bridge over infill option, further improving internal bridging structure " +"before solid infill is extruded." msgstr "" -"Щільність зовнішніх мостів. 100% означає суцільний міст. Значення по за " -"замовчуванням - 100%." msgid "Bridge flow ratio" msgstr "Коефіцієнт потоку мостів" @@ -10100,14 +10257,10 @@ msgstr "Точна стінка" msgid "" "Improve shell precision by adjusting outer wall spacing. This also improves " -"layer consistency.\n" -"Note: This setting will only take effect if the wall sequence is configured " -"to Inner-Outer" +"layer consistency." msgstr "" -"Підвищуйте точність оболонки, регулюючи відстань між зовнішніми стінками. Це " -"також покращує консистенцію шару.\n" -"Примітка: Цей параметр набуде чинності, лише якщо послідовність стінок " -"налаштовано як Внутрішня-зовнішня" +"Підвищення точності оболонки за рахунок регулювання відстані між " +"зовнішнімипериметрами. Це також покращує узгодженість шарів." msgid "Only one wall on top surfaces" msgstr "Тільки одна стінка на верхніх поверхнях" @@ -10360,12 +10513,24 @@ msgstr "висхідна сумісна машина" msgid "Compatible machine condition" msgstr "Сумісний стан машини" +msgid "" +"A boolean expression using the configuration values of an active printer " +"profile. If this expression evaluates to true, this profile is considered " +"compatible with the active printer profile." +msgstr "" + msgid "Compatible process profiles" msgstr "Сумісні профілі процесів" msgid "Compatible process profiles condition" msgstr "Стан сумісних профілів процесів" +msgid "" +"A boolean expression using the configuration values of an active print " +"profile. If this expression evaluates to true, this profile is considered " +"compatible with the active print profile." +msgstr "" + msgid "Print sequence, layer by layer or object by object" msgstr "Послідовність друку, шар за шаром або об'єкт за об'єктом" @@ -10464,8 +10629,8 @@ msgstr "" "Не підтримуйте всю площу мосту, тому що підтримка буде дуже великою.Міст\n" "зазвичай можна друкувати безпосередньо без підтримки, якщо не дуже довго" -msgid "Thick bridges" -msgstr "Товсті мости" +msgid "Thick external bridges" +msgstr "" msgid "" "If enabled, bridges are more reliable, can bridge longer distances, but may " @@ -10488,36 +10653,86 @@ msgstr "" "рекомендується вмикати цю функцію. Однак, якщо ви використовуєте великі " "сопла, краще вимкнути її." -msgid "Filter out small internal bridges (beta)" -msgstr "Відфільтровувати малі Внутрішні мости (бета)" +msgid "Extra bridge layers (beta)" +msgstr "" msgid "" -"This option can help reducing pillowing on top surfaces in heavily slanted " -"or curved models.\n" +"This option enables the generation of an extra bridge layer over internal " +"and/or external bridges.\n" +"\n" +"Extra bridge layers help improve bridge appearance and reliability, as the " +"solid infill is better supported. This is especially useful in fast " +"printers, where the bridge and solid infill speeds vary greatly. The extra " +"bridge layer results in reduced pillowing on top surfaces, as well as " +"reduced separation of the external bridge layer from its surrounding " +"perimeters.\n" +"\n" +"It is generally recommended to set this to at least 'External bridge only', " +"unless specific issues with the sliced model are found.\n" +"\n" +"Options:\n" +"1. Disabled - does not generate second bridge layers. This is the default " +"and is set for compatibility purposes.\n" +"2. External bridge only - generates second bridge layers for external-facing " +"bridges only. Please note that small bridges that are shorter or narrower " +"than the set number of perimeters will be skipped as they would not benefit " +"from a second bridge layer. If generated, the second bridge layer will be " +"extruded parallel to the first bridge layer to reinforce the bridge " +"strength.\n" +"3. Internal bridge only - generates second bridge layers for internal " +"bridges over sparse infill only. Please note that the internal bridges count " +"towards the top shell layer count of your model. The second internal bridge " +"layer will be extruded as close to perpendicular to the first as possible. " +"If multiple regions in the same island, with varying bridge angles are " +"present, the last region of that island will be selected as the angle " +"reference.\n" +"4. Apply to all - generates second bridge layers for both internal and " +"external-facing bridges\n" +msgstr "" + +msgid "Disabled" +msgstr "Вимкнено" + +msgid "External bridge only" +msgstr "" + +msgid "Internal bridge only" +msgstr "" + +msgid "Apply to all" +msgstr "" + +msgid "Filter out small internal bridges" +msgstr "" + +msgid "" +"This option can help reduce pillowing on top surfaces in heavily slanted or " +"curved models.\n" "\n" "By default, small internal bridges are filtered out and the internal solid " "infill is printed directly over the sparse infill. This works well in most " "cases, speeding up printing without too much compromise on top surface " "quality. \n" "\n" -"However, in heavily slanted or curved models especially where too low sparse " -"infill density is used, this may result in curling of the unsupported solid " -"infill, causing pillowing.\n" +"However, in heavily slanted or curved models, especially where too low a " +"sparse infill density is used, this may result in curling of the unsupported " +"solid infill, causing pillowing.\n" "\n" -"Disabling this option will print internal bridge layer over slightly " -"unsupported internal solid infill. The options below control the amount of " -"filtering, i.e. the amount of internal bridges created.\n" +"Enabling limited filtering or no filtering will print internal bridge layer " +"over slightly unsupported internal solid infill. The options below control " +"the sensitivity of the filtering, i.e. they control where internal bridges " +"are created.\n" "\n" -"Filter - enable this option. This is the default behavior and works well in " -"most cases.\n" +"1. Filter - enables this option. This is the default behavior and works well " +"in most cases.\n" "\n" -"Limited filtering - creates internal bridges on heavily slanted surfaces, " -"while avoiding creating unnecessary internal bridges. This works well for " -"most difficult models.\n" +"2. Limited filtering - creates internal bridges on heavily slanted surfaces " +"while avoiding unnecessary bridges. This works well for most difficult " +"models.\n" "\n" -"No filtering - creates internal bridges on every potential internal " -"overhang. This option is useful for heavily slanted top surface models. " -"However, in most cases it creates too many unnecessary bridges." +"3. No filtering - creates internal bridges on every potential internal " +"overhang. This option is useful for heavily slanted top surface models; " +"however, in most cases, it creates too many unnecessary bridges." msgstr "" msgid "Filter" @@ -11392,6 +11607,9 @@ msgstr "Шаблон лінії для внутрішнього заповнен msgid "Grid" msgstr "Сітка" +msgid "2D Lattice" +msgstr "" + msgid "Line" msgstr "Лінія" @@ -11422,6 +11640,25 @@ msgstr "Блискавка" msgid "Cross Hatch" msgstr "Перехресний штрих" +msgid "Quarter Cubic" +msgstr "" + +msgid "Lattice angle 1" +msgstr "" + +msgid "" +"The angle of the first set of 2D lattice elements in the Z direction. Zero " +"is vertical." +msgstr "" + +msgid "Lattice angle 2" +msgstr "" + +msgid "" +"The angle of the second set of 2D lattice elements in the Z direction. Zero " +"is vertical." +msgstr "" + msgid "Sparse infill anchor length" msgstr "Довжина прив'язки заповнення" @@ -11644,16 +11881,25 @@ msgid "Support interface fan speed" msgstr "Швидкість вентилятора під час друку підтримки" msgid "" -"This fan speed is enforced during all support interfaces, to be able to " -"weaken their bonding with a high fan speed.\n" -"Set to -1 to disable this override.\n" -"Can only be overridden by disable_fan_first_layers." +"This part cooling fan speed is applied when printing support interfaces. " +"Setting this parameter to a higher than regular speed reduces the layer " +"binding strength between supports and the supported part, making them easier " +"to separate.\n" +"Set to -1 to disable it.\n" +"This setting is overridden by disable_fan_first_layers." +msgstr "" + +msgid "Internal bridges fan speed" +msgstr "" + +msgid "" +"The part cooling fan speed used for all internal bridges. Set to -1 to use " +"the overhang fan speed settings instead.\n" +"\n" +"Reducing the internal bridges fan speed, compared to your regular fan speed, " +"can help reduce part warping due to excessive cooling applied over a large " +"surface for a prolonged period of time." msgstr "" -"Ця швидкість вентилятора забезпечується під час усіх інтерфейсів " -"підтримки,щоб мати можливість послабити їхнє з'єднання з високою " -"швидкістювентилятора.\n" -"Встановіть -1, щоб вимкнути це перевизначення.\n" -"Може бути перевизначений лише disable_fan_first_layers." msgid "" "Randomly jitter while printing the wall, so that the surface has a rough " @@ -11696,6 +11942,59 @@ msgstr "Застосувати Шорстку Поверхню до першог msgid "Whether to apply fuzzy skin on the first layer" msgstr "Чи потрібно застосовувати Шорстку Поверхню до першого шару" +msgid "Fuzzy skin noise type" +msgstr "" + +msgid "" +"Noise type to use for fuzzy skin generation.\n" +"Classic: Classic uniform random noise.\n" +"Perlin: Perlin noise, which gives a more consistent texture.\n" +"Billow: Similar to perlin noise, but clumpier.\n" +"Ridged Multifractal: Ridged noise with sharp, jagged features. Creates " +"marble-like textures.\n" +"Voronoi: Divides the surface into voronoi cells, and displaces each one by a " +"random amount. Creates a patchwork texture." +msgstr "" + +msgid "Classic" +msgstr "Класичний" + +msgid "Perlin" +msgstr "" + +msgid "Billow" +msgstr "" + +msgid "Ridged Multifractal" +msgstr "" + +msgid "Voronoi" +msgstr "" + +msgid "Fuzzy skin feature size" +msgstr "" + +msgid "" +"The base size of the coherent noise features, in mm. Higher values will " +"result in larger features." +msgstr "" + +msgid "Fuzzy Skin Noise Octaves" +msgstr "" + +msgid "" +"The number of octaves of coherent noise to use. Higher values increase the " +"detail of the noise, but also increase computation time." +msgstr "" + +msgid "Fuzzy skin noise persistence" +msgstr "" + +msgid "" +"The decay rate for higher octaves of the coherent noise. Lower values will " +"result in smoother noise." +msgstr "" + msgid "Filter out tiny gaps" msgstr "Відфільтрувати крихітні зазори" @@ -12157,6 +12456,14 @@ msgstr "Крок лінії розглажування" msgid "The distance between the lines of ironing" msgstr "Відстань між лініями розглажування" +msgid "Ironing inset" +msgstr "" + +msgid "" +"The distance to keep from the edges. A value of 0 sets this to half of the " +"nozzle diameter" +msgstr "" + msgid "Ironing speed" msgstr "Швидкість розглажування" @@ -12425,17 +12732,18 @@ msgid "" "Default value of 3 works well for most cases. If your printer is stuttering, " "increase this value to reduce the number of adjustments made\n" "\n" -"Allowed values: 1-5" +"Allowed values: 0.5-5" +msgstr "" + +msgid "Apply only on external features" +msgstr "" + +msgid "" +"Applies extrusion rate smoothing only on external perimeters and overhangs. " +"This can help reduce artefacts due to sharp speed transitions on externally " +"visible overhangs without impacting the print speed of features that will " +"not be visible to the user." msgstr "" -"Менше значення забезпечує плавніші переходи швидкості екструзії. Однак це " -"призводить до значно більшого розміру файлу gcode і більшої кількості " -"інструкцій для обробки принтером. \n" -"\n" -"Значення за замовчуванням 3 добре підходить для більшості випадків. Якщо ваш " -"принтер зависає, збільште це значення, щоб зменшити кількість інструкцій для " -"принтера.\n" -"\n" -"Допустимі значення: 1-5" msgid "Minimum speed for part cooling fan" msgstr "Мінімальна швидкість вентилятора охолодження деталі" @@ -12467,13 +12775,10 @@ msgid "Min print speed" msgstr "Мін. швидкість друку" msgid "" -"The minimum printing speed that the printer will slow down to to attempt to " -"maintain the minimum layer time above, when slow down for better layer " -"cooling is enabled." +"The minimum print speed to which the printer slows down to maintain the " +"minimum layer time defined above when the slowdown for better layer cooling " +"is enabled." msgstr "" -"Мінімальна швидкість друку, до якої принтер сповільнюватиметься, щоб " -"зберегти мінімальний час проходження шару, вказаний вище, коли ввімкнено " -"сповільнення для кращого охолодження шару." msgid "Diameter of nozzle" msgstr "Діаметр сопла" @@ -13215,9 +13520,6 @@ msgid "" "with them. To avoid this, increase the skirt distance value.\n" msgstr "" -msgid "Disabled" -msgstr "Вимкнено" - msgid "Enabled" msgstr "Увімкнуто" @@ -13493,25 +13795,22 @@ msgid "Enable support generation." msgstr "Увімкнути генерацію підтримки." msgid "" -"normal(auto) and tree(auto) is used to generate support automatically. If " -"normal(manual) or tree(manual) is selected, only support enforcers are " +"Normal (auto) and Tree (auto) is used to generate support automatically. If " +"Normal (manual) or Tree (manual) is selected, only support enforcers are " "generated" msgstr "" -"звичайна (auto) та деревоподібна (auto) використовується для " -"автоматичногостворення підтримки. Якщо вибрано звичайну (ручну) або " -"деревоподібну (ручну), створюються лише засоби забезпечення підтримки" -msgid "normal(auto)" -msgstr "звичайна (авто)" +msgid "Normal (auto)" +msgstr "" -msgid "tree(auto)" -msgstr "деревоподібна (авто)" +msgid "Tree (auto)" +msgstr "" -msgid "normal(manual)" -msgstr "звичайна (ручна)" +msgid "Normal (manual)" +msgstr "" -msgid "tree(manual)" -msgstr "деревоподібна (ручна)" +msgid "Tree (manual)" +msgstr "" msgid "Support/object xy distance" msgstr "Підтримка/об'єкт XY відстань" @@ -13735,6 +14034,15 @@ msgid "" "threshold." msgstr "Буде створена опора для нависань з кутом нахилу нижче порогу." +msgid "Threshold overlap" +msgstr "" + +msgid "" +"If threshold angle is zero, support will be generated for overhangs whose " +"overlap is below the threshold. The smaller this value is, the steeper the " +"overhang that can be printed without support." +msgstr "" + msgid "Tree support branch angle" msgstr "Кут гілки опори дерева" @@ -14288,9 +14596,6 @@ msgstr "" "дуже тонких ділянок використовується заповнення прогалин. Двигун Arachne " "виробляє стіни зі змінною шириною екструзії." -msgid "Classic" -msgstr "Класичний" - msgid "Arachne" msgstr "Arachne" @@ -16313,6 +16618,9 @@ msgstr "Фізичний принтер" msgid "Print Host upload" msgstr "Завантаження хоста друку" +msgid "Test" +msgstr "Тест" + msgid "Could not get a valid Printer Host reference" msgstr "Неможливо отримати дійсне посилання на хост принтера" @@ -17186,6 +17494,181 @@ msgstr "" "ABS, відповідне підвищення температури гарячого ліжка може зменшити " "ймовірність деформації." +#~ msgid "Current Cabin humidity" +#~ msgstr "Поточна вологість у кабіні" + +#~ msgid "Stopped." +#~ msgstr "Зупинено." + +#, c-format, boost-format +#~ msgid "Connect failed [%d]!" +#~ msgstr "Помилка підключення [%d]!" + +#~ msgid "Initialize failed (Device connection not ready)!" +#~ msgstr "Ініціалізація не вдалася (З'єднання пристрою не готове)!" + +#~ msgid "Initialize failed (Storage unavailable, insert SD card.)!" +#~ msgstr "Помилка ініціалізації (Сховище недоступне, вставте SD-карту)!" + +#, c-format, boost-format +#~ msgid "Initialize failed (%s)!" +#~ msgstr "Помилка ініціалізації (%s)!" + +#~ msgid "LAN Connection Failed (Sending print file)" +#~ msgstr "Помилка з’єднання LAN (Надсилання файлу друку)" + +#~ msgid "" +#~ "Step 1, please confirm Orca Slicer and your printer are in the same LAN." +#~ msgstr "" +#~ "Крок 1: Переконайтеся, що Orca Slicer і ваш принтер знаходяться в одній " +#~ "локальній мережі." + +#~ msgid "" +#~ "Step 2, if the IP and Access Code below are different from the actual " +#~ "values on your printer, please correct them." +#~ msgstr "" +#~ "Крок 2, якщо наведені нижче IP і код доступу відрізняються від " +#~ "фактичнихзначень \n" +#~ "на вашому принтері, будь ласка, виправте їх." + +#~ msgid "Step 3: Ping the IP address to check for packet loss and latency." +#~ msgstr "" +#~ "Крок 3: Виконайте пінг до IP-адреси для перевірки втрат пакетів та " +#~ "затримки." + +#~ msgid "IP and Access Code Verified! You may close the window" +#~ msgstr "IP-адреса та доступний код перевірено! Ви можете закрити вікно" + +#~ msgid "Force cooling for overhang and bridge" +#~ msgstr "Примусове охолодження для нависань та мостів" + +#~ msgid "" +#~ "Enable this option to optimize part cooling fan speed for overhang and " +#~ "bridge to get better cooling" +#~ msgstr "" +#~ "Увімкніть цю опцію, щоб оптимізувати швидкість вентилятора " +#~ "охолодженнядеталі для нависання та мосту, щоб покращити охолодження" + +#~ msgid "Fan speed for overhang" +#~ msgstr "Швидкість вентилятора для нависань" + +#~ msgid "" +#~ "Force part cooling fan to be this speed when printing bridge or overhang " +#~ "wall which has large overhang degree. Forcing cooling for overhang and " +#~ "bridge can get better quality for these part" +#~ msgstr "" +#~ "Примусити вентилятор охолодження деталі працювати на цій швидкості під " +#~ "час друку мостів або нависаючої стінки яка має великий кут нахилу. " +#~ "Примусове охолодження для нависань та мостів може покращити якість друку " +#~ "для таких деталей" + +#~ msgid "Cooling overhang threshold" +#~ msgstr "Поріг нависання для охолодження" + +#, c-format +#~ msgid "" +#~ "Force cooling fan to be specific speed when overhang degree of printed " +#~ "part exceeds this value. Expressed as percentage which indicates how much " +#~ "width of the line without support from lower layer. 0% means forcing " +#~ "cooling for all outer wall no matter how much overhang degree" +#~ msgstr "" +#~ "Коли ступінь нависання друкарської деталі перевищує це значення, " +#~ "примусово Встановіть вентилятор охолодження на певну швидкість. " +#~ "Виражається в відсотках, що вказують на ширину лінії без опори від " +#~ "нижнього шару. .0%% означає примусове охолодження всього зовнішньої " +#~ "стінки незалежно від ступеня нависання" + +#~ msgid "Bridge infill direction" +#~ msgstr "Напрямок заповнення мосту" + +#~ msgid "Bridge density" +#~ msgstr "Щільність мосту" + +#~ msgid "" +#~ "Density of external bridges. 100% means solid bridge. Default is 100%." +#~ msgstr "" +#~ "Щільність зовнішніх мостів. 100% означає суцільний міст. Значення по за " +#~ "замовчуванням - 100%." + +#~ msgid "" +#~ "Improve shell precision by adjusting outer wall spacing. This also " +#~ "improves layer consistency.\n" +#~ "Note: This setting will only take effect if the wall sequence is " +#~ "configured to Inner-Outer" +#~ msgstr "" +#~ "Підвищуйте точність оболонки, регулюючи відстань між зовнішніми стінками. " +#~ "Це також покращує консистенцію шару.\n" +#~ "Примітка: Цей параметр набуде чинності, лише якщо послідовність стінок " +#~ "налаштовано як Внутрішня-зовнішня" + +#~ msgid "Thick bridges" +#~ msgstr "Товсті мости" + +#~ msgid "Filter out small internal bridges (beta)" +#~ msgstr "Відфільтровувати малі Внутрішні мости (бета)" + +#~ msgid "" +#~ "This fan speed is enforced during all support interfaces, to be able to " +#~ "weaken their bonding with a high fan speed.\n" +#~ "Set to -1 to disable this override.\n" +#~ "Can only be overridden by disable_fan_first_layers." +#~ msgstr "" +#~ "Ця швидкість вентилятора забезпечується під час усіх інтерфейсів " +#~ "підтримки,щоб мати можливість послабити їхнє з'єднання з високою " +#~ "швидкістювентилятора.\n" +#~ "Встановіть -1, щоб вимкнути це перевизначення.\n" +#~ "Може бути перевизначений лише disable_fan_first_layers." + +#~ msgid "" +#~ "A lower value results in smoother extrusion rate transitions. However, " +#~ "this results in a significantly larger gcode file and more instructions " +#~ "for the printer to process. \n" +#~ "\n" +#~ "Default value of 3 works well for most cases. If your printer is " +#~ "stuttering, increase this value to reduce the number of adjustments made\n" +#~ "\n" +#~ "Allowed values: 1-5" +#~ msgstr "" +#~ "Менше значення забезпечує плавніші переходи швидкості екструзії. Однак це " +#~ "призводить до значно більшого розміру файлу gcode і більшої кількості " +#~ "інструкцій для обробки принтером. \n" +#~ "\n" +#~ "Значення за замовчуванням 3 добре підходить для більшості випадків. Якщо " +#~ "ваш принтер зависає, збільште це значення, щоб зменшити кількість " +#~ "інструкцій для принтера.\n" +#~ "\n" +#~ "Допустимі значення: 1-5" + +#~ msgid "" +#~ "The minimum printing speed that the printer will slow down to to attempt " +#~ "to maintain the minimum layer time above, when slow down for better layer " +#~ "cooling is enabled." +#~ msgstr "" +#~ "Мінімальна швидкість друку, до якої принтер сповільнюватиметься, щоб " +#~ "зберегти мінімальний час проходження шару, вказаний вище, коли ввімкнено " +#~ "сповільнення для кращого охолодження шару." + +#~ msgid "" +#~ "normal(auto) and tree(auto) is used to generate support automatically. If " +#~ "normal(manual) or tree(manual) is selected, only support enforcers are " +#~ "generated" +#~ msgstr "" +#~ "звичайна (auto) та деревоподібна (auto) використовується для " +#~ "автоматичногостворення підтримки. Якщо вибрано звичайну (ручну) або " +#~ "деревоподібну (ручну), створюються лише засоби забезпечення підтримки" + +#~ msgid "normal(auto)" +#~ msgstr "звичайна (авто)" + +#~ msgid "tree(auto)" +#~ msgstr "деревоподібна (авто)" + +#~ msgid "normal(manual)" +#~ msgstr "звичайна (ручна)" + +#~ msgid "tree(manual)" +#~ msgstr "деревоподібна (ручна)" + #~ msgid "ShiftLeft mouse button" #~ msgstr "ShiftЛіва кнопка миші" @@ -17918,13 +18401,6 @@ msgstr "" #~ msgid "Configuration package updated to " #~ msgstr "Пакет конфігурації оновлено до " -#~ msgid "" -#~ "Improve shell precision by adjusting outer wall spacing. This also " -#~ "improves layer consistency." -#~ msgstr "" -#~ "Підвищення точності оболонки за рахунок регулювання відстані між " -#~ "зовнішнімипериметрами. Це також покращує узгодженість шарів." - #~ msgid "The Config can not be loaded." #~ msgstr "Конфіг не завантажується." diff --git a/localization/i18n/zh_CN/OrcaSlicer_zh_CN.po b/localization/i18n/zh_CN/OrcaSlicer_zh_CN.po index f9bb50944f..6e4b9db119 100644 --- a/localization/i18n/zh_CN/OrcaSlicer_zh_CN.po +++ b/localization/i18n/zh_CN/OrcaSlicer_zh_CN.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Slic3rPE\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-01-04 17:35+0100\n" +"POT-Creation-Date: 2025-02-14 23:42+0800\n" "PO-Revision-Date: 2024-07-28 07:12+0000\n" "Last-Translator: Handle \n" "Language-Team: \n" @@ -2746,9 +2746,6 @@ msgstr "本软件使用开源组件,其版权和其他所有权属于各自的 msgid "About %s" msgstr "关于 %s" -msgid "Orca Slicer" -msgstr "" - msgid "OrcaSlicer is based on BambuStudio, PrusaSlicer, and SuperSlicer." msgstr "OrcaSlicer基于BambuStudio、PrusaSlicer 以及SuperSlicer开发。" @@ -2796,9 +2793,6 @@ msgstr "输入的范围应当在 %1% 和 %2% 之间" msgid "SN" msgstr "序列号" -msgid "Setting AMS slot information while printing is not supported" -msgstr "不支持在打印时修改AMS槽位信息" - msgid "Factors of Flow Dynamics Calibration" msgstr "动态流量校准系数" @@ -2811,6 +2805,9 @@ msgstr "系数K" msgid "Factor N" msgstr "系数N" +msgid "Setting AMS slot information while printing is not supported" +msgstr "不支持在打印时修改AMS槽位信息" + msgid "Setting Virtual slot information while printing is not supported" msgstr "不支持在打印时设置虚拟槽位信息" @@ -2928,8 +2925,8 @@ msgstr "不启用AMS" msgid "Print with the filament mounted on the back of chassis" msgstr "使用机箱背后挂载的材料打印" -msgid "Current Cabin humidity" -msgstr "当前舱内湿度" +msgid "Current AMS humidity" +msgstr "" msgid "" "Please change the desiccant when it is too wet. The indicator may not " @@ -4941,8 +4938,8 @@ msgstr "检查网络后重试。如仍未恢复,可重启或更新打印机。 msgid "The printer has been logged out and cannot connect." msgstr "打印机已注销,无法连接。" -msgid "Stopped." -msgstr "已经停止。" +msgid "Video Stopped." +msgstr "" msgid "LAN Connection Failed (Failed to start liveview)" msgstr "局域网连接失败(无法启动直播)" @@ -5031,10 +5028,6 @@ msgstr "从打印机重新加载文件列表。" msgid "No printers." msgstr "未选择打印机" -#, c-format, boost-format -msgid "Connect failed [%d]!" -msgstr "连接失败 [%d]!" - msgid "Loading file list..." msgstr "加载文件列表..." @@ -5044,16 +5037,15 @@ msgstr "文件列表为空" msgid "Load failed" msgstr "加载失败" -msgid "Initialize failed (Device connection not ready)!" -msgstr "初始化失败(设备未连接)" - msgid "" "Browsing file in SD card is not supported in current firmware. Please update " "the printer firmware." msgstr "当前固件暂不支持查看SD卡中文件。请更新打印机固件后重试。" -msgid "Initialize failed (Storage unavailable, insert SD card.)!" -msgstr "初始化失败(存储不可用,请插入 SD 卡)!" +msgid "" +"Please check if the SD card is inserted into the printer.\n" +"If it still cannot be read, you can try formatting the SD card." +msgstr "" msgid "LAN Connection Failed (Failed to view sdcard)" msgstr "局域网连接失败(无法查看SD卡)" @@ -5061,10 +5053,6 @@ msgstr "局域网连接失败(无法查看SD卡)" msgid "Browsing file in SD card is not supported in LAN Only Mode." msgstr "局域网模式下暂不支持查看SD卡内文件。" -#, c-format, boost-format -msgid "Initialize failed (%s)!" -msgstr "初始化失败(%s)!" - #, c-format, boost-format msgid "You are going to delete %u file from printer. Are you sure to continue?" msgid_plural "" @@ -5481,6 +5469,25 @@ msgstr "最新版本:" msgid "Not for now" msgstr "暂不" +msgid "Server Exception" +msgstr "" + +msgid "" +"The server is unable to respond. Please click the link below to check the " +"server status." +msgstr "" + +msgid "" +"If the server is in a fault state, you can temporarily use offline printing " +"or local network printing." +msgstr "" + +msgid "How to use LAN only mode" +msgstr "" + +msgid "Don't show this dialog again" +msgstr "" + msgid "3D Mouse disconnected." msgstr "3D鼠标断连。" @@ -6152,6 +6159,10 @@ msgstr "按项目打开" msgid "Import geometry only" msgstr "仅导入模型数据" +msgid "" +"This option can be changed later in preferences, under 'Load Behaviour'." +msgstr "" + msgid "Only one G-code file can be opened at the same time." msgstr "只能同时打开一个G-code文件。" @@ -6566,6 +6577,24 @@ msgstr "" msgid "Associate URLs to OrcaSlicer" msgstr "" +msgid "Load All" +msgstr "" + +msgid "Ask When Relevant" +msgstr "" + +msgid "Always Ask" +msgstr "" + +msgid "Load Geometry Only" +msgstr "" + +msgid "Load Behaviour" +msgstr "" + +msgid "Should printer/filament/process settings be loaded when opening a .3mf?" +msgstr "" + msgid "Maximum recent projects" msgstr "近期项目的最大数量" @@ -7106,6 +7135,9 @@ msgstr "修改打印机名称" msgid "Bind with Pin Code" msgstr "通过Pin码绑定" +msgid "Bind with Access Code" +msgstr "" + msgid "Send to Printer SD card" msgstr "发送到打印机的SD卡" @@ -7382,6 +7414,75 @@ msgstr "" "在录制无工具头延时摄影视频时,建议添加“延时摄影擦料塔”\n" "右键单击打印板的空白位置,选择“添加标准模型”->“延时摄影擦料塔”。" +msgid "" +"A copy of the current system preset will be created, which will be detached " +"from the system preset." +msgstr "" + +msgid "" +"The current custom preset will be detached from the parent system preset." +msgstr "" + +msgid "Modifications to the current profile will be saved." +msgstr "" + +msgid "" +"This action is not revertible.\n" +"Do you want to proceed?" +msgstr "" + +msgid "Detach preset" +msgstr "" + +msgid "This is a default preset." +msgstr "" + +msgid "This is a system preset." +msgstr "" + +msgid "Current preset is inherited from the default preset." +msgstr "" + +msgid "Current preset is inherited from" +msgstr "" + +msgid "It can't be deleted or modified." +msgstr "" + +msgid "" +"Any modifications should be saved as a new preset inherited from this one." +msgstr "" + +msgid "To do that please specify a new name for the preset." +msgstr "" + +msgid "Additional information:" +msgstr "" + +msgid "vendor" +msgstr "" + +msgid "printer model" +msgstr "" + +msgid "default print profile" +msgstr "" + +msgid "default filament profile" +msgstr "" + +msgid "default SLA material profile" +msgstr "" + +msgid "default SLA print profile" +msgstr "" + +msgid "full profile name" +msgstr "" + +msgid "symbolic profile name" +msgstr "" + msgid "Line width" msgstr "线宽" @@ -7477,6 +7578,12 @@ msgstr "后处理脚本" msgid "Notes" msgstr "注释" +msgid "Dependencies" +msgstr "" + +msgid "Profile dependencies" +msgstr "" + msgid "Frequent" msgstr "常用" @@ -8531,17 +8638,22 @@ msgstr "查看LiveView" msgid "Confirm and Update Nozzle" msgstr "确认并更新喷嘴" -msgid "LAN Connection Failed (Sending print file)" -msgstr "LAN连接失败 (发送打印文件)" +msgid "Connect the printer using IP and access code" +msgstr "" msgid "" -"Step 1, please confirm Orca Slicer and your printer are in the same LAN." -msgstr "第1步,请确认Orca Slicer和您的打印机在同一个LAN上。" +"Step 1. Please confirm Orca Slicer and your printer are in the same LAN." +msgstr "" msgid "" -"Step 2, if the IP and Access Code below are different from the actual values " +"Step 2. If the IP and Access Code below are different from the actual values " "on your printer, please correct them." -msgstr "步骤2, 如果下面的IP和访问码与打印机上的实际值不同,请输入正确的值。" +msgstr "" + +msgid "" +"Step 3. Please obtain the device SN from the printer side; it is usually " +"found in the device information on the printer screen." +msgstr "" msgid "IP" msgstr "" @@ -8549,17 +8661,38 @@ msgstr "" msgid "Access Code" msgstr "访问码" +msgid "Printer model" +msgstr "" + +msgid "Printer name" +msgstr "" + msgid "Where to find your printer's IP and Access Code?" msgstr "在哪里可以找到打印机的IP和访问码?" -msgid "Step 3: Ping the IP address to check for packet loss and latency." -msgstr "步骤3,请ping打印机的IP地址,以此检查丢包和延迟。" +msgid "Connect" +msgstr "" -msgid "Test" -msgstr "测试" +msgid "Manual Setup" +msgstr "" -msgid "IP and Access Code Verified! You may close the window" -msgstr "IP地址和访问码验证成功!您可以关闭此窗口。" +msgid "connecting..." +msgstr "" + +msgid "Failed to connect to printer." +msgstr "" + +msgid "Failed to publish login request." +msgstr "" + +msgid "The printer has already been bound." +msgstr "" + +msgid "The printer mode is incorrect, please switch to LAN Only." +msgstr "" + +msgid "Connecting to printer... The dialog will close later" +msgstr "" msgid "Connection failed, please double check IP and Access Code" msgstr "连接失败,请再次检查IP地址和访问码。" @@ -9433,41 +9566,45 @@ msgstr "仅顶层和底层" msgid "Nowhere" msgstr "不填充" -msgid "Force cooling for overhang and bridge" -msgstr "悬垂/桥接强制冷却" - -msgid "" -"Enable this option to optimize part cooling fan speed for overhang and " -"bridge to get better cooling" -msgstr "勾选这个选项将自动优化桥接和悬垂的风扇转速以获得更好的冷却" - -msgid "Fan speed for overhang" -msgstr "悬垂风扇速度" - -msgid "" -"Force part cooling fan to be this speed when printing bridge or overhang " -"wall which has large overhang degree. Forcing cooling for overhang and " -"bridge can get better quality for these part" +msgid "Force cooling for overhangs and bridges" msgstr "" -"当打印桥接和超过设定阈值的悬垂时,强制部件冷却风扇为设定的速度值。强制冷却能" -"够使悬垂和桥接获得更好的打印质量" -msgid "Cooling overhang threshold" -msgstr "冷却悬空阈值" - -#, c-format msgid "" -"Force cooling fan to be specific speed when overhang degree of printed part " -"exceeds this value. Expressed as percentage which indicates how much width " -"of the line without support from lower layer. 0% means forcing cooling for " -"all outer wall no matter how much overhang degree" +"Enable this option to allow adjustment of the part cooling fan speed for " +"specifically for overhangs, internal and external bridges. Setting the fan " +"speed specifically for these features can improve overall print quality and " +"reduce warping." msgstr "" -"当打印件的悬空程度超过此值时,强制冷却风扇达到特定速度。用百分比表示,表明没" -"有下层支撑的线的宽度是多少。0%%意味着无论悬垂程度如何,都要对所有外壁强制冷" -"却。" -msgid "Bridge infill direction" -msgstr "拉桥填充方向" +msgid "Overhangs and external bridges fan speed" +msgstr "" + +msgid "" +"Use this part cooling fan speed when printing bridges or overhang walls with " +"an overhang threshold that exceeds the value set in the 'Overhangs cooling " +"threshold' parameter above. Increasing the cooling specifically for " +"overhangs and bridges can improve the overall print quality of these " +"features.\n" +"\n" +"Please note, this fan speed is clamped on the lower end by the minimum fan " +"speed threshold set above. It is also adjusted upwards up to the maximum fan " +"speed threshold when the minimum layer time threshold is not met." +msgstr "" + +msgid "Overhang cooling activation threshold" +msgstr "" + +#, c-format, boost-format +msgid "" +"When the overhang exceeds this specified threshold, force the cooling fan to " +"run at the 'Overhang Fan Speed' set below. This threshold is expressed as a " +"percentage, indicating the portion of each line's width that is unsupported " +"by the layer beneath it. Setting this value to 0% forces the cooling fan to " +"run for all outer walls, regardless of the overhang degree." +msgstr "" + +msgid "External bridge infill direction" +msgstr "" msgid "" "Bridging angle override. If left to zero, the bridging angle will be " @@ -9477,11 +9614,45 @@ msgstr "" "搭桥角度覆盖。如果设置为零,该角度将自动计算。否则外部的桥接将用提供的值。" "180°表示0度。" -msgid "Bridge density" -msgstr "搭桥密度" +msgid "Internal bridge infill direction" +msgstr "" -msgid "Density of external bridges. 100% means solid bridge. Default is 100%." -msgstr "外部桥接的密度。100%意味着实心桥。默认值为100%。" +msgid "" +"Internal bridging angle override. If left to zero, the bridging angle will " +"be calculated automatically. Otherwise the provided angle will be used for " +"internal bridges. Use 180°for zero angle.\n" +"\n" +"It is recommended to leave it at 0 unless there is a specific model need not " +"to." +msgstr "" + +msgid "External bridge density" +msgstr "" + +msgid "" +"Controls the density (spacing) of external bridge lines. 100% means solid " +"bridge. Default is 100%.\n" +"\n" +"Lower density external bridges can help improve reliability as there is more " +"space for air to circulate around the extruded bridge, improving its cooling " +"speed." +msgstr "" + +msgid "Internal bridge density" +msgstr "" + +msgid "" +"Controls the density (spacing) of internal bridge lines. 100% means solid " +"bridge. Default is 100%.\n" +"\n" +" Lower density internal bridges can help reduce top surface pillowing and " +"improve internal bridge reliability as there is more space for air to " +"circulate around the extruded bridge, improving its cooling speed. \n" +"\n" +"This option works particularly well when combined with the second internal " +"bridge over infill option, further improving internal bridging structure " +"before solid infill is extruded." +msgstr "" msgid "Bridge flow ratio" msgstr "桥接流量" @@ -9533,10 +9704,8 @@ msgstr "精准外墙尺寸" msgid "" "Improve shell precision by adjusting outer wall spacing. This also improves " -"layer consistency.\n" -"Note: This setting will only take effect if the wall sequence is configured " -"to Inner-Outer" -msgstr "" +"layer consistency." +msgstr "优化外墙刀路以提高外墙精度。这个优化同时减少层纹" msgid "Only one wall on top surfaces" msgstr "顶面单层墙" @@ -9789,12 +9958,24 @@ msgstr "向上兼容的机器" msgid "Compatible machine condition" msgstr "兼容的机器的条件" +msgid "" +"A boolean expression using the configuration values of an active printer " +"profile. If this expression evaluates to true, this profile is considered " +"compatible with the active printer profile." +msgstr "" + msgid "Compatible process profiles" msgstr "兼容的切片配置" msgid "Compatible process profiles condition" msgstr "兼容的切片配置的条件" +msgid "" +"A boolean expression using the configuration values of an active print " +"profile. If this expression evaluates to true, this profile is considered " +"compatible with the active print profile." +msgstr "" + msgid "Print sequence, layer by layer or object by object" msgstr "打印顺序,逐层打印或者逐件打印" @@ -9885,8 +10066,8 @@ msgstr "" "不对整个桥接面进行支撑,否则支撑体会很大。不是很长的桥接通常可以无支撑直接打" "印。" -msgid "Thick bridges" -msgstr "厚桥" +msgid "Thick external bridges" +msgstr "" msgid "" "If enabled, bridges are more reliable, can bridge longer distances, but may " @@ -9907,36 +10088,86 @@ msgstr "" "如果启用,将使用厚内部桥接。通常建议打开此功能。但是,如果您使用大喷嘴,请考" "虑关闭它。" -msgid "Filter out small internal bridges (beta)" -msgstr "过滤细微内部桥接(试验)" +msgid "Extra bridge layers (beta)" +msgstr "" msgid "" -"This option can help reducing pillowing on top surfaces in heavily slanted " -"or curved models.\n" +"This option enables the generation of an extra bridge layer over internal " +"and/or external bridges.\n" +"\n" +"Extra bridge layers help improve bridge appearance and reliability, as the " +"solid infill is better supported. This is especially useful in fast " +"printers, where the bridge and solid infill speeds vary greatly. The extra " +"bridge layer results in reduced pillowing on top surfaces, as well as " +"reduced separation of the external bridge layer from its surrounding " +"perimeters.\n" +"\n" +"It is generally recommended to set this to at least 'External bridge only', " +"unless specific issues with the sliced model are found.\n" +"\n" +"Options:\n" +"1. Disabled - does not generate second bridge layers. This is the default " +"and is set for compatibility purposes.\n" +"2. External bridge only - generates second bridge layers for external-facing " +"bridges only. Please note that small bridges that are shorter or narrower " +"than the set number of perimeters will be skipped as they would not benefit " +"from a second bridge layer. If generated, the second bridge layer will be " +"extruded parallel to the first bridge layer to reinforce the bridge " +"strength.\n" +"3. Internal bridge only - generates second bridge layers for internal " +"bridges over sparse infill only. Please note that the internal bridges count " +"towards the top shell layer count of your model. The second internal bridge " +"layer will be extruded as close to perpendicular to the first as possible. " +"If multiple regions in the same island, with varying bridge angles are " +"present, the last region of that island will be selected as the angle " +"reference.\n" +"4. Apply to all - generates second bridge layers for both internal and " +"external-facing bridges\n" +msgstr "" + +msgid "Disabled" +msgstr "禁用" + +msgid "External bridge only" +msgstr "" + +msgid "Internal bridge only" +msgstr "" + +msgid "Apply to all" +msgstr "" + +msgid "Filter out small internal bridges" +msgstr "" + +msgid "" +"This option can help reduce pillowing on top surfaces in heavily slanted or " +"curved models.\n" "\n" "By default, small internal bridges are filtered out and the internal solid " "infill is printed directly over the sparse infill. This works well in most " "cases, speeding up printing without too much compromise on top surface " "quality. \n" "\n" -"However, in heavily slanted or curved models especially where too low sparse " -"infill density is used, this may result in curling of the unsupported solid " -"infill, causing pillowing.\n" +"However, in heavily slanted or curved models, especially where too low a " +"sparse infill density is used, this may result in curling of the unsupported " +"solid infill, causing pillowing.\n" "\n" -"Disabling this option will print internal bridge layer over slightly " -"unsupported internal solid infill. The options below control the amount of " -"filtering, i.e. the amount of internal bridges created.\n" +"Enabling limited filtering or no filtering will print internal bridge layer " +"over slightly unsupported internal solid infill. The options below control " +"the sensitivity of the filtering, i.e. they control where internal bridges " +"are created.\n" "\n" -"Filter - enable this option. This is the default behavior and works well in " -"most cases.\n" +"1. Filter - enables this option. This is the default behavior and works well " +"in most cases.\n" "\n" -"Limited filtering - creates internal bridges on heavily slanted surfaces, " -"while avoiding creating unnecessary internal bridges. This works well for " -"most difficult models.\n" +"2. Limited filtering - creates internal bridges on heavily slanted surfaces " +"while avoiding unnecessary bridges. This works well for most difficult " +"models.\n" "\n" -"No filtering - creates internal bridges on every potential internal " -"overhang. This option is useful for heavily slanted top surface models. " -"However, in most cases it creates too many unnecessary bridges." +"3. No filtering - creates internal bridges on every potential internal " +"overhang. This option is useful for heavily slanted top surface models; " +"however, in most cases, it creates too many unnecessary bridges." msgstr "" msgid "Filter" @@ -10746,6 +10977,9 @@ msgstr "内部稀疏填充的走线图案" msgid "Grid" msgstr "网格" +msgid "2D Lattice" +msgstr "" + msgid "Line" msgstr "线" @@ -10776,6 +11010,25 @@ msgstr "闪电" msgid "Cross Hatch" msgstr "交叉层叠" +msgid "Quarter Cubic" +msgstr "" + +msgid "Lattice angle 1" +msgstr "" + +msgid "" +"The angle of the first set of 2D lattice elements in the Z direction. Zero " +"is vertical." +msgstr "" + +msgid "Lattice angle 2" +msgstr "" + +msgid "" +"The angle of the second set of 2D lattice elements in the Z direction. Zero " +"is vertical." +msgstr "" + msgid "Sparse infill anchor length" msgstr "稀疏填充锚线长度" @@ -10967,11 +11220,25 @@ msgid "Support interface fan speed" msgstr "支撐接触面风扇" msgid "" -"This fan speed is enforced during all support interfaces, to be able to " -"weaken their bonding with a high fan speed.\n" -"Set to -1 to disable this override.\n" -"Can only be overridden by disable_fan_first_layers." -msgstr "此风扇速度在所有支撑接触层打印期间强制执行" +"This part cooling fan speed is applied when printing support interfaces. " +"Setting this parameter to a higher than regular speed reduces the layer " +"binding strength between supports and the supported part, making them easier " +"to separate.\n" +"Set to -1 to disable it.\n" +"This setting is overridden by disable_fan_first_layers." +msgstr "" + +msgid "Internal bridges fan speed" +msgstr "" + +msgid "" +"The part cooling fan speed used for all internal bridges. Set to -1 to use " +"the overhang fan speed settings instead.\n" +"\n" +"Reducing the internal bridges fan speed, compared to your regular fan speed, " +"can help reduce part warping due to excessive cooling applied over a large " +"surface for a prolonged period of time." +msgstr "" msgid "" "Randomly jitter while printing the wall, so that the surface has a rough " @@ -11009,6 +11276,59 @@ msgstr "绒毛表面应用至首层" msgid "Whether to apply fuzzy skin on the first layer" msgstr "" +msgid "Fuzzy skin noise type" +msgstr "" + +msgid "" +"Noise type to use for fuzzy skin generation.\n" +"Classic: Classic uniform random noise.\n" +"Perlin: Perlin noise, which gives a more consistent texture.\n" +"Billow: Similar to perlin noise, but clumpier.\n" +"Ridged Multifractal: Ridged noise with sharp, jagged features. Creates " +"marble-like textures.\n" +"Voronoi: Divides the surface into voronoi cells, and displaces each one by a " +"random amount. Creates a patchwork texture." +msgstr "" + +msgid "Classic" +msgstr "经典" + +msgid "Perlin" +msgstr "" + +msgid "Billow" +msgstr "" + +msgid "Ridged Multifractal" +msgstr "" + +msgid "Voronoi" +msgstr "" + +msgid "Fuzzy skin feature size" +msgstr "" + +msgid "" +"The base size of the coherent noise features, in mm. Higher values will " +"result in larger features." +msgstr "" + +msgid "Fuzzy Skin Noise Octaves" +msgstr "" + +msgid "" +"The number of octaves of coherent noise to use. Higher values increase the " +"detail of the noise, but also increase computation time." +msgstr "" + +msgid "Fuzzy skin noise persistence" +msgstr "" + +msgid "" +"The decay rate for higher octaves of the coherent noise. Lower values will " +"result in smoother noise." +msgstr "" + msgid "Filter out tiny gaps" msgstr "忽略微小间隙" @@ -11416,6 +11736,14 @@ msgstr "熨烫间距" msgid "The distance between the lines of ironing" msgstr "熨烫走线的间距" +msgid "Ironing inset" +msgstr "" + +msgid "" +"The distance to keep from the edges. A value of 0 sets this to half of the " +"nozzle diameter" +msgstr "" + msgid "Ironing speed" msgstr "熨烫速度" @@ -11660,7 +11988,17 @@ msgid "" "Default value of 3 works well for most cases. If your printer is stuttering, " "increase this value to reduce the number of adjustments made\n" "\n" -"Allowed values: 1-5" +"Allowed values: 0.5-5" +msgstr "" + +msgid "Apply only on external features" +msgstr "" + +msgid "" +"Applies extrusion rate smoothing only on external perimeters and overhangs. " +"This can help reduce artefacts due to sharp speed transitions on externally " +"visible overhangs without impacting the print speed of features that will " +"not be visible to the user." msgstr "" msgid "Minimum speed for part cooling fan" @@ -11689,12 +12027,10 @@ msgid "Min print speed" msgstr "最小打印速度" msgid "" -"The minimum printing speed that the printer will slow down to to attempt to " -"maintain the minimum layer time above, when slow down for better layer " -"cooling is enabled." +"The minimum print speed to which the printer slows down to maintain the " +"minimum layer time defined above when the slowdown for better layer cooling " +"is enabled." msgstr "" -"在您启用“降低打印速度 以得到更好的冷却”选项时最小的打印速度,以尝试保持上方设" -"置的最小层时间。" msgid "Diameter of nozzle" msgstr "喷嘴直径" @@ -12358,9 +12694,6 @@ msgstr "" "注意:启用风挡后,skirt将会在距离模型'skirt距离'的地方打印。因此,如果brim启" "用,可能会与其相交。为了避免这种情况,增加skirt距离值。\n" -msgid "Disabled" -msgstr "禁用" - msgid "Enabled" msgstr "启用" @@ -12612,24 +12945,22 @@ msgid "Enable support generation." msgstr "开启支撑生成。" msgid "" -"normal(auto) and tree(auto) is used to generate support automatically. If " -"normal(manual) or tree(manual) is selected, only support enforcers are " +"Normal (auto) and Tree (auto) is used to generate support automatically. If " +"Normal (manual) or Tree (manual) is selected, only support enforcers are " "generated" msgstr "" -"普通(自动)和树状(自动)用于自动生成支撑体。如果选择普通(手动)或树状(手" -"动),仅会在支撑强制面上生成支撑。" -msgid "normal(auto)" -msgstr "普通(自动)" +msgid "Normal (auto)" +msgstr "" -msgid "tree(auto)" -msgstr "树状(自动)" +msgid "Tree (auto)" +msgstr "" -msgid "normal(manual)" -msgstr "普通(手动)" +msgid "Normal (manual)" +msgstr "" -msgid "tree(manual)" -msgstr "树状(手动)" +msgid "Tree (manual)" +msgstr "" msgid "Support/object xy distance" msgstr "支撑/模型xy间距" @@ -12834,6 +13165,15 @@ msgid "" "threshold." msgstr "将会为悬垂角度低于阈值的模型表面生成支撑。" +msgid "Threshold overlap" +msgstr "" + +msgid "" +"If threshold angle is zero, support will be generated for overhangs whose " +"overlap is below the threshold. The smaller this value is, the steeper the " +"overhang that can be printed without support." +msgstr "" + msgid "Tree support branch angle" msgstr "树状支撑分支角度" @@ -13331,9 +13671,6 @@ msgstr "" "经典墙生成器产生的墙走线具有一致的挤出宽度,对狭窄区域使用填缝。Arachne引擎则" "产生变线宽的墙走线" -msgid "Classic" -msgstr "经典" - msgid "Arachne" msgstr "Arachne" @@ -15201,6 +15538,9 @@ msgstr "物理打印机" msgid "Print Host upload" msgstr "打印主机上传" +msgid "Test" +msgstr "测试" + msgid "Could not get a valid Printer Host reference" msgstr "无法获取有效的打印机主机引用" @@ -15986,6 +16326,128 @@ msgstr "" "避免翘曲\n" "您知道吗?打印ABS这类易翘曲材料时,适当提高热床温度可以降低翘曲的概率。" +#~ msgid "Current Cabin humidity" +#~ msgstr "当前舱内湿度" + +#~ msgid "Stopped." +#~ msgstr "已经停止。" + +#, c-format, boost-format +#~ msgid "Connect failed [%d]!" +#~ msgstr "连接失败 [%d]!" + +#~ msgid "Initialize failed (Device connection not ready)!" +#~ msgstr "初始化失败(设备未连接)" + +#~ msgid "Initialize failed (Storage unavailable, insert SD card.)!" +#~ msgstr "初始化失败(存储不可用,请插入 SD 卡)!" + +#, c-format, boost-format +#~ msgid "Initialize failed (%s)!" +#~ msgstr "初始化失败(%s)!" + +#~ msgid "LAN Connection Failed (Sending print file)" +#~ msgstr "LAN连接失败 (发送打印文件)" + +#~ msgid "" +#~ "Step 1, please confirm Orca Slicer and your printer are in the same LAN." +#~ msgstr "第1步,请确认Orca Slicer和您的打印机在同一个LAN上。" + +#~ msgid "" +#~ "Step 2, if the IP and Access Code below are different from the actual " +#~ "values on your printer, please correct them." +#~ msgstr "步骤2, 如果下面的IP和访问码与打印机上的实际值不同,请输入正确的值。" + +#~ msgid "Step 3: Ping the IP address to check for packet loss and latency." +#~ msgstr "步骤3,请ping打印机的IP地址,以此检查丢包和延迟。" + +#~ msgid "IP and Access Code Verified! You may close the window" +#~ msgstr "IP地址和访问码验证成功!您可以关闭此窗口。" + +#~ msgid "Force cooling for overhang and bridge" +#~ msgstr "悬垂/桥接强制冷却" + +#~ msgid "" +#~ "Enable this option to optimize part cooling fan speed for overhang and " +#~ "bridge to get better cooling" +#~ msgstr "勾选这个选项将自动优化桥接和悬垂的风扇转速以获得更好的冷却" + +#~ msgid "Fan speed for overhang" +#~ msgstr "悬垂风扇速度" + +#~ msgid "" +#~ "Force part cooling fan to be this speed when printing bridge or overhang " +#~ "wall which has large overhang degree. Forcing cooling for overhang and " +#~ "bridge can get better quality for these part" +#~ msgstr "" +#~ "当打印桥接和超过设定阈值的悬垂时,强制部件冷却风扇为设定的速度值。强制冷却" +#~ "能够使悬垂和桥接获得更好的打印质量" + +#~ msgid "Cooling overhang threshold" +#~ msgstr "冷却悬空阈值" + +#, c-format +#~ msgid "" +#~ "Force cooling fan to be specific speed when overhang degree of printed " +#~ "part exceeds this value. Expressed as percentage which indicates how much " +#~ "width of the line without support from lower layer. 0% means forcing " +#~ "cooling for all outer wall no matter how much overhang degree" +#~ msgstr "" +#~ "当打印件的悬空程度超过此值时,强制冷却风扇达到特定速度。用百分比表示,表明" +#~ "没有下层支撑的线的宽度是多少。0%%意味着无论悬垂程度如何,都要对所有外壁强" +#~ "制冷却。" + +#~ msgid "Bridge infill direction" +#~ msgstr "拉桥填充方向" + +#~ msgid "Bridge density" +#~ msgstr "搭桥密度" + +#~ msgid "" +#~ "Density of external bridges. 100% means solid bridge. Default is 100%." +#~ msgstr "外部桥接的密度。100%意味着实心桥。默认值为100%。" + +#~ msgid "Thick bridges" +#~ msgstr "厚桥" + +#~ msgid "Filter out small internal bridges (beta)" +#~ msgstr "过滤细微内部桥接(试验)" + +#~ msgid "" +#~ "This fan speed is enforced during all support interfaces, to be able to " +#~ "weaken their bonding with a high fan speed.\n" +#~ "Set to -1 to disable this override.\n" +#~ "Can only be overridden by disable_fan_first_layers." +#~ msgstr "此风扇速度在所有支撑接触层打印期间强制执行" + +#~ msgid "" +#~ "The minimum printing speed that the printer will slow down to to attempt " +#~ "to maintain the minimum layer time above, when slow down for better layer " +#~ "cooling is enabled." +#~ msgstr "" +#~ "在您启用“降低打印速度 以得到更好的冷却”选项时最小的打印速度,以尝试保持上" +#~ "方设置的最小层时间。" + +#~ msgid "" +#~ "normal(auto) and tree(auto) is used to generate support automatically. If " +#~ "normal(manual) or tree(manual) is selected, only support enforcers are " +#~ "generated" +#~ msgstr "" +#~ "普通(自动)和树状(自动)用于自动生成支撑体。如果选择普通(手动)或树状" +#~ "(手动),仅会在支撑强制面上生成支撑。" + +#~ msgid "normal(auto)" +#~ msgstr "普通(自动)" + +#~ msgid "tree(auto)" +#~ msgstr "树状(自动)" + +#~ msgid "normal(manual)" +#~ msgstr "普通(手动)" + +#~ msgid "tree(manual)" +#~ msgstr "树状(手动)" + #~ msgid "ShiftLeft mouse button" #~ msgstr "Shift + 鼠标左键" @@ -16534,11 +16996,6 @@ msgstr "" #~ msgid "Configuration package updated to " #~ msgstr "配置包已更新到" -#~ msgid "" -#~ "Improve shell precision by adjusting outer wall spacing. This also " -#~ "improves layer consistency." -#~ msgstr "优化外墙刀路以提高外墙精度。这个优化同时减少层纹" - #~ msgid "No sparse layers (EXPERIMENTAL)" #~ msgstr "无稀疏层(实验)" diff --git a/localization/i18n/zh_TW/OrcaSlicer_zh_TW.po b/localization/i18n/zh_TW/OrcaSlicer_zh_TW.po index c439d5bdfa..12cde969b1 100644 --- a/localization/i18n/zh_TW/OrcaSlicer_zh_TW.po +++ b/localization/i18n/zh_TW/OrcaSlicer_zh_TW.po @@ -1,23 +1,23 @@ # Copyright (C) 2019 THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST Translator Jiang Yue , 2019. -# REVISED Victor Lin, 2024. -# REVISED Shuwn Hsu, 2024. +# REVISED lin-ycv , 2024. +# REVISED Shuwn Hsu, 2024. # msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-01-04 17:35+0100\n" -"PO-Revision-Date: 2024-12-31 23:58+0800\n" -"Last-Translator: lin-ycv \n" +"POT-Creation-Date: 2025-02-14 23:42+0800\n" +"PO-Revision-Date: 2025-01-11 10:54+0800\n" +"Last-Translator: Shuwn Hsu\n" "Language-Team: \n" "Language: zh_TW\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Poedit 3.4.1\n" +"X-Generator: Poedit 3.5\n" msgid "Supports Painting" msgstr "支撐筆刷" @@ -156,7 +156,7 @@ msgid "Height range" msgstr "高度範圍" msgid "Alt + Shift + Enter" -msgstr "" +msgstr "Alt + Shift + Enter" msgid "Toggle Wireframe" msgstr "顯示/隱藏線框" @@ -181,7 +181,7 @@ msgstr "移除已繪製的顏色" #, boost-format msgid "Painted using: Filament %1%" -msgstr "上色:線材 %1% " +msgstr "上色:線材 %1%" msgid "Move" msgstr "移動" @@ -228,7 +228,6 @@ msgstr "旋轉" msgid "Scale ratios" msgstr "縮放比例" -#, fuzzy msgid "Object Operations" msgstr "物件操作" @@ -239,7 +238,7 @@ msgid "Translate" msgstr "平移" msgid "Group Operations" -msgstr "裙組操作" +msgstr "群組操作" msgid "Set Position" msgstr "設定位置" @@ -257,10 +256,10 @@ msgid "Reset Rotation" msgstr "重設旋轉" msgid "World coordinates" -msgstr "世界坐標" +msgstr "世界座標" msgid "Object coordinates" -msgstr "物件坐標" +msgstr "物件座標" msgid "°" msgstr "°" @@ -294,7 +293,7 @@ msgid "Dowel" msgstr "銷釘" msgid "Snap" -msgstr "" +msgstr "卡扣" msgid "Prism" msgstr "錐體" @@ -336,7 +335,7 @@ msgid "Depth" msgstr "深度" msgid "Groove" -msgstr "溝槽" +msgstr "凹槽" msgid "Width" msgstr "寬度" @@ -364,7 +363,10 @@ msgid "" "Click to flip the cut plane\n" "Drag to move the cut plane\n" "Right-click a part to assign it to the other side" -msgstr "點擊翻轉切割面拖曳移動切割面右鍵點擊零件切換為另一側" +msgstr "" +"點擊翻轉切割平面\n" +"拖曳移動切割平面\n" +"右鍵點擊部件以將其分配到對側" msgid "Move cut plane" msgstr "移動切割面" @@ -418,16 +420,16 @@ msgid "Remove connectors" msgstr "刪除所有連接件" msgid "Bulge" -msgstr "" +msgstr "凸起" msgid "Bulge proportion related to radius" -msgstr "" +msgstr "與半徑相關的凸起比例" msgid "Space" msgstr "空格鍵" msgid "Space proportion related to radius" -msgstr "" +msgstr "與半徑相關的空間佔比" msgid "Confirm connectors" msgstr "確認" @@ -442,7 +444,7 @@ msgid "Flip cut plane" msgstr "翻轉切割面" msgid "Groove change" -msgstr "" +msgstr "凹槽調整" msgid "Reset" msgstr "重設" @@ -499,12 +501,12 @@ msgstr "偵測到無效連接件" #, c-format, boost-format msgid "%1$d connector is out of cut contour" msgid_plural "%1$d connectors are out of cut contour" -msgstr[0] "" +msgstr[0] "有 %1$d 個連接件超出切割範圍" #, c-format, boost-format msgid "%1$d connector is out of object" msgid_plural "%1$d connectors are out of object" -msgstr[0] "%1$d連接件在物件外" +msgstr[0] "有 %1$d 個連接件不在物體範圍內" msgid "Some connectors are overlapped" msgstr "存在連接件相互重疊" @@ -516,7 +518,7 @@ msgid "Cut plane is placed out of object" msgstr "切割面在物件外" msgid "Cut plane with groove is invalid" -msgstr "" +msgstr "帶有凹槽的切割平面無效" msgid "Connector" msgstr "連接件" @@ -537,7 +539,7 @@ msgid "Delete connector" msgstr "刪除連接件" msgid "Mesh name" -msgstr "Mesh名" +msgstr "Mesh 名稱" msgid "Detail level" msgstr "細節等級" @@ -607,28 +609,26 @@ msgstr "筆刷尺寸" msgid "Brush shape" msgstr "筆刷形狀" -#, fuzzy msgid "Enforce seam" -msgstr "新增Z縫產生區" +msgstr "新增 Z 縫產生區" -#, fuzzy msgid "Block seam" -msgstr "不產生Z縫區" +msgstr "不產生 Z 縫區" msgid "Seam painting" -msgstr "Z縫筆刷" +msgstr "Z 縫筆刷" msgid "Remove selection" msgstr "移除繪製" msgid "Entering Seam painting" -msgstr "" +msgstr "進入 Z 縫繪製模式" msgid "Leaving Seam painting" -msgstr "" +msgstr "退出 Z 縫繪製模式" msgid "Paint-on seam editing" -msgstr "" +msgstr "Z 縫筆刷編輯" #. TRN - Input label. Be short as possible #. Select look of letter shape @@ -682,13 +682,13 @@ msgid "Embossed text" msgstr "浮雕文字" msgid "Enter emboss gizmo" -msgstr "" +msgstr "進入浮雕工具" msgid "Leave emboss gizmo" -msgstr "" +msgstr "退出浮雕工具" msgid "Embossing actions" -msgstr "" +msgstr "浮雕操作" msgid "Emboss" msgstr "浮雕" @@ -703,13 +703,13 @@ msgid "ITALIC" msgstr "斜體" msgid "SWISS" -msgstr "" +msgstr "SWISS" msgid "MODERN" -msgstr "" +msgstr "MODERN" msgid "First font" -msgstr "" +msgstr "First font" msgid "Default font" msgstr "預設字型" @@ -720,7 +720,7 @@ msgstr "高級" msgid "" "The text cannot be written using the selected font. Please try choosing a " "different font." -msgstr "文字與字型不相容,請選擇其他的字型" +msgstr "文字與字型不相容,請選擇其他的字型。" msgid "Embossed text cannot contain only white spaces." msgstr "浮雕文字不能僅包含空白字元。" @@ -728,27 +728,26 @@ msgstr "浮雕文字不能僅包含空白字元。" msgid "Text contains character glyph (represented by '?') unknown by font." msgstr "文字包含字型無法識別的字形(以 '?' 表示)。" - msgid "Text input doesn't show font skew." -msgstr "" +msgstr "文字輸入未呈現字體的傾斜效果。" msgid "Text input doesn't show font boldness." -msgstr "" +msgstr "文字輸入呈現示字體的粗體效果。" msgid "Text input doesn't show gap between lines." -msgstr "" +msgstr "文字輸入未呈現行距效果。" msgid "Too tall, diminished font height inside text input." -msgstr "" +msgstr "過高,已縮小文字輸入框內的字體高度。" msgid "Too small, enlarged font height inside text input." -msgstr "" +msgstr "太小,已增大文字輸入框內的字體高度。" msgid "Text doesn't show current horizontal alignment." -msgstr "" +msgstr "文字未呈現當前的水平對齊狀態。" msgid "Revert font changes." -msgstr "" +msgstr "還原字體設定變更。" #, boost-format msgid "Font \"%1%\" can't be selected." @@ -777,7 +776,7 @@ msgid "Modifier" msgstr "修改器" msgid "Click to change part type into modifier." -msgstr "點擊將零件類型變更為修改器" +msgstr "點擊將零件類型變更為修改器。" msgid "Change Text Type" msgstr "更改文字類型" @@ -786,79 +785,78 @@ msgstr "更改文字類型" msgid "Rename style(%1%) for embossing text" msgstr "重新命名浮雕文字樣式 (%1%)" - msgid "Name can't be empty." -msgstr "名稱不可空白" +msgstr "名稱不可空白。" msgid "Name has to be unique." -msgstr "名稱必須是獨特的" +msgstr "名稱必須是獨特的。" msgid "OK" msgstr "確認" msgid "Rename style" -msgstr "" +msgstr "更改樣式名稱" msgid "Rename current style." -msgstr "" +msgstr "更改目前樣式名稱。" msgid "Can't rename temporary style." -msgstr "" +msgstr "無法更改臨時樣式名稱。" msgid "First Add style to list." -msgstr "" +msgstr "首先將樣式添加到列表中。" #, boost-format msgid "Save %1% style" -msgstr "" +msgstr "儲存 %1% 的樣式" msgid "No changes to save." -msgstr "" +msgstr "無需保存,因為沒有變更。" msgid "New name of style" -msgstr "" +msgstr "新樣式名稱" msgid "Save as new style" -msgstr "" +msgstr "儲存為新的樣式" msgid "Only valid font can be added to style." -msgstr "" +msgstr "只有有效字體才能加入樣式。" msgid "Add style to my list." -msgstr "" +msgstr "把樣式加入我的列表。" msgid "Save as new style." -msgstr "" +msgstr "儲存為全新的樣式。" msgid "Remove style" -msgstr "" +msgstr "刪除樣式" msgid "Can't remove the last existing style." -msgstr "" +msgstr "無法刪除僅存的樣式。" #, boost-format msgid "Are you sure you want to permanently remove the \"%1%\" style?" -msgstr "" +msgstr "你確定要永久移除「%1%」樣式嗎?" #, boost-format msgid "Delete \"%1%\" style." -msgstr "" +msgstr "刪除「%1%」樣式。" #, boost-format msgid "Can't delete \"%1%\". It is last style." -msgstr "" +msgstr "無法刪除「%1%」,因為它是僅存的樣式。" #, boost-format msgid "Can't delete temporary style \"%1%\"." -msgstr "" +msgstr "無法刪除臨時樣式「%1%」。" #, boost-format msgid "Modified style \"%1%\"" -msgstr "" +msgstr "已修改樣式「%1%」" #, boost-format msgid "Current style is \"%1%\"" -msgstr "" +msgstr "當前樣式為「%1%」" #, boost-format msgid "" @@ -866,13 +864,16 @@ msgid "" "\n" "Would you like to continue anyway?" msgstr "" +"將樣式更改為「%1%」會捨棄當前的樣式修改。\n" +"\n" +"你確定要繼續嗎?" msgid "Not valid style." -msgstr "" +msgstr "無效的樣式。" #, boost-format msgid "Style \"%1%\" can't be used and will be removed from a list." -msgstr "" +msgstr "樣式「%1%」無法使用,將從列表中移除。" msgid "Unset italic" msgstr "取消斜體" @@ -887,10 +888,10 @@ msgid "Set bold" msgstr "粗體" msgid "Revert text size." -msgstr "恢復文字大小" +msgstr "恢復文字大小。" msgid "Revert embossed depth." -msgstr "恢復浮雕深度" +msgstr "恢復浮雕深度。" msgid "" "Advanced options cannot be changed for the selected font.\n" @@ -900,16 +901,16 @@ msgstr "" "請選擇其他字型。" msgid "Revert using of model surface." -msgstr "" +msgstr "還原模型表面的應用設定。" msgid "Revert Transformation per glyph." -msgstr "" +msgstr "重置每個字形的變更設定。" msgid "Set global orientation for whole text." -msgstr "" +msgstr "設定整段文字的全域座標。" msgid "Set position and orientation per glyph." -msgstr "" +msgstr "設定每個字形的位置和方向。" msgctxt "Alignment" msgid "Left" @@ -936,11 +937,11 @@ msgid "Bottom" msgstr "底部" msgid "Revert alignment." -msgstr "恢復對齊" +msgstr "恢復對。" #. TRN EmbossGizmo: font units msgid "points" -msgstr "pt" +msgstr "點" msgid "Revert gap between characters" msgstr "恢復字元間距" @@ -958,25 +959,25 @@ msgid "Undo boldness" msgstr "恢復粗體" msgid "Tiny / Wide glyphs" -msgstr "" +msgstr "細小 / 寬大字形」" msgid "Undo letter's skew" msgstr "恢復文字變形" msgid "Italic strength ratio" -msgstr "" +msgstr "斜體效果的強度比例" msgid "Undo translation" msgstr "恢復移動" msgid "Distance of the center of the text to the model surface." -msgstr "文字中心到模型表面的距離" +msgstr "文字中心到模型表面的距離。" msgid "Undo rotation" msgstr "恢復旋轉" msgid "Rotate text Clock-wise." -msgstr "文字順時針旋轉" +msgstr "文字順時針旋轉。" msgid "Unlock the text's rotation when moving text along the object's surface." msgstr "在沿物體表面移動文字時解鎖文字旋轉。" @@ -998,11 +999,11 @@ msgid "" "Can't load exactly same font(\"%1%\"). Application selected a similar " "one(\"%2%\"). You have to specify font for enable edit text." msgstr "" -"無法載入完全相同的字型(\"%1%\")。應用程式選擇了相似的字型(\"%2%\")。必須" -"指定字型才能啟用文字編輯。" +"無法加載完全相同的字體 (\"%1%\")。已自動選擇相似的字體 (\"%2%\")。若要啟用文" +"字編輯,請指定字體。" msgid "No symbol" -msgstr "" +msgstr "沒有任何字符" msgid "Loading" msgstr "載入中" @@ -1042,12 +1043,12 @@ msgstr "行間距" #. TRN - Input label. Be short as possible msgid "Boldness" -msgstr "" +msgstr "粗細" #. TRN - Input label. Be short as possible #. Like Font italic msgid "Skew ratio" -msgstr "" +msgstr "傾斜比率" #. TRN - Input label. Be short as possible #. Distance from model surface to be able @@ -1060,33 +1061,33 @@ msgstr "從面" #. TRN - Input label. Be short as possible #. Keep vector from bottom to top of text aligned with printer Y axis msgid "Keep up" -msgstr "" +msgstr "保持向上" #. TRN - Input label. Be short as possible. #. Some Font file contain multiple fonts inside and #. this is numerical selector of font inside font collections msgid "Collection" -msgstr "" +msgstr "字集" #. TRN - Title in Undo/Redo stack after rotate with SVG around emboss axe msgid "SVG rotate" -msgstr "SVG旋轉" +msgstr "SVG 旋轉" #. TRN - Title in Undo/Redo stack after move with SVG along emboss axe - From surface msgid "SVG move" -msgstr "SVG移動" +msgstr "SVG 移動" msgid "Enter SVG gizmo" -msgstr "" +msgstr "進入 SVG 工具" msgid "Leave SVG gizmo" -msgstr "" +msgstr "退出 SVG 工具" msgid "SVG actions" -msgstr "" +msgstr "SVG 操作" msgid "SVG" -msgstr "" +msgstr "SVG" #, boost-format msgid "Opacity (%1%)" @@ -1106,13 +1107,13 @@ msgid "Radial gradient" msgstr "徑向漸層" msgid "Open filled path" -msgstr "" +msgstr "打開填充路徑" msgid "Undefined stroke type" -msgstr "" +msgstr "未定義的筆劃類型" msgid "Path can't be healed from self-intersection and multiple points." -msgstr "" +msgstr "無法修復具有自交錯和多點的路徑。" msgid "" "Final shape contains self-intersection or multiple points with same " @@ -1126,15 +1127,15 @@ msgstr "形狀被標記為隱形 (%1%)。" #. TRN: The first placeholder is shape identifier, the second one is text describing the problem. #, boost-format msgid "Fill of shape (%1%) contains unsupported: %2%." -msgstr "" +msgstr "形狀 (%1%) 的填充包含不支援的內容:%2%。" #, boost-format msgid "Stroke of shape (%1%) is too thin (minimal width is %2% mm)." -msgstr "" +msgstr "形狀 (%1%) 的筆劃過細(最小寬度為 %2% 毫米)" #, boost-format msgid "Stroke of shape (%1%) contains unsupported: %2%." -msgstr "" +msgstr "形狀 (%1%) 的筆劃包含不支援的內容:%2%。" msgid "Face the camera" msgstr "面向相機" @@ -1163,14 +1164,16 @@ msgid "" "Do NOT save local path to 3MF file.\n" "Also disables 'reload from disk' option." msgstr "" +"不要將本地路徑保存到 3MF 文件中。\n" +"同時禁用「從磁碟重新載入」選項。" #. TRN: An menu option to convert the SVG into an unmodifiable model part. msgid "Bake" -msgstr "" +msgstr "固化" #. TRN: Tooltip for the menu item. msgid "Bake into model as uneditable part" -msgstr "" +msgstr "固化至模型中作為不可編輯部分" msgid "Save as" msgstr "儲存為" @@ -1182,18 +1185,18 @@ msgid "Save as '.svg' file" msgstr "儲存為 '.svg' 檔案" msgid "Size in emboss direction." -msgstr "" +msgstr "浮雕方向的尺寸。" #. TRN: The placeholder contains a number. #, boost-format msgid "Scale also changes amount of curve samples (%1%)" -msgstr "" +msgstr "縮放同時會改變曲線取樣數量(%1%)。" msgid "Width of SVG." -msgstr "SVG寬" +msgstr "SVG 寬。" msgid "Height of SVG." -msgstr "SVG高" +msgstr "SVG 高。" msgid "Lock/unlock the aspect ratio of the SVG." msgstr "鎖定/解鎖 SVG 的長寬比。" @@ -1205,13 +1208,13 @@ msgid "Distance of the center of the SVG to the model surface." msgstr "SVG 中心到模型表面的距離。" msgid "Reset distance" -msgstr "" +msgstr "重置距離" msgid "Reset rotation" msgstr "重置旋轉" msgid "Lock/unlock rotation angle when dragging above the surface." -msgstr "" +msgstr "拖曳於表面時,鎖定/解鎖旋轉角度。" msgid "Mirror vertically" msgstr "垂直鏡像" @@ -1236,7 +1239,7 @@ msgstr "檔案不存在(%1%)。" #, boost-format msgid "Filename has to end with \".svg\" but you selected %1%" -msgstr "副檔名必須為 \".svg\" ,但選擇的是 %1%。" +msgstr "副檔名必須為 \".svg\" ,但選擇的是 %1%" #, boost-format msgid "Nano SVG parser can't load from file (%1%)." @@ -1280,30 +1283,30 @@ msgid "Delete" msgstr "刪除" msgid "Restart selection" -msgstr "" +msgstr "重新開始選取" msgid "Esc" msgstr "Esc" msgid "Cancel a feature until exit" -msgstr "" +msgstr "在退出前取消功能" msgid "Measure" msgstr "測量" msgid "" "Please confirm explosion ratio = 1,and please select at least one object" -msgstr "" +msgstr "請確認爆炸比例設為 1,並至少選擇一個物件" msgid "Please select at least one object." -msgstr "" +msgstr "請選擇至少一個物件。" msgid "Edit to scale" -msgstr "" +msgstr "編輯比例" msgctxt "Verb" msgid "Scale all" -msgstr "" +msgstr "全部縮放" msgid "None" msgstr "無" @@ -1318,40 +1321,42 @@ msgid "Selection" msgstr "所選項目" msgid " (Moving)" -msgstr "" +msgstr " (移動)" msgid "" "Select 2 faces on objects and \n" " make objects assemble together." -msgstr "" +msgstr "選擇物件上的兩個面,使物件組裝在一起。" msgid "" "Select 2 points or circles on objects and \n" " specify distance between them." -msgstr "" +msgstr "選擇物件上的兩個點或圓,指定它們之間的距離。" msgid "Face" -msgstr "" +msgstr "面" msgid " (Fixed)" -msgstr "" +msgstr " (固定)" msgid "Point" -msgstr "" +msgstr "點" msgid "" "Feature 1 has been reset, \n" "feature 2 has been feature 1" msgstr "" +"特徵 1 已重設,\n" +"特徵 2 已變為特徵 1" msgid "Warning:please select Plane's feature." -msgstr "" +msgstr "警告:請選擇平面的特徵。" msgid "Warning:please select Point's or Circle's feature." -msgstr "" +msgstr "警告:請選擇點或圓的特徵。" msgid "Warning:please select two different mesh." -msgstr "" +msgstr "警告:請選擇兩個不同的網格。" msgid "Copy to clipboard" msgstr "複製到剪貼簿" @@ -1363,31 +1368,31 @@ msgid "Distance" msgstr "距離" msgid "Direct distance" -msgstr "" +msgstr "直接距離" msgid "Distance XYZ" -msgstr "XYZ距離" +msgstr "XYZ 距離" msgid "Parallel" -msgstr "" +msgstr "平行" msgid "Center coincidence" -msgstr "" +msgstr "中心重合" msgid "Featue 1" -msgstr "" +msgstr "特徵 1" msgid "Reverse rotation" -msgstr "" +msgstr "反向旋轉" msgid "Rotate around center:" -msgstr "" +msgstr "圍繞中心旋轉:" msgid "Parallel distance:" -msgstr "" +msgstr "平行距離:" msgid "Flip by Face 2" -msgstr "" +msgstr "通過面 2 翻轉" msgid "Ctrl+" msgstr "Ctrl+" @@ -1403,7 +1408,7 @@ msgid "%1% was replaced with %2%" msgstr "%1% 已被 %2% 替換" msgid "The configuration may be generated by a newer version of OrcaSlicer." -msgstr "此設定可能是新版本的 Orca Slicer 所產生" +msgstr "此設定可能是新版本的 Orca Slicer 所產生。" msgid "Some values have been replaced. Please check them:" msgstr "部分數值已被更換,請檢查:" @@ -1495,7 +1500,7 @@ msgid "Click to download new version in default browser: %s" msgstr "在預設瀏覽器中開啟頁面下載最新版本: %s" msgid "The Orca Slicer needs an upgrade" -msgstr " Orca Slicer 需要進行升級" +msgstr "Orca Slicer 需要進行升級" msgid "This is the newest version." msgstr "已經是最新版本。" @@ -1509,14 +1514,13 @@ msgid "" "Please note, application settings will be lost, but printer profiles will " "not be affected." msgstr "" -"OrcaSlicer 設定檔可能已損壞,無法解析。\n" -"OrcaSlicer 嘗試重新創建設定檔。\n" -"請注意,應用程式設定將會丟失,但機臺設定檔案不會受到影響。" +"OrcaSlicer 的組態檔案可能已損壞,無法解析。\n" +"OrcaSlicer 已嘗試重新創建組態檔案。\n" +"請注意,應用程式設定將會丟失,但機臺組態設定不會受到影響。" msgid "Rebuild" msgstr "重新建構" -#, fuzzy msgid "Loading current presets" msgstr "載入目前預設" @@ -1558,7 +1562,7 @@ msgstr "打開專案項目" msgid "" "The version of Orca Slicer is too low and needs to be updated to the latest " "version before it can be used normally" -msgstr " Orca Slicer 版本過舊,需要更新到最新版本才能正常使用" +msgstr "Orca Slicer 版本過舊,需要更新到最新版本才能正常使用" msgid "Privacy Policy Update" msgstr "隱私協議更新" @@ -1619,7 +1623,7 @@ msgid "Rename" msgstr "重新命名" msgid "Orca Slicer GUI initialization failed" -msgstr " Orca Slicer 圖形界面初始化失敗" +msgstr "Orca Slicer 圖形界面初始化失敗" #, boost-format msgid "Fatal error, exception caught: %1%" @@ -1785,11 +1789,9 @@ msgstr "新增設定" msgid "Change type" msgstr "更改類型" -#, fuzzy msgid "Set as an individual object" msgstr "設定為獨立物件" -#, fuzzy msgid "Set as individual objects" msgstr "設定為獨立物件" @@ -1836,7 +1838,6 @@ msgstr "預設" msgid "Filament %d" msgstr "線材 %d" -#, fuzzy msgid "current" msgstr "目前" @@ -1846,7 +1847,6 @@ msgstr "縮放到列印空間範圍大小" msgid "Scale an object to fit the build volume" msgstr "縮放物件以適應列印空間範圍大小" -#, fuzzy msgid "Flush Options" msgstr "換料沖刷選項" @@ -1883,11 +1883,9 @@ msgstr "組合所選物件為一個多零件物件" msgid "Assemble the selected objects to an object with single part" msgstr "組合所選物件為一個單零件物件" -#, fuzzy msgid "Mesh boolean" msgstr "網格布林操作" -#, fuzzy msgid "Mesh boolean operations including union and subtraction" msgstr "包括併集和差集的網格布林運算" @@ -2009,7 +2007,7 @@ msgid "Center" msgstr "居中" msgid "Drop" -msgstr "" +msgstr "Drop" msgid "Edit Process Settings" msgstr "編輯列印參數" @@ -2036,17 +2034,17 @@ msgid "Name" msgstr "名稱" msgid "Fila." -msgstr "線材" +msgstr "線材。" #, c-format, boost-format msgid "%1$d error repaired" msgid_plural "%1$d errors repaired" -msgstr[0] "%1$d 個錯誤被修復" +msgstr[0] "%1$d 個錯誤已修復" #, c-format, boost-format msgid "Error: %1$d non-manifold edge." msgid_plural "Error: %1$d non-manifold edges." -msgstr[0] "錯誤:%1$d 非流形邊." +msgstr[0] "%1$d 個非流形邊緣。" msgid "Remaining errors" msgstr "剩餘錯誤" @@ -2054,7 +2052,7 @@ msgstr "剩餘錯誤" #, c-format, boost-format msgid "%1$d non-manifold edge" msgid_plural "%1$d non-manifold edges" -msgstr[0] "%1$d 非流形邊" +msgstr[0] "%1$d 個非流形邊緣" msgid "Right click the icon to fix model object" msgstr "滑鼠右鍵點擊此圖示修復物件模型" @@ -2065,23 +2063,18 @@ msgstr "滑鼠右鍵點擊此圖示以放棄物件的列印設定" msgid "Click the icon to reset all settings of the object" msgstr "滑鼠左鍵點擊此圖示可重設物件的所有列印設定" -#, fuzzy msgid "Right button click the icon to drop the object printable property" msgstr "滑鼠右鍵點擊此圖示以捨棄物件的可列印屬性" -#, fuzzy msgid "Click the icon to toggle printable property of the object" msgstr "滑鼠左點擊此圖示可切換這個物件的可列印屬性" -#, fuzzy msgid "Click the icon to edit support painting of the object" msgstr "滑鼠左鍵點擊此圖示可編輯這個物件的支撐繪製" -#, fuzzy msgid "Click the icon to edit color painting of the object" msgstr "滑鼠左鍵點擊此圖示可編輯這個物件的顏色繪製" -#, fuzzy msgid "Click the icon to shift this object to the bed" msgstr "滑鼠左鍵點擊這個圖示可將物件移動到列印板上" @@ -2106,7 +2099,7 @@ msgstr "切換到各個物件設定模式以編輯修改器的設定參數。" msgid "" "Switch to per-object setting mode to edit process settings of selected " "objects." -msgstr "切換到物件設定模式編輯所選物件的列印參數" +msgstr "切換到物件設定模式編輯所選物件的列印參數。" msgid "Delete connector from object which is a part of cut" msgstr "刪除的連接件屬於切割物件的一部分" @@ -2122,7 +2115,6 @@ msgid "" "objects." msgstr "為保證切割關係,你可以將所有關聯物件的連接件一起刪除。" -#, fuzzy msgid "" "This action will break a cut correspondence.\n" "After that model consistency can't be guaranteed .\n" @@ -2130,7 +2122,8 @@ msgid "" "To manipulate with solid parts or negative volumes you have to invalidate " "cut information first." msgstr "" -"該行為將破壞切割關係,在此之後將無法保證模型一致性。\n" +"此操作將打破切割對應關係。\n" +"模型一致性可能無法再保證。\n" "\n" "如果要操作子零件或者負體積,需要先解除切割關係。" @@ -2153,7 +2146,7 @@ msgid "Object manipulation" msgstr "物件操作" msgid "Group manipulation" -msgstr "裙組操作" +msgstr "群組操作" msgid "Object Settings to modify" msgstr "要修改的物件設定" @@ -2250,7 +2243,6 @@ msgstr "一個單元格僅能被複製到同一列的一個或多個單元格" msgid "multiple cells copy is not supported" msgstr "不支援多個單元格的複製" -#, fuzzy msgid "Outside" msgstr "列印板外" @@ -2264,7 +2256,7 @@ msgid "Infill density(%)" msgstr "填充密度(%)" msgid "Auto Brim" -msgstr "自動Brim(裙邊)" +msgstr "自動" msgid "Mouse ear" msgstr "圓盤" @@ -2279,7 +2271,7 @@ msgid "Outer and inner brim" msgstr "內側和外側" msgid "No-brim" -msgstr "無側裙(brim)" +msgstr "無 Brim" msgid "Outer wall speed" msgstr "外牆速度" @@ -2288,7 +2280,7 @@ msgid "Plate" msgstr "列印板" msgid "Brim" -msgstr "側裙(Brim)" +msgstr "Brim" msgid "Object/Part Setting" msgstr "物件/零件 設定" @@ -2306,10 +2298,10 @@ msgid "More" msgstr "詳情" msgid "Open Preferences." -msgstr "偏好設定" +msgstr "偏好設定。" msgid "Open next tip." -msgstr "打開下一條提示" +msgstr "打開下一條提示。" msgid "Open Documentation in web browser." msgstr "在網頁瀏覽器中打開檔案。" @@ -2327,7 +2319,7 @@ msgid "Custom" msgstr "自訂" msgid "Pause:" -msgstr "暫停" +msgstr "暫停:" msgid "Custom Template:" msgstr "自訂模板:" @@ -2395,12 +2387,11 @@ msgstr "..." msgid "Failed to connect to the server" msgstr "無法連接伺服器" -#, fuzzy msgid "Check the status of current system services" msgstr "請檢查目前系統服務狀態" msgid "code" -msgstr "" +msgstr "code" msgid "Failed to connect to cloud service" msgstr "無法連接到雲端服務" @@ -2415,16 +2406,16 @@ msgid "Connection to printer failed" msgstr "連接列印設備失敗" msgid "Please check the network connection of the printer and Orca." -msgstr "請檢查列印設備與 Orca Slicer 的網路連線" +msgstr "請檢查列印設備與 Orca Slicer 的網路連線。" msgid "Connecting..." msgstr "連線中..." msgid "?" -msgstr "" +msgstr "?" msgid "/" -msgstr "" +msgstr "/" msgid "Empty" msgstr "空" @@ -2501,7 +2492,7 @@ msgstr "咬入線材" msgid "" "Choose an AMS slot then press \"Load\" or \"Unload\" button to automatically " "load or unload filaments." -msgstr "選擇一個 AMS 槽,然後按下「上料」或「退料」按鈕來自動加載或卸載耗材。" +msgstr "選擇一個 AMS 槽,然後按下『上料』或『退料』按鈕來自動加載或卸載耗材。" msgid "Edit" msgstr "編輯" @@ -2510,8 +2501,8 @@ msgid "" "All the selected objects are on the locked plate,\n" "We can not do auto-arrange on these objects." msgstr "" -"所有選中的物件都處於被鎖定的列印板上,\n" -"無法對這些物件做自動擺放。" +"選定的物件都位於鎖定的列印板上,\n" +"無法對其進行自動排列。" msgid "No arrangeable objects are selected." msgstr "未選擇欲排列的物件象。" @@ -2519,7 +2510,7 @@ msgstr "未選擇欲排列的物件象。" msgid "" "This plate is locked,\n" "We can not do auto-arrange on this plate." -msgstr "該列印板處於鎖定狀態,無法對其進行自動擺放。" +msgstr "該列印板處於鎖定狀態,無法執行自動排列。" msgid "Arranging..." msgstr "自動擺放中..." @@ -2568,7 +2559,7 @@ msgid "Orienting..." msgstr "自動旋轉方向..." msgid "Orienting" -msgstr "自動旋轉方向..." +msgstr "自動旋轉方向" msgid "Orienting canceled." msgstr "自動轉向已取消。" @@ -2601,7 +2592,7 @@ msgid "Please check the printer network connection." msgstr "請檢查列印設備的網路連線。" msgid "Abnormal print file data. Please slice again." -msgstr "列印檔案資料異常,請重新切片" +msgstr "列印檔案資料異常,請重新切片。" msgid "Task canceled." msgstr "任務已取消。" @@ -2610,7 +2601,7 @@ msgid "Upload task timed out. Please check the network status and try again." msgstr "上傳任務逾時,請排查網路狀態後重試。" msgid "Cloud service connection failed. Please try again." -msgstr "雲端服務連接失敗,請重試" +msgstr "雲端服務連接失敗,請重試。" msgid "Print file not found. please slice again." msgstr "未找到列印檔案,請重新切片。" @@ -2650,13 +2641,13 @@ msgid "Sending print job through cloud service" msgstr "正在通過雲端服務傳送列印作業" msgid "Print task sending times out." -msgstr "連線逾時" +msgstr "連線逾時。" msgid "Service Unavailable" msgstr "暫停服務" msgid "Unknown Error." -msgstr "未知錯誤" +msgstr "未知錯誤。" msgid "Sending print configuration" msgstr "正在傳送列印設定" @@ -2667,7 +2658,7 @@ msgstr "已傳送完成,即將自動轉換到設備頁面(%s秒)" #, c-format, boost-format msgid "Successfully sent. Will automatically jump to the next page in %ss" -msgstr "已成功傳送。將自動轉換到 %ss 中的下一頁。" +msgstr "已成功傳送。將自動轉換到 %ss 中的下一頁" msgid "An SD card needs to be inserted before printing via LAN." msgstr "透過區域網路列印之前需要插入 SD 記憶卡。" @@ -2701,7 +2692,6 @@ msgstr "匯入已取消。" msgid "Importing done." msgstr "匯入完成。" -#, fuzzy msgid "" "The imported SLA archive did not contain any presets. The current SLA " "presets were used as fallback." @@ -2744,7 +2734,7 @@ msgid "License" msgstr "憑證" msgid "Orca Slicer is licensed under " -msgstr " Orca Slicer 授權於" +msgstr "Orca Slicer 授權於" msgid "GNU Affero General Public License, version 3" msgstr "GNU Affero 通用公共許可證,版本 3" @@ -2753,22 +2743,19 @@ msgid "Orca Slicer is based on PrusaSlicer and BambuStudio" msgstr "Orca Slicer 基於 PrusaSlicer 與 BambuStudio" msgid "Libraries" -msgstr "庫" +msgstr "Libraries" msgid "" "This software uses open source components whose copyright and other " "proprietary rights belong to their respective owners" -msgstr "本軟體使用開源組件,其版權和其他所有權屬於各自的所有者" +msgstr "本軟體採用了開源組件,其版權及相關專有權歸屬於各自的所有者" #, c-format, boost-format msgid "About %s" msgstr "關於 %s" -msgid "Orca Slicer" -msgstr "" - msgid "OrcaSlicer is based on BambuStudio, PrusaSlicer, and SuperSlicer." -msgstr "Orca Slicer 是基於 BambuStudio, PrusaSlicer, 與 SuperSlicer 的開發" +msgstr "Orca Slicer 是基於 BambuStudio, PrusaSlicer, 與 SuperSlicer 的開發。" msgid "BambuStudio is originally based on PrusaSlicer by PrusaResearch." msgstr "BambuStudio 最初是基於 PrusaResearch 的 PrusaSlicer。" @@ -2799,7 +2786,9 @@ msgstr "顏色" msgid "" "Nozzle\n" "Temperature" -msgstr "噴嘴溫度" +msgstr "" +"噴嘴\n" +"溫度" msgid "max" msgstr "最大" @@ -2814,14 +2803,11 @@ msgstr "輸入的範圍在 %1% 和 %2% 之間" msgid "SN" msgstr "序號" -msgid "Setting AMS slot information while printing is not supported" -msgstr "不支援在列印時修改 AMS 槽位資訊" - msgid "Factors of Flow Dynamics Calibration" msgstr "動態流量係數校準" msgid "PA Profile" -msgstr "PA 配置檔" +msgstr "PA 設定檔" msgid "Factor K" msgstr "係數 K" @@ -2829,6 +2815,9 @@ msgstr "係數 K" msgid "Factor N" msgstr "係數 N" +msgid "Setting AMS slot information while printing is not supported" +msgstr "不支援在列印時修改 AMS 槽位資訊" + msgid "Setting Virtual slot information while printing is not supported" msgstr "不支援在列印時設定虛擬槽位資訊" @@ -2879,7 +2868,7 @@ msgid "Max volumetric speed" msgstr "最大體積速度" msgid "℃" -msgstr "" +msgstr "℃" msgid "Bed temperature" msgstr "床溫" @@ -2932,7 +2921,7 @@ msgstr "AMS 槽內線材" msgid "" "Note: Only the AMS slots loaded with the same material type can be selected." -msgstr "僅允許選擇放入同種材質線材的 AMS 槽位" +msgstr "注意:僅能選擇裝有相同材料類型的 AMS 插槽。" msgid "Enable AMS" msgstr "使用 AMS" @@ -2946,8 +2935,8 @@ msgstr "停用 AMS" msgid "Print with the filament mounted on the back of chassis" msgstr "使用機箱背後掛載的線材列印" -msgid "Current Cabin humidity" -msgstr "濕度" +msgid "Current AMS humidity" +msgstr "目前 AMS 濕度" msgid "" "Please change the desiccant when it is too wet. The indicator may not " @@ -2955,8 +2944,8 @@ msgid "" "desiccant pack is changed. it take hours to absorb the moisture, low " "temperatures also slow down the process." msgstr "" -"當濕度太高時,請更換乾燥劑。在以下情況濕度指標可能會不準確:開子打開時 或 乾" -"燥劑剛換,乾燥劑需數小時才能有效吸收濕氣低溫也會降低吸收速度" +"當乾燥劑過濕時,請更換乾燥劑。在以下情況下,指示器可能無法準確顯示:當蓋子打" +"開或更換乾燥劑包時。吸收濕氣需要數小時,低溫會進一步減緩此過程。" msgid "" "Config which AMS slot should be used for a filament used in the print job" @@ -2992,11 +2981,11 @@ msgid "Group" msgstr "組" msgid "The printer does not currently support auto refill." -msgstr "此列印設備目前不支援自動切換備用線材。" +msgstr "此列印設備目前不支援自動補料功能。" msgid "" "AMS filament backup is not enabled, please enable it in the AMS settings." -msgstr "AMS 備用線材自動切換未啟用,請在 AMS 設定中啟用。" +msgstr "AMS 線材備份功能尚未啟用,請在 AMS 設定中開啟。" msgid "" "If there are two identical filaments in AMS, AMS filament backup will be " @@ -3029,7 +3018,7 @@ msgstr "" msgid "" "Note: if a new filament is inserted during printing, the AMS will not " "automatically read any information until printing is completed." -msgstr "備註: 若在列印過程中插入新的線材,AMS會等到列印完成才會讀取線材資訊" +msgstr "備註: 若在列印過程中插入新的線材,AMS會等到列印完成才會讀取線材資訊。" msgid "" "When inserting a new filament, the AMS will not automatically read its " @@ -3063,10 +3052,8 @@ msgid "" "info is updated. During printing, remaining capacity will be updated " "automatically." msgstr "" -"AMS 讀取 Bambu Lab 官方線材資訊同時預估線材卷的剩餘線材量。在列印過程中,剩餘" -"線材量會自動更新。" +"AMS 會在耗材資訊更新後估算 Bambu 耗材的剩餘量,並在列印時自動更新剩餘容量。" -#, fuzzy msgid "AMS filament backup" msgstr "AMS 備用線材" @@ -3081,7 +3068,7 @@ msgstr "偵測到憑空列印" msgid "" "Detects clogging and filament grinding, halting printing immediately to " "conserve time and filament." -msgstr "偵測到卡料,已暫停列印來節省時間與線材" +msgstr "偵測到卡料,已暫停列印來節省時間與線材。" msgid "File" msgstr "檔案" @@ -3108,7 +3095,7 @@ msgstr "請先執行回原點(點擊" msgid "" ") to locate the toolhead's position. This prevents device moving beyond the " "printable boundary and causing equipment wear." -msgstr "" +msgstr ")來定位工具頭的位置,這可防止設備移動超出可列印範圍,並避免設備磨損。" msgid "Go Home" msgstr "回原點" @@ -3116,7 +3103,7 @@ msgstr "回原點" msgid "" "A error occurred. Maybe memory of system is not enough or it's a bug of the " "program" -msgstr "發生錯誤。可能系統記憶體不足或者程式存在錯誤。" +msgstr "發生錯誤。可能系統記憶體不足或者程式存在錯誤" msgid "Please save project and restart the program. " msgstr "請儲存專案項目並重啟程式。" @@ -3173,14 +3160,14 @@ msgid "" "device. The corrupted output G-code is at %1%.tmp." msgstr "" "將臨時 G-code 複製到輸出 G-code 時失敗。目標設備可能存在問題,請嘗試再次匯出" -"或使用不同的設備。損壞的G-code 已輸出為%1%.tmp。" +"或使用不同的設備。損壞的 G-code 已輸出為 %1%.tmp。" #, boost-format msgid "" "Renaming of the G-code after copying to the selected destination folder has " "failed. Current path is %1%.tmp. Please try exporting again." msgstr "" -"複製到選取之目標檔案夾的 G-code 重命名失敗。目前路徑為%1%.tmp。請再試看看匯" +"複製到選取之目標檔案夾的 G-code 重命名失敗。目前路徑為 %1%.tmp。請再試看看匯" "出。" #, boost-format @@ -3188,8 +3175,8 @@ msgid "" "Copying of the temporary G-code has finished but the original code at %1% " "couldn't be opened during copy check. The output G-code is at %2%.tmp." msgstr "" -"臨時 G-code 的 複製已完成,但原始 G-code 因%1%在複製檢查期間無法打開。輸出 G-" -"code 為%2%.tmp。" +"臨時 G-code 的 複製已完成,但原始 G-code 因 %1% 在複製檢查期間無法打開。輸出 " +"G-code 為%2%.tmp。" #, boost-format msgid "" @@ -3197,7 +3184,7 @@ msgid "" "be opened during copy check. The output G-code is at %1%.tmp." msgstr "" "臨時 G-code 的複制已完成,但匯出的 G-code 無法在復製檢查過程中打開。輸出 G-" -"code 為%1%.tmp。" +"code 為 %1%.tmp。" #, boost-format msgid "G-code file exported to %1%" @@ -3271,7 +3258,7 @@ msgid "Device Status" msgstr "機台狀態" msgid "Actions" -msgstr "" +msgstr "操作" msgid "" "Please select the devices you would like to manage here (up to 6 devices)" @@ -3368,10 +3355,10 @@ msgid "Abnormal print file data. Please slice again" msgstr "列印檔案資料異常,請重新切片" msgid "There is no device available to send printing." -msgstr "沒有可用的機臺可以傳送列印" +msgstr "沒有可用的機臺可以傳送列印。" msgid "The number of printers in use simultaneously cannot be equal to 0." -msgstr "" +msgstr "同時使用的列印機數量不能為 0。" msgid "Use External Spool" msgstr "使用外掛線盤" @@ -3395,7 +3382,7 @@ msgid "Timelapse" msgstr "縮時攝影" msgid "Flow Dynamic Calibration" -msgstr "" +msgstr "動態流量校準" msgid "Send Options" msgstr "傳送選項" @@ -3406,14 +3393,14 @@ msgstr "傳送到" msgid "" "printers at the same time.(It depends on how many devices can undergo " "heating at the same time.)" -msgstr "" +msgstr "可同時運行的列印機數量。(取決於能同時加熱的設備數量而定。)" msgid "Wait" msgstr "等待" msgid "" "minute each batch.(It depends on how long it takes to complete the heating.)" -msgstr "" +msgstr "每批次需要的分鐘數。(具體取決於加熱完成所需的時間。)" msgid "Send" msgstr "傳送" @@ -3448,12 +3435,12 @@ msgstr "矩形框在 X 和 Y 方向的尺寸。" msgid "" "Distance of the 0,0 G-code coordinate from the front left corner of the " "rectangle." -msgstr "G-code 0,0 坐標相對於矩形框左前角的距離。" +msgstr "G-code 0,0 座標相對於矩形框左前角的距離。" msgid "" "Diameter of the print bed. It is assumed that origin (0,0) is located in the " "center." -msgstr "" +msgstr "列印平臺的直徑,假設原點 (0,0) 位於中央位置。" msgid "Rectangular" msgstr "矩形" @@ -3530,7 +3517,7 @@ msgstr "" msgid "" "Recommended nozzle temperature of this filament type is [%d, %d] degree " "centigrade" -msgstr "該線材的推薦噴嘴溫度是攝氏[%d, %d]度" +msgstr "該線材的推薦噴嘴溫度是攝氏 [%d, %d] 度" msgid "" "Too small max volumetric speed.\n" @@ -3553,15 +3540,14 @@ msgid "" "Reset to 0.2" msgstr "" "層高過小。\n" -"將重設為 0.2。" +"將重設為 0.2" -#, fuzzy msgid "" "Too small ironing spacing.\n" "Reset to 0.1" msgstr "" "熨燙線距過小。\n" -"將重設為 0.1。" +"將重設為 0.1" msgid "" "Zero initial layer height is invalid.\n" @@ -3571,7 +3557,6 @@ msgstr "" "0為無效的首層層高值。\n" "將被重設為0.2。" -#, fuzzy msgid "" "This setting is only used for model size tunning with small value in some " "cases.\n" @@ -3580,13 +3565,12 @@ msgid "" "\n" "The value will be reset to 0." msgstr "" -"這個設定僅用於在特定場景下微調模型尺寸。\n" -"例如,當模型尺寸誤差較小,難以組裝。\n" -"對於大尺寸的調整,請使用模型縮放功能。\n" -"\n" -"這個數值將被重設為 0。" +"此設定僅用於在特定情況下對模型尺寸進行微調。\n" +"例如,當模型尺寸存在輕微誤差且難以組裝時。\n" +"如需大幅調整尺寸,請使用模型縮放功能\n" +"。\n" +"該值將會重置為 0。" -#, fuzzy msgid "" "Too large elephant foot compensation is unreasonable.\n" "If really have serious elephant foot effect, please check other settings.\n" @@ -3594,16 +3578,15 @@ msgid "" "\n" "The value will be reset to 0." msgstr "" -"過大的象腳補償是不合理的。\n" -"如果確實有嚴重的象腳效應,請檢查其他設定。\n" -"例如,是否設定了過高的床溫。\n" +"象腳補償設置過大是不合理的。如果確實有嚴重的象腳效應,請檢查其他設置。\n" +"例如,檢查床溫是否設定過高。\n" "\n" -"這個數值將被重設為 0。" +"該值將會重置為 0。" msgid "" "Alternate extra wall does't work well when ensure vertical shell thickness " "is set to All. " -msgstr "當確保垂直外殼厚度設為「全部」時,交錯額外牆壁效果不佳。" +msgstr "當確保垂直外殼厚度設為『全部』時,交錯額外牆壁效果不佳。" msgid "" "Change these settings automatically? \n" @@ -3664,7 +3647,7 @@ msgstr "" "填充密度為 0、縮時攝影模式為傳統。" msgid " But machines with I3 structure will not generate timelapse videos." -msgstr "I3 結構機型將不產生縮時攝影。" +msgstr " 但採用 I3 結構的機器無法生成延時影片。" msgid "" "Change these settings automatically? \n" @@ -3769,10 +3752,10 @@ msgid "Motor noise showoff" msgstr "電機噪音" msgid "Nozzle filament covered detected pause" -msgstr "" +msgstr "檢測到噴嘴被耗材覆蓋,暫停列印" msgid "Cutter error pause" -msgstr "" +msgstr "刀具錯誤,暫停列印" msgid "First layer error pause" msgstr "第一層錯誤暫停" @@ -3809,20 +3792,24 @@ msgid "" "45℃.In order to avoid extruder clogging,low temperature filament(PLA/PETG/" "TPU) is not allowed to be loaded." msgstr "" +"當前或目標機箱溫度超過 45℃。為避免擠出機堵塞,不允許裝載低溫耗材(PLA/PETG/" +"TPU)。" msgid "" "Low temperature filament(PLA/PETG/TPU) is loaded in the extruder.In order to " "avoid extruder clogging,it is not allowed to set the chamber temperature " "above 45℃." msgstr "" +"擠出機中已裝載低溫耗材(PLA/PETG/TPU)。為避免擠出機堵塞,機箱溫度不可設定超" +"過 45℃。" msgid "" "When you set the chamber temperature below 40℃, the chamber temperature " "control will not be activated. And the target chamber temperature will " "automatically be set to 0℃." msgstr "" -"當你設定的設備內部溫度低於 40℃ 時,內部溫度控制將不會啟動。 且目標溫度將自動" -"設定為 0℃。" +"當機箱溫度設置低於 40℃時,機箱溫度控制將不會啟動,並且目標機箱溫度將自動設為 " +"0℃。" msgid "Failed to start printing job" msgstr "無法啟動列印作業" @@ -3907,7 +3894,7 @@ msgstr "時間戳記" #, boost-format msgid "Specific for %1%" -msgstr "" +msgstr "特定於 %1%" msgid "Presets" msgstr "預設" @@ -3933,7 +3920,7 @@ msgstr "%s 不可以是百分比" #, c-format, boost-format msgid "Value %s is out of range, continue?" -msgstr "值 %s 超出範圍,是否繼續?" +msgstr "數值 %s 超出範圍,是否繼續?" msgid "Parameter validation" msgstr "參數驗證" @@ -3943,7 +3930,7 @@ msgid "Value %s is out of range. The valid range is from %d to %d." msgstr "數值 %s 超出範圍。有效範圍是從 %d 到 %d。" msgid "Value is out of range." -msgstr "值超出範圍。" +msgstr "數值超出範圍。" #, c-format, boost-format msgid "" @@ -3951,25 +3938,25 @@ msgid "" "YES for %s%%, \n" "NO for %s %s." msgstr "" -"%s%% 還是 %s %s?\n" -"是:%s%%\n" -"否:%s %s" +"是 %s%% 還是 %s %s?\n" +"選『是』代表 %s%%,\n" +"選『否』代表 %s %s。" #, boost-format msgid "" "Invalid input format. Expected vector of dimensions in the following format: " "\"%1%\"" -msgstr "輸入格式無效。預期向量應使用以下格式:\"%1%\"" +msgstr "輸入格式無效。預期的向量尺寸格式應為:「%1%」" msgid "Input value is out of range" msgstr "輸入值超出範圍" msgid "Some extension in the input is invalid" -msgstr "輸入的副檔名無效。" +msgstr "輸入的副檔名無效" #, boost-format msgid "Invalid format. Expected vector format: \"%1%\"" -msgstr "無效格式,應該是 \"%1%\" 這種格式" +msgstr "無效格式,應該是「%1%」這種格式" msgid "Layer Height" msgstr "層高" @@ -3992,7 +3979,6 @@ msgstr "工具" msgid "Layer Time" msgstr "層時間" -#, fuzzy msgid "Layer Time (log)" msgstr "層時間(對數)" @@ -4032,7 +4018,6 @@ msgstr "所有列印板數據" msgid "Display" msgstr "顯示" -#, fuzzy msgid "Flushed" msgstr "廢料" @@ -4133,10 +4118,10 @@ msgid "Printer" msgstr "列印設備" msgid "Custom g-code" -msgstr "" +msgstr "自定義 g-code" msgid "ToolChange" -msgstr "" +msgstr "ToolChange" msgid "Time Estimation" msgstr "時間預估" @@ -4268,9 +4253,8 @@ msgstr "自動定向" msgid "Arrange all objects" msgstr "全域整理" -#, fuzzy msgid "Arrange objects on selected plates" -msgstr "單一列印板整理" +msgstr "在選定的列印板上排列物件" msgid "Split to objects" msgstr "拆分為物件" @@ -4319,7 +4303,7 @@ msgid "" "Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please " "separate the conflicted objects farther (%s <-> %s)." msgstr "" -"發現 gcode 路徑在 %d 層,高為 %.2lf mm處的衝突。請將有衝突的物件分離得更遠" +"發現 gcode 路徑在 %d 層,高為 %.2lf mm 處的衝突。請將有衝突的物件分離得更遠" "(%s <-> %s)。" msgid "An object is layed over the boundary of plate." @@ -4365,8 +4349,8 @@ msgid "" "minimize deviation.\n" "It keeps the device performing optimally." msgstr "" -"校準程序會自動偵測設備以最小化設備誤差。\n" -"它可以讓設備保持最佳性能。" +"校準程序會自動檢測設備狀態以最小化偏差。\n" +"它確保設備保持最佳性能。" msgid "Calibration Flow" msgstr "校準流程" @@ -4390,7 +4374,7 @@ msgid "Go Live" msgstr "開啟直播" msgid "Liveview Retry" -msgstr "" +msgstr "重新嘗試 Liveview" msgid "Resolution" msgstr "解析度" @@ -4405,7 +4389,7 @@ msgid "Custom camera source" msgstr "自訂相機來源" msgid "Show \"Live Video\" guide page." -msgstr "顯示\"直播影片\"引導" +msgstr "顯示\"直播影片\"引導。" msgid "720p" msgstr "720p" @@ -4427,7 +4411,7 @@ msgstr "" "查看,如下圖所示:" msgid "Invalid input." -msgstr "輸入無效" +msgstr "輸入無效。" msgid "New Window" msgstr "新視窗" @@ -4576,7 +4560,6 @@ msgstr "最近的專案項目" msgid "Save Project" msgstr "儲存專案項目" -#, fuzzy msgid "Save current project to file" msgstr "儲存目前專案項目到檔案" @@ -4637,7 +4620,6 @@ msgstr "匯出目前列印板的 G-code" msgid "Export Preset Bundle" msgstr "匯出設定檔組" -#, fuzzy msgid "Export current configuration to files" msgstr "匯出目前選擇的設定檔" @@ -4671,7 +4653,6 @@ msgstr "從剪貼簿貼上" msgid "Delete selected" msgstr "刪除所選項目" -#, fuzzy msgid "Deletes the current selection" msgstr "刪除目前所選項目" @@ -4718,10 +4699,10 @@ msgid "Show g-code window in Preview scene" msgstr "在預覽分頁中顯示 G-code 視窗" msgid "Show 3D Navigator" -msgstr "" +msgstr "顯示 3D 導覽器" msgid "Show 3D navigator in Prepare and Preview scene" -msgstr "" +msgstr "在準備與預覽分頁中顯示 3D 導覽器" msgid "Reset Window Layout" msgstr "重設視窗配置" @@ -4745,7 +4726,7 @@ msgid "Show Selected Outline (Experimental)" msgstr "顯示選取輪廓(實驗性)" msgid "Show outline around selected object in 3D scene" -msgstr "在 3D 場景中顯示選定物件的輪廓。" +msgstr "在 3D 場景中顯示選定物件的輪廓" msgid "Preferences" msgstr "偏好設定" @@ -4800,7 +4781,7 @@ msgstr "VFA" # SoftFever msgid "More..." -msgstr "進階校準" +msgstr "更多…" msgid "Tutorial" msgstr "教學" @@ -4853,11 +4834,11 @@ msgstr "幫助" #, c-format, boost-format msgid "A file exists with the same name: %s, do you want to override it." -msgstr "有一個同名稱的檔案 %s。要覆蓋它嗎?" +msgstr "檔案名稱為 %s 的檔案已存在,是否要覆蓋它?" #, c-format, boost-format msgid "A config exists with the same name: %s, do you want to override it." -msgstr "有一個同名稱的設定檔 %s。要覆蓋它嗎?" +msgstr "已存在名稱為 %s 的設定檔,是否要覆蓋它?" msgid "Overwrite file" msgstr "覆蓋檔案" @@ -4925,13 +4906,13 @@ msgid "Synchronization" msgstr "同步" msgid "The device cannot handle more conversations. Please retry later." -msgstr "" +msgstr "該設備無法處理更多對話。請稍後再試。" msgid "Player is malfunctioning. Please reinstall the system player." msgstr "播放器故障。請重新安裝系統播放器。" msgid "The player is not loaded, please click \"play\" button to retry." -msgstr "播放器未載入,請點擊「播放」按鈕重試。" +msgstr "播放器未載入,請點擊『播放』按鈕重試。" msgid "Please confirm if the printer is connected." msgstr "請確認列印設備是否已連接。" @@ -4949,16 +4930,16 @@ msgstr "發生問題。請更新列印設備韌體後再試一次。" msgid "" "LAN Only Liveview is off. Please turn on the liveview on printer screen." -msgstr "僅 LAN 模式的LiveView已關閉。請在列印機螢幕上開啟LiveView。" +msgstr "僅 LAN 模式的 LiveView 已關閉。請在列印機螢幕上開啟 LiveView。" msgid "Please enter the IP of printer to connect." msgstr "請輸入列印設備的 IP 以進行連接。" msgid "Initializing..." -msgstr "正在初始化……" +msgstr "正在初始化..." msgid "Connection Failed. Please check the network and try again" -msgstr "連線失敗。請檢查網路並重試。" +msgstr "連線失敗。請檢查網路並重試" msgid "" "Please check the network and try again, You can restart or update the " @@ -4968,20 +4949,21 @@ msgstr "請檢查網路並重試。如果問題持續,你可以重新啟動或 msgid "The printer has been logged out and cannot connect." msgstr "列印設備已登出,無法連接。" -msgid "Stopped." -msgstr "已經停止。" +msgid "Video Stopped." +msgstr "影片已停止。" msgid "LAN Connection Failed (Failed to start liveview)" -msgstr "區域網路連接失敗(無法啟動直播)" +msgstr "區域網路連接失敗(無法啟動 Liveview)" msgid "" "Virtual Camera Tools is required for this task!\n" "Do you want to install them?" -msgstr "該功能需要\"虛擬攝影機工具包\",是否下載並安裝該工具包?" +msgstr "" +"執行此功能需要「虛擬攝影機工具包」!\n" +"你要安裝它們嗎?" -#, fuzzy msgid "Downloading Virtual Camera Tools" -msgstr "正在下載虛擬攝影機工具包...." +msgstr "正在下載虛擬攝影機工具包..." msgid "" "Another virtual camera is running.\n" @@ -4992,7 +4974,7 @@ msgstr "" "Orca Slicer 同時只能支援一個虛擬攝影機。\n" "是否停止前一個虛擬攝影機?" -#, fuzzy, c-format, boost-format +#, c-format, boost-format msgid "Virtual camera initialize failed (%s)!" msgstr "虛擬攝影機初始化失敗(%s)!" @@ -5015,40 +4997,40 @@ msgid "All Files" msgstr "所有檔案" msgid "Group files by year, recent first." -msgstr "按年份分組,從最近的開始展示" +msgstr "按年份分組,從最近的開始展示。" msgid "Group files by month, recent first." -msgstr "按月份分組,從最近的開始展示" +msgstr "按月份分組,從最近的開始展示。" msgid "Show all files, recent first." -msgstr "顯示所有檔案,從最近的開始展示" +msgstr "顯示所有檔案,從最近的開始展示。" msgid "Switch to timelapse files." -msgstr "切換到縮時攝影檔案清單" +msgstr "切換到縮時攝影檔案清單。" msgid "Video" msgstr "錄影" msgid "Switch to video files." -msgstr "切換到影片檔案清單" +msgstr "切換到影片檔案清單。" msgid "Switch to 3mf model files." -msgstr "切換到 3MF 模型檔案。" +msgstr "切換到 3mf 模型檔案。" msgid "Delete selected files from printer." -msgstr "從列印設備中刪除選中的檔案" +msgstr "從列印設備中刪除選中的檔案。" msgid "Download" msgstr "下載" msgid "Download selected files from printer." -msgstr "從列印設備中下載選中的檔案" +msgstr "從列印設備中下載選中的檔案。" msgid "Select" msgstr "選擇" msgid "Batch manage files." -msgstr "批次管理檔案" +msgstr "批次管理檔案。" msgid "Refresh" msgstr "刷新" @@ -5056,13 +5038,8 @@ msgstr "刷新" msgid "Reload file list from printer." msgstr "從列印機重新載入檔案清單。" -#, fuzzy msgid "No printers." -msgstr "未選擇列印設備" - -#, c-format, boost-format -msgid "Connect failed [%d]!" -msgstr "連接失敗 [%d]!" +msgstr "未選擇列印設備。" msgid "Loading file list..." msgstr "載入檔案清單..." @@ -5073,16 +5050,15 @@ msgstr "無檔案" msgid "Load failed" msgstr "載入失敗" -msgid "Initialize failed (Device connection not ready)!" -msgstr "初始化失敗(未連接列印設備)" - msgid "" "Browsing file in SD card is not supported in current firmware. Please update " "the printer firmware." msgstr "目前韌體不支援瀏覽 SD 卡中的檔案。請更新列印機韌體。" -msgid "Initialize failed (Storage unavailable, insert SD card.)!" -msgstr "初始化失敗(存儲不可用,請插入 SD 卡)。" +msgid "" +"Please check if the SD card is inserted into the printer.\n" +"If it still cannot be read, you can try formatting the SD card." +msgstr "請確認 SD 卡已正確插入印表機。如果仍無法讀取,請嘗試格式化 SD 卡。" msgid "LAN Connection Failed (Failed to view sdcard)" msgstr "LAN 連線失敗(無法查看 SD 卡)。" @@ -5090,11 +5066,7 @@ msgstr "LAN 連線失敗(無法查看 SD 卡)。" msgid "Browsing file in SD card is not supported in LAN Only Mode." msgstr "在僅 LAN 模式下不支援瀏覽 SD 卡中的檔案。" -#, c-format, boost-format -msgid "Initialize failed (%s)!" -msgstr "初始化失敗(%s)!" - -#, c-format, boost-format +#, possible-c-format, possible-boost-format msgid "You are going to delete %u file from printer. Are you sure to continue?" msgid_plural "" "You are going to delete %u files from printer. Are you sure to continue?" @@ -5103,7 +5075,7 @@ msgstr[0] "將從列印設備中刪除 %u 個檔案。確定要繼續嗎?" msgid "Delete files" msgstr "刪除檔案" -#, c-format, boost-format +#, possible-c-format, possible-boost-format msgid "Do you want to delete the file '%s' from printer?" msgstr "確定要從列印設備中刪除檔案 '%s' 嗎?" @@ -5124,7 +5096,7 @@ msgid "" "and export a new .gcode.3mf file." msgstr "" ".gcode.3mf 檔案中不包含 G-code 數據。請使用 Orca Slicer 進行切片並匯出新" -"的.gcode.3mf 檔案。" +"的 .gcode.3mf 檔案。" #, c-format, boost-format msgid "File '%s' was lost! Please download it again." @@ -5135,6 +5107,8 @@ msgid "" "File: %s\n" "Title: %s\n" msgstr "" +"檔案:%s\n" +"標題:%s\n" msgid "Download waiting..." msgstr "等待下載中..." @@ -5176,7 +5150,6 @@ msgstr "錯誤代碼:%d" msgid "Speed:" msgstr "速度:" -#, fuzzy msgid "Deadzone:" msgstr "盲點區:" @@ -5233,7 +5206,6 @@ msgstr "已經完成了 MakeWorld 模型的列印,但評論資料同步失敗 msgid "How do you like this printing file?" msgstr "你覺得這個列印檔案怎麼樣?" -#, fuzzy msgid "" "(The model has already been rated. Your rating will overwrite the previous " "rating.)" @@ -5258,7 +5230,7 @@ msgid "Control" msgstr "控制" msgid "Printer Parts" -msgstr "" +msgstr "列印設備零件" msgid "Print Options" msgstr "列印選項" @@ -5276,7 +5248,7 @@ msgid "Cham" msgstr "機箱" msgid "Bed" -msgstr "熱床" +msgstr "列印板" msgid "Debug Info" msgstr "除錯資訊" @@ -5301,7 +5273,7 @@ msgstr "雲端切片中..." #, c-format, boost-format msgid "In Cloud Slicing Queue, there are %s tasks ahead." -msgstr "雲端切片佇列中,前面還有 %s 個檔案" +msgstr "雲端切片佇列中,前面還有 %s 個檔案。" #, c-format, boost-format msgid "Layer: %s" @@ -5346,7 +5318,7 @@ msgid "Ludicrous" msgstr "狂暴模式(150%)" msgid "Can't start this without SD card." -msgstr "沒有 SD 記憶卡無法開始" +msgstr "沒有 SD 記憶卡無法開始。" msgid "Rate the Print Profile" msgstr "評價列印設定檔" @@ -5382,23 +5354,24 @@ msgid "Number of images successfully uploaded" msgstr "成功上傳的圖片數量" msgid " upload failed" -msgstr "上傳失敗" +msgstr " 上傳失敗" -#, fuzzy msgid " upload config prase failed\n" -msgstr "上傳設定檔失敗\n" +msgstr " 上傳設定檔失敗\n" msgid " No corresponding storage bucket\n" -msgstr "沒有對應的儲存區\n" +msgstr " 沒有對應的儲存區\n" msgid " can not be opened\n" -msgstr "無法開啟\n" +msgstr " 無法開啟\n" msgid "" "The following issues occurred during the process of uploading images. Do you " "want to ignore them?\n" "\n" -msgstr "在上傳圖片的過程中出現了以下問題。要忽略此問題嗎?\n" +msgstr "" +"在上傳圖片的過程中出現了以下問題。要忽略此問題嗎?\n" +"\n" msgid "info" msgstr "資訊" @@ -5419,7 +5392,7 @@ msgid "" msgstr "" "由於某些原因,你的評論結果無法上傳。如下:\n" "\n" -"錯誤代碼: " +" 錯誤代碼: " msgid "error message: " msgstr "錯誤訊息:" @@ -5431,7 +5404,7 @@ msgid "" msgstr "" "\n" "\n" -"你想重新導向到評價網頁嗎?" +"你想要跳轉到網頁給予評分嗎?" msgid "" "Some of your images failed to upload. Would you like to redirect to the " @@ -5445,8 +5418,8 @@ msgid "" "At least one successful print record of this print profile is required \n" "to give a positive rating(4 or 5stars)." msgstr "" -"該列印設定檔至少需要一筆成功的列印記錄\n" -"給予正面評價(4 或 5 顆星)。" +"若要給予正面評價(4 或 5 星),\n" +"必須至少有一個此列印設定檔的成功列印記錄。" msgid "Status" msgstr "設備狀態" @@ -5490,34 +5463,51 @@ msgstr "較新的 3mf 版本" msgid "" "The 3mf file version is in Beta and it is newer than the current OrcaSlicer " "version." -msgstr "該 3MF 檔案版本為測試版,並且較目前的 OrcaSlicer 版本更新。" +msgstr "該 3mf 檔案版本為測試版,並且較目前的 OrcaSlicer 版本更新。" msgid "If you would like to try Orca Slicer Beta, you may click to" -msgstr "如果你想嘗試 Orca Slicer 測試版,可以點擊以下載。" +msgstr "如果你想嘗試 Orca Slicer 測試版,可以點擊以下載到" msgid "Download Beta Version" msgstr "下載測試版" msgid "The 3mf file version is newer than the current Orca Slicer version." -msgstr "該 3MF 檔案版本較目前的 Orca Slicer 版本更新。" +msgstr "該 3mf 檔案版本較目前的 Orca Slicer 版本更新。" msgid "Update your Orca Slicer could enable all functionality in the 3mf file." -msgstr "更新你的 Orca Slicer 以啟用 3MF 檔案中的所有功能。" +msgstr "更新你的 Orca Slicer 以啟用 3mf 檔案中的所有功能。" msgid "Current Version: " -msgstr "目前版本" +msgstr "目前版本:" msgid "Latest Version: " -msgstr "最新版本" +msgstr "最新版本:" msgid "Not for now" msgstr "現在不要" -#, fuzzy +msgid "Server Exception" +msgstr "伺服器異常" + +msgid "" +"The server is unable to respond. Please click the link below to check the " +"server status." +msgstr "伺服器沒有回應,請點擊下方連結檢查伺服器狀態。" + +msgid "" +"If the server is in a fault state, you can temporarily use offline printing " +"or local network printing." +msgstr "若伺服器發生故障,可以暫時改用離線列印或本地網路列印。" + +msgid "How to use LAN only mode" +msgstr "如何啟用 LAN 模式" + +msgid "Don't show this dialog again" +msgstr "不要再顯示此提示" + msgid "3D Mouse disconnected." msgstr "3D 滑鼠已中斷連線。" -#, fuzzy msgid "Configuration can update now." msgstr "設定檔現在可以升級。" @@ -5576,7 +5566,7 @@ msgstr[0] "%1$d 物件有上色。" #, c-format, boost-format msgid "%1$d object was loaded as a part of cut object." msgid_plural "%1$d objects were loaded as parts of cut object" -msgstr[0] "%1$d 物件載入為一個切割物件的子零件" +msgstr[0] "%1$d 物件載入為一個切割物件的子零件。" msgid "ERROR" msgstr "錯誤" @@ -5612,7 +5602,7 @@ msgid " (Repair)" msgstr "(修復)" msgid " Click here to install it." -msgstr "點擊此處安裝" +msgstr "點擊此處安裝。" msgid "WARNING:" msgstr "警告:" @@ -5649,11 +5639,13 @@ msgstr "請升級你的顯示卡驅動。" msgid "Unsupported OpenGL version" msgstr "不支援的 OpenGL 版本" -#, fuzzy, c-format, boost-format +#, c-format, boost-format msgid "" "Unable to load shaders:\n" "%s" -msgstr "無法載入 Shader: %s" +msgstr "" +"無法載入 Shader:\n" +"%s" msgid "Error loading shaders" msgstr "載入 shader 程序時發生錯誤" @@ -5680,7 +5672,6 @@ msgid "" "the tag is not in predefined range." msgstr "偵測列印板的定位標記,如果標記不在預定義範圍內時暫停列印。" -#, fuzzy msgid "First Layer Inspection" msgstr "首層檢查" @@ -5710,7 +5701,7 @@ msgstr "硬化鋼" #, c-format, boost-format msgid "%.1f" -msgstr "" +msgstr "%.1f" msgid "Global" msgstr "全域" @@ -5751,7 +5742,6 @@ msgstr "編輯列印板名稱" msgid "Move plate to the front" msgstr "更改列印板順序至前" -#, fuzzy msgid "Customize current plate" msgstr "自訂列印板參數" @@ -5772,7 +5762,7 @@ msgid "Used Filament (mm³)" msgstr "線材消耗體積(mm³)" msgid "Used Filament (g)" -msgstr "線材消耗重量(克)" +msgstr "線材消耗重量(g)" msgid "Used Materials" msgstr "線材消耗" @@ -5783,7 +5773,6 @@ msgstr "預估列印時間" msgid "Filament changes" msgstr "線材切換" -#, fuzzy msgid "Click to edit preset" msgstr "點擊編輯預設檔設定" @@ -5816,7 +5805,7 @@ msgstr "顆粒" msgid "" "No AMS filaments. Please select a printer in 'Device' page to load AMS info." -msgstr "沒有發現 AMS 線材。請在\"設備\"頁面選擇列印設備,載入 AMS 資訊" +msgstr "沒有發現 AMS 線材。請在\"設備\"頁面選擇列印設備,載入 AMS 資訊。" msgid "Sync filaments with AMS" msgstr "同步到 AMS 的線材清單" @@ -5857,7 +5846,7 @@ msgstr "是否儲存變更到 \"%1%\"?" msgid "" "Successfully unmounted. The device %s(%s) can now be safely removed from the " "computer." -msgstr "" +msgstr "卸載成功。設備 %s(%s) 現在可以安全移除。" #, c-format, boost-format msgid "Ejecting of device %s(%s) has failed." @@ -5924,12 +5913,11 @@ msgstr "該 3mf 的版本 %s 比 %s 的版本 %s 要新,建議升級你的軟 msgid "Invalid values found in the 3mf:" msgstr "在 3mf 檔案中發現無效值:" -#, fuzzy msgid "Please correct them in the param tabs" msgstr "請在參數設定頁更正它們" msgid "The 3mf has following modified G-codes in filament or printer presets:" -msgstr "該 3MF 檔案在耗材或列印機預設中具有以下修改過的 GCODE:" +msgstr "該 3mf 檔案在耗材或列印機預設中具有以下修改過的 GCODE:" msgid "" "Please confirm that these modified G-codes are safe to prevent any damage to " @@ -5940,18 +5928,18 @@ msgid "Modified G-codes" msgstr "已修改的 GCODE" msgid "The 3mf has following customized filament or printer presets:" -msgstr "該 3MF 檔案具有以下自訂的耗材或列印機預設:" +msgstr "該 3mf 檔案具有以下自訂的耗材或列印機預設:" msgid "" "Please confirm that the G-codes within these presets are safe to prevent any " "damage to the machine!" -msgstr "請確認這些預設中的 GCODE 是安全的,以防止對機器造成任何損壞!" +msgstr "請確認這些預設中的 G-code 是安全的,以防止對機器造成損壞!" msgid "Customized Preset" -msgstr "" +msgstr "自訂預設" msgid "Name of components inside step file is not UTF8 format!" -msgstr "step 檔案中的零件名稱包含非 UTF8 格式的字元!" +msgstr "step 檔案內部元件的名稱不是 UTF8 格式!" msgid "The name may show garbage characters!" msgstr "此名稱可能顯示亂碼字元!" @@ -6024,7 +6012,9 @@ msgstr "匯出 OBJ 檔案:" msgid "" "The file %s already exists\n" "Do you want to replace it?" -msgstr "檔案 %s 已存在您確定要替換它嗎?" +msgstr "" +"檔案 %s 已存在\n" +"是否要覆蓋它?" msgid "Confirm Save As" msgstr "確認另存為" @@ -6037,8 +6027,9 @@ msgid "" "This action will break a cut correspondence.\n" "After that model consistency can't be guaranteed." msgstr "" -"你正嘗試刪除切割物件的一部分,這將破壞切割對應關係,刪除之後,將無法再保證模" -"型的一致性。" +"你正在嘗試刪除一個屬於切割物件的部分。\n" +"此操作將破壞切割對應關係。\n" +"模型的一致性可能無法保證。" msgid "The selected object couldn't be split." msgstr "選中的模型不可分割。" @@ -6109,7 +6100,6 @@ msgstr "" "僅預覽模式:\n" "被載入的檔案僅包含 G-Code,不支援進入準備頁面" -#, fuzzy msgid "You can keep the modified presets to the new project or discard them" msgstr "你可以將修改後的預設檔保留到新專案項目中或者忽略這些修改" @@ -6146,7 +6136,7 @@ msgstr "下載失敗,檔案大小異常。" #, c-format, boost-format msgid "Project downloaded %d%%" -msgstr "專案已下載 %d%%" +msgstr "專案已下載 %d%%" msgid "" "Importing to Orca Slicer failed. Please download the file and manually " @@ -6179,7 +6169,6 @@ msgstr "無法將檔案解壓縮到 %1%:%2%" msgid "Failed to find unzipped file at %1%. Unzipping of file has failed." msgstr "無法找到解壓縮的檔案 %1%。解壓縮檔案失敗。" -#, fuzzy msgid "Drop project file" msgstr "刪除專案項目" @@ -6192,6 +6181,10 @@ msgstr "作為專案項目打開" msgid "Import geometry only" msgstr "僅匯入模型數據" +msgid "" +"This option can be changed later in preferences, under 'Load Behaviour'." +msgstr "可以稍後在偏好設定的「載入方式」中變更此選項。" + msgid "Only one G-code file can be opened at the same time." msgstr "只能同時打開一個 G-code 檔案。" @@ -6199,10 +6192,10 @@ msgid "G-code loading" msgstr "正在載入 G-code 檔案" msgid "G-code files can not be loaded with models together!" -msgstr "G-code 檔案不能和模型一起載入" +msgstr "G-code 檔案不能和模型一起載入!" msgid "Can not add models when in preview mode!" -msgstr "在預覽模式不允許增加模型" +msgstr "在預覽模式不允許增加模型!" msgid "All objects will be removed, continue?" msgstr "即將刪除所有物件,是否繼續?" @@ -6213,7 +6206,6 @@ msgstr "目前專案包含未儲存的修改,是否先儲存?" msgid "Number of copies:" msgstr "複製數量:" -#, fuzzy msgid "Copies of the selected object" msgstr "所選物件的複製數量" @@ -6246,21 +6238,20 @@ msgstr "" #, boost-format msgid "Reason: part \"%1%\" is empty." -msgstr "原因:\"%1%\"無物件" +msgstr "原因:零件 「%1%”」 無物件。" #, boost-format msgid "Reason: part \"%1%\" does not bound a volume." -msgstr "原因:零件\"%1%\"無體積" +msgstr "原因:零件 「%1%」 無體積。" #, boost-format msgid "Reason: part \"%1%\" has self intersection." -msgstr "原因:零件\"%1%\"" +msgstr "原因:零件 「%1%」" #, boost-format msgid "Reason: \"%1%\" and another part have no intersection." -msgstr "原因:\"%1%\" 與另一個零件沒有交集" +msgstr "原因:「%1%」 與另一個零件沒有交集。" -#, fuzzy msgid "" "Unable to perform boolean operation on model meshes. Only positive parts " "will be exported." @@ -6271,20 +6262,18 @@ msgid "" "3MF file?\n" "If you hit 'NO', all SVGs in the project will not be editable any more." msgstr "" -"你確定要將原始 SVG 檔案及其本地路徑儲存到 3MF 檔案中嗎?如果選擇「否」,專案" -"中的所有 SVG 將不再可編輯。" +"你確定要將原始 SVG 檔案及其本地路徑儲存到 3MF 檔案中嗎?\n" +"如果選擇『否』,專案中的所有 SVG 將不再可編輯。" msgid "Private protection" -msgstr "" +msgstr "私密保護" -#, fuzzy msgid "Is the printer ready? Is the print sheet in place, empty and clean?" msgstr "列印設備是否準備完成?列印平台是否在正確的位置、有沒有異物、是否乾淨?" msgid "Upload and Print" msgstr "上傳並列印" -#, fuzzy msgid "" "Print By Object: \n" "Suggest to use auto-arrange to avoid collisions when printing." @@ -6353,6 +6342,8 @@ msgid "" "\"Fix Model\" feature is currently only on Windows. Please repair the model " "on Orca Slicer(windows) or CAD softwares." msgstr "" +"「模型修復」功能目前僅適用於 Windows。請在 Orca Slicer(Windows)或 CAD 軟體" +"中修復模型。" #, c-format, boost-format msgid "" @@ -6360,8 +6351,8 @@ msgid "" "still want to do this printing, please set this filament's bed temperature " "to non zero." msgstr "" -"列印板 %d:%s 不建議被用於列印 %s(%s)線材。如果你依然想列印,請設定線材對應" -"的熱床溫度為非零值。" +"列印板% d:%s 不建議用於列印 %s(%s)線材。如果你仍想執行此列印,請將該線材的" +"熱床溫度設為非零值。" msgid "Switching the language requires application restart.\n" msgstr "切換語言要求重啟應用程式。\n" @@ -6394,19 +6385,19 @@ msgid "Choose Download Directory" msgstr "選擇下載資料夾" msgid "Associate" -msgstr "" +msgstr "關聯" msgid "with OrcaSlicer so that Orca can open models from" -msgstr "" +msgstr "與 OrcaSlicer 關聯,以便 Orca 可以從中打開模型" msgid "Current Association: " -msgstr "" +msgstr "當前關聯:" msgid "Current Instance" -msgstr "" +msgstr "當前實例" msgid "Current Instance Path: " -msgstr "" +msgstr "當前實例路徑:" msgid "General Settings" msgstr "一般設定" @@ -6493,8 +6484,9 @@ msgid "" "Default: LMB+move for rotation, RMB/MMB+move for panning.\n" "Touchpad: Alt+move for rotation, Shift+move for panning." msgstr "" -"選擇相機導航樣式。預設:左鍵+移動旋轉,右鍵/中鍵+移動平移。觸控板:Alt+移動旋" -"轉,Shift+移動平移。" +"選擇相機導航樣式。\n" +"預設:左鍵+移動旋轉,右鍵/中鍵+移動平移。\n" +"觸控板:Alt+移動旋轉,Shift+移動平移。" msgid "Zoom to mouse position" msgstr "放大到滑鼠位置" @@ -6502,7 +6494,7 @@ msgstr "放大到滑鼠位置" msgid "" "Zoom in towards the mouse pointer's position in the 3D view, rather than the " "2D window center." -msgstr "在 3D 視角放大到滑鼠位置,而不是 2D 窗口的中心。" +msgstr "在 3D 視圖中以滑鼠指標的位置為中心放大,而非以 2D 視窗中心放大。" msgid "Use free camera" msgstr "使用自由鏡頭" @@ -6514,7 +6506,7 @@ msgid "Reverse mouse zoom" msgstr "反轉滑鼠滾輪縮放方向" msgid "If enabled, reverses the direction of zoom with mouse wheel." -msgstr "啟用後,改變滑鼠滾輪縮放方向" +msgstr "啟用後,改變滑鼠滾輪縮放方向。" msgid "Show splash screen" msgstr "顯示啟動動畫" @@ -6529,14 +6521,14 @@ msgid "If enabled, useful hints are displayed at startup." msgstr "如果啟用,將在啟動時顯示有用的提示。" msgid "Flushing volumes: Auto-calculate every time the color changed." -msgstr "廢料體積:換色時自動計算" +msgstr "廢料體積:換色時自動計算。" msgid "If enabled, auto-calculate every time the color changed." -msgstr "啟用後,換色時自動計算" +msgstr "啟用後,換色時自動計算。" msgid "" "Flushing volumes: Auto-calculate every time when the filament is changed." -msgstr "廢料體積:換料時自動計算" +msgstr "廢料體積:換料時自動計算。" msgid "If enabled, auto-calculate every time when filament is changed" msgstr "啟用後,換料時自動計算" @@ -6547,7 +6539,7 @@ msgstr "記住機臺設定" msgid "" "If enabled, Orca will remember and switch filament/process configuration for " "each printer automatically." -msgstr "啟用後,Orca會記住且自動切換各機臺線材與列印設定" +msgstr "啟用後,Orca會記住且自動切換各機臺線材與列印設定。" msgid "Multi-device Management(Take effect after restarting Orca)." msgstr "多臺設備管理(需重開Orca)" @@ -6555,25 +6547,25 @@ msgstr "多臺設備管理(需重開Orca)" msgid "" "With this option enabled, you can send a task to multiple devices at the " "same time and manage multiple devices." -msgstr "啟用時可以同時傳送到並管理多個機臺" +msgstr "啟用時可以同時傳送到並管理多個機臺。" msgid "Auto arrange plate after cloning" -msgstr "複製後自動排列" +msgstr "複製後自動排列列印板" msgid "Auto arrange plate after object cloning" -msgstr " " +msgstr "物件複製後自動排列列印板" msgid "Network" msgstr "網路" msgid "Auto sync user presets(Printer/Filament/Process)" -msgstr "自動同步使用者預設(列印設備/線材/列印品質參數)" +msgstr "自動同步用戶預設(列印設備/線材/列印品質參數)" msgid "User Sync" msgstr "使用者同步" msgid "Update built-in Presets automatically." -msgstr "自動更新系統預設" +msgstr "自動更新系統預設。" msgid "System Sync" msgstr "系統同步" @@ -6582,7 +6574,7 @@ msgid "Clear my choice on the unsaved presets." msgstr "清除我對未儲存預設的選擇。" msgid "Associate files to OrcaSlicer" -msgstr " Orca Slicer 檔案關聯" +msgstr "Orca Slicer 檔案關聯" msgid "Associate .3mf files to OrcaSlicer" msgstr "使用 Orca Slicer 打開 .3mf 檔案" @@ -6603,10 +6595,28 @@ msgid "If enabled, sets OrcaSlicer as default application to open .step files" msgstr "開啟後,將預設使用 Orca Slicer 打開 .step 檔案" msgid "Associate web links to OrcaSlicer" -msgstr "" +msgstr "將網頁連結關聯到 OrcaSlicer" msgid "Associate URLs to OrcaSlicer" -msgstr "" +msgstr "將 URL 關聯到 OrcaSlicer" + +msgid "Load All" +msgstr "載入全部" + +msgid "Ask When Relevant" +msgstr "必要時詢問" + +msgid "Always Ask" +msgstr "總是詢問" + +msgid "Load Geometry Only" +msgstr "僅載入幾何數據" + +msgid "Load Behaviour" +msgstr "載入方式" + +msgid "Should printer/filament/process settings be loaded when opening a .3mf?" +msgstr "開啟 .3mf 檔案時,是否需要載入印表機、線材和參數設定?" msgid "Maximum recent projects" msgstr "最近專案項目的最大數量" @@ -6615,10 +6625,10 @@ msgid "Maximum count of recent projects" msgstr "近期專案項目的最大統計" msgid "Clear my choice on the unsaved projects." -msgstr "清除我對未儲存的專案項目的選擇。" +msgstr "清除我對未儲存專案項目的選擇。" msgid "No warnings when loading 3MF with modified G-codes" -msgstr "載入具有GCODE修改的3MF時不警告" +msgstr "載入包含修改過 G-code 的 3MF 時不顯示警告" msgid "Auto-Backup" msgstr "自動備份" @@ -6631,7 +6641,7 @@ msgid "every" msgstr "所有" msgid "The period of backup in seconds." -msgstr "備份的週期" +msgstr "備份的週期。" msgid "Downloads" msgstr "下載" @@ -6711,18 +6721,17 @@ msgstr "除錯" msgid "trace" msgstr "跟蹤" -#, fuzzy msgid "Host Setting" msgstr "伺服器設定" msgid "DEV host: api-dev.bambu-lab.com/v1" -msgstr "" +msgstr "開發環境主機:api-dev.bambu-lab.com/v1" msgid "QA host: api-qa.bambu-lab.com/v1" -msgstr "" +msgstr "測試環境主機:api-qa.bambu-lab.com/v1" msgid "PRE host: api-pre.bambu-lab.com/v1" -msgstr "" +msgstr "預發布環境主機:api-pre.bambu-lab.com/v1" msgid "Product host" msgstr "正式環境" @@ -6788,10 +6797,10 @@ msgid "Customize" msgstr "自訂" msgid "Other layer filament sequence" -msgstr "" +msgstr "其他層的線材列印順序" msgid "Please input layer value (>= 2)." -msgstr "" +msgstr "請輸入層數值(>= 2)" msgid "Plate name" msgstr "列印板名稱" @@ -6806,19 +6815,17 @@ msgid "Same as Global" msgstr "跟隨全域設定" msgid "Disable" -msgstr "" +msgstr "停用" msgid "Spiral vase" -msgstr "花瓶模式" +msgstr "螺旋花瓶模式" msgid "First layer filament sequence" msgstr "首層線材列印順序" -#, fuzzy msgid "Same as Global Plate Type" msgstr "跟隨全域列印板設定" -#, fuzzy msgid "Same as Global Bed Type" msgstr "跟隨全域列印板設定" @@ -6901,23 +6908,23 @@ msgctxt "PresetName" msgid "Copy" msgstr "複製" -#, fuzzy, boost-format +#, boost-format msgid "Printer \"%1%\" is selected with preset \"%2%\"" msgstr "選中的列印設備 \"%1%\" 和預設 \"%2%\"" -#, fuzzy, boost-format +#, boost-format msgid "Please choose an action with \"%1%\" preset after saving." msgstr "請選擇儲存後對 \"%1%\" 預設的操作。" -#, fuzzy, boost-format +#, boost-format msgid "For \"%1%\", change \"%2%\" to \"%3%\" " msgstr "為 \"%1%\",把 \"%2%\" 更換為 \"%3%\" " -#, fuzzy, boost-format +#, boost-format msgid "For \"%1%\", add \"%2%\" as a new preset" msgstr "為 \"%1%\",增加 \"%2%\" 為一個新預設" -#, fuzzy, boost-format +#, boost-format msgid "Simply switch to \"%1%\"" msgstr "直接切換到 \"%1%\" " @@ -6958,16 +6965,16 @@ msgid "PLA Plate" msgstr "PLA 列印板" msgid "Bambu Engineering Plate" -msgstr "工程列印熱床" +msgstr "Bambu 工程列印熱板" msgid "Bambu Smooth PEI Plate" -msgstr "" +msgstr "Bambu 平滑 PEI 列印板" msgid "High temperature Plate" msgstr "高溫列印板" msgid "Bambu Textured PEI Plate" -msgstr "" +msgstr "Bambu 紋理 PEI 列印板" msgid "Send print job to" msgstr "傳送列印作業至" @@ -6999,97 +7006,90 @@ msgstr "同步設備資訊逾時" msgid "Cannot send the print job when the printer is updating firmware" msgstr "設備升級中,無法傳送列印作業" -#, fuzzy msgid "" "The printer is executing instructions. Please restart printing after it ends" msgstr "列印設備正在執行指令,請在指令結束後重新開始列印" -#, fuzzy msgid "The printer is busy on other print job" msgstr "列印設備正在執行其他列印作業" -#, fuzzy, c-format, boost-format +#, c-format, boost-format msgid "" "Filament %s exceeds the number of AMS slots. Please update the printer " "firmware to support AMS slot assignment." msgstr "" "線材編號 %s 超出 AMS 槽位數量,請更新列印設備韌體以支援 AMS 槽位映射功能。" -#, fuzzy msgid "" "Filament exceeds the number of AMS slots. Please update the printer firmware " "to support AMS slot assignment." msgstr "線材編號超出 AMS 槽位數量,請更新列印設備韌體以支援 AMS 槽位映射功能。" -#, fuzzy msgid "" "Filaments to AMS slots mappings have been established. You can click a " "filament above to change its mapping AMS slot" msgstr "" -"已自動建立 \"線材清單=>AMS 槽位\" 的映射關係。 可點擊上方的線材來手動設定其所" -"對應的 AMS 槽位" +"線材與 AMS 槽位的映射關係已設定完成。你可以點擊上方的線材來更改其對應的 AMS " +"槽位" msgid "" "Please click each filament above to specify its mapping AMS slot before " "sending the print job" msgstr "請在傳送列印前點擊上方各個線材,指定其所對應的 AMS 槽位" -#, fuzzy, c-format, boost-format +#, c-format, boost-format msgid "" "Filament %s does not match the filament in AMS slot %s. Please update the " "printer firmware to support AMS slot assignment." msgstr "" "線材編號 %s 和 AMS 槽位 %s 中的線材材質不相符,請更新列印設備韌體以支援 AMS " -"槽位映射功能" +"槽位映射功能。" -#, fuzzy msgid "" "Filament does not match the filament in AMS slot. Please update the printer " "firmware to support AMS slot assignment." msgstr "" "材料編號和 AMS 槽位中的線材材質不相符,請更新列印設備韌體以支援 AMS 槽位映射" -"功能" +"功能。" -#, fuzzy msgid "" "The printer firmware only supports sequential mapping of filament => AMS " "slot." msgstr "" -"已自動建立 \"線材清單=>AMS 槽位\" 的映射關係。 可點擊上方的線材來手動設定其所" -"對應的 AMS 槽位" +"已自動建立「線材清單 => AMS 槽位」的映射關係。 可點擊上方的線材來手動設定其所" +"對應的 AMS 槽位。" msgid "An SD card needs to be inserted before printing." -msgstr "請在進行列印前插入 SD 記憶卡" +msgstr "請在進行列印前插入 SD 記憶卡。" #, c-format, boost-format msgid "" "The selected printer (%s) is incompatible with the chosen printer profile in " "the slicer (%s)." -msgstr "" +msgstr "選定的列印設備(%s)與切片軟體中選擇的列印設備設定檔(%s)不相容。" msgid "An SD card needs to be inserted to record timelapse." -msgstr "使用縮時攝影功能需要插入 SD 記憶卡" +msgstr "使用縮時攝影功能需要插入 SD 記憶卡。" msgid "" "Cannot send the print job to a printer whose firmware is required to get " "updated." -msgstr "機台需要更新韌體才能接收列印作業" +msgstr "機台需要更新韌體才能接收列印作業。" msgid "Cannot send the print job for empty plate" msgstr "無法傳送空的列印板" -#, fuzzy msgid "This printer does not support printing all plates" msgstr "此列印設備類型不支援列印所有列印板" msgid "" "When enable spiral vase mode, machines with I3 structure will not generate " "timelapse videos." -msgstr "當啟用花瓶模式時,門架結構的設備不會產生縮時攝影影片" +msgstr "當啟用螺旋花瓶模式時,龍門結構的設備不會產生縮時攝影影片。" msgid "" "Timelapse is not supported because Print sequence is set to \"By object\"." -msgstr "逐件列印模式下不支援縮時錄影" +msgstr "『逐件列印』模式下不支援縮時錄影。" msgid "Errors" msgstr "錯誤" @@ -7110,35 +7110,37 @@ msgid "" "they are the required filaments. If they are okay, press \"Confirm\" to " "start printing." msgstr "" -"AMS 設定中存在一些未知的線材。請檢查是否符合所需的線材。如果符合,按\"確定" -"\"以開始列印作業。" +"AMS 設定中存在一些未知的線材。請檢查是否符合所需的線材。如果符合,按『確定』" +"以開始列印作業。" #, c-format, boost-format msgid "nozzle in preset: %s %s" -msgstr "" +msgstr "預設中的噴嘴:%s %s" #, c-format, boost-format msgid "nozzle memorized: %.2f %s" -msgstr "" +msgstr "記憶中的噴嘴:%.2f %s" msgid "" "Your nozzle diameter in sliced file is not consistent with memorized nozzle. " "If you changed your nozzle lately, please go to Device > Printer Parts to " "change settings." msgstr "" +"切片文件中的噴嘴直徑與記憶中的噴嘴不一致。如果你最近更換了噴嘴,請前往「設備 " +"> 列印機部件」更新設定。" #, c-format, boost-format msgid "" "Printing high temperature material(%s material) with %s may cause nozzle " "damage" -msgstr "" +msgstr "使用 %s 列印高溫材料(%s 材料)可能會導致噴嘴損壞" msgid "Please fix the error above, otherwise printing cannot continue." -msgstr "請排除上述錯誤,否則無法繼續列印" +msgstr "請排除上述錯誤,否則無法繼續列印。" msgid "" "Please click the confirm button if you still want to proceed with printing." -msgstr "如果你仍然想繼續列印,請滑鼠左鍵點擊 確定 按鈕。" +msgstr "如果你仍然想繼續列印,請滑鼠左鍵點擊『確定』按鈕。" msgid "" "Connecting to the printer. Unable to cancel during the connection process." @@ -7150,7 +7152,7 @@ msgid "" msgstr "小心使用!紋理 PEI 板 上的流量校準可能會因表面光線散射而失敗。" msgid "Automatic flow calibration using Micro Lidar" -msgstr "使用微型雷射雷達進行自動流量校準" +msgstr "使用 Micro Lidar 進行自動流量校準" msgid "Modifying the device name" msgstr "修改列印設備名稱" @@ -7158,6 +7160,9 @@ msgstr "修改列印設備名稱" msgid "Bind with Pin Code" msgstr "Pin碼綁定" +msgid "Bind with Access Code" +msgstr "透過存取碼綁定" + msgid "Send to Printer SD card" msgstr "傳送到列印設備的 SD 記憶卡" @@ -7168,7 +7173,7 @@ msgid "The selected printer is incompatible with the chosen printer presets." msgstr "所選列印設備與選擇的列印設備預設檔不相容。" msgid "An SD card needs to be inserted before send to printer SD card." -msgstr "傳送到列印設備需要插入 SD 記憶卡" +msgstr "傳送到列印設備需要插入 SD 記憶卡。" msgid "The printer is required to be in the same LAN as Orca Slicer." msgstr "列印設備需要與 Orca Slicer 在同一個區域網路內。" @@ -7177,7 +7182,7 @@ msgid "The printer does not support sending to printer SD card." msgstr "該列印設備不支援傳送到 SD 記憶卡。" msgid "Slice ok." -msgstr "切片完成." +msgstr "切片完成。" msgid "View all Daily tips" msgstr "顯示所有每日提示" @@ -7192,15 +7197,14 @@ msgid "Failed to publish login request" msgstr "請求登陸失敗" msgid "Get ticket from device timeout" -msgstr "" +msgstr "從設備獲取票證超時" msgid "Get ticket from server timeout" -msgstr "" +msgstr "從伺服器獲取票證超時" msgid "Failed to post ticket to server" -msgstr "" +msgstr "將票證提交到伺服器失敗" -#, fuzzy msgid "Failed to parse login report reason" msgstr "無法解析登入回覆" @@ -7230,7 +7234,7 @@ msgid "Please confirm on the printer screen" msgstr "請到機台上按確認" msgid "Log in failed. Please check the Pin Code." -msgstr "登入失敗。請確認Pin" +msgstr "登入失敗。請檢查 Pin碼。" msgid "Log in printer" msgstr "登入列印設備" @@ -7254,24 +7258,24 @@ msgid "" "Use(collectively, the \"Terms\"). If you do not comply with or agree to the " "Bambu Lab Privacy Policy, please do not use Bambu Lab equipment and services." msgstr "" -"感謝你購買 Bambu Lab 設備,使用 Bambu Lab 設備前,請閱讀一下條款,點擊同意使" -"用你的 Bambu Lab 設備即表示你同意遵守隱私政策以及使用條款(統稱為 條款 )。如" -"果你不願遵守或不同意 Bambu Lab 隱私政策,請不要使用 Bambu Lab 設備和服務。" +"感謝你購買 Bambu Lab 設備。在使用 Bambu Lab 設備之前,請先閱讀條款與條件。點" +"擊同意使用 Bambu Lab 設備,即表示你同意遵守隱私政策與使用條款(以下統稱「條" +"款」)。若你不同意或無法遵守 Bambu Lab 隱私政策,請勿使用 Bambu Lab 的設備及" +"服務。" msgid "and" -msgstr " 與 " +msgstr "與" msgid "Privacy Policy" msgstr "隱私協議" -#, fuzzy msgid "We ask for your help to improve everyone's printer" msgstr "我們請求你的幫助來改善大家的列印設備" msgid "Statement about User Experience Improvement Program" msgstr "關於使用者體驗改善計劃的聲明" -#, fuzzy, c-format, boost-format +#, c-format, boost-format msgid "" "In the 3D Printing community, we learn from each other's successes and " "failures to adjust our own slicing parameters and settings. %s follows the " @@ -7285,13 +7289,12 @@ msgid "" "payment information, or phone numbers. By enabling this service, you agree " "to these terms and the statement about Privacy Policy." msgstr "" -"在 3D 列印社區,我們從彼此的成功和失敗中學習調整自己的切片參數和設定。%s 遵循" -"同樣的原則,透過機器學習的方式從大量使用者列印的成功和失敗中獲取經驗,從而改" -"善列印性能。我們正在透過向 %s 提供真實世界的資料來訓練他們變得更聰明。如果你" -"願意,此服務將訪問你的錯誤日誌和使用日誌中的資訊,其中可能包括隱私政策中描述" -"的資料。我們不會收集任何可以直接或間接識別個人的個人資料,包括但不限於姓名、" -"地址、支付資訊或電話號碼。啟用此服務即表示你同意這些條款和有關隱私政策的聲" -"明。" +"在 3D 列印社群中,我們通過分享彼此的成功與失敗經驗來調整切片參數與設置。%s 也" +"採用了相同的原則,利用機器學習,透過用戶的大量列印成功與失敗數據來提升其性" +"能。我們正以實際應用數據來訓練 %s,使其變得更智能。如果你願意,這項服務將存取" +"你的錯誤日誌和使用日誌,其中可能包含隱私政策中提到的相關資訊。我們不會收集任" +"何可直接或間接識別個人身份的個人資料,包括但不限於姓名、地址、支付資訊或電話" +"號碼。啟用此服務即表示你同意這些條款及隱私政策聲明。" msgid "Statement on User Experience Improvement Plan" msgstr "關於使用者體驗改善計劃的聲明" @@ -7315,7 +7318,7 @@ msgid "Failed to log out." msgstr "登出失敗。" #. TRN "Save current Settings" -#, fuzzy, c-format, boost-format +#, c-format, boost-format msgid "Save current %s" msgstr "儲存目前 %s" @@ -7332,14 +7335,15 @@ msgid "" "Prime tower is required for smooth timelapse. There may be flaws on the " "model without prime tower. Are you sure you want to disable prime tower?" msgstr "" -"平滑模式的縮時錄影需要換料塔,否則列印物件上可能會有瑕疵。確定要關閉換料塔" -"嗎?" +"平滑模式的縮時錄影需要換料塔,否則列印物件上可能會有瑕疵。你是否要關閉換料" +"塔?" msgid "" "Prime tower is required for smooth timelapse. There may be flaws on the " "model without prime tower. Do you want to enable prime tower?" msgstr "" -"平滑模式的縮時錄影需要換料塔,否則列印物件上可能會有瑕疵。要打開換料塔嗎?" +"平滑模式的縮時錄影需要換料塔,否則列印物件上可能會有瑕疵。你是否要啟用換料" +"塔?" msgid "Still print by object?" msgstr "持續逐件列印?" @@ -7349,9 +7353,8 @@ msgid "" "support volume but weaker strength.\n" "We recommend using it with: 0 interface layers, 0 top distance, 2 walls." msgstr "" -"我們增加了一種實驗性的支撐樣式 \"苗條樹\",它的特點是支撐體積較小,但強度較" -"弱。\n" -"因此我們推薦以下參數:界面數為 0,頂部Z距離為 0,牆層數為 2。" +"我們新增了一種實驗性支撐樣式『苗條樹』,具有更小的支撐體積但強度較低。\n" +"建議使用以下設置:0 個介面層、0 頂部距離、2 層牆。" msgid "" "Change these settings automatically? \n" @@ -7384,9 +7387,11 @@ msgid "" "precise dimensions or is part of an assembly, it's important to double-check " "whether this change in geometry impacts the functionality of your print." msgstr "" +"啟用此選項將會改變模型形狀。如果你的列印需要精準的尺寸或屬於組裝件的一部分," +"請務必再次確認此幾何形狀的更改是否會影響你的列印。" msgid "Are you sure you want to enable this option?" -msgstr "" +msgstr "你確定要啟用此選項嗎?" msgid "" "Layer height is too small.\n" @@ -7416,6 +7421,8 @@ msgid "" "reduce flush, it may also elevate the risk of nozzle clogs or other " "printing complications." msgstr "" +"實驗性功能:在換線過程中以更大的距離收回並切斷線材,以減少沖洗量。儘管這可以" +"顯著減少沖洗,但也可能增加噴嘴堵塞或其他列印問題的風險。" msgid "" "Experimental feature: Retracting and cutting off the filament at a greater " @@ -7423,16 +7430,92 @@ msgid "" "reduce flush, it may also elevate the risk of nozzle clogs or other printing " "complications.Please use with the latest printer firmware." msgstr "" +"實驗性功能:在換線過程中以更大的距離收回並切斷線材,以減少沖洗量。儘管這可以" +"顯著減少沖洗,但也可能增加噴嘴堵塞或其他列印問題的風險。請搭配最新的打印機韌" +"體使用。" -#, fuzzy msgid "" "When recording timelapse without toolhead, it is recommended to add a " "\"Timelapse Wipe Tower\" \n" "by right-click the empty position of build plate and choose \"Add " "Primitive\"->\"Timelapse Wipe Tower\"." msgstr "" -"在錄製無工具頭縮時錄影影片時,建議增加\"縮時錄影換料塔\"\n" -"右鍵單擊列印板的空白位置,選擇\"新增標準模型\"->\"縮時錄影換料塔\"。" +"在錄製無工具頭縮時錄影影片時,建議添加一個「縮時錄影換料塔」\n" +"可以通過右鍵點擊構建板的空白位置,選擇『新增標準模型』->『縮時錄影換料塔』來" +"進行添加。" + +msgid "" +"A copy of the current system preset will be created, which will be detached " +"from the system preset." +msgstr "將建立目前系統配置的副本,且該副本將與系統配置分離不相關聯。" + +msgid "" +"The current custom preset will be detached from the parent system preset." +msgstr "當前的自訂配置將與父系統配置分離不相關聯。" + +msgid "Modifications to the current profile will be saved." +msgstr "目前設定檔的修改將會保存下來。" + +msgid "" +"This action is not revertible.\n" +"Do you want to proceed?" +msgstr "" +"此操作無法還原。\n" +"您確定要繼續嗎?" + +msgid "Detach preset" +msgstr "" +"解除預設關聯你知道嗎?當列印容易翹曲的材料(如 ABS)時,適當提高熱床溫度可以" +"降低翹曲的機率。" + +msgid "This is a default preset." +msgstr "預設配置。" + +msgid "This is a system preset." +msgstr "這是系統預設配置" + +msgid "Current preset is inherited from the default preset." +msgstr "目前的配置繼承自預設配置。" + +msgid "Current preset is inherited from" +msgstr "目前的配置繼承自" + +msgid "It can't be deleted or modified." +msgstr "它無法被刪除或修改。" + +msgid "" +"Any modifications should be saved as a new preset inherited from this one." +msgstr "若要進行任何修改,請另存為一個新的預設配置,並繼承自此預設配置。" + +msgid "To do that please specify a new name for the preset." +msgstr "為此,請為新的預設配置指定一個名稱。" + +msgid "Additional information:" +msgstr "其他資訊:" + +msgid "vendor" +msgstr "供應商" + +msgid "printer model" +msgstr "列印設備型號" + +msgid "default print profile" +msgstr "預設列印設定檔" + +msgid "default filament profile" +msgstr "預設線材設定檔" + +msgid "default SLA material profile" +msgstr "預設 SLA 材料設定檔" + +msgid "default SLA print profile" +msgstr "預設 SLA 列印設定檔" + +msgid "full profile name" +msgstr "完整設定檔名稱" + +msgid "symbolic profile name" +msgstr "簡易設定檔名稱" msgid "Line width" msgstr "線寬" @@ -7475,8 +7558,8 @@ msgid "" "expressed as a percentage of line width. 0 speed means no slowing down for " "the overhang degree range and wall speed is used" msgstr "" -"不同懸空程度的列印速度。懸空程度使用相對於線寬的百分比表示。速度為 0 代表這個" -"懸空程度範圍內不降速,直接使用牆的速度" +"此設置是為不同懸空角度指定的速度。懸空角度以線寬的百分比表示。若速度設置為 " +"0,表示該懸空角度範圍內不會減速,將使用牆面速度" msgid "Bridge" msgstr "橋接" @@ -7509,13 +7592,13 @@ msgid "Prime tower" msgstr "換料塔" msgid "Filament for Features" -msgstr "" +msgstr "用於特徵的線材" msgid "Ooze prevention" msgstr "防止漏料" msgid "Skirt" -msgstr "側裙" +msgstr "Skirt" msgid "Special mode" msgstr "特殊模式" @@ -7529,6 +7612,12 @@ msgstr "後處理腳本" msgid "Notes" msgstr "備註" +msgid "Dependencies" +msgstr "相依項目" + +msgid "Profile dependencies" +msgstr "設定檔相依項目" + msgid "Frequent" msgstr "常用" @@ -7543,7 +7632,7 @@ msgid_plural "" "estimation." msgstr[0] "" "以下行 %s 包含保留關鍵字。\n" -"請將其移除,否則將影響 G-code 視覺化和列印時間估計。" +"請將其移除,否則將影響 G-code 的視覺化和列印時間估算。" msgid "Reserved keywords found" msgstr "偵測到保留的關鍵字" @@ -7579,12 +7668,13 @@ msgid "Nozzle temperature when printing" msgstr "列印時的噴嘴溫度" msgid "Cool Plate (SuperTack)" -msgstr "" +msgstr "低溫增穩列印板" msgid "" "Bed temperature when cool plate is installed. Value 0 means the filament " "does not support to print on the Cool Plate SuperTack" msgstr "" +"使用低溫增穩列印板時,熱床設定溫度其值為 0 ,表示該線材不適用於低溫增穩列印板" msgid "Cool Plate" msgstr "低溫列印板" @@ -7592,34 +7682,35 @@ msgstr "低溫列印板" msgid "" "Bed temperature when cool plate is installed. Value 0 means the filament " "does not support to print on the Cool Plate" -msgstr "使用低溫列印板時的熱床溫度。0 值表示這個線材不支援低溫列印板" +msgstr "使用低溫列印板時,熱床設定溫度其值為 0 ,表示該線材不適用於低溫列印板" msgid "Textured Cool plate" -msgstr "紋理低溫列印板" +msgstr "低溫紋理列印板" msgid "" "Bed temperature when cool plate is installed. Value 0 means the filament " "does not support to print on the Textured Cool Plate" msgstr "" +"使用紋理低溫列印板時,熱床設定溫度其值為 0 ,表示該線材不適用於低溫紋理列印板" msgid "Engineering plate" -msgstr "工程高溫列印板" +msgstr "工程列印板" msgid "" "Bed temperature when engineering plate is installed. Value 0 means the " "filament does not support to print on the Engineering Plate" -msgstr "使用工程高溫列印板時的熱床溫度。0 值表示這個線材不支援工程高溫列印板" +msgstr "使用工程列印板時,熱床設定溫度其值為 0 ,表示該線材不適用於工程列印板" msgid "Smooth PEI Plate / High Temp Plate" -msgstr "光滑面 PEI 列印板/高溫列印板" +msgstr "平滑 PEI 列印板 / 高溫列印板" msgid "" "Bed temperature when Smooth PEI Plate/High temperature plate is installed. " "Value 0 means the filament does not support to print on the Smooth PEI Plate/" "High Temp Plate" msgstr "" -"使用光滑面 PEI 列印板/高溫列印板時的熱床溫度。0 值表示這個線材不支援光滑面列" -"印板/高溫列印板" +"使用平滑 PEI 列印板 / 高溫列印板時,熱床設定溫度其值為 0 ,表示該線材不適用於" +"平滑 PEI 列印板 / 高溫列印板" msgid "Textured PEI Plate" msgstr "紋理 PEI 列印板" @@ -7627,7 +7718,9 @@ msgstr "紋理 PEI 列印板" msgid "" "Bed temperature when Textured PEI Plate is installed. Value 0 means the " "filament does not support to print on the Textured PEI Plate" -msgstr "使用紋理 PEI 列印板時的熱床溫度。0 值表示這個線材不支援紋理 PEI 列印板" +msgstr "" +"使用紋理 PEI 列印板時,熱床設定溫度其值為 0 ,表示該線材不適用於紋理 PEI 列印" +"板" msgid "Volumetric speed limitation" msgstr "體積流量速度限制" @@ -7680,19 +7773,16 @@ msgid "Filament end G-code" msgstr "線材結束 G-code" msgid "Wipe tower parameters" -msgstr "色塔參數" +msgstr "換料塔參數" -#, fuzzy msgid "Toolchange parameters with single extruder MM printers" -msgstr "單擠出機多線材列印設備換色參數" +msgstr "適用於單擠出機多材料打印機的工具切換參數" -#, fuzzy msgid "Ramming settings" msgstr "尖端成型設定" -#, fuzzy msgid "Toolchange parameters with multi extruder MM printers" -msgstr "多擠出機多線材列印設備換色參數" +msgstr "適用於多擠出機多材料打印機的工具切換參數" msgid "Printable space" msgstr "可列印區域" @@ -7700,10 +7790,10 @@ msgstr "可列印區域" #. TRN: First argument is parameter name, the second one is the value. #, boost-format msgid "Invalid value provided for parameter %1%: %2%" -msgstr "" +msgstr "參數 %1% 的值無效:%2%" msgid "G-code flavor is switched" -msgstr "" +msgstr "G-code 格式已切換" msgid "Cooling Fan" msgstr "冷卻風扇" @@ -7715,7 +7805,7 @@ msgid "Extruder Clearance" msgstr "擠出機避讓空間" msgid "Adaptive bed mesh" -msgstr "自適應床面網格" +msgstr "自適應熱床網格" msgid "Accessory" msgstr "配件" @@ -7730,7 +7820,7 @@ msgid "Machine end G-code" msgstr "列印設備結束 G-code" msgid "Printing by object G-code" -msgstr "" +msgstr "按物件列印的 G-code" msgid "Before layer change G-code" msgstr "換層前 G-code" @@ -7745,7 +7835,7 @@ msgid "Change filament G-code" msgstr "線材更換 G-code" msgid "Change extrusion role G-code" -msgstr "" +msgstr "變更擠出機任務的 G-code" msgid "Pause G-code" msgstr "暫停 G-code" @@ -7772,7 +7862,7 @@ msgid "Single extruder multi-material setup" msgstr "單擠出機多線材設定" msgid "Number of extruders of the printer." -msgstr "機台擠出機數量" +msgstr "機台擠出機數量。" msgid "" "Single Extruder Multi Material is selected, \n" @@ -7780,12 +7870,15 @@ msgid "" "Do you want to change the diameter for all extruders to first extruder " "nozzle diameter value?" msgstr "" +"已選擇單噴頭多材料模式,\n" +"所有噴頭的直徑必須相同。\n" +"你是否要將所有噴頭的直徑更改為第一噴頭的噴嘴直徑值?" msgid "Nozzle diameter" msgstr "噴嘴直徑" msgid "Wipe tower" -msgstr "色塔" +msgstr "換料塔" msgid "Single extruder multi-material parameters" msgstr "單擠出機多線材參數" @@ -7794,12 +7887,13 @@ msgid "" "This is a single extruder multi-material printer, diameters of all extruders " "will be set to the new value. Do you want to proceed?" msgstr "" +"這是一台單噴頭多材料列印機,所有噴頭的直徑將被設置為新的值。你要繼續嗎?" msgid "Layer height limits" msgstr "層高限制" msgid "Z-Hop" -msgstr "" +msgstr "Z 軸抬升" msgid "Retraction when switching material" msgstr "切換線材時的回抽量" @@ -7809,8 +7903,9 @@ msgid "" "\n" "Shall I disable it in order to enable Firmware Retraction?" msgstr "" -"使用韌體回抽模式時,擦拭選項不可用。\n" -"是否禁用擦拭選項來啟用韌體回抽?" +"當使用韌體回抽模式時,擦拭選項不可用。\n" +"\n" +"是否需要禁用擦拭以啟用韌體回抽?" msgid "Firmware Retraction" msgstr "韌體回抽" @@ -7823,15 +7918,15 @@ msgid "" "%d Filament Preset and %d Process Preset is attached to this printer. Those " "presets would be deleted if the printer is deleted." msgstr "" -"此印表設備含有 %d 線材預設和 %d 處理預設。若刪除此印表設備,這些預設將被刪" -"除。" +"此列印設備含有 %d 線材預設和 %d 列印參數預設。若刪除此列印設備,這些預設將被" +"刪除。" msgid "Presets inherited by other presets can not be deleted!" msgstr "被其他預設繼承的預設無法刪除!" msgid "The following presets inherit this preset." msgid_plural "The following preset inherits this preset." -msgstr[0] "" +msgstr[0] "以下預設繼承了此預設。" #. TRN Remove/Delete #, boost-format @@ -7840,13 +7935,15 @@ msgstr "%1% 預設" msgid "Following preset will be deleted too." msgid_plural "Following presets will be deleted too." -msgstr[0] "下列預設將被一起刪除。" +msgstr[0] "以下預設將一起被刪除。" msgid "" "Are you sure to delete the selected preset? \n" "If the preset corresponds to a filament currently in use on your printer, " "please reset the filament information for that slot." msgstr "" +"你確定要刪除所選預設嗎?\n" +"如果該預設對應的是列印設備當前使用的線材,請重置該槽位的線材資訊。" #, boost-format msgid "Are you sure to %1% the selected preset?" @@ -7858,7 +7955,6 @@ msgstr "所有" msgid "Set" msgstr "設定" -#, fuzzy msgid "Click to reset current value and attach to the global value." msgstr "點擊該圖示,恢復到全域的設定數值,並與全域設定同步變化。" @@ -7910,41 +8006,41 @@ msgstr "保留所選項目。" msgid "Transfer the selected options to the newly selected preset." msgstr "將所選項目遷移到新的預設中。" -#, fuzzy, boost-format +#, boost-format msgid "" "Save the selected options to preset \n" "\"%1%\"." msgstr "" -"儲存所選選項到預設 \n" -"\"%1%\"。" +"將所選的選項儲存到預設\n" +"「%1%」。" -#, fuzzy, boost-format +#, boost-format msgid "" "Transfer the selected options to the newly selected preset \n" "\"%1%\"." msgstr "" -"將選擇的選項轉移到新選擇的預設 \n" -"\"%1%\"。" +"將所選的選項轉移至新選擇的預設\n" +"「%1%」。" #, boost-format msgid "Preset \"%1%\" contains the following unsaved changes:" -msgstr "預設 \"%1%\" 包含以下未儲存的修改:" +msgstr "預設「%1%」包含以下未儲存的變更:" -#, fuzzy, boost-format +#, boost-format msgid "" "Preset \"%1%\" is not compatible with the new printer profile and it " "contains the following unsaved changes:" -msgstr "預設檔 \"%1%\" 與新的列印設備預設不相容,並且包含以下未儲存的修改:" +msgstr "預設「%1%」與新的列印設備設定檔不相容,且包含以下未儲存的變更:" -#, fuzzy, boost-format +#, boost-format msgid "" "Preset \"%1%\" is not compatible with the new process profile and it " "contains the following unsaved changes:" -msgstr "預設 \"%1%\" 和新的列印品質預設不相容,並且它包含以下未儲存的修改:" +msgstr "預設「%1%」與新的列印參數設定檔不相容,並包含以下未儲存的變更:" #, boost-format msgid "You have changed some settings of preset \"%1%\". " -msgstr "已更改預設 \"%1%\" 的一些設定。" +msgstr "已更改預設「%1%」的一些設定。" msgid "" "\n" @@ -7962,7 +8058,7 @@ msgstr "" "你可以儲存或放棄已修改的預設值,或選擇將修改的數值轉移到新的預設值。" msgid "You have previously modified your settings." -msgstr "" +msgstr "你之前已經對設定進行了修改。" msgid "" "\n" @@ -7970,7 +8066,7 @@ msgid "" "the modified values to the new project" msgstr "" "\n" -"你可以放棄已修改的預設值,或選擇將修改的數值轉移到新專案中。" +"你可以放棄已修改的預設值,或選擇將修改的數值轉移到新專案中" msgid "Extruders count" msgstr "擠出機數量" @@ -7989,13 +8085,15 @@ msgstr "選擇要比較的預設" msgid "" "You can only transfer to current active profile because it has been modified." -msgstr "" +msgstr "因為當前的設定檔已被修改,你只能轉移到目前啟用的設定檔。" msgid "" "Transfer the selected options from left preset to the right.\n" "Note: New modified presets will be selected in settings tabs after close " "this dialog." msgstr "" +"所選的選項從左側預設移至右側。\n" +"注意:關閉此對話框後,修改後的預設將在設置頁面中自動選取。" msgid "Transfer values from left to right" msgstr "將數值從左邊轉移到右邊" @@ -8016,7 +8114,7 @@ msgstr "封面" #, boost-format msgid "The name \"%1%\" already exists." -msgstr "\"%1%\" 已經存在。" +msgstr "「%1%」已經存在。" msgid "Basic Info" msgstr "基本資訊" @@ -8024,7 +8122,6 @@ msgstr "基本資訊" msgid "Pictures" msgstr "圖片" -#, fuzzy msgid "Bill of Materials" msgstr "材料清單" @@ -8059,19 +8156,18 @@ msgstr "設定檔不相容" msgid "the configuration package is incompatible with current application." msgstr "設定檔和目前的應用程式不相容。" -#, fuzzy, c-format, boost-format +#, c-format, boost-format msgid "" "The configuration package is incompatible with current application.\n" "%s will update the configuration package, Otherwise it won't be able to start" msgstr "" -"設定檔和目前的應用程式不相容。\n" -"%s 會更新設定檔,否則無法正常啟動" +"設定檔與目前的應用程式不相容。\n" +"%s 將更新設定檔,否則應用程式將無法啟動" #, c-format, boost-format msgid "Exit %s" msgstr "退出 %s" -#, fuzzy msgid "the Configuration package is incompatible with current APP." msgstr "設定檔與目前(手機應用程式)?不相容。" @@ -8085,54 +8181,56 @@ msgid "The configuration is up to date." msgstr "目前設定檔已經是最新版本。" msgid "Obj file Import color" -msgstr "" +msgstr "Obj 文件匯入顏色" msgid "Specify number of colors:" -msgstr "" +msgstr "指定顏色數量:" #, c-format, boost-format msgid "The color count should be in range [%d, %d]." -msgstr "" +msgstr "顏色數量應在 [%d, %d] 範圍內。" msgid "Recommended " -msgstr "" +msgstr "建議 " msgid "Current filament colors:" -msgstr "" +msgstr "當前線材顏色:" msgid "Quick set:" -msgstr "" +msgstr "快速設置:" msgid "Color match" -msgstr "" +msgstr "顏色匹配" msgid "Approximate color matching." -msgstr "" +msgstr "近似顏色匹配。" msgid "Append" -msgstr "" +msgstr "追加" msgid "Add consumable extruder after existing extruders." -msgstr "" +msgstr "在現有擠出機後新增可用的擠出機。" msgid "Reset mapped extruders." -msgstr "" +msgstr "重設已映射的擠出機。" msgid "Cluster colors" -msgstr "" +msgstr "色彩分群" msgid "Map Filament" -msgstr "" +msgstr "映射線材" msgid "" "Note:The color has been selected, you can choose OK \n" " to continue or manually adjust it." msgstr "" +"注意:顏色已選擇,你可以點擊確定繼續,\n" +"或者手動進行調整。" msgid "" "Waring:The count of newly added and \n" " current extruders exceeds 16." -msgstr "" +msgstr "警告:新增的擠出機量與當前擠出機總數超過 16。" msgid "Ramming customization" msgstr "自訂尖端成型" @@ -8167,7 +8265,6 @@ msgstr "尖端成型總體積" msgid "Ramming line width" msgstr "尖端成型線寬" -#, fuzzy msgid "Ramming line spacing" msgstr "尖端成型線間距" @@ -8175,7 +8272,7 @@ msgid "Auto-Calc" msgstr "自動計算" msgid "Re-calculate" -msgstr "" +msgstr "重新計算" msgid "Flushing volumes for filament change" msgstr "線材更換時產生的廢料體積" @@ -8184,6 +8281,8 @@ msgid "" "Orca would re-calculate your flushing volumes every time the filaments color " "changed. You could disable the auto-calculate in Orca Slicer > Preferences" msgstr "" +"Orca 會在每次線材顏色變更時重新計算沖洗量。你可以在 Orca Slicer 的『偏好設" +"置』中關閉自動計算功能" msgid "Flushing volume (mm³) for each filament pair." msgstr "在兩個線材間切換所需的廢料體積(mm³)" @@ -8218,38 +8317,44 @@ msgid "" "Windows Media Player is required for this task! Do you want to enable " "'Windows Media Player' for your operation system?" msgstr "" +"執行此設置需要 Windows Media Player!你是否要啟用 Windows Media Player?" msgid "" "BambuSource has not correctly been registered for media playing! Press Yes " "to re-register it. You will be promoted twice" msgstr "" +"「BambuSource 未正確註冊為媒體播放模組!請點擊『是』進行重新註冊,過程中會有" +"兩次提示" msgid "" "Missing BambuSource component registered for media playing! Please re-" "install BambuStudio or seek after-sales help." -msgstr "" +msgstr "缺少 BambuSource 媒體播放組件!請重新安裝 BambuStudio 或聯繫售後支援。" msgid "" "Using a BambuSource from a different install, video play may not work " "correctly! Press Yes to fix it." msgstr "" +"BambuSource 來自其他安裝版本,可能導致影片播放異常!請點擊『是』進行修復。" msgid "" "Your system is missing H.264 codecs for GStreamer, which are required to " "play video. (Try installing the gstreamer1.0-plugins-bad or gstreamer1.0-" "libav packages, then restart Orca Slicer?)" msgstr "" +"你的系統缺少 GStreamer 的 H.264 編解碼器,這是播放影片所必需的。(請嘗試安裝 " +"gstreamer1.0-plugins-bad 或 gstreamer1.0-libav 套件,然後重新啟動 Orca " +"Slicer。)" msgid "Bambu Network plug-in not detected." -msgstr "" +msgstr "未偵測到 Bambu 網路插件。" msgid "Click here to download it." -msgstr "下載" +msgstr "點擊下載。" msgid "Login" msgstr "登入" -#, fuzzy msgid "The configuration package is changed in previous Config Guide" msgstr "設定檔在之前的設定引導過程中已改變" @@ -8266,20 +8371,19 @@ msgid "Import geometry data from STL/STEP/3MF/OBJ/AMF files" msgstr "從 STL/STEP/3MF/OBJ/AMF 檔案中匯入幾何模型" msgid "⌘+Shift+G" -msgstr "" +msgstr "⌘+Shift+G" msgid "Ctrl+Shift+G" -msgstr "" +msgstr "Ctrl+Shift+G" msgid "Paste from clipboard" msgstr "從剪貼簿貼上" -#, fuzzy msgid "Show/Hide 3Dconnexion devices settings dialog" msgstr "顯示/隱藏 3Dconnexion 設備的設定對話框" msgid "Switch table page" -msgstr "" +msgstr "切換表單頁面" msgid "Show keyboard shortcuts list" msgstr "顯示鍵盤快捷鍵清單" @@ -8300,22 +8404,21 @@ msgid "Zoom View" msgstr "縮放視角" msgid "Shift+A" -msgstr "" +msgstr "Shift+A" msgid "Shift+R" -msgstr "" +msgstr "Shift+R" -#, fuzzy msgid "" "Auto orientates selected objects or all objects.If there are selected " "objects, it just orientates the selected ones.Otherwise, it will orientates " "all objects in the current disk." msgstr "" "自動調整選取零件/所有零件的方向,\n" -"有選取零件時調整選取零件的方向,沒有選取零件時調整目前列印板所有零件的方向" +"有選取零件時調整選取零件的方向,沒有選取零件時調整目前列印板所有零件的方向。" msgid "Shift+Tab" -msgstr "" +msgstr "Shift+Tab" msgid "Collapse/Expand the sidebar" msgstr "摺疊/展開 側邊欄" @@ -8323,7 +8426,6 @@ msgstr "摺疊/展開 側邊欄" msgid "⌘+Any arrow" msgstr "⌘+方向鍵" -#, fuzzy msgid "Movement in camera space" msgstr "沿相機視角移動物件" @@ -8433,7 +8535,7 @@ msgid "Gizmo FDM paint-on seam" msgstr "FDM 塗裝接縫" msgid "Gizmo Text emboss / engrave" -msgstr "" +msgstr "浮雕/雕刻文字工具" msgid "Zoom in" msgstr "放大" @@ -8469,7 +8571,7 @@ msgid "Alt+Mouse wheel" msgstr "Alt+滑鼠滾輪" msgid "Gizmo" -msgstr "" +msgstr "浮雕" msgid "Set extruder number for the objects and parts" msgstr "設定物件、零件使用的擠出機編號" @@ -8514,28 +8616,28 @@ msgid "Shift+Mouse wheel" msgstr "Shift+滑鼠滾輪" msgid "Horizontal slider - Move to start position" -msgstr "" +msgstr "水平滑動條 - 移動到起始位置" msgid "Horizontal slider - Move to last position" -msgstr "" +msgstr "水平滑動條 - 移動到最後位置" msgid "Release Note" msgstr "更新說明" #, c-format, boost-format msgid "version %s update information :" -msgstr "版本 %s 更新資訊" +msgstr "版本 %s 更新資訊:" msgid "Network plug-in update" msgstr "網路插件升級" msgid "" "Click OK to update the Network plug-in when Orca Slicer launches next time." -msgstr "按下「確定」後,下次啟動 Orca Slicer 時會更新網路插件" +msgstr "按下『確定』後,下次啟動 Orca Slicer 時會更新網路插件。" #, c-format, boost-format msgid "A new Network plug-in(%s) available, Do you want to install it?" -msgstr "新版的網路插件( %s)可用,是否要安裝?" +msgstr "新版的網路插件(%s)可用,是否要安裝?" msgid "New version of Orca Slicer" msgstr "新版本的 Orca Slicer" @@ -8562,7 +8664,7 @@ msgid "Stop Printing" msgstr "停止列印" msgid "Check Assistant" -msgstr "" +msgstr "檢查助手" msgid "Filament Extruded, Continue" msgstr "線才擠出,繼續" @@ -8580,51 +8682,76 @@ msgid "Filament Loaded, Resume" msgstr "進料完成,繼續" msgid "View Liveview" -msgstr "" +msgstr "預覽 Liveview" msgid "Confirm and Update Nozzle" -msgstr "" +msgstr "確認並更新噴嘴" -msgid "LAN Connection Failed (Sending print file)" -msgstr "區域網路連接失敗(傳送列印檔案)" +msgid "Connect the printer using IP and access code" +msgstr "透過 IP 和存取碼連接列印設備" msgid "" -"Step 1, please confirm Orca Slicer and your printer are in the same LAN." -msgstr "第1步,請確認 Orca Slicer 和你的列印設備在同一個區域網路上。" +"Step 1. Please confirm Orca Slicer and your printer are in the same LAN." +msgstr "步驟 1. 請確保 Orca Slicer 與列印設備在同一區域網路(LAN)中。" msgid "" -"Step 2, if the IP and Access Code below are different from the actual values " +"Step 2. If the IP and Access Code below are different from the actual values " "on your printer, please correct them." -msgstr "" -"步驟2, 如果下面的 IP 和訪問碼與列印設備上的實際值不同,請輸入正確的數值。" +msgstr "步驟 2. 若下方的 IP 和存取碼與印表機上的實際數值不符,請進行修正。" + +msgid "" +"Step 3. Please obtain the device SN from the printer side; it is usually " +"found in the device information on the printer screen." +msgstr "步驟 3. 請從列印設備上取得設備序號(SN),通常可在列印設備螢幕的設備資訊中查看。" msgid "IP" -msgstr "" +msgstr "IP" msgid "Access Code" msgstr "訪問碼" +msgid "Printer model" +msgstr "列印設備型號" + +msgid "Printer name" +msgstr "列印設備名稱" + msgid "Where to find your printer's IP and Access Code?" msgstr "在哪裡可以找到列印設備的 IP 和訪問碼?" -msgid "Step 3: Ping the IP address to check for packet loss and latency." -msgstr "步驟 3:Ping 該 IP 地址以檢查封包遺失和延遲。" +msgid "Connect" +msgstr "連線" -msgid "Test" -msgstr "測試" +msgid "Manual Setup" +msgstr "手動設定" -msgid "IP and Access Code Verified! You may close the window" -msgstr "IP 和存取碼已驗證!可以關閉視窗。" +msgid "connecting..." +msgstr "連線中..." + +msgid "Failed to connect to printer." +msgstr "無法連接到列印設備。" + +msgid "Failed to publish login request." +msgstr "登入請求發送失敗。" + +msgid "The printer has already been bound." +msgstr "此印表機已綁定。" + +msgid "The printer mode is incorrect, please switch to LAN Only." +msgstr "列印設備模式錯誤,請切換為 LAN Only 模式。" + +msgid "Connecting to printer... The dialog will close later" +msgstr "正在連接印表機… 對話框將在稍後自動關閉。" msgid "Connection failed, please double check IP and Access Code" -msgstr "連接失敗,請再次檢查 IP 和存取碼。" +msgstr "連接失敗,請再次檢查 IP 和存取碼" msgid "" "Connection failed! If your IP and Access Code is correct, \n" "please move to step 3 for troubleshooting network issues" msgstr "" "連接失敗!如果 IP 和存取碼正確,\n" -"請進入第 3 步進行網路問題排解。" +"請進入第 3 步進行網路問題排解" msgid "Model:" msgstr "型號:" @@ -8639,7 +8766,7 @@ msgid "Update firmware" msgstr "更新韌體" msgid "Beta version" -msgstr "" +msgstr "Beta 版本" msgid "Latest version" msgstr "最新版本" @@ -8663,17 +8790,16 @@ msgid "" "continue. Do you want to update now? You can also update later from 'Upgrade " "firmware'." msgstr "" -"偵測到重要更新,需要升級後才可進行列印。你想現在就開始升級嗎?你也可以稍後點" -"擊‘升級韌體’完成升級。" +"檢測到重要更新,必須執行後才能繼續列印。你要現在更新嗎?或者稍後可在『升級韌" +"體』中完成更新。" -#, fuzzy msgid "" "The firmware version is abnormal. Repairing and updating are required before " "printing. Do you want to update now? You can also update later on printer or " "update next time starting Orca." msgstr "" -"目前韌體版本異常,需要進行修復升級,否則無法繼續列印。你想現在就開始升級嗎?" -"你也可以稍後在列印設備上升級,或者下一次啟動 Orca Slicer 再升級。" +"韌體版本異常,必須修復並更新後才能列印。你要現在更新嗎?也可以稍後在列印設備" +"上更新,或在下次啟動 Orca 時進行更新。" msgid "Extension Board" msgstr "擴展板" @@ -8730,15 +8856,14 @@ msgstr "修復被取消" msgid "Copying of file %1% to %2% failed: %3%" msgstr "從 %1% 複製檔案到 %2% 失敗:%3%" -#, fuzzy msgid "Need to check the unsaved changes before configuration updates." msgstr "在設定更新之前需要檢查未儲存的設定變更。" msgid "Configuration package: " -msgstr "" +msgstr "設定檔:" msgid " updated to " -msgstr "" +msgstr "更新到 " msgid "Open G-code file:" msgstr "打開 G-code 檔案:" @@ -8762,12 +8887,12 @@ msgid "" msgstr "部分模型在這些高度可能過薄,或者模型存在缺陷" msgid "No object can be printed. Maybe too small" -msgstr "沒有可列印的物件。可能是因為尺寸過小。" +msgstr "沒有可列印的物件。可能是因為尺寸過小" msgid "" "Your print is very close to the priming regions. Make sure there is no " "collision." -msgstr "" +msgstr "你的列印區域非常接近準備區域,請確認不會發生碰撞。" msgid "" "Failed to generate gcode for invalid custom G-code.\n" @@ -8804,7 +8929,6 @@ msgstr "頂面" msgid "Bottom surface" msgstr "底面" -#, fuzzy msgid "Internal Bridge" msgstr "內部橋接" @@ -8925,7 +9049,7 @@ msgstr "寫入回調失敗" #, boost-format msgid "" "%1% is too close to exclusion area, there may be collisions when printing." -msgstr "%1% 離不可列印區域太近,可能會發生碰撞。" +msgstr "%1% 離淨空區域太近,可能會發生碰撞。" #, boost-format msgid "%1% is too close to others, and collisions may be caused." @@ -8939,7 +9063,7 @@ msgid " is too close to others, there may be collisions when printing." msgstr "離其它物件太近,列印時可能會發生碰撞。" msgid " is too close to exclusion area, there may be collisions when printing." -msgstr "離不可列印區域太近,列印時可能會發生碰撞。" +msgstr "離淨空區域太近,列印時可能會發生碰撞。" msgid "Prime Tower" msgstr "換料塔" @@ -8948,14 +9072,15 @@ msgid " is too close to others, and collisions may be caused.\n" msgstr "離其它物件太近,可能會發生碰撞。\n" msgid " is too close to exclusion area, and collisions will be caused.\n" -msgstr "離不可列印區域太近,會發生碰撞。\n" +msgstr "離淨空區域太近,會發生碰撞。\n" msgid "" "Can not print multiple filaments which have large difference of temperature " "together. Otherwise, the extruder and nozzle may be blocked or damaged " "during printing" msgstr "" -"不能將溫度差異過大的線材一起列印。否則擠出機和噴嘴在列印中可能被堵塞或損壞" +"無法法同時列印溫度差異較大的多種線材,否則在列印過程中可能會造成擠出機或噴嘴" +"堵塞甚至損壞" msgid "No extrusions under current settings." msgstr "根據目前設定,不會進行任何列印。" @@ -8968,18 +9093,20 @@ msgstr "逐件列印模式下不支援使用平滑模式的縮時錄影。" msgid "" "Please select \"By object\" print sequence to print multiple objects in " "spiral vase mode." -msgstr "請選擇逐件列印以支援在花瓶模式下列印多個物件。" +msgstr "請選擇逐件列印以支援在螺旋花瓶模式下列印多個物件。" msgid "" "The spiral vase mode does not work when an object contains more than one " "materials." -msgstr "不支援在包含多個線材的列印中使用花瓶模式。" +msgstr "不支援在包含多個線材的列印中使用螺旋花瓶模式。" #, boost-format msgid "" "While the object %1% itself fits the build volume, it exceeds the maximum " "build volume height because of material shrinkage compensation." msgstr "" +"物件 %1% 本身雖然符合構建體積,但由於材料收縮補償,導致其超出了最大構建高度限" +"制。" #, boost-format msgid "The object %1% exceeds the maximum build volume height." @@ -8989,7 +9116,7 @@ msgstr "物件 %1% 超出了最大體積高度。" msgid "" "While the object %1% itself fits the build volume, its last layer exceeds " "the maximum build volume height." -msgstr "雖然物件 %1% 本身符合列印體積,但最後一層超出了最大列印體積高度。" +msgstr "物件 %1% 本身雖符合構建體積限制,但其最後一層超出了最大構建高度。" msgid "" "You might want to reduce the size of your model or change current print " @@ -9004,6 +9131,8 @@ msgid "" "well when the prime tower is enabled. It's very experimental, so please " "proceed with caution." msgstr "" +"當啟用換料時,不同的噴嘴直徑和線材直徑可能無法正常配合。此功能屬於實驗性階" +"段,請小心使用。" msgid "" "The Wipe Tower is currently only supported with the relative extruder " @@ -9014,11 +9143,14 @@ msgid "" "Ooze prevention is only supported with the wipe tower when " "'single_extruder_multi_material' is off." msgstr "" +"『防止漏料』功能僅在 ‘single_extruder_multi_material’ 關閉時,才支援換料塔。" msgid "" "The prime tower is currently only supported for the Marlin, RepRap/Sprinter, " "RepRapFirmware and Repetier G-code flavors." msgstr "" +"換料塔功能目前僅支援 Marlin、RepRap/Sprinter、RepRapFirmware 和 Repetier 的 " +"G-code 格式。" msgid "The prime tower is not supported in \"By object\" print." msgstr "逐件列印模式下無法使用換料塔。" @@ -9029,15 +9161,15 @@ msgid "" msgstr "可變層高開啟時無法使用換料塔。它要求所有物件擁有相同的層高。" msgid "The prime tower requires \"support gap\" to be multiple of layer height" -msgstr "換料塔要求\"支撐間隙\"為層高的整數倍數。" +msgstr "換料塔要求\"支撐間隙\"為層高的整數倍數" msgid "The prime tower requires that all objects have the same layer heights" -msgstr "換料塔要求各個物件擁有同樣的層高。" +msgstr "換料塔要求各個物件擁有同樣的層高" msgid "" "The prime tower requires that all objects are printed over the same number " "of raft layers" -msgstr "換料塔要求各個物件使用同樣的筏層數量。" +msgstr "換料塔要求各個物件使用同樣的筏層數量" msgid "" "The prime tower requires that all objects are sliced with the same layer " @@ -9062,7 +9194,7 @@ msgstr "換料塔要求支撐和物件採用同樣的層高。" msgid "" "Organic support tree tip diameter must not be smaller than support material " "extrusion width." -msgstr "有機樹狀支撐尖端直徑不得小於支撐材料擠出寬度。" +msgstr "有機樹支撐尖端直徑不得小於支撐材料擠出寬度。" msgid "" "Organic support branch diameter must not be smaller than 2x support material " @@ -9081,7 +9213,6 @@ msgstr "使用支撐添加器但沒有打開支撐。請打開支撐。" msgid "Layer height cannot exceed nozzle diameter" msgstr "層高不能超過噴嘴直徑" -#, fuzzy msgid "" "Relative extruder addressing requires resetting the extruder position at " "each layer to prevent loss of floating point accuracy. Add \"G92 E0\" to " @@ -9101,13 +9232,13 @@ msgid "" "extruder addressing." msgstr "在 layer_gcode 中發現 \"G92 E0\",它與絕對擠出機尋址不相容。" -#, c-format, boost-format +#, possible-c-format, possible-boost-format msgid "Plate %d: %s does not support filament %s" -msgstr "列印板 %d:%s 不支援線材 %s" +msgstr "平台 %d:%s 不支援線材 %s。" msgid "" "Setting the jerk speed too low could lead to artifacts on curved surfaces" -msgstr "" +msgstr "抖動速度設置過低可能會在曲面上產生缺陷" msgid "" "The jerk setting exceeds the printer's maximum jerk (machine_max_jerk_x/" @@ -9117,6 +9248,9 @@ msgid "" "You can adjust the maximum jerk setting in your printer's configuration to " "get higher speeds." msgstr "" +"抖動設定已超過打印機的最大急動值(machine_max_jerk_x/machine_max_jerk_y)。\n" +"Orca 將自動限制急動速度,以確保不超出列印設備的性能範圍。\n" +"如需更高速度,你可以在列印設備配置中調整最大急動值。" msgid "" "The acceleration setting exceeds the printer's maximum acceleration " @@ -9126,6 +9260,10 @@ msgid "" "You can adjust the machine_max_acceleration_extruding value in your " "printer's configuration to get higher speeds." msgstr "" +"加速度設定已超過列印設備的最大加速度值 (machine_max_acceleration_travel)。\n" +"Orca 將自動限制加速度,以確保不超出列印設備的性能範圍。\n" +"如需更高速度,你可以在列印設備配置中調整 machine_max_acceleration_extruding " +"值。" msgid "" "The travel acceleration setting exceeds the printer's maximum travel " @@ -9135,14 +9273,18 @@ msgid "" "You can adjust the machine_max_acceleration_travel value in your printer's " "configuration to get higher speeds." msgstr "" +"移動加速度設定已超過列印設備的最大移動加速度值" +"(machine_max_acceleration_travel)。\n" +"Orca 將自動限制移動加速度,以確保不超出列印設備的性能範圍。\n" +"如需更高速度,你可以在列印設備配置中調整 machine_max_acceleration_travel 值。" msgid "" "Filament shrinkage will not be used because filament shrinkage for the used " "filaments differs significantly." -msgstr "" +msgstr "線材收縮補償將被禁用,因為所使用的線材之間的收縮率差異過大。" msgid "Generating skirt & brim" -msgstr "正在產生 skirt 和 brim(裙邊)" +msgstr "正在產生 Skirt 和 Brim" msgid "Exporting G-code" msgstr "正在匯出 G-code" @@ -9150,7 +9292,6 @@ msgstr "正在匯出 G-code" msgid "Generating G-code" msgstr "正在產生 G-code" -#, fuzzy msgid "Failed processing of the filename_format template." msgstr "處理檔案名稱格式範本失敗。" @@ -9158,9 +9299,8 @@ msgid "Printable area" msgstr "可列印區域" msgid "Bed exclude area" -msgstr "不可列印區域" +msgstr "熱床淨空區域" -#, fuzzy msgid "" "Unprintable area in XY plane. For example, X1 Series printers use the front " "left corner to cut filament during filament change. The area is expressed as " @@ -9169,11 +9309,9 @@ msgstr "" "XY 平面上的不可列印區域。例如,X1系列設備在換料過程中,會使用左前角區域來切斷" "線材。這個多邊形區域由以下格式的點表示:\"XxY,XxY,…\"" -#, fuzzy msgid "Bed custom texture" msgstr "自訂列印板紋理" -#, fuzzy msgid "Bed custom model" msgstr "自訂列印板模型" @@ -9203,7 +9341,7 @@ msgstr "層" msgid "" "Slicing height for each layer. Smaller layer height means more accurate and " "more printing time" -msgstr "每一層的切片高度。越小的層高意味著更高的精度和更長的列印時間。" +msgstr "每一層的切片高度。越小的層高意味著更高的精度和更長的列印時間" msgid "Printable height" msgstr "可列印高度" @@ -9212,25 +9350,23 @@ msgid "Maximum printable height which is limited by mechanism of printer" msgstr "受列印設備硬體限制的最大可列印高度" msgid "Preferred orientation" -msgstr "" +msgstr "首選方向" msgid "Automatically orient stls on the Z-axis upon initial import" msgstr "匯入STL時自動對齊Z軸" -#, fuzzy msgid "Printer preset names" msgstr "列印設備預設名稱" msgid "Use 3rd-party print host" -msgstr "" +msgstr "啟用第三方列印主機" msgid "Allow controlling BambuLab's printer through 3rd party print hosts" -msgstr "" +msgstr "允許使用第三方列印主機控制 BambuLab 列印機" msgid "Hostname, IP or URL" msgstr "主機名,IP 或者 URL" -#, fuzzy msgid "" "Orca Slicer can upload G-code files to a printer host. This field should " "contain the hostname, IP address or URL of the printer host instance. Print " @@ -9247,12 +9383,11 @@ msgstr "設備使用者界面" msgid "" "Specify the URL of your device user interface if it's not same as print_host" -msgstr "如果列印設備的使用者界面 URL 不同,請輸入在此。" +msgstr "如果列印設備的使用者界面 URL 不同,請輸入在此" msgid "API Key / Password" msgstr "API Key / 密碼" -#, fuzzy msgid "" "Orca Slicer can upload G-code files to a printer host. This field should " "contain the API Key or the password required for authentication." @@ -9266,7 +9401,6 @@ msgstr "列印設備名稱" msgid "HTTPS CA File" msgstr "HTTPS CA憑證 檔" -#, fuzzy msgid "" "Custom CA certificate file can be specified for HTTPS OctoPrint connections, " "in crt/pem format. If left blank, the default OS CA certificate repository " @@ -9281,11 +9415,9 @@ msgstr "使用者名稱" msgid "Password" msgstr "密碼" -#, fuzzy msgid "Ignore HTTPS certificate revocation checks" msgstr "忽略 HTTPS憑證 吊銷檢查" -#, fuzzy msgid "" "Ignore HTTPS certificate revocation checks in case of missing or offline " "distribution points. One may want to enable this option for self signed " @@ -9294,7 +9426,6 @@ msgstr "" "在缺少或離線的情況下忽略 HTTPS憑證 吊銷檢查。如果連接失敗,可以啟用此選項來處" "理自簽名憑證。" -#, fuzzy msgid "Names of presets related to the physical printer" msgstr "與實體列印設備相關的預設名稱" @@ -9322,6 +9453,8 @@ msgid "" "either as an absolute value or as percentage (for example 50%) of a direct " "travel path. Zero to disable" msgstr "" +"避開穿越牆體時的最大繞行距離。若繞行距離超過此設定值,則不進行繞行。繞行距離" +"可設為絕對值,或直接移動路徑的百分比(如 50%)。設為 0 以停用繞行功能" msgid "mm or %" msgstr "mm 或 %" @@ -9332,7 +9465,7 @@ msgstr "其它層" msgid "" "Bed temperature for layers except the initial one. Value 0 means the " "filament does not support to print on the Cool Plate" -msgstr "除首層外的床溫。0 值表示這個線材不支援低溫列印板" +msgstr "首層之外各層的熱床溫度。值為 0 表示該線材不適用於低溫列印板" msgid "°C" msgstr "°C" @@ -9340,25 +9473,22 @@ msgstr "°C" msgid "" "Bed temperature for layers except the initial one. Value 0 means the " "filament does not support to print on the Textured Cool Plate" -msgstr "" +msgstr "首層之外各層的熱床溫度。值為 0 表示該線材不適用於低溫紋理列印板" -#, fuzzy msgid "" "Bed temperature for layers except the initial one. Value 0 means the " "filament does not support to print on the Engineering Plate" -msgstr "除首層外的熱床溫度。0 值表示這個線材不支援工程高溫列印板" +msgstr "首層之外各層的熱床溫度。值為 0 表示該線材不適用於工程列印板" -#, fuzzy msgid "" "Bed temperature for layers except the initial one. Value 0 means the " "filament does not support to print on the High Temp Plate" -msgstr "除首層外的熱床溫度。0 值表示這個線材不支援高溫列印板" +msgstr "首層之外各層的熱床溫度。值為 0 表示該線材不適用於高溫列印板" -#, fuzzy msgid "" "Bed temperature for layers except the initial one. Value 0 means the " "filament does not support to print on the Textured PEI Plate" -msgstr "除首層外的熱床溫度。0 值表示這個線材不支援紋理 PEI 列印板" +msgstr "首層之外各層的熱床溫度。值為 0 表示該線材不適用於紋理 PEI 列印板" msgid "Initial layer" msgstr "首層" @@ -9369,65 +9499,59 @@ msgstr "首層床溫" msgid "" "Bed temperature of the initial layer. Value 0 means the filament does not " "support to print on the Cool Plate SuperTack" -msgstr "" +msgstr "首層的列印床溫度。值為 0 表示該線材不適用於低溫增穩列印板" -#, fuzzy msgid "" "Bed temperature of the initial layer. Value 0 means the filament does not " "support to print on the Cool Plate" -msgstr "首層熱床溫度。0 值表示這個線材不支援低溫列印板" +msgstr "首層的列印床溫度。值為 0 表示該線材不適用於低溫列印板" msgid "" "Bed temperature of the initial layer. Value 0 means the filament does not " "support to print on the Textured Cool Plate" -msgstr "" +msgstr "首層的列印床溫度。值為 0 表示該線材不適用於低溫紋理列印板" -#, fuzzy msgid "" "Bed temperature of the initial layer. Value 0 means the filament does not " "support to print on the Engineering Plate" -msgstr "首層熱床溫度。0 值表示這個線材不支援工程高溫列印板" +msgstr "首層的列印床溫度。值為 0 表示該線材不適用於工程列印板" -#, fuzzy msgid "" "Bed temperature of the initial layer. Value 0 means the filament does not " "support to print on the High Temp Plate" -msgstr "首層熱床溫度。0 值表示這個線材不支援高溫列印板" +msgstr "首層的列印床溫度。值為 0 表示該線材不適用於高溫列印板" -#, fuzzy msgid "" "Bed temperature of the initial layer. Value 0 means the filament does not " "support to print on the Textured PEI Plate" -msgstr "首層熱床溫度。0 值表示這個線材不支援紋理 PEI 列印板" +msgstr "首層的列印床溫度。值為 0 表示該線材不適用於紋理 PEI 列印板" -#, fuzzy msgid "Bed types supported by the printer" msgstr "列印設備所支援的列印板類型" msgid "Smooth Cool Plate" -msgstr "" +msgstr "低溫平滑列印板" -#, fuzzy msgid "Engineering Plate" -msgstr "工程高溫列印板" +msgstr "工程列印板" msgid "Smooth High Temp Plate" -msgstr "" +msgstr "高溫平滑列印板" msgid "Textured Cool Plate" -msgstr "" +msgstr "低溫紋理列印板" msgid "First layer print sequence" msgstr "首層列印順序" msgid "Other layers print sequence" -msgstr "" +msgstr "其他層的列印順序" msgid "The number of other layers print sequence" -msgstr "" +msgstr "其他層列印順序的次數" msgid "Other layers filament sequence" -msgstr "" +msgstr "其他層線材的列印順序" msgid "This G-code is inserted at every layer change before lifting z" msgstr "在每次換層抬升z高度之前插入這段 G-code" @@ -9446,7 +9570,6 @@ msgstr "" msgid "Bottom shell thickness" msgstr "底部殼體厚度" -#, fuzzy msgid "" "The number of bottom solid layers is increased when slicing if the thickness " "calculated by bottom shell layers is thinner than this value. This can avoid " @@ -9459,7 +9582,7 @@ msgstr "" "完全由底部殼體層數決定" msgid "Apply gap fill" -msgstr "間隙填充" +msgstr "套用間隙填充" msgid "" "Enables gap fill for the selected solid surfaces. The minimum gap length " @@ -9488,6 +9611,22 @@ msgid "" "generator and use this option to control whether the cosmetic top and bottom " "surface gap fill is generated" msgstr "" +"為選定的實心表面啟用間隙填充。你可以使用下方的『過濾微小間隙』選項來控制填充" +"的最小間隙長度。\n" +"\n" +"選項:\n" +"1. 所有區域:將間隙填充應用於頂部、底部和內部實心表面,以提升結構強度。\n" +"2. 僅頂部和底部:僅在頂部和底部表面進行間隙填充,平衡列印速度,減少實心填充中" +"的過度擠出,同時確保頂部和底部表面無針孔間隙。\n" +"3. 不填充:禁用所有實心填充區域的間隙填充。\n" +"\n" +"請注意,若使用『經典』的牆產生器,當外牆之間無法容納完整寬度的線條時,間隙填" +"充仍可能生成。這類外牆間隙填充不受此設置控制。\n" +"如果希望移除所有間隙填充,包括『經典』的牆產生器間隙填充,可將『過濾微小間" +"隙』設置為較大的數字(如 999999)。\n" +"然而,不建議這麼做,因為外牆間的間隙填充能增強模型強度。若模型因外牆間隙填充" +"過多而受影響,更好的解決方案是切換到『Arachne』牆產生器,並利用此選項控制是否" +"生成頂部和底部表面的美觀間隙填充" msgid "Everywhere" msgstr "全部" @@ -9498,40 +9637,54 @@ msgstr "頂部與底部" msgid "Nowhere" msgstr "無" -msgid "Force cooling for overhang and bridge" -msgstr "懸空/橋接強制冷卻" +msgid "Force cooling for overhangs and bridges" +msgstr "強制冷卻懸垂與橋接結構" -#, fuzzy msgid "" -"Enable this option to optimize part cooling fan speed for overhang and " -"bridge to get better cooling" -msgstr "勾選這個選項將自動最佳化橋接和懸空的風扇轉速以獲得更好的冷卻" - -msgid "Fan speed for overhang" -msgstr "懸空風扇速度" - -#, fuzzy -msgid "" -"Force part cooling fan to be this speed when printing bridge or overhang " -"wall which has large overhang degree. Forcing cooling for overhang and " -"bridge can get better quality for these part" +"Enable this option to allow adjustment of the part cooling fan speed for " +"specifically for overhangs, internal and external bridges. Setting the fan " +"speed specifically for these features can improve overall print quality and " +"reduce warping." msgstr "" -"當列印橋接和超過臨界值設定的懸空時,強制物件冷卻風扇為設定的速度數值。強制冷" -"卻能夠使懸空和橋接獲得更好的列印品質" +"啟用此選項後,可調整零件冷卻風扇的速度,專門針對懸垂結構、內部和外部橋接區域。" +"適當調整風扇速度能提升列印品質並減少變形問題。" -msgid "Cooling overhang threshold" -msgstr "冷卻懸空臨界值" +msgid "Overhangs and external bridges fan speed" +msgstr "懸垂與外部橋接區域的冷卻風扇速度" -#, c-format msgid "" -"Force cooling fan to be specific speed when overhang degree of printed part " -"exceeds this value. Expressed as percentage which indicates how much width " -"of the line without support from lower layer. 0% means forcing cooling for " -"all outer wall no matter how much overhang degree" +"Use this part cooling fan speed when printing bridges or overhang walls with " +"an overhang threshold that exceeds the value set in the 'Overhangs cooling " +"threshold' parameter above. Increasing the cooling specifically for " +"overhangs and bridges can improve the overall print quality of these " +"features.\n" +"\n" +"Please note, this fan speed is clamped on the lower end by the minimum fan " +"speed threshold set above. It is also adjusted upwards up to the maximum fan " +"speed threshold when the minimum layer time threshold is not met." msgstr "" +"當列印橋接結構或懸垂牆,且其懸垂角度超過「懸垂冷卻閾值」所設定的標準時,將適用此零件冷卻風扇轉速。" +"針對懸垂與橋接部分提高冷卻強度,有助於提升列印品質並減少變形。\n" +"\n" +"請注意,此風扇轉速的最低值受限於「最小風扇轉速」設定。此外,當層列印時間未達「最小層列印時間」閾值時," +"風扇轉速將自動增加,最高可達「最大風扇轉速」設定值。" -msgid "Bridge infill direction" -msgstr "橋接填充角度" +msgid "Overhang cooling activation threshold" +msgstr "懸垂冷卻觸發閾值" + +#, c-format, boost-format +msgid "" +"When the overhang exceeds this specified threshold, force the cooling fan to " +"run at the 'Overhang Fan Speed' set below. This threshold is expressed as a " +"percentage, indicating the portion of each line's width that is unsupported " +"by the layer beneath it. Setting this value to 0%% forces the cooling fan to " +"run for all outer walls, regardless of the overhang degree." +msgstr "" +"當懸垂超過此設定的閾值時,冷卻風扇將強制以「懸垂風扇轉速」運行。該閾值以百分比表示," +"代表每條列印線寬中未受下層支撐的比例。若將此值設為 0%%,則冷卻風扇將對所有外牆啟動,不論懸垂角度大小。" + +msgid "External bridge infill direction" +msgstr "外部橋接結構的填充方向" msgid "" "Bridging angle override. If left to zero, the bridging angle will be " @@ -9541,13 +9694,58 @@ msgstr "" "橋接角度覆蓋。如果為零,該角度將自動計算。否則外部的橋接將用提供的值。180° 表" "示 0 度。" -#, fuzzy -msgid "Bridge density" -msgstr "橋接密度" +msgid "Internal bridge infill direction" +msgstr "內部橋接結構的填充方向" -#, fuzzy -msgid "Density of external bridges. 100% means solid bridge. Default is 100%." -msgstr "外部橋接的密度。 100% 意味著堅固的橋樑。 預設值為 100%。" +msgid "" +"Internal bridging angle override. If left to zero, the bridging angle will " +"be calculated automatically. Otherwise the provided angle will be used for " +"internal bridges. Use 180°for zero angle.\n" +"\n" +"It is recommended to leave it at 0 unless there is a specific model need not " +"to." +msgstr "" +"內部橋接角度覆蓋設定。若設定為 0,系統將自動計算橋接角度;若輸入特定角度,則內部橋接將依此角度列印。" +"設定 180° 可視為零角度。\n" +"\n" +"建議將此值保持為 0,除非模型有特殊需求需手動調整。" + +msgid "External bridge density" +msgstr "外部橋接密度" + +msgid "" +"Controls the density (spacing) of external bridge lines. 100% means solid " +"bridge. Default is 100%.\n" +"\n" +"Lower density external bridges can help improve reliability as there is more " +"space for air to circulate around the extruded bridge, improving its cooling " +"speed." +msgstr "" +"調整外部橋接線的密度(間距)。100% 代表實心橋接,預設值為 100%。" +"\n" +"降低外部橋接的密度可提升列印穩定性,因為較大的間距讓空氣更容易流通,加速冷卻效果。" + +msgid "Internal bridge density" +msgstr "內部橋接密度" + +msgid "" +"Controls the density (spacing) of internal bridge lines. 100% means solid " +"bridge. Default is 100%.\n" +"\n" +" Lower density internal bridges can help reduce top surface pillowing and " +"improve internal bridge reliability as there is more space for air to " +"circulate around the extruded bridge, improving its cooling speed. \n" +"\n" +"This option works particularly well when combined with the second internal " +"bridge over infill option, further improving internal bridging structure " +"before solid infill is extruded." +msgstr "" +"調整內部橋接線的密度(間距)。100% 代表實心橋接,預設值為 100%。\n" +"\n" +"降低內部橋接的密度有助於減少頂部表面的鼓起問題,並提升內部橋接的穩定性,因為較大的間距讓空氣更容易流通," +"加速冷卻效果。\n" +"\n" +"此選項特別適用於「內部橋接覆蓋填充」功能,可進一步優化內部橋接結構,在擠出實心填充前提供更穩固的支撐。" msgid "Bridge flow ratio" msgstr "橋接流量" @@ -9559,6 +9757,11 @@ msgid "" "The actual bridge flow used is calculated by multiplying this value with the " "filament flow ratio, and if set, the object's flow ratio." msgstr "" +"略微降低此值(例如設為 0.9)可減少橋接所需的材料量,從而改善橋接下垂的問" +"題。\n" +"\n" +"實際的橋接流量是通過此值乘以線材流量比例計算的,並且若已設置物件流量比例,該" +"比例也將被考慮在內。" msgid "Internal bridge flow ratio" msgstr "內部橋接流量" @@ -9572,6 +9775,11 @@ msgid "" "with the bridge flow ratio, the filament flow ratio, and if set, the " "object's flow ratio." msgstr "" +"此設定值決定內部橋接層的厚度,該層是稀疏填充上的第一層。稍微降低此值(例如設" +"為 0.9)可改善稀疏填充表面的列印品質。\n" +"\n" +"實際的內部橋接流量是由此值乘以橋接流量比例、線材流量比例計算得出,若設置了物" +"件流量比例,比例也會被納入計算。" msgid "Top surface flow ratio" msgstr "頂部表面流量比例" @@ -9583,6 +9791,10 @@ msgid "" "The actual top surface flow used is calculated by multiplying this value " "with the filament flow ratio, and if set, the object's flow ratio." msgstr "" +"此設定值會影響頂部實心填充的材料用量。稍微降低此值可使表面更加平滑。\n" +"\n" +"實際的頂部表面流量是此值乘以線材流量比例計算得出,若已設置物件流量比例,該比" +"例也會被納入計算。" msgid "Bottom surface flow ratio" msgstr "底部表面流量比例" @@ -9593,16 +9805,18 @@ msgid "" "The actual bottom solid infill flow used is calculated by multiplying this " "value with the filament flow ratio, and if set, the object's flow ratio." msgstr "" +"此設定值會影響底部實心填充的材料用量。\n" +"\n" +"實際的底部實心填充流量是此值乘以線材流量比例計算得出,若已設置物件流量比例," +"該比例也會被納入計算。" msgid "Precise wall" msgstr "精準外牆尺寸" msgid "" "Improve shell precision by adjusting outer wall spacing. This also improves " -"layer consistency.\n" -"Note: This setting will only take effect if the wall sequence is configured " -"to Inner-Outer" -msgstr "" +"layer consistency." +msgstr "調整外壁間距以提升外殼精度,同時改善列印層的一致性。" msgid "Only one wall on top surfaces" msgstr "頂面單層牆" @@ -9613,7 +9827,7 @@ msgid "" msgstr "頂面只使用單層牆,從而更多的空間能夠使用頂部填充圖案" msgid "One wall threshold" -msgstr "單壁閾值" +msgstr "單層牆閾值" #, no-c-format, no-boost-format msgid "" @@ -9626,11 +9840,11 @@ msgid "" "on the next layer, like letters. Set this setting to 0 to remove these " "artifacts." msgstr "" -"如果頂面需要列印,但是它的一部分被其它層覆蓋,那麼當它的寬度小於這個值時,它" -"不會被認為是頂層。這個設定可以用於避免在狹窄頂面上觸發\"頂面單層牆\"。這個值" -"可以是 mm 或線寬的 %。\n" -"警告:如果啟用該選項,可能會在下一層上產生一些薄的特徵,比如字母。將此設定設" -"為 0 可以消除這些偽影。" +"當需要列印頂部表面,但該表面部分被另一層覆蓋時,如果其寬度小於此設定值,則不" +"會被視為頂層。這有助於避免在需要外牆覆蓋的表面上,產生「單層牆」的情況發生。" +"此值可以設為毫米或外周擠出寬度的百分比。\n" +"警告:啟用此設定可能會在下一層具有細小特徵(如字母)時產生瑕疵。將此值設為 0 " +"可移除這些瑕疵。" msgid "Only one wall on first layer" msgstr "首層僅單層牆" @@ -9649,9 +9863,8 @@ msgid "" msgstr "在陡峭的懸空和無法固定橋接的區域中增加額外的周長路徑。" msgid "Reverse on even" -msgstr "偶數反向" +msgstr "偶數層反向" -#, fuzzy msgid "Overhang reversal" msgstr "懸空反向" @@ -9663,7 +9876,7 @@ msgid "" "This setting can also help reduce part warping due to the reduction of " "stresses in the part walls." msgstr "" -"在偶數層上,對於有懸挑部分的外圍輪廓,採用反向擠出。這種交替模式可以大幅改善" +"在偶數層上,對於有懸空部分的外圍輪廓,採用反向擠出。這種交替模式可以大幅改善" "陡峭的懸挑。\n" "\n" "此設定還有助於減少因零件牆壁應力降低而導致的變形。" @@ -9685,6 +9898,14 @@ msgid "" "Reverse Threshold to 0 so that all internal walls print in alternating " "directions on even layers irrespective of their overhang degree." msgstr "" +"僅在內圍輪廓應用反向邏輯。\n" +"\n" +"此設定可顯著減少零件應力,因為應力會以交替方向分佈。這有助於減少零件翹曲,同" +"時保持外部牆面的品質。此功能對於易翹曲的材料(例如 ABS/ASA),以及彈性線材" +"(例如 TPU 和絲光 PLA)特別有用。它還可以幫助減少支撐上懸空區域的翹曲。\n" +"\n" +"為使此設定達到最佳效果,建議將反向閾值設為 0,以確保所有內圍牆體在偶數層以交" +"替方向列印,而不受懸垂角度的影響。" msgid "Bridge counterbore holes" msgstr "橋接沉孔" @@ -9696,10 +9917,10 @@ msgid "" "2. Partially Bridged: Only a part of the unsupported area will be bridged.\n" "3. Sacrificial Layer: A full sacrificial bridge layer is created." msgstr "" -"此選項為沉孔創建橋接,使其可以無需支撐地列印。可用模式包括:\n" -"1. 無:不創建橋接。\n" -"2. 部分橋接:只有部分無支撐區域會被橋接。\n" -"3. 犧牲層:創建一層完整的祭層橋接。" +"此選項為沉孔創建橋接,允許其在無支撐的情況下列印。可用模式包括:\n" +"1. 無:不創建任何橋接。\n" +"2. 部分橋接:僅對未支撐區域的一部分進行橋接。\n" +"3. 犧牲層:創建一層完整的犧牲橋接層。" msgid "Partially bridged" msgstr "部分橋接" @@ -9721,8 +9942,10 @@ msgid "" "When Detect overhang wall is not enabled, this option is ignored and " "reversal happens on every even layers regardless." msgstr "" -"懸挑需要達到的毫米數,才會反向列印。可以是周邊寬度的百分比。\n" -"值為 0 時,將在每個偶數層啟用反向列印。" +"懸空需要達到的 mm,才能使反轉被認為是有用的。該值可以是外牆寬度的百分比。\n" +"設為 0 時,反轉將在所有偶數層上無條件啟用。\n" +"如果未啟用『檢測懸空外牆』,此選項將被忽略,並且反轉會無條件發生在所有偶數層" +"上。" msgid "Classic mode" msgstr "經典模式" @@ -9734,7 +9957,7 @@ msgid "Slow down for overhang" msgstr "懸空處降速" msgid "Enable this option to slow printing down for different overhang degree" -msgstr "打開這個選項將降低不同懸垂程度的走線的列印速度" +msgstr "打開這個選項將降低不同懸空程度的走線的列印速度" msgid "Slow down for curled perimeters" msgstr "翹邊處降速" @@ -9759,6 +9982,16 @@ msgid "" "overhanging, with no wall supporting them from underneath, the 100% overhang " "speed will be applied." msgstr "" +"啟用此選項以在可能發生外牆翹起的區域減慢列印速度。例如,在列印懸空的尖銳角落" +"(如 Benchy 船體前部)時,會額外減速,從而減少多層累積後的翹起。\n" +"\n" +"一般建議啟用此選項,除非你的列印設備冷卻性能足夠強大,或者列印速度足夠慢,避" +"免發生外部周邊翹起。如果使用高外部周邊列印速度,此參數可能因列印速度差異過大" +"而導致輕微瑕疵。如果你注意到瑕疵,請確保壓力補償已正確調整。\n" +"\n" +"注意:啟用此選項時,懸空外周邊會被視為懸空結構,即使該懸空外部周邊是橋接的一" +"部分,也會應用懸空速度。例如,當外牆 100% 懸空且下方無牆支撐時,將應用 100% " +"懸空速度。" msgid "mm/s or %" msgstr "mm/s 或 %" @@ -9774,13 +10007,13 @@ msgid "" "are supported by less than 13%, whether they are part of a bridge or an " "overhang." msgstr "" -"外部可見橋接擠出速度。\n" +"外部可見橋接擠出的列印速度\n" "\n" -"如果禁用了「翹邊處降速」或啟用了「經典懸挑模式」,則它將是支撐不足 13% 的懸挑" -"牆的列印速度,無論它們是橋接的一部分還是懸挑。" +"如果禁用了『翹邊處降速』或啟用了『經典懸空模式』,則對支撐率低於 13% 的懸空牆" +"(無論是橋接的一部分還是懸空結構)將使用該列印速度。" msgid "mm/s" -msgstr "" +msgstr "mm/s" msgid "Internal" msgstr "內部" @@ -9790,54 +10023,51 @@ msgid "" "will be calculated based on the bridge_speed. Default value is 150%." msgstr "" "內部橋接速度。如果該值以百分比表示,將基於 bridge_speed 進行計算。預設值為 " -"150%" +"150%。" msgid "Brim width" -msgstr "Brim(裙邊)寬度" +msgstr "Brim 寬度" msgid "Distance from model to the outermost brim line" -msgstr "從模型到 brim(裙邊)最外圈的距離" +msgstr "從模型到 Brim 最外圈的距離" msgid "Brim type" -msgstr "Brim(裙邊)類型" +msgstr "Brim 類型" -#, fuzzy msgid "" "This controls the generation of the brim at outer and/or inner side of " "models. Auto means the brim width is analyzed and calculated automatically." msgstr "" -"該參數控制在模型的外側和/或內側產生 brim(裙邊)。自動是指自動分析和計算邊框" -"的寬度。" +"該參數控制在模型的外側和/或內側產生 Brim 。自動是指自動分析和計算邊框的寬度。" msgid "Brim-object gap" -msgstr "Brim(裙邊)與模型的間隙" +msgstr "Brim 與模型的間隙" msgid "" "A gap between innermost brim line and object can make brim be removed more " "easily" -msgstr "在 brim(裙邊)和模型之間設定間隙,能夠讓 brim(裙邊)更容易拆除" +msgstr "在 Brim 和模型之間設定間隙,能夠讓 Brim 更容易拆除" msgid "Brim ears" -msgstr "圓盤" +msgstr "耳狀 Brim" msgid "Only draw brim over the sharp edges of the model." -msgstr "僅在模型的鋒利邊緣上產生Brim(裙邊)。" +msgstr "僅在模型的鋒利邊緣上產生 Brim 。" msgid "Brim ear max angle" -msgstr "圓盤最大角度" +msgstr "耳狀 Brim 最大角度" -#, fuzzy msgid "" "Maximum angle to let a brim ear appear. \n" "If set to 0, no brim will be created. \n" "If set to ~180, brim will be created on everything but straight sections." msgstr "" -"讓圓盤出現的最大角度。\n" -"如果設定為 0,則不會建立圓盤。\n" -"設定越趨近 180,除直線部分外,其他部分都會建立圓盤。" +"讓耳狀 Brim 出現的最大角度。\n" +"如果設定為 0,則不會建立 Brim。\n" +"設定越趨近 180,除直線部分外,其他部分都會建立 Brim。" msgid "Brim ear detection radius" -msgstr "圓盤偵測半徑" +msgstr "耳狀 Brim 偵測半徑" msgid "" "The geometry will be decimated before detecting sharp angles. This parameter " @@ -9850,22 +10080,34 @@ msgstr "" msgid "Compatible machine" msgstr "相容的設備" -#, fuzzy msgid "upward compatible machine" msgstr "向上相容的設備" -#, fuzzy msgid "Compatible machine condition" msgstr "相容的設備條件" -#, fuzzy +msgid "" +"A boolean expression using the configuration values of an active printer " +"profile. If this expression evaluates to true, this profile is considered " +"compatible with the active printer profile." +msgstr "" +"使用啟用的列印設備設定值來進行布林運算的表達式。如果此表達式的結果為 true," +"則該設定檔將被視為與當前啟用的印表機設定檔相容。" + msgid "Compatible process profiles" msgstr "相容的切片設定" -#, fuzzy msgid "Compatible process profiles condition" msgstr "相容的切片設定條件" +msgid "" +"A boolean expression using the configuration values of an active print " +"profile. If this expression evaluates to true, this profile is considered " +"compatible with the active print profile." +msgstr "" +"使用啟用的列印設定檔值來進行布林運算的表達式。如果此表達式的結果為 true," +"則該設定檔將被視為與當前啟用的列印設定檔相容。" + msgid "Print sequence, layer by layer or object by object" msgstr "列印順序,逐層列印或者逐件列印" @@ -9876,13 +10118,13 @@ msgid "By object" msgstr "逐件" msgid "Intra-layer order" -msgstr "" +msgstr "單層順序" msgid "Print order within a single layer" -msgstr "" +msgstr "每一層的列印順序" msgid "As object list" -msgstr "" +msgstr "按照物件清單排序" msgid "Slow printing down for better layer cooling" msgstr "降低列印速度 以得到更好的冷卻" @@ -9893,9 +10135,8 @@ msgid "" "that layer can be cooled for longer time. This can improve the cooling " "quality for needle and small details" msgstr "" -"勾選這個選項,將降低列印速度,使得最終的層列印時間不小於\"最大風扇速度臨界值" -"\"裡的層時間臨界值,從而使得該層獲得更久的冷卻。這能夠改善尖頂和小細節的冷卻" -"效果" +"啟用此選項可降低列印速度,確保最終層的列印時間不少於「最大風扇速度臨界值」中" +"的層時間設定值,以延長冷卻時間。此功能有助於提升針狀結構和細小細節的冷卻效果" msgid "Normal printing" msgstr "普通列印" @@ -9911,14 +10152,12 @@ msgstr "mm/s²" msgid "Default filament profile" msgstr "預設線材設定檔" -#, fuzzy msgid "Default filament profile when switch to this machine profile" msgstr "切換設備自動更換預設線材設定檔" msgid "Default process profile" msgstr "預設切片設定檔" -#, fuzzy msgid "Default process profile when switch to this machine profile" msgstr "切換設備自動更換預設切片設定檔" @@ -9942,7 +10181,6 @@ msgstr "列印完成後排風扇的轉速" msgid "No cooling for the first" msgstr "前N層關閉零件風扇" -#, fuzzy msgid "" "Close all cooling fan for the first certain layers. Cooling fan of the first " "layer used to be closed to get better build plate adhesion" @@ -9957,10 +10195,10 @@ msgid "" "usually can be printing directly without support if not very long" msgstr "" "不對整個橋接面進行支撐,否則支撐體會很大。不是很長的橋接通常可以無支撐直接列" -"印。" +"印" -msgid "Thick bridges" -msgstr "厚橋" +msgid "Thick external bridges" +msgstr "增厚外部橋接" msgid "" "If enabled, bridges are more reliable, can bridge longer distances, but may " @@ -9981,55 +10219,120 @@ msgstr "" "如果啟用,將使用較厚的內部橋接。通常建議開啟此功能。但如果使用較大的噴嘴,可" "考慮關閉此選項。" -msgid "Filter out small internal bridges (beta)" -msgstr "篩選掉短的內部橋接(beta)" +msgid "Extra bridge layers (beta)" +msgstr "額外橋接層(Beta 版)" msgid "" -"This option can help reducing pillowing on top surfaces in heavily slanted " -"or curved models.\n" +"This option enables the generation of an extra bridge layer over internal " +"and/or external bridges.\n" +"\n" +"Extra bridge layers help improve bridge appearance and reliability, as the " +"solid infill is better supported. This is especially useful in fast " +"printers, where the bridge and solid infill speeds vary greatly. The extra " +"bridge layer results in reduced pillowing on top surfaces, as well as " +"reduced separation of the external bridge layer from its surrounding " +"perimeters.\n" +"\n" +"It is generally recommended to set this to at least 'External bridge only', " +"unless specific issues with the sliced model are found.\n" +"\n" +"Options:\n" +"1. Disabled - does not generate second bridge layers. This is the default " +"and is set for compatibility purposes.\n" +"2. External bridge only - generates second bridge layers for external-facing " +"bridges only. Please note that small bridges that are shorter or narrower " +"than the set number of perimeters will be skipped as they would not benefit " +"from a second bridge layer. If generated, the second bridge layer will be " +"extruded parallel to the first bridge layer to reinforce the bridge " +"strength.\n" +"3. Internal bridge only - generates second bridge layers for internal " +"bridges over sparse infill only. Please note that the internal bridges count " +"towards the top shell layer count of your model. The second internal bridge " +"layer will be extruded as close to perpendicular to the first as possible. " +"If multiple regions in the same island, with varying bridge angles are " +"present, the last region of that island will be selected as the angle " +"reference.\n" +"4. Apply to all - generates second bridge layers for both internal and " +"external-facing bridges\n" +msgstr "" +"此選項可在內部和/或外部橋接結構上額外生成一層橋接填充。\n" +"\n" +"額外的橋接層能改善橋接區域的外觀與穩定性,提供更佳的實心填充支撐。" +"這對於高速列印機特別有幫助,因為橋接與實心填充的列印速度可能有顯著差異。" +"額外的橋接層還能減少頂部表面的起皺現象,並降低外部橋接層與周圍輪廓分離的風險。\n" +"\n" +"一般建議將此選項設定為「僅外部橋接」,除非特定的切片模型需要其他調整。" +"\n" +"選項說明:\n" +"1. 停用 - 不啟用第二層橋接層(預設值,確保與其他設定相容)。\n" +"2. 僅外部橋接 - 僅對外部橋接區域添加第二層橋接層。請注意,若橋接結構過短或寬度小於設定的輪廓數量," +"則不會生成額外橋接層,因為這樣的結構不會受益於第二層橋接。如果啟用,第二層橋接層將與第一層平行擠出," +"以提升橋接的強度。\n" +"3. 僅內部橋接 - 僅為內部橋接區域(例如稀疏填充上的橋接部分)添加第二層橋接層。請注意," +"內部橋接層會計入模型的頂部外殼層數。第二層內部橋接層的擠出方向會盡可能接近垂直於第一層," +"若同一區域內存在多個橋接角度,則該區域的最後一個部分將作為角度參考。\n" +"4. 應用於所有橋接區域 - 為內部與外部橋接區域都添加第二層橋接層。\n" + +msgid "Disabled" +msgstr "停用" + +msgid "External bridge only" +msgstr "僅外部橋接" + +msgid "Internal bridge only" +msgstr "僅內部橋接" + +msgid "Apply to all" +msgstr "應用於所有橋接區域" + +msgid "Filter out small internal bridges" +msgstr "忽略過小的內部橋接" + +msgid "" +"This option can help reduce pillowing on top surfaces in heavily slanted or " +"curved models.\n" "\n" "By default, small internal bridges are filtered out and the internal solid " "infill is printed directly over the sparse infill. This works well in most " "cases, speeding up printing without too much compromise on top surface " "quality. \n" "\n" -"However, in heavily slanted or curved models especially where too low sparse " -"infill density is used, this may result in curling of the unsupported solid " -"infill, causing pillowing.\n" +"However, in heavily slanted or curved models, especially where too low a " +"sparse infill density is used, this may result in curling of the unsupported " +"solid infill, causing pillowing.\n" "\n" -"Disabling this option will print internal bridge layer over slightly " -"unsupported internal solid infill. The options below control the amount of " -"filtering, i.e. the amount of internal bridges created.\n" +"Enabling limited filtering or no filtering will print internal bridge layer " +"over slightly unsupported internal solid infill. The options below control " +"the sensitivity of the filtering, i.e. they control where internal bridges " +"are created.\n" "\n" -"Filter - enable this option. This is the default behavior and works well in " -"most cases.\n" +"1. Filter - enables this option. This is the default behavior and works well " +"in most cases.\n" "\n" -"Limited filtering - creates internal bridges on heavily slanted surfaces, " -"while avoiding creating unnecessary internal bridges. This works well for " -"most difficult models.\n" +"2. Limited filtering - creates internal bridges on heavily slanted surfaces " +"while avoiding unnecessary bridges. This works well for most difficult " +"models.\n" "\n" -"No filtering - creates internal bridges on every potential internal " -"overhang. This option is useful for heavily slanted top surface models. " -"However, in most cases it creates too many unnecessary bridges." +"3. No filtering - creates internal bridges on every potential internal " +"overhang. This option is useful for heavily slanted top surface models; " +"however, in most cases, it creates too many unnecessary bridges." msgstr "" -"此選項有助於減少在大幅傾斜或曲面的模型上頂部表面瑕疵。\n" +"此選項可幫助降低在高度傾斜或曲面模型上的頂部表面起皺問題。\n" "\n" -"預設情況下,小型內部橋接會被篩選掉,內部實心填充會直接印刷在稀疏填充上。這在" -"大多數情況下運作良好,能加速列印並且不會過度影響頂部表面質量。\n" +"預設情況下,小型內部橋接會被過濾掉,內部實心填充會直接列印在稀疏填充上。這種方式適用於大多數情況," +"能提升列印速度,同時維持合理的頂部表面品質。\n" "\n" -"在大幅傾斜或曲面的模型中,特別是當使用過低的稀疏填充密度時,這可能會導致支撐" -"不夠的實心填充翹曲,進而造成瑕疵。\n" +"然而,在高度傾斜或曲面的模型上,特別是當稀疏填充密度過低時,未受支撐的實心填充可能會翹曲,導致表面起皺。\n" "\n" -"禁用此選項將在稍微未支撐的內部實心填充區列印內部橋接層。以下選項控制篩選的程" -"度(創建內部橋接的數量)。\n" +"啟用「有限過濾」或「不過濾」模式,將允許在部分未完全支撐的內部實心填充區域上列印內部橋接層。" +"下列選項可調整過濾的敏感度,決定哪些區域需要生成內部橋接。\n" "\n" -"篩選 - 啟用此選項。這是預設行為,並且在大多數情況下運作良好。\n" +"選項說明:\n" +"1. 過濾 - 預設選項,能有效過濾小型內部橋接,在大多數情況下效果良好。\n" "\n" -"有限篩選 - 僅在大幅傾斜的表面上創建內部橋接。這對大多數困難模型來說效果良" -"好。\n" +"2. 有限過濾 - 僅在高度傾斜的表面上建立內部橋接,同時避免生成過多無用的橋接結構,適合處理較複雜的模型。\n" "\n" -"不篩選 - 在每個可能的內部懸挑處創建內部橋接。這個選項對於大幅傾斜的頂部表面模" -"型很有用。然而,在大多數情況下,它會創建過多不必要的橋接。" +"3. 不過濾 - 在所有可能的內部懸垂區域上建立內部橋接,適用於高度傾斜的頂部表面模型,但通常會產生過多不必要的橋接結構。" msgid "Filter" msgstr "篩選" @@ -10063,7 +10366,7 @@ msgstr "物件分隔" msgid "" "Insert Gcode between objects. This parameter will only come into effect when " "you print your models object by object" -msgstr "在物件之間插入 Gcode。此參數僅在逐次列印時生效。" +msgstr "在物件之間插入 Gcode。此參數僅在逐次列印時生效" msgid "End G-code when finish the printing of this filament" msgstr "使用該線材列印結束時的結尾 G-code" @@ -10081,12 +10384,19 @@ msgid "" "All: Add solid infill for all suitable sloping surfaces\n" "Default value is All." msgstr "" +"在傾斜面附近添加實心填充,以保證垂直外殼的厚度(頂部+底部實心層)\n" +"無:不在任何地方添加實心填充。注意:如果你的模型有傾斜表面,請謹慎使用此選" +"項\n" +"僅關鍵部位:避免為牆體添加實心填充\n" +"適中:僅為大角度傾斜的表面添加實心填充\n" +"全部:為所有適合的傾斜表面添加實心填充\n" +"默認值為 全部。" msgid "Critical Only" -msgstr "" +msgstr "僅關鍵部分" msgid "Moderate" -msgstr "" +msgstr "適度" msgid "Top surface pattern" msgstr "頂面圖案" @@ -10137,7 +10447,7 @@ msgstr "" msgid "" "Line width of outer wall. If expressed as a %, it will be computed over the " "nozzle diameter." -msgstr "外牆的線寬。如果以 % 表示,將以噴嘴直徑為基準來計算" +msgstr "外牆的線寬。如果以 % 表示,將以噴嘴直徑為基準來計算。" msgid "" "Speed of outer wall which is outermost and visible. It's used to be slower " @@ -10153,6 +10463,9 @@ msgid "" "example: 80%) it will be calculated on the outer wall speed setting above. " "Set to zero for auto." msgstr "" +"此獨立設定將影響半徑小於或等於 small_perimeter_threshold 的外牆列印速度(通常" +"指孔洞)。若設定為百分比(如 80%),將基於上述外牆速度進行計算。設定為 0 表示" +"自動調整。" msgid "Small perimeters threshold" msgstr "微小部位周長臨界值" @@ -10188,15 +10501,27 @@ msgid "" "\n" " " msgstr "" +"『內牆』與『外牆』牆體的列印順序。\n" +"使用『內牆/外牆』順序可獲得最佳的懸空效果。這是因為懸空牆體在列印時可以附著到" +"相鄰的牆。然而,此選項會略微降低表面品質,因為外牆被壓到內牆上而變形。\n" +"使用『內牆/外牆/內牆』順序可獲得最佳的外表面光潔度和尺寸精度,因為外牆的列印" +"不會受到內牆影響。然而,因為外牆缺少內牆的支撐,懸空性能會有所降低。此選項需" +"要至少 3 層牆才能生效,它會先從第 3 層牆開始列印內牆,接著列印外部周邊,最後" +"列印最內層的內牆。在大多數情況下,建議選擇此選項,而不是外牆/內牆的順序設" +"定。\n" +"採用『外牆/內牆』順序可以達到與『內牆/外牆/內牆』設定相同的外牆表面品質與尺寸" +"精度。然而,Z 軸接縫的均勻性會稍差,因為新層的首次擠出會在可見的表面開始。\n" +"\n" +" " msgid "Inner/Outer" -msgstr "裡/外" +msgstr "內牆/外牆" msgid "Outer/Inner" -msgstr "外/裡" +msgstr "外牆/內牆" msgid "Inner/Outer/Inner" -msgstr "裡/外/裡" +msgstr "內牆/外牆/內牆" msgid "Print infill first" msgstr "先列印填充" @@ -10211,9 +10536,14 @@ msgid "" "external surface finish. It can also cause the infill to shine through the " "external surfaces of the part." msgstr "" +"牆體與填充的列印順序。當未勾選選框時,牆體會先列印,這在大多數情況下效果最" +"佳。\n" +"先列印填充可能對極端懸空有幫助,因為牆體可以附著在相鄰的填充上。然而,填充會" +"在接觸牆體處稍微推動牆體,導致外部表面光潔度下降。同時,填充還可能透過零件的" +"外表面顯現出來。" msgid "Wall loop direction" -msgstr "牆方向" +msgstr "牆體列印方向" msgid "" "The direction which the wall loops are extruded when looking down from the " @@ -10225,12 +10555,12 @@ msgid "" "\n" "This option will be disabled if spiral vase mode is enabled." msgstr "" -"從上方觀看時,牆擠出方向。\n" +"從頂部俯視時,牆體迴圈的擠出方向。\n" "\n" -"預設情況下,所有牆面都是以逆時針方向擠出,除非啟用了「偶數反向」。將此設置為" -"「自動」以外的任何選項,將強制牆面方向,無論是否啟用了「偶數反向」。\n" +"默認情況下,所有牆體以逆時針方向擠出,除非啟用了『偶數層反向』。若將此選項設" +"為非自動,則無論是否啟用『偶數層反向』,都將強制指定牆體方向。\n" "\n" -"如果啟用了花瓶模式,這個選項將被禁用。" +"如果啟用了螺旋花瓶模式,該選項將被禁用。" msgid "Counter clockwise" msgstr "逆時針" @@ -10260,13 +10590,13 @@ msgid "" msgstr "擠出機四周的避讓半徑。用於在逐件列印中避免碰撞。" msgid "Nozzle height" -msgstr "" +msgstr "噴嘴高度" msgid "The height of nozzle tip." -msgstr "" +msgstr "噴嘴尖端的高度。" msgid "Bed mesh min" -msgstr "" +msgstr "熱床網格最小值" msgid "" "This option sets the min point for the allowed bed mesh area. Due to the " @@ -10278,9 +10608,14 @@ msgid "" "your printer manufacturer. The default setting is (-99999, -99999), which " "means there are no limits, thus allowing probing across the entire bed." msgstr "" +"此選項設置允許的熱網格區域的最小值。由於探測器的 XY 偏移,大多數列印設備無法" +"探測整個熱床。為確保感測範圍不超出熱床區域,應適當設置熱床網格的最小值和最大" +"值。OrcaSlicer 會確保 adaptive_bed_mesh_min/adaptive_bed_mesh_max 的值不超出" +"這些最小值/最大值。此訊息通常可從設備製造商處獲取。默認設置為 (-99999, " +"-99999),表示無限制,允許探測整個熱床。" msgid "Bed mesh max" -msgstr "" +msgstr "熱床網格最大值" msgid "" "This option sets the max point for the allowed bed mesh area. Due to the " @@ -10292,17 +10627,24 @@ msgid "" "your printer manufacturer. The default setting is (99999, 99999), which " "means there are no limits, thus allowing probing across the entire bed." msgstr "" +"此選項設置允許的熱網格區域的最大值。由於探測器的 XY 偏移,大多數列印設備無法" +"探測整個熱床。為確保感測範圍不超出熱床區域,應適當設置熱床網格的最小值和最大" +"值。OrcaSlicer 會確保 adaptive_bed_mesh_min/adaptive_bed_mesh_max 的值不超出" +"這些最小值/最大值。此訊息通常可從設備製造商處獲取。默認設置為 (-99999, " +"-99999),表示無限制,允許探測整個熱床。" msgid "Probe point distance" -msgstr "" +msgstr "探測間距" msgid "" "This option sets the preferred distance between probe points (grid size) for " "the X and Y directions, with the default being 50mm for both X and Y." msgstr "" +"此選項用於設定 X 和 Y 方向探測點之間的首選距離(網格尺寸),默認值為 X 和 Y " +"方向各為 50mm。" msgid "Mesh margin" -msgstr "" +msgstr "網格邊緣距離" msgid "" "This option determines the additional distance by which the adaptive bed " @@ -10330,7 +10672,7 @@ msgid "" msgstr "" "線材經過融化後凝固可能會產生體積差異。這個設定會等比例改變所有擠出走線的擠出" "量。推薦的範圍為 0.95 到 1.05。發現模型的平面有輕微的缺料或多料時,或許可以嘗" -"試微調這個參數。" +"試微調這個參數" msgid "" "The material may have volumetric change after switching between molten state " @@ -10348,19 +10690,18 @@ msgstr "" "最終物體流量比是此值與線材流量比的乘積。" msgid "Enable pressure advance" -msgstr "啟用壓力提前" +msgstr "啟用壓力補償" msgid "" "Enable pressure advance, auto calibration result will be overwritten once " "enabled." -msgstr "啟用壓力提前,一旦啟用會覆蓋自動校準的結果" +msgstr "啟用壓力補償功能,啟用後將覆蓋自動校準結果。" -#, fuzzy msgid "Pressure advance(Klipper) AKA Linear advance factor(Marlin)" -msgstr "壓力提前(Klipper)或者線性提前(Marlin)" +msgstr "壓力補償(Klipper),也稱為線性前進係數(Marlin)" msgid "Enable adaptive pressure advance (beta)" -msgstr "啟用進階壓力提前 (beta)" +msgstr "自適應壓力補償功能(Beta)" #, no-c-format, no-boost-format msgid "" @@ -10383,9 +10724,20 @@ msgid "" "and for when tool changing.\n" "\n" msgstr "" +"隨著列印速度的提高(因此噴嘴內的體積流速增加)以及加速度的增加,已觀察到有效" +"的壓力補償(PA)值通常會下降。這意味著單一的 PA 值並不總是對所有特徵都能達到" +"最佳效果,通常會使用一個折衷值,以減少在較低流速和加速度下的特徵出現過多凸" +"起,同時避免在更快的特徵中出現間隙。\n" +"\n" +"此功能旨在通過建模的方式,讓擠出系統在不同體積流速和加速度下的反應狀態來解決" +"這一限制。內部會生成一個擬合模型,可根據給定的體積流速和加速度推算出所需的壓" +"力補償值,並根據當前的打印條件將該值發送到打印機。\n" +"\n" +"啟用後,上述的壓力補償值將被覆蓋。然而,建議設置一個合理的默認值,以作為備用" +"或擠出機更換時的回推值。\n" msgid "Adaptive pressure advance measurements (beta)" -msgstr "自適應壓力提前測量(beta)" +msgstr "自適應壓力補償測量功能(Beta)" #, no-c-format, no-boost-format msgid "" @@ -10417,9 +10769,26 @@ msgid "" "your filament profile\n" "\n" msgstr "" +"添加壓力補償 (PA) 值、體積流速和加速度的數據集,使用逗號分隔。每行一組數據。" +"例如:\n" +"0.04,3.96,3000\n" +"0.033,3.96,10000\n" +"0.029,7.91,3000\n" +"0.026,7.91,10000\n" +"\n" +"校準方法:\n" +"1. 為每個加速度值執行至少 3 個速度的壓力補償測試。建議至少測試外牆速度、內牆" +"速度和設定檔中最快的特徵列印速度(通常是稀疏或實心填充)。然後對最慢和最快的" +"列印加速度執行相同速度的測試,但不超過 Klipper 輸入整形器建議的最大加速度。\n" +"2. 記錄每個體積流速和加速度的最佳壓力補償 (PA) 值。你可以通過從顏色方案下拉選" +"單中選擇流量,並將水平滑桿移動到 PA 測試線的圖案來找到流量數值。該數值應顯示" +"在頁面底部。理想的 PA 值應隨著體積流速的增加而減小。如果不是,請檢查你的擠出" +"機是否正常工作。當列印速度較慢且加速度較低時,可接受的 PA 值範圍會更大。如果" +"看不出差異,請採用最快測試的 PA 值。\n" +"3. 將 PA 值、流量和加速度的三組數據輸入到此文字框中,然後保存你的線材設定檔\n" msgid "Enable adaptive pressure advance for overhangs (beta)" -msgstr "啟用懸挑自適應壓力提前(beta)" +msgstr "啟用懸挑自適應壓力提前 (beta)" msgid "" "Enable adaptive PA for overhangs as well as when flow changes within the " @@ -10427,11 +10796,11 @@ msgid "" "set accurately, it will cause uniformity issues on the external surfaces " "before and after overhangs.\n" msgstr "" -"啟用自適應 PA 以應對懸挑以及同一特徵內流量變化。這是一個實驗性選項,因為如果 " -"PA 配置未準確設定,可能會在懸挑前後的外部表面上造成均勻性問題。\n" +"啟用自適應壓力補償 (PA) 功能,用於懸空部分及同一特徵的流量變化。此功能屬於實" +"驗性選項,若 PA 設定檔不夠精確,可能會導致懸空前後外表面出現不均勻現象。\n" msgid "Pressure advance for bridges" -msgstr "橋接壓力提前" +msgstr "橋接的壓力補償" msgid "" "Pressure advance value for bridges. Set to 0 to disable. \n" @@ -10441,10 +10810,9 @@ msgid "" "pressure drop in the nozzle when printing in the air and a lower PA helps " "counteract this." msgstr "" -"橋接的壓力提前值。設為 0 可禁用。\n" -"\n" -"在列印橋接時,較低的 PA 值有助於減少橋接結束後出現的輕微欠擠壓現象。這是由於" -"列印空中時噴嘴內部壓力下降,較低的 PA 值有助於抵消這個問題。" +"橋接的壓力補償值。設為 0 以禁用此功能。降低橋接時的壓力補償值有助於減少橋接結" +"束後立即出現的輕微欠擠出現象。這種現象是由於在空中列印時噴嘴內壓力下降引起" +"的,而降低壓力補償值有助於抵消這一影響。" msgid "" "Default line width if other line widths are set to 0. If expressed as a %, " @@ -10477,9 +10845,21 @@ msgid "" "external walls\n" "\n" msgstr "" +"啟用此設定後,外牆的列印速度將不會為了滿足每層最短列印時間而減慢,這對以下情" +"況特別有用:\n" +"\n" +"1.\t列印亮面耗材時,避免光澤不均的問題。\n" +"2. 避免因外牆速度變化而產生類似 Z 條紋的瑕疵。\n" +"3. 防止外牆因列印速度過快而出現 VFAs(細微表面瑕疵)。\n" +"\n" +"譯者補充:最小層時間(Minimum Layer Time)是指列印每一層所需的最短時間。如果" +"列印機以較快的速度完成一層的列印時間短於這個設定值,為了確保每層有足夠的時間" +"冷卻和固化,列印機會自動減慢速度,以延長該層的列印時間,達到最小層時間的要" +"求。這樣可以避免因冷卻不足而導致的列印缺陷,如層間附著不良或變形。\n" +"\n" msgid "Layer time" -msgstr "層時間" +msgstr "每一層列印時間" msgid "" "Part cooling fan will be enabled for layers of which estimated time is " @@ -10515,7 +10895,7 @@ msgid "" "case of too high and unreasonable speed setting. Can't be zero" msgstr "" "這個設定表示每秒能夠融化和擠出的線材體積。列印速度會受限於到最大體積速度,防" -"止設定過高和不合理的速度。不允許設定為 0。" +"止設定過高和不合理的速度。不允許設定為 0" msgid "mm³/s" msgstr "mm³/s" @@ -10528,6 +10908,8 @@ msgid "" "single-extruder multi-material machines. For tool changers or multi-tool " "machines, it's typically 0. For statistics only" msgstr "" +"更換耗材時加載新耗材的時間,通常適用於單噴頭多材料的列印機。對於具備擠出機切" +"換功能或多擠出機系統的設備,此值通常設為 0,僅作為統計參考" msgid "Filament unload time" msgstr "退料的時間" @@ -10537,23 +10919,27 @@ msgid "" "for single-extruder multi-material machines. For tool changers or multi-tool " "machines, it's typically 0. For statistics only" msgstr "" +"更換耗材時卸載舊耗材的時間,通常適用於單噴頭多材料的列印機。於具備擠出機切換" +"功能或多擠出機系統的設備,此值通常設為 0,僅作為統計參考" msgid "Tool change time" -msgstr "" +msgstr "擠出機替換時間" msgid "" "Time taken to switch tools. It's usually applicable for tool changers or " "multi-tool machines. For single-extruder multi-material machines, it's " "typically 0. For statistics only" msgstr "" +"切換擠出機所需的時間,通常適用於具備擠出機切換功能或多擠出機系統的設備。對於" +"單噴頭多材料的列印機,此值一般設為 0,僅作為統計參考" msgid "" "Filament diameter is used to calculate extrusion in gcode, so it's important " "and should be accurate" -msgstr "線材直徑被用於計算 G-code 檔案中的擠出量。因此很重要,應盡可能精確。" +msgstr "線材直徑被用於計算 G-code 檔案中的擠出量。因此很重要,應盡可能精確" msgid "Pellet flow coefficient" -msgstr "" +msgstr "顆粒材料流量係數" msgid "" "Pellet flow coefficient is empirically derived and allows for volume " @@ -10564,9 +10950,12 @@ msgid "" "\n" "filament_diameter = sqrt( (4 * pellet_flow_coefficient) / PI )" msgstr "" +"顆粒流量係數是基於實驗數據得出的,用於計算顆粒列印機的材料體積。\n" +"在內部系統中,該係數會被轉換為耗材直徑,而其它體積計算方式則維持不變。\n" +"filament_diameter = sqrt( (4 * pellet_flow_coefficient) / PI )" msgid "Shrinkage (XY)" -msgstr "" +msgstr "收縮(XY)" #, no-c-format, no-boost-format msgid "" @@ -10576,13 +10965,13 @@ msgid "" "Be sure to allow enough space between objects, as this compensation is done " "after the checks." msgstr "" -"冷卻後線材會收縮的百分比(如果測量的長度是 94mm 而不是 100mm,則為是收縮率為 " -"94%)\n" -"補償將按比例縮放 xy 軸該補償僅考慮牆壁所使用的線材\n" -"請確保物體之間有足夠的間距,因為補償是在邊界檢查之後進行" +"輸入耗材冷卻後的收縮率百分比(例如,如果測量結果為 94mm 而非 100mm,則填寫 " +"94%)。\n" +"零件的 XY 平面將根據此設定進行縮放補償,僅計算用於列印牆的耗材量。\n" +"請確保物件間預留足夠的空間,因為此補償是在完成檢查後才執行的。" msgid "Shrinkage (Z)" -msgstr "" +msgstr "收縮(Z)" #, no-c-format, no-boost-format msgid "" @@ -10590,6 +10979,8 @@ msgid "" "if you measure 94mm instead of 100mm). The part will be scaled in Z to " "compensate." msgstr "" +"輸入耗材冷卻後的收縮百分比(例如,如果測量值為 94mm 而不是 100mm,則填寫 " +"94%)。零件的 Z 軸尺寸將被縮放以進行補償。" msgid "Loading speed" msgstr "進料速度" @@ -10600,18 +10991,16 @@ msgstr "將線材擠出到換料塔上的速度。" msgid "Loading speed at the start" msgstr "啟動時進料速度" -#, fuzzy msgid "Speed used at the very beginning of loading phase." msgstr "初始進料階段速度。" msgid "Unloading speed" msgstr "退料速度" -#, fuzzy msgid "" "Speed used for unloading the filament on the wipe tower (does not affect " "initial part of unloading just after ramming)." -msgstr "使用於換料塔上退料的速度(不影響尖端成型之後初始部分的速度)。" +msgstr "用於在換料塔上退料速度(不影響尖端成型之後初始部分的速度)。" msgid "Unloading speed at the start" msgstr "退料初始速度" @@ -10640,19 +11029,21 @@ msgid "" msgstr "藉由在喉管中來回移動以冷卻線材。指定移動所需的次數。" msgid "Stamping loading speed" -msgstr "" +msgstr "沖壓機的載入速度" msgid "Speed used for stamping." -msgstr "" +msgstr "進行沖壓操作時所使用的速度。" msgid "Stamping distance measured from the center of the cooling tube" -msgstr "" +msgstr "沖壓距離是以冷卻管的中心作為參考點進行測量" msgid "" "If set to nonzero value, filament is moved toward the nozzle between the " "individual cooling moves (\"stamping\"). This option configures how long " "this movement should be before the filament is retracted again." msgstr "" +"當此設定為非零值時,耗材會在每次冷卻移動(沖壓)之間向噴嘴推進。該選項用於設" +"定在耗材回抽之前的推進持續時間。" msgid "Speed of the first cooling move" msgstr "第一次冷卻移動的速度" @@ -10705,19 +11096,19 @@ msgid "Multi-tool ramming volume" msgstr "多色尖端成型體積" msgid "The volume to be rammed before the toolchange." -msgstr "換色前尖端成型的體積" +msgstr "換色前尖端成型的體積。" msgid "Multi-tool ramming flow" msgstr "多色尖端成型流量" msgid "Flow used for ramming the filament before the toolchange." -msgstr "換色前線材尖端成型的流量" +msgstr "換色前線材尖端成型的流量。" msgid "Density" msgstr "密度" msgid "Filament density. For statistics only" -msgstr "線材的密度。只用於統計資訊。" +msgstr "線材的密度。只用於統計資訊" msgid "g/cm³" msgstr "g/cm³" @@ -10754,7 +11145,7 @@ msgid "Price" msgstr "價格" msgid "Filament price. For statistics only" -msgstr "線材的價格。只用於統計資訊。" +msgstr "線材的價格。只用於統計資訊" msgid "money/kg" msgstr "元/公斤" @@ -10763,32 +11154,32 @@ msgid "Vendor" msgstr "廠牌" msgid "Vendor of filament. For show only" -msgstr "列印線材的廠牌。僅用於展示。" +msgstr "列印線材的廠牌。僅用於展示" msgid "(Undefined)" msgstr "(未定義)" msgid "Sparse infill direction" -msgstr "" +msgstr "稀疏填充方向" msgid "" "Angle for sparse infill pattern, which controls the start or main direction " "of line" -msgstr "稀疏填充圖案的角度,決定走線的開始或整體方向。" +msgstr "稀疏填充圖案的角度,決定走線的開始或整體方向" msgid "Solid infill direction" -msgstr "" +msgstr "實心填充方向" msgid "" "Angle for solid infill pattern, which controls the start or main direction " "of line" -msgstr "" +msgstr "實心填充圖案的角度設定,用於決定線條的起始方向或主要列印方向" msgid "Rotate solid infill direction" -msgstr "" +msgstr "旋轉實心填充方向" msgid "Rotate the solid infill direction by 90° for each layer." -msgstr "" +msgstr "每層實心填充的列印方向旋轉 90°。" msgid "Sparse infill density" msgstr "稀疏填充密度" @@ -10798,6 +11189,8 @@ msgid "" "Density of internal sparse infill, 100% turns all sparse infill into solid " "infill and internal solid infill pattern will be used" msgstr "" +"設定內部稀疏填充的密度,當密度為 100% 時,所有稀疏填充將變為實心填充,並應用" +"內部實心填充的圖案" msgid "Sparse infill pattern" msgstr "稀疏填充圖案" @@ -10808,6 +11201,9 @@ msgstr "內部稀疏填充的走線圖案" msgid "Grid" msgstr "網格" +msgid "2D Lattice" +msgstr "2D 網格結構" + msgid "Line" msgstr "線" @@ -10836,7 +11232,26 @@ msgid "Lightning" msgstr "閃電" msgid "Cross Hatch" -msgstr "" +msgstr "交叉填充" + +msgid "Quarter Cubic" +msgstr "四分之一立方" + +msgid "Lattice angle 1" +msgstr "網格結構角度 1" + +msgid "" +"The angle of the first set of 2D lattice elements in the Z direction. Zero " +"is vertical." +msgstr "Z 軸方向第一組 2D 網格結構的角度,0° 表示垂直方向。" + +msgid "Lattice angle 2" +msgstr "網格結構角度 2" + +msgid "" +"The angle of the second set of 2D lattice elements in the Z direction. Zero " +"is vertical." +msgstr "Z 軸方向第二組 2D 網格結構的角度,0° 表示垂直方向。" msgid "Sparse infill anchor length" msgstr "稀疏填充錨線長度" @@ -10853,8 +11268,12 @@ msgid "" "Set this parameter to zero to disable anchoring perimeters connected to a " "single infill line." msgstr "" +"將填充線透過一小段額外的牆與內牆連接。如果以百分比形式設定(如 15%),此數值" +"是基於填充擠出寬度進行計算。Orca Slicer 會嘗試將兩條靠近的填充線連接到一段較" +"短的牆。如果沒有找到比 infill_anchor_max 更短的牆,則填充線會只連接到一側的" +"牆,且該段的長度受此參數限制,但不會超過 anchor_length_max。 \n" +"將此參數設為 0 可禁用單條填充線與牆的錨接功能。" -#, fuzzy msgid "0 (no open anchors)" msgstr "0(無錨線)" @@ -10876,6 +11295,11 @@ msgid "" "If set to 0, the old algorithm for infill connection will be used, it should " "create the same result as with 1000 & 0." msgstr "" +"將填充線透過一小段額外的牆與內牆連接。如果以百分比形式設定(如 15%),此數值" +"是基於填充擠出寬度進行計算。Orca Slicer 會嘗試將兩條靠近的填充線連接到一段較" +"短的牆。如果沒有找到短於此參數的牆,則填充線會只連接到單側牆,且該牆的長度受 " +"infill_anchor 限制,但不會超過此參數的設定值。若此參數設定為 0,將啟用舊版填" +"充連接算法,並生成與設置為 1000 和 0 相同的結果。" msgid "0 (Simple connect)" msgstr "0(簡單連接)" @@ -10884,7 +11308,7 @@ msgid "Acceleration of outer walls" msgstr "外牆的加速度。它通常使用比內壁速度慢的加速度,以獲得更好的列印品質" msgid "Acceleration of inner walls" -msgstr "內牆加速度,使用較低值可以改善列印品質。" +msgstr "內牆加速度,使用較低值可以改善列印品質" msgid "Acceleration of travel moves" msgstr "空駛加速度" @@ -10895,7 +11319,7 @@ msgid "" msgstr "頂面填充的加速度。使用較低值可能會改善頂面列印品質" msgid "Acceleration of outer wall. Using a lower value can improve quality" -msgstr "外牆加速度。使用較小的值可以提高列印品質。" +msgstr "外牆加速度。使用較小的值可以提高列印品質" msgid "" "Acceleration of bridges. If the value is expressed as a percentage (e.g. " @@ -10924,13 +11348,13 @@ msgstr "" msgid "" "Acceleration of initial layer. Using a lower value can improve build plate " "adhesive" -msgstr "首層加速度。使用較低值可以改善和列印板的黏附。" +msgstr "首層加速度。使用較低值可以改善和列印板的黏附" msgid "Enable accel_to_decel" msgstr "啟用煞車速度" msgid "Klipper's max_accel_to_decel will be adjusted automatically" -msgstr "Klipper 會依照煞車速度值自動調整" +msgstr "Klipper 會依照煞車速度自動調整" msgid "accel_to_decel" msgstr "煞車速度" @@ -10992,7 +11416,7 @@ msgstr "慢速列印層數" msgid "" "The first few layers are printed slower than normal. The speed is gradually " "increased in a linear fashion over the specified number of layers." -msgstr "減慢前幾層的列印速度。列印速度會逐漸加速到滿速" +msgstr "減慢前幾層的列印速度。列印速度會逐漸加速到滿速。" msgid "Initial layer nozzle temperature" msgstr "首層列印溫度" @@ -11010,9 +11434,11 @@ msgid "" "than \"close_fan_the_first_x_layers\", in which case the fan will be running " "at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1." msgstr "" -"風扇速度將從\"禁用第一層\"的零線性上升到\"全風扇速度層\"的最大。如果低於\"禁" -"用風扇第一層\",則\"全風扇速度第一層\"將被忽略,在這種情況下,風扇將在\"禁用" -"風扇第一層\"+1層以最大允許速度運行。" +"風扇速度會從第「close_fan_the_first_x_layers」層開始,從零速以線性方式逐漸增" +"加,直到第「full_fan_speed_layer」層達到最大速度。如果" +"「full_fan_speed_layer」的設定值小於「close_fan_the_first_x_layers」,則" +"「full_fan_speed_layer」會被忽略,此時風扇會在「close_fan_the_first_x_layers " +"+ 1」層以允許的最高速度運行。" msgid "layer" msgstr "層" @@ -11021,18 +11447,38 @@ msgid "Support interface fan speed" msgstr "支撐界面風扇速度" msgid "" -"This fan speed is enforced during all support interfaces, to be able to " -"weaken their bonding with a high fan speed.\n" -"Set to -1 to disable this override.\n" -"Can only be overridden by disable_fan_first_layers." +"This part cooling fan speed is applied when printing support interfaces. " +"Setting this parameter to a higher than regular speed reduces the layer " +"binding strength between supports and the supported part, making them easier " +"to separate.\n" +"Set to -1 to disable it.\n" +"This setting is overridden by disable_fan_first_layers." msgstr "" -"所有支撐界面列印期間強制風扇速度,高速可以減少支撐與物件的融合。\n" -"設定為 -1 以停用。" +"此冷卻風扇速度適用於列印支撐介面時。" +"將此值設為高於正常速度,可減少支撐結構與受支撐零件之間的黏結強度,使拆除支撐更容易。\n" +"若設為 -1,則禁用此功能。\n" +"此設定會被 disable_fan_first_layers 覆寫。" + + +msgid "Internal bridges fan speed" +msgstr "內部橋接風扇轉速" + +msgid "" +"The part cooling fan speed used for all internal bridges. Set to -1 to use " +"the overhang fan speed settings instead.\n" +"\n" +"Reducing the internal bridges fan speed, compared to your regular fan speed, " +"can help reduce part warping due to excessive cooling applied over a large " +"surface for a prolonged period of time." +msgstr "" +"此風扇轉速適用於所有內部橋接。若設為 -1,則改用懸垂風扇速度設定。\n" +"\n" +"適當降低內部橋接的風扇轉速(相較於一般風扇速度),可減少因長時間對大面積區域過度冷卻而導致的零件翹曲。" msgid "" "Randomly jitter while printing the wall, so that the surface has a rough " "look. This setting controls the fuzzy position" -msgstr "列印外牆時隨機抖動,使外表面產生絨毛效果。這個設定決定適用的位置。" +msgstr "列印外牆時隨機抖動,使外表面產生絨毛效果。這個設定決定適用的位置" msgid "Contour" msgstr "輪廓" @@ -11049,7 +11495,7 @@ msgstr "絨毛表面厚度" msgid "" "The width within which to jitter. It's advised to be below outer wall line " "width" -msgstr "產生絨毛的抖動的寬度。建議小於外圈牆的線寬。" +msgstr "產生絨毛的抖動的寬度。建議小於外圈牆的線寬" msgid "Fuzzy skin point distance" msgstr "絨毛表面點間距" @@ -11060,10 +11506,69 @@ msgid "" msgstr "產生絨毛表面時,插入的隨機點之間的平均距離" msgid "Apply fuzzy skin to first layer" -msgstr "" +msgstr "在第一層啟用絨毛表面" msgid "Whether to apply fuzzy skin on the first layer" +msgstr "是否啟用絨毛表面於第一層" + +msgid "Fuzzy skin noise type" +msgstr "模糊表面紋理噪聲類型" + +msgid "" +"Noise type to use for fuzzy skin generation.\n" +"Classic: Classic uniform random noise.\n" +"Perlin: Perlin noise, which gives a more consistent texture.\n" +"Billow: Similar to perlin noise, but clumpier.\n" +"Ridged Multifractal: Ridged noise with sharp, jagged features. Creates " +"marble-like textures.\n" +"Voronoi: Divides the surface into voronoi cells, and displaces each one by a " +"random amount. Creates a patchwork texture." msgstr "" +"用於產生模糊表面效果的噪聲類型:\n" +"經典(Classic):標準的均勻隨機噪聲。\n" +"柏林(Perlin):提供更平滑且一致的紋理效果。\n" +"波狀(Billow):類似柏林噪聲,但紋理較為團塊狀。\n" +"脊狀多重分形(Ridged Multifractal):帶有尖銳、鋸齒狀特徵的紋理,可產生類似大理石的效果。\n" +"沃羅諾伊(Voronoi):將表面分割成多個區塊,並隨機位移,形成拼貼風格的紋理。" + +msgid "Classic" +msgstr "經典" + +msgid "Perlin" +msgstr "柏林" + +msgid "Billow" +msgstr "波狀" + +msgid "Ridged Multifractal" +msgstr "脊狀多重分形" + +msgid "Voronoi" +msgstr "沃羅諾伊" + +msgid "Fuzzy skin feature size" +msgstr "模糊表面紋理尺寸" + +msgid "" +"The base size of the coherent noise features, in mm. Higher values will " +"result in larger features." +msgstr "控制模糊紋理的基礎尺寸(單位:毫米)。數值越大,紋理特徵越明顯、範圍越大。" + +msgid "Fuzzy Skin Noise Octaves" +msgstr "模糊表面紋理噪聲層級" + +msgid "" +"The number of octaves of coherent noise to use. Higher values increase the " +"detail of the noise, but also increase computation time." +msgstr "設定模糊紋理的噪聲層級數量。較高的值可提升紋理細節,但也會增加運算時間。" + +msgid "Fuzzy skin noise persistence" +msgstr "模糊表面紋理噪聲強度衰減係數" + +msgid "" +"The decay rate for higher octaves of the coherent noise. Lower values will " +"result in smoother noise." +msgstr "控制高層級噪聲細節的衰減率。數值越低,紋理會越平滑。" msgid "Filter out tiny gaps" msgstr "忽略微小間隙" @@ -11076,20 +11581,24 @@ msgid "" "(in mm). This setting applies to top, bottom and solid infill and, if using " "the classic perimeter generator, to wall gap fill. " msgstr "" +"若縫隙填充的長度小於設定的閾值(以 mm 計),則不列印該填充。此設定適用於頂" +"部、底部和實心填充,以及使用經典牆產生器時的牆體縫隙填充。" msgid "" "Speed of gap infill. Gap usually has irregular line width and should be " "printed more slowly" -msgstr "填縫的速度。縫隙通常有不一致的線寬,應改用較慢速度列印。" +msgstr "填縫的速度。縫隙通常有不一致的線寬,應改用較慢速度列印" msgid "Precise Z height" -msgstr "" +msgstr "Z 軸的精確高度" msgid "" "Enable this to get precise z height of object after slicing. It will get the " "precise object height by fine-tuning the layer heights of the last few " "layers. Note that this is an experimental parameter." msgstr "" +"啟用此選項可以在切片後確保物件的 Z 軸高度更加精確。此功能透過微調最後幾層的層" +"高來達成精確的物件高度。請注意,這是一個實驗性功能。" msgid "Arc fitting" msgstr "圓弧擬合" @@ -11104,12 +11613,18 @@ msgid "" "quality as line segments are converted to arcs by the slicer and then back " "to line segments by the firmware." msgstr "" +"啟用此選項可生成包含 G2 和 G3 弧形運動的 G-code 文件,其擬合公差與解析度一" +"致。 \n" +"\n" +"注意:對於 Klipper 控制的機器,建議關閉此功能。Klipper 無法有效利用弧形指令," +"因為固件會將這些弧形指令重新分割為線段。這可能導致表面品質下降,因為切片器將" +"線段轉換為弧形,然後固件又將弧形還原為線段。" msgid "Add line number" msgstr "標註行號" msgid "Enable this to add line number(Nx) at the beginning of each G-Code line" -msgstr "" +msgstr "啟用此選項可在每行 G-Code 的開頭添加行號(Nx)" msgid "Scan first layer" msgstr "首層檢查" @@ -11117,7 +11632,7 @@ msgstr "首層檢查" msgid "" "Enable this to enable the camera on printer to check the quality of first " "layer" -msgstr "打開這個設定將使用列印設備上的鏡頭用於檢查首層列印品質。" +msgstr "打開這個設定將使用列印設備上的鏡頭用於檢查首層列印品質" msgid "Nozzle type" msgstr "噴嘴類型" @@ -11157,16 +11672,16 @@ msgid "The physical arrangement and components of a printing device" msgstr "列印設備的實體佈置和組件" msgid "CoreXY" -msgstr "" +msgstr "CoreXY" msgid "I3" -msgstr "" +msgstr "I3" msgid "Hbot" -msgstr "" +msgstr "Hbot" msgid "Delta" -msgstr "" +msgstr "Delta" msgid "Best object position" msgstr "最佳物件位置" @@ -11191,18 +11706,20 @@ msgid "" "gcode' is activated.\n" "Use 0 to deactivate." msgstr "" -"將風扇啟動指令往前移動指定時間以補償風扇的啟動時間。目前支援 G1 G0 指令\n" -"設為 0 以禁用此選項" +"在風扇目標啟動時間前提前設定的秒數啟動風扇(支持小數點)。此功能基於無限加速" +"假設進行時間估算,並僅考慮 G1 和 G0 指令的移動(不支援圓弧擬合)。\n" +"風扇指令不會從自定義 G-code 中轉移(它們被視為「屏障」)。\n" +"若啟用『僅使用自定義起始 G-code』,風扇指令將不會移動到起始 G-code 中。\n" +"將此值設為 0 可停用該功能。" msgid "Only overhangs" msgstr "僅懸空" -#, fuzzy msgid "Will only take into account the delay for the cooling of overhangs." -msgstr "僅參考懸空的冷卻延遲" +msgstr "此設定僅針對懸空部分的冷卻延遲進行考量。" msgid "Fan kick-start time" -msgstr "風扇" +msgstr "風扇啟動時間" msgid "" "Emit a max fan speed command for this amount of seconds before reducing to " @@ -11211,10 +11728,12 @@ msgid "" "fan started spinning from a stop, or to get the fan up to speed faster.\n" "Set to 0 to deactivate." msgstr "" -"先用最快風扇速度運轉冷卻風扇N秒後再降低到目標速度。\n" -"這對於低 PWM/功率不足以讓風扇從停止狀態啟動,或使風扇加速更快的情況非常有" -"用。\n" -"設定為 0 以停用。" +"在風扇降速至目標速度之前,先以最大風扇速度運行指定的秒數來啟動冷卻風扇。\n" +"這對於需要較高功率才能從靜止狀態啟動,或需要更快達到運行速度的風扇非常有幫" +"助。\n" +"若設置為 0,將停用此功能。\n" +"譯者補充:風扇啟動時間通常是指風扇從靜止狀態到穩定運轉所需的時間\n" +"這個設定可以確保風扇在低轉速時順利啟動,避免因功率不足而無法正常運行。" msgid "Time cost" msgstr "時間成本" @@ -11252,19 +11771,19 @@ msgid "What kind of gcode the printer is compatible with" msgstr "列印設備相容的 G-code 樣式" msgid "Klipper" -msgstr "" +msgstr "Klipper" msgid "Pellet Modded Printer" -msgstr "" +msgstr "顆粒改裝列印機" msgid "Enable this option if your printer uses pellets instead of filaments" -msgstr "" +msgstr "若你的列印機使用塑料顆粒而非傳統線材,請啟用此選項" msgid "Support multi bed types" -msgstr "" +msgstr "支援多種熱床類型" msgid "Enable this option if you want to use multiple bed types" -msgstr "" +msgstr "若你需要切換使用不同的列印床類型,請啟用此選項" msgid "Label objects" msgstr "標註物件" @@ -11293,7 +11812,7 @@ msgid "" "descriptive text. If you print from SD card, the additional weight of the " "file could make your firmware slow down." msgstr "" -"啟用此選項可取得帶註釋的 G-code,其中每一行均由描述性文字進行解釋。 如果你從 " +"啟用此選項可取得帶註釋的 G-code,其中每一行均由描述性文字進行解釋。如果你從 " "SD 卡列印,檔案的額外容量可能會導致韌體速度變慢。" msgid "Infill combination" @@ -11303,10 +11822,10 @@ msgid "" "Automatically Combine sparse infill of several layers to print together to " "reduce time. Wall is still printed with original layer height." msgstr "" -"自動合併若干層稀疏填充一起列印以可縮短時間。內外牆依然保持原始層高列印。" +"自動將多層稀疏填充合併列印,以縮短列印時間。同時,周邊仍保持原層高列印。" msgid "Infill combination - Max layer height" -msgstr "" +msgstr "合併填充 - 最大層高" msgid "" "Maximum layer height for the combined sparse infill. \n" @@ -11320,9 +11839,17 @@ msgid "" "Use either absolute mm values (eg. 0.32mm for a 0.4mm nozzle) or % values " "(eg 80%). This value must not be larger than the nozzle diameter." msgstr "" +"設定稀疏填充合併列印最大層高。\n" +"\n" +"你可以將其設為 0 或 100% 來使用噴嘴直徑(以最大程度縮短列印時間),或者設定為" +"大約 80% 來增強稀疏填充的強度。結合的層數會根據此值與層高的比值計算,並向下取" +"整到最接近的位數。\n" +"\n" +"可以使用絕對值(例如 0.32mm,對應 0.4mm 的噴嘴)或百分比(例如 80%)。注意," +"此值不能超過噴嘴的直徑。" msgid "Filament to print internal sparse infill." -msgstr "列印內部稀疏填充的線材" +msgstr "列印內部稀疏填充的線材。" msgid "" "Line width of internal sparse infill. If expressed as a %, it will be " @@ -11339,9 +11866,12 @@ msgid "" "value to ~10-15% to minimize potential over extrusion and accumulation of " "material resulting in rough top surfaces." msgstr "" +"為了增強填充與周邊的結合,填充區域會略微擴大,與周邊產生重疊。此百分比值是基" +"於稀疏填充的線寬來計算的。建議將該值設置在 10-15% 左右,以減少過擠出或材料堆" +"積的可能性從而避免列印出粗糙的頂部表面。" msgid "Top/Bottom solid infill/wall overlap" -msgstr "" +msgstr "頂部/底部實心填充部分和周邊重疊區域設定" #, no-c-format, no-boost-format msgid "" @@ -11351,6 +11881,9 @@ msgid "" "appearance of pinholes. The percentage value is relative to line width of " "sparse infill" msgstr "" +"頂部實心填充的區域會略微擴大,與周邊部分重疊,以增強結合效果並減少填充與周邊" +"接合處出現針孔的可能性。建議從 25-30% 的設定值開始,這通常能有效減少針孔現" +"象。此百分比值是基於稀疏填充的線寬來計算的" msgid "Speed of internal sparse infill" msgstr "內部稀疏填充的列印速度" @@ -11373,7 +11906,7 @@ msgid "Maximum width of a segmented region. Zero disables this feature." msgstr "分隔區域的最大寬度。零表示禁用此功能。" msgid "Interlocking depth of a segmented region" -msgstr "" +msgstr "分隔區域的互鎖深度" msgid "" "Interlocking depth of a segmented region. It will be ignored if " @@ -11381,51 +11914,64 @@ msgid "" "\"mmu_segmented_region_interlocking_depth\"is bigger then " "\"mmu_segmented_region_max_width\". Zero disables this feature." msgstr "" +"設定分隔區域的互鎖深度。如果「mmu_segmented_region_max_width」設定為 0,或者" +"「mmu_segmented_region_interlocking_depth」的值大於" +"「mmu_segmented_region_max_width」,此功能將被忽略。將此值設為 0 可完全關閉該" +"功能。" msgid "Use beam interlocking" -msgstr "" +msgstr "使用梁式互鎖" msgid "" "Generate interlocking beam structure at the locations where different " "filaments touch. This improves the adhesion between filaments, especially " "models printed in different materials." msgstr "" +"在不同材料的耗材接觸點生成梁式互鎖結構,增強耗材之間的附著力,特別適用於不同" +"材料列印的模型。\n" +"譯者補充:此設定通常用於提升結構穩定性,透過梁式設計讓不同部分更緊密地連接在" +"一起,常見於模組化或多材料列印中。" msgid "Interlocking beam width" -msgstr "" +msgstr "梁式互鎖寬度" msgid "The width of the interlocking structure beams." -msgstr "" +msgstr "梁式互鎖結構寬度。" msgid "Interlocking direction" -msgstr "" +msgstr "梁式互鎖方向" msgid "Orientation of interlock beams." -msgstr "" +msgstr "梁式互鎖結構的排列方向。" msgid "Interlocking beam layers" -msgstr "" +msgstr "梁式互鎖層數" msgid "" "The height of the beams of the interlocking structure, measured in number of " "layers. Less layers is stronger, but more prone to defects." -msgstr "" +msgstr "梁式互鎖的交錯高度,以層數計算。層數越少,結構越強,但更容易出現缺陷。" msgid "Interlocking depth" -msgstr "" +msgstr "梁式互鎖深度" msgid "" "The distance from the boundary between filaments to generate interlocking " "structure, measured in cells. Too few cells will result in poor adhesion." msgstr "" +"互鎖結構與邊界之間的距離,以單元數做計算。若單元數過少,可能會導致附著力不" +"足。" msgid "Interlocking boundary avoidance" -msgstr "" +msgstr "梁式互鎖的邊界避讓" msgid "" "The distance from the outside of a model where interlocking structures will " "not be generated, measured in cells." msgstr "" +"設定模型外部距離範圍內不生成互鎖結構,此距離以單元數做計算\n" +"譯者補充:此設定用於確保互鎖結構不干擾模型的外部區域,特別適用於需要精細外觀" +"或保護特定結構的列印需求。" msgid "Ironing Type" msgstr "熨燙類型" @@ -11435,7 +11981,7 @@ msgid "" "flat surface more smooth. This setting controls which layer being ironed" msgstr "" "熨燙是指使用小流量在表面相同高度再次列印,以使平面更加光滑。此設定控制哪些層" -"進行熨燙。" +"進行熨燙" msgid "No ironing" msgstr "不熨燙" @@ -11461,7 +12007,7 @@ msgstr "熨燙流量" msgid "" "The amount of material to extrude during ironing. Relative to flow of normal " "layer height. Too high value results in overextrusion on the surface" -msgstr "熨燙時相對正常層高流量的材料量。過高的數值將會導致表面材料過擠出。" +msgstr "熨燙時相對正常層高流量的材料量。過高的數值將會導致表面材料過擠出" msgid "Ironing line spacing" msgstr "熨燙間距" @@ -11469,6 +12015,14 @@ msgstr "熨燙間距" msgid "The distance between the lines of ironing" msgstr "熨燙走線的間距" +msgid "Ironing inset" +msgstr "燙平內縮距離" + +msgid "" +"The distance to keep from the edges. A value of 0 sets this to half of the " +"nozzle diameter" +msgstr "與邊緣保持的距離。設定為 0 時,距離將自動設為噴嘴直徑的一半。" + msgid "Ironing speed" msgstr "熨燙速度" @@ -11481,10 +12035,10 @@ msgstr "熨燙角度" msgid "" "The angle ironing is done at. A negative number disables this function and " "uses the default method." -msgstr "" +msgstr "設定熨燙操作的角度。若設為負值,將停用此功能並改用預設的熨平方式。" msgid "This gcode part is inserted at every layer change after lift z" -msgstr "在每次換層抬升Z高度之後插入這段 G-code。" +msgstr "在每次換層抬升Z高度之後插入這段 G-code" msgid "Supports silent mode" msgstr "支援靜音模式" @@ -11492,10 +12046,10 @@ msgstr "支援靜音模式" msgid "" "Whether the machine supports silent mode in which machine use lower " "acceleration to print" -msgstr "設備是否支援使用低加速度列印的靜音模式。" +msgstr "設備是否支援使用低加速度列印的靜音模式" msgid "Emit limits to G-code" -msgstr "" +msgstr "將限制參數輸出至 G-code" msgid "Machine limits" msgstr "設備限制" @@ -11504,23 +12058,26 @@ msgid "" "If enabled, the machine limits will be emitted to G-code file.\n" "This option will be ignored if the g-code flavor is set to Klipper." msgstr "" +"啟用後,設備的限制參數將被寫入 G-code 文件中。若 G-code 格式為 Klipper,該選" +"項將無效。" msgid "" "This G-code will be used as a code for the pause print. User can insert " "pause G-code in gcode viewer" -msgstr "該 G-code 用於暫停列印。你可以在 gcode 預覽中插入暫停 G-code" +msgstr "" +"這段 G-code 用於暫停列印操作。使用者可以在 G-code 預覽中手動插入暫停指令" msgid "This G-code will be used as a custom code" -msgstr "該 G-code 是訂製化指令" +msgstr "這段 G-code 是訂製化指令" msgid "Small area flow compensation (beta)" -msgstr "" +msgstr "小面積流量補償(Beta)" msgid "Enable flow compensation for small infill areas" -msgstr "" +msgstr "啟用小面積填充區域的流量補償功能" msgid "Flow Compensation Model" -msgstr "" +msgstr "流量補償模型" msgid "" "Flow Compensation Model, used to adjust the flow for small infill areas. The " @@ -11528,78 +12085,82 @@ msgid "" "and flow correction factors, one per line, in the following format: " "\"1.234,5.678\"" msgstr "" +"流量補償模型,用於在小面積填充區域中調整擠出流量。模型格式為以逗號分隔的擠出" +"長度和流量補償係數,每行輸入一組,格式示例如下:1.234,5.678。\n" +"譯者補充:此參數允許根據不同的擠出長度動態調整流量補償,以提升小區域列印的精" +"確度和品質。" msgid "Maximum speed X" -msgstr "X最大速度" +msgstr "X 最大速度" msgid "Maximum speed Y" -msgstr "Y最大速度" +msgstr "Y 最大速度" msgid "Maximum speed Z" -msgstr "Z最大速度" +msgstr "Z 最大速度" msgid "Maximum speed E" -msgstr "E最大速度" +msgstr "E 最大速度" msgid "Maximum X speed" -msgstr "X最大速度" +msgstr "X 最大速度" msgid "Maximum Y speed" -msgstr "Y最大速度" +msgstr "Y 最大速度" msgid "Maximum Z speed" -msgstr "Z最大速度" +msgstr "Z 最大速度" msgid "Maximum E speed" -msgstr "E最大速度" +msgstr "E 最大速度" msgid "Maximum acceleration X" -msgstr "X最大加速度" +msgstr "X 最大加速度" msgid "Maximum acceleration Y" -msgstr "Y最大加速度" +msgstr "Y 最大加速度" msgid "Maximum acceleration Z" -msgstr "Z最大加速度" +msgstr "Z 最大加速度" msgid "Maximum acceleration E" -msgstr "E最大加速度" +msgstr "E 最大加速度" msgid "Maximum acceleration of the X axis" -msgstr "X軸的最大加速度" +msgstr "X 軸的最大加速度" msgid "Maximum acceleration of the Y axis" -msgstr "Y軸的最大加速度" +msgstr "Y 軸的最大加速度" msgid "Maximum acceleration of the Z axis" -msgstr "Z軸的最大加速度" +msgstr "Z 軸的最大加速度" msgid "Maximum acceleration of the E axis" -msgstr "E軸的最大加速度" +msgstr "E 軸的最大加速度" msgid "Maximum jerk X" -msgstr "X最大抖動" +msgstr "X 最大抖動" msgid "Maximum jerk Y" -msgstr "Y最大抖動" +msgstr "Y 最大抖動" msgid "Maximum jerk Z" -msgstr "Z最大抖動" +msgstr "Z 最大抖動" msgid "Maximum jerk E" -msgstr "E最大抖動" +msgstr "E 最大抖動" msgid "Maximum jerk of the X axis" -msgstr "X軸最大抖動" +msgstr "X 軸最大抖動" msgid "Maximum jerk of the Y axis" -msgstr "Y軸最大抖動" +msgstr "Y 軸最大抖動" msgid "Maximum jerk of the Z axis" -msgstr "Z軸最大抖動" +msgstr "Z 軸最大抖動" msgid "Maximum jerk of the E axis" -msgstr "E軸最大抖動" +msgstr "E 軸最大抖動" msgid "Minimum speed for extruding" msgstr "最小擠出速度" @@ -11643,7 +12204,7 @@ msgstr "最大" msgid "" "The largest printable layer height for extruder. Used tp limits the maximum " "layer hight when enable adaptive layer height" -msgstr "擠出頭最大可列印的層高。用於限制開啟自適應層高時的最大層高。" +msgstr "擠出頭最大可列印的層高。用於限制開啟自適應層高時的最大層高" msgid "Extrusion rate smoothing" msgstr "平滑擠出率" @@ -11676,6 +12237,8 @@ msgid "" "\n" "Note: this parameter disables arc fitting." msgstr "" +"這個參數可以讓列印設備在高流量(例如高速度或較大線寬)和低流量(例如低速度或" +"較小線寬)的切換能能夠平穩過渡,避免擠出量改變得太突然而影響列印效果。" msgid "mm³/s²" msgstr "mm³/s²" @@ -11691,8 +12254,25 @@ msgid "" "Default value of 3 works well for most cases. If your printer is stuttering, " "increase this value to reduce the number of adjustments made\n" "\n" -"Allowed values: 1-5" +"Allowed values: 0.5-5" msgstr "" +"較低的設定值能讓擠出速率變化更平滑,但會導致 G-code 檔案變大,並增加印表機的運算負擔。\n" +"\n" +"預設值為 3,適用於大多數情況。如果您的印表機在列印時出現停頓或卡頓,請提高此數值,以減少擠出速率的頻繁調整。\n" +"\n" +"可設定範圍:0.5-5" + +msgid "Apply only on external features" +msgstr "僅套用於外部結構" + +msgid "" +"Applies extrusion rate smoothing only on external perimeters and overhangs. " +"This can help reduce artefacts due to sharp speed transitions on externally " +"visible overhangs without impacting the print speed of features that will " +"not be visible to the user." +msgstr "" +"僅在外部輪廓與懸垂部分應用擠出速率平滑處理。" +"這可減少外部可見區域因速度變化過快而產生的瑕疵,而不影響內部結構的列印速度。" msgid "Minimum speed for part cooling fan" msgstr "物件冷卻風扇的最小轉速" @@ -11714,16 +12294,18 @@ msgstr "最小" msgid "" "The lowest printable layer height for extruder. Used tp limits the minimum " "layer hight when enable adaptive layer height" -msgstr "擠出頭最小可列印的層高。用於限制開啟自適應層高時的最小層高。" +msgstr "擠出頭最小可列印的層高。用於限制開啟自適應層高時的最小層高" msgid "Min print speed" msgstr "最小列印速度" msgid "" -"The minimum printing speed that the printer will slow down to to attempt to " -"maintain the minimum layer time above, when slow down for better layer " -"cooling is enabled." +"The minimum print speed to which the printer slows down to maintain the " +"minimum layer time defined above when the slowdown for better layer cooling " +"is enabled." msgstr "" +"當啟用了為改善層冷卻而減速的功能時,這個參數設定列印設備能減速到的最低打印速" +"度,以確保達到上面設定的最短層時間。" msgid "Diameter of nozzle" msgstr "噴嘴直徑" @@ -11748,7 +12330,7 @@ msgid "Nozzle volume" msgstr "噴嘴內腔體積" msgid "Volume of nozzle between the cutter and the end of nozzle" -msgstr "從切刀位置到噴嘴尖端的內腔體積" +msgstr "噴嘴內從刀具到末端之間的體積" msgid "Cooling tube position" msgstr "喉管位置" @@ -11814,13 +12396,13 @@ msgstr "" msgid "" "This option will drop the temperature of the inactive extruders to prevent " "oozing." -msgstr "" +msgstr "這個選項會降低未使用噴頭的溫度,以防止材料滲出。" msgid "Filename format" msgstr "檔案名稱格式" msgid "User can self-define the project file name when export" -msgstr "使用者可以自訂匯出項目檔案的名稱。" +msgstr "使用者可以自訂匯出項目檔案的名稱" msgid "Make overhangs printable" msgstr "修改懸空成可列印" @@ -11836,8 +12418,8 @@ msgid "" "printable.90° will not change the model at all and allow any overhang, while " "0 will replace all overhangs with conical material." msgstr "" -"開啟使懸空可列印後,允許的懸空最大角度。90° 將完全不改變模型並允許任何懸空," -"而0° 將用圓錐形材料替換所有懸空部分。" +"開啟使懸空可列印後,允許的懸空最大角度。 90° 將完全不改變模型並允許任何懸空," +"而 0° 將用圓錐形材料替換所有懸空部分。" msgid "Make overhangs printable - Hole area" msgstr "最大孔洞面積" @@ -11853,7 +12435,7 @@ msgid "mm²" msgstr "mm²" msgid "Detect overhang wall" -msgstr "識別懸空外牆" +msgstr "檢測懸空外牆" #, c-format, boost-format msgid "" @@ -11864,7 +12446,7 @@ msgstr "" "度。" msgid "Filament to print walls" -msgstr "" +msgstr "用於列印牆體的線材" msgid "" "Line width of inner wall. If expressed as a %, it will be computed over the " @@ -11890,6 +12472,13 @@ msgid "" "Using lightning infill together with this option is not recommended as there " "is limited infill to anchor the extra perimeters to." msgstr "" +"此設定在每隔一層添加一個額外的牆壁。這樣填充會垂直嵌入牆壁之間,從而增強列印" +"的強度。\n" +"\n" +"啟用此選項時,需要禁用『確保垂直外殼厚度』選項。\n" +"\n" +"不建議將此選項與『閃電填充』一起使用,因為填充有限,無法為額外的外牆提供穩固" +"的支撐。" msgid "" "If you want to process the output G-code through custom scripts, just list " @@ -11898,24 +12487,24 @@ msgid "" "argument, and they can access the Orca Slicer config settings by reading " "environment variables." msgstr "" -"如果你想透過自訂腳本處理輸出的 G-code,只需在此處列出它們的絕對路徑即可。 用" -"分號分隔多個腳本。 腳本將傳遞 G-code 檔案的絕對路徑作為第一個參數,並且它們可" -"以透過讀取環境變數來讀取 Orca Slicer 設定。" +"如果你想透過自訂腳本處理輸出的 G-code,只需在此處列出它們的絕對路徑即可。用分" +"號分隔多個腳本。腳本將傳遞 G-code 檔案的絕對路徑作為第一個參數,並且它們可以" +"透過讀取環境變數來讀取 Orca Slicer 設定。" msgid "Printer type" -msgstr "" +msgstr "列印設備類型" msgid "Type of the printer" -msgstr "" +msgstr "列印設備類型" msgid "Printer notes" msgstr "列印設備備註" msgid "You can put your notes regarding the printer here." -msgstr "可以將列印設備的備註填寫在此處" +msgstr "可以將列印設備的備註填寫在此處。" msgid "Printer variant" -msgstr "" +msgstr "列印機型號" msgid "Raft contact Z distance" msgstr "筏層Z間距" @@ -11939,7 +12528,7 @@ msgid "Initial layer expansion" msgstr "首層擴展" msgid "Expand the first raft or support layer to improve bed plate adhesion" -msgstr "擴展筏和支撐的首層可以改善和熱床的黏附。" +msgstr "擴展筏和支撐的首層可以改善和熱床的黏附" msgid "Raft layers" msgstr "筏層" @@ -11948,7 +12537,7 @@ msgid "" "Object will be raised by this number of support layers. Use this function to " "avoid wrapping when print ABS" msgstr "" -"模型會在相應層數的支撐上抬高進行列印。使用該功能通常用於列印 ABS 時翹曲。" +"模型會在相應層數的支撐上抬高進行列印。使用該功能通常用於列印 ABS 時翹曲" msgid "" "G-code path is generated after simplifying the contour of model to avoid too " @@ -11956,7 +12545,7 @@ msgid "" "resolution and more time to slice" msgstr "" "為了避免 G-code 檔案中過密集的點和走線,G-code走線通常是在簡化模型的外輪廓之" -"後產生。越小的數值代表更高的解析度,同時需要更長的切片時間。" +"後產生。越小的數值代表更高的解析度,同時需要更長的切片時間" msgid "Travel distance threshold" msgstr "空駛距離臨界值" @@ -11964,28 +12553,30 @@ msgstr "空駛距離臨界值" msgid "" "Only trigger retraction when the travel distance is longer than this " "threshold" -msgstr "只在空駛距離大於該數值時觸發回抽。" +msgstr "只在空駛距離大於該數值時觸發回抽" msgid "Retract amount before wipe" msgstr "擦拭前的回抽量" msgid "" "The length of fast retraction before wipe, relative to retraction length" -msgstr "擦拭之前的回抽長度,用總回抽長度的百分比表示。" +msgstr "擦拭之前的回抽長度,用總回抽長度的百分比表示" msgid "Retract when change layer" msgstr "換層時回抽" msgid "Force a retraction when changes layer" -msgstr "強制在換層時回抽。" +msgstr "強制在換層時回抽" msgid "Retract on top layer" -msgstr "" +msgstr "頂層回抽" msgid "" "Force a retraction on top layer. Disabling could prevent clog on very slow " "patterns with small movements, like Hilbert curve" msgstr "" +"在頂層強制執行回抽操作。禁用此功能可能有助於避免在非常緩慢且移動距離較小的模" +"式(例如希爾伯特曲線)中出現堵塞" msgid "Retraction Length" msgstr "回抽長度" @@ -11994,11 +12585,10 @@ msgid "" "Some amount of material in extruder is pulled back to avoid ooze during long " "travel. Set zero to disable retraction" msgstr "" -"擠出機將材料拉回指定長度,避免空駛較長時軟化的線材滲出。設定為 0 表示關閉回" -"抽。" +"擠出機將材料拉回指定長度,避免空駛較長時軟化的線材滲出。設定為 0 表示關閉回抽" msgid "Long retraction when cut(experimental)" -msgstr "" +msgstr "切斷時的長回抽(實驗性功能)" msgid "" "Experimental feature.Retracting and cutting off the filament at a longer " @@ -12006,17 +12596,19 @@ msgid "" "significantly, it may also raise the risk of nozzle clogs or other printing " "problems." msgstr "" +"實驗性功能。在線材切換時,通過更長距離的回抽和切斷操作來減少沖洗量。雖然這能" +"大幅降低沖洗需求,但可能會提高噴嘴堵塞或其他列印問題的風險。" msgid "Retraction distance when cut" -msgstr "" +msgstr "切斷時的回抽距離" msgid "" "Experimental feature.Retraction length before cutting off during filament " "change" -msgstr "" +msgstr "實驗性功能。線材切換時切斷前的回抽距離" msgid "Z-hop height" -msgstr "" +msgstr "Z 抬升高度" msgid "" "Whenever the retraction is done, the nozzle is lifted a little to create " @@ -12024,29 +12616,32 @@ msgid "" "print when travel move. Using spiral line to lift z can prevent stringing" msgstr "" "回抽完成之後,噴嘴輕微抬升,和列印物件之間產生一定間隙。這能夠避免空駛時噴嘴" -"和列印物件剮蹭和碰撞。使用螺旋線抬升z能夠減少拉絲。" +"和列印物件剮蹭和碰撞。使用螺旋線抬升z能夠減少拉絲" msgid "Z hop lower boundary" -msgstr "" +msgstr "Z 抬升下邊界" msgid "" "Z hop will only come into effect when Z is above this value and is below the " "parameter: \"Z hop upper boundary\"" msgstr "" +"只有當 Z 值高於此設定值且低於『Z 抬升上邊界』參數時,Z 抬升功能才會啟用。" msgid "Z hop upper boundary" -msgstr "" +msgstr "Z 抬升上邊界" msgid "" "If this value is positive, Z hop will only come into effect when Z is above " "the parameter: \"Z hop lower boundary\" and is below this value" msgstr "" +"若此值為正,Z 抬升功能僅在 Z 值高於『Z 抬升下邊界』參數且低於此設定值時才會啟" +"用" msgid "Z-hop type" -msgstr "" +msgstr "Z 抬升類型" msgid "Z hop type" -msgstr "抬Z類型" +msgstr "Z 抬升類型" msgid "Slope" msgstr "梯形" @@ -12055,46 +12650,46 @@ msgid "Spiral" msgstr "螺旋" msgid "Traveling angle" -msgstr "" +msgstr "移動角度" msgid "" "Traveling angle for Slope and Spiral Z hop type. Setting it to 90° results " "in Normal Lift" -msgstr "" +msgstr "適用於坡度和螺旋 Z 抬升類型的移動角度。將其設為 90° 可執行正常抬升" msgid "Only lift Z above" -msgstr "僅在高度以上抬Z" +msgstr "僅在高度以上抬 Z" msgid "" "If you set this to a positive value, Z lift will only take place above the " "specified absolute Z." -msgstr "如果設定為正值,則 Z 抬升僅在指定的絕對 Z 之上發生" +msgstr "若將此值設定為正數,Z 抬升僅會在超過指定的絕對 Z 值時啟用。" msgid "Only lift Z below" -msgstr "僅在高度以下抬Z" +msgstr "僅在 Z 值低於指定值時抬升" msgid "" "If you set this to a positive value, Z lift will only take place below the " "specified absolute Z." -msgstr "如果設定為正值,則 Z 抬升僅在指定的絕對 Z 以下發生。" +msgstr "若將此值設定為正數,Z 抬升僅會在低於指定的絕對 Z 值時啟用。" msgid "On surfaces" -msgstr "僅表面抬Z" +msgstr "僅在表面" msgid "" "Enforce Z Hop behavior. This setting is impacted by the above settings (Only " "lift Z above/below)." msgstr "" -"強制 Z 抬升行為。此設定受上述設定的影響(僅在高度以下抬Z/僅在高度以上抬Z)。" +"強制啟用 Z 抬升行為。此功能受前述設定(僅在 Z 值高於/低於時啟用)的影響。" msgid "All Surfaces" msgstr "所有表面" msgid "Top Only" -msgstr "僅頂面" +msgstr "僅在頂面" msgid "Bottom Only" -msgstr "僅底面" +msgstr "僅在底面" msgid "Top and Bottom" msgstr "頂面和地面" @@ -12124,7 +12719,7 @@ msgstr "裝填速度" msgid "" "Speed for reloading filament into extruder. Zero means same speed with " "retraction" -msgstr "線材裝填的速度,0 表示和回抽速度一致。" +msgstr "線材裝填的速度,0 表示和回抽速度一致" msgid "Use firmware retraction" msgstr "使用韌體回抽" @@ -12133,18 +12728,18 @@ msgid "" "This experimental setting uses G10 and G11 commands to have the firmware " "handle the retraction. This is only supported in recent Marlin." msgstr "" -"(實驗設定)使用 G10 和 G11 命令讓韌體處理回抽。該功能僅支持最近版本的 " -"Marlin 固件。" +"此實驗性功能使用 G10 和 G11 指令,由韌體負責執行回抽操作。僅支援於最新版本的 " +"Marlin 韌體。" msgid "Show auto-calibration marks" msgstr "顯示雷達校準線" msgid "Disable set remaining print time" -msgstr "" +msgstr "停用剩餘列印時間設定" msgid "" "Disable generating of the M73: Set remaining print time in the final gcode" -msgstr "" +msgstr "停用在最終 G-code 中生成 M73 指令以設定剩餘列印時間" msgid "Seam position" msgstr "接縫位置" @@ -12181,23 +12776,25 @@ msgid "" "This amount can be specified in millimeters or as a percentage of the " "current extruder diameter. The default value for this parameter is 10%." msgstr "" +"為了降低閉環擠出中接縫的可見度,閉環會中斷並縮短指定的長度。\n" +"此長度可設定為毫米或擠出機直徑的百分比,默認值為 10%。" msgid "Scarf joint seam (beta)" -msgstr "" +msgstr "斜拼接縫(Beta)" msgid "Use scarf joint to minimize seam visibility and increase seam strength." -msgstr "" +msgstr "採用斜拼接縫來減少接縫的可見度並提高接縫的強度。" msgid "Conditional scarf joint" -msgstr "" +msgstr "斜拼接縫條件" msgid "" "Apply scarf joints only to smooth perimeters where traditional seams do not " "conceal the seams at sharp corners effectively." -msgstr "" +msgstr "僅在平滑外牆使用斜拼接縫,用於傳統接縫無法在尖角處有效隱藏接縫的情況。" msgid "Conditional angle threshold" -msgstr "" +msgstr "角度閾值條件" msgid "" "This option sets the threshold angle for applying a conditional scarf joint " @@ -12206,9 +12803,11 @@ msgid "" "(indicating the absence of sharp corners), a scarf joint seam will be used. " "The default value is 155°." msgstr "" +"此選項設定斜拼接縫的角度閾值條件。當外牆迴圈內的最大角度超過該設定值(表示不" +"存在尖角)時,將應用斜接縫接縫。預設值為 155°。" msgid "Conditional overhang threshold" -msgstr "" +msgstr "懸空閾值條件" #, no-c-format, no-boost-format msgid "" @@ -12218,9 +12817,11 @@ msgid "" "at 40% of the external wall's width. Due to performance considerations, the " "degree of overhang is estimated." msgstr "" +"此選項用於設定斜拼接縫的懸空閾值。當外牆未支撐的部分小於該閾值時,將應用斜拼" +"接縫。預設閾值為外層牆寬度的 40%。為了考慮性能,此懸空程度為估算值。" msgid "Scarf joint speed" -msgstr "" +msgstr "斜拼接縫速度" msgid "" "This option sets the printing speed for scarf joints. It is recommended to " @@ -12232,47 +12833,52 @@ msgid "" "percentage (e.g., 80%), the speed is calculated based on the respective " "outer or inner wall speed. The default value is set to 100%." msgstr "" +"此選項用於設定斜拼接縫的列印速度,建議以較慢的速度進行列印(小於 100 mm/s)。" +"若設定的速度與外牆或內牆速度差異較大,建議啟用『平滑擠出率』功能。若此處設定" +"的速度高於外牆或內牆速度,列印設備將自動選擇兩者中較慢的速度。當以百分比(如 " +"80%)指定時,該速度將基於外牆或內牆速度進行計算。預設值為 100%。" msgid "Scarf joint flow ratio" -msgstr "" +msgstr "斜拼接縫流量比" msgid "This factor affects the amount of material for scarf joints." -msgstr "" +msgstr "此參數會影響斜拼接縫的擠出流量。" msgid "Scarf start height" -msgstr "" +msgstr "斜拼接縫起始高度" msgid "" "Start height of the scarf.\n" "This amount can be specified in millimeters or as a percentage of the " "current layer height. The default value for this parameter is 0." msgstr "" +"設定斜拼接縫的起始高度。該值可用毫米或當前層高度的百分比表示,默認值為 0。" msgid "Scarf around entire wall" -msgstr "" +msgstr "環繞整個牆體的斜拼接縫" msgid "The scarf extends to the entire length of the wall." -msgstr "" +msgstr "斜拼接縫覆蓋牆體的整個長度。" msgid "Scarf length" -msgstr "" +msgstr "斜拼接縫長度" msgid "" "Length of the scarf. Setting this parameter to zero effectively disables the " "scarf." -msgstr "" +msgstr "斜拼接縫的長度。若將此參數設為 0,將禁用斜接功能。" msgid "Scarf steps" -msgstr "" +msgstr "斜拼接縫段數" msgid "Minimum number of segments of each scarf." -msgstr "" +msgstr "每個斜拼接縫的最小分段數量。" msgid "Scarf joint for inner walls" -msgstr "" +msgstr "內牆的斜接縫" msgid "Use scarf joint for inner walls as well." -msgstr "" +msgstr "內牆同樣使用斜接縫。" msgid "Role base wipe speed" msgstr "自動擦拭速度" @@ -12282,6 +12888,8 @@ msgid "" "if a wipe action is executed immediately following an outer wall extrusion, " "the speed of the outer wall extrusion will be utilized for the wipe action." msgstr "" +"拭的速度由當前擠出任務的速度決定。例如,若擦拭操作緊接著外牆的擠出執行,則將" +"使用外牆擠出的速度進行擦拭。" msgid "Wipe on loops" msgstr "閉環擦拭" @@ -12290,11 +12898,10 @@ msgid "" "To minimize the visibility of the seam in a closed loop extrusion, a small " "inward movement is executed before the extruder leaves the loop." msgstr "" -"為了最大限度地減少閉環擠出中接縫的可見性,在擠出機離開環之前,會向內執行一個" -"小小的移動。" +"為了降低閉環擠出中接縫的可見性,在擠出機退出閉環前會進行一次微小的內縮移動。" msgid "Wipe before external loop" -msgstr "" +msgstr "外牆迴圈前的擦拭動作" msgid "" "To minimize visibility of potential overextrusion at the start of an " @@ -12307,6 +12914,10 @@ msgid "" "print order as in these modes it is more likely an external perimeter is " "printed immediately after a de-retraction move." msgstr "" +"為了減少在使用『外牆/內牆』或『內牆/外牆/內牆』牆體列印順序時,外牆開始位置可" +"能出現的過擠出痕跡,回抽復位動作會稍微偏向外牆起始位置的內側執行。這樣可將可" +"能的過擠出隱藏於外牆內部。此功能對於『外牆/內牆』或『內牆/外牆/內牆』牆體列印" +"順序非常有用,因為在這些模式下,外牆往往緊接著回抽復位動作開始列印。" msgid "Wipe speed" msgstr "擦拭速度" @@ -12317,28 +12928,29 @@ msgid "" "be calculated based on the travel speed setting above.The default value for " "this parameter is 80%" msgstr "" -"擦拭速度是根據此配置中指定的速度設定。如果該值以百分比形式表示(例如 80%)," -"則將根據空駛速度設定進行計算。該參數的預設值為 80%。" +"擦拭速度取決於此配置中設定的速度值。若以百分比表示(例如 80%),則會根據上述" +"的移動速度設定進行計算。該參數的預設值為 80%" msgid "Skirt distance" -msgstr "Skirt距離" +msgstr "Skirt 距離" msgid "Distance from skirt to brim or object" -msgstr "從 skirt 到模型或者 brim(裙邊)的距離" +msgstr "從 Skirt 到模型或者 Brim 的距離" msgid "Skirt start point" -msgstr "" +msgstr "Skirt 起始位置" msgid "" "Angle from the object center to skirt start point. Zero is the most right " "position, counter clockwise is positive angle." msgstr "" +"物件中心至 Skirt 起始點的角度。0 度表示最右側位置,逆時針方向為正角度。" msgid "Skirt height" msgstr "Skirt 高度" msgid "How many layers of skirt. Usually only one layer" -msgstr "skirt 有多少層。通常只有一層" +msgstr "Skirt 有多少層。通常只有一層" msgid "Draft shield" msgstr "防風罩" @@ -12354,32 +12966,37 @@ msgid "" "distance from the object. Therefore, if brims are active it may intersect " "with them. To avoid this, increase the skirt distance value.\n" msgstr "" - -msgid "Disabled" -msgstr "停用" +"擋防風罩可有效保護 ABS 或 ASA 列印物免受氣流影響,避免翹曲或脫離打印床。通常" +"僅在開放式框架的打印機(即無外殼)中需要使用。\n" +"\n" +"啟用後,Skirt 的高度將與列印物的最高點相同。若未啟用,則使用『Skirt 高度』的" +"設定值。\n" +"注意:啟用擋風護盾時,Skirt 會按照設定的 Skirt 距離列印於物體周圍。如果同時啟" +"用了耳狀 Brim,Skirt 可能會與其重疊。為避免此問題,請增加 Skirt 距離的設定" +"值。\n" msgid "Enabled" msgstr "啟用" msgid "Skirt type" -msgstr "" +msgstr "Skirt 類型" msgid "" "Combined - single skirt for all objects, Per object - individual object " "skirt." -msgstr "" +msgstr "合併 - 所有物件共用一個 Skirt;逐件 - 每個物件使用獨立的 Skirt」" msgid "Combined" -msgstr "" +msgstr "合併" msgid "Per object" -msgstr "" +msgstr "逐件" msgid "Skirt loops" msgstr "Skirt 圈數" msgid "Number of loops for the skirt. Zero means disabling skirt" -msgstr "skirt 的圈數。0 表示關閉 skirt。" +msgstr "Skirt 的圈數。0 表示關閉 Skirt" msgid "Skirt speed" msgstr "Skirt 速度" @@ -12388,7 +13005,7 @@ msgid "Speed of skirt, in mm/s. Zero means use default layer extrusion speed." msgstr "Skirt 速度,單位為 mm/秒。 0 表示使用預設層擠出速度。" msgid "Skirt minimum extrusion length" -msgstr "" +msgstr "Skirt 最小擠出長度" msgid "" "Minimum filament extrusion length in mm when printing the skirt. Zero means " @@ -12399,12 +13016,16 @@ msgid "" "Final number of loops is not taling into account whli arranging or " "validating objects distance. Increase loop number in such case. " msgstr "" +"列印 Skirt 時的最小擠出線材長度(單位:毫米)。設為 0 表示停用此功能。若列印" +"設備設定為不使用沖洗線材,建議設定為非零值。注意,排列或驗證物件距離時,最終" +"迴圈數不會被計算進去。如需更多迴圈,請手動增加迴圈數設定。" msgid "" "The printing speed in exported gcode will be slowed down, when the estimated " "layer time is shorter than this value, to get better cooling for these layers" msgstr "" -"當層預估列印時間小於這個數值時,列印速度將會降低,從而獲得更好的冷卻效果。" +"當預估的層列印時間低於該設定值時,導出的 G-code 中的列印速度會自動減慢,以提" +"升該層的冷卻效果" msgid "Minimum sparse infill threshold" msgstr "稀疏填充最小臨界值" @@ -12412,45 +13033,49 @@ msgstr "稀疏填充最小臨界值" msgid "" "Sparse infill area which is smaller than threshold value is replaced by " "internal solid infill" -msgstr "小於這個臨界值的稀疏填充區域將會被內部實心填充替代。" +msgstr "小於設定閾值的稀疏填充區域將替換為內部實心填充" msgid "Solid infill" -msgstr "" +msgstr "實心填充" msgid "Filament to print solid infill" -msgstr "" +msgstr "列印實心填充所使用的線材" msgid "" "Line width of internal solid infill. If expressed as a %, it will be " "computed over the nozzle diameter." -msgstr "內部實心填充的線寬。如果以%表示,它將以噴嘴直徑為基準來計算。" +msgstr "內部實心填充的列印線寬。若以百分比表示,將根據噴嘴直徑進行計算。" msgid "Speed of internal solid infill, not the top and bottom surface" -msgstr "內部實心填充的速度,不是頂面和底面。" +msgstr "內部實心填充的列印速度,不適用於頂面和底面" msgid "" "Spiralize smooths out the z moves of the outer contour. And turns a solid " "model into a single walled print with solid bottom layers. The final " "generated model has no seam" msgstr "" -"沿著物件的外輪廓螺旋上升,將實體模型轉變為只有底面實心層和側面單層牆壁的列" -"印。最後產生的列印物件沒有接縫。" +"平滑螺旋功能可平滑外輪廓的 Z 軸運動,並將實心模型轉換為具有實心底層的單壁列" +"印。生成的最終模型不會有接縫" msgid "Smooth Spiral" -msgstr "" +msgstr "平滑螺旋" msgid "" "Smooth Spiral smooths out X and Y moves as well, resulting in no visible " "seam at all, even in the XY directions on walls that are not vertical" msgstr "" +"平滑螺旋功能同時平滑 X 和 Y 軸的移動,確保即使在非垂直牆面上,X 和 Y 方向也不" +"會出現可見的接縫" msgid "Max XY Smoothing" -msgstr "" +msgstr "XY 軸最大平滑度" msgid "" "Maximum distance to move points in XY to try to achieve a smooth spiralIf " "expressed as a %, it will be computed over nozzle diameter" msgstr "" +"在 XY 平面中為實現平滑螺旋所允許移動點的最大距離。若以百分比表示,將根據噴嘴" +"直徑計算" msgid "" "If smooth or traditional mode is selected, a timelapse video will be " @@ -12462,10 +13087,10 @@ msgid "" "process of taking a snapshot, prime tower is required for smooth mode to " "wipe nozzle." msgstr "" -"如果啟用平滑模式或者傳統模式,將在每次列印時產生縮時錄影影片。列印完每層後," -"將用內建相機拍攝快照。列印完成後,所有這些快照會組合成一個延時影片。如果啟用" -"平滑模式,列印完每層後,工具頭將移動到吐料槽,然後拍攝快照。由於平滑模式在拍" -"攝快照的過程中熔融的線材可能會從噴嘴中洩漏,因此需要使用換料塔進行噴嘴擦拭。" +"選擇平滑模式或傳統模式時,列印過程將生成縮時影片。每打印一層,相機會拍攝一張" +"照片。列印完成後,這些照片會被合成為縮時影片。如果選擇了平滑模式,擠出機會在" +"每層列印完成後移動到廢料槽拍攝一張照片。由於在拍攝過程中熔融的線材可能會從噴" +"嘴洩漏,平滑模式需要使用換料塔來清潔噴嘴。" msgid "Traditional" msgstr "傳統模式" @@ -12479,9 +13104,11 @@ msgid "" "value is not used when 'idle_temperature' in filament settings is set to non " "zero value." msgstr "" +"設定擠出機閒置時的溫差。若線材設定中的『idle_temperature』設為非零值,該參數" +"將不生效。" msgid "Preheat time" -msgstr "" +msgstr "預熱時間" msgid "" "To reduce the waiting time after tool change, Orca can preheat the next tool " @@ -12489,14 +13116,19 @@ msgid "" "seconds to preheat the next tool. Orca will insert a M104 command to preheat " "the tool in advance." msgstr "" +"為了縮短工具更換後的等待時間,Orca 可在當前工具使用期間提前預熱下一個工具。此" +"設定用於指定預熱下一個工具的時間(單位:秒)。Orca 將自動插入 M104 指令以提前" +"進行工具預熱。" msgid "Preheat steps" -msgstr "" +msgstr "預熱階段" msgid "" "Insert multiple preheat commands(e.g. M104.1). Only useful for Prusa XL. For " "other printers, please set it to 1." msgstr "" +"插入多條預熱指令(例如:M104.1)。此功能僅適用於 Prusa XL。其他列印設備請將其" +"設為 1。" msgid "Start G-code" msgstr "起始 G-code" @@ -12523,6 +13155,9 @@ msgid "" "printing, where we use M600/PAUSE to trigger the manual filament change " "action." msgstr "" +"啟用此選項後,自定義的換線 G-code 將僅在打印開始時被省略,整個打印過程中會跳" +"過工具更換指令(例如:T0)。此功能適用於手動多材料列印,允許使用 M600/PAUSE " +"指令來觸發手動換線操作。" msgid "Purge in prime tower" msgstr "沖刷進換料塔" @@ -12534,7 +13169,7 @@ msgid "Enable filament ramming" msgstr "啟用線材尖端成型" msgid "No sparse layers (beta)" -msgstr "" +msgstr "取消稀疏層(Beta)" msgid "" "If enabled, the wipe tower will not be printed on layers with no " @@ -12542,8 +13177,8 @@ msgid "" "print the wipe tower. User is responsible for ensuring there is no collision " "with the print." msgstr "" -"如果啟用,將不會在沒有換色的層列印換料塔。存在換色的層時,擠出機將降低高度打" -"印換料塔。使用者應該確保不會與列印物件發生衝突。" +"啟用此選項後,換料塔將不會在沒有工具更換的層中列印。在有工具更換的層中,擠出" +"機將向下移動以列印換料塔。請用戶自行確保清洗塔與列印物之間不會發生碰撞。" msgid "Prime all printing extruders" msgstr "所有擠出機畫線" @@ -12551,7 +13186,7 @@ msgstr "所有擠出機畫線" msgid "" "If enabled, all printing extruders will be primed at the front edge of the " "print bed at the start of the print." -msgstr "如果啟用,所有擠出機將在列印開始時在列印板前方畫線" +msgstr "如果啟用,所有擠出機將在列印開始時在列印板前方畫線。" msgid "Slice gap closing radius" msgstr "切片間隙閉合半徑" @@ -12561,8 +13196,8 @@ msgid "" "triangle mesh slicing. The gap closing operation may reduce the final print " "resolution, therefore it is advisable to keep the value reasonably low." msgstr "" -"在三角形網格切片過程中,小於2倍間隙閉合半徑的裂紋將被填充。間隙閉合操作可能會" -"降低最終列印解析度,因此建議降值保持在合理的較低水準" +"在三角網格切片過程中,寬度小於 2 倍間隙閉合半徑的裂縫將被填補。由於間隙閉合操" +"作可能降低列印的最終解析度,因此建議將該值設置為較低的合理範圍。" msgid "Slicing Mode" msgstr "切片模式" @@ -12571,7 +13206,8 @@ msgid "" "Use \"Even-odd\" for 3DLabPrint airplane models. Use \"Close holes\" to " "close all holes in the model." msgstr "" -"對 3DLabPrint 的飛機模型使用 \"奇偶\"。使用 \"閉孔 \"來關閉模型上的所有孔。" +"針對 3DLabPrint 飛機模型,請選擇『奇偶』模式。若需閉合模型中的所有孔洞,請啟" +"用『閉合孔洞』選項。" msgid "Regular" msgstr "常規" @@ -12580,10 +13216,10 @@ msgid "Even-odd" msgstr "奇偶" msgid "Close holes" -msgstr "閉孔" +msgstr "閉合孔洞" msgid "Z offset" -msgstr "Z 偏移(Z offset)" +msgstr "Z 偏移" msgid "" "This value will be added (or subtracted) from all the Z coordinates in the " @@ -12591,6 +13227,9 @@ msgid "" "example, if your endstop zero actually leaves the nozzle 0.3mm far from the " "print bed, set this to -0.3 (or fix your endstop)." msgstr "" +"此值將被加至(或減去)輸出 G-code 中的所有 Z 坐標,用於補償不準確的 Z 軸限位" +"開關位置。例如,如果限位開關的歸零導致噴嘴實際距離打印床 0.3 毫米,可將此值設" +"為 -0.3(或者調整限位開關位置)。" msgid "Enable support" msgstr "開啟支撐" @@ -12599,31 +13238,33 @@ msgid "Enable support generation." msgstr "開啟支撐產生。" msgid "" -"normal(auto) and tree(auto)is used to generate support automatically. If " -"normal(manual)or tree(manual)is selected, only support enforcers are " +"Normal (auto) and Tree (auto) is used to generate support automatically. If " +"Normal (manual) or Tree (manual) is selected, only support enforcers are " "generated" msgstr "" +"選擇「普通 (自動)」或「樹狀 (自動)」時,系統將自動產生支撐結構。若選擇「普通 (自動)」或「樹狀 (自動)」," +"則僅會生成手動設定的支撐區域。" -msgid "normal(auto)" -msgstr "普通(自動)" +msgid "Normal (auto)" +msgstr "普通 (自動)" -msgid "tree(auto)" -msgstr "樹狀(自動)" +msgid "Tree (auto)" +msgstr "樹狀 (自動)" -msgid "normal(manual)" -msgstr "普通(手動)" +msgid "Normal (manual)" +msgstr "普通 (自動)" -msgid "tree(manual)" -msgstr "樹狀(手動)" +msgid "Tree (manual)" +msgstr "樹狀 (自動)" msgid "Support/object xy distance" -msgstr "支撐/模型 xy 間距" +msgstr "支撐/模型 XY 間距" msgid "XY separation between an object and its support" -msgstr "模型和支撐之間 XY 分離距離" +msgstr "模型和支撐之間 XY 的間距" msgid "Pattern angle" -msgstr "模式角度" +msgstr "支撐角度" msgid "Use this setting to rotate the support pattern on the horizontal plane." msgstr "設定支撐圖形在水平面的旋轉角度。" @@ -12632,7 +13273,7 @@ msgid "On build plate only" msgstr "僅在列印板產生" msgid "Don't create support on model surface, only on build plate" -msgstr "不在模型表面上產生支撐,只在列印板上產生。" +msgstr "不在模型表面上產生支撐,只在列印板上產生" msgid "Support critical regions only" msgstr "僅支撐關鍵區域" @@ -12640,7 +13281,7 @@ msgstr "僅支撐關鍵區域" msgid "" "Only create support for critical regions including sharp tail, cantilever, " "etc." -msgstr "僅對關鍵區域產生支撐,包括尖尾、懸臂等。" +msgstr "僅針對關鍵區域(如尖銳尾部、懸臂等)生成支撐結構。" msgid "Remove small overhangs" msgstr "移除小懸空" @@ -12666,7 +13307,9 @@ msgstr "支撐/筏層主體" msgid "" "Filament to print support base and raft. \"Default\" means no specific " "filament for support and current filament is used" -msgstr "列印支撐主體和筏層的線材。\"預設\"代表不指定特定的線材,並使用目前線材" +msgstr "" +"用於列印支撐基座和筏層的線材。選擇『預設』時,將使用當前列印的線材,而非特定" +"線材" msgid "Avoid interface filament for base" msgstr "避免介面線材用於底座" @@ -12681,7 +13324,7 @@ msgid "" msgstr "支撐的線寬。如果以 % 表示,它將以噴嘴直徑為基準來計算。" msgid "Interface use loop pattern" -msgstr "接觸面採用圈形走線。" +msgstr "接觸面採用圈形走線" msgid "" "Cover the top contact layer of the supports with loops. Disabled by default." @@ -12693,7 +13336,9 @@ msgstr "支撐/筏層界面" msgid "" "Filament to print support interface. \"Default\" means no specific filament " "for support interface and current filament is used" -msgstr "列印支撐界面的線材。\"預設\"代表不指定特定的線材,並使用目前線材" +msgstr "" +"用於列印支撐介面的線材。選擇『預設』時,將使用當前列印的線材,而非指定的特定" +"線材" msgid "Top interface layers" msgstr "頂部接觸面層數" @@ -12714,13 +13359,13 @@ msgid "Top interface spacing" msgstr "頂部接觸面線距" msgid "Spacing of interface lines. Zero means solid interface" -msgstr "接觸面的線距。0 代表實心接觸面。" +msgstr "接觸面的線距。0 代表實心接觸面" msgid "Bottom interface spacing" msgstr "底部接觸面線距" msgid "Spacing of bottom interface lines. Zero means solid interface" -msgstr "底部接觸面走線的線距。0 表示實心接觸面。" +msgstr "底部接觸面走線的線距。0 表示實心接觸面" msgid "Speed of support interface" msgstr "支撐面速度" @@ -12746,7 +13391,7 @@ msgid "" "interface is Concentric" msgstr "" "支撐接觸面的走線圖案。非可溶支撐接觸面的預設圖案為直線,可溶支撐接觸面的預設" -"圖案為同心。" +"圖案為同心" msgid "Rectilinear Interlaced" msgstr "交疊的直線" @@ -12775,10 +13420,10 @@ msgid "" "style will create similar structure to normal support under large flat " "overhangs." msgstr "" -"支撐的樣式和形狀。 對於普通支撐,將支撐投影到網格中將創建更穩定的支撐(預" -"設),而緊貼的支撐塔將節省材料並減少物體表面的痕跡。\n" -"對於樹狀支撐,細長和有機風格將更積極地合併樹枝並節省大量材料(預設有機),而" -"混合風格將在大平面懸空下建立與正常支撐類似的結構。" +"支撐的樣式與形狀設定。普通支撐使用網格(默認設定)可提供更穩定的支撐,而緊貼" +"型支撐可節省材料並減少對物件表面的損傷。樹狀支撐中,『有機樹』會更積極地融合" +"分支,節省大量材料(默認為有機樹);而『混合樹』則會在較大的平坦懸空區域下生" +"成類似於普通支撐的結構。" msgid "Default (Grid/Organic" msgstr "預設 (格狀/有機" @@ -12806,8 +13451,8 @@ msgid "" "support customizing z-gap and save print time.This option will be invalid " "when the prime tower is enabled." msgstr "" -"支撐層使用與物件層獨立的層高。這是為了支援自訂Z間隙(z-gap)並且節省列印時" -"間。當換料塔被啟用時,這個選項將無效。" +"支撐層的層厚設定可獨立於物件層高度,允許自定義 Z 間隙並縮短列印時間。此選項在" +"啟用換料塔時將失效。" msgid "Threshold angle" msgstr "臨界值角度" @@ -12817,6 +13462,16 @@ msgid "" "threshold." msgstr "將會為懸空角度低於臨界值的模型表面產生支撐。" +msgid "Threshold overlap" +msgstr "閾值疊加比例" + +msgid "" +"If threshold angle is zero, support will be generated for overhangs whose " +"overlap is below the threshold. The smaller this value is, the steeper the " +"overhang that can be printed without support." +msgstr "當閾值角度設為 0 時,系統將為重疊比例低於該閾值的懸垂部分生成支撐。" +"數值越小,代表可以在不使用支撐的情況下列印更陡峭的懸垂結構。" + msgid "Tree support branch angle" msgstr "樹狀支撐分支角度" @@ -12837,8 +13492,8 @@ msgid "" "model. Use a lower angle to make them more vertical and more stable. Use a " "higher angle for branches to merge faster." msgstr "" -"當樹狀分支不必避開模型時的偏好角度。 使用較低的角度使它們更垂直且更穩定。 使" -"用更高的角度使分支合併得更快。" +"當樹狀分支不必避開模型時的偏好角度。使用較低的角度使它們更垂直且更穩定。使用" +"更高的角度使分支合併得更快。" msgid "Tree support branch distance" msgstr "樹狀支撐分支距離" @@ -12858,8 +13513,9 @@ msgid "" "interfaces instead of a high branch density value if dense interfaces are " "needed." msgstr "" -"用於調整產生樹狀支撐結構的密度。 較高的值會產生更好的懸空,但支撐更難移除,因" -"此如果需要密集的支撐,建議啟用頂部支撐而不是高分支密度值。" +"調整支撐結構中分支末端的密度。較高的密度能提供更好的懸空支撐,但也會使支撐更" +"難移除。如果需要密集的支撐層,建議啟用頂部支撐介面,而非單純提高分支密度設" +"定。" msgid "Adaptive layer height" msgstr "自適應層高" @@ -12867,28 +13523,28 @@ msgstr "自適應層高" msgid "" "Enabling this option means the height of tree support layer except the " "first will be automatically calculated " -msgstr "啟用此選項將自動計算(除第一層外)樹狀支撐的層高。" +msgstr "啟用此選項將自動計算(除第一層外)樹狀支撐的層高" msgid "Auto brim width" -msgstr "自動 brim(裙邊)寬度" +msgstr "自動 Brim 寬度" msgid "" "Enabling this option means the width of the brim for tree support will be " "automatically calculated" -msgstr "啟用此選項意味著樹狀支撐的裙邊寬度將自動計算自動計算" +msgstr "啟用此選項意味著樹狀支撐的 Brim 寬度將自動計算自動計算" msgid "Tree support brim width" -msgstr "樹狀支撐brim(裙邊)寬度" +msgstr "樹狀支撐 Brim 寬度" msgid "Distance from tree branch to the outermost brim line" -msgstr "從樹狀支撐分支到最外層brim(裙邊)線的距離" +msgstr "從樹狀支撐分支到最外層 Brim 線的距離" msgid "Tip Diameter" msgstr "末端直徑" #. TRN PrintSettings: "Organic supports" > "Tip Diameter" msgid "Branch tip diameter for organic supports." -msgstr "有機樹狀支撐的分支末端直徑。" +msgstr "有機樹支撐的分支末端直徑。" msgid "Tree support branch diameter" msgstr "樹狀支撐分支直徑" @@ -12907,8 +13563,8 @@ msgid "" "over their length. A bit of an angle can increase stability of the organic " "support." msgstr "" -"樹狀分支直徑隨著向底部逐漸變粗的角度。 0 角度將導致分支在其長度上具有均勻的厚" -"度。 一點角度可以增加有機樹支撐的穩定性。" +"分支直徑隨高度逐漸變粗的角度。若角度設為 0,分支將在整個長度上保持均勻厚度。" +"稍微調整角度可提升有機樹的穩定性。" msgid "Branch Diameter with double walls" msgstr "分支雙層牆直徑" @@ -12919,8 +13575,8 @@ msgid "" "printed with double walls for stability. Set this value to zero for no " "double walls." msgstr "" -"該數值大於以分支直徑得到的圓形面積時,將列印雙層牆以確保穩定性。 如果不使用雙" -"層牆體,請將此值設為 0。" +"當分支的面積大於設定直徑圓形的面積時,將以雙層牆結構列印以增強穩定性。若設為 " +"0,則不啟用雙層牆結構。" msgid "Support wall loops" msgstr "支撐牆數" @@ -12934,7 +13590,7 @@ msgstr "樹狀支撐產生填充" msgid "" "This setting specifies whether to add infill inside large hollows of tree " "support" -msgstr "此設定決定是否為樹狀支撐內部的空間產生填充。" +msgstr "此設定決定是否為樹狀支撐內部的空間產生填充" msgid "Activate temperature control" msgstr "啟動溫度控制" @@ -12951,12 +13607,10 @@ msgid "" "either via macros or natively and is usually used when an active chamber " "heater is installed." msgstr "" -"此選項啟用機箱溫度控制。此選項會在 \"machine_start_gcode\" 之前啟用 M191 命" -"令,設定機箱溫度並等待達到設定溫度。此外,它會在列印結束時發出 M141 命令來關" -"閉機箱加熱器(如果存在)\n" -"。\n" -"此選項依賴於韌體支援 M191 和 M141 命令(通過巨集或原生),通常用於主動機箱加" -"熱器。" +"啟用此選項後,將自動控制機箱溫度。此功能會在執行『machine_start_gcode』之前發" +"送 M191 指令,用於設定機箱溫度並等待達到設定值。此外,在列印結束時會發送 " +"M141 指令以關閉機箱加熱器(若設備有加熱器)。此功能需要韌體原生支援或通過宏指" +"令支援 M191 和 M141 指令,通常用於配備主動機箱加熱器的打印機。" msgid "Chamber temperature" msgstr "機箱溫度" @@ -12980,6 +13634,15 @@ msgid "" "desire to handle heat soaking in the print start macro if no active chamber " "heater is installed." msgstr "" +"對於 ABS、ASA、PC 和 PA 等高溫材料,較高的機箱溫度能有效抑制或減少翹曲,並可" +"能提升層間結合強度。然而,較高的機箱溫度也會降低 ABS 和 ASA 的空氣過濾效率。" +"對於 PLA、PETG、TPU、PVA 和其他低溫材料,建議將此選項禁用(設為 0),因機箱溫" +"度應保持較低,以避免因材料在熱端軟化而導致擠出機堵塞。啟用此選項後,會設置一" +"個名為 chamber_temperature 的 G-code 變數,可用於將所需的機箱溫度傳遞給列印開" +"始宏,或像以下的熱浸泡宏(預熱):PRINT_START (其他變數) " +"CHAMBER_TEMP=[chamber_temperature]。這對於不支援 M141/M191 指令的列印設備,或" +"者希望在列印開始宏中處理熱浸泡(預熱)但未安裝主動機箱加熱器的情況下非常實" +"用。" msgid "Nozzle temperature for layers after the initial one" msgstr "除首層外的其它層的噴嘴溫度" @@ -12992,15 +13655,15 @@ msgid "" "print. Maybe printed not very well, because it's not closed loop" msgstr "" "檢查無法容納兩條走線的薄壁。使用單條走線列印。可能會打地不是很好,因為走線不" -"再閉合。" +"再閉合" msgid "" "This gcode is inserted when change filament, including T command to trigger " "tool change" -msgstr "換料時插入的G-code,包括T命令。" +msgstr "換料時插入的 G-code,包括 T 命令" msgid "This gcode is inserted when the extrusion role is changed" -msgstr "" +msgstr "此 G-code 會在擠出模式切換時插入" msgid "" "Line width for top surfaces. If expressed as a %, it will be computed over " @@ -13034,12 +13697,12 @@ msgid "" "is disabled and thickness of top shell is absolutely determined by top shell " "layers" msgstr "" -"如果由頂部殼體層數算出的厚度小於這個數值,那麼切片時將自動增加頂部殼體層數。" -"這能夠避免當層高很小時,頂部殼體過薄。0 表示關閉這個設定,同時頂部殼體的厚度" -"完全由頂部殼體層數決定" +"當切片時,如果通過頂部殼層計算的厚度小於設定值,將自動增加頂部實心層的數量," +"以避免層高較小時頂部殼層過薄。若設為 0,則禁用此功能,頂部殼層厚度完全由設定" +"的頂部殼層數決定" msgid "Speed of travel which is faster and without extrusion" -msgstr "空駛的速度。空駛是無擠出量的快速移動。" +msgstr "空駛的速度。空駛是無擠出量的快速移動" msgid "Wipe while retracting" msgstr "回抽時擦拭" @@ -13048,8 +13711,8 @@ msgid "" "Move nozzle along the last extrusion path when retracting to clean leaked " "material on nozzle. This can minimize blob when print new part after travel" msgstr "" -"當回抽時,讓噴嘴沿著前面的走線方向繼續移動,清除掉噴嘴上的漏料。這能夠避免空" -"駛結束列印新的區域時產生斑點。" +"回抽時讓噴嘴沿著最後的擠出路徑移動,清理噴嘴上的洩漏材料。此功能可減少移動後" +"列印新區域時材料堆積的情況" msgid "Wipe Distance" msgstr "擦拭距離" @@ -13065,20 +13728,21 @@ msgid "" "Setting a value in the retract amount before wipe setting below will perform " "any excess retraction before the wipe, else it will be performed after." msgstr "" -"描述當回抽時噴嘴沿最後一條路徑移動的時間。\n" +"描述在回抽時噴嘴沿最後路徑移動的距離。\n" "\n" -"根據擦拭操作持續時間、擠出機/線材回抽設定的速度和時間長度,可能需要回抽來抽回" -"剩餘的線材。\n" -"若在下面的擦拭設定之前設定回抽量,將會在擦拭之前執行多餘的回抽,否則將在之後" -"執行。" +"根據擦拭操作持續的時間、擠出機/線材回抽設定的速度和距離,可能需要額外的回抽來" +"收回剩餘的線材。\n" +"\n" +"在以下的『擦拭前的回抽量』設定中設置一個值,將在擦拭之前執行任何額外的回抽操" +"作;否則,將在擦拭之後執行。" msgid "" "The wiping tower can be used to clean up the residue on the nozzle and " "stabilize the chamber pressure inside the nozzle, in order to avoid " "appearance defects when printing objects." msgstr "" -"換料塔可以用來清理噴嘴上的殘留料和讓噴嘴內部的壓力達到穩定狀態,以避免列印物" -"體時出現外觀瑕疵。" +"換料塔的功能是用於清除噴嘴上的殘留物,同時穩定噴嘴內的壓力,從而避免列印物件" +"時出現外觀瑕疵。" msgid "Purging volumes" msgstr "沖刷體積" @@ -13089,13 +13753,13 @@ msgstr "沖刷量乘數" msgid "" "The actual flushing volumes is equal to the flush multiplier multiplied by " "the flushing volumes in the table." -msgstr "實際沖刷量等於沖刷量乘數乘以表格單元中的沖刷量" +msgstr "實際沖刷量等於沖刷量乘數乘以表格單元中的沖刷量。" msgid "Prime volume" msgstr "清理量" msgid "The volume of material to prime extruder on tower." -msgstr "換料塔上的清理量" +msgstr "換料塔上的清理量。" msgid "Width of prime tower" msgstr "換料塔寬度" @@ -13166,8 +13830,7 @@ msgid "" "wipe tower. These values are used to simplify creation of the full purging " "volumes below." msgstr "" -"可保存所需的體積,用於更改每個換料塔上工具所使用的 from/to 體積 。這些值用於" -"簡化完全沖刷體積的建立。" +"此數據記錄了換料塔每次切換所需的體積,並用於簡化後續完整沖洗體積的計算。" msgid "" "Purging after filament change will be done inside objects' infills. This may " @@ -13175,25 +13838,25 @@ msgid "" "printed with transparent filament, the mixed color infill will be seen " "outside. It will not take effect, unless the prime tower is enabled." msgstr "" -"多色列印換色後的廢料會被用來列印物件的填充。這樣可以減少線材浪費和縮短列印時" -"間,但是如果物件的內外牆是採用透明線材列印的,則可以從模型外觀上看到內部的混" -"色廢料。該功能只有在啟用換料塔的時候才生效。" +"更換線材後的沖洗動作將在物件的填充區域內進行,可減少材料浪費並縮短列印時間。" +"然而,如果牆體使用透明線材,混合色的填充可能會透過牆體被看到。此功能需啟用換" +"料塔後才會生效。" msgid "" "Purging after filament change will be done inside objects' support. This may " "lower the amount of waste and decrease the print time. It will not take " "effect, unless the prime tower is enabled." msgstr "" -"多色列印換色後的廢料會被用來列印物件的支撐。這樣可以減少線材浪費和縮短列印時" -"間。該功能只有在啟用換料塔的時候才生效。" +"更換線材後的沖洗動作將在物件的支撐結構內進行,可減少材料浪費並縮短列印時間。" +"然而,此功能需啟用換料塔後才會生效。" msgid "" "This object will be used to purge the nozzle after a filament change to save " "filament and decrease the print time. Colours of the objects will be mixed " "as a result. It will not take effect, unless the prime tower is enabled." msgstr "" -"多色列印換色後的廢料會被用來列印這個物件。這樣可以減少線材浪費和縮短列印時" -"間,但是這個物件的外觀會是混色的。該功能只有在啟用換料塔的時候才生效。" +"此物件將用於更換線材後進行噴嘴清洗,從而節省線材並縮短列印時間。但物件的顏色" +"會因此被混合。此功能需啟用換料塔後才會生效。" msgid "Maximal bridging distance" msgstr "最大橋接距離" @@ -13215,7 +13878,7 @@ msgid "" "purging lines thicker or narrower than they normally would be. The spacing " "is adjusted automatically." msgstr "" -"用於換料塔上的換料的額外流量。這會使列印線比正常情況更粗或更細。間距會自動調" +"讓換料塔在清理時輸出額外流量。這會使列印線比正常情況更粗或更細。間距會自動調" "整。" msgid "Idle temperature" @@ -13226,8 +13889,8 @@ msgid "" "setups.This is only used when 'Ooze prevention' is active in Print Settings. " "Set to 0 to disable." msgstr "" -"當工具頭在多工具頭設置中未使用時的噴嘴溫度。僅在「列印設定」中啟用「溢出預" -"防」時有效。設置 0 為禁用。" +"當工具頭在多工具頭設置中未使用時的噴嘴溫度。僅在『列印設定』中啟用『防止漏" +"料』時有效。設置 0 為禁用。" msgid "X-Y hole compensation" msgstr "X-Y 孔洞尺寸補償" @@ -13237,8 +13900,8 @@ msgid "" "Positive value makes holes bigger. Negative value makes holes smaller. This " "function is used to adjust size slightly when the object has assembling issue" msgstr "" -"垂直的孔洞的尺寸將在X-Y方向收縮或拓展特定值。正值代表擴大孔洞。負值代表縮小孔" -"洞。這個功能通常在模型有裝配問題時微調尺寸" +"垂直的孔洞的尺寸將在 XY 方向收縮或拓展特定值。正值代表擴大孔洞。負值代表縮小" +"孔洞。這個功能通常在模型有裝配問題時微調尺寸" msgid "X-Y contour compensation" msgstr "X-Y 外輪廓尺寸補償" @@ -13249,8 +13912,8 @@ msgid "" "smaller. This function is used to adjust size slightly when the object has " "assembling issue" msgstr "" -"模型外輪廓的尺寸將在X-Y方向收縮或拓展特定值。正值代表擴大。負值代表縮小。這個" -"功能通常在模型有裝配問題時微調尺寸" +"模型外輪廓的尺寸將在 XY 方向收縮或拓展特定值。正值代表擴大。負值代表縮小。這" +"個功能通常在模型有裝配問題時微調尺寸" msgid "Convert holes to polyholes" msgstr "將圓孔轉換為多邊形孔" @@ -13261,6 +13924,9 @@ msgid "" "compute the polyhole.\n" "See http://hydraraptor.blogspot.com/2011/02/polyholes.html" msgstr "" +"尋找橫跨多層的近似圓形孔洞,並將其幾何形狀轉換為多邊形孔。多邊形孔的計算將根" +"據噴嘴尺寸及最大直徑進行。\n" +"更多的說明請參閱:https://hydraraptor.blogspot.com/2011/02/polyholes.html" msgid "Polyhole detection margin" msgstr "偵測多邊形孔邊緣" @@ -13273,16 +13939,16 @@ msgid "" "broaden the detection.\n" "In mm or in % of the radius." msgstr "" -"點到圓半徑的最大偏差。\n" -"由於圓柱體通常被導出為大小不同的三角形,因此點可能不在圓周上。\n" -"此設定允許有一些餘地來擴大偵測範圍。\n" -"以 mm 或半徑的百分比 %% 表示。" +"點與圓估算半徑的最大偏差範圍。\n" +"由於圓柱體在匯出時通常由不同大小的三角形組成,點可能不會完全位於圓周上。此設" +"定允許一定的容差,以便擴大檢測範圍。\n" +"該值可使用毫米或半徑的百分比來表示。" msgid "Polyhole twist" msgstr "扭曲多邊形孔" msgid "Rotate the polyhole every layer." -msgstr "依層旋轉多邊形孔" +msgstr "依層旋轉多邊形孔。" msgid "G-code thumbnails" msgstr "G-code 縮圖" @@ -13291,7 +13957,8 @@ msgid "" "Picture sizes to be stored into a .gcode and .sl1 / .sl1s files, in the " "following format: \"XxY, XxY, ...\"" msgstr "" -"將被儲存到 .gcode 和 .sl1/.sl1s 檔案中圖片尺寸,格式如下:\"XxY, XxY, ...\"" +"設定將存儲於 .gcode 和 .sl1 / .sl1s 文件中,其圖片尺寸,格式為:「XxY, " +"XxY, ...」" msgid "Format of G-code thumbnails" msgstr "G-code 縮圖的格式" @@ -13310,9 +13977,9 @@ msgid "" "Wipe tower is only compatible with relative mode. It is recommended on most " "printers. Default is checked" msgstr "" -"建議在使用「標籤物件」選項時使用相對擠出。某些擠出機取消此選項(絕對擠出模" -"式)時工作效果更好。換料塔僅與相對模式兼容。建議在大部分印表設備上使用。預設" -"為啟用。" +"使用『label_objects』選項時,建議啟用相對擠出模式。一些擠出機在使用絕對擠出模" +"式(取消勾選)時運行效果會更好。換料塔僅支援相對擠出模式,這也是大多數列印設" +"備的建議模式。預設為啟用相對模式" msgid "" "Classic wall generator produces walls with constant extrusion width and for " @@ -13322,9 +13989,6 @@ msgstr "" "經典牆產生器產生的牆走線具有一致的擠出寬度,對狹窄區域使用填縫。Arachne 引擎" "則產生變線寬的牆走線" -msgid "Classic" -msgstr "經典" - msgid "Arachne" msgstr "Arachne" @@ -13336,8 +14000,8 @@ msgid "" "thinner, a certain amount of space is allotted to split or join the wall " "segments. It's expressed as a percentage over nozzle diameter" msgstr "" -"當零件逐漸變薄導致牆的層數發生變化時,需要在過渡段分配一定的空間來分割和連接" -"牆走線。參數值表示為相對於噴嘴直徑的百分比" +"當零件變薄需要切換牆體數量時,系統會分配一定空間用於分割或合併牆段。此空間以" +"噴嘴直徑的百分比表示" msgid "Wall transitioning filter margin" msgstr "牆過渡過濾間距" @@ -13351,10 +14015,10 @@ msgid "" "variation can lead to under- or overextrusion problems. It's expressed as a " "percentage over nozzle diameter" msgstr "" -"防止特定厚度變化規律的局部在多一層牆和少一層牆之間來迴轉換。這個參數將擠壓寬" -"度的範圍擴大到[牆最小寬度-參數值, 2*牆最小寬度+參數值]。增大參數可以減少轉換" -"的次數,從而減少擠出開始/停止和空駛的時間。然而,大的擠出寬度變化會導致過擠出" -"或欠擠出的問題。參數值表示為相對於噴嘴直徑的百分比" +"防止牆體數量在多出一層與少一層之間頻繁切換。此邊界擴展了可接受的擠出寬度範" +"圍,範圍為 [最小牆寬 - 邊界, 2 倍最小牆寬 + 邊界]。增大邊界可以減少切換次數," +"從而減少擠出啟停和移動時間。但過大的擠出寬度變化可能引發欠擠或過擠問題。此參" +"數以噴嘴直徑的百分比表示" msgid "Wall transitioning threshold angle" msgstr "牆過渡臨界值角度" @@ -13405,12 +14069,10 @@ msgid "" "top-surface. 'One wall threshold' is only visible if this setting is set " "above the default value of 0.5, or if single-wall top surfaces is enabled." msgstr "" -"調整此值可防止列印短的、未閉合的牆面,這些可能會增加列印時間。較高的值會移除" -"更多、更長的牆面。\n" -"\n" -"注意:底部和頂部表面不受此值影響,以防止模型外部出現視覺間隙。調整下面的「高" -"級設定」中的「單壁閾值」來調整對什麼被視為頂表面的敏感度。「單壁閾值」僅在此" -"設定設置為大於預設值 0.5或啟用單壁頂部表面時可見。" +"調整此參數以避免列印短小且未封閉的牆體,這可能會延長列印時間。參數值越高,移" +"除的牆體會越多且越長。注意:為避免模型外表面出現視覺裂縫,此設定不會影響頂面" +"和底面。若需調整頂面判定的靈敏度,可修改進階設定中的『單層牆閾值』。『單層牆" +"閾值』僅在此設置超過預設值 0.5 或啟用了單層牆頂面功能時可用。" msgid "First layer minimum wall width" msgstr "首層牆最小線寬" @@ -13431,6 +14093,8 @@ msgid "" "thickness of the feature, the wall will become as thick as the feature " "itself. It's expressed as a percentage over nozzle diameter" msgstr "" +"設定替代模型中細薄特徵(依據最小特徵尺寸)的牆體寬度。若最小牆寬小於特徵厚" +"度,牆體將與特徵的厚度一致。此值以噴嘴直徑的百分比表示" msgid "Detect narrow internal solid infill" msgstr "識別狹窄內部實心填充" @@ -13440,14 +14104,14 @@ msgid "" "concentric pattern will be used for the area to speed printing up. " "Otherwise, rectilinear pattern is used by default." msgstr "" -"此選項用於自動識別內部狹窄的實心填充。開啟後,將對狹窄實心區域使用同心填充加" -"快列印速度。否則使用預設的直線填充。" +"此選項可自動檢測狹窄的內部實心填充區域。啟用後,系統會採用同心圖案以提升列印" +"速度;若未啟用,則預設使用直線圖案進行填充。" msgid "invalid value " msgstr "無效值" msgid "Invalid value when spiral vase mode is enabled: " -msgstr "值於花瓶模式無效:" +msgstr "值於螺旋花瓶模式無效:" msgid "too large line width " msgstr "線寬過大" @@ -13456,7 +14120,7 @@ msgid " not in range " msgstr " 不在合理的區間" msgid "Minimum save" -msgstr "" +msgstr "最低保存" msgid "export 3mf with minimum size." msgstr "匯出最小尺寸的 3mf。" @@ -13475,10 +14139,10 @@ msgid "" msgstr "當物件部分位於列印板的下方時,將其提升到列印板的上方。預設情況下禁用" msgid "Orient Options" -msgstr "" +msgstr "方向設定" msgid "Orient options: 0-disable, 1-enable, others-auto" -msgstr "" +msgstr "方向設定:0-關閉,1-開啟,其它-自動模式" msgid "Rotation angle around the Z axis in degrees." msgstr "繞 Z 軸的旋轉角度(以度為單位)。" @@ -13507,32 +14171,33 @@ msgid "Load custom gcode from json" msgstr "從 json 載入自訂 gcode" msgid "Current z-hop" -msgstr "" +msgstr "當前 Z 抬升高度" msgid "Contains z-hop present at the beginning of the custom G-code block." -msgstr "" +msgstr "包含在自定義 G-code 區塊開頭的 Z 抬升動作。" msgid "" "Position of the extruder at the beginning of the custom G-code block. If the " "custom G-code travels somewhere else, it should write to this variable so " "OrcaSlicer knows where it travels from when it gets control back." msgstr "" -"自訂 G-code 區塊開頭的擠出機位置。如果自訂 G-code 移動到了其他位置,應該寫入" -"此變數,以便 OrcaSlicer 知道它從哪裡移動到當它重新獲得控制權時。" +"擠出機在自定義 G-code 區塊開頭的位置。如果自定義 G-code 將擠出機移動到其他位" +"置,應將該位置記錄到此變數中,以便 OrcaSlicer 在恢復控制時了解擠出機的移動起" +"點。" msgid "" "Retraction state at the beginning of the custom G-code block. If the custom " "G-code moves the extruder axis, it should write to this variable so " "OrcaSlicer de-retracts correctly when it gets control back." msgstr "" -"自訂 G-code 區塊開頭的回抽狀態。如果自訂 G-code 移動了擠出機軸,應該寫入此變" -"數,以便 OrcaSlicer 在重新獲得控制權時正確返回抽。" +"自定義 G-code 區塊開始時的回抽狀態。如果自定義 G-code 移動了擠出軸,應將該狀" +"態記錄到此變數中,以確保 OrcaSlicer 在恢復控制時能正確執行回抽恢復動作。" msgid "Extra de-retraction" msgstr "額外返回抽" msgid "Currently planned extra extruder priming after de-retraction." -msgstr "" +msgstr "當前計劃的額外擠出機加料,發生於回抽恢復後。" msgid "Absolute E position" msgstr "絕對擠出值" @@ -13560,7 +14225,7 @@ msgid "Has wipe tower" msgstr "有換料塔" msgid "Whether or not wipe tower is being generated in the print." -msgstr "是否有產生換料塔" +msgstr "是否有產生換料塔。" msgid "Initial extruder" msgstr "初始擠出機" @@ -13583,31 +14248,31 @@ msgstr "擠出機是否被使用?" msgid "" "Vector of booleans stating whether a given extruder is used in the print." -msgstr "" +msgstr "包含布林值的向量,用於指示每個擠出機是否在列印過程中被啟用。" msgid "Has single extruder MM priming" -msgstr "" +msgstr "單擠出機多材料預熱" msgid "Are the extra multi-material priming regions used in this print?" -msgstr "" +msgstr "這次列印是否使用了額外的多材料準備區域?" msgid "Volume per extruder" msgstr "各擠出機線材體積" msgid "Total filament volume extruded per extruder during the entire print." -msgstr "各擠出機擠出總線材體積" +msgstr "整個列印過程中,每個噴頭擠出的線材總體積。" msgid "Total toolchanges" -msgstr "總工具頭變更次數" +msgstr "換色次數" msgid "Number of toolchanges during the print." -msgstr "列印期間工具頭變更次數" +msgstr "列印期間工具頭變更次數。" msgid "Total volume" msgstr "總體積" msgid "Total volume of filament used during the entire print." -msgstr "列印總線材體積" +msgstr "列印總線材體積。" msgid "Weight per extruder" msgstr "各擠出機擠出總重" @@ -13615,7 +14280,7 @@ msgstr "各擠出機擠出總重" msgid "" "Weight per extruder extruded during the entire print. Calculated from " "filament_density value in Filament Settings." -msgstr "各擠出機擠出總重,依據線材密度計算" +msgstr "各擠出機擠出總重,依據線材密度計算。" msgid "Total weight" msgstr "總重" @@ -13623,25 +14288,25 @@ msgstr "總重" msgid "" "Total weight of the print. Calculated from filament_density value in " "Filament Settings." -msgstr "列印總重,依據線材密度計算" +msgstr "列印總重,依據線材密度計算。" msgid "Total layer count" msgstr "總層數" msgid "Number of layers in the entire print." -msgstr "列印總層數" +msgstr "列印總層數。" msgid "Number of objects" msgstr "物件數量" msgid "Total number of objects in the print." -msgstr "列印總物件數量" +msgstr "列印總物件數量。" msgid "Number of instances" -msgstr "" +msgstr "實例數量" msgid "Total number of object instances in the print, summed over all objects." -msgstr "" +msgstr "列印中所有物件實例的總數,累計所有物件的數量。" msgid "Scale per object" msgstr "各物件縮放" @@ -13652,8 +14317,8 @@ msgid "" "index 0).\n" "Example: 'x:100% y:50% z:100'." msgstr "" -"包含一個字串,描述了每個物件縮放的資訊。第一個物件索引為 0。例如:'x:100% " -"y:50% z:100'" +"包含各個物件所應用縮放比例資訊的字串。物件索引以 0 為起點(第一個物件的索引" +"為 0)。範例:x:100% y:50% z:100。" msgid "Input filename without extension" msgstr "輸入檔名(不含副檔名)" @@ -13701,7 +14366,7 @@ msgid "Timestamp" msgstr "時間戳記" msgid "String containing current time in yyyyMMdd-hhmmss format." -msgstr "yyyyMMdd-hhmmss 格式的目前時間字串" +msgstr "yyyyMMdd-hhmmss 格式的目前時間字串。" msgid "Day" msgstr "天" @@ -13716,7 +14381,7 @@ msgid "Print preset name" msgstr "列印預設名稱" msgid "Name of the print preset used for slicing." -msgstr "切片使用的列印預設名稱" +msgstr "切片使用的列印預設名稱。" msgid "Filament preset name" msgstr "線材預設名稱" @@ -13732,10 +14397,10 @@ msgid "Printer preset name" msgstr "列印設備預設名稱" msgid "Name of the printer preset used for slicing." -msgstr "用於切片的列印設備預設名稱" +msgstr "用於切片的列印設備預設名稱。" msgid "Physical printer name" -msgstr "列印設備名稱" +msgstr "列印設備實際名稱" msgid "Name of the physical printer used for slicing." msgstr "用於切片的印表設備名稱。" @@ -13755,24 +14420,24 @@ msgid "Index of the current layer. One-based (i.e. first layer is number 1)." msgstr "當層數 (第一層為一)" msgid "Layer z" -msgstr "層z高" +msgstr "層 z 高" msgid "" "Height of the current layer above the print bed, measured to the top of the " "layer." -msgstr "" +msgstr "目前這一層距離熱床的高度,從層頂開始計算。" msgid "Maximal layer z" -msgstr "" +msgstr "層的最大 Z 軸高度" msgid "Height of the last layer above the print bed." -msgstr "" +msgstr "最後一層距打印床的高度。" msgid "Filament extruder ID" -msgstr "" +msgstr "線材擠出機識別碼" msgid "The current extruder ID. The same as current_extruder." -msgstr "" +msgstr "目前的擠出機識別碼,與 current_extruder 一致。" msgid "Error in zip archive" msgstr "zip 檔案中存在錯誤" @@ -13820,6 +14485,8 @@ msgid "" "No layers were detected. You might want to repair your STL file(s) or check " "their size or thickness and retry.\n" msgstr "" +"未檢測到任何列印層。請檢查你的 STL 文件是否需要修復,或者確認其尺寸與厚度,然" +"後再重試。\n" msgid "" "An object's XY size compensation will not be used because it is also color-" @@ -13862,13 +14529,13 @@ msgstr "支撐:正在生長 %d 層的樹枝" msgid "" "Unknown file format. Input file must have .stl, .obj, .amf(.xml) extension." -msgstr "" +msgstr "檔案格式未知。輸入的檔案必須是 .stl、.obj 或 .amf(.xml) 格式。" msgid "Loading of a model file failed." msgstr "載入模型檔案失敗。" msgid "The supplied file couldn't be read because it's empty" -msgstr "無法讀取提供的檔案,因為該檔案為空。" +msgstr "無法讀取提供的檔案,因為該檔案為空" msgid "Unknown file format. Input file must have .3mf or .zip.amf extension." msgstr "未知的檔案格式。輸入檔案的副檔名必須為 .3mf 或 .zip .amf。" @@ -13913,7 +14580,7 @@ msgid "Auto-Calibration" msgstr "自動校準" msgid "We would use Lidar to read the calibration result" -msgstr "將使用雷射雷達來讀取校準結果。" +msgstr "將使用雷射雷達來讀取校準結果" msgid "Prev" msgstr "上一個" @@ -13932,7 +14599,7 @@ msgstr "如何使用校準結果?" msgid "" "You could change the Flow Dynamics Calibration Factor in material editing" -msgstr "你可以在線材編輯中更改流量動態校準因子。" +msgstr "你可以在線材編輯中更改流量動態校準因子" msgid "" "The current firmware version of the printer does not support calibration.\n" @@ -13984,10 +14651,10 @@ msgid "The name cannot be the same as the system preset name." msgstr "名稱不能與系統預設值名稱相同。" msgid "The name is the same as another existing preset name" -msgstr "該名稱與另一個現有預設值名稱相同。" +msgstr "該名稱與另一個現有預設值名稱相同" msgid "create new preset failed." -msgstr "新增預設失敗" +msgstr "新增預設失敗。" msgid "" "Are you sure to cancel the current calibration and return to the home page?" @@ -14012,9 +14679,8 @@ msgid "" "historical results. \n" "Do you still want to continue the calibration?" msgstr "" -"此機型每個噴嘴只能儲存 16 筆歷史記錄。你可以刪除現有的歷史記錄,然後開始校" -"準。或者你可以繼續校準,但無法建立新的校準歷史記錄。\n" -"是否仍要繼續校準?" +"此機型每個噴嘴最多只能保存 16 條歷史記錄。你可以刪除現有記錄後再開始校準,或" +"者選擇繼續校準,但無法新增新的校準記錄。你確定要繼續校準嗎?" msgid "Connecting to printer..." msgstr "正在連接列印設備..." @@ -14023,7 +14689,7 @@ msgid "The failed test result has been dropped." msgstr "測試失敗的結果已被刪除。" msgid "Flow Dynamics Calibration result has been saved to the printer" -msgstr "動態流量校準的結果已儲存至列印設備。" +msgstr "動態流量校準的結果已儲存至列印設備" #, c-format, boost-format msgid "" @@ -14044,7 +14710,7 @@ msgid "Internal Error" msgstr "內部錯誤" msgid "Please select at least one filament for calibration" -msgstr "請至少選擇一種線材進行校準。" +msgstr "請至少選擇一種線材進行校準" msgid "Flow rate calibration result has been saved to preset" msgstr "流量比例校準結果已儲存到預設值" @@ -14095,8 +14761,8 @@ msgid "" msgstr "" "請參考我們的 Wiki 頁面,了解「流體動力校準」的詳細資訊。\n" "\n" -"通常不需要進行校準。當你啟動單色/單材質列印,並在列印開始選單中勾選「流體動力" -"校準」選項時,列印設備將按照舊方式,在列印前校準耗材。當你啟動多色/多材質列印" +"通常不需要進行校準。當你啟動單色/單材質列印,並在列印開始選單中勾選『流體動力" +"校準』選項時,列印設備將按照舊方式,在列印前校準耗材。當你啟動多色/多材質列印" "時,列印設備將在每次耗材切換時使用預設的補償參數,這在大部分情況下都能得到良" "好的結果。\n" "\n" @@ -14195,7 +14861,7 @@ msgid "materials with inaccurate filament diameter" msgstr "線材直徑不準確的線材" msgid "We found the best Flow Dynamics Calibration Factor" -msgstr "我們找到了最佳的流量動態校準因子。" +msgstr "我們找到了最佳的流量動態校準因子" msgid "" "Part of the calibration failed! You may clean the plate and retry. The " @@ -14205,7 +14871,7 @@ msgstr "部分校準失敗! 你可以清潔列印板並重試。 失敗的測 msgid "" "*We recommend you to add brand, materia, type, and even humidity level in " "the Name" -msgstr "*我們建議你在名稱中加入品牌、材料、類型,甚至濕度水平。" +msgstr "*我們建議你在名稱中加入品牌、材料、類型,甚至濕度水平" msgid "Failed" msgstr "失敗" @@ -14257,9 +14923,8 @@ msgstr "校準 1" msgid "Calibration2" msgstr "校準 2" -#, fuzzy msgid "Please find the best object on your plate" -msgstr "請在你的列印板裡找到最好的物件" +msgstr "請在列印板上選擇最理想的物件" msgid "Fill in the value above the block with smoothest top surface" msgstr "用最光滑的頂面填充塊上方的值" @@ -14384,7 +15049,7 @@ msgid "New Flow Dynamic Calibration" msgstr "重新校準動態流量" msgid "Ok" -msgstr "" +msgstr "Ok" msgid "The filament must be selected." msgstr "必須選擇線材。" @@ -14443,16 +15108,16 @@ msgid "PA Pattern" msgstr "V形模式" msgid "Start PA: " -msgstr "起始值" +msgstr "起始值:" msgid "End PA: " -msgstr "結束值" +msgstr "結束值:" msgid "PA step: " -msgstr "步距" +msgstr "步距:" msgid "Print numbers" -msgstr "列印數字" +msgstr "列印號碼" msgid "" "Please input valid values:\n" @@ -14461,33 +15126,33 @@ msgid "" "PA step: >= 0.001)" msgstr "" "請輸入有效值:\n" -"起始PA:>= 0.0\n" -"結束PA:> 起始PA\n" -"PA步距:>= 0.001)" +"起始 PA:>= 0.0\n" +"結束 PA:> 起始PA\n" +"PA 步距:>= 0.001)" msgid "Temperature calibration" msgstr "溫度校準" msgid "PLA" -msgstr "" +msgstr "PLA" msgid "ABS/ASA" -msgstr "" +msgstr "ABS/ASA" msgid "PETG" -msgstr "" +msgstr "PETG" msgid "PCTG" -msgstr "" +msgstr "PCTG" msgid "TPU" -msgstr "" +msgstr "TPU" msgid "PA-CF" -msgstr "" +msgstr "PA-CF" msgid "PET-CF" -msgstr "" +msgstr "PET-CF" msgid "Filament type" msgstr "線材類型" @@ -14496,10 +15161,10 @@ msgid "Start temp: " msgstr "起始溫度: " msgid "End temp: " -msgstr "終止溫度" +msgstr "終止溫度:" msgid "Temp step: " -msgstr "溫度步距" +msgstr "溫度步距:" msgid "" "Please input valid values:\n" @@ -14516,13 +15181,13 @@ msgid "Max volumetric speed test" msgstr "最大體積速度測試" msgid "Start volumetric speed: " -msgstr "起始流量" +msgstr "起始流量:" msgid "End volumetric speed: " -msgstr "結束流量" +msgstr "結束流量:" msgid "step: " -msgstr "步距" +msgstr "步距:" msgid "" "Please input valid values:\n" @@ -14536,13 +15201,13 @@ msgstr "" "結束 > 開始 + 步距)" msgid "VFA test" -msgstr "VFA震紋測試" +msgstr "VFA 震紋測試" msgid "Start speed: " -msgstr "起始速度" +msgstr "起始速度:" msgid "End speed: " -msgstr "結束速度" +msgstr "結束速度:" msgid "" "Please input valid values:\n" @@ -14556,13 +15221,13 @@ msgstr "" "結束 > 開始 + 步距)" msgid "Start retraction length: " -msgstr "起始回抽長度" +msgstr "起始回抽長度:" msgid "End retraction length: " -msgstr "結束回抽長度" +msgstr "結束回抽長度:" msgid "mm/mm" -msgstr "" +msgstr "mm/mm" msgid "Send G-Code to printer host" msgstr "傳送 G-code 到列印設備" @@ -14571,7 +15236,7 @@ msgid "Upload to Printer Host with the following filename:" msgstr "使用下列檔案名上傳到列印設備:" msgid "Use forward slashes ( / ) as a directory separator if needed." -msgstr "" +msgstr "如有需要,請使用正斜線(/)作為目錄分隔符。" msgid "Upload to storage" msgstr "上傳到儲存單位" @@ -14639,10 +15304,10 @@ msgid "Intersection" msgstr "交集" msgid "Source Volume" -msgstr "" +msgstr "來源體積" msgid "Tool Volume" -msgstr "" +msgstr "工具體積" msgid "Subtract from" msgstr "從中減去" @@ -14690,7 +15355,7 @@ msgid "Test OrcaSlicer(GitHub):" msgstr "測試 OrcaSlicer(GitHub):" msgid "Test Bing.com" -msgstr "測試 Bing.com:" +msgstr "測試 Bing.com" msgid "Test bing.com:" msgstr "測試 bing.com:" @@ -14802,7 +15467,7 @@ msgid "" "To add preset for more printers, Please go to printer selection" msgstr "" "將會將預設名稱重新命名為「廠牌 型號 序號 @選擇的列印設備」。\n" -"若要為更多列印設備新增預設,請前往列印設備選擇頁面。" +"若要為更多列印設備新增預設,請前往列印設備選擇頁面" msgid "Create Printer/Nozzle" msgstr "建立列印設備/噴嘴" @@ -14898,7 +15563,7 @@ msgstr "返回第一頁" msgid "" "You have not yet chosen which printer preset to create based on. Please " "choose the vendor and model of the printer" -msgstr "尚未選擇要基於哪個列印設備預設設定來創建,請選擇列印設備的廠牌和型號。" +msgstr "尚未選擇要基於哪個列印設備預設設定來創建,請選擇列印設備的廠牌和型號" msgid "" "You have entered an illegal input in the printable area section on the first " @@ -14982,8 +15647,9 @@ msgid "" "volumetric speed has a significant impact on printing quality. Please set " "them carefully." msgstr "" -"如果需要,請前往線材設定編輯你的預設設定。\n" -" 請注意,噴嘴溫度、熱床溫度和最大體積速度對列印品質有重大影響,請小心設置。" +"如需調整,請至線材設定頁編輯你的預設。\n" +"請特別注意,噴嘴溫度、熱床溫度及最大體積速度會顯著影響列印品質,建議謹慎設" +"定。" msgid "" "\n" @@ -14995,17 +15661,18 @@ msgid "" msgstr "" "\n" "\n" -"Orca 偵測到你的使用者預設設定同步功能未啟用,這可能會導致設備頁面上的線材設定" -"無法成功。請點擊「同步使用者預設設定」以啟用同步功能。" +"Orca 偵測到你的使用者預設同步功能尚未啟用,這可能導致線材設定在裝置頁面上無法" +"正常使用。\n" +"請點擊『同步用戶預設』以啟用同步功能。" msgid "Printer Setting" msgstr "列印設備設定" msgid "Printer config bundle(.orca_printer)" -msgstr "列印機配置包 (.orca_printer)" +msgstr "列印設備設定檔 (.orca_printer)" msgid "Filament bundle(.orca_filament)" -msgstr "線材包 (.orca_filament)" +msgstr "線材設定檔 (.orca_filament)" msgid "Printer presets(.zip)" msgstr "列印設備預設設定檔 (.zip)" @@ -15020,7 +15687,7 @@ msgid "initialize fail" msgstr "初始化失敗" msgid "add file fail" -msgstr "添加檔案失敗。" +msgstr "添加檔案失敗" msgid "add bundle structure file fail" msgstr "添加捆綁結構檔案失敗" @@ -15114,7 +15781,7 @@ msgstr "被其他預設設定繼承的預設設定無法刪除" msgid "The following presets inherits this preset." msgid_plural "The following preset inherits this preset." -msgstr[0] "" +msgstr[0] "以下預設設定繼承了此預設。" msgid "Delete Preset" msgstr "刪除預設設定" @@ -15152,16 +15819,16 @@ msgid "Copy preset from filament" msgstr "從線材複製預設設定" msgid "The filament choice not find filament preset, please reselect it" -msgstr "未找到該線材的預設設定,請重新選擇。" +msgstr "未找到該線材的預設設定,請重新選擇" msgid "[Delete Required]" -msgstr "" +msgstr "「需要刪除」" msgid "Edit Preset" msgstr "編輯預設設定" msgid "For more information, please check out Wiki" -msgstr "如需更多資訊,請查看 Wiki。" +msgstr "如需更多資訊,請查看 Wiki" msgid "Collapse" msgstr "摺疊" @@ -15180,9 +15847,8 @@ msgstr "預設的噴嘴直徑與記錄的噴嘴直徑不一致。你最近有更 #, c-format, boost-format msgid "*Printing %s material with %s may cause nozzle damage" -msgstr "*使用 %s 材料和 %s 列印可能會導致噴嘴損壞。" +msgstr "*使用 %s 材料和 %s 列印可能會導致噴嘴損壞" -#, fuzzy msgid "Need select printer" msgstr "需要選擇列印設備" @@ -15194,13 +15860,15 @@ msgid "" "large, or the step is too small" msgstr "無法校準:可能是設定的校準值範圍太大,或步距太小" -#, fuzzy msgid "Physical Printer" msgstr "實體列印設備" msgid "Print Host upload" msgstr "列印主機上傳" +msgid "Test" +msgstr "測試" + msgid "Could not get a valid Printer Host reference" msgstr "無法獲得有效的列印設備主機參考資料" @@ -15210,7 +15878,6 @@ msgstr "成功!" msgid "Are you sure to log out?" msgstr "確定要登出嗎?" -#, fuzzy msgid "Refresh Printers" msgstr "重新整理列印設備" @@ -15340,7 +16007,7 @@ msgid "Connection to Prusa Connect works correctly." msgstr "成功連接到 Prusa Connect。" msgid "Could not connect to Prusa Connect" -msgstr "無法連接到 Prusa Connect。" +msgstr "無法連接到 Prusa Connect" msgid "Connection to Repetier works correctly." msgstr "與 Repetier 的連接工作正常。" @@ -15359,7 +16026,7 @@ msgstr "" "HTTP 狀態:%1%\n" "訊息內容:\"%2%\"" -#, boost-format +#, possible-boost-format msgid "" "Parsing of host response failed.\n" "Message body: \"%1%\"\n" @@ -15561,30 +16228,30 @@ msgid "" "Compared with the default profile of a 0.6 mm nozzle, it has a smaller layer " "height, and results in less apparent layer lines and higher printing " "quality, but longer printing time." -msgstr "" -"與 0.6 毫米噴嘴的預設配置相比,該配置具有較小的層高,產生較不明顯的層線並提高" -"列印品質,但列印時間較長。" +msgstr "它具有非常大的層高,產生明顯的層線、較低的列印品質和一般的列印時間。" msgid "" "It has a very big layer height, and results in very apparent layer lines, " "low printing quality and general printing time." -msgstr "它具有非常大的層高,產生明顯的層線、較低的列印品質和一般的列印時間。" +msgstr "" +"與0.8mm噴嘴的預設配置相比,該配置具有較大的層高,產生非常明顯的層線並顯著降低" +"列印品質,但在某些情況下會縮短列印時間。" msgid "" "Compared with the default profile of a 0.8 mm nozzle, it has a bigger layer " "height, and results in very apparent layer lines and much lower printing " "quality, but shorter printing time in some printing cases." msgstr "" -"與0.8mm噴嘴的預設配置相比,該配置具有較大的層高,產生非常明顯的層線並顯著降低" -"列印品質,但在某些情況下會縮短列印時間。" +"與0.8mm噴嘴的預設配置相比,該配置具有更大的層高,產生極為明顯的層線並顯著降低" +"列印品質,但在某些情況下會大幅縮短列印時間。" msgid "" "Compared with the default profile of a 0.8 mm nozzle, it has a much bigger " "layer height, and results in extremely apparent layer lines and much lower " "printing quality, but much shorter printing time in some printing cases." msgstr "" -"與0.8mm噴嘴的預設配置相比,該配置具有更大的層高,產生極為明顯的層線並顯著降低" -"列印品質,但在某些情況下會大幅縮短列印時間。" +"與0.8mm噴嘴的預設配置相比,該配置具有略小的層高,產生略少但仍明顯的層線,並略" +"微提高列印品質,但在某些情況下會延長列印時間。" msgid "" "Compared with the default profile of a 0.8 mm nozzle, it has a slightly " @@ -15592,16 +16259,16 @@ msgid "" "lines and slightly higher printing quality, but longer printing time in some " "printing cases." msgstr "" -"與0.8mm噴嘴的預設配置相比,該配置具有略小的層高,產生略少但仍明顯的層線,並略" -"微提高列印品質,但在某些情況下會延長列印時間。" +"與0.8mm噴嘴的預設配置相比,該配置具有較小的層高,從而產生較少但仍明顯的層線," +"並略微提高列印品質,但在某些情況下會延長列印時間。" msgid "" "Compared with the default profile of a 0.8 mm nozzle, it has a smaller layer " "height, and results in less but still apparent layer lines and slightly " "higher printing quality, but longer printing time in some printing cases." msgstr "" -"與0.8mm噴嘴的預設配置相比,該配置具有較小的層高,從而產生較少但仍明顯的層線," -"並略微提高列印品質,但在某些情況下會延長列印時間。" +"與0.8mm噴嘴的預設配置相比,該配置具有較少的層高,產生較少但仍明顯的層線,並略" +"微提高列印品質,但在某些情況下會延長列印時間。" msgid "Connected to Obico successfully!" msgstr "成功連接到 Obico!" @@ -15625,7 +16292,7 @@ msgid "SimplyPrint account not linked. Go to Connect options to set it up." msgstr "SimplyPrint 帳戶未連結。請前往連接選項進行設置。" msgid "Connection to Flashforge works correctly." -msgstr "成功連接到 Flashforge" +msgstr "成功連接到 Flashforge。" msgid "Could not connect to Flashforge" msgstr "無法連接到 Flashforge" @@ -15640,7 +16307,7 @@ msgid "Something unexpected happened when trying to log in, please try again." msgstr "嘗試登入時發生了意外錯誤,請再試一次。" msgid "User cancelled." -msgstr "使用者取消" +msgstr "使用者取消。" #: resources/data/hints.ini: [hint:Precise wall] msgid "" @@ -15658,6 +16325,9 @@ msgid "" "precision and layer consistency if your model doesn't have very steep " "overhangs?" msgstr "" +"三明治模式\n" +"你知道嗎?如果模型中沒有太陡峭的懸空區域,可以使用三明治模式\n" +"(內層-外層-內層)來提升精度並增強層的一致性。" #: resources/data/hints.ini: [hint:Chamber temperature] msgid "" @@ -15674,8 +16344,8 @@ msgid "" "beloved calibration solution in OrcaSlicer." msgstr "" "校準\n" -"你知道校準列印設備可以帶來奇效嗎?快來看看我們在 OrcaSlicer 中的校準解決方" -"案。" +"你知道校準列印設備可以帶來奇效嗎?快來看看我們在 OrcaSlicer 中的\n" +"校準解決方案。" #: resources/data/hints.ini: [hint:Auxiliary fan] msgid "" @@ -15717,7 +16387,7 @@ msgid "" "3D scene operations." msgstr "" "如何使用鍵盤快捷鍵\n" -"你知道 Orca Slicer 提供了廣泛的鍵盤快捷鍵和 3D 場景操作嗎?" +"你知道嗎? Orca Slicer 提供了廣泛的鍵盤快捷鍵和 3D 場景操作。" #: resources/data/hints.ini: [hint:Reverse on odd] msgid "" @@ -15726,7 +16396,7 @@ msgid "" "the surface quality of your overhangs?" msgstr "" "奇數反向\n" -"你知道 奇數反向 功能可以顯著改善懸垂部分的表面品質嗎?" +"你知道嗎?奇數反向 功能能大幅提升懸空結構的表面品質 " #: resources/data/hints.ini: [hint:Cut Tool] msgid "" @@ -15744,7 +16414,8 @@ msgid "" "problems on the Windows system?" msgstr "" "修復模型\n" -"你知道可以修復損壞的 3D 模型,以避免在 Windows 系統上出現大量切片問題嗎?" +"你知道嗎?在 Windows 系統上修復損壞的 3D 模型,\n" +"可以有效避免許多切片時的問題。" #: resources/data/hints.ini: [hint:Timelapse] msgid "" @@ -15769,7 +16440,7 @@ msgid "" "printing by a simple click?" msgstr "" "自動定向\n" -"你知道嗎,你只需單擊滑鼠,即可將物件旋轉到適合的列印方向。" +"你知道嗎?你只需單擊滑鼠,即可將物件旋轉到適合的列印方向。" #: resources/data/hints.ini: [hint:Lay on Face] msgid "" @@ -15779,8 +16450,8 @@ msgid "" "F key." msgstr "" "指定列印物件底部\n" -"你知道嗎,你可以快速指定模型的底面,使其位於列印板上。選擇 \"選擇底面\" 功能" -"或按F鍵。" +"你知道嗎?你可以快速指定模型的底面,使其位於列印板上。\n" +"選擇「選擇底面」或按 F 鍵。" #: resources/data/hints.ini: [hint:Object List] msgid "" @@ -15789,8 +16460,8 @@ msgid "" "settings for each object/part?" msgstr "" "物件清單\n" -"你知道物件清單嗎?你可以在其中的查看所有物件/零件,並更改每個物件/零件的設" -"定。" +"你知道嗎?你可以在清單中檢視所有物件/部件,並為每個物件/部件\n" +"調整設定。" #: resources/data/hints.ini: [hint:Search Functionality] msgid "" @@ -15799,7 +16470,7 @@ msgid "" "Slicer setting?" msgstr "" "搜尋功能\n" -"你知道可以使用搜尋工具快速找到特定的設定嗎?" +"你知道嗎?使用「搜尋工具」可以快速定位特定的 Orca Slicer 設定。" #: resources/data/hints.ini: [hint:Simplify Model] msgid "" @@ -15808,8 +16479,8 @@ msgid "" "Simplify mesh feature? Right-click the model and select Simplify model." msgstr "" "簡化模型\n" -"你知道可以使用簡化網格功能來減少網格中的三角形數量嗎?右鍵點擊模型並選擇簡化" -"模型。" +"你知道嗎?透過「簡化網格」功能,你可以減少模型中的三角形數量。\n" +"只需右鍵點擊模型,然後選擇「簡化模型」。" #: resources/data/hints.ini: [hint:Slicing Parameter Table] msgid "" @@ -15818,7 +16489,8 @@ msgid "" "settings for each object/part?" msgstr "" "參數表格\n" -"你知道嗎?你可以看參數表格上的所有物件/零件,並更改每個物件/零件的設定。" +"你知道嗎?你可以看參數表格上的所有物件/零件,並更改每個物件/零\n" +"件的設定。" #: resources/data/hints.ini: [hint:Split to Objects/Parts] msgid "" @@ -15827,7 +16499,8 @@ msgid "" "colorizing or printing?" msgstr "" "分割成物件/零件\n" -"你知道嗎,你可以把一個大物件分割成多個小物件/零件以便著色或列印。" +"你知道嗎?你可以把一個大物件分割成多個小物件/零件以便著色或\n" +"列印。" #: resources/data/hints.ini: [hint:Subtract a Part] msgid "" @@ -15837,8 +16510,8 @@ msgid "" "directly in Orca Slicer." msgstr "" "減去零件\n" -"你知道可以使用負零件修飾器從一個網格中減去另一個網格嗎?這樣,你可以在 Orca " -"Slicer 中輕鬆創建可調整大小的孔洞。" +"你知道嗎?你可以使用「負零件修飾器」將一個網格從另一個網格中減\n" +"去。這樣,就能直接在 Orca Slicer 裡輕鬆創建尺寸可調的孔洞。" #: resources/data/hints.ini: [hint:STEP] msgid "" @@ -15849,8 +16522,9 @@ msgid "" "lower resolution STL. Give it a try!" msgstr "" "STEP檔案\n" -"你知道嗎,通過切片 STEP 檔案而不是 STL 檔案可以提高列印品質。\n" -" Orca Slicer 支援切片 STEP 檔案,提供比低解析度 STL 更平滑的結果。試試看!" +"你知道嗎?通過切片 STEP 檔案而不是 STL 檔案可以提高列印品質。\n" +"Orca Slicer 支援切片 STEP 檔案,提供比低解析度 STL 更平滑的結果。\n" +"試試看!" #: resources/data/hints.ini: [hint:Z seam location] msgid "" @@ -15860,8 +16534,8 @@ msgid "" "the overall look of your model. Check it out!" msgstr "" "Z接縫位置\n" -"你知道嗎,你可以自訂Z接縫的位置,甚至可以將其繪製在列印上,使其位於不太可見的" -"位置。這樣可以改善模型的整體外觀。試試看!" +"你知道嗎?你可以自訂Z接縫的位置,甚至可以將其繪製在列印上,使\n" +"其位於不太可見的位置。這樣可以改善模型的整體外觀。試試看!" #: resources/data/hints.ini: [hint:Fine-tuning for flow rate] msgid "" @@ -15871,8 +16545,8 @@ msgid "" "printed model by doing some fine-tuning." msgstr "" "流量微調\n" -"你知道嗎,你可以微調流量,以獲得更好看的列印效果。根據線材的不同,可以通過進" -"行一些微調來提高列印模型的整體光潔度。" +"你知道嗎?你可以微調流量,以獲得更好看的列印效果。根據線材的不\n" +"同,可以通過進行一些微調來提高列印模型的整體光潔度。" #: resources/data/hints.ini: [hint:Split your prints into plates] msgid "" @@ -15882,8 +16556,8 @@ msgid "" "track of all the parts." msgstr "" "分類列印\n" -"你知道嗎,你可以把一個有很多零件的模型安排到多個獨立的列印板,然後列印出來," -"這將簡化對所有零件的管理。" +"你知道嗎?你可以把一個有很多零件的模型安排到多個獨立的列印板,\n" +"然後列印出來,這將簡化對所有零件的管理。" #: resources/data/hints.ini: [hint:Speed up your print with Adaptive Layer #: Height] @@ -15893,7 +16567,8 @@ msgid "" "Layer Height option? Check it out!" msgstr "" "自適應層高度加速列印\n" -"你知道嗎,你可以使用\"自適應層高度\"選項可以更快地列印模型。試試看!" +"你知道嗎?你可以使用\"自適應層高度\"選項可以更快地列印模型。\n" +"試試看!" #: resources/data/hints.ini: [hint:Support painting] msgid "" @@ -15903,8 +16578,8 @@ msgid "" "model that actually need it." msgstr "" "自訂支撐\n" -"你知道嗎,你可以手動繪製增加/隱藏支撐的位置,此功能使僅將支撐材料放置在實際需" -"要的模型截面上變得容易。" +"你知道嗎?你可以手動繪製增加/隱藏支撐的位置,此功能使僅將支撐\n" +"材料放置在實際需要的模型截面上變得容易。" #: resources/data/hints.ini: [hint:Different types of supports] msgid "" @@ -15914,8 +16589,8 @@ msgid "" "print speed. Check them out!" msgstr "" "支撐類型\n" -"你知道嗎,有多種可選的支撐類型,樹狀支撐非常適合人物/動物模型,同時可以節線材" -"並提高列印速度。試試看!" +"你知道嗎?有多種可選的支撐類型,樹狀支撐非常適合人物/動物模型,\n" +"同時可以節線材並提高列印速度。試試看!" #: resources/data/hints.ini: [hint:Printing Silk Filament] msgid "" @@ -15925,8 +16600,8 @@ msgid "" "the best results." msgstr "" "列印絲綢線材\n" -"你知道嗎,絲綢線材需要特別考慮才能成功列印。為了獲得最佳效果,通常建議使用較" -"高的溫度和較低的速度。" +"你知道嗎?絲綢線材需要特別考慮才能成功列印。為了獲得最佳效果,\n" +"通常建議使用較高的溫度和較低的速度。" #: resources/data/hints.ini: [hint:Brim for better adhesion] msgid "" @@ -15934,9 +16609,9 @@ msgid "" "Did you know that when printing models have a small contact interface with " "the printing surface, it's recommended to use a brim?" msgstr "" -"使用 Brim(裙邊)\n" -"你知道嗎?當模型與熱床表面的接觸面積較小時,建議使用 brim(裙邊)以提高列印成" -"功率。" +"使用 Brim\n" +"你知道嗎?當模型與熱床表面的接觸面積較小時,建議使用 Brim 以提\n" +"高列印成功率。" #: resources/data/hints.ini: [hint:Set parameters for multiple objects] msgid "" @@ -15945,7 +16620,7 @@ msgid "" "one time?" msgstr "" "為多個物件設定參數\n" -"你知道嗎,你可以同時為所有選取的物件設定切片參數。" +"你知道嗎?你可以同時為所有選取的物件設定切片參數。" #: resources/data/hints.ini: [hint:Stack objects] msgid "" @@ -15962,7 +16637,8 @@ msgid "" "support/objects/infill during filament change?" msgstr "" "廢料運用到支撐/物件/填充中\n" -"你知道嗎?你可以在換料時將廢料運用到支撐/物件/填充,以節省浪費的線材。" +"你知道嗎?你可以在換料時將廢料運用到支撐/物件/填充,以節省浪費\n" +"的線材。" #: resources/data/hints.ini: [hint:Improve strength] msgid "" @@ -15971,7 +16647,8 @@ msgid "" "density to improve the strength of the model?" msgstr "" "提高強度\n" -"你知道嗎?你可以使用更多的牆層數和更高的疏散填充密度來提高模型的強度。" +"你知道嗎?你可以使用更多的牆層數和更高的疏散填充密度來提高模型\n" +"強度。" #: resources/data/hints.ini: [hint:When need to print with the printer door #: opened] @@ -15981,9 +16658,10 @@ msgid "" "extruder/hotend clogging when printing lower temperature filament with a " "higher enclosure temperature. More info about this in the Wiki." msgstr "" -"需要在開啟列印設備門的情況下列印\n" -"你知道當列印低溫耗材且機身溫度較高時,開啟列印設備門可以減少擠出機/熱端堵塞的" -"機率嗎?更多資訊請參閱Wiki。" +"當列印時需要打開機門時\n" +"你知道嗎?在列印低溫耗材且機箱內溫度較高的情況下,打開列印\n" +"設備機門可以有效降低擠出機或噴嘴堵塞的機率。\n" +"詳情可在Wiki上查看。" #: resources/data/hints.ini: [hint:Avoid warping] msgid "" @@ -15993,1226 +16671,202 @@ msgid "" "probability of warping." msgstr "" "避免翹曲\n" -"你知道當列印容易翹曲的材料(如 ABS)時,適當提高熱床溫度可以降低翹曲的機率" -"嗎?" +"你知道嗎?當列印容易翹曲的材料(如 ABS)時,適當提高熱床溫度\n" +"可以降低翹曲的機率。" -#~ msgid "Text contains character glyph (represented by '?')unknown by font." -#~ msgstr "文字包含字型無法識別的字形(以 '?' 表示)。" +#~ msgid "Orca Slicer" +#~ msgstr "Orca Slicer" -#~ msgid "ShiftLeft mouse button" -#~ msgstr "Shift左滑鼠" +#~ msgid "Current Cabin humidity" +#~ msgstr "濕度" -#~ msgctxt "Verb" -#~ msgid "Scale" -#~ msgstr "縮放" - -#~ msgid "Orca Slicer " -#~ msgstr "Orca Slicer " - -#~ msgid "" -#~ ")to locate the toolhead's position. This prevents device moving beyond " -#~ "the printable boundary and causing equipment wear." -#~ msgstr ")來定位目前工具頭位置,以防止移動時超出邊界造成設備損壞" - -#~ msgid "" -#~ "Diameter of the print bed. It is assumed that origin (0,0)is located in " -#~ "the center." -#~ msgstr "熱床直徑。假定原點(0,0)位於中心。" - -#~ msgid "" -#~ "The current chamber temperature or the target chamber temperature exceeds " -#~ "45℃.In order to avoid extruder clogging,low temperature filament(PLA/PETG/" -#~ "TPU)is not allowed to be loaded." -#~ msgstr "" -#~ "目前設備內部溫度超過 45℃。為避免阻塞,不允許進料低溫線材(PLA / PETG / " -#~ "TPU)。" - -#~ msgid "" -#~ "Low temperature filament(PLA/PETG/TPU)is loaded in the extruder.In order " -#~ "to avoid extruder clogging,it is not allowed to set the chamber " -#~ "temperature above 45℃." -#~ msgstr "" -#~ "為避免堵塞,使用低溫線材(PLA / PETG / TPU)時,不充許將設備內部溫度設置於" -#~ "45℃以上" - -#, fuzzy, c-format, boost-format -#~ msgid "" -#~ "Successfully unmounted. The device %s(%s)can now be safely removed from " -#~ "the computer." -#~ msgstr "卸載成功。設備 %s(%s)現在可能安全地從電腦移除。" +#~ msgid "Stopped." +#~ msgstr "已經停止。" #, c-format, boost-format -#~ msgid "Ejecting of device %s(%s)has failed." -#~ msgstr "退出設備 %s(%s)失敗。" +#~ msgid "Connect failed [%d]!" +#~ msgstr "連接失敗 [%d]!" -#~ msgid "" -#~ "\"Fix Model\" feature is currently only on Windows. Please repair the " -#~ "model on Orca Slicer(windows)or CAD softwares." -#~ msgstr "" -#~ "\"修復模型\"功能目前僅適用於 Windows 系統。請在 Windows 版本的 Orca " -#~ "slicer 或 CAD 軟體上修復模型。" +#~ msgid "Initialize failed (Device connection not ready)!" +#~ msgstr "初始化失敗(未連接列印設備)" + +#~ msgid "Initialize failed (Storage unavailable, insert SD card.)!" +#~ msgstr "初始化失敗(存儲不可用,請插入 SD 卡)!" #, c-format, boost-format -#~ msgid "" -#~ "The selected printer (%s)is incompatible with the chosen printer profile " -#~ "in the slicer (%s)." -#~ msgstr "以選的機臺(%s)與切片軟體內所選的機臺預設(%s)不相容" +#~ msgid "Initialize failed (%s)!" +#~ msgstr "初始化失敗(%s)!" -#~ msgid "Cool plate" -#~ msgstr "低溫列印板" - -#~ msgid "Lift Z Enforcement" -#~ msgstr "強化抬Z策略" - -#~ msgid "Flushing volume (mm³)for each filament pair." -#~ msgstr "在兩個線材間切換所需的廢料體積(mm³)" - -#, c-format, boost-format -#~ msgid "A new Network plug-in(%s)available, Do you want to install it?" -#~ msgstr "新版的網路插件( %s)可用,是否要安裝?" +#~ msgid "LAN Connection Failed (Sending print file)" +#~ msgstr "區域網路連接失敗(傳送列印檔案)" #~ msgid "" -#~ "Maximum detour distance for avoiding crossing wall. Don't detour if the " -#~ "detour distance is large than this value. Detour length could be " -#~ "specified either as an absolute value or as percentage (for example 50%)" -#~ "of a direct travel path. Zero to disable" +#~ "Step 1, please confirm Orca Slicer and your printer are in the same LAN." +#~ msgstr "第1步,請確認 Orca Slicer 和你的列印設備在同一個區域網路上。" + +#~ msgid "" +#~ "Step 2, if the IP and Access Code below are different from the actual " +#~ "values on your printer, please correct them." #~ msgstr "" -#~ "避免跨越外牆時的最大繞行距離。如果繞行距離大於該數值,則不繞行。繞行距離可" -#~ "為絕對值或直線路徑的百分比(例如 50%)。0 表示禁用" +#~ "步驟2, 如果下面的 IP 和訪問碼與列印設備上的實際值不同,請輸入正確的數值。" + +#~ msgid "Step 3: Ping the IP address to check for packet loss and latency." +#~ msgstr "步驟 3:Ping 該 IP 地址以檢查封包遺失和延遲。" + +#~ msgid "IP and Access Code Verified! You may close the window" +#~ msgstr "IP 和存取碼已驗證!可以關閉視窗" + +#~ msgid "Force cooling for overhang and bridge" +#~ msgstr "懸空/橋接強制冷卻" #~ msgid "" -#~ "This separate setting will affect the speed of perimeters having radius " -#~ "<= small_perimeter_threshold (usually holes). If expressed as percentage " -#~ "(for example: 80%)it will be calculated on the outer wall speed setting " -#~ "above. Set to zero for auto." +#~ "Enable this option to optimize part cooling fan speed for overhang and " +#~ "bridge to get better cooling" +#~ msgstr "勾選這個選項將自動最佳化橋接和懸空的風扇轉速以獲得更好的冷卻" + +#~ msgid "Fan speed for overhang" +#~ msgstr "懸空風扇速度" + +#~ msgid "" +#~ "Force part cooling fan to be this speed when printing bridge or overhang " +#~ "wall which has large overhang degree. Forcing cooling for overhang and " +#~ "bridge can get better quality for these part" #~ msgstr "" -#~ "這個單獨的設定將影響半徑 <= small_perimeter_threshold(通常是圓孔)的周長" -#~ "的速度。 如果以百分比表示(例如:80%),它將根據上面的外牆速度設定進行計" -#~ "算。 自動設定為零。" +#~ "當列印橋接和超過臨界值設定的懸空時,強制物件冷卻風扇為設定的速度數值。強制" +#~ "冷卻能夠使懸空和橋接獲得更好的列印品質" -#, fuzzy -#~ msgid "Pressure advance(Klipper)AKA Linear advance factor(Marlin)" -#~ msgstr "壓力提前(Klipper)或者線性提前(Marlin)" - -#~ msgid "" -#~ "If enabled, this setting will ensure external perimeters are not slowed " -#~ "down to meet the minimum layer time. This is particularly helpful in the " -#~ "below scenarios:\n" -#~ "\n" -#~ " 1. To avoid changes in shine when printing glossy filaments \n" -#~ "2. To avoid changes in external wall speed which may create slight wall " -#~ "artifacts that appear like z banding \n" -#~ "3. To avoid printing at speeds which cause VFAs (fine artifacts)on the " -#~ "external walls\n" -#~ "\n" -#~ msgstr "" -#~ "如果啟用,這個設定將確保外圍輪廓不會因為達到最小層時間而減慢速度。這在以下" -#~ "情境中特別有幫助:\n" -#~ "\n" -#~ " 1. 避免在列印光面材料時發生光澤變化\n" -#~ " 2. 避免外牆速度變化,這可能會產生類似Z帶紋的牆面瑕疵\n" -#~ " 3. 避免以會在外牆上造成細微瑕疵(細節瑕疵,VFA)速度列印\n" -#~ "\n" - -#~ msgid "" -#~ "Connect an infill line to an internal perimeter with a short segment of " -#~ "an additional perimeter. If expressed as percentage (example: 15%)it is " -#~ "calculated over infill extrusion width. Orca Slicer tries to connect two " -#~ "close infill lines to a short perimeter segment. If no such perimeter " -#~ "segment shorter than infill_anchor_max is found, the infill line is " -#~ "connected to a perimeter segment at just one side and the length of the " -#~ "perimeter segment taken is limited to this parameter, but no longer than " -#~ "anchor_length_max. \n" -#~ "Set this parameter to zero to disable anchoring perimeters connected to a " -#~ "single infill line." -#~ msgstr "" -#~ "將內填充線連接到內牆邊緣,並使用一小段額外的邊緣。如果以百分比表示(例如:" -#~ "15%),則是基於內填充擠出寬度來計算。Orca Slicer 會嘗試將兩條相近的內填充" -#~ "線連接到一段短邊緣。如果找不到小於 infill_anchor_max 的邊緣段,則內填充線" -#~ "將只連接到一側的邊緣段,且所選的邊緣段長度會限制在此參數範圍內,但不超過" -#~ "\"錨點長度\"最大值。若將此參數設為零,則會禁用連接到單一內填充線的錨固邊" -#~ "緣。" - -#~ msgid "" -#~ "Connect an infill line to an internal perimeter with a short segment of " -#~ "an additional perimeter. If expressed as percentage (example: 15%)it is " -#~ "calculated over infill extrusion width. Orca Slicer tries to connect two " -#~ "close infill lines to a short perimeter segment. If no such perimeter " -#~ "segment shorter than this parameter is found, the infill line is " -#~ "connected to a perimeter segment at just one side and the length of the " -#~ "perimeter segment taken is limited to infill_anchor, but no longer than " -#~ "this parameter. \n" -#~ "If set to 0, the old algorithm for infill connection will be used, it " -#~ "should create the same result as with 1000 & 0." -#~ msgstr "" -#~ "將內填充線連接到內牆邊緣,並使用一小段額外的邊緣。如果以百分比表示(例如:" -#~ "15%),則是基於內填充擠出寬度來計算。Orca Slicer 會嘗試將兩條相近的內填充" -#~ "線連接到一段短邊緣。如果找不到小於此參數的邊緣段,則內填充線將只連接到一側" -#~ "的邊緣段,且所選的邊緣段長度會限制於infill_anchor,但不會超過此參數。\n" -#~ "如果設為0,則會使用舊的內填充連接算法,這應該會產生與設為 1000 和 0 相同的" -#~ "結果。" - -#~ msgid "" -#~ "Enable this to add line number(Nx)at the beginning of each G-Code line" -#~ msgstr "打開這個設定,G-code 的每一行的開頭會增加Nx標註行號。" - -#~ msgid "" -#~ "This parameter smooths out sudden extrusion rate changes that happen when " -#~ "the printer transitions from printing a high flow (high speed/larger " -#~ "width)extrusion to a lower flow (lower speed/smaller width)extrusion " -#~ "and vice versa.\n" -#~ "\n" -#~ "It defines the maximum rate by which the extruded volumetric flow in mm3/" -#~ "sec can change over time. Higher values mean higher extrusion rate " -#~ "changes are allowed, resulting in faster speed transitions.\n" -#~ "\n" -#~ "A value of 0 disables the feature. \n" -#~ "\n" -#~ "For a high speed, high flow direct drive printer (like the Bambu lab or " -#~ "Voron)this value is usually not needed. However it can provide some " -#~ "marginal benefit in certain cases where feature speeds vary greatly. For " -#~ "example, when there are aggressive slowdowns due to overhangs. In these " -#~ "cases a high value of around 300-350mm3/s2 is recommended as this allows " -#~ "for just enough smoothing to assist pressure advance achieve a smoother " -#~ "flow transition.\n" -#~ "\n" -#~ "For slower printers without pressure advance, the value should be set " -#~ "much lower. A value of 10-15mm3/s2 is a good starting point for direct " -#~ "drive extruders and 5-10mm3/s2 for Bowden style. \n" -#~ "\n" -#~ "This feature is known as Pressure Equalizer in Prusa slicer.\n" -#~ "\n" -#~ "Note: this parameter disables arc fitting." -#~ msgstr "" -#~ "此參數是列印設備從列印高流量(高速/較大寬度)擠出轉換到較低流量(較低速度/" -#~ "較小寬度)擠出時,用於平滑突然變擠出速率,反之亦然。\n" -#~ "它定義了擠出體積流量(mm3/秒)隨時間變化的最大速率。數值越高意味著允許更高" -#~ "的擠出速率變化,從而實現更快的速度轉換。\n" -#~ "\n" -#~ "值為 0 會停用該功能。\n" -#~ "\n" -#~ "對於高速、高流量的機型(如 Bambu lab 或 Voron),通常不需要此設置。但是," -#~ "在某些速度差異很大的情況下,它可以提供一些邊際效益。 例如,當出現因懸空而" -#~ "導致的劇烈減速時。在這些情況下,建議使用大約 300-350 mm3/s2,因為這樣剛" -#~ "好允許足夠的平滑,以幫助壓力提前實現更平滑的流量過渡。\n" -#~ "\n" -#~ "對於速度較慢且沒有壓力提前的機種,應將此值設置為較低。對於近程擠出機來說\n" -#~ "10-15 mm3/s2 是一個好的起點,而對於遠程擠出機來說是 5-10 mm3/s2。\n" -#~ "此功能在 Prusa 切片軟體中稱為壓力均衡器。\n" -#~ "\n" -#~ "注意:此參數會停用圓弧擬合。" - -#~ msgid "Z hop when retract" -#~ msgstr "回抽時抬升Z" - -#~ msgid "" -#~ "Enable this option to omit the custom Change filament G-code only at the " -#~ "beginning of the print. The tool change command (e.g., T0)will be " -#~ "skipped throughout the entire print. This is useful for manual multi-" -#~ "material printing, where we use M600/PAUSE to trigger the manual filament " -#~ "change action." -#~ msgstr "" -#~ "啟用此選項以僅在列印開始時省略自訂更換線材 G-code。工具更換命令(例如 T0)" -#~ "將在整個列印過程中跳過。這對於手動多線材列印很有用,我們使用 M600/PAUSE 來" -#~ "觸發手動線材更換動作。" - -#~ msgid "" -#~ "This value will be added (or subtracted)from all the Z coordinates in " -#~ "the output G-code. It is used to compensate for bad Z endstop position: " -#~ "for example, if your endstop zero actually leaves the nozzle 0.3mm far " -#~ "from the print bed, set this to -0.3 (or fix your endstop)." -#~ msgstr "" -#~ "該設定值將從輸出 G-code 中的所有 Z 座標增加(或 減少)。 它用於 Z 軸限位器" -#~ "位置的補償:例如,你的 Z 軸限位器實際上使噴嘴距離列印板高了 0.3 mm,請將其" -#~ "設定為 -0.3。" - -#~ msgid "" -#~ "normal(auto)and tree(auto)is used to generate support automatically. If " -#~ "normal(manual)or tree(manual)is selected, only support enforcers are " -#~ "generated" -#~ msgstr "" -#~ "普通(自動)和樹狀(自動)用於自動產生支撐體。如果選擇普通(手動)或樹狀" -#~ "(手動),僅會在支撐強制面上產生支撐。" - -#~ msgid "Expand (+)or shrink (-)the horizontal span of normal support" -#~ msgstr "在水平方向對普通支撐進行延伸(+)或收縮(-)" - -#~ msgid "" -#~ "For high-temperature materials like ABS, ASA, PC, and PA, a higher " -#~ "chamber temperature can help suppress or reduce warping and potentially " -#~ "lead to higher interlayer bonding strength. However, at the same time, a " -#~ "higher chamber temperature will reduce the efficiency of air filtration " -#~ "for ABS and ASA. \n" -#~ "\n" -#~ "For PLA, PETG, TPU, PVA, and other low-temperature materials, this option " -#~ "should be disabled (set to 0)as the chamber temperature should be low to " -#~ "avoid extruder clogging caused by material softening at the heat break.\n" -#~ "\n" -#~ "If enabled, this parameter also sets a gcode variable named " -#~ "chamber_temperature, which can be used to pass the desired chamber " -#~ "temperature to your print start macro, or a heat soak macro like this: " -#~ "PRINT_START (other variables)CHAMBER_TEMP=[chamber_temperature]. This " -#~ "may be useful if your printer does not support M141/M191 commands, or if " -#~ "you desire to handle heat soaking in the print start macro if no active " -#~ "chamber heater is installed." -#~ msgstr "" -#~ "對於 ABS、ASA、PC 和 PA 等高溫材料,較高的機箱溫度有助於抑制或減少翹曲,並" -#~ "可能提高層間結合強度。然而,同時,較高的機箱溫度會降低列印 ABS 和 ASA 時的" -#~ "空氣過濾效率。\n" -#~ "\n" -#~ "對於 PLA、PETG、TPU、PVA 和其他低溫材料,不應使用此選項(設置為 0),因為" -#~ "機箱溫度應較低,以避免由於材料在喉管軟化而導致擠出機堵塞。\n" -#~ "\n" -#~ "如果啟用,此參數還設置了一個名為 chamber_temperature 的 gcode 變數,可將所" -#~ "需的機箱溫度傳遞給列印巨集,例如:PRINT_START(其他變數)" -#~ "CHAMBER_TEMP=[chamber_temperature]。如果你的印表設備不支持 M141/M191 命" -#~ "令,或者你希望在沒有安裝主動機箱加熱器的情況下在列印開始巨集中處理熱浸處" -#~ "理,這可能很有用。" - -#~ msgid "" -#~ "Search for almost-circular holes that span more than one layer and " -#~ "convert the geometry to polyholes. Use the nozzle size and the (biggest)" -#~ "diameter to compute the polyhole.\n" -#~ "See http://hydraraptor.blogspot.com/2011/02/polyholes.html" -#~ msgstr "" -#~ "搜索跨越多層的近似圓形孔,並將幾何形狀轉換為多邊形孔。使用噴嘴尺寸和(最" -#~ "大)直徑來計算多邊形孔。\n" -#~ "參見http://hydraraptor.blogspot.com/2011/02/polyholes.html" - -#~ msgid "" -#~ "Width of the wall that will replace thin features (according to the " -#~ "Minimum feature size)of the model. If the Minimum wall width is thinner " -#~ "than the thickness of the feature, the wall will become as thick as the " -#~ "feature itself. It's expressed as a percentage over nozzle diameter" -#~ msgstr "" -#~ "用於替換模型細小特徵(根據最小特徵尺寸)的牆線寬。如果牆最小線寬小於最小特" -#~ "徵的厚度,則牆將變得和特徵本身一樣厚。參數值表示為相對噴嘴直徑的百分比" - -#~ msgid "" -#~ "No layers were detected. You might want to repair your STL file(s)or " -#~ "check their size or thickness and retry.\n" -#~ msgstr "" -#~ "沒有切到層次。你可能需要修復 STL 檔案,或檢查模型尺寸、厚度等,之後再重" -#~ "試。\n" - -#~ msgid "" -#~ "Unknown file format. Input file must have .stl, .obj, .amf(.xml)" -#~ "extension." -#~ msgstr "未知的檔案格式。輸入檔案的副檔名必須為 .stl、.obj 或 .amf(.xml)。" - -#~ msgid "Use forward slashes ( / )as a directory separator if needed." -#~ msgstr "如有需要,請使用正斜槓( / )作為目錄分隔符號。" - -#~ msgid "" -#~ "Sandwich mode\n" -#~ "Did you know that you can use sandwich mode (inner-outer-inner)to " -#~ "improve precision and layer consistency if your model doesn't have very " -#~ "steep overhangs?" -#~ msgstr "" -#~ "三明治模式\n" -#~ "如果模型沒有非常陡峭的懸垂部分,可以使用三明治模式(內-外-內)來提高精度和" -#~ "層次一致性" - -#~ msgid "Reverse on odd" -#~ msgstr "反轉奇數層方向" - -#, no-c-format, no-boost-format -#~ msgid "" -#~ "Number of mm the overhang need to be for the reversal to be considered " -#~ "useful. Can be a % of the perimeter width.\n" -#~ "Value 0 enables reversal on every odd layers regardless." -#~ msgstr "" -#~ "判定懸空反轉需要的值(mm),可以是線寬的百分比。\n" -#~ " 0 值則會在每個奇數層上啟用反向。" - -#~ msgid "" -#~ "While printing by Object, the extruder may collide skirt.\n" -#~ "Thus, reset the skirt layer to 1 to avoid that." -#~ msgstr "逐件列印時,擠出機可能與裙邊碰撞。因此將裙邊的層數重設為 1。" - -#~ msgid "" -#~ "The geometry will be decimated before dectecting sharp angles. This " -#~ "parameter indicates the minimum length of the deviation for the " -#~ "decimation.\n" -#~ "0 to deactivate" -#~ msgstr "" -#~ "在偵測尖銳角度之前,幾何形狀將被簡化。此參數表示簡化的最小偏差長度。\n" -#~ "設為 0 以停用" - -#, fuzzy -#~ msgid "" -#~ "Start the fan this number of seconds earlier than its target start time " -#~ "(you can use fractional seconds). It assumes infinite acceleration for " -#~ "this time estimation, and will only take into account G1 and G0 moves " -#~ "(arc fitting is unsupported).\n" -#~ "It won't move fan commands from custom gcodes (they act as a sort of " -#~ "'barrier').\n" -#~ "It won't move fan comands into the start gcode if the 'only custom start " -#~ "gcode' is activated.\n" -#~ "Use 0 to deactivate." -#~ msgstr "" -#~ "將風扇啟動指令往前移動指定時間以補償風扇的啟動時間。目前支援 G1 G0 指令\n" -#~ "設為 0 以禁用此選項" - -#~ msgid "Limited" -#~ msgstr "有限" - -#~ msgid "Shrinkage" -#~ msgstr "線材收縮率" - -#, fuzzy -#~ msgid "" -#~ "Decrease this value slightly(for example 0.9) to reduce the amount of " -#~ "material for bridge, to improve sag" -#~ msgstr "稍微減小這個數值(比如 0.9)可以減小橋接的線材量,來改善下垂。" - -#, fuzzy -#~ msgid "" -#~ "This factor affects the amount of material for top solid infill. You can " -#~ "decrease it slightly to have smooth surface finish" -#~ msgstr "稍微減小這個數值(比如 0.97)可以來改善頂面的光滑程度。" - -#, fuzzy -#~ msgid "This factor affects the amount of material for bottom solid infill" -#~ msgstr "首層流量調整係數,預設為 1.0" - -#~ msgid "" -#~ "Enable this option to slow printing down in areas where potential curled " -#~ "perimeters may exist" -#~ msgstr "啟用此選項降低可能存在潛在翹邊區域的列印速度" - -#~ msgid "Speed of bridge and completely overhang wall" -#~ msgstr "橋接和完全懸空的外牆的列印速度" - -#~ msgid "" -#~ "Speed of internal bridge. If the value is expressed as a percentage, it " -#~ "will be calculated based on the bridge_speed. Default value is 150%." -#~ msgstr "" -#~ "內部橋接速度。 如果該值以百分比表示,則會根據 橋接速度 進行計算。 預設值" -#~ "為 150%" - -#~ msgid "Time to load new filament when switch filament. For statistics only" -#~ msgstr "切換線材時,進料所需的時間。只用於統計資訊。" - -#~ msgid "" -#~ "Time to unload old filament when switch filament. For statistics only" -#~ msgstr "切換線材時,退料所需時間。只用於統計資訊。" - -#~ msgid "" -#~ "Time for the printer firmware (or the Multi Material Unit 2.0) to load a " -#~ "new filament during a tool change (when executing the T code). This time " -#~ "is added to the total print time by the G-code time estimator." -#~ msgstr "" -#~ "在換色時(執行 T-code ,如 T1,T2),列印設備韌體(或 Multi Material Unit " -#~ "2.0)載入新線材的所需時間。該時間將會被 G-code 時間評估功能加到總列印時間" -#~ "上去。" - -#~ msgid "" -#~ "Time for the printer firmware (or the Multi Material Unit 2.0) to unload " -#~ "a filament during a tool change (when executing the T code). This time is " -#~ "added to the total print time by the G-code time estimator." -#~ msgstr "" -#~ "換色期間(執行T-cide 時如 T1,T2),列印設備韌體(或 Multi Material Unit " -#~ "2.0)退出線材所需時間。該時間將會被 G-code 時間評估功能加到總列印時間上" -#~ "去。" - -#~ msgid "Filter out gaps smaller than the threshold specified" -#~ msgstr "忽略小於指定數值的間隙" - -#~ msgid "" -#~ "Enable this option for chamber temperature control. An M191 command will " -#~ "be added before \"machine_start_gcode\"\n" -#~ "G-code commands: M141/M191 S(0-255)" -#~ msgstr "" -#~ "啟用此選項以控製列印設備內部溫度。 在「machine_start_gcode」之前將會新增一" -#~ "個M191指令\n" -#~ "G碼指令:M141/M191 S(0-255)" - -#~ msgid "Wipe tower extruder" -#~ msgstr "換料塔擠出機" - -#~ msgid "Printer local connection failed, please try again." -#~ msgstr "列印設備區域網路連接失敗,請重試。" - -#~ msgid "" -#~ "Please find the details of Flow Dynamics Calibration from our wiki.\n" -#~ "\n" -#~ "Usually the calibration is unnecessary. When you start a single color/" -#~ "material print, with the \"flow dynamics calibration\" option checked in " -#~ "the print start menu, the printer will follow the old way, calibrate the " -#~ "filament before the print; When you start a multi color/material print, " -#~ "the printer will use the default compensation parameter for the filament " -#~ "during every filament switch which will have a good result in most " -#~ "cases.\n" -#~ "\n" -#~ "Please note there are a few cases that will make the calibration result " -#~ "not reliable: using a texture plate to do the calibration; the build " -#~ "plate does not have good adhesion (please wash the build plate or apply " -#~ "gluestick!)...You can find more from our wiki.\n" -#~ "\n" -#~ "The calibration results have about 10 percent jitter in our test, which " -#~ "may cause the result not exactly the same in each calibration. We are " -#~ "still investigating the root cause to do improvements with new updates." -#~ msgstr "" -#~ "請從我們的wiki中找到流量動態校準的詳細資訊。\n" -#~ "\n" -#~ "通常情況下,校準是不必要的。當你開始單色/單線材列印,並在列印開始選單中勾" -#~ "選了\"流量動態校準\"選項時,列印設備將按照舊的方式,在列印前校準絲料;當你" -#~ "開始多色/多線材列印時,列印設備將在每次換絲料時使用預設的補償參數,這在大" -#~ "多數情況下會產生良好的效果。\n" -#~ "\n" -#~ "請注意,有幾種情況會導致校準結果不可靠:使用紋理板進行校準;建模平台黏附效" -#~ "果不好(請清洗建模平台或塗抹膠棒)... 你可以在我們的wiki中找到更多資訊。\n" -#~ "\n" -#~ "在我們的測試中,校準結果有約 10% 的波動,這可能導致每次校準的結果略有不" -#~ "同。我們仍在調查根本原因,並通過新的更新進行改進。" - -#~ msgid "" -#~ "Only one of the results with the same name will be saved. Are you sure " -#~ "you want to overrides the other results?" -#~ msgstr "相同名稱的結果只會儲存一個。確定要覆蓋其他結果嗎?" - -#, c-format, boost-format -#~ msgid "" -#~ "There is already a historical calibration result with the same name: %s. " -#~ "Only one of the results with the same name is saved. Are you sure you " -#~ "want to overrides the historical result?" -#~ msgstr "" -#~ "已經存在一個具有相同名稱的校準結果:%s。相同名稱的結果只會儲存一個。確定要" -#~ "覆蓋嗎?" - -#~ msgid "Please find the cornor with perfect degree of extrusion" -#~ msgstr "請在你的列印板上找到最接近完美的直角" - -#~ msgid "V" -#~ msgstr "版本:" - -#~ msgid "" -#~ "Orca Slicer is based on BambuStudio by Bambulab, which is from " -#~ "PrusaSlicer by Prusa Research. PrusaSlicer is from Slic3r by Alessandro " -#~ "Ranellucci and the RepRap community" -#~ msgstr "" -#~ "Orca Slicer 是基於 Bambulab 的 BambuStudio 開發,而 BambuStudio 源自於 " -#~ "Prusa Research 的 PrusaSlicer。PrusaSlicer 源自於 Alessandro Ranellucci " -#~ "的 Slic3r 和 RepRap 社群" - -#~ msgid "Export &Configs" -#~ msgstr "匯出設定檔" - -#~ msgid "Infill direction" -#~ msgstr "填充方向" - -#, fuzzy -#~ msgid "" -#~ "Enable this to get a G-code file which has G2 and G3 moves. And the " -#~ "fitting tolerance is same with resolution" -#~ msgstr "" -#~ "打開這個設定,匯出的 G-code 將包含 G2 G3 指令。圓弧擬合的容許值和精度相" -#~ "同。" - -#~ msgid "" -#~ "Infill area is enlarged slightly to overlap with wall for better bonding. " -#~ "The percentage value is relative to line width of sparse infill" -#~ msgstr "" -#~ "填充區域被輕微擴大,並和外牆產生重疊,進而產生更好的黏接。表示為相對稀疏填" -#~ "充的線寬的百分比。" - -#~ msgid "Unload Filament" -#~ msgstr "退料" - -#~ msgid "" -#~ "Choose an AMS slot then press \"Load\" or \"Unload\" button to " -#~ "automatically load or unload filiament." -#~ msgstr "選擇 1 個 AMS 槽位,然後點擊進料/退料按鈕以自動進料/退料。" - -#~ msgid "MainBoard" -#~ msgstr "主板" - -#~ msgid "active" -#~ msgstr "活動的" - -#~ msgid "Jump to layer" -#~ msgstr "轉換到層" - -#~ msgid "Cabin humidity" -#~ msgstr "AMS 內部濕度" - -#~ msgid "" -#~ "Green means that AMS humidity is normal, orange represent humidity is " -#~ "high, red represent humidity is too high.(Hygrometer: lower the better.)" -#~ msgstr "" -#~ "綠色表示 AMS 濕度正常,橙色表示濕度高,紅色表示濕度過高。(濕度計:越低越" -#~ "好。)" - -#~ msgid "Desiccant status" -#~ msgstr "乾燥劑狀態" - -#~ msgid "" -#~ "A desiccant status lower than two bars indicates that desiccant may be " -#~ "inactive. Please change the desiccant.(The bars: higher the better.)" -#~ msgstr "" -#~ "乾燥劑狀態低於兩格表示乾燥劑可能是趨近無效。請更換乾燥劑。(指示格:越高越" -#~ "好。)" - -#~ msgid "" -#~ "Note: When the lid is open or the desiccant pack is changed, it can take " -#~ "hours or a night to absorb the moisture. Low temperatures also slow down " -#~ "the process. During this time, the indicator may not represent the " -#~ "chamber accurately." -#~ msgstr "" -#~ "注意:當 AMS 蓋子打開或更換乾燥劑包裝時,可能需要數小時或一晚才能吸收水" -#~ "分,低溫也會減慢這一過程。在此期間,濕度指示的數值可能並不準確。" - -#~ msgid "" -#~ "Note: if new filament is inserted during printing, the AMS will not " -#~ "automatically read any information until printing is completed." -#~ msgstr "" -#~ "注意:如果是在列印過程中插入新的線材,AMS 會在列印作業結束後自動讀取此線材" -#~ "信息。" - -#, boost-format -#~ msgid "Succeed to export G-code to %1%" -#~ msgstr "成功匯出 G-code 至 %1%" - -#~ msgid "Initialize failed (No Device)!" -#~ msgstr "初始化失敗(沒有列印設備)!" - -#~ msgid "Initialize failed (No Camera Device)!" -#~ msgstr "初始化失敗(沒有攝影機)" - -#~ msgid "" -#~ "Printer is busy downloading, Please wait for the downloading to finish." -#~ msgstr "列印設備正忙於下載,請等待下載完成。" - -#~ msgid "Initialize failed (Not supported on the current printer version)!" -#~ msgstr "初始化失敗(目前列印設備的版本不支援)!" - -#~ msgid "Initialize failed (Not accessible in LAN-only mode)!" -#~ msgstr "初始化失敗(在區域網路模式中不可存取)!" - -#~ msgid "Initialize failed (Missing LAN ip of printer)!" -#~ msgstr "初始化失敗(未找到列印設備的區域網路地址)!" - -#, c-format, boost-format -#~ msgid "Stopped [%d]!" -#~ msgstr "已停止 [%d]!" - -#, c-format, boost-format -#~ msgid "Load failed [%d]!" -#~ msgstr "載入失敗 [%d]!" - -#, c-format, boost-format -#~ msgid "No files [%d]" -#~ msgstr "檔案清單為空[%d]" - -#, c-format, boost-format -#~ msgid "Load failed [%d]" -#~ msgstr "載入失敗 [%d]" - -#~ msgid "Failed to fetching model information from printer." -#~ msgstr "無法從列印設備獲取模型資訊。" - -#~ msgid "Failed to parse model informations." -#~ msgstr "解析模型資訊失敗。" - -#, boost-format -#~ msgid "" -#~ "You have changed some settings of preset \"%1%\". \n" -#~ "Would you like to keep these changed settings (new value) after switching " -#~ "preset?" -#~ msgstr "你已經更改了預設 \"%1%\",是否在切換後要保留這些更改的預設參數?" - -#~ msgid "" -#~ "You have changed some preset settings. \n" -#~ "Would you like to keep these changed settings (new value) after switching " -#~ "preset?" -#~ msgstr "你已經更改了預設參數,是否在切換後要保留這些更改的預設參數?" - -#~ msgid "" -#~ "Add solid infill near sloping surfaces to guarantee the vertical shell " -#~ "thickness (top+bottom solid layers)" -#~ msgstr "在斜面表面附近增加實心填充,以保證垂直外殼厚度(頂部+底部實心層)" - -#~ msgid "Configuration package updated to " -#~ msgstr "設定檔已更新到" - -#~ msgid "" -#~ "Improve shell precision by adjusting outer wall spacing. This also " -#~ "improves layer consistency." -#~ msgstr "最佳化外牆路徑以提高外牆精度。這個最佳化同時減少層紋" - -#~ msgid "" -#~ "The minimum printing speed for the filament when slow down for better " -#~ "layer cooling is enabled, when printing overhangs and when feature speeds " -#~ "are not specified explicitly." -#~ msgstr "" -#~ "線材最小列印速度。當啟用減速以實現更好的層冷卻、列印懸空以及未明確指定特徵" -#~ "速度時" - -#~ msgid "No sparse layers (EXPERIMENTAL)" -#~ msgstr "無稀疏層(实验性功能)" - -#~ msgid "The Config can not be loaded." -#~ msgstr "設定檔無法載入。" - -#~ msgid "The 3mf is generated by old Orca Slicer, load geometry data only." -#~ msgstr "該 3mf 檔案來自舊版本的 Orca Slicer" - -#~ msgid "Movement:" -#~ msgstr "移動:" - -#~ msgid "Movement" -#~ msgstr "移動" - -#~ msgid "Auto Segment" -#~ msgstr "自動分割" - -#~ msgid "Depth ratio" -#~ msgstr "深度" - -#~ msgid "Prizm" -#~ msgstr "稜柱" - -#~ msgid "connector is out of cut contour" -#~ msgstr "個連接件超出了切割面範圍" - -#~ msgid "connectors are out of cut contour" -#~ msgstr "個連接件超出了切割面範圍" - -#~ msgid "connector is out of object" -#~ msgstr "個連接件穿透了模型" - -#~ msgid "connectors is out of object" -#~ msgstr "個連接件穿透了模型" - -#~ msgid "" -#~ "Invalid state. \n" -#~ "No one part is selected for keep after cut" -#~ msgstr "" -#~ "無效狀態。\n" -#~ "切割後沒有選取要保留的部分" - -#~ msgid "Edit Text" -#~ msgstr "編輯文字" - -#~ msgid "Error! Unable to create thread!" -#~ msgstr "發生錯誤,無法建立執行緒。" - -#~ msgid "Exception" -#~ msgstr "異常" - -#~ msgid "Choose SLA archive:" -#~ msgstr "選擇 SLA 存檔:" - -#~ msgid "Import file" -#~ msgstr "匯入檔案" - -#~ msgid "Import model and profile" -#~ msgstr "匯入模型和設定檔" - -#~ msgid "Import profile only" -#~ msgstr "僅匯入設定檔" - -#~ msgid "Import model only" -#~ msgstr "僅匯入模型" - -#~ msgid "Accurate" -#~ msgstr "準確的" - -#~ msgid "Balanced" -#~ msgstr "平衡的" - -#~ msgid "Quick" -#~ msgstr "快速的" - -#~ msgid "" -#~ "Discribe how long the nozzle will move along the last path when retracting" -#~ msgstr "表示回抽時擦拭的移動距離。" - -#~ msgid "" -#~ "Simplify Model\n" -#~ "Did you know that you can reduce the number of triangles in a mesh using " -#~ "the Simplify mesh feature? Right-click the model and select Simplify " -#~ "model. Read more in the documentation." -#~ msgstr "" -#~ "簡化模型\n" -#~ "你知道嗎,你可以使用\"簡化模型\"功能減少模型的三角形數。在模型上單擊滑鼠右" -#~ "鍵,然後選擇\"簡化模型\"。" - -#~ msgid "" -#~ "Subtract a Part\n" -#~ "Did you know that you can subtract one mesh from another using the " -#~ "Negative part modifier? That way you can, for example, create easily " -#~ "resizable holes directly in Orca Slicer. Read more in the documentation." -#~ msgstr "" -#~ "減去部分幾何體\n" -#~ "你知道嗎,你可以使用負零件從另一個幾何體中減去另一個幾何體。例如,可以直接" -#~ "在 Orca Slicer 中建立可輕鬆調整大小的孔。" - -#~ msgid "Filling bed " -#~ msgstr "填充自動朝向" - -#, boost-format -#~ msgid "%1% infill pattern doesn't support 100%% density." -#~ msgstr "%1% 填充圖案不支援 100%% 密度。" - -#~ msgid "" -#~ "Switch to rectilinear pattern?\n" -#~ "Yes - switch to rectilinear pattern automaticlly\n" -#~ "No - reset density to default non 100% value automaticlly" -#~ msgstr "" -#~ "切換到直線圖案?\n" -#~ "是 - 自動切換到直線圖案\n" -#~ "否 - 自動將密度重設為預設的非 100% 值" - -#~ msgid "Please heat the nozzle to above 170 degree before loading filament." -#~ msgstr "請在進料前把噴嘴升溫到 170℃" - -#~ msgid "Show g-code window" -#~ msgstr "顯示 G-code 視窗" - -#~ msgid "If enabled, g-code window will be displayed." -#~ msgstr "如果啟用,將顯示 G-Code 視窗。" - -#, c-format -#~ msgid "Density of internal sparse infill, 100% means solid throughout" -#~ msgstr "內部填充密度,100% 表示整體實心" - -#~ msgid "Tree support wall loops" -#~ msgstr "樹狀支撐外牆層數" - -#~ msgid "This setting specify the count of walls around tree support" -#~ msgstr "樹狀支撐外牆層數" - -#, c-format, boost-format -#~ msgid " doesn't work at 100%% density " -#~ msgstr " 填充圖案不支援 100%% 密度" - -#~ msgid "Ctrl + Shift + Enter" -#~ msgstr "Ctrl + Shift + Enter" - -#~ msgid "Tool-Lay on Face" -#~ msgstr "工具-選擇底面" - -#~ msgid "Export as STL" -#~ msgstr "匯出為 STL" - -#~ msgid "Check cloud service status" -#~ msgstr "檢查雲端服務狀態" - -#~ msgid "Please input a valid value (K in 0~0.5)" -#~ msgstr "請輸入有效的數值(K 值的範圍為 0~0.5)" - -#~ msgid "Please input a valid value (K in 0~0.5, N in 0.6~2.0)" -#~ msgstr "請輸入有效的數值(K 值的範圍為 0~0.5, N 值的範圍為 0.6~2.0)" - -#~ msgid "Export all objects as STL" -#~ msgstr "匯出所有物件為 STL" - -#~ msgid "The 3mf is not compatible, load geometry data only!" -#~ msgstr "該 3mf 檔案與軟體不相容,將只載入幾何數據。" - -#~ msgid "Incompatible 3mf" -#~ msgstr "不相容的 3mf" - -#~ msgid "Add/Remove printers" -#~ msgstr "新增/刪除列印設備" - -#~ msgid "" -#~ "When print by object, machines with I3 structure will not generate " -#~ "timelapse videos." -#~ msgstr "按物件列印時,龍門結構的設備不會產生縮時攝影影片" - -#, c-format, boost-format -#~ msgid "%s is not supported by AMS." -#~ msgstr "AMS 不支援 %s 。" - -#~ msgid "Don't remind me of this version again" -#~ msgstr "不要再提醒我這個版本" - -#~ msgid "Error: IP or Access Code are not correct" -#~ msgstr "錯誤:IP 或訪問碼不正確" - -#~ msgid "" -#~ "Extrude perimeters that have a part over an overhang in the reverse " -#~ "direction on odd layers. This alternating pattern can drastically improve " -#~ "steep overhang." -#~ msgstr "" -#~ "在奇數層上以相反方向列印懸空部位。 這種交替模式的可以大大改善陡峭的懸空列" -#~ "印品質。" - -#~ msgid "Order of inner wall/outer wall/infil" -#~ msgstr "內牆/外牆/填充的順序" - -#~ msgid "Print sequence of inner wall, outer wall and infill. " -#~ msgstr "內圈牆/外圈牆/填充的列印順序" - -#~ msgid "inner/outer/infill" -#~ msgstr "內牆/外牆/填充" - -#~ msgid "outer/inner/infill" -#~ msgstr "外牆/內牆/填充" - -#~ msgid "infill/inner/outer" -#~ msgstr "填充/內牆/外牆" - -#~ msgid "infill/outer/inner" -#~ msgstr "填充/外牆/內牆" - -#~ msgid "inner-outer-inner/infill" -#~ msgstr "內牆/外牆/內牆/填充" - -#~ msgid "Export 3MF" -#~ msgstr "匯出 3MF" - -#~ msgid "Export project as 3MF." -#~ msgstr "匯出專案為 3MF。" - -#~ msgid "Export slicing data" -#~ msgstr "匯出切片資料" - -#~ msgid "Export slicing data to a folder." -#~ msgstr "匯出切片資料到資料夾" - -#~ msgid "Load slicing data" -#~ msgstr "匯入切片資料" - -#~ msgid "Load cached slicing data from directory" -#~ msgstr "從目錄匯入切片資料的快取" - -#~ msgid "Export STL" -#~ msgstr "匯出 STL 檔案" - -#~ msgid "Export the objects as multiple STL." -#~ msgstr "將物件匯出為多個 STL 檔案" - -#~ msgid "Slice" -#~ msgstr "切片" - -#~ msgid "Slice the plates: 0-all plates, i-plate i, others-invalid" -#~ msgstr "切片平台:0-所有平台,i-第i個平台,其他-無效" - -#~ msgid "Show command help." -#~ msgstr "顯示命令行幫助。" - -#~ msgid "Update the configs values of 3mf to latest." -#~ msgstr "將 3mf 的設定值更新為最新值。" - -#~ msgid "Load default filaments" -#~ msgstr "載入預設列印線材" - -#~ msgid "Load first filament as default for those not loaded" -#~ msgstr "載入第一個列印線材為預設代替未能載入的線材" - -#~ msgid "max triangle count per plate for slicing." -#~ msgstr "切片時每個列印板的最大三角形數。" - -#~ msgid "max slicing time per plate in seconds." -#~ msgstr "每個列印板的最大切片時間(秒)。" - -#~ msgid "Normative check" -#~ msgstr "規範性檢查" - -#~ msgid "Check the normative items." -#~ msgstr "檢查規範性項目。" - -#~ msgid "Output Model Info" -#~ msgstr "輸出模型資訊" - -#~ msgid "Output the model's information." -#~ msgstr "輸出模型的資訊。" - -#~ msgid "Export Settings" -#~ msgstr "匯出設定" - -#~ msgid "Export settings to a file." -#~ msgstr "匯出設定檔到檔案。" - -#~ msgid "Send progress to pipe" -#~ msgstr "將進度傳送到管道" - -#~ msgid "Send progress to pipe." -#~ msgstr "將進度傳送到管道。" - -#~ msgid "Arrange Options" -#~ msgstr "擺放選項" - -#~ msgid "Arrange options: 0-disable, 1-enable, others-auto" -#~ msgstr "擺放選項:0-關閉,1-開啟,其他-自動" - -#~ msgid "Repetions count" -#~ msgstr "重複次數" - -#~ msgid "Repetions count of the whole model" -#~ msgstr "整個模型的重複次數" - -#~ msgid "Convert Unit" -#~ msgstr "轉換單位" - -#~ msgid "Convert the units of model" -#~ msgstr "轉換模型的單位" - -#~ msgid "Rotate around X" -#~ msgstr "繞 X 旋轉" - -#~ msgid "Rotation angle around the X axis in degrees." -#~ msgstr "繞 X 軸的旋轉角度(以度為單位)。" - -#~ msgid "Scale the model by a float factor" -#~ msgstr "根據因子縮放模型" - -#~ msgid "Load General Settings" -#~ msgstr "載入一般設定" - -#~ msgid "Load process/machine settings from the specified file" -#~ msgstr "從指定檔案載入列印參數/設備設定" - -#~ msgid "Load Filament Settings" -#~ msgstr "載入線材設定" - -#~ msgid "Load filament settings from the specified file list" -#~ msgstr "從指定檔案清單載入線材設定" - -#~ msgid "Skip Objects" -#~ msgstr "零件跳過" - -#~ msgid "Skip some objects in this print" -#~ msgstr "列印過程中跳過一些零件" - -#, fuzzy -#~ msgid "load uptodate process/machine settings when using uptodate" -#~ msgstr "使用最新設定時載入最新的列印參數/設備設定" - -#, fuzzy -#~ msgid "" -#~ "load uptodate process/machine settings from the specified file when using " -#~ "uptodate" -#~ msgstr "使用最新設定時,從指定的檔案清單中載入最新的列印參數/設備設定。" - -#~ msgid "Output directory" -#~ msgstr "輸出路徑" - -#~ msgid "Output directory for the exported files." -#~ msgstr "匯出檔案的輸出路徑。" - -#~ msgid "Debug level" -#~ msgstr "除錯等級" - -#~ msgid "" -#~ "Sets debug logging level. 0:fatal, 1:error, 2:warning, 3:info, 4:debug, " -#~ "5:trace\n" -#~ msgstr "" -#~ "設定除錯日誌等級。0:fatal, 1:error, 2:warning, 3:info, 4:debug, " -#~ "5:trace\n" - -#, boost-format -#~ msgid "The selected preset: %1% is not found." -#~ msgstr "未找到選定的預設值:%1%。" - -#~ msgid "" -#~ "3D Scene Operations\n" -#~ "Did you know how to control view and object/part selection with mouse and " -#~ "touchpanel in the 3D scene?" -#~ msgstr "" -#~ "3D 場景操作\n" -#~ "如何在 3D 場景中使用滑鼠和觸碰面板進行視角控制和物件/零件選擇" - -#~ msgid "" -#~ "Fix Model\n" -#~ "Did you know that you can fix a corrupted 3D model to avoid a lot of " -#~ "slicing problems?" -#~ msgstr "" -#~ "修復模型\n" -#~ "你知道嗎?你可以修復一個損壞的 3D 模型以避免諸多切片問題。" - -#~ msgid "" -#~ "When need to print with the printer door opened\n" -#~ "Opening the printer door can reduce the probability of extruder/hotend " -#~ "clogging when printing lower temperature filament with a higher enclosure " -#~ "temperature. More info about this in the Wiki." -#~ msgstr "" -#~ "當需要打開列印設備門進行列印時\n" -#~ "當列印較低溫度的線材時,打開列印設備門可以減少擠出機或熱端堵塞的可能性。 " -#~ "有關此內容的更多信息,請參見 Wiki。" - -#~ msgid "Embedded" -#~ msgstr "嵌入的" - -#~ msgid "" -#~ "Orca Slicer configuration file may be corrupted and is not abled to be " -#~ "parsed.Please delete the file and try again." -#~ msgstr "" -#~ "Orca Slicer 設定檔可能已損壞而無法解析。請刪除此檔案並重新啟動 Orca " -#~ "Slicer。" - -#~ msgid "Online Models" -#~ msgstr "線上模型" - -#~ msgid "Show online staff-picked models on the home page" -#~ msgstr "在首頁上顯示推薦的模型" +#~ msgid "Cooling overhang threshold" +#~ msgstr "冷卻懸空臨界值" #, c-format #~ msgid "" #~ "Force cooling fan to be specific speed when overhang degree of printed " #~ "part exceeds this value. Expressed as percentage which indicates how much " -#~ "width of the line without support from lower layer. 0%% means forcing " +#~ "width of the line without support from lower layer. 0% means forcing " #~ "cooling for all outer wall no matter how much overhang degree" #~ msgstr "" -#~ "當列印物件的懸空程度超過此值時,強制冷卻風扇達到特定速度。\n" -#~ "用百分比表示,表明沒有下層支撐的線的寬度是多少。0%% 意味著無論懸空程度如" -#~ "何,都要對所有外壁強制冷卻。" +#~ "當列印部件的懸空角度超過此值時,強制冷卻風扇以特定速度運行。此值以百分比表" +#~ "示,指的是無下層支撐的線寬比例。設為 0%% 時,表示無論懸垂角度如何,冷卻風" +#~ "扇都會對所有外牆啟用強制冷卻" -#~ msgid "The minimum printing speed when slow down for cooling" -#~ msgstr "自動冷卻降速的最小列印速度" +#~ msgid "Bridge infill direction" +#~ msgstr "橋接填充角度" + +#~ msgid "Bridge density" +#~ msgstr "橋接密度" #~ msgid "" -#~ "There are currently no identical spare consumables available, and " -#~ "automatic replenishment is currently not possible. \n" -#~ "(Currently supporting automatic supply of consumables with the same " -#~ "brand, material type, and color)" +#~ "Density of external bridges. 100% means solid bridge. Default is 100%." +#~ msgstr "外部橋接的密度。 100% 意味著堅固的橋樑。 預設值為 100%。" + +#~ msgid "" +#~ "Improve shell precision by adjusting outer wall spacing. This also " +#~ "improves layer consistency.\n" +#~ "Note: This setting will only take effect if the wall sequence is " +#~ "configured to Inner-Outer" #~ msgstr "" -#~ "目前無相同的備用線材,暫時無法自動補充線材。\n" -#~ "(目前支援品牌、線材種類、顏色相同的線材的自動補給)" +#~ "調整外牆間距以提升外殼精度,並改善層的一致性。\n" +#~ "注意:此設定僅在牆體順序設置為由內向外時有效" -#~ msgid "Invalid nozzle diameter" -#~ msgstr "無效的噴嘴口徑" +#~ msgid "Thick bridges" +#~ msgstr "厚橋" + +#~ msgid "Filter out small internal bridges (beta)" +#~ msgstr "篩選掉短的內部橋接(Beta)" #~ msgid "" -#~ "The bed temperature exceeds filament's vitrification temperature. Please " -#~ "open the front door of printer before printing to avoid nozzle clog." +#~ "This option can help reducing pillowing on top surfaces in heavily " +#~ "slanted or curved models.\n" +#~ "\n" +#~ "By default, small internal bridges are filtered out and the internal " +#~ "solid infill is printed directly over the sparse infill. This works well " +#~ "in most cases, speeding up printing without too much compromise on top " +#~ "surface quality. \n" +#~ "\n" +#~ "However, in heavily slanted or curved models especially where too low " +#~ "sparse infill density is used, this may result in curling of the " +#~ "unsupported solid infill, causing pillowing.\n" +#~ "\n" +#~ "Disabling this option will print internal bridge layer over slightly " +#~ "unsupported internal solid infill. The options below control the amount " +#~ "of filtering, i.e. the amount of internal bridges created.\n" +#~ "\n" +#~ "Filter - enable this option. This is the default behavior and works well " +#~ "in most cases.\n" +#~ "\n" +#~ "Limited filtering - creates internal bridges on heavily slanted surfaces, " +#~ "while avoiding creating unnecessary internal bridges. This works well for " +#~ "most difficult models.\n" +#~ "\n" +#~ "No filtering - creates internal bridges on every potential internal " +#~ "overhang. This option is useful for heavily slanted top surface models. " +#~ "However, in most cases it creates too many unnecessary bridges." #~ msgstr "" -#~ "熱床溫度超過了線材的軟化溫度。請在列印前打開3D列印設備前門以防堵頭。" - -#~ msgid "Temperature of vitrificaiton" -#~ msgstr "軟化溫度" +#~ "此選項有助於減少在大幅傾斜或曲面的模型上頂部表面瑕疵。\n" +#~ "\n" +#~ "預設情況下,小型內部橋接會被篩選掉,內部實心填充會直接印刷在稀疏填充上。這" +#~ "在大多數情況下運作良好,能加速列印並且不會過度影響頂部表面質量。\n" +#~ "\n" +#~ "在大幅傾斜或曲面的模型中,特別是當使用過低的稀疏填充密度時,這可能會導致支" +#~ "撐不夠的實心填充翹曲,進而造成瑕疵。\n" +#~ "\n" +#~ "禁用此選項將在稍微未支撐的內部實心填充區列印內部橋接層。以下選項控制篩選的" +#~ "程度(創建內部橋接的數量)。\n" +#~ "\n" +#~ "篩選 - 啟用此選項。這是預設行為,並且在大多數情況下運作良好。\n" +#~ "\n" +#~ "有限篩選 - 僅在大幅傾斜的表面上創建內部橋接。這對大多數困難模型來說效果良" +#~ "好。\n" +#~ "\n" +#~ "不篩選 - 在每個可能的內部懸空處創建內部橋接。這個選項對於大幅傾斜的頂部表" +#~ "面模型很有用。然而,在大多數情況下,它會創建過多不必要的橋接。" #~ msgid "" -#~ "Material becomes soft at this temperature. Thus the heatbed cannot be " -#~ "hotter than this tempature" -#~ msgstr "材料在這個溫度開始變軟。因此熱床溫度不能超過這個溫度。" - -#~ msgid "Enable this option if machine has auxiliary part cooling fan" -#~ msgstr "如果機器有輔助物件冷卻風扇,勾選該選項" - -#~ msgid "" -#~ "Speed of auxiliary part cooling fan. Auxiliary fan will run at this speed " -#~ "during printing except the first several layers which is defined by no " -#~ "cooling layers" +#~ "This fan speed is enforced during all support interfaces, to be able to " +#~ "weaken their bonding with a high fan speed.\n" +#~ "Set to -1 to disable this override.\n" +#~ "Can only be overridden by disable_fan_first_layers." #~ msgstr "" -#~ "輔助物件冷卻風扇的轉速。輔助物件冷卻風扇將一直運行在該速度,除了設置的無需" -#~ "冷卻的前若干層" +#~ "所有支撐界面列印期間強制風扇速度,高速可以減少支撐與物件的融合。\n" +#~ "設定為 -1 以停用。" #~ msgid "" -#~ "Filter out gaps smaller than the threshold specified. This setting won't " -#~ "affect top/bottom layers" -#~ msgstr "小於指定臨界值的微小間隙不填充。本設置不會對頂/底層起作用" - -#~ msgid "Empty layers around bottom are replaced by nearest normal layers." -#~ msgstr "底部出現空層,已被最近的正常層替換。" - -#~ msgid "The model has too many empty layers." -#~ msgstr "模型有太多空層。" - -#~ msgid "Cali" -#~ msgstr "校準" - -#~ msgid "Calibration of extrusion" -#~ msgstr "擠出校準" - -#~ msgid "Push new filament into the extruder" -#~ msgstr "將新的線材推入擠出機" - -#, c-format, boost-format -#~ msgid "" -#~ "Bed temperature of other layer is lower than bed temperature of initial " -#~ "layer for more than %d degree centigrade.\n" -#~ "This may cause model broken free from build plate during printing" +#~ "A lower value results in smoother extrusion rate transitions. However, " +#~ "this results in a significantly larger gcode file and more instructions " +#~ "for the printer to process. \n" +#~ "\n" +#~ "Default value of 3 works well for most cases. If your printer is " +#~ "stuttering, increase this value to reduce the number of adjustments made\n" +#~ "\n" +#~ "Allowed values: 1-5" #~ msgstr "" -#~ "其它層的熱床溫度比首層熱床溫度低太多,超過了攝氏 %d 度。\n" -#~ "這可能導致列印中模型從熱床脫落" +#~ "較低的數值會讓擠出量的變化更平滑,但會導致 gcode 文件變得更大,列印設備需" +#~ "要處理更多指令。\n" +#~ "\n" +#~ "預設值為 3,適合大多數情況。如果你的列印設備有卡頓問題,可以調高這個數值," +#~ "減少調整次數\n" +#~ "\n" +#~ "可用範圍:1-5" #~ msgid "" -#~ "Bed temperature is higher than vitrification temperature of this " -#~ "filament.\n" -#~ "This may cause nozzle blocked and printing failure\n" -#~ "Please keep the printer open during the printing process to ensure air " -#~ "circulation or reduce the temperature of the hot bed" +#~ "normal(auto) and tree(auto) is used to generate support automatically. If " +#~ "normal(manual) or tree(manual) is selected, only support enforcers are " +#~ "generated" #~ msgstr "" -#~ "熱床溫度超過了線材的軟化溫度,線材軟化可能造成噴頭堵塞。\n" -#~ "請保持3D列印設備在列印過程中敞開,保證空氣流通或降低熱床溫度" +#~ "選擇『普通(自動)』或『樹狀(自動)』時,會自動生成支撐結構。若選擇『普通" +#~ "(手動)』或『樹狀(手動)』,則僅生成支撐強化部分" -#~ msgid "Total Time Estimation" -#~ msgstr "總時間預估" +#~ msgid "normal(auto)" +#~ msgstr "普通(自動)" -#~ msgid "Resonance frequency identification" -#~ msgstr "共振頻率辨識" +#~ msgid "tree(auto)" +#~ msgstr "樹狀(自動)" -#~ msgid "Immediately score" -#~ msgstr "立即打分" +#~ msgid "normal(manual)" +#~ msgstr "普通(手動)" -#~ msgid "Please give a score for your favorite Bambu Market model." -#~ msgstr "請為你喜歡的 Bambu 商城模型打分。" +#~ msgid "tree(manual)" +#~ msgstr "樹狀(手動)" -#~ msgid "Score" -#~ msgstr "打分" - -#~ msgid "Bambu High Temperature Plate" -#~ msgstr "高溫列印熱床" - -#~ msgid "Can't connect to the printer" -#~ msgstr "無法連接列印設備" - -#~ msgid "Recommended temperature range" -#~ msgstr "建議溫度範圍" - -#~ msgid "High Temp Plate" -#~ msgstr "高溫列印熱床" - -#~ msgid "" -#~ "Bed temperature when high temperature plate is installed. Value 0 means " -#~ "the filament does not support to print on the High Temp Plate" -#~ msgstr "安裝高溫列印熱床時的熱床溫度。0值表示這個線材不支援高溫列印熱床" - -#~ msgid "Internal bridge support thickness" -#~ msgstr "內部橋接支撐厚度" - -#~ msgid "" -#~ "If enabled, support loops will be generated under the contours of " -#~ "internal bridges.These support loops could prevent internal bridges from " -#~ "extruding over the air and improve the top surface quality, especially " -#~ "when the sparse infill density is low.This value determines the thickness " -#~ "of the support loops. 0 means disable this feature" -#~ msgstr "" -#~ "如果開啟, Orca Slicer 切片會沿著內部橋接的邊沿在其下方產生支撐輪廓。這些" -#~ "支撐輪廓可以防止懸空地列印內部橋接並提高頂面質量,特別是在填充密度較低的情" -#~ "況下。這個設置用於調整支撐輪廓的厚度,0表示關閉此特性。" - -#~ msgid "" -#~ "Style and shape of the support. For normal support, projecting the " -#~ "supports into a regular grid will create more stable supports (default), " -#~ "while snug support towers will save material and reduce object scarring.\n" -#~ "For tree support, slim style will merge branches more aggressively and " -#~ "save a lot of material (default), while hybrid style will create similar " -#~ "structure to normal support under large flat overhangs." -#~ msgstr "" -#~ "支撐物的樣式和形狀。對於普通支撐,將支撐投射到一個規則的網格中,將創建更穩" -#~ "定的支撐(默認),而緊貼的支撐塔將節省材料並減少物體的瑕疵。\n" -#~ "對於樹形支撐,苗條板的風格將更積極地合併樹枝,並節省大量的材料(默認),而" -#~ "混合風格將在大的平面懸垂下創建與正常支撐類似的結構。" - -#~ msgid "Target chamber temperature" -#~ msgstr "目標腔體溫度" - -#~ msgid "Bed temperature difference" -#~ msgstr "熱床溫差" - -#~ msgid "" -#~ "Do not recommend bed temperature of other layer to be lower than initial " -#~ "layer for more than this threshold. Too low bed temperature of other " -#~ "layer may cause the model broken free from build plate" -#~ msgstr "" -#~ "不建議其它層熱床溫度比首層的熱床溫度低於這個值。太低的其它層熱床溫度可能導" -#~ "致列印過程中模型從列印板脫落。" - -#~ msgid "Orient the model" -#~ msgstr "旋轉模型" +#~ msgid ", ver: " +#~ msgstr ",版本" diff --git a/resources/images/OrcaSlicer_about.svg b/resources/images/OrcaSlicer_about.svg index 43d9bd4729..5b675c07f8 100644 --- a/resources/images/OrcaSlicer_about.svg +++ b/resources/images/OrcaSlicer_about.svg @@ -1,537 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/resources/images/OrcaSlicer_about_dark.svg b/resources/images/OrcaSlicer_about_dark.svg new file mode 100644 index 0000000000..efff0dc6fc --- /dev/null +++ b/resources/images/OrcaSlicer_about_dark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/resources/images/param_2dlattice.svg b/resources/images/param_2dlattice.svg new file mode 100644 index 0000000000..9eb2cc96a0 --- /dev/null +++ b/resources/images/param_2dlattice.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/resources/images/param_quartercubic.svg b/resources/images/param_quartercubic.svg new file mode 100644 index 0000000000..21008d7b11 --- /dev/null +++ b/resources/images/param_quartercubic.svg @@ -0,0 +1,108 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + diff --git a/resources/images/splash_logo.svg b/resources/images/splash_logo.svg index 45a5b3be25..3bcd34637d 100644 --- a/resources/images/splash_logo.svg +++ b/resources/images/splash_logo.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/resources/images/splash_logo_dark.svg b/resources/images/splash_logo_dark.svg index 5ea2bebcbd..5caad657ed 100644 --- a/resources/images/splash_logo_dark.svg +++ b/resources/images/splash_logo_dark.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/resources/images/toolbar_brimears.svg b/resources/images/toolbar_brimears.svg new file mode 100644 index 0000000000..1c5b42af41 --- /dev/null +++ b/resources/images/toolbar_brimears.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/resources/images/toolbar_brimears_dark.svg b/resources/images/toolbar_brimears_dark.svg new file mode 100644 index 0000000000..fe016e3019 --- /dev/null +++ b/resources/images/toolbar_brimears_dark.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/resources/printers/BL-P001.json b/resources/printers/BL-P001.json index fbdea5d750..0004806aaa 100644 --- a/resources/printers/BL-P001.json +++ b/resources/printers/BL-P001.json @@ -6,10 +6,10 @@ "resolution_supported": [ "720p", "1080p" ], "virtual_camera": "enabled", "liveview": { - "remote": "enabled" + "remote": "tutk" }, "file": { - "remote": "enabled", + "remote": "tutk", "model_download": "enabled" } }, diff --git a/resources/printers/BL-P002.json b/resources/printers/BL-P002.json index 286e552716..3c2e7ed049 100644 --- a/resources/printers/BL-P002.json +++ b/resources/printers/BL-P002.json @@ -6,10 +6,10 @@ "resolution_supported": [ "720p", "1080p" ], "virtual_camera": "enabled", "liveview": { - "remote": "enabled" + "remote": "tutk" }, "file": { - "remote": "enabled", + "remote": "tutk", "model_download": "enabled" } }, diff --git a/resources/printers/C11.json b/resources/printers/C11.json index 5fb53b3f0f..a2cbbb078a 100644 --- a/resources/printers/C11.json +++ b/resources/printers/C11.json @@ -58,7 +58,7 @@ "print": { "ipcam": { "liveview": { - "remote": "enabled" + "remote": "tutk" } } } @@ -79,7 +79,7 @@ "print": { "ipcam": { "file": { - "remote": "enabled" + "remote": "tutk" } }, "support_user_preset":true diff --git a/resources/printers/C12.json b/resources/printers/C12.json index d3a6c6d995..5cc12a1a66 100644 --- a/resources/printers/C12.json +++ b/resources/printers/C12.json @@ -60,7 +60,7 @@ "print": { "ipcam": { "liveview": { - "remote": "enabled" + "remote": "tutk" } }, "support_mqtt_alive":true, @@ -71,7 +71,7 @@ "print": { "ipcam": { "file": { - "remote": "enabled" + "remote": "tutk" } }, "support_user_preset":true diff --git a/resources/printers/C13.json b/resources/printers/C13.json index c8bce2ad6a..44c4ecda29 100644 --- a/resources/printers/C13.json +++ b/resources/printers/C13.json @@ -6,10 +6,10 @@ "resolution_supported": [ "720p", "1080p" ], "virtual_camera": "enabled", "liveview": { - "remote": "enabled" + "remote": "tutk" }, "file": { - "remote": "enabled", + "remote": "tutk", "model_download": "enabled" } }, diff --git a/resources/printers/N1.json b/resources/printers/N1.json index 8bcd035a5e..ac161ed7be 100644 --- a/resources/printers/N1.json +++ b/resources/printers/N1.json @@ -6,7 +6,7 @@ "resolution_supported": [ "720p" ], "liveview": { "local": "local", - "remote": "enabled" + "remote": "tutk" } }, "support_motor_noise_cali":true, @@ -53,7 +53,7 @@ "print": { "ipcam": { "file": { - "remote": "enabled" + "remote": "tutk" } }, "support_user_preset":true diff --git a/resources/printers/N2S.json b/resources/printers/N2S.json index 2857bb17eb..a87b08d08b 100644 --- a/resources/printers/N2S.json +++ b/resources/printers/N2S.json @@ -6,7 +6,7 @@ "resolution_supported": [ "720p" ], "liveview": { "local": "local", - "remote": "enabled" + "remote": "tutk" } }, "support_motor_noise_cali":true, @@ -53,7 +53,7 @@ "print": { "ipcam": { "file": { - "remote": "enabled" + "remote": "tutk" } } } diff --git a/resources/printers/version.txt b/resources/printers/version.txt index 0ba31624a9..6b8ecb2550 100644 --- a/resources/printers/version.txt +++ b/resources/printers/version.txt @@ -1 +1 @@ -01.08.03.01 \ No newline at end of file +01.10.00.01 \ No newline at end of file diff --git a/resources/profiles/Anker/process/0.20mm Optimal 0.6 nozzle @Anker.json b/resources/profiles/Anker/process/0.20mm Optimal 0.6 nozzle @Anker.json index aa40a4da6c..6cd5d373fd 100644 --- a/resources/profiles/Anker/process/0.20mm Optimal 0.6 nozzle @Anker.json +++ b/resources/profiles/Anker/process/0.20mm Optimal 0.6 nozzle @Anker.json @@ -1,7 +1,7 @@ { "type": "process", "setting_id": "GP017", - "name": "0.20mm Optimal 0.6 nozzle @Anker.json", + "name": "0.20mm Optimal 0.6 nozzle @Anker", "from": "system", "inherits": "fdm_process_anker_common_0_6", "instantiation": "true", diff --git a/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra S1 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra S1 0.4 nozzle.json index 34309e817e..62e44552bb 100644 --- a/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra S1 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra S1 0.4 nozzle.json @@ -46,10 +46,10 @@ "70" ], "cool_plate_temp": [ - "35" + "90" ], "cool_plate_temp_initial_layer": [ - "35" + "90" ], "default_filament_colour": [ "" @@ -247,6 +247,6 @@ "100" ], "textured_plate_temp_initial_layer": [ - "55" + "90" ] } \ No newline at end of file diff --git a/resources/profiles/Anycubic/filament/Anycubic ASA @Anycubic Kobra S1 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic ASA @Anycubic Kobra S1 0.4 nozzle.json index b4340af15a..544ca42f48 100644 --- a/resources/profiles/Anycubic/filament/Anycubic ASA @Anycubic Kobra S1 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic ASA @Anycubic Kobra S1 0.4 nozzle.json @@ -46,10 +46,10 @@ "70" ], "cool_plate_temp": [ - "35" + "100" ], "cool_plate_temp_initial_layer": [ - "35" + "100" ], "default_filament_colour": [ "" @@ -247,9 +247,9 @@ "100" ], "textured_plate_temp": [ - "55" + "100" ], "textured_plate_temp_initial_layer": [ - "55" + "100" ] } \ No newline at end of file diff --git a/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra 3 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra 3 0.4 nozzle.json index 045909f8a0..bf4ec872a1 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra 3 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra 3 0.4 nozzle.json @@ -91,9 +91,6 @@ "filament_cost": [ "0" ], - "filament_density": [ - "0" - ], "filament_deretraction_speed": [ "80" ], diff --git a/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra S1 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra S1 0.4 nozzle.json index 210f7a5f06..4225e7d67d 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra S1 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra S1 0.4 nozzle.json @@ -16,7 +16,7 @@ "12" ], "nozzle_temperature": [ - "230" + "250" ], "compatible_printers": [ "Anycubic Kobra S1 0.4 nozzle" @@ -46,10 +46,10 @@ "70" ], "cool_plate_temp": [ - "35" + "55" ], "cool_plate_temp_initial_layer": [ - "35" + "55" ], "default_filament_colour": [ "" @@ -202,13 +202,13 @@ "0" ], "hot_plate_temp": [ - "65" + "70" ], "hot_plate_temp_initial_layer": [ - "65" + "70" ], "nozzle_temperature_initial_layer": [ - "230" + "250" ], "nozzle_temperature_range_high": [ "260" @@ -247,9 +247,9 @@ "70" ], "textured_plate_temp": [ - "55" + "70" ], "textured_plate_temp_initial_layer": [ - "55" + "70" ] } \ No newline at end of file diff --git a/resources/profiles/Anycubic/filament/Generic ABS @Anycubic Kobra 3 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Generic ABS @Anycubic Kobra 3 0.4 nozzle.json index f750630fb6..4ff125b1e9 100644 --- a/resources/profiles/Anycubic/filament/Generic ABS @Anycubic Kobra 3 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Generic ABS @Anycubic Kobra 3 0.4 nozzle.json @@ -91,9 +91,6 @@ "filament_cost": [ "0" ], - "filament_density": [ - "0" - ], "filament_deretraction_speed": [ "80" ], diff --git a/resources/profiles/Anycubic/filament/Generic TPU @Anycubic Kobra 3 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Generic TPU @Anycubic Kobra 3 0.4 nozzle.json index 989e5d9fff..b3dfccd36f 100644 --- a/resources/profiles/Anycubic/filament/Generic TPU @Anycubic Kobra 3 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Generic TPU @Anycubic Kobra 3 0.4 nozzle.json @@ -91,9 +91,6 @@ "filament_cost": [ "0" ], - "filament_density": [ - "0" - ], "filament_deretraction_speed": [ "25" ], diff --git a/resources/profiles/Anycubic/machine/Anycubic Kobra 0.4 nozzle.json b/resources/profiles/Anycubic/machine/Anycubic Kobra 0.4 nozzle.json index 46e01ed821..91a96361d3 100644 --- a/resources/profiles/Anycubic/machine/Anycubic Kobra 0.4 nozzle.json +++ b/resources/profiles/Anycubic/machine/Anycubic Kobra 0.4 nozzle.json @@ -106,9 +106,9 @@ "default_filament_profile": [ "Anycubic Generic PLA" ], - "machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM204 S[machine_max_acceleration_extruding] T[machine_max_acceleration_retracting]\nM104 S[nozzle_temperature_initial_layer] ; set extruder temp\nM140 S[bed_temperature_initial_layer_single] ; set bed temp\nG28 ; home all\nG1 Y1.0 Z0.3 F1000 ; move print head up\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp\nM109 S[nozzle_temperature_initial_layer] ; wait for extruder temp\nG92 E0.0\n; initial load\nG1 X205.0 E19 F1000\nG1 Y1.6\nG1 X5.0 E19 F1000\nG92 E0.0\n; intro line\nG1 Y2.0 Z0.2 F1000\nG1 X65.0 E9.0 F1000\nG1 X105.0 E12.5 F1000\nG92 E0.0", - "machine_end_gcode": "G1 E-1.0 F2100 ; retract\nG92 E0.0\nG1{if max_layer_z < printable_height} Z{z_offset+min(max_layer_z+30, printable_height)}{endif} E-34.0 F720 ; move print head up & retract filament\nG4 ; wait\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X0 Y105 F3000 ; park print head\nM84 ; disable motors", + "machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM204 P[machine_max_acceleration_extruding] R[machine_max_acceleration_retracting] T[machine_max_acceleration_travel]\nM104 S[nozzle_temperature_initial_layer] ; set extruder temp\nM140 S[bed_temperature_initial_layer_single] ; set bed temp\nG28 ; home all\nG1 Y1.0 Z0.3 F{travel_speed*60} ; move print head up\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp\nM109 S[nozzle_temperature_initial_layer] ; wait for extruder temp\nG92 E0.0\n; initial load\nG1 X205.0 E19 F1000\nG1 Y1.6\nG1 X5.0 E19 F1000\nG92 E0.0\n; intro line\nG1 Y2.0 Z0.2 F1000\nG1 X65.0 E9.0 F1000\nG1 X105.0 E12.5 F1000\nG92 E0.0", + "machine_end_gcode": "G1 E-1.0 F2100 ; retract\nG92 E0.0\nG1 X0{if max_layer_z < printable_height} Z{z_offset+min(max_layer_z+30, printable_height)}{endif} E-34.0 F{travel_speed*60} ; move print head up & retract filament\nG4 ; wait\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X0 Y105 F{travel_speed*60} ; park print head\nM84 ; disable motors", "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\nG92 E0.0\n;[layer_z]\n\n", "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", "scan_first_layer": "0" -} \ No newline at end of file +} diff --git a/resources/profiles/Anycubic/machine/Anycubic i3 Mega S 0.4 nozzle.json b/resources/profiles/Anycubic/machine/Anycubic i3 Mega S 0.4 nozzle.json index 709dcf918f..a28efca93a 100644 --- a/resources/profiles/Anycubic/machine/Anycubic i3 Mega S 0.4 nozzle.json +++ b/resources/profiles/Anycubic/machine/Anycubic i3 Mega S 0.4 nozzle.json @@ -110,8 +110,8 @@ "default_filament_profile": [ "Anycubic Generic PLA" ], - "machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM204 S[machine_max_acceleration_extruding] T[machine_max_acceleration_retracting]\nM104 S[nozzle_temperature_initial_layer] ; set extruder temp\nM140 S[bed_temperature_initial_layer_single] ; set bed temp\nG28 ; home all\nG1 Y1.0 Z0.3 F1000 ; move print head up\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp\nM109 S[nozzle_temperature_initial_layer] ; wait for extruder temp\nG92 E0.0\n; initial load\nG1 X205.0 E19 F1000\nG1 Y1.6\nG1 X5.0 E19 F1000\nG92 E0.0\n; intro line\nG1 Y2.0 Z0.2 F1000\nG1 X65.0 E9.0 F1000\nG1 X105.0 E12.5 F1000\nG92 E0.0", - "machine_end_gcode": "G1 E-1.0 F2100 ; retract\nG92 E0.0\nG1{if max_layer_z < printable_height} Z{z_offset+min(max_layer_z+30, printable_height)}{endif} E-34.0 F720 ; move print head up & retract filament\nG4 ; wait\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X0 Y105 F3000 ; park print head\nM84 ; disable motors", + "machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM204 P[machine_max_acceleration_extruding] R[machine_max_acceleration_retracting] T[machine_max_acceleration_travel]\nM104 S[nozzle_temperature_initial_layer] ; set extruder temp\nM140 S[bed_temperature_initial_layer_single] ; set bed temp\nG28 ; home all\nG1 Y1.0 Z0.3 F{travel_speed*60} ; move print head up\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp\nM109 S[nozzle_temperature_initial_layer] ; wait for extruder temp\nG92 E0.0\n; initial load\nG1 X205.0 E19 F1000\nG1 Y1.6\nG1 X5.0 E19 F1000\nG92 E0.0\n; intro line\nG1 Y2.0 Z0.2 F1000\nG1 X65.0 E9.0 F1000\nG1 X105.0 E12.5 F1000\nG92 E0.0", + "machine_end_gcode": "G1 E-1.0 F2100 ; retract\nG92 E0.0\nG1 X0{if max_layer_z < printable_height} Z{z_offset+min(max_layer_z+30, printable_height)}{endif} E-34.0 F{travel_speed*60} ; move print head up & retract filament\nG4 ; wait\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X0 Y105 F{travel_speed*60} ; park print head\nM84 ; disable motors", "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\nG92 E0.0\n;[layer_z]\n\n", "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", "scan_first_layer": "0" diff --git a/resources/profiles/BBL.json b/resources/profiles/BBL.json index e27e29ef0a..45dcdb8df5 100644 --- a/resources/profiles/BBL.json +++ b/resources/profiles/BBL.json @@ -1,7 +1,7 @@ { "name": "Bambulab", "url": "http://www.bambulab.com/Parameters/vendor/BBL.json", - "version": "01.10.00.26", + "version": "01.10.00.33", "force_update": "0", "description": "the initial version of BBL configurations", "machine_model_list": [ @@ -713,31 +713,31 @@ "name": "Bambu Support W @base", "sub_path": "filament/Bambu Support W @base.json" }, - { + { "name": "SUNLU PLA Matte @base", "sub_path": "filament/SUNLU/SUNLU PLA Matte @base.json" }, - { + { "name": "SUNLU PLA+ @base", "sub_path": "filament/SUNLU/SUNLU PLA+ @base.json" }, - { + { "name": "SUNLU PLA+ 2.0 @base", "sub_path": "filament/SUNLU/SUNLU PLA+ 2.0 @base.json" }, - { + { "name": "SUNLU Silk PLA+ @base", "sub_path": "filament/SUNLU/SUNLU Silk PLA+ @base.json" }, { - "name": "SUNLU Marble PLA @base", + "name": "SUNLU PLA Marble @base", "sub_path": "filament/SUNLU/SUNLU Marble PLA @base.json" }, - { + { "name": "SUNLU Wood PLA @base", "sub_path": "filament/SUNLU/SUNLU Wood PLA @base.json" }, - { + { "name": "SUNLU PETG @base", "sub_path": "filament/SUNLU/SUNLU PETG @base.json" }, @@ -809,6 +809,14 @@ "name": "Bambu Support For PLA/PETG @base", "sub_path": "filament/Bambu Support For PLA-PETG @base.json" }, + { + "name": "Bambu PLA Wood @base", + "sub_path": "filament/Bambu PLA Wood @base.json" + }, + { + "name": "Bambu PLA Silk+ @base", + "sub_path": "filament/Bambu PLA Silk+ @base.json" + }, { "name": "Bambu TPU 95A @base", "sub_path": "filament/Bambu TPU 95A @base.json" @@ -913,6 +921,10 @@ "name": "Generic PC @base", "sub_path": "filament/Generic PC @base.json" }, + { + "name": "Bambu PC FR @base", + "sub_path": "filament/Bambu PC FR @base.json" + }, { "name": "Generic ASA @base", "sub_path": "filament/Generic ASA @base.json" @@ -1466,23 +1478,23 @@ "sub_path": "filament/SUNLU/SUNLU Silk PLA+ @BBL A1 0.2 nozzle.json" }, { - "name": "SUNLU Marble PLA @BBL X1C", + "name": "SUNLU PLA Marble @BBL X1C", "sub_path": "filament/SUNLU/SUNLU Marble PLA @BBL X1C.json" }, { - "name": "SUNLU Marble PLA @BBL X1", + "name": "SUNLU PLA Marble @BBL X1", "sub_path": "filament/SUNLU/SUNLU Marble PLA @BBL X1.json" }, { - "name": "SUNLU Marble PLA @BBL P1P", + "name": "SUNLU PLA Marble @BBL P1P", "sub_path": "filament/SUNLU/SUNLU Marble PLA @BBL P1P.json" }, { - "name": "SUNLU Marble PLA @BBL A1M", + "name": "SUNLU PLA Marble @BBL A1M", "sub_path": "filament/SUNLU/SUNLU Marble PLA @BBL A1M.json" }, { - "name": "SUNLU Marble PLA @BBL A1", + "name": "SUNLU PLA Marble @BBL A1", "sub_path": "filament/SUNLU/SUNLU Marble PLA @BBL A1.json" }, { @@ -1977,6 +1989,66 @@ "name": "Bambu Support For PLA/PETG @BBL A1 0.2 nozzle", "sub_path": "filament/Bambu Support For PLA-PETG @BBL A1 0.2 nozzle.json" }, + { + "name": "Bambu PLA Wood @BBL X1C", + "sub_path": "filament/Bambu PLA Wood @BBL X1C.json" + }, + { + "name": "Bambu PLA Wood @BBL X1C 0.8 nozzle", + "sub_path": "filament/Bambu PLA Wood @BBL X1C 0.8 nozzle.json" + }, + { + "name": "Bambu PLA Wood @BBL X1", + "sub_path": "filament/Bambu PLA Wood @BBL X1.json" + }, + { + "name": "Bambu PLA Wood @BBL P1P", + "sub_path": "filament/Bambu PLA Wood @BBL P1P.json" + }, + { + "name": "Bambu PLA Wood @BBL A1", + "sub_path": "filament/Bambu PLA Wood @BBL A1.json" + }, + { + "name": "Bambu PLA Wood @BBL A1M", + "sub_path": "filament/Bambu PLA Wood @BBL A1M.json" + }, + { + "name": "Bambu PLA Silk+ @BBL X1C", + "sub_path": "filament/Bambu PLA Silk+ @BBL X1C.json" + }, + { + "name": "Bambu PLA Silk+ @BBL X1C 0.2 nozzle", + "sub_path": "filament/Bambu PLA Silk+ @BBL X1C 0.2 nozzle.json" + }, + { + "name": "Bambu PLA Silk+ @BBL X1", + "sub_path": "filament/Bambu PLA Silk+ @BBL X1.json" + }, + { + "name": "Bambu PLA Silk+ @BBL P1P", + "sub_path": "filament/Bambu PLA Silk+ @BBL P1P.json" + }, + { + "name": "Bambu PLA Silk+ @BBL P1P 0.2 nozzle", + "sub_path": "filament/Bambu PLA Silk+ @BBL P1P 0.2 nozzle.json" + }, + { + "name": "Bambu PLA Silk+ @BBL A1", + "sub_path": "filament/Bambu PLA Silk+ @BBL A1.json" + }, + { + "name": "Bambu PLA Silk+ @BBL A1 0.2 nozzle", + "sub_path": "filament/Bambu PLA Silk+ @BBL A1 0.2 nozzle.json" + }, + { + "name": "Bambu PLA Silk+ @BBL A1M", + "sub_path": "filament/Bambu PLA Silk+ @BBL A1M.json" + }, + { + "name": "Bambu PLA Silk+ @BBL A1M 0.2 nozzle", + "sub_path": "filament/Bambu PLA Silk+ @BBL A1M 0.2 nozzle.json" + }, { "name": "Bambu TPU 95A @BBL X1C", "sub_path": "filament/Bambu TPU 95A @BBL X1C.json" @@ -2217,6 +2289,18 @@ "name": "Bambu PETG Translucent @BBL A1", "sub_path": "filament/Bambu PETG Translucent @BBL A1.json" }, + { + "name": "Bambu PETG Translucent @BBL X1C 0.2 nozzle", + "sub_path": "filament/Bambu PETG Translucent @BBL X1C 0.2 nozzle.json" + }, + { + "name": "Bambu PETG Translucent @BBL A1M 0.2 nozzle", + "sub_path": "filament/Bambu PETG Translucent @BBL A1M 0.2 nozzle.json" + }, + { + "name": "Bambu PETG Translucent @BBL A1 0.2 nozzle", + "sub_path": "filament/Bambu PETG Translucent @BBL A1 0.2 nozzle.json" + }, { "name": "Bambu PETG HF @BBL X1C", "sub_path": "filament/Bambu PETG HF @BBL X1C.json" @@ -2453,6 +2537,70 @@ "name": "Generic PC @BBL A1 0.2 nozzle", "sub_path": "filament/Generic PC @BBL A1 0.2 nozzle.json" }, + { + "name": "Bambu PC FR @BBL X1C", + "sub_path": "filament/Bambu PC FR @BBL X1C.json" + }, + { + "name": "Bambu PC FR @BBL X1C 0.6 nozzle", + "sub_path": "filament/Bambu PC FR @BBL X1C 0.6 nozzle.json" + }, + { + "name": "Bambu PC FR @BBL X1C 0.8 nozzle", + "sub_path": "filament/Bambu PC FR @BBL X1C 0.8 nozzle.json" + }, + { + "name": "Bambu PC FR @BBL X1C 0.2 nozzle", + "sub_path": "filament/Bambu PC FR @BBL X1C 0.2 nozzle.json" + }, + { + "name": "Bambu PC FR @BBL P1S", + "sub_path": "filament/Bambu PC FR @BBL P1S.json" + }, + { + "name": "Bambu PC FR @BBL P1S 0.2 nozzle", + "sub_path": "filament/Bambu PC FR @BBL P1S 0.2 nozzle.json" + }, + { + "name": "Bambu PC FR @BBL P1S 0.6 nozzle", + "sub_path": "filament/Bambu PC FR @BBL P1S 0.6 nozzle.json" + }, + { + "name": "Bambu PC FR @BBL P1S 0.8 nozzle", + "sub_path": "filament/Bambu PC FR @BBL P1S 0.8 nozzle.json" + }, + { + "name": "Bambu PC FR @BBL P1P", + "sub_path": "filament/Bambu PC FR @BBL P1P.json" + }, + { + "name": "Bambu PC FR @BBL P1P 0.2 nozzle", + "sub_path": "filament/Bambu PC FR @BBL P1P 0.2 nozzle.json" + }, + { + "name": "Bambu PC FR @BBL X1E", + "sub_path": "filament/Bambu PC FR @BBL X1E.json" + }, + { + "name": "Bambu PC FR @BBL X1E 0.2 nozzle", + "sub_path": "filament/Bambu PC FR @BBL X1E 0.2 nozzle.json" + }, + { + "name": "Bambu PC FR @BBL X1E 0.6 nozzle", + "sub_path": "filament/Bambu PC FR @BBL X1E 0.6 nozzle.json" + }, + { + "name": "Bambu PC FR @BBL X1E 0.8 nozzle", + "sub_path": "filament/Bambu PC FR @BBL X1E 0.8 nozzle.json" + }, + { + "name": "Bambu PC FR @BBL A1", + "sub_path": "filament/Bambu PC FR @BBL A1.json" + }, + { + "name": "Bambu PC FR @BBL A1 0.2 nozzle", + "sub_path": "filament/Bambu PC FR @BBL A1 0.2 nozzle.json" + }, { "name": "Generic ASA @0.2 nozzle", "sub_path": "filament/Generic ASA @0.2 nozzle.json" diff --git a/resources/profiles/BBL/Bambu Lab P1P_cover.png b/resources/profiles/BBL/Bambu Lab P1P_cover.png index 566ce21456..af349701d8 100644 Binary files a/resources/profiles/BBL/Bambu Lab P1P_cover.png and b/resources/profiles/BBL/Bambu Lab P1P_cover.png differ diff --git a/resources/profiles/BBL/cli_config.json b/resources/profiles/BBL/cli_config.json index 7c75b738d8..d32be0f22b 100644 --- a/resources/profiles/BBL/cli_config.json +++ b/resources/profiles/BBL/cli_config.json @@ -70,6 +70,36 @@ "cli_safe_speed_x": "0,0", "cli_safe_speed_y": "0,0", "cli_safe_speed_z": "0,0" + }, + "downward_check": { + "Bambu Lab A1 mini 0.2 nozzle": [ + "Bambu Lab P1S 0.2 nozzle", + "Bambu Lab P1P 0.2 nozzle", + "Bambu Lab X1 Carbon 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle", + "Bambu Lab X1 0.2 nozzle" + ], + "Bambu Lab A1 mini 0.4 nozzle": [ + "Bambu Lab P1S 0.4 nozzle", + "Bambu Lab P1P 0.4 nozzle", + "Bambu Lab X1 Carbon 0.4 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1 0.4 nozzle" + ], + "Bambu Lab A1 mini 0.6 nozzle": [ + "Bambu Lab P1S 0.6 nozzle", + "Bambu Lab P1P 0.6 nozzle", + "Bambu Lab X1 Carbon 0.6 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1 0.6 nozzle" + ], + "Bambu Lab A1 mini 0.8 nozzle": [ + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab P1P 0.8 nozzle", + "Bambu Lab X1 Carbon 0.8 nozzle", + "Bambu Lab X1E 0.8 nozzle", + "Bambu Lab X1 0.8 nozzle" + ] } }, "Bambu Lab X1": { diff --git a/resources/profiles/BBL/filament/Bambu ASA @BBL X1 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu ASA @BBL X1 0.2 nozzle.json index 954cdc9ff2..628864de14 100644 --- a/resources/profiles/BBL/filament/Bambu ASA @BBL X1 0.2 nozzle.json +++ b/resources/profiles/BBL/filament/Bambu ASA @BBL X1 0.2 nozzle.json @@ -5,6 +5,12 @@ "from": "system", "setting_id": "GFSB01_03", "instantiation": "true", + "eng_plate_temp": [ + "100" + ], + "eng_plate_temp_initial_layer": [ + "100" + ], "filament_long_retractions_when_cut": [ "1" ], @@ -14,6 +20,18 @@ "filament_retraction_distances_when_cut": [ "18" ], + "hot_plate_temp": [ + "100" + ], + "hot_plate_temp_initial_layer": [ + "100" + ], + "textured_plate_temp": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "100" + ], "compatible_printers": [ "Bambu Lab X1 0.2 nozzle" ] diff --git a/resources/profiles/BBL/filament/Bambu ASA @BBL X1 0.6 nozzle.json b/resources/profiles/BBL/filament/Bambu ASA @BBL X1 0.6 nozzle.json index 144df72be9..d123c14f12 100644 --- a/resources/profiles/BBL/filament/Bambu ASA @BBL X1 0.6 nozzle.json +++ b/resources/profiles/BBL/filament/Bambu ASA @BBL X1 0.6 nozzle.json @@ -5,6 +5,12 @@ "from": "system", "setting_id": "GFSB01_04", "instantiation": "true", + "eng_plate_temp": [ + "100" + ], + "eng_plate_temp_initial_layer": [ + "100" + ], "fan_min_speed": [ "25" ], @@ -17,6 +23,18 @@ "filament_retraction_speed": [ "0.4" ], + "hot_plate_temp": [ + "100" + ], + "hot_plate_temp_initial_layer": [ + "100" + ], + "textured_plate_temp": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "V" + ], "compatible_printers": [ "Bambu Lab X1 0.6 nozzle" ] diff --git a/resources/profiles/BBL/filament/Bambu ASA @base.json b/resources/profiles/BBL/filament/Bambu ASA @base.json index 6850e938f6..b4c79b0435 100644 --- a/resources/profiles/BBL/filament/Bambu ASA @base.json +++ b/resources/profiles/BBL/filament/Bambu ASA @base.json @@ -6,6 +6,12 @@ "filament_id": "GFB01", "instantiation": "false", "description": "When printing this filament, there's a risk of warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.", + "eng_plate_temp": [ + "100" + ], + "eng_plate_temp_initial_layer": [ + "100" + ], "fan_max_speed": [ "35" ], @@ -24,6 +30,12 @@ "filament_vendor": [ "Bambu Lab" ], + "hot_plate_temp": [ + "100" + ], + "hot_plate_temp_initial_layer": [ + "100" + ], "nozzle_temperature": [ "270" ], @@ -32,5 +44,11 @@ ], "slow_down_layer_time": [ "12" + ], + "textured_plate_temp": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "100" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu ASA-CF @base.json b/resources/profiles/BBL/filament/Bambu ASA-CF @base.json index b280a21659..ef23b8b2cb 100644 --- a/resources/profiles/BBL/filament/Bambu ASA-CF @base.json +++ b/resources/profiles/BBL/filament/Bambu ASA-CF @base.json @@ -5,6 +5,12 @@ "from": "system", "filament_id": "GFB51", "instantiation": "false", + "eng_plate_temp": [ + "100" + ], + "eng_plate_temp_initial_layer": [ + "100" + ], "fan_max_speed": [ "25" ], @@ -26,6 +32,12 @@ "filament_vendor": [ "Bambu Lab" ], + "hot_plate_temp": [ + "100" + ], + "hot_plate_temp_initial_layer": [ + "100" + ], "nozzle_temperature": [ "275" ], @@ -40,5 +52,11 @@ ], "temperature_vitrification": [ "108" + ], + "textured_plate_temp": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "100" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PC FR @BBL A1 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu PC FR @BBL A1 0.2 nozzle.json new file mode 100644 index 0000000000..4906468b1c --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu PC FR @BBL A1 0.2 nozzle.json @@ -0,0 +1,44 @@ +{ + "type": "filament", + "name": "Bambu PC FR @BBL A1 0.2 nozzle", + "inherits": "Bambu PC FR @base", + "from": "system", + "setting_id": "GFSC01_15", + "instantiation": "true", + "eng_plate_temp": [ + "100" + ], + "eng_plate_temp_initial_layer": [ + "100" + ], + "fan_max_speed": [ + "20" + ], + "filament_max_volumetric_speed": [ + "1" + ], + "hot_plate_temp": [ + "100" + ], + "hot_plate_temp_initial_layer": [ + "100" + ], + "nozzle_temperature": [ + "260" + ], + "reduce_fan_stop_start_freq": [ + "0" + ], + "slow_down_layer_time": [ + "12" + ], + "textured_plate_temp": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "100" + ], + "compatible_printers": [ + "Bambu Lab A1 0.2 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PC FR @BBL A1.json b/resources/profiles/BBL/filament/Bambu PC FR @BBL A1.json new file mode 100644 index 0000000000..a26fd5f556 --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu PC FR @BBL A1.json @@ -0,0 +1,40 @@ +{ + "type": "filament", + "name": "Bambu PC FR @BBL A1", + "inherits": "Bambu PC FR @base", + "from": "system", + "setting_id": "GFSC01_14", + "instantiation": "true", + "eng_plate_temp": [ + "100" + ], + "eng_plate_temp_initial_layer": [ + "100" + ], + "fan_max_speed": [ + "20" + ], + "hot_plate_temp": [ + "100" + ], + "hot_plate_temp_initial_layer": [ + "100" + ], + "reduce_fan_stop_start_freq": [ + "0" + ], + "slow_down_layer_time": [ + "12" + ], + "textured_plate_temp": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "100" + ], + "compatible_printers": [ + "Bambu Lab A1 0.4 nozzle", + "Bambu Lab A1 0.6 nozzle", + "Bambu Lab A1 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PC FR @BBL P1P 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu PC FR @BBL P1P 0.2 nozzle.json new file mode 100644 index 0000000000..ab18865a0f --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu PC FR @BBL P1P 0.2 nozzle.json @@ -0,0 +1,44 @@ +{ + "type": "filament", + "name": "Bambu PC FR @BBL P1P 0.2 nozzle", + "inherits": "Bambu PC FR @base", + "from": "system", + "setting_id": "GFSC01_09", + "instantiation": "true", + "eng_plate_temp": [ + "100" + ], + "eng_plate_temp_initial_layer": [ + "100" + ], + "fan_max_speed": [ + "20" + ], + "filament_max_volumetric_speed": [ + "1" + ], + "hot_plate_temp": [ + "100" + ], + "hot_plate_temp_initial_layer": [ + "100" + ], + "nozzle_temperature": [ + "260" + ], + "reduce_fan_stop_start_freq": [ + "0" + ], + "slow_down_layer_time": [ + "12" + ], + "textured_plate_temp": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "100" + ], + "compatible_printers": [ + "Bambu Lab P1P 0.2 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PC FR @BBL P1P.json b/resources/profiles/BBL/filament/Bambu PC FR @BBL P1P.json new file mode 100644 index 0000000000..f5744a0507 --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu PC FR @BBL P1P.json @@ -0,0 +1,40 @@ +{ + "type": "filament", + "name": "Bambu PC FR @BBL P1P", + "inherits": "Bambu PC FR @base", + "from": "system", + "setting_id": "GFSC01_08", + "instantiation": "true", + "eng_plate_temp": [ + "100" + ], + "eng_plate_temp_initial_layer": [ + "100" + ], + "fan_max_speed": [ + "20" + ], + "hot_plate_temp": [ + "100" + ], + "hot_plate_temp_initial_layer": [ + "100" + ], + "reduce_fan_stop_start_freq": [ + "0" + ], + "slow_down_layer_time": [ + "12" + ], + "textured_plate_temp": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "100" + ], + "compatible_printers": [ + "Bambu Lab P1P 0.4 nozzle", + "Bambu Lab P1P 0.6 nozzle", + "Bambu Lab P1P 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PC FR @BBL P1S 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu PC FR @BBL P1S 0.2 nozzle.json new file mode 100644 index 0000000000..10dc4dcb55 --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu PC FR @BBL P1S 0.2 nozzle.json @@ -0,0 +1,41 @@ +{ + "type": "filament", + "name": "Bambu PC FR @BBL P1S 0.2 nozzle", + "inherits": "Bambu PC FR @base", + "from": "system", + "setting_id": "GFSC01_05", + "instantiation": "true", + "eng_plate_temp": [ + "100" + ], + "eng_plate_temp_initial_layer": [ + "100" + ], + "fan_max_speed": [ + "40" + ], + "filament_max_volumetric_speed": [ + "1" + ], + "hot_plate_temp": [ + "100" + ], + "hot_plate_temp_initial_layer": [ + "100" + ], + "nozzle_temperature": [ + "260" + ], + "slow_down_layer_time": [ + "12" + ], + "textured_plate_temp": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "100" + ], + "compatible_printers": [ + "Bambu Lab P1S 0.2 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PC FR @BBL P1S 0.6 nozzle.json b/resources/profiles/BBL/filament/Bambu PC FR @BBL P1S 0.6 nozzle.json new file mode 100644 index 0000000000..318e4ee779 --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu PC FR @BBL P1S 0.6 nozzle.json @@ -0,0 +1,38 @@ +{ + "type": "filament", + "name": "Bambu PC FR @BBL P1S 0.6 nozzle", + "inherits": "Bambu PC FR @base", + "from": "system", + "setting_id": "GFSC01_06", + "instantiation": "true", + "eng_plate_temp": [ + "100" + ], + "eng_plate_temp_initial_layer": [ + "100" + ], + "fan_max_speed": [ + "40" + ], + "hot_plate_temp": [ + "100" + ], + "hot_plate_temp_initial_layer": [ + "100" + ], + "nozzle_temperature": [ + "260" + ], + "slow_down_layer_time": [ + "12" + ], + "textured_plate_temp": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "100" + ], + "compatible_printers": [ + "Bambu Lab P1S 0.6 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PC FR @BBL P1S 0.8 nozzle.json b/resources/profiles/BBL/filament/Bambu PC FR @BBL P1S 0.8 nozzle.json new file mode 100644 index 0000000000..a5de6cea20 --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu PC FR @BBL P1S 0.8 nozzle.json @@ -0,0 +1,38 @@ +{ + "type": "filament", + "name": "Bambu PC FR @BBL P1S 0.8 nozzle", + "inherits": "Bambu PC FR @base", + "from": "system", + "setting_id": "GFSC01_07", + "instantiation": "true", + "eng_plate_temp": [ + "100" + ], + "eng_plate_temp_initial_layer": [ + "100" + ], + "fan_max_speed": [ + "40" + ], + "hot_plate_temp": [ + "100" + ], + "hot_plate_temp_initial_layer": [ + "100" + ], + "nozzle_temperature": [ + "260" + ], + "slow_down_layer_time": [ + "12" + ], + "textured_plate_temp": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "100" + ], + "compatible_printers": [ + "Bambu Lab P1S 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PC FR @BBL P1S.json b/resources/profiles/BBL/filament/Bambu PC FR @BBL P1S.json new file mode 100644 index 0000000000..fb6e060962 --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu PC FR @BBL P1S.json @@ -0,0 +1,35 @@ +{ + "type": "filament", + "name": "Bambu PC FR @BBL P1S", + "inherits": "Bambu PC FR @base", + "from": "system", + "setting_id": "GFSC01_04", + "instantiation": "true", + "eng_plate_temp": [ + "100" + ], + "eng_plate_temp_initial_layer": [ + "100" + ], + "fan_max_speed": [ + "40" + ], + "hot_plate_temp": [ + "100" + ], + "hot_plate_temp_initial_layer": [ + "100" + ], + "slow_down_layer_time": [ + "12" + ], + "textured_plate_temp": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "100" + ], + "compatible_printers": [ + "Bambu Lab P1S 0.4 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PC FR @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu PC FR @BBL X1C 0.2 nozzle.json new file mode 100644 index 0000000000..4f5e8a2e0f --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu PC FR @BBL X1C 0.2 nozzle.json @@ -0,0 +1,24 @@ +{ + "type": "filament", + "name": "Bambu PC FR @BBL X1C 0.2 nozzle", + "inherits": "Bambu PC FR @base", + "from": "system", + "setting_id": "GFSC01_03", + "instantiation": "true", + "fan_max_speed": [ + "40" + ], + "filament_max_volumetric_speed": [ + "1" + ], + "nozzle_temperature": [ + "260" + ], + "slow_down_layer_time": [ + "12" + ], + "compatible_printers": [ + "Bambu Lab X1 Carbon 0.2 nozzle", + "Bambu Lab X1 0.2 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PC FR @BBL X1C 0.6 nozzle.json b/resources/profiles/BBL/filament/Bambu PC FR @BBL X1C 0.6 nozzle.json new file mode 100644 index 0000000000..121a57d4e1 --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu PC FR @BBL X1C 0.6 nozzle.json @@ -0,0 +1,21 @@ +{ + "type": "filament", + "name": "Bambu PC FR @BBL X1C 0.6 nozzle", + "inherits": "Bambu PC FR @base", + "from": "system", + "setting_id": "GFSC01_01", + "instantiation": "true", + "fan_max_speed": [ + "40" + ], + "nozzle_temperature": [ + "260" + ], + "slow_down_layer_time": [ + "12" + ], + "compatible_printers": [ + "Bambu Lab X1 Carbon 0.6 nozzle", + "Bambu Lab X1 0.6 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PC FR @BBL X1C 0.8 nozzle.json b/resources/profiles/BBL/filament/Bambu PC FR @BBL X1C 0.8 nozzle.json new file mode 100644 index 0000000000..fed767626f --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu PC FR @BBL X1C 0.8 nozzle.json @@ -0,0 +1,21 @@ +{ + "type": "filament", + "name": "Bambu PC FR @BBL X1C 0.8 nozzle", + "inherits": "Bambu PC FR @base", + "from": "system", + "setting_id": "GFSC01_02", + "instantiation": "true", + "fan_max_speed": [ + "40" + ], + "nozzle_temperature": [ + "260" + ], + "slow_down_layer_time": [ + "12" + ], + "compatible_printers": [ + "Bambu Lab X1 Carbon 0.8 nozzle", + "Bambu Lab X1 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PC FR @BBL X1C.json b/resources/profiles/BBL/filament/Bambu PC FR @BBL X1C.json new file mode 100644 index 0000000000..a9aa12ebcb --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu PC FR @BBL X1C.json @@ -0,0 +1,18 @@ +{ + "type": "filament", + "name": "Bambu PC FR @BBL X1C", + "inherits": "Bambu PC FR @base", + "from": "system", + "setting_id": "GFSC01_00", + "instantiation": "true", + "fan_max_speed": [ + "40" + ], + "slow_down_layer_time": [ + "12" + ], + "compatible_printers": [ + "Bambu Lab X1 Carbon 0.4 nozzle", + "Bambu Lab X1 0.4 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PC FR @BBL X1E 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu PC FR @BBL X1E 0.2 nozzle.json new file mode 100644 index 0000000000..56002eb218 --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu PC FR @BBL X1E 0.2 nozzle.json @@ -0,0 +1,26 @@ +{ + "type": "filament", + "name": "Bambu PC FR @BBL X1E 0.2 nozzle", + "inherits": "Bambu PC FR @base", + "from": "system", + "setting_id": "GFSC01_11", + "instantiation": "true", + "chamber_temperatures": [ + "60" + ], + "fan_max_speed": [ + "40" + ], + "filament_max_volumetric_speed": [ + "1" + ], + "nozzle_temperature": [ + "260" + ], + "slow_down_layer_time": [ + "12" + ], + "compatible_printers": [ + "Bambu Lab X1E 0.2 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PC FR @BBL X1E 0.6 nozzle.json b/resources/profiles/BBL/filament/Bambu PC FR @BBL X1E 0.6 nozzle.json new file mode 100644 index 0000000000..9eea3696f2 --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu PC FR @BBL X1E 0.6 nozzle.json @@ -0,0 +1,23 @@ +{ + "type": "filament", + "name": "Bambu PC FR @BBL X1E 0.6 nozzle", + "inherits": "Bambu PC FR @base", + "from": "system", + "setting_id": "GFSC01_12", + "instantiation": "true", + "chamber_temperatures": [ + "60" + ], + "fan_max_speed": [ + "40" + ], + "nozzle_temperature": [ + "260" + ], + "slow_down_layer_time": [ + "12" + ], + "compatible_printers": [ + "Bambu Lab X1E 0.6 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PC FR @BBL X1E 0.8 nozzle.json b/resources/profiles/BBL/filament/Bambu PC FR @BBL X1E 0.8 nozzle.json new file mode 100644 index 0000000000..65ac493b44 --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu PC FR @BBL X1E 0.8 nozzle.json @@ -0,0 +1,23 @@ +{ + "type": "filament", + "name": "Bambu PC FR @BBL X1E 0.8 nozzle", + "inherits": "Bambu PC FR @base", + "from": "system", + "setting_id": "GFSC01_13", + "instantiation": "true", + "chamber_temperatures": [ + "60" + ], + "fan_max_speed": [ + "40" + ], + "nozzle_temperature": [ + "260" + ], + "slow_down_layer_time": [ + "12" + ], + "compatible_printers": [ + "Bambu Lab X1E 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PC FR @BBL X1E.json b/resources/profiles/BBL/filament/Bambu PC FR @BBL X1E.json new file mode 100644 index 0000000000..ab4e7f4d35 --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu PC FR @BBL X1E.json @@ -0,0 +1,20 @@ +{ + "type": "filament", + "name": "Bambu PC FR @BBL X1E", + "inherits": "Bambu PC FR @base", + "from": "system", + "setting_id": "GFSC01_10", + "instantiation": "true", + "chamber_temperatures": [ + "60" + ], + "fan_max_speed": [ + "40" + ], + "slow_down_layer_time": [ + "12" + ], + "compatible_printers": [ + "Bambu Lab X1E 0.4 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PC FR @base.json b/resources/profiles/BBL/filament/Bambu PC FR @base.json new file mode 100644 index 0000000000..c01a0dfe0d --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu PC FR @base.json @@ -0,0 +1,20 @@ +{ + "type": "filament", + "name": "Bambu PC FR @base", + "inherits": "fdm_filament_pc", + "from": "system", + "filament_id": "GFC01", + "instantiation": "false", + "filament_cost": [ + "0" + ], + "filament_density": [ + "1.19" + ], + "filament_flow_ratio": [ + "0.94" + ], + "filament_vendor": [ + "Bambu Lab" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PETG Translucent @BBL A1 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu PETG Translucent @BBL A1 0.2 nozzle.json new file mode 100644 index 0000000000..133c842a27 --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu PETG Translucent @BBL A1 0.2 nozzle.json @@ -0,0 +1,26 @@ +{ + "type": "filament", + "name": "Bambu PETG Translucent @BBL A1 0.2 nozzle", + "inherits": "Bambu PETG Translucent @base", + "from": "system", + "setting_id": "GFSG01_10", + "instantiation": "true", + "filament_long_retractions_when_cut": [ + "1" + ], + "filament_max_volumetric_speed": [ + "1" + ], + "filament_retraction_distances_when_cut": [ + "18" + ], + "filament_retraction_length": [ + "0.3" + ], + "slow_down_layer_time": [ + "8" + ], + "compatible_printers": [ + "Bambu Lab A1 0.2 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PETG Translucent @BBL A1M 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu PETG Translucent @BBL A1M 0.2 nozzle.json new file mode 100644 index 0000000000..f473a3e64c --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu PETG Translucent @BBL A1M 0.2 nozzle.json @@ -0,0 +1,26 @@ +{ + "type": "filament", + "name": "Bambu PETG Translucent @BBL A1M 0.2 nozzle", + "inherits": "Bambu PETG Translucent @base", + "from": "system", + "setting_id": "GFSG01_09", + "instantiation": "true", + "filament_long_retractions_when_cut": [ + "1" + ], + "filament_max_volumetric_speed": [ + "1" + ], + "filament_retraction_distances_when_cut": [ + "18" + ], + "filament_retraction_length": [ + "0.3" + ], + "slow_down_layer_time": [ + "8" + ], + "compatible_printers": [ + "Bambu Lab A1 mini 0.2 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PETG Translucent @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu PETG Translucent @BBL X1C 0.2 nozzle.json new file mode 100644 index 0000000000..b539b9aed2 --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu PETG Translucent @BBL X1C 0.2 nozzle.json @@ -0,0 +1,30 @@ +{ + "type": "filament", + "name": "Bambu PETG Translucent @BBL X1C 0.2 nozzle", + "inherits": "Bambu PETG Translucent @base", + "from": "system", + "setting_id": "GFSG01_07", + "instantiation": "true", + "filament_long_retractions_when_cut": [ + "1" + ], + "filament_max_volumetric_speed": [ + "1" + ], + "filament_retraction_distances_when_cut": [ + "18" + ], + "filament_retraction_length": [ + "0.3" + ], + "slow_down_layer_time": [ + "8" + ], + "compatible_printers": [ + "Bambu Lab X1 0.2 nozzle", + "Bambu Lab P1P 0.2 nozzle", + "Bambu Lab P1S 0.2 nozzle", + "Bambu Lab X1 Carbon 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Dynamic @base.json b/resources/profiles/BBL/filament/Bambu PLA Dynamic @base.json index 764d903ae1..872981aff3 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Dynamic @base.json +++ b/resources/profiles/BBL/filament/Bambu PLA Dynamic @base.json @@ -11,6 +11,9 @@ "filament_density": [ "1.26" ], + "filament_vendor": [ + "Bambu Lab" + ], "filament_start_gcode": [ "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" ] diff --git a/resources/profiles/BBL/filament/Bambu PLA Silk+ @BBL A1 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu PLA Silk+ @BBL A1 0.2 nozzle.json new file mode 100644 index 0000000000..d8b23125e6 --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu PLA Silk+ @BBL A1 0.2 nozzle.json @@ -0,0 +1,44 @@ +{ + "type": "filament", + "name": "Bambu PLA Silk+ @BBL A1 0.2 nozzle", + "inherits": "Bambu PLA Silk+ @base", + "from": "system", + "setting_id": "GFSA06_06", + "instantiation": "true", + "fan_cooling_layer_time": [ + "80" + ], + "fan_max_speed": [ + "80" + ], + "fan_min_speed": [ + "60" + ], + "filament_max_volumetric_speed": [ + "2" + ], + "hot_plate_temp": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "slow_down_layer_time": [ + "8" + ], + "supertack_plate_temp": [ + "35" + ], + "supertack_plate_temp_initial_layer": [ + "35" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "compatible_printers": [ + "Bambu Lab A1 0.2 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Silk+ @BBL A1.json b/resources/profiles/BBL/filament/Bambu PLA Silk+ @BBL A1.json new file mode 100644 index 0000000000..568c97495e --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu PLA Silk+ @BBL A1.json @@ -0,0 +1,43 @@ +{ + "type": "filament", + "name": "Bambu PLA Silk+ @BBL A1", + "inherits": "Bambu PLA Silk+ @base", + "from": "system", + "setting_id": "GFSA06_05", + "instantiation": "true", + "fan_cooling_layer_time": [ + "80" + ], + "fan_max_speed": [ + "80" + ], + "fan_min_speed": [ + "60" + ], + "hot_plate_temp": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "slow_down_layer_time": [ + "8" + ], + "supertack_plate_temp": [ + "35" + ], + "supertack_plate_temp_initial_layer": [ + "35" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "compatible_printers": [ + "Bambu Lab A1 0.4 nozzle", + "Bambu Lab A1 0.6 nozzle", + "Bambu Lab A1 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Silk+ @BBL A1M 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu PLA Silk+ @BBL A1M 0.2 nozzle.json new file mode 100644 index 0000000000..3255f3d44d --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu PLA Silk+ @BBL A1M 0.2 nozzle.json @@ -0,0 +1,44 @@ +{ + "type": "filament", + "name": "Bambu PLA Silk+ @BBL A1M 0.2 nozzle", + "inherits": "Bambu PLA Silk+ @base", + "from": "system", + "setting_id": "GFSA06_08", + "instantiation": "true", + "fan_cooling_layer_time": [ + "80" + ], + "fan_max_speed": [ + "80" + ], + "fan_min_speed": [ + "60" + ], + "filament_max_volumetric_speed": [ + "2" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "slow_down_layer_time": [ + "8" + ], + "supertack_plate_temp": [ + "35" + ], + "supertack_plate_temp_initial_layer": [ + "35" + ], + "textured_plate_temp": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "compatible_printers": [ + "Bambu Lab A1 mini 0.2 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Silk+ @BBL A1M.json b/resources/profiles/BBL/filament/Bambu PLA Silk+ @BBL A1M.json new file mode 100644 index 0000000000..5fa8cf6301 --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu PLA Silk+ @BBL A1M.json @@ -0,0 +1,43 @@ +{ + "type": "filament", + "name": "Bambu PLA Silk+ @BBL A1M", + "inherits": "Bambu PLA Silk+ @base", + "from": "system", + "setting_id": "GFSA06_07", + "instantiation": "true", + "fan_cooling_layer_time": [ + "80" + ], + "fan_max_speed": [ + "80" + ], + "fan_min_speed": [ + "60" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "slow_down_layer_time": [ + "8" + ], + "supertack_plate_temp": [ + "35" + ], + "supertack_plate_temp_initial_layer": [ + "35" + ], + "textured_plate_temp": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "compatible_printers": [ + "Bambu Lab A1 mini 0.4 nozzle", + "Bambu Lab A1 mini 0.6 nozzle", + "Bambu Lab A1 mini 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Silk+ @BBL P1P 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu PLA Silk+ @BBL P1P 0.2 nozzle.json new file mode 100644 index 0000000000..ba3571a680 --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu PLA Silk+ @BBL P1P 0.2 nozzle.json @@ -0,0 +1,32 @@ +{ + "type": "filament", + "name": "Bambu PLA Silk+ @BBL P1P 0.2 nozzle", + "inherits": "Bambu PLA Silk+ @base", + "from": "system", + "setting_id": "GFSA06_04", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "2" + ], + "hot_plate_temp": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "supertack_plate_temp": [ + "35" + ], + "supertack_plate_temp_initial_layer": [ + "35" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "compatible_printers": [ + "Bambu Lab P1P 0.2 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Silk+ @BBL P1P.json b/resources/profiles/BBL/filament/Bambu PLA Silk+ @BBL P1P.json new file mode 100644 index 0000000000..39ab9a3938 --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu PLA Silk+ @BBL P1P.json @@ -0,0 +1,34 @@ +{ + "type": "filament", + "name": "Bambu PLA Silk+ @BBL P1P", + "inherits": "Bambu PLA Silk+ @base", + "from": "system", + "setting_id": "GFSA06_03", + "instantiation": "true", + "hot_plate_temp": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "slow_down_layer_time": [ + "8" + ], + "supertack_plate_temp": [ + "35" + ], + "supertack_plate_temp_initial_layer": [ + "35" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "compatible_printers": [ + "Bambu Lab P1P 0.4 nozzle", + "Bambu Lab P1P 0.6 nozzle", + "Bambu Lab P1P 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Silk+ @BBL X1.json b/resources/profiles/BBL/filament/Bambu PLA Silk+ @BBL X1.json new file mode 100644 index 0000000000..ae40323a98 --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu PLA Silk+ @BBL X1.json @@ -0,0 +1,22 @@ +{ + "type": "filament", + "name": "Bambu PLA Silk+ @BBL X1", + "inherits": "Bambu PLA Silk+ @base", + "from": "system", + "setting_id": "GFSA06_02", + "instantiation": "true", + "slow_down_layer_time": [ + "8" + ], + "supertack_plate_temp": [ + "35" + ], + "supertack_plate_temp_initial_layer": [ + "35" + ], + "compatible_printers": [ + "Bambu Lab X1 0.4 nozzle", + "Bambu Lab X1 0.6 nozzle", + "Bambu Lab X1 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Silk+ @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu PLA Silk+ @BBL X1C 0.2 nozzle.json new file mode 100644 index 0000000000..2ae8ad777f --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu PLA Silk+ @BBL X1C 0.2 nozzle.json @@ -0,0 +1,26 @@ +{ + "type": "filament", + "name": "Bambu PLA Silk+ @BBL X1C 0.2 nozzle", + "inherits": "Bambu PLA Silk+ @base", + "from": "system", + "setting_id": "GFSA06_01", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "2" + ], + "supertack_plate_temp": [ + "35" + ], + "supertack_plate_temp_initial_layer": [ + "35" + ], + "compatible_printers": [ + "Bambu Lab X1 Carbon 0.2 nozzle", + "Bambu Lab X1 0.2 nozzle", + "Bambu Lab P1S 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\nM142 P1 R35 S40\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Silk+ @BBL X1C.json b/resources/profiles/BBL/filament/Bambu PLA Silk+ @BBL X1C.json new file mode 100644 index 0000000000..e46b129e25 --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu PLA Silk+ @BBL X1C.json @@ -0,0 +1,28 @@ +{ + "type": "filament", + "name": "Bambu PLA Silk+ @BBL X1C", + "inherits": "Bambu PLA Silk+ @base", + "from": "system", + "setting_id": "GFSA06_00", + "instantiation": "true", + "supertack_plate_temp": [ + "35" + ], + "supertack_plate_temp_initial_layer": [ + "35" + ], + "compatible_printers": [ + "Bambu Lab X1 Carbon 0.4 nozzle", + "Bambu Lab X1 Carbon 0.6 nozzle", + "Bambu Lab X1 Carbon 0.8 nozzle", + "Bambu Lab P1S 0.4 nozzle", + "Bambu Lab P1S 0.6 nozzle", + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\nM142 P1 R35 S40\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Silk+ @base.json b/resources/profiles/BBL/filament/Bambu PLA Silk+ @base.json new file mode 100644 index 0000000000..96641e9671 --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu PLA Silk+ @base.json @@ -0,0 +1,36 @@ +{ + "type": "filament", + "name": "Bambu PLA Silk+ @base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFA06", + "instantiation": "false", + "description": "To make the prints get higher gloss, please dry the filament before use, and set the outer wall speed to be 40 to 60 mm/s when slicing.", + "filament_cost": [ + "29.99" + ], + "filament_density": [ + "1.27" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_scarf_height": [ + "5%" + ], + "filament_scarf_seam_type": [ + "all" + ], + "filament_vendor": [ + "Bambu Lab" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Wood @BBL A1.json b/resources/profiles/BBL/filament/Bambu PLA Wood @BBL A1.json new file mode 100644 index 0000000000..f72128847a --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu PLA Wood @BBL A1.json @@ -0,0 +1,40 @@ +{ + "type": "filament", + "name": "Bambu PLA Wood @BBL A1", + "inherits": "Bambu PLA Wood @base", + "from": "system", + "setting_id": "GFSA16_04", + "instantiation": "true", + "fan_cooling_layer_time": [ + "80" + ], + "fan_max_speed": [ + "80" + ], + "fan_min_speed": [ + "60" + ], + "hot_plate_temp": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "slow_down_layer_time": [ + "6" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "compatible_printers": [ + "Bambu Lab A1 0.4 nozzle", + "Bambu Lab A1 0.6 nozzle", + "Bambu Lab A1 0.8 nozzle" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Wood @BBL A1M.json b/resources/profiles/BBL/filament/Bambu PLA Wood @BBL A1M.json new file mode 100644 index 0000000000..545faea7b9 --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu PLA Wood @BBL A1M.json @@ -0,0 +1,40 @@ +{ + "type": "filament", + "name": "Bambu PLA Wood @BBL A1M", + "inherits": "Bambu PLA Wood @base", + "from": "system", + "setting_id": "GFSA16_05", + "instantiation": "true", + "fan_cooling_layer_time": [ + "80" + ], + "fan_max_speed": [ + "80" + ], + "fan_min_speed": [ + "60" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "slow_down_layer_time": [ + "6" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "compatible_printers": [ + "Bambu Lab A1 mini 0.4 nozzle", + "Bambu Lab A1 mini 0.6 nozzle", + "Bambu Lab A1 mini 0.8 nozzle" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Wood @BBL P1P.json b/resources/profiles/BBL/filament/Bambu PLA Wood @BBL P1P.json new file mode 100644 index 0000000000..a5309d7a97 --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu PLA Wood @BBL P1P.json @@ -0,0 +1,37 @@ +{ + "type": "filament", + "name": "Bambu PLA Wood @BBL P1P", + "inherits": "Bambu PLA Wood @base", + "from": "system", + "setting_id": "GFSA16_03", + "instantiation": "true", + "fan_cooling_layer_time": [ + "80" + ], + "fan_min_speed": [ + "50" + ], + "hot_plate_temp": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "slow_down_layer_time": [ + "8" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "compatible_printers": [ + "Bambu Lab P1P 0.4 nozzle", + "Bambu Lab P1P 0.6 nozzle", + "Bambu Lab P1P 0.8 nozzle" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Wood @BBL X1.json b/resources/profiles/BBL/filament/Bambu PLA Wood @BBL X1.json new file mode 100644 index 0000000000..6abc1a51f7 --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu PLA Wood @BBL X1.json @@ -0,0 +1,19 @@ +{ + "type": "filament", + "name": "Bambu PLA Wood @BBL X1", + "inherits": "Bambu PLA Wood @base", + "from": "system", + "setting_id": "GFSA16_02", + "instantiation": "true", + "slow_down_layer_time": [ + "8" + ], + "compatible_printers": [ + "Bambu Lab X1 0.4 nozzle", + "Bambu Lab X1 0.6 nozzle", + "Bambu Lab X1 0.8 nozzle" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Wood @BBL X1C 0.8 nozzle.json b/resources/profiles/BBL/filament/Bambu PLA Wood @BBL X1C 0.8 nozzle.json new file mode 100644 index 0000000000..4f787b2b7e --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu PLA Wood @BBL X1C 0.8 nozzle.json @@ -0,0 +1,13 @@ +{ + "type": "filament", + "name": "Bambu PLA Wood @BBL X1C 0.8 nozzle", + "inherits": "Bambu PLA Wood @base", + "from": "system", + "setting_id": "GFSA16_01", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab X1 Carbon 0.8 nozzle", + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Wood @BBL X1C.json b/resources/profiles/BBL/filament/Bambu PLA Wood @BBL X1C.json new file mode 100644 index 0000000000..9c1251245b --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu PLA Wood @BBL X1C.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "name": "Bambu PLA Wood @BBL X1C", + "inherits": "Bambu PLA Wood @base", + "from": "system", + "setting_id": "GFSA16_00", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab X1 Carbon 0.4 nozzle", + "Bambu Lab X1 Carbon 0.6 nozzle", + "Bambu Lab P1S 0.4 nozzle", + "Bambu Lab P1S 0.6 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Wood @base.json b/resources/profiles/BBL/filament/Bambu PLA Wood @base.json new file mode 100644 index 0000000000..0554dbbea0 --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu PLA Wood @base.json @@ -0,0 +1,35 @@ +{ + "type": "filament", + "name": "Bambu PLA Wood @base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFA16", + "instantiation": "false", + "filament_cost": [ + "24.99" + ], + "filament_density": [ + "1.21" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_long_retractions_when_cut": [ + "1" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "filament_retraction_distances_when_cut": [ + "18" + ], + "filament_scarf_seam_type": [ + "none" + ], + "filament_vendor": [ + "Bambu Lab" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\nM142 P1 R35 S40\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu TPU for AMS @BBL A1.json b/resources/profiles/BBL/filament/Bambu TPU for AMS @BBL A1.json index 52ed49cee1..51db0e836a 100644 --- a/resources/profiles/BBL/filament/Bambu TPU for AMS @BBL A1.json +++ b/resources/profiles/BBL/filament/Bambu TPU for AMS @BBL A1.json @@ -5,6 +5,9 @@ "from": "system", "setting_id": "GFSU02_02", "instantiation": "true", + "fan_max_speed": [ + "40" + ], "compatible_printers": [ "Bambu Lab A1 0.4 nozzle", "Bambu Lab A1 0.6 nozzle", diff --git a/resources/profiles/BBL/filament/Bambu TPU for AMS @BBL A1M.json b/resources/profiles/BBL/filament/Bambu TPU for AMS @BBL A1M.json index bff83af130..9dac74c6e1 100644 --- a/resources/profiles/BBL/filament/Bambu TPU for AMS @BBL A1M.json +++ b/resources/profiles/BBL/filament/Bambu TPU for AMS @BBL A1M.json @@ -5,6 +5,9 @@ "from": "system", "setting_id": "GFSU02_03", "instantiation": "true", + "fan_max_speed": [ + "40" + ], "compatible_printers": [ "Bambu Lab A1 mini 0.4 nozzle", "Bambu Lab A1 mini 0.6 nozzle", diff --git a/resources/profiles/BBL/filament/Bambu TPU for AMS @BBL P1P.json b/resources/profiles/BBL/filament/Bambu TPU for AMS @BBL P1P.json index 3c8c7dad73..d1cd9d7625 100644 --- a/resources/profiles/BBL/filament/Bambu TPU for AMS @BBL P1P.json +++ b/resources/profiles/BBL/filament/Bambu TPU for AMS @BBL P1P.json @@ -5,6 +5,9 @@ "from": "system", "setting_id": "GFSU02_01", "instantiation": "true", + "fan_max_speed": [ + "40" + ], "compatible_printers": [ "Bambu Lab P1P 0.4 nozzle", "Bambu Lab P1P 0.6 nozzle", diff --git a/resources/profiles/BBL/filament/Bambu TPU for AMS @BBL X1C.json b/resources/profiles/BBL/filament/Bambu TPU for AMS @BBL X1C.json index 8c7dac662f..1e054bd6a4 100644 --- a/resources/profiles/BBL/filament/Bambu TPU for AMS @BBL X1C.json +++ b/resources/profiles/BBL/filament/Bambu TPU for AMS @BBL X1C.json @@ -5,6 +5,9 @@ "from": "system", "setting_id": "GFSU02_00", "instantiation": "true", + "fan_max_speed": [ + "40" + ], "compatible_printers": [ "Bambu Lab X1 Carbon 0.4 nozzle", "Bambu Lab X1 Carbon 0.6 nozzle", diff --git a/resources/profiles/BBL/filament/Fiberon PA612-CF @base.json b/resources/profiles/BBL/filament/Fiberon PA612-CF @base.json index 031f9737be..f545b1e1fb 100644 --- a/resources/profiles/BBL/filament/Fiberon PA612-CF @base.json +++ b/resources/profiles/BBL/filament/Fiberon PA612-CF @base.json @@ -24,7 +24,7 @@ "0.96" ], "filament_vendor": [ - "Bambu Lab" + "Polymaker" ], "full_fan_speed_layer": [ "2" diff --git a/resources/profiles/BBL/filament/Generic ASA @base.json b/resources/profiles/BBL/filament/Generic ASA @base.json index 148f69f3d0..15ffd21e2a 100644 --- a/resources/profiles/BBL/filament/Generic ASA @base.json +++ b/resources/profiles/BBL/filament/Generic ASA @base.json @@ -6,10 +6,28 @@ "filament_id": "GFB98", "instantiation": "false", "description": "When printing this filament, there's a risk of warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.", + "eng_plate_temp": [ + "100" + ], + "eng_plate_temp_initial_layer": [ + "100" + ], "filament_flow_ratio": [ "0.95" ], "filament_max_volumetric_speed": [ "12" + ], + "hot_plate_temp": [ + "100" + ], + "hot_plate_temp_initial_layer": [ + "100" + ], + "textured_plate_temp": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "100" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/PolyLite ASA @base.json b/resources/profiles/BBL/filament/PolyLite ASA @base.json index 169e38c125..1479bddfd0 100644 --- a/resources/profiles/BBL/filament/PolyLite ASA @base.json +++ b/resources/profiles/BBL/filament/PolyLite ASA @base.json @@ -5,6 +5,12 @@ "from": "system", "filament_id": "GFB61", "instantiation": "false", + "eng_plate_temp": [ + "100" + ], + "eng_plate_temp_initial_layer": [ + "100" + ], "filament_cost": [ "23.6" ], @@ -19,5 +25,17 @@ ], "filament_vendor": [ "Polymaker" + ], + "hot_plate_temp": [ + "100" + ], + "hot_plate_temp_initial_layer": [ + "100" + ], + "textured_plate_temp": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "100" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/SUNLU/SUNLU Marble PLA @base.json b/resources/profiles/BBL/filament/SUNLU/SUNLU Marble PLA @base.json index 5e4dfa6f87..dbfe4e80e8 100644 --- a/resources/profiles/BBL/filament/SUNLU/SUNLU Marble PLA @base.json +++ b/resources/profiles/BBL/filament/SUNLU/SUNLU Marble PLA @base.json @@ -17,6 +17,12 @@ "filament_vendor": [ "SUNLU" ], + "nozzle_temperature_range_high": [ + "260" + ], + "nozzle_temperature_range_low": [ + "190" + ], "filament_start_gcode": [ "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" ] diff --git a/resources/profiles/BBL/filament/SUNLU/SUNLU PETG @base.json b/resources/profiles/BBL/filament/SUNLU/SUNLU PETG @base.json index 5a190a7283..7f8dac8a20 100644 --- a/resources/profiles/BBL/filament/SUNLU/SUNLU PETG @base.json +++ b/resources/profiles/BBL/filament/SUNLU/SUNLU PETG @base.json @@ -31,7 +31,7 @@ "22.99" ], "filament_density": [ - "1.23" + "1.27" ], "filament_flow_ratio": [ "0.95" @@ -48,14 +48,14 @@ "hot_plate_temp_initial_layer": [ "60" ], - "nozzle_temperature": [ + "nozzle_temperature": [ "245" ], "nozzle_temperature_initial_layer": [ "250" ], "nozzle_temperature_range_high": [ - "270" + "280" ], "nozzle_temperature_range_low": [ "230" @@ -75,8 +75,8 @@ "textured_plate_temp_initial_layer": [ "60" ], - "temperature_vitrification": [ - "64" + "temperature_vitrification": [ + "68" ], "filament_start_gcode": [ "; filament start gcode\n{if (bed_temperature[current_extruder] >80)||(bed_temperature_initial_layer[current_extruder] >80)}M106 P3 S255\n{elsif (bed_temperature[current_extruder] >60)||(bed_temperature_initial_layer[current_extruder] >60)}M106 P3 S180\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" diff --git a/resources/profiles/BBL/filament/SUNLU/SUNLU PLA Matte @base.json b/resources/profiles/BBL/filament/SUNLU/SUNLU PLA Matte @base.json index 64ed41a54a..4e8a7cc0c1 100644 --- a/resources/profiles/BBL/filament/SUNLU/SUNLU PLA Matte @base.json +++ b/resources/profiles/BBL/filament/SUNLU/SUNLU PLA Matte @base.json @@ -14,13 +14,13 @@ "filament_flow_ratio": [ "0.98" ], - "filament_long_retractions_when_cut": [ + "filament_long_retractions_when_cut": [ "1" ], - "filament_retraction_distances_when_cut": [ + "filament_retraction_distances_when_cut": [ "18" - ], - "filament_max_volumetric_speed": [ + ], + "filament_max_volumetric_speed": [ "21" ], "filament_vendor": [ @@ -38,8 +38,14 @@ "filament_scarf_length":[ "10" ], - "temperature_vitrification": [ - "53" + "temperature_vitrification": [ + "54" + ], + "nozzle_temperature_range_high": [ + "245" + ], + "nozzle_temperature_range_low": [ + "205" ], "filament_start_gcode": [ "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" diff --git a/resources/profiles/BBL/filament/SUNLU/SUNLU PLA+ 2.0 @base.json b/resources/profiles/BBL/filament/SUNLU/SUNLU PLA+ 2.0 @base.json index 8b1c52eb35..383ee386b4 100644 --- a/resources/profiles/BBL/filament/SUNLU/SUNLU PLA+ 2.0 @base.json +++ b/resources/profiles/BBL/filament/SUNLU/SUNLU PLA+ 2.0 @base.json @@ -9,18 +9,18 @@ "18.99" ], "filament_density": [ - "1.23" + "1.21" ], "filament_flow_ratio": [ "1.0" ], - "filament_long_retractions_when_cut": [ + "filament_long_retractions_when_cut": [ "1" ], - "filament_retraction_distances_when_cut": [ + "filament_retraction_distances_when_cut": [ "18" - ], - "filament_max_volumetric_speed": [ + ], + "filament_max_volumetric_speed": [ "22" ], "filament_vendor": [ @@ -38,10 +38,10 @@ "filament_scarf_length":[ "10" ], - "temperature_vitrification": [ - "53" + "temperature_vitrification": [ + "54" ], "filament_start_gcode": [ "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" ] -} \ No newline at end of file +} diff --git a/resources/profiles/BBL/filament/SUNLU/SUNLU PLA+ @BBL A1 0.2 nozzle.json b/resources/profiles/BBL/filament/SUNLU/SUNLU PLA+ @BBL A1 0.2 nozzle.json index 04ce4d4300..700bc8ace5 100644 --- a/resources/profiles/BBL/filament/SUNLU/SUNLU PLA+ @BBL A1 0.2 nozzle.json +++ b/resources/profiles/BBL/filament/SUNLU/SUNLU PLA+ @BBL A1 0.2 nozzle.json @@ -3,7 +3,7 @@ "name": "SUNLU PLA+ @BBL A1 0.2 nozzle", "inherits": "SUNLU PLA+ @base", "from": "system", - "setting_id": "SNLS03_04", + "setting_id": "SNLS03_05", "instantiation": "true", "fan_cooling_layer_time": [ "80" diff --git a/resources/profiles/BBL/filament/SUNLU/SUNLU PLA+ @BBL A1M.json b/resources/profiles/BBL/filament/SUNLU/SUNLU PLA+ @BBL A1M.json index a5d2a227bb..902029496f 100644 --- a/resources/profiles/BBL/filament/SUNLU/SUNLU PLA+ @BBL A1M.json +++ b/resources/profiles/BBL/filament/SUNLU/SUNLU PLA+ @BBL A1M.json @@ -3,7 +3,7 @@ "name": "SUNLU PLA+ @BBL A1M", "inherits": "SUNLU PLA+ @base", "from": "system", - "setting_id": "SNLS03_05", + "setting_id": "SNLS03_07", "instantiation": "true", "fan_cooling_layer_time": [ "80" diff --git a/resources/profiles/BBL/filament/SUNLU/SUNLU PLA+ @base.json b/resources/profiles/BBL/filament/SUNLU/SUNLU PLA+ @base.json index ec96f4bb23..72c9c69ed8 100644 --- a/resources/profiles/BBL/filament/SUNLU/SUNLU PLA+ @base.json +++ b/resources/profiles/BBL/filament/SUNLU/SUNLU PLA+ @base.json @@ -14,13 +14,13 @@ "filament_flow_ratio": [ "1.0" ], - "filament_long_retractions_when_cut": [ + "filament_long_retractions_when_cut": [ "1" ], - "filament_retraction_distances_when_cut": [ + "filament_retraction_distances_when_cut": [ "18" - ], - "filament_max_volumetric_speed": [ + ], + "filament_max_volumetric_speed": [ "12" ], "filament_vendor": [ @@ -38,8 +38,8 @@ "filament_scarf_length":[ "10" ], - "temperature_vitrification": [ - "53" + "temperature_vitrification": [ + "54" ], "filament_start_gcode": [ "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" diff --git a/resources/profiles/BBL/filament/SUNLU/SUNLU Silk PLA+ @base.json b/resources/profiles/BBL/filament/SUNLU/SUNLU Silk PLA+ @base.json index a4e07641fc..8112a2b94f 100644 --- a/resources/profiles/BBL/filament/SUNLU/SUNLU Silk PLA+ @base.json +++ b/resources/profiles/BBL/filament/SUNLU/SUNLU Silk PLA+ @base.json @@ -15,13 +15,13 @@ "filament_flow_ratio": [ "0.98" ], - "filament_long_retractions_when_cut": [ + "filament_long_retractions_when_cut": [ "1" ], - "filament_retraction_distances_when_cut": [ + "filament_retraction_distances_when_cut": [ "18" - ], - "filament_max_volumetric_speed": [ + ], + "filament_max_volumetric_speed": [ "16" ], "filament_vendor": [ @@ -45,8 +45,8 @@ "supertack_plate_temp_initial_layer": [ "0" ], - "temperature_vitrification": [ - "53" + "temperature_vitrification": [ + "54" ], "filament_start_gcode": [ "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" diff --git a/resources/profiles/BBL/filament/SUNLU/SUNLU Wood PLA @base.json b/resources/profiles/BBL/filament/SUNLU/SUNLU Wood PLA @base.json index dfd91a5564..225b114c00 100644 --- a/resources/profiles/BBL/filament/SUNLU/SUNLU Wood PLA @base.json +++ b/resources/profiles/BBL/filament/SUNLU/SUNLU Wood PLA @base.json @@ -9,27 +9,27 @@ "26.99" ], "filament_density": [ - "1.25" + "1.10" ], "filament_flow_ratio": [ "1.0" ], - "filament_long_retractions_when_cut": [ + "filament_long_retractions_when_cut": [ "1" ], - "filament_retraction_distances_when_cut": [ + "filament_retraction_distances_when_cut": [ "18" ], - "filament_retraction_length": [ + "filament_retraction_length": [ "4" ], - "filament_retraction_speed": [ + "filament_retraction_speed": [ "50" ], - "filament_deretraction_speed": [ + "filament_deretraction_speed": [ "0" ], - "filament_max_volumetric_speed": [ + "filament_max_volumetric_speed": [ "16" ], "filament_vendor": [ @@ -47,8 +47,14 @@ "filament_scarf_length":[ "10" ], - "temperature_vitrification": [ - "45" + "temperature_vitrification": [ + "54" + ], + "nozzle_temperature_range_high": [ + "260" + ], + "nozzle_temperature_range_low": [ + "195" ], "filament_start_gcode": [ "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\nM142 P1 R35 S40\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" diff --git a/resources/profiles/BBL/machine/Bambu Lab A1 0.4 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab A1 0.4 nozzle.json index a897bd8aaa..68e1da8598 100644 --- a/resources/profiles/BBL/machine/Bambu Lab A1 0.4 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab A1 0.4 nozzle.json @@ -66,5 +66,5 @@ "machine_end_gcode": ";===== date: 20231229 =====================\nG392 S0 ;turn off nozzle clog detect\n\nM400 ; wait for buffer to clear\nG92 E0 ; zero the extruder\nG1 E-0.8 F1800 ; retract\nG1 Z{max_layer_z + 0.5} F900 ; lower z a little\nG1 X0 Y{first_layer_center_no_wipe_tower[1]} F18000 ; move to safe pos\nG1 X-13.0 F3000 ; move to safe pos\n{if !spiral_mode && print_sequence != \"by object\"}\nM1002 judge_flag timelapse_record_flag\nM622 J1\nM400 P100\nM971 S11 C11 O0\nM400 P100\nM971 S11 C11 O0\nM400 P100\nM971 S11 C11 O0\nM400 P100\nM971 S11 C11 O0\nM400 P100\nM971 S11 C11 O0\nM400 P100\nM971 S11 C11 O0\nM400 P100\nM971 S11 C11 O0\nM400 P100\nM971 S11 C11 O0\nM400 P100\nM971 S11 C11 O0\nM400 P100\nM971 S11 C11 O0\nM400 P100\nM971 S11 C11 O0\nM400 P100\nM971 S11 C11 O0\nM400 P100\nM971 S11 C11 O0\nM400 P100\nM971 S11 C11 O0\nM400 P100\nM971 S11 C11 O0\nM400 P100\nM971 S11 C11 O0\nM400 P100\nM971 S11 C11 O0\nM400 P100\nM971 S11 C11 O0\nM400 P100\nM971 S11 C11 O0\nM400 P100\nM971 S11 C11 O0\nM400 P100\nM971 S11 C11 O0\nM400 P100\nM971 S11 C11 O0\nM400 P100\nM971 S11 C11 O0\nM400 P100\nM971 S11 C11 O0\nM400 P100\nM971 S11 C11 O0\nM400 P100\nM971 S11 C11 O0\nM400 P100\nM971 S11 C11 O0\nM400 P100\nM971 S11 C11 O0\nM400 P100\nM971 S11 C11 O0\nM400 P100\nM971 S11 C11 O0\nM991 S0 P-1 ;end timelapse at safe pos\nM623\n{endif}\n\nM140 S0 ; turn off bed\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off remote part cooling fan\nM106 P3 S0 ; turn off chamber cooling fan\n\n;G1 X27 F15000 ; wipe\n\n; pull back filament to AMS\nM620 S255\nG1 X267 F15000\nT255\nG1 X-28.5 F18000\nG1 X-48.2 F3000\nG1 X-28.5 F18000\nG1 X-48.2 F3000\nM621 S255\n\nM104 S0 ; turn off hotend\n\nM400 ; wait all motion done\nM17 S\nM17 Z0.4 ; lower z motor current to reduce impact if there is something in the bottom\n{if (max_layer_z + 100.0) < 256}\n G1 Z{max_layer_z + 100.0} F600\n G1 Z{max_layer_z +98.0}\n{else}\n G1 Z256 F600\n G1 Z256\n{endif}\nM400 P100\nM17 R ; restore z current\n\nG90\nG1 X-48 Y180 F3600\n\nM220 S100 ; Reset feedrate magnitude\nM201.2 K1.0 ; Reset acc magnitude\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 0\n\n;=====printer finish sound=========\nM17\nM400 S1\nM1006 S1\nM1006 A0 B20 L100 C37 D20 M40 E42 F20 N60\nM1006 A0 B10 L100 C44 D10 M60 E44 F10 N60\nM1006 A0 B10 L100 C46 D10 M80 E46 F10 N80\nM1006 A44 B20 L100 C39 D20 M60 E48 F20 N60\nM1006 A0 B10 L100 C44 D10 M60 E44 F10 N60\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N60\nM1006 A0 B10 L100 C39 D10 M60 E39 F10 N60\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N60\nM1006 A0 B10 L100 C44 D10 M60 E44 F10 N60\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N60\nM1006 A0 B10 L100 C39 D10 M60 E39 F10 N60\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N60\nM1006 A0 B10 L100 C48 D10 M60 E44 F10 N80\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N80\nM1006 A44 B20 L100 C49 D20 M80 E41 F20 N80\nM1006 A0 B20 L100 C0 D20 M60 E0 F20 N80\nM1006 A0 B20 L100 C37 D20 M30 E37 F20 N60\nM1006 W\n;=====printer finish sound=========\n\n;M17 X0.8 Y0.8 Z0.5 ; lower motor current to 45% power\nM400\nM18 X Y Z\n\n", "layer_change_gcode": "; layer num/total_layer_count: {layer_num+1}/[total_layer_count]\n; update layer progress\nM73 L{layer_num+1}\nM991 S0 P{layer_num} ;notify layer change", "time_lapse_gcode": ";===================== date: 20240606 =====================\n{if !spiral_mode && print_sequence != \"by object\"}\n; don't support timelapse gcode in spiral_mode and by object sequence for I3 structure printer\nM622.1 S1 ; for prev firware, default turned on\nM1002 judge_flag timelapse_record_flag\nM622 J1\nG92 E0\nG17\nG2 Z{layer_z + 0.4} I0.86 J0.86 P1 F20000 ; spiral lift a little\nG1 Z{max_layer_z + 0.4}\nG1 X0 Y{first_layer_center_no_wipe_tower[1]} F18000 ; move to safe pos\nG1 X-48.2 F3000 ; move to safe pos\nM400 P300\nM971 S11 C11 O0\nG92 E0\nG1 X0 F18000\nM623\n\nM622.1 S1\nM1002 judge_flag g39_3rd_layer_detect_flag\nM622 J1\n ; enable nozzle clog detect at 3rd layer\n {if layer_num == 2}\n M400\n G90\n M83\n M204 S5000\n G0 Z2 F4000\n G0 X261 Y250 F20000\n M400 P200\n G39 S1\n G0 Z2 F4000\n {endif}\n\n\n M622.1 S1\n M1002 judge_flag g39_detection_flag\n M622 J1\n {if !in_head_wrap_detect_zone}\n M622.1 S0\n M1002 judge_flag g39_mass_exceed_flag\n M622 J1\n {if layer_num > 2}\n G392 S0\n M400\n G90\n M83\n M204 S5000\n G0 Z{max_layer_z + 0.4} F4000\n G39.3 S1\n G0 Z{max_layer_z + 0.4} F4000\n G392 S0\n {endif}\n M623\n {endif}\n M623\nM623\n{endif}\n", - "change_filament_gcode": ";===== machine: A1 =========================\n;===== date: 20240830 =======================\nM1007 S0 ; turn off mass estimation\nG392 S0\nM620 S[next_extruder]A\nM204 S9000\n{if toolchange_count > 1}\nG17\nG2 Z{max_layer_z + 0.4} I0.86 J0.86 P1 F10000 ; spiral lift a little from second lift\n{endif}\nG1 Z{max_layer_z + 3.0} F1200\n\nM400\nM106 P1 S0\nM106 P2 S0\n{if old_filament_temp > 142 && next_extruder < 255}\nM104 S[old_filament_temp]\n{endif}\n\nG1 X267 F18000\nM620.1 E F[old_filament_e_feedrate] T{nozzle_temperature_range_high[previous_extruder]}\nM620.10 A0 F[old_filament_e_feedrate]\nT[next_extruder]\nM620.1 E F[new_filament_e_feedrate] T{nozzle_temperature_range_high[next_extruder]}\nM620.10 A1 F[new_filament_e_feedrate] L[flush_length] H[nozzle_diameter] T[nozzle_temperature_range_high]\n\nG1 Y128 F9000\n\n{if next_extruder < 255}\nM400\n\nG92 E0\nM628 S0\n\n{if flush_length_1 > 1}\n; FLUSH_START\n; always use highest temperature to flush\nM400\nM1002 set_filament_type:UNKNOWN\nM109 S[nozzle_temperature_range_high]\nM106 P1 S60\n{if flush_length_1 > 23.7}\nG1 E23.7 F{old_filament_e_feedrate} ; do not need pulsatile flushing for start part\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{old_filament_e_feedrate}\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{new_filament_e_feedrate}\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{new_filament_e_feedrate}\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{new_filament_e_feedrate}\n{else}\nG1 E{flush_length_1} F{old_filament_e_feedrate}\n{endif}\n; FLUSH_END\nG1 E-[old_retract_length_toolchange] F1800\nG1 E[old_retract_length_toolchange] F300\nM400\nM1002 set_filament_type:{filament_type[next_extruder]}\n{endif}\n\n{if flush_length_1 > 45 && flush_length_2 > 1}\n; WIPE\nM400\nM106 P1 S178\nM400 S3\nG1 X-38.2 F18000\nG1 X-48.2 F3000\nG1 X-38.2 F18000\nG1 X-48.2 F3000\nG1 X-38.2 F18000\nG1 X-48.2 F3000\nM400\nM106 P1 S0\n{endif}\n\n{if flush_length_2 > 1}\nM106 P1 S60\n; FLUSH_START\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\n; FLUSH_END\nG1 E-[new_retract_length_toolchange] F1800\nG1 E[new_retract_length_toolchange] F300\n{endif}\n\n{if flush_length_2 > 45 && flush_length_3 > 1}\n; WIPE\nM400\nM106 P1 S178\nM400 S3\nG1 X-38.2 F18000\nG1 X-48.2 F3000\nG1 X-38.2 F18000\nG1 X-48.2 F3000\nG1 X-38.2 F18000\nG1 X-48.2 F3000\nM400\nM106 P1 S0\n{endif}\n\n{if flush_length_3 > 1}\nM106 P1 S60\n; FLUSH_START\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\n; FLUSH_END\nG1 E-[new_retract_length_toolchange] F1800\nG1 E[new_retract_length_toolchange] F300\n{endif}\n\n{if flush_length_3 > 45 && flush_length_4 > 1}\n; WIPE\nM400\nM106 P1 S178\nM400 S3\nG1 X-38.2 F18000\nG1 X-48.2 F3000\nG1 X-38.2 F18000\nG1 X-48.2 F3000\nG1 X-38.2 F18000\nG1 X-48.2 F3000\nM400\nM106 P1 S0\n{endif}\n\n{if flush_length_4 > 1}\nM106 P1 S60\n; FLUSH_START\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\n; FLUSH_END\n{endif}\n\nM629\n\nM400\nM106 P1 S60\nM109 S[new_filament_temp]\nG1 E6 F{new_filament_e_feedrate} ;Compensate for filament spillage during waiting temperature\nM400\nG92 E0\nG1 E-[new_retract_length_toolchange] F1800\nM400\nM106 P1 S178\nM400 S3\nG1 X-38.2 F18000\nG1 X-48.2 F3000\nG1 X-38.2 F18000\nG1 X-48.2 F3000\nG1 X-38.2 F18000\nG1 X-48.2 F3000\nG1 X-38.2 F18000\nG1 X-48.2 F3000\nM400\nG1 Z{max_layer_z + 3.0} F3000\nM106 P1 S0\n{if layer_z <= (initial_layer_print_height + 0.001)}\nM204 S[initial_layer_acceleration]\n{else}\nM204 S[default_acceleration]\n{endif}\n{else}\nG1 X[x_after_toolchange] Y[y_after_toolchange] Z[z_after_toolchange] F12000\n{endif}\n\nM622.1 S0\nM9833 F{outer_wall_volumetric_speed/2.4} A0.3 ; cali dynamic extrusion compensation\nM1002 judge_flag filament_need_cali_flag\nM622 J1\n G92 E0\n G1 E-[new_retract_length_toolchange] F1800\n M400\n \n M106 P1 S178\n M400 S4\n G1 X-38.2 F18000\n G1 X-48.2 F3000\n G1 X-38.2 F18000 ;wipe and shake\n G1 X-48.2 F3000\n G1 X-38.2 F12000 ;wipe and shake\n G1 X-48.2 F3000\n M400\n M106 P1 S0 \n \n\nM623\n\nM621 S[next_extruder]A\nG392 S0\n\nM1007 S1\n" + "change_filament_gcode": ";===== A1 20240913 =======================\nM1007 S0 ; turn off mass estimation\nG392 S0\nM620 S[next_extruder]A\nM204 S9000\n{if toolchange_count > 1}\nG17\nG2 Z{max_layer_z + 0.4} I0.86 J0.86 P1 F10000 ; spiral lift a little from second lift\n{endif}\nG1 Z{max_layer_z + 3.0} F1200\n\nM400\nM106 P1 S0\nM106 P2 S0\n{if old_filament_temp > 142 && next_extruder < 255}\nM104 S[old_filament_temp]\n{endif}\n\nG1 X267 F18000\n\n{if long_retractions_when_cut[previous_extruder]}\nM620.11 S1 I[previous_extruder] E-{retraction_distances_when_cut[previous_extruder]} F1200\n{else}\nM620.11 S0\n{endif}\nM400\n\nM620.1 E F[old_filament_e_feedrate] T{nozzle_temperature_range_high[previous_extruder]}\nM620.10 A0 F[old_filament_e_feedrate]\nT[next_extruder]\nM620.1 E F[new_filament_e_feedrate] T{nozzle_temperature_range_high[next_extruder]}\nM620.10 A1 F[new_filament_e_feedrate] L[flush_length] H[nozzle_diameter] T[nozzle_temperature_range_high]\n\nG1 Y128 F9000\n\n{if next_extruder < 255}\n\n{if long_retractions_when_cut[previous_extruder]}\nM620.11 S1 I[previous_extruder] E{retraction_distances_when_cut[previous_extruder]} F{old_filament_e_feedrate}\nM628 S1\nG92 E0\nG1 E{retraction_distances_when_cut[previous_extruder]} F[old_filament_e_feedrate]\nM400\nM629 S1\n{else}\nM620.11 S0\n{endif}\n\nM400\nG92 E0\nM628 S0\n\n{if flush_length_1 > 1}\n; FLUSH_START\n; always use highest temperature to flush\nM400\nM1002 set_filament_type:UNKNOWN\nM109 S[nozzle_temperature_range_high]\nM106 P1 S60\n{if flush_length_1 > 23.7}\nG1 E23.7 F{old_filament_e_feedrate} ; do not need pulsatile flushing for start part\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{old_filament_e_feedrate}\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{new_filament_e_feedrate}\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{new_filament_e_feedrate}\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{new_filament_e_feedrate}\n{else}\nG1 E{flush_length_1} F{old_filament_e_feedrate}\n{endif}\n; FLUSH_END\nG1 E-[old_retract_length_toolchange] F1800\nG1 E[old_retract_length_toolchange] F300\nM400\nM1002 set_filament_type:{filament_type[next_extruder]}\n{endif}\n\n{if flush_length_1 > 45 && flush_length_2 > 1}\n; WIPE\nM400\nM106 P1 S178\nM400 S3\nG1 X-38.2 F18000\nG1 X-48.2 F3000\nG1 X-38.2 F18000\nG1 X-48.2 F3000\nG1 X-38.2 F18000\nG1 X-48.2 F3000\nM400\nM106 P1 S0\n{endif}\n\n{if flush_length_2 > 1}\nM106 P1 S60\n; FLUSH_START\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\n; FLUSH_END\nG1 E-[new_retract_length_toolchange] F1800\nG1 E[new_retract_length_toolchange] F300\n{endif}\n\n{if flush_length_2 > 45 && flush_length_3 > 1}\n; WIPE\nM400\nM106 P1 S178\nM400 S3\nG1 X-38.2 F18000\nG1 X-48.2 F3000\nG1 X-38.2 F18000\nG1 X-48.2 F3000\nG1 X-38.2 F18000\nG1 X-48.2 F3000\nM400\nM106 P1 S0\n{endif}\n\n{if flush_length_3 > 1}\nM106 P1 S60\n; FLUSH_START\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\n; FLUSH_END\nG1 E-[new_retract_length_toolchange] F1800\nG1 E[new_retract_length_toolchange] F300\n{endif}\n\n{if flush_length_3 > 45 && flush_length_4 > 1}\n; WIPE\nM400\nM106 P1 S178\nM400 S3\nG1 X-38.2 F18000\nG1 X-48.2 F3000\nG1 X-38.2 F18000\nG1 X-48.2 F3000\nG1 X-38.2 F18000\nG1 X-48.2 F3000\nM400\nM106 P1 S0\n{endif}\n\n{if flush_length_4 > 1}\nM106 P1 S60\n; FLUSH_START\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\n; FLUSH_END\n{endif}\n\nM629\n\nM400\nM106 P1 S60\nM109 S[new_filament_temp]\nG1 E6 F{new_filament_e_feedrate} ;Compensate for filament spillage during waiting temperature\nM400\nG92 E0\nG1 E-[new_retract_length_toolchange] F1800\nM400\nM106 P1 S178\nM400 S3\nG1 X-38.2 F18000\nG1 X-48.2 F3000\nG1 X-38.2 F18000\nG1 X-48.2 F3000\nG1 X-38.2 F18000\nG1 X-48.2 F3000\nG1 X-38.2 F18000\nG1 X-48.2 F3000\nM400\nG1 Z{max_layer_z + 3.0} F3000\nM106 P1 S0\n{if layer_z <= (initial_layer_print_height + 0.001)}\nM204 S[initial_layer_acceleration]\n{else}\nM204 S[default_acceleration]\n{endif}\n{else}\nG1 X[x_after_toolchange] Y[y_after_toolchange] Z[z_after_toolchange] F12000\n{endif}\n\nM622.1 S0\nM9833 F{outer_wall_volumetric_speed/2.4} A0.3 ; cali dynamic extrusion compensation\nM1002 judge_flag filament_need_cali_flag\nM622 J1\n G92 E0\n G1 E-[new_retract_length_toolchange] F1800\n M400\n \n M106 P1 S178\n M400 S4\n G1 X-38.2 F18000\n G1 X-48.2 F3000\n G1 X-38.2 F18000 ;wipe and shake\n G1 X-48.2 F3000\n G1 X-38.2 F12000 ;wipe and shake\n G1 X-48.2 F3000\n M400\n M106 P1 S0 \nM623\n\nM621 S[next_extruder]A\nG392 S0\n\nM1007 S1\n" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.4 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.4 nozzle.json index 5319a77f85..58a4e1a3f8 100644 --- a/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.4 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.4 nozzle.json @@ -73,5 +73,5 @@ "machine_end_gcode": ";===== date: 20231229 =====================\n;turn off nozzle clog detect\nG392 S0\n\nM400 ; wait for buffer to clear\nG92 E0 ; zero the extruder\nG1 E-0.8 F1800 ; retract\nG1 Z{max_layer_z + 0.5} F900 ; lower z a little\nG1 X0 Y{first_layer_center_no_wipe_tower[1]} F18000 ; move to safe pos\nG1 X-13.0 F3000 ; move to safe pos\n{if !spiral_mode && print_sequence != \"by object\"}\nM1002 judge_flag timelapse_record_flag\nM622 J1\nM400 P100\nM971 S11 C11 O0\nM400 P100\nM971 S11 C11 O0\nM400 P100\nM971 S11 C11 O0\nM400 P100\nM971 S11 C11 O0\nM400 P100\nM971 S11 C11 O0\nM400 P100\nM971 S11 C11 O0\nM400 P100\nM971 S11 C11 O0\nM400 P100\nM971 S11 C11 O0\nM400 P100\nM971 S11 C11 O0\nM400 P100\nM971 S11 C11 O0\nM400 P100\nM971 S11 C11 O0\nM400 P100\nM971 S11 C11 O0\nM400 P100\nM971 S11 C11 O0\nM400 P100\nM971 S11 C11 O0\nM400 P100\nM971 S11 C11 O0\nM400 P100\nM971 S11 C11 O0\nM400 P100\nM971 S11 C11 O0\nM400 P100\nM971 S11 C11 O0\nM400 P100\nM971 S11 C11 O0\nM400 P100\nM971 S11 C11 O0\nM400 P100\nM971 S11 C11 O0\nM400 P100\nM971 S11 C11 O0\nM400 P100\nM971 S11 C11 O0\nM400 P100\nM971 S11 C11 O0\nM400 P100\nM971 S11 C11 O0\nM400 P100\nM971 S11 C11 O0\nM400 P100\nM971 S11 C11 O0\nM400 P100\nM971 S11 C11 O0\nM400 P100\nM971 S11 C11 O0\nM400 P100\nM971 S11 C11 O0\nM991 S0 P-1 ;end timelapse at safe pos\nM623\n{endif}\n\nM140 S0 ; turn off bed\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off remote part cooling fan\nM106 P3 S0 ; turn off chamber cooling fan\n\n;G1 X27 F15000 ; wipe\n\n; pull back filament to AMS\nM620 S255\nG1 X181 F12000\nT255\nG1 X0 F18000\nG1 X-13.0 F3000\nG1 X0 F18000 ; wipe\nM621 S255\n\nM104 S0 ; turn off hotend\n\nM400 ; wait all motion done\nM17 S\nM17 Z0.4 ; lower z motor current to reduce impact if there is something in the bottom\n{if (max_layer_z + 100.0) < 180}\n G1 Z{max_layer_z + 100.0} F600\n G1 Z{max_layer_z +98.0}\n{else}\n G1 Z180 F600\n G1 Z180\n{endif}\nM400 P100\nM17 R ; restore z current\n\nG90\nG1 X-13 Y180 F3600\n\nG91\nG1 Z-1 F600\nG90\nM83\n\nM220 S100 ; Reset feedrate magnitude\nM201.2 K1.0 ; Reset acc magnitude\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 0\n\n;=====printer finish sound=========\nM17\nM400 S1\nM1006 S1\nM1006 A0 B20 L100 C37 D20 M100 E42 F20 N100\nM1006 A0 B10 L100 C44 D10 M100 E44 F10 N100\nM1006 A0 B10 L100 C46 D10 M100 E46 F10 N100\nM1006 A44 B20 L100 C39 D20 M100 E48 F20 N100\nM1006 A0 B10 L100 C44 D10 M100 E44 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A0 B10 L100 C39 D10 M100 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A0 B10 L100 C44 D10 M100 E44 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A0 B10 L100 C39 D10 M100 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A44 B10 L100 C0 D10 M100 E48 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A44 B20 L100 C41 D20 M100 E49 F20 N100\nM1006 A0 B20 L100 C0 D20 M100 E0 F20 N100\nM1006 A0 B20 L100 C37 D20 M100 E37 F20 N100\nM1006 W\n;=====printer finish sound=========\nM400 S1\nM18 X Y Z\n", "layer_change_gcode": "; layer num/total_layer_count: {layer_num+1}/[total_layer_count]\n; update layer progress\nM73 L{layer_num+1}\nM991 S0 P{layer_num} ;notify layer change\n", "time_lapse_gcode": ";===================== date: 20240606 =====================\n{if !spiral_mode && print_sequence != \"by object\"}\n; don't support timelapse gcode in spiral_mode and by object sequence for I3 structure printer\nM622.1 S1 ; for prev firware, default turned on\nM1002 judge_flag timelapse_record_flag\nM622 J1\nG92 E0\nG17\nG2 Z{layer_z + 0.4} I0.86 J0.86 P1 F20000 ; spiral lift a little\nG1 Z{max_layer_z + 0.4}\nG1 X0 Y{first_layer_center_no_wipe_tower[1]} F18000 ; move to safe pos\nG1 X-13.0 F3000 ; move to safe pos\nM400 P300\nM971 S11 C11 O0\nG92 E0\nG1 X0 F18000\nM623\n\nM622.1 S1\nM1002 judge_flag g39_3rd_layer_detect_flag\nM622 J1\n ; enable nozzle clog detect at 3rd layer\n {if layer_num == 2}\n M400\n G90\n M83\n M204 S5000\n G0 Z2 F4000\n G0 X187 Y178 F20000\n G39 S1 X187 Y178\n G0 Z2 F4000\n {endif}\n\n\n M622.1 S1\n M1002 judge_flag g39_detection_flag\n M622 J1\n {if !in_head_wrap_detect_zone}\n M622.1 S0\n M1002 judge_flag g39_mass_exceed_flag\n M622 J1\n {if layer_num > 2}\n G392 S0\n M400\n G90\n M83\n M204 S5000\n G0 Z{max_layer_z + 0.4} F4000\n G39.3 S1\n G0 Z{max_layer_z + 0.4} F4000\n G392 S0\n {endif}\n M623\n {endif}\n M623\nM623\n{endif}\n\n\n", - "change_filament_gcode": ";===== machine: A1 mini =========================\n;===== date: 20240830 =======================\nG392 S0\nM1007 S0\nM620 S[next_extruder]A\nM204 S9000\n{if toolchange_count > 1}\nG17\nG2 Z{max_layer_z + 0.4} I0.86 J0.86 P1 F10000 ; spiral lift a little from second lift\n{endif}\nG1 Z{max_layer_z + 3.0} F1200\n\nM400\nM106 P1 S0\nM106 P2 S0\n{if old_filament_temp > 142 && next_extruder < 255}\nM104 S[old_filament_temp]\n{endif}\n\nG1 X180 F18000\nM620.1 E F[old_filament_e_feedrate] T{nozzle_temperature_range_high[previous_extruder]}\nM620.10 A0 F[old_filament_e_feedrate]\nT[next_extruder]\nM620.1 E F[new_filament_e_feedrate] T{nozzle_temperature_range_high[next_extruder]}\nM620.10 A1 F[new_filament_e_feedrate] L[flush_length] H[nozzle_diameter] T[nozzle_temperature_range_high]\n\nG1 Y90 F9000\n\n{if next_extruder < 255}\nM400\n\nG92 E0\nM628 S0\n\n{if flush_length_1 > 1}\n; FLUSH_START\n; always use highest temperature to flush\nM400\nM1002 set_filament_type:UNKNOWN\nM109 S[nozzle_temperature_range_high]\nM106 P1 S60\n{if flush_length_1 > 23.7}\nG1 E23.7 F{old_filament_e_feedrate} ; do not need pulsatile flushing for start part\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{old_filament_e_feedrate}\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{new_filament_e_feedrate}\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{new_filament_e_feedrate}\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{new_filament_e_feedrate}\n{else}\nG1 E{flush_length_1} F{old_filament_e_feedrate}\n{endif}\n; FLUSH_END\nG1 E-[old_retract_length_toolchange] F1800\nG1 E[old_retract_length_toolchange] F300\nM400\nM1002 set_filament_type:{filament_type[next_extruder]}\n{endif}\n\n{if flush_length_1 > 45 && flush_length_2 > 1}\n; WIPE\nM400\nM106 P1 S178\nM400 S3\nG1 X-3.5 F18000\nG1 X-13.5 F3000\nG1 X-3.5 F18000\nG1 X-13.5 F3000\nG1 X-3.5 F18000\nG1 X-13.5 F3000\nM400\nM106 P1 S0\n{endif}\n\n{if flush_length_2 > 1}\nM106 P1 S60\n; FLUSH_START\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\n; FLUSH_END\nG1 E-[new_retract_length_toolchange] F1800\nG1 E[new_retract_length_toolchange] F300\n{endif}\n\n{if flush_length_2 > 45 && flush_length_3 > 1}\n; WIPE\nM400\nM106 P1 S178\nM400 S3\nG1 X-3.5 F18000\nG1 X-13.5 F3000\nG1 X-3.5 F18000\nG1 X-13.5 F3000\nG1 X-3.5 F18000\nG1 X-13.5 F3000\nM400\nM106 P1 S0\n{endif}\n\n{if flush_length_3 > 1}\nM106 P1 S60\n; FLUSH_START\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\n; FLUSH_END\nG1 E-[new_retract_length_toolchange] F1800\nG1 E[new_retract_length_toolchange] F300\n{endif}\n\n{if flush_length_3 > 45 && flush_length_4 > 1}\n; WIPE\nM400\nM106 P1 S178\nM400 S3\nG1 X-3.5 F18000\nG1 X-13.5 F3000\nG1 X-3.5 F18000\nG1 X-13.5 F3000\nG1 X-3.5 F18000\nG1 X-13.5 F3000\nM400\nM106 P1 S0\n{endif}\n\n{if flush_length_4 > 1}\nM106 P1 S60\n; FLUSH_START\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\n; FLUSH_END\n{endif}\n\nM629\n\nM400\nM106 P1 S60\nM109 S[new_filament_temp]\nG1 E5 F{new_filament_e_feedrate} ;Compensate for filament spillage during waiting temperature\nM400\nG92 E0\nG1 E-[new_retract_length_toolchange] F1800\nM400\nM106 P1 S178\nM400 S3\nG1 X-3.5 F18000\nG1 X-13.5 F3000\nG1 X-3.5 F18000\nG1 X-13.5 F3000\nG1 X-3.5 F18000\nG1 X-13.5 F3000\nG1 X-3.5 F18000\nG1 X-13.5 F3000\nM400\nG1 Z{max_layer_z + 3.0} F3000\nM106 P1 S0\n{if layer_z <= (initial_layer_print_height + 0.001)}\nM204 S[initial_layer_acceleration]\n{else}\nM204 S[default_acceleration]\n{endif}\n{else}\nG1 X[x_after_toolchange] Y[y_after_toolchange] Z[z_after_toolchange] F12000\n{endif}\nM621 S[next_extruder]A\n\n\nM622.1 S0\n\nM9833 F{outer_wall_volumetric_speed/2.4} A0.3 ; cali dynamic extrusion compensation\nM1002 judge_flag filament_need_cali_flag\nM622 J1\n G92 E0\n G1 E-[new_retract_length_toolchange] F1800\n M400\n \n M106 P1 S178\n M400 S7\n G1 X0 F18000\n G1 X-13.5 F3000\n G1 X0 F18000 ;wipe and shake\n G1 X-13.5 F3000\n G1 X0 F12000 ;wipe and shake\n G1 X-13.5 F3000\n G1 X0 F12000 ;wipe and shake\n M400\n M106 P1 S0 \nM623\n\nG392 S0\nM1007 S1\n\n" + "change_filament_gcode": ";===== machine: A1 mini =========================\n;===== date: 20240913 =====================\nG392 S0\nM1007 S0\nM620 S[next_extruder]A\nM204 S9000\n{if toolchange_count > 1}\nG17\nG2 Z{max_layer_z + 0.4} I0.86 J0.86 P1 F10000 ; spiral lift a little from second lift\n{endif}\nG1 Z{max_layer_z + 3.0} F1200\n\nM400\nM106 P1 S0\nM106 P2 S0\n{if old_filament_temp > 142 && next_extruder < 255}\nM104 S[old_filament_temp]\n{endif}\n\nG1 X180 F18000\n\n{if long_retractions_when_cut[previous_extruder]}\nM620.11 S1 I[previous_extruder] E-{retraction_distances_when_cut[previous_extruder]} F1200\n{else}\nM620.11 S0\n{endif}\nM400\n\nM620.1 E F[old_filament_e_feedrate] T{nozzle_temperature_range_high[previous_extruder]}\nM620.10 A0 F[old_filament_e_feedrate]\nT[next_extruder]\nM620.1 E F[new_filament_e_feedrate] T{nozzle_temperature_range_high[next_extruder]}\nM620.10 A1 F[new_filament_e_feedrate] L[flush_length] H[nozzle_diameter] T[nozzle_temperature_range_high]\n\nG1 Y90 F9000\n\n{if next_extruder < 255}\n\n{if long_retractions_when_cut[previous_extruder]}\nM620.11 S1 I[previous_extruder] E{retraction_distances_when_cut[previous_extruder]} F{old_filament_e_feedrate}\nM628 S1\nG92 E0\nG1 E{retraction_distances_when_cut[previous_extruder]} F[old_filament_e_feedrate]\nM400\nM629 S1\n{else}\nM620.11 S0\n{endif}\n\nM400\nG92 E0\nM628 S0\n\n{if flush_length_1 > 1}\n; FLUSH_START\n; always use highest temperature to flush\nM400\nM1002 set_filament_type:UNKNOWN\nM109 S[nozzle_temperature_range_high]\nM106 P1 S60\n{if flush_length_1 > 23.7}\nG1 E23.7 F{old_filament_e_feedrate} ; do not need pulsatile flushing for start part\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{old_filament_e_feedrate}\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{new_filament_e_feedrate}\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{new_filament_e_feedrate}\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{new_filament_e_feedrate}\n{else}\nG1 E{flush_length_1} F{old_filament_e_feedrate}\n{endif}\n; FLUSH_END\nG1 E-[old_retract_length_toolchange] F1800\nG1 E[old_retract_length_toolchange] F300\nM400\nM1002 set_filament_type:{filament_type[next_extruder]}\n{endif}\n\n{if flush_length_1 > 45 && flush_length_2 > 1}\n; WIPE\nM400\nM106 P1 S178\nM400 S3\nG1 X-3.5 F18000\nG1 X-13.5 F3000\nG1 X-3.5 F18000\nG1 X-13.5 F3000\nG1 X-3.5 F18000\nG1 X-13.5 F3000\nM400\nM106 P1 S0\n{endif}\n\n{if flush_length_2 > 1}\nM106 P1 S60\n; FLUSH_START\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\n; FLUSH_END\nG1 E-[new_retract_length_toolchange] F1800\nG1 E[new_retract_length_toolchange] F300\n{endif}\n\n{if flush_length_2 > 45 && flush_length_3 > 1}\n; WIPE\nM400\nM106 P1 S178\nM400 S3\nG1 X-3.5 F18000\nG1 X-13.5 F3000\nG1 X-3.5 F18000\nG1 X-13.5 F3000\nG1 X-3.5 F18000\nG1 X-13.5 F3000\nM400\nM106 P1 S0\n{endif}\n\n{if flush_length_3 > 1}\nM106 P1 S60\n; FLUSH_START\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\n; FLUSH_END\nG1 E-[new_retract_length_toolchange] F1800\nG1 E[new_retract_length_toolchange] F300\n{endif}\n\n{if flush_length_3 > 45 && flush_length_4 > 1}\n; WIPE\nM400\nM106 P1 S178\nM400 S3\nG1 X-3.5 F18000\nG1 X-13.5 F3000\nG1 X-3.5 F18000\nG1 X-13.5 F3000\nG1 X-3.5 F18000\nG1 X-13.5 F3000\nM400\nM106 P1 S0\n{endif}\n\n{if flush_length_4 > 1}\nM106 P1 S60\n; FLUSH_START\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\n; FLUSH_END\n{endif}\n\nM629\n\nM400\nM106 P1 S60\nM109 S[new_filament_temp]\nG1 E5 F{new_filament_e_feedrate} ;Compensate for filament spillage during waiting temperature\nM400\nG92 E0\nG1 E-[new_retract_length_toolchange] F1800\nM400\nM106 P1 S178\nM400 S3\nG1 X-3.5 F18000\nG1 X-13.5 F3000\nG1 X-3.5 F18000\nG1 X-13.5 F3000\nG1 X-3.5 F18000\nG1 X-13.5 F3000\nG1 X-3.5 F18000\nG1 X-13.5 F3000\nM400\nG1 Z{max_layer_z + 3.0} F3000\nM106 P1 S0\n{if layer_z <= (initial_layer_print_height + 0.001)}\nM204 S[initial_layer_acceleration]\n{else}\nM204 S[default_acceleration]\n{endif}\n{else}\nG1 X[x_after_toolchange] Y[y_after_toolchange] Z[z_after_toolchange] F12000\n{endif}\n\nM622.1 S0\nM9833 F{outer_wall_volumetric_speed/2.4} A0.3 ; cali dynamic extrusion compensation\nM1002 judge_flag filament_need_cali_flag\nM622 J1\n G92 E0\n G1 E-[new_retract_length_toolchange] F1800\n M400\n \n M106 P1 S178\n M400 S7\n G1 X0 F18000\n G1 X-13.5 F3000\n G1 X0 F18000 ;wipe and shake\n G1 X-13.5 F3000\n G1 X0 F12000 ;wipe and shake\n G1 X-13.5 F3000\n G1 X0 F12000 ;wipe and shake\n M400\n M106 P1 S0 \nM623\n\nM621 S[next_extruder]A\nG392 S0\n\nM1007 S1\n" } diff --git a/resources/profiles/BBL/machine/fdm_machine_common.json b/resources/profiles/BBL/machine/fdm_machine_common.json index 59c372c15f..1bb5be2af7 100644 --- a/resources/profiles/BBL/machine/fdm_machine_common.json +++ b/resources/profiles/BBL/machine/fdm_machine_common.json @@ -96,7 +96,7 @@ "18" ], "retraction_length": [ - "5" + "1" ], "retract_length_toolchange": [ "1" diff --git a/resources/profiles/BIQU.json b/resources/profiles/BIQU.json index 0e8eb3e3c8..cdca440fc3 100644 --- a/resources/profiles/BIQU.json +++ b/resources/profiles/BIQU.json @@ -4,18 +4,18 @@ "force_update": "0", "description": "BIQU configurations", "machine_model_list": [ - { + { "name": "BIQU B1", "sub_path": "machine/BIQU B1.json" - }, - { + }, + { "name": "BIQU BX", "sub_path": "machine/BIQU BX.json" - }, - { + }, + { "name": "BIQU Hurakan", "sub_path": "machine/BIQU Hurakan.json" - } + } ], "process_list": [ { @@ -26,7 +26,7 @@ "name": "fdm_process_biqu_common", "sub_path": "process/fdm_process_biqu_common.json" }, - { + { "name": "fdm_process_hurakan_common", "sub_path": "process/fdm_process_hurakan_common.json" }, @@ -46,7 +46,7 @@ "name": "0.24mm Draft @BIQU BX (0.4 nozzle)", "sub_path": "process/0.24mm Draft @BIQU BX (0.4 nozzle).json" }, - { + { "name": "0.12mm Fine @BIQU B1 (0.4 nozzle)", "sub_path": "process/0.12mm Fine @BIQU B1 (0.4 nozzle).json" }, @@ -62,7 +62,7 @@ "name": "0.24mm Draft @BIQU B1 (0.4 nozzle)", "sub_path": "process/0.24mm Draft @BIQU B1 (0.4 nozzle).json" }, - { + { "name": "0.12mm Fine @BIQU Hurakan (0.4 nozzle)", "sub_path": "process/0.12mm Fine @BIQU Hurakan (0.4 nozzle).json" }, @@ -79,92 +79,7 @@ "sub_path": "process/0.24mm Draft @BIQU Hurakan (0.4 nozzle).json" } ], - "filament_list": [ - { - "name": "fdm_filament_common", - "sub_path": "filament/fdm_filament_common.json" - }, - { - "name": "fdm_filament_abs", - "sub_path": "filament/fdm_filament_abs.json" - }, - { - "name": "fdm_filament_asa", - "sub_path": "filament/fdm_filament_asa.json" - }, - { - "name": "fdm_filament_pa", - "sub_path": "filament/fdm_filament_pa.json" - }, - { - "name": "fdm_filament_pc", - "sub_path": "filament/fdm_filament_pc.json" - }, - { - "name": "fdm_filament_pet", - "sub_path": "filament/fdm_filament_pet.json" - }, - { - "name": "fdm_filament_pla", - "sub_path": "filament/fdm_filament_pla.json" - }, - { - "name": "fdm_filament_pva", - "sub_path": "filament/fdm_filament_pva.json" - }, - { - "name": "fdm_filament_tpu", - "sub_path": "filament/fdm_filament_tpu.json" - }, - { - "name": "BIQU Generic ABS", - "sub_path": "filament/BIQU Generic ABS.json" - }, - { - "name": "BIQU Generic ASA", - "sub_path": "filament/BIQU Generic ASA.json" - }, - { - "name": "BIQU Generic PA", - "sub_path": "filament/BIQU Generic PA.json" - }, - { - "name": "BIQU Generic PA-CF", - "sub_path": "filament/BIQU Generic PA-CF.json" - }, - { - "name": "BIQU Generic PC", - "sub_path": "filament/BIQU Generic PC.json" - }, - { - "name": "BIQU Generic PETG", - "sub_path": "filament/BIQU Generic PETG.json" - }, - { - "name": "BIQU Generic PETG-CF", - "sub_path": "filament/BIQU Generic PETG-CF.json" - }, - { - "name": "BIQU Generic PLA Silk", - "sub_path": "filament/BIQU Generic PLA Silk.json" - }, - { - "name": "BIQU Generic PLA", - "sub_path": "filament/BIQU Generic PLA.json" - }, - { - "name": "BIQU Generic PLA-CF", - "sub_path": "filament/BIQU Generic PLA-CF.json" - }, - { - "name": "BIQU Generic PVA", - "sub_path": "filament/BIQU Generic PVA.json" - }, - { - "name": "BIQU Generic TPU", - "sub_path": "filament/BIQU Generic TPU.json" - } - ], + "filament_list": [], "machine_list": [ { "name": "fdm_machine_common", @@ -174,21 +89,21 @@ "name": "fdm_biqu_common", "sub_path": "machine/fdm_biqu_common.json" }, - { + { "name": "fdm_klipper_common", "sub_path": "machine/fdm_klipper_common.json" }, - { + { "name": "BIQU BX (0.4 nozzle)", "sub_path": "machine/BIQU BX (0.4 nozzle).json" }, - { + { "name": "BIQU B1 (0.4 nozzle)", "sub_path": "machine/BIQU B1 (0.4 nozzle).json" }, - { + { "name": "BIQU Hurakan (0.4 nozzle)", "sub_path": "machine/BIQU Hurakan (0.4 nozzle).json" } ] -} +} \ No newline at end of file diff --git a/resources/profiles/BIQU/BIQU_Hurakan_buildplate_texture.png b/resources/profiles/BIQU/BIQU_Hurakan_buildplate_texture.png index 04ea7c4666..f6ed5fc0b3 100644 Binary files a/resources/profiles/BIQU/BIQU_Hurakan_buildplate_texture.png and b/resources/profiles/BIQU/BIQU_Hurakan_buildplate_texture.png differ diff --git a/resources/profiles/BIQU/filament/BIQU Generic ASA.json b/resources/profiles/BIQU/filament/BIQU Generic ASA.json deleted file mode 100644 index b0281bf899..0000000000 --- a/resources/profiles/BIQU/filament/BIQU Generic ASA.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFB99", - "setting_id": "GFSA04", - "name": "BIQU Generic ASA", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_asa", - "filament_max_volumetric_speed": [ - "12" - ], - "filament_flow_ratio": [ - "0.926" - ], - "compatible_printers": [ - "BIQU BX (0.4 nozzle)", - "BIQU B1 (0.4 nozzle)", - "BIQU Hurakan (0.4 nozzle)" - ] -} diff --git a/resources/profiles/BIQU/filament/BIQU Generic PA-CF.json b/resources/profiles/BIQU/filament/BIQU Generic PA-CF.json deleted file mode 100644 index 55344dfae0..0000000000 --- a/resources/profiles/BIQU/filament/BIQU Generic PA-CF.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFN98", - "setting_id": "GFSN99", - "name": "BIQU Generic PA-CF", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pa", - "filament_type": [ - "PA-CF" - ], - "nozzle_temperature_initial_layer": [ - "290" - ], - "nozzle_temperature": [ - "290" - ], - "filament_max_volumetric_speed": [ - "8" - ], - "fan_max_speed": [ - "30" - ], - "fan_min_speed": [ - "10" - ], - "overhang_fan_threshold": [ - "0%" - ], - "overhang_fan_speed": [ - "40" - ], - "fan_cooling_layer_time": [ - "5" - ], - "full_fan_speed_layer": [ - "2" - ], - "compatible_printers": [ - "BIQU BX (0.4 nozzle)", - "BIQU B1 (0.4 nozzle)", - "BIQU Hurakan (0.4 nozzle)" - ] -} diff --git a/resources/profiles/BIQU/filament/BIQU Generic PA.json b/resources/profiles/BIQU/filament/BIQU Generic PA.json deleted file mode 100644 index 6b8db4e32e..0000000000 --- a/resources/profiles/BIQU/filament/BIQU Generic PA.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFN99", - "setting_id": "GFSN98", - "name": "BIQU Generic PA", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pa", - "required_nozzle_HRC": [ - "3" - ], - "nozzle_temperature_initial_layer": [ - "280" - ], - "nozzle_temperature": [ - "280" - ], - "filament_max_volumetric_speed": [ - "16" - ], - "compatible_printers": [ - "BIQU BX (0.4 nozzle)", - "BIQU B1 (0.4 nozzle)", - "BIQU Hurakan (0.4 nozzle)" - ] -} diff --git a/resources/profiles/BIQU/filament/BIQU Generic PC.json b/resources/profiles/BIQU/filament/BIQU Generic PC.json deleted file mode 100644 index e70c31a11a..0000000000 --- a/resources/profiles/BIQU/filament/BIQU Generic PC.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFC99", - "setting_id": "GFSC99", - "name": "BIQU Generic PC", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pc", - "filament_max_volumetric_speed": [ - "16" - ], - "filament_flow_ratio": [ - "0.94" - ], - "compatible_printers": [ - "BIQU BX (0.4 nozzle)", - "BIQU B1 (0.4 nozzle)", - "BIQU Hurakan (0.4 nozzle)" - ] -} diff --git a/resources/profiles/BIQU/filament/BIQU Generic PETG-CF.json b/resources/profiles/BIQU/filament/BIQU Generic PETG-CF.json deleted file mode 100644 index 0d72df1e96..0000000000 --- a/resources/profiles/BIQU/filament/BIQU Generic PETG-CF.json +++ /dev/null @@ -1,89 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFG98", - "setting_id": "GFSG50", - "name": "BIQU Generic PETG-CF", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pet", - "temperature_vitrification": [ - "75" - ], - "overhang_fan_threshold": [ - "25%" - ], - "overhang_fan_speed": [ - "90" - ], - "cool_plate_temp" : [ - "0" - ], - "eng_plate_temp" : [ - "70" - ], - "hot_plate_temp" : [ - "70" - ], - "textured_plate_temp" : [ - "70" - ], - "cool_plate_temp_initial_layer" : [ - "0" - ], - "eng_plate_temp_initial_layer" : [ - "70" - ], - "hot_plate_temp_initial_layer" : [ - "70" - ], - "textured_plate_temp_initial_layer" : [ - "70" - ], - "required_nozzle_HRC": [ - "40" - ], - "filament_vendor": [ - "Bambu Lab" - ], - "filament_type": [ - "PETG-CF" - ], - "nozzle_temperature_range_low": [ - "240" - ], - "nozzle_temperature_range_high": [ - "270" - ], - "nozzle_temperature_initial_layer": [ - "255" - ], - "nozzle_temperature": [ - "255" - ], - "filament_cost": [ - "34.99" - ], - "filament_density": [ - "1.25" - ], - "fan_max_speed": [ - "30" - ], - "fan_min_speed": [ - "0" - ], - "filament_max_volumetric_speed": [ - "10" - ], - "slow_down_layer_time": [ - "6" - ], - "fan_cooling_layer_time": [ - "20" - ], - "compatible_printers": [ - "BIQU BX (0.4 nozzle)", - "BIQU B1 (0.4 nozzle)", - "BIQU Hurakan (0.4 nozzle)" - ] -} diff --git a/resources/profiles/BIQU/filament/BIQU Generic PLA Silk.json b/resources/profiles/BIQU/filament/BIQU Generic PLA Silk.json deleted file mode 100644 index 9e4f780789..0000000000 --- a/resources/profiles/BIQU/filament/BIQU Generic PLA Silk.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFA05", - "setting_id": "GFSL99_01", - "name": "BIQU Generic PLA Silk", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pla", - "filament_max_volumetric_speed": [ - "7.5" - ], - "filament_retraction_length": [ - "0.5" - ], - "filament_flow_ratio": [ - "0.98" - ], - "slow_down_layer_time": [ - "8" - ], - "filament_start_gcode": [ - "; filament start gcode\n{if (bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S255\n{elsif(bed_temperature[current_extruder] >35)||(bed_temperature_initial_layer[current_extruder] >35)}M106 P3 S180\n{endif};Prevent PLA from jamming" - ], - "compatible_printers": [ - "BIQU BX (0.4 nozzle)", - "BIQU B1 (0.4 nozzle)", - "BIQU Hurakan (0.4 nozzle)" - ] -} diff --git a/resources/profiles/BIQU/filament/BIQU Generic PLA-CF.json b/resources/profiles/BIQU/filament/BIQU Generic PLA-CF.json deleted file mode 100644 index bb63cd0324..0000000000 --- a/resources/profiles/BIQU/filament/BIQU Generic PLA-CF.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFL98", - "setting_id": "GFSL98", - "name": "BIQU Generic PLA-CF", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pla", - "required_nozzle_HRC": [ - "40" - ], - "filament_flow_ratio": [ - "0.95" - ], - "filament_type": [ - "PLA-CF" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "slow_down_layer_time": [ - "7" - ], - "additional_cooling_fan_speed": [ - "0" - ], - "temperature_vitrification": [ - "55" - ], - "nozzle_temperature_range_low": [ - "190" - ], - "nozzle_temperature_range_high": [ - "240" - ], - "filament_start_gcode": [ - "; filament start gcode\n{if (bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S255\n{elsif(bed_temperature[current_extruder] >35)||(bed_temperature_initial_layer[current_extruder] >35)}M106 P3 S180\n{endif}" - ], - "compatible_printers": [ - "BIQU BX (0.4 nozzle)", - "BIQU B1 (0.4 nozzle)", - "BIQU Hurakan (0.4 nozzle)" - ] -} diff --git a/resources/profiles/BIQU/filament/BIQU Generic PVA.json b/resources/profiles/BIQU/filament/BIQU Generic PVA.json deleted file mode 100644 index 2ce1334b7a..0000000000 --- a/resources/profiles/BIQU/filament/BIQU Generic PVA.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFS99", - "setting_id": "GFSS99", - "name": "BIQU Generic PVA", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pva", - "filament_flow_ratio": [ - "0.95" - ], - "filament_max_volumetric_speed": [ - "16" - ], - "slow_down_layer_time": [ - "7" - ], - "slow_down_min_speed": [ - "10" - ], - "compatible_printers": [ - "BIQU BX (0.4 nozzle)", - "BIQU B1 (0.4 nozzle)", - "BIQU Hurakan (0.4 nozzle)" - ] -} \ No newline at end of file diff --git a/resources/profiles/BIQU/filament/BIQU Generic TPU.json b/resources/profiles/BIQU/filament/BIQU Generic TPU.json deleted file mode 100644 index a218690d45..0000000000 --- a/resources/profiles/BIQU/filament/BIQU Generic TPU.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFU99", - "setting_id": "GFSR99", - "name": "BIQU Generic TPU", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_tpu", - "filament_max_volumetric_speed": [ - "3.2" - ], - "filament_start_gcode": [ - "; filament start gcode\n{if (bed_temperature[current_extruder] >35)||(bed_temperature_initial_layer[current_extruder] >35)}M106 P3 S255\n{elsif (bed_temperature[current_extruder] >30)||(bed_temperature_initial_layer[current_extruder] >30)}M106 P3 S180\n{endif}" - ], - "compatible_printers": [ - "BIQU BX (0.4 nozzle)", - "BIQU B1 (0.4 nozzle)", - "BIQU Hurakan (0.4 nozzle)" - ] -} diff --git a/resources/profiles/BIQU/filament/fdm_filament_abs.json b/resources/profiles/BIQU/filament/fdm_filament_abs.json deleted file mode 100644 index b9d4eeda31..0000000000 --- a/resources/profiles/BIQU/filament/fdm_filament_abs.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_abs", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "105" - ], - "eng_plate_temp" : [ - "105" - ], - "hot_plate_temp" : [ - "105" - ], - "textured_plate_temp" : [ - "105" - ], - "cool_plate_temp_initial_layer" : [ - "105" - ], - "eng_plate_temp_initial_layer" : [ - "105" - ], - "hot_plate_temp_initial_layer" : [ - "105" - ], - "textured_plate_temp_initial_layer" : [ - "105" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "30" - ], - "filament_max_volumetric_speed": [ - "28.6" - ], - "filament_type": [ - "ABS" - ], - "filament_density": [ - "1.04" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "260" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "fan_max_speed": [ - "80" - ], - "fan_min_speed": [ - "10" - ], - "overhang_fan_threshold": [ - "25%" - ], - "overhang_fan_speed": [ - "80" - ], - "nozzle_temperature": [ - "260" - ], - "temperature_vitrification": [ - "110" - ], - "nozzle_temperature_range_low": [ - "240" - ], - "nozzle_temperature_range_high": [ - "270" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "3" - ] -} diff --git a/resources/profiles/BIQU/filament/fdm_filament_pc.json b/resources/profiles/BIQU/filament/fdm_filament_pc.json deleted file mode 100644 index daf96f0164..0000000000 --- a/resources/profiles/BIQU/filament/fdm_filament_pc.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pc", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "0" - ], - "eng_plate_temp" : [ - "110" - ], - "hot_plate_temp" : [ - "110" - ], - "textured_plate_temp" : [ - "110" - ], - "cool_plate_temp_initial_layer" : [ - "0" - ], - "eng_plate_temp_initial_layer" : [ - "110" - ], - "hot_plate_temp_initial_layer" : [ - "110" - ], - "textured_plate_temp_initial_layer" : [ - "110" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "30" - ], - "filament_max_volumetric_speed": [ - "23.2" - ], - "filament_type": [ - "PC" - ], - "filament_density": [ - "1.04" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "270" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "fan_max_speed": [ - "60" - ], - "fan_min_speed": [ - "10" - ], - "overhang_fan_threshold": [ - "25%" - ], - "overhang_fan_speed": [ - "60" - ], - "nozzle_temperature": [ - "280" - ], - "temperature_vitrification": [ - "120" - ], - "nozzle_temperature_range_low": [ - "260" - ], - "nozzle_temperature_range_high": [ - "290" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "2" - ] -} diff --git a/resources/profiles/BIQU/filament/fdm_filament_pet.json b/resources/profiles/BIQU/filament/fdm_filament_pet.json deleted file mode 100644 index bb2323e9c1..0000000000 --- a/resources/profiles/BIQU/filament/fdm_filament_pet.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pet", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "60" - ], - "eng_plate_temp" : [ - "0" - ], - "hot_plate_temp" : [ - "80" - ], - "textured_plate_temp" : [ - "80" - ], - "cool_plate_temp_initial_layer" : [ - "60" - ], - "eng_plate_temp_initial_layer" : [ - "0" - ], - "hot_plate_temp_initial_layer" : [ - "80" - ], - "textured_plate_temp_initial_layer" : [ - "80" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "20" - ], - "filament_max_volumetric_speed": [ - "25" - ], - "filament_type": [ - "PETG" - ], - "filament_density": [ - "1.27" - ], - "filament_cost": [ - "30" - ], - "nozzle_temperature_initial_layer": [ - "255" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "20" - ], - "overhang_fan_speed": [ - "100" - ], - "nozzle_temperature": [ - "255" - ], - "temperature_vitrification": [ - "80" - ], - "nozzle_temperature_range_low": [ - "220" - ], - "nozzle_temperature_range_high": [ - "260" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ] -} diff --git a/resources/profiles/BIQU/filament/fdm_filament_pla.json b/resources/profiles/BIQU/filament/fdm_filament_pla.json deleted file mode 100644 index 82c6772f35..0000000000 --- a/resources/profiles/BIQU/filament/fdm_filament_pla.json +++ /dev/null @@ -1,94 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pla", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "fan_cooling_layer_time": [ - "100" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "filament_type": [ - "PLA" - ], - "filament_density": [ - "1.24" - ], - "filament_cost": [ - "20" - ], - "cool_plate_temp" : [ - "60" - ], - "eng_plate_temp" : [ - "60" - ], - "hot_plate_temp" : [ - "60" - ], - "textured_plate_temp" : [ - "60" - ], - "cool_plate_temp_initial_layer" : [ - "60" - ], - "eng_plate_temp_initial_layer" : [ - "60" - ], - "hot_plate_temp_initial_layer" : [ - "60" - ], - "textured_plate_temp_initial_layer" : [ - "60" - ], - "nozzle_temperature_initial_layer": [ - "220" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "overhang_fan_speed": [ - "100" - ], - "overhang_fan_threshold": [ - "50%" - ], - "close_fan_the_first_x_layers": [ - "1" - ], - "nozzle_temperature": [ - "220" - ], - "temperature_vitrification": [ - "60" - ], - "nozzle_temperature_range_low": [ - "190" - ], - "nozzle_temperature_range_high": [ - "230" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "4" - ], - "additional_cooling_fan_speed": [ - "70" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ] -} diff --git a/resources/profiles/BIQU/filament/fdm_filament_pva.json b/resources/profiles/BIQU/filament/fdm_filament_pva.json deleted file mode 100644 index fb84ccf0a4..0000000000 --- a/resources/profiles/BIQU/filament/fdm_filament_pva.json +++ /dev/null @@ -1,100 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pva", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "35" - ], - "eng_plate_temp" : [ - "0" - ], - "hot_plate_temp" : [ - "55" - ], - "textured_plate_temp" : [ - "55" - ], - "cool_plate_temp_initial_layer" : [ - "35" - ], - "eng_plate_temp_initial_layer" : [ - "0" - ], - "hot_plate_temp_initial_layer" : [ - "55" - ], - "textured_plate_temp_initial_layer" : [ - "55" - ], - "fan_cooling_layer_time": [ - "100" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "filament_soluble": [ - "1" - ], - "filament_is_support": [ - "1" - ], - "filament_type": [ - "PVA" - ], - "filament_density": [ - "1.24" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "220" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "overhang_fan_speed": [ - "100" - ], - "overhang_fan_threshold": [ - "50%" - ], - "close_fan_the_first_x_layers": [ - "1" - ], - "nozzle_temperature": [ - "220" - ], - "temperature_vitrification": [ - "55" - ], - "nozzle_temperature_range_low": [ - "190" - ], - "nozzle_temperature_range_high": [ - "240" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "4" - ], - "additional_cooling_fan_speed": [ - "70" - ], - "filament_start_gcode": [ - "; filament start gcode\n{if (bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S255\n{elsif(bed_temperature[current_extruder] >35)||(bed_temperature_initial_layer[current_extruder] >35)}M106 P3 S180\n{endif}" - ] -} diff --git a/resources/profiles/BIQU/filament/fdm_filament_tpu.json b/resources/profiles/BIQU/filament/fdm_filament_tpu.json deleted file mode 100644 index df97b1ccf4..0000000000 --- a/resources/profiles/BIQU/filament/fdm_filament_tpu.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_tpu", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "30" - ], - "eng_plate_temp" : [ - "30" - ], - "hot_plate_temp" : [ - "35" - ], - "textured_plate_temp" : [ - "35" - ], - "cool_plate_temp_initial_layer" : [ - "30" - ], - "eng_plate_temp_initial_layer" : [ - "30" - ], - "hot_plate_temp_initial_layer" : [ - "35" - ], - "textured_plate_temp_initial_layer" : [ - "35" - ], - "fan_cooling_layer_time": [ - "100" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "filament_type": [ - "TPU" - ], - "filament_density": [ - "1.24" - ], - "filament_cost": [ - "20" - ], - "filament_retraction_length": [ - "0.4" - ], - "nozzle_temperature_initial_layer": [ - "240" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "overhang_fan_speed": [ - "100" - ], - "additional_cooling_fan_speed": [ - "70" - ], - "close_fan_the_first_x_layers": [ - "1" - ], - "nozzle_temperature": [ - "240" - ], - "temperature_vitrification": [ - "35" - ], - "nozzle_temperature_range_low": [ - "200" - ], - "nozzle_temperature_range_high": [ - "250" - ], - "filament_start_gcode": [ - "; filament start gcode\n{if (bed_temperature[current_extruder] >35)||(bed_temperature_initial_layer[current_extruder] >35)}M106 P3 S255\n{elsif(bed_temperature[current_extruder] >30)||(bed_temperature_initial_layer[current_extruder] >30)}M106 P3 S180\n{endif}" - ] -} diff --git a/resources/profiles/BIQU/machine/fdm_machine_common.json b/resources/profiles/BIQU/machine/fdm_machine_common.json index b088025274..db607530e6 100644 --- a/resources/profiles/BIQU/machine/fdm_machine_common.json +++ b/resources/profiles/BIQU/machine/fdm_machine_common.json @@ -88,7 +88,7 @@ "1" ], "retraction_length": [ - "5" + "1" ], "retract_length_toolchange": [ "1" diff --git a/resources/profiles/Blocks/BLOCKS Pro S100_cover.png b/resources/profiles/Blocks/BLOCKS Pro S100_cover.png index d1422e3def..bf6cba08c7 100644 Binary files a/resources/profiles/Blocks/BLOCKS Pro S100_cover.png and b/resources/profiles/Blocks/BLOCKS Pro S100_cover.png differ diff --git a/resources/profiles/Blocks/BLOCKS RF50_cover.png b/resources/profiles/Blocks/BLOCKS RF50_cover.png index 55a1f8edf8..044080fc85 100644 Binary files a/resources/profiles/Blocks/BLOCKS RF50_cover.png and b/resources/profiles/Blocks/BLOCKS RF50_cover.png differ diff --git a/resources/profiles/Blocks/machine/fdm_machine_common.json b/resources/profiles/Blocks/machine/fdm_machine_common.json index c114d6f302..6c449b915c 100644 --- a/resources/profiles/Blocks/machine/fdm_machine_common.json +++ b/resources/profiles/Blocks/machine/fdm_machine_common.json @@ -88,7 +88,7 @@ "1" ], "retraction_length": [ - "5" + "1" ], "retract_length_toolchange": [ "1" diff --git a/resources/profiles/Chuanying.json b/resources/profiles/Chuanying.json index fffa52056f..dac00380d8 100644 --- a/resources/profiles/Chuanying.json +++ b/resources/profiles/Chuanying.json @@ -1,171 +1,147 @@ { - "name": "Chuanying", - "url": "", - "version": "02.02.00.04", - "force_update": "0", - "description": "Chuanying configurations", - "machine_model_list": [ - { - "name": "Chuanying X1", - "sub_path": "machine/Chuanying X1.json" - } - ], - "process_list": [ - { - "name": "fdm_process_common", - "sub_path": "process/fdm_process_common.json" - }, - { - "name": "fdm_process_chuanying_common", - "sub_path": "process/fdm_process_chuanying_common.json" - }, - { - "name": "fdm_process_chuanying_0.20", - "sub_path": "process/fdm_process_chuanying_0.20.json" - }, - { - "name": "fdm_process_chuanying_0.30", - "sub_path": "process/fdm_process_chuanying_0.30.json" - }, - { - "name": "0.20mm Standard @Chuanying X1 0.4 Nozzle", - "sub_path": "process/0.20mm Standard @Chuanying X1 0.4 Nozzle.json" - }, - { - "name": "0.30mm Standard @Chuanying X1 0.6 Nozzle", - "sub_path": "process/0.30mm Standard @Chuanying X1 0.6 Nozzle.json" - }, - { - "name": "0.12mm Standard @Chuanying X1 0.25 Nozzle", - "sub_path": "process/0.12mm Standard @Chuanying X1 0.25 Nozzle.json" - }, - { - "name": "0.40mm Standard @Chuanying X1 0.8 Nozzle", - "sub_path": "process/0.40mm Standard @Chuanying X1 0.8 Nozzle.json" - } - ], - "filament_list": [ - { - "name": "fdm_filament_common", - "sub_path": "filament/fdm_filament_common.json" - }, - { - "name": "fdm_filament_abs", - "sub_path": "filament/fdm_filament_abs.json" - }, - { - "name": "fdm_filament_pet", - "sub_path": "filament/fdm_filament_pet.json" - }, - { - "name": "fdm_filament_pla", - "sub_path": "filament/fdm_filament_pla.json" - }, - { - "name": "fdm_filament_asa", - "sub_path": "filament/fdm_filament_asa.json" - }, - { - "name": "fdm_filament_tpu", - "sub_path": "filament/fdm_filament_tpu.json" - }, - { - "name": "Chuanying Generic ABS", - "sub_path": "filament/Chuanying Generic ABS.json" - }, - { - "name": "Chuanying ABS @Chuanying X1 0.25 Nozzle", - "sub_path": "filament/Chuanying ABS @Chuanying X1 0.25 Nozzle.json" - }, - { - "name": "Chuanying Generic PETG", - "sub_path": "filament/Chuanying Generic PETG.json" - }, - { - "name": "Chuanying PETG @Chuanying X1 0.25 Nozzle", - "sub_path": "filament/Chuanying PETG @Chuanying X1 0.25 Nozzle.json" - }, - { - "name": "Chuanying Generic PLA", - "sub_path": "filament/Chuanying Generic PLA.json" - }, - { - "name": "Chuanying PLA @Chuanying X1 0.25 Nozzle", - "sub_path": "filament/Chuanying PLA @Chuanying X1 0.25 Nozzle.json" - }, - { - "name": "Chuanying Generic PLA-CF10", - "sub_path": "filament/Chuanying Generic PLA-CF10.json" - }, - { - "name": "Chuanying Generic PLA-Silk", - "sub_path": "filament/Chuanying Generic PLA-Silk.json" - }, - { - "name": "Chuanying PLA-SILK @Chuanying X1 0.25 Nozzle", - "sub_path": "filament/Chuanying PLA-SILK @Chuanying X1 0.25 Nozzle.json" - }, - { - "name": "Chuanying Generic HS PLA", - "sub_path": "filament/Chuanying Generic HS PLA.json" - }, - { - "name": "Chuanying HS PLA @Chuanying X1 0.25 Nozzle", - "sub_path": "filament/Chuanying HS PLA @Chuanying X1 0.25 Nozzle.json" - }, - { - "name": "Chuanying Generic ASA", - "sub_path": "filament/Chuanying Generic ASA.json" - }, - { - "name": "Chuanying ASA @Chuanying X1 0.25 Nozzle", - "sub_path": "filament/Chuanying ASA @Chuanying X1 0.25 Nozzle.json" - }, - { - "name": "Chuanying Generic PETG-CF10", - "sub_path": "filament/Chuanying Generic PETG-CF10.json" - }, - { - "name": "Chuanying Generic TPU", - "sub_path": "filament/Chuanying Generic TPU.json" - }, - { - "name":"Chuanying Generic HIPS", - "sub_path":"filament/Chuanying Generic HIPS.json" - }, - { - "name":"Chuanying Generic PVA", - "sub_path":"filament/Chuanying Generic PVA.json" - } - ], - "machine_list": [ - { - "name": "fdm_machine_common", - "sub_path": "machine/fdm_machine_common.json" - }, - { - "name": "fdm_chuanying_common", - "sub_path": "machine/fdm_chuanying_common.json" - }, - { - "name": "fdm_x1_common", - "sub_path": "machine/fdm_x1_common.json" - }, - { - "name": "Chuanying X1 0.25 Nozzle", - "sub_path": "machine/Chuanying X1 0.25 Nozzle.json" - }, - { - "name": "Chuanying X1 0.4 Nozzle", - "sub_path": "machine/Chuanying X1 0.4 Nozzle.json" - }, - { - "name": "Chuanying X1 0.6 Nozzle", - "sub_path": "machine/Chuanying X1 0.6 Nozzle.json" - }, - { - "name": "Chuanying X1 0.8 Nozzle", - "sub_path": "machine/Chuanying X1 0.8 Nozzle.json" - } - ] -} + "name": "Chuanying", + "url": "", + "version": "02.02.00.04", + "force_update": "0", + "description": "Chuanying configurations", + "machine_model_list": [ + { + "name": "Chuanying X1", + "sub_path": "machine/Chuanying X1.json" + } + ], + "process_list": [ + { + "name": "fdm_process_common", + "sub_path": "process/fdm_process_common.json" + }, + { + "name": "fdm_process_chuanying_common", + "sub_path": "process/fdm_process_chuanying_common.json" + }, + { + "name": "fdm_process_chuanying_0.20", + "sub_path": "process/fdm_process_chuanying_0.20.json" + }, + { + "name": "fdm_process_chuanying_0.30", + "sub_path": "process/fdm_process_chuanying_0.30.json" + }, + { + "name": "0.20mm Standard @Chuanying X1 0.4 Nozzle", + "sub_path": "process/0.20mm Standard @Chuanying X1 0.4 Nozzle.json" + }, + { + "name": "0.30mm Standard @Chuanying X1 0.6 Nozzle", + "sub_path": "process/0.30mm Standard @Chuanying X1 0.6 Nozzle.json" + }, + { + "name": "0.12mm Standard @Chuanying X1 0.25 Nozzle", + "sub_path": "process/0.12mm Standard @Chuanying X1 0.25 Nozzle.json" + }, + { + "name": "0.40mm Standard @Chuanying X1 0.8 Nozzle", + "sub_path": "process/0.40mm Standard @Chuanying X1 0.8 Nozzle.json" + } + ], + "filament_list": [ + { + "name": "Chuanying Generic ABS", + "sub_path": "filament/Chuanying Generic ABS.json" + }, + { + "name": "Chuanying Generic ASA", + "sub_path": "filament/Chuanying Generic ASA.json" + }, + { + "name": "Chuanying Generic HS PLA", + "sub_path": "filament/Chuanying Generic HS PLA.json" + }, + { + "name": "Chuanying Generic PETG", + "sub_path": "filament/Chuanying Generic PETG.json" + }, + { + "name": "Chuanying Generic PLA", + "sub_path": "filament/Chuanying Generic PLA.json" + }, + { + "name": "Chuanying Generic PLA-Silk", + "sub_path": "filament/Chuanying Generic PLA-Silk.json" + }, + { + "name": "Chuanying ABS @Chuanying X1 0.25 Nozzle", + "sub_path": "filament/Chuanying ABS @Chuanying X1 0.25 Nozzle.json" + }, + { + "name": "Chuanying Generic HIPS", + "sub_path": "filament/Chuanying Generic HIPS.json" + }, + { + "name": "Chuanying ASA @Chuanying X1 0.25 Nozzle", + "sub_path": "filament/Chuanying ASA @Chuanying X1 0.25 Nozzle.json" + }, + { + "name": "Chuanying HS PLA @Chuanying X1 0.25 Nozzle", + "sub_path": "filament/Chuanying HS PLA @Chuanying X1 0.25 Nozzle.json" + }, + { + "name": "Chuanying PETG @Chuanying X1 0.25 Nozzle", + "sub_path": "filament/Chuanying PETG @Chuanying X1 0.25 Nozzle.json" + }, + { + "name": "Chuanying Generic PVA", + "sub_path": "filament/Chuanying Generic PVA.json" + }, + { + "name": "Chuanying PLA @Chuanying X1 0.25 Nozzle", + "sub_path": "filament/Chuanying PLA @Chuanying X1 0.25 Nozzle.json" + }, + { + "name": "Chuanying PLA-SILK @Chuanying X1 0.25 Nozzle", + "sub_path": "filament/Chuanying PLA-SILK @Chuanying X1 0.25 Nozzle.json" + }, + { + "name": "Chuanying Generic PETG-CF10", + "sub_path": "filament/Chuanying Generic PETG-CF10.json" + }, + { + "name": "Chuanying Generic PLA-CF10", + "sub_path": "filament/Chuanying Generic PLA-CF10.json" + }, + { + "name": "Chuanying Generic TPU", + "sub_path": "filament/Chuanying Generic TPU.json" + } + ], + "machine_list": [ + { + "name": "fdm_machine_common", + "sub_path": "machine/fdm_machine_common.json" + }, + { + "name": "fdm_chuanying_common", + "sub_path": "machine/fdm_chuanying_common.json" + }, + { + "name": "fdm_x1_common", + "sub_path": "machine/fdm_x1_common.json" + }, + { + "name": "Chuanying X1 0.25 Nozzle", + "sub_path": "machine/Chuanying X1 0.25 Nozzle.json" + }, + { + "name": "Chuanying X1 0.4 Nozzle", + "sub_path": "machine/Chuanying X1 0.4 Nozzle.json" + }, + { + "name": "Chuanying X1 0.6 Nozzle", + "sub_path": "machine/Chuanying X1 0.6 Nozzle.json" + }, + { + "name": "Chuanying X1 0.8 Nozzle", + "sub_path": "machine/Chuanying X1 0.8 Nozzle.json" + } + ] +} \ No newline at end of file diff --git a/resources/profiles/Chuanying/Chuanying X1_cover.png b/resources/profiles/Chuanying/Chuanying X1_cover.png index cd2877fccb..c4979a4153 100644 Binary files a/resources/profiles/Chuanying/Chuanying X1_cover.png and b/resources/profiles/Chuanying/Chuanying X1_cover.png differ diff --git a/resources/profiles/Chuanying/filament/fdm_filament_abs.json b/resources/profiles/Chuanying/filament/fdm_filament_abs.json deleted file mode 100644 index 8743ba8b3b..0000000000 --- a/resources/profiles/Chuanying/filament/fdm_filament_abs.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_abs", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp": [ - "80" - ], - "eng_plate_temp": [ - "80" - ], - "hot_plate_temp": [ - "80" - ], - "textured_plate_temp": [ - "80" - ], - "cool_plate_temp_initial_layer": [ - "80" - ], - "eng_plate_temp_initial_layer": [ - "80" - ], - "hot_plate_temp_initial_layer": [ - "80" - ], - "textured_plate_temp_initial_layer": [ - "80" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "2" - ], - "fan_cooling_layer_time": [ - "30" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "filament_type": [ - "ABS" - ], - "filament_density": [ - "1.10" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "265" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "fan_max_speed": [ - "20" - ], - "fan_min_speed": [ - "10" - ], - "overhang_fan_threshold": [ - "25%" - ], - "overhang_fan_speed": [ - "80" - ], - "nozzle_temperature": [ - "265" - ], - "temperature_vitrification": [ - "110" - ], - "nozzle_temperature_range_low": [ - "230" - ], - "nozzle_temperature_range_high": [ - "270" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "8" - ] -} diff --git a/resources/profiles/Chuanying/filament/fdm_filament_common.json b/resources/profiles/Chuanying/filament/fdm_filament_common.json deleted file mode 100644 index 823c736e8a..0000000000 --- a/resources/profiles/Chuanying/filament/fdm_filament_common.json +++ /dev/null @@ -1,144 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_common", - "from": "system", - "instantiation": "false", - "cool_plate_temp" : [ - "60" - ], - "eng_plate_temp" : [ - "60" - ], - "hot_plate_temp" : [ - "60" - ], - "textured_plate_temp" : [ - "60" - ], - "cool_plate_temp_initial_layer" : [ - "60" - ], - "eng_plate_temp_initial_layer" : [ - "60" - ], - "hot_plate_temp_initial_layer" : [ - "60" - ], - "textured_plate_temp_initial_layer" : [ - "60" - ], - "overhang_fan_threshold": [ - "95%" - ], - "overhang_fan_speed": [ - "100" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "filament_end_gcode": [ - "; filament end gcode \n" - ], - "filament_flow_ratio": [ - "1" - ], - "reduce_fan_stop_start_freq": [ - "0" - ], - "fan_cooling_layer_time": [ - "60" - ], - "filament_cost": [ - "0" - ], - "filament_density": [ - "0" - ], - "filament_deretraction_speed": [ - "nil" - ], - "filament_diameter": [ - "2.85" - ], - "filament_max_volumetric_speed": [ - "0" - ], - "filament_minimal_purge_on_wipe_tower": [ - "15" - ], - "filament_retraction_minimum_travel": [ - "nil" - ], - "filament_retract_before_wipe": [ - "nil" - ], - "filament_retract_when_changing_layer": [ - "nil" - ], - "filament_retraction_length": [ - "nil" - ], - "filament_z_hop": [ - "nil" - ], - "filament_z_hop_types": [ - "nil" - ], - "filament_retract_restart_extra": [ - "nil" - ], - "filament_retraction_speed": [ - "nil" - ], - "filament_settings_id": [ - "" - ], - "filament_soluble": [ - "0" - ], - "filament_type": [ - "PLA" - ], - "filament_vendor": [ - "Generic" - ], - "filament_wipe": [ - "nil" - ], - "filament_wipe_distance": [ - "nil" - ], - "bed_type": [ - "Cool Plate" - ], - "nozzle_temperature_initial_layer": [ - "200" - ], - "full_fan_speed_layer": [ - "0" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "35" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "8" - ], - "filament_start_gcode": [ - "; Filament gcode\n" - ], - "nozzle_temperature": [ - "200" - ], - "temperature_vitrification": [ - "100" - ] -} diff --git a/resources/profiles/Chuanying/filament/fdm_filament_pet.json b/resources/profiles/Chuanying/filament/fdm_filament_pet.json deleted file mode 100644 index 0c65253151..0000000000 --- a/resources/profiles/Chuanying/filament/fdm_filament_pet.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pet", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "85" - ], - "eng_plate_temp" : [ - "85" - ], - "hot_plate_temp" : [ - "85" - ], - "textured_plate_temp" : [ - "85" - ], - "cool_plate_temp_initial_layer" : [ - "85" - ], - "eng_plate_temp_initial_layer" : [ - "85" - ], - "hot_plate_temp_initial_layer" : [ - "85" - ], - "textured_plate_temp_initial_layer" : [ - "85" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "15" - ], - "filament_max_volumetric_speed": [ - "0" - ], - "filament_type": [ - "PETG" - ], - "filament_density": [ - "1.27" - ], - "filament_cost": [ - "30" - ], - "nozzle_temperature_initial_layer": [ - "240" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "fan_max_speed": [ - "40" - ], - "fan_min_speed": [ - "20" - ], - "overhang_fan_speed": [ - "50" - ], - "nozzle_temperature": [ - "235" - ], - "temperature_vitrification": [ - "80" - ], - "nozzle_temperature_range_low": [ - "235" - ], - "nozzle_temperature_range_high": [ - "240" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ] -} diff --git a/resources/profiles/Chuanying/filament/fdm_filament_pla.json b/resources/profiles/Chuanying/filament/fdm_filament_pla.json deleted file mode 100644 index 1111af5b8d..0000000000 --- a/resources/profiles/Chuanying/filament/fdm_filament_pla.json +++ /dev/null @@ -1,91 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pla", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "fan_cooling_layer_time": [ - "100" - ], - "filament_max_volumetric_speed": [ - "0" - ], - "filament_type": [ - "PLA" - ], - "filament_density": [ - "1.24" - ], - "filament_cost": [ - "20" - ], - "cool_plate_temp" : [ - "60" - ], - "eng_plate_temp" : [ - "60" - ], - "hot_plate_temp" : [ - "60" - ], - "textured_plate_temp" : [ - "60" - ], - "cool_plate_temp_initial_layer" : [ - "55" - ], - "eng_plate_temp_initial_layer" : [ - "55" - ], - "hot_plate_temp_initial_layer" : [ - "55" - ], - "textured_plate_temp_initial_layer" : [ - "55" - ], - "nozzle_temperature_initial_layer": [ - "205" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "overhang_fan_speed": [ - "100" - ], - "overhang_fan_threshold": [ - "50%" - ], - "close_fan_the_first_x_layers": [ - "1" - ], - "nozzle_temperature": [ - "210" - ], - "temperature_vitrification": [ - "60" - ], - "nozzle_temperature_range_low": [ - "190" - ], - "nozzle_temperature_range_high": [ - "210" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "4" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ] -} diff --git a/resources/profiles/Chuanying/filament/fdm_filament_tpu.json b/resources/profiles/Chuanying/filament/fdm_filament_tpu.json deleted file mode 100644 index d5cc57fbcc..0000000000 --- a/resources/profiles/Chuanying/filament/fdm_filament_tpu.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_tpu", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "30" - ], - "eng_plate_temp" : [ - "30" - ], - "hot_plate_temp" : [ - "35" - ], - "cool_plate_temp_initial_layer" : [ - "30" - ], - "eng_plate_temp_initial_layer" : [ - "30" - ], - "hot_plate_temp_initial_layer" : [ - "35" - ], - "fan_cooling_layer_time": [ - "100" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "filament_type": [ - "TPU" - ], - "filament_density": [ - "1.24" - ], - "filament_cost": [ - "20" - ], - "filament_retraction_length": [ - "0.4" - ], - "nozzle_temperature_initial_layer": [ - "240" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "overhang_fan_speed": [ - "100" - ], - "additional_cooling_fan_speed": [ - "70" - ], - "close_fan_the_first_x_layers": [ - "1" - ], - "nozzle_temperature": [ - "240" - ], - "temperature_vitrification": [ - "60" - ], - "nozzle_temperature_range_low": [ - "200" - ], - "nozzle_temperature_range_high": [ - "250" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ] -} diff --git a/resources/profiles/Chuanying/machine/fdm_machine_common.json b/resources/profiles/Chuanying/machine/fdm_machine_common.json index 540d0f62cc..4f500c59d7 100644 --- a/resources/profiles/Chuanying/machine/fdm_machine_common.json +++ b/resources/profiles/Chuanying/machine/fdm_machine_common.json @@ -88,7 +88,7 @@ "1" ], "retraction_length": [ - "5" + "1" ], "retract_length_toolchange": [ "1" diff --git a/resources/profiles/Co Print/Co Print ChromaSet_cover.png b/resources/profiles/Co Print/Co Print ChromaSet_cover.png index 7477168bae..3ccf19de02 100644 Binary files a/resources/profiles/Co Print/Co Print ChromaSet_cover.png and b/resources/profiles/Co Print/Co Print ChromaSet_cover.png differ diff --git a/resources/profiles/Comgrow/Comgrow T300_cover.png b/resources/profiles/Comgrow/Comgrow T300_cover.png index d1622e4b40..e41aa0074d 100644 Binary files a/resources/profiles/Comgrow/Comgrow T300_cover.png and b/resources/profiles/Comgrow/Comgrow T300_cover.png differ diff --git a/resources/profiles/Comgrow/machine/fdm_machine_common.json b/resources/profiles/Comgrow/machine/fdm_machine_common.json index 8a88de64fc..f9a068d0a3 100644 --- a/resources/profiles/Comgrow/machine/fdm_machine_common.json +++ b/resources/profiles/Comgrow/machine/fdm_machine_common.json @@ -88,7 +88,7 @@ "1" ], "retraction_length": [ - "5" + "1" ], "retract_length_toolchange": [ "1" diff --git a/resources/profiles/Creality.json b/resources/profiles/Creality.json index 28f4a90e21..131f4ce118 100644 --- a/resources/profiles/Creality.json +++ b/resources/profiles/Creality.json @@ -119,6 +119,10 @@ { "name": "Creality K2 Plus", "sub_path": "machine/Creality K2 Plus.json" + }, + { + "name": "Creality Hi", + "sub_path": "machine/Creality Hi.json" } ], "process_list": [ @@ -266,6 +270,10 @@ "name": "0.08mm SuperDetail @Creality K2 Plus 0.4 nozzle", "sub_path": "process/0.08mm SuperDetail @Creality K2 Plus 0.4 nozzle.json" }, + { + "name": "0.08mm SuperDetail @Creality Hi", + "sub_path": "process/0.08mm SuperDetail @Creality Hi 0.4 nozzle.json" + }, { "name": "0.10mm HighDetail @Creality CR-6 0.4.json", "sub_path": "process/0.10mm HighDetail @Creality CR-6 0.4.json" @@ -422,6 +430,10 @@ "name": "0.24mm Detail @Creality K2 Plus 0.8 nozzle", "sub_path": "process/0.24mm Detail @Creality K2 Plus 0.8 nozzle.json" }, + { + "name": "0.12mm Fine @Creality Hi", + "sub_path": "process/0.12mm Fine @Creality Hi 0.4 nozzle.json" + }, { "name": "0.16mm Optimal @Creality CR10V2", "sub_path": "process/0.16mm Optimal @Creality CR10V2.json" @@ -586,6 +598,10 @@ "name": "0.16mm Optimal @Creality K2 Plus 0.4 nozzle", "sub_path": "process/0.16mm Optimal @Creality K2 Plus 0.4 nozzle.json" }, + { + "name": "0.16mm Optimal @Creality Hi", + "sub_path": "process/0.16mm Optimal @Creality Hi 0.4 nozzle.json" + }, { "name": "0.24mm Optimal @Creality K2 Plus 0.6 nozzle", "sub_path": "process/0.24mm Optimal @Creality K2 Plus 0.6 nozzle.json" @@ -782,6 +798,10 @@ "name": "0.20mm Fast @Creality K1 SE 0.4", "sub_path": "process/0.20mm Fast @Creality K1 SE 0.4.json" }, + { + "name": "0.20mm Standard @Creality Hi", + "sub_path": "process/0.20mm Standard @Creality Hi 0.4 nozzle.json" + }, { "name": "0.24mm Draft @Creality Ender3 0.2", "sub_path": "process/0.24mm Draft @Creality Ender3 0.2.json" @@ -914,6 +934,14 @@ "name": "0.24mm Draft @Creality K2 Plus 0.4 nozzle", "sub_path": "process/0.24mm Draft @Creality K2 Plus 0.4 nozzle.json" }, + { + "name": "0.24mm Draft @Creality Hi", + "sub_path": "process/0.24mm Draft @Creality Hi 0.4 nozzle.json" + }, + { + "name": "0.24mm Optimal @Creality Hi", + "sub_path": "process/0.24mm Optimal @Creality Hi 0.6 nozzle.json" + }, { "name": "0.36mm Draft @Creality K2 Plus 0.6 nozzle", "sub_path": "process/0.36mm Draft @Creality K2 Plus 0.6 nozzle.json" @@ -1082,6 +1110,10 @@ "name": "0.30mm Standard @Creality K1C", "sub_path": "process/0.30mm Standard @Creality K1C 0.6 nozzle.json" }, + { + "name": "0.30mm Standard @Creality Hi", + "sub_path": "process/0.30mm Standard @Creality Hi 0.6 nozzle.json" + }, { "name": "0.30mm Standard @Creality K1Max (0.6 nozzle)", "sub_path": "process/0.30mm Standard @Creality K1Max (0.6 nozzle).json" @@ -1106,6 +1138,10 @@ "name": "0.36mm Draft @Creality K1C", "sub_path": "process/0.36mm Draft @Creality K1C 0.6 nozzle.json" }, + { + "name": "0.36mm Draft @Creality Hi", + "sub_path": "process/0.36mm Draft @Creality Hi 0.6 nozzle.json" + }, { "name": "0.36mm Draft @Creality K1Max (0.6 nozzle)", "sub_path": "process/0.36mm Draft @Creality K1Max (0.6 nozzle).json" @@ -1327,6 +1363,54 @@ { "name": "Creality Generic PA-CF @K2-all", "sub_path": "filament/Creality Generic PA-CF @K2-all.json" + }, + { + "name": "Creality Generic ABS @Hi-all", + "sub_path": "filament/Creality Generic ABS @Hi-all.json" + }, + { + "name": "Creality Generic ASA @Hi-all", + "sub_path": "filament/Creality Generic ASA @Hi-all.json" + }, + { + "name": "Creality Generic ASA-CF @Hi-all", + "sub_path": "filament/Creality Generic ASA-CF @Hi-all.json" + }, + { + "name": "Creality Generic PETG @Hi-all", + "sub_path": "filament/Creality Generic PETG @Hi-all.json" + }, + { + "name": "Creality Generic PETG-CF @Hi-all", + "sub_path": "filament/Creality Generic PETG-CF @Hi-all.json" + }, + { + "name": "Creality Generic PLA @Hi-all", + "sub_path": "filament/Creality Generic PLA @Hi-all.json" + }, + { + "name": "Creality Generic PLA High Speed @Hi-all", + "sub_path": "filament/Creality Generic PLA High Speed @Hi-all.json" + }, + { + "name": "Creality Generic PLA Matte @Hi-all", + "sub_path": "filament/Creality Generic PLA Matte @Hi-all.json" + }, + { + "name": "Creality Generic PLA Silk @Hi-all", + "sub_path": "filament/Creality Generic PLA Silk @Hi-all.json" + }, + { + "name": "Creality Generic PLA-CF @Hi-all", + "sub_path": "filament/Creality Generic PLA-CF @Hi-all.json" + }, + { + "name": "Creality Generic PLA Wood @Hi-all", + "sub_path": "filament/Creality Generic PLA Wood @Hi-all.json" + }, + { + "name": "Creality Generic TPU @Hi-all", + "sub_path": "filament/Creality Generic TPU @Hi-all.json" } ], "machine_list": [ @@ -1609,6 +1693,14 @@ { "name": "Creality K2 Plus 0.8 nozzle", "sub_path": "machine/Creality K2 Plus 0.8 nozzle.json" + }, + { + "name": "Creality Hi 0.4 nozzle", + "sub_path": "machine/Creality Hi 0.4 nozzle.json" + }, + { + "name": "Creality Hi 0.6 nozzle", + "sub_path": "machine/Creality Hi 0.6 nozzle.json" } ] } \ No newline at end of file diff --git a/resources/profiles/Creality/Creality Hi_cover.png b/resources/profiles/Creality/Creality Hi_cover.png new file mode 100644 index 0000000000..67a303986e Binary files /dev/null and b/resources/profiles/Creality/Creality Hi_cover.png differ diff --git a/resources/profiles/Creality/creality_hi_buildplate_model.stl b/resources/profiles/Creality/creality_hi_buildplate_model.stl new file mode 100644 index 0000000000..262c3279e5 Binary files /dev/null and b/resources/profiles/Creality/creality_hi_buildplate_model.stl differ diff --git a/resources/profiles/Creality/creality_hi_buildplate_texture.png b/resources/profiles/Creality/creality_hi_buildplate_texture.png new file mode 100644 index 0000000000..d08316d5ec Binary files /dev/null and b/resources/profiles/Creality/creality_hi_buildplate_texture.png differ diff --git a/resources/profiles/Creality/filament/Creality Generic ABS @Hi-all.json b/resources/profiles/Creality/filament/Creality Generic ABS @Hi-all.json new file mode 100644 index 0000000000..4f30a0525a --- /dev/null +++ b/resources/profiles/Creality/filament/Creality Generic ABS @Hi-all.json @@ -0,0 +1,15 @@ +{ + "type": "filament", + "setting_id": "GFSA04_CREALITY_00", + "name": "Creality Generic ABS @Hi", + "from": "system", + "instantiation": "true", + "inherits": "Creality Generic ABS", + "filament_max_volumetric_speed": ["9"], + "slow_down_layer_time": ["5"], + "filament_start_gcode": ["; filament start gcode\n{if (position[2] > first_layer_height) }\nM104 S[nozzle_temperature]\n{else}\nM104 S[first_layer_temperature]\n{endif}\n"], + "compatible_printers": [ + "Creality Hi 0.4 nozzle", + "Creality Hi 0.6 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Creality Generic ABS @K2-all.json b/resources/profiles/Creality/filament/Creality Generic ABS @K2-all.json index 4a033b3780..83007ba3cd 100644 --- a/resources/profiles/Creality/filament/Creality Generic ABS @K2-all.json +++ b/resources/profiles/Creality/filament/Creality Generic ABS @K2-all.json @@ -17,6 +17,7 @@ "slow_down_min_speed": [ "20" ], + "filament_start_gcode": ["; filament start gcode\n{if (position[2] > first_layer_height) }\nM104 S[nozzle_temperature]\n{else}\nM104 S[first_layer_temperature]\n{endif}\n\n{if(initial_extruder != current_extruder || position[2] > first_layer_height)}\n{if (position[2] +0.4 < printable_height) }\nG2 Z{position[2] + 0.4} I0.86 J0.86 P1 F10000 ; spiral lift a little from second lift\nG1 X205 Y345 F20000\nG1 Z{position[2] } F1200\n{else}\nG1 X205 Y345 F20000\n{endif}\n{endif}\n"], "compatible_printers": [ "Creality K2 Plus 0.2 nozzle", "Creality K2 Plus 0.4 nozzle", diff --git a/resources/profiles/Creality/filament/Creality Generic ASA @Hi-all.json b/resources/profiles/Creality/filament/Creality Generic ASA @Hi-all.json new file mode 100644 index 0000000000..d73dc9a05b --- /dev/null +++ b/resources/profiles/Creality/filament/Creality Generic ASA @Hi-all.json @@ -0,0 +1,15 @@ +{ + "type": "filament", + "setting_id": "GFSA04_00", + "name": "Creality Generic ASA @Hi-all", + "from": "system", + "instantiation": "true", + "inherits": "Creality Generic ASA", + "filament_max_volumetric_speed": ["9"], + "slow_down_layer_time": ["5"], + "filament_start_gcode": ["; filament start gcode\n{if (position[2] > first_layer_height) }\nM104 S[nozzle_temperature]\n{else}\nM104 S[first_layer_temperature]\n{endif}\n"], + "compatible_printers": [ + "Creality Hi 0.4 nozzle", + "Creality Hi 0.6 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Creality Generic ASA @K2-all.json b/resources/profiles/Creality/filament/Creality Generic ASA @K2-all.json index 8cb657bdd0..007ea2639d 100644 --- a/resources/profiles/Creality/filament/Creality Generic ASA @K2-all.json +++ b/resources/profiles/Creality/filament/Creality Generic ASA @K2-all.json @@ -17,6 +17,7 @@ "slow_down_min_speed": [ "20" ], + "filament_start_gcode": ["; filament start gcode\n{if (position[2] > first_layer_height) }\nM104 S[nozzle_temperature]\n{else}\nM104 S[first_layer_temperature]\n{endif}\n\n{if(initial_extruder != current_extruder || position[2] > first_layer_height)}\n{if (position[2] +0.4 < printable_height) }\nG2 Z{position[2] + 0.4} I0.86 J0.86 P1 F10000 ; spiral lift a little from second lift\nG1 X205 Y345 F20000\nG1 Z{position[2] } F1200\n{else}\nG1 X205 Y345 F20000\n{endif}\n{endif}\n"], "compatible_printers": [ "Creality K2 Plus 0.2 nozzle", "Creality K2 Plus 0.4 nozzle", diff --git a/resources/profiles/Creality/filament/Creality Generic ASA-CF @Hi-all.json b/resources/profiles/Creality/filament/Creality Generic ASA-CF @Hi-all.json new file mode 100644 index 0000000000..e757f82176 --- /dev/null +++ b/resources/profiles/Creality/filament/Creality Generic ASA-CF @Hi-all.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "GFSA04_00", + "name": "Creality Generic ASA-CF @Hi-all", + "from": "system", + "instantiation": "true", + "inherits": "Creality Generic ASA @Hi-all", + "filament_max_volumetric_speed": ["9"], + "slow_down_layer_time": ["5"], + "compatible_printers": [ + "Creality Hi 0.4 nozzle", + "Creality Hi 0.6 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Creality Generic PA-CF @K2-all.json b/resources/profiles/Creality/filament/Creality Generic PA-CF @K2-all.json index 3e0963cc49..639109c4a5 100644 --- a/resources/profiles/Creality/filament/Creality Generic PA-CF @K2-all.json +++ b/resources/profiles/Creality/filament/Creality Generic PA-CF @K2-all.json @@ -14,6 +14,7 @@ "fan_min_speed": [ "30" ], + "filament_start_gcode": ["; filament start gcode\n{if (position[2] > first_layer_height) }\nM104 S[nozzle_temperature]\n{else}\nM104 S[first_layer_temperature]\n{endif}\n\n{if(initial_extruder != current_extruder || position[2] > first_layer_height)}\n{if (position[2] +0.4 < printable_height) }\nG2 Z{position[2] + 0.4} I0.86 J0.86 P1 F10000 ; spiral lift a little from second lift\nG1 X205 Y345 F20000\nG1 Z{position[2] } F1200\n{else}\nG1 X205 Y345 F20000\n{endif}\n{endif}\n"], "compatible_printers": [ "Creality K2 Plus 0.2 nozzle", "Creality K2 Plus 0.4 nozzle", diff --git a/resources/profiles/Creality/filament/Creality Generic PETG @Hi-all.json b/resources/profiles/Creality/filament/Creality Generic PETG @Hi-all.json new file mode 100644 index 0000000000..a5d13fd022 --- /dev/null +++ b/resources/profiles/Creality/filament/Creality Generic PETG @Hi-all.json @@ -0,0 +1,25 @@ +{ + "type": "filament", + "setting_id": "GFSG99_00", + "name": "Creality Generic PETG @Hi-all", + "from": "system", + "instantiation": "true", + "inherits": "Creality Generic PETG", + "filament_max_volumetric_speed": ["9"], + "slow_down_layer_time": ["5"], + "cool_plate_temp" : ["70"], + "eng_plate_temp" : ["70"], + "hot_plate_temp" : ["70"], + "textured_plate_temp" : ["70"], + "cool_plate_temp_initial_layer" : ["70"], + "eng_plate_temp_initial_layer" : ["70"], + "hot_plate_temp_initial_layer" : ["70"], + "textured_plate_temp_initial_layer" : ["70"], + "nozzle_temperature_initial_layer": ["250"], + "nozzle_temperature": ["250"], + "filament_start_gcode": ["; filament start gcode\n{if (position[2] > first_layer_height) }\nM104 S[nozzle_temperature]\n{else}\nM104 S[first_layer_temperature]\n{endif}\n"], + "compatible_printers": [ + "Creality Hi 0.4 nozzle", + "Creality Hi 0.6 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Creality Generic PETG @K2-all.json b/resources/profiles/Creality/filament/Creality Generic PETG @K2-all.json index efe3f28bb7..c01d3e4f3f 100644 --- a/resources/profiles/Creality/filament/Creality Generic PETG @K2-all.json +++ b/resources/profiles/Creality/filament/Creality Generic PETG @K2-all.json @@ -50,6 +50,7 @@ "reduce_fan_stop_start_freq": [ "1" ], + "filament_start_gcode": ["; filament start gcode\n{if (position[2] > first_layer_height) }\nM104 S[nozzle_temperature]\n{else}\nM104 S[first_layer_temperature]\n{endif}\n\n{if(initial_extruder != current_extruder || position[2] > first_layer_height)}\n{if (position[2] +0.4 < printable_height) }\nG2 Z{position[2] + 0.4} I0.86 J0.86 P1 F10000 ; spiral lift a little from second lift\nG1 X205 Y345 F20000\nG1 Z{position[2] } F1200\n{else}\nG1 X205 Y345 F20000\n{endif}\n{endif}\n"], "compatible_printers": [ "Creality K2 Plus 0.2 nozzle", "Creality K2 Plus 0.4 nozzle", diff --git a/resources/profiles/Creality/filament/Creality Generic PETG-CF @Hi-all.json b/resources/profiles/Creality/filament/Creality Generic PETG-CF @Hi-all.json new file mode 100644 index 0000000000..e09239c326 --- /dev/null +++ b/resources/profiles/Creality/filament/Creality Generic PETG-CF @Hi-all.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "GFSG99_00", + "name": "Creality Generic PETG-CF @Hi-all", + "from": "system", + "instantiation": "true", + "inherits": "Creality Generic PETG @Hi-all", + "filament_max_volumetric_speed": ["9"], + "filament_flow_ratio": ["0.95"], + "compatible_printers": [ + "Creality Hi 0.4 nozzle", + "Creality Hi 0.6 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Creality Generic PLA @Hi-all.json b/resources/profiles/Creality/filament/Creality Generic PLA @Hi-all.json new file mode 100644 index 0000000000..39ff7bf9c8 --- /dev/null +++ b/resources/profiles/Creality/filament/Creality Generic PLA @Hi-all.json @@ -0,0 +1,94 @@ +{ + "type": "filament", + "setting_id": "GFSL99_00", + "name": "Creality Generic PLA @Hi-all", + "from": "system", + "instantiation": "true", + "inherits": "Creality Generic PLA", + "filament_max_volumetric_speed": [ + "18" + ], + "slow_down_min_speed": [ + "20" + ], + "cool_plate_temp": [ + "55" + ], + "eng_plate_temp": [ + "55" + ], + "hot_plate_temp": [ + "55" + ], + "textured_plate_temp": [ + "55" + ], + "cool_plate_temp_initial_layer": [ + "55" + ], + "eng_plate_temp_initial_layer": [ + "55" + ], + "hot_plate_temp_initial_layer": [ + "55" + ], + "textured_plate_temp_initial_layer": [ + "55" + ], + "filament_cooling_final_speed": [ + "3.4" + ], + "filament_cooling_initial_speed": [ + "2.2" + ], + "filament_cooling_moves": [ + "4" + ], + "filament_load_time": [ + "0" + ], + "filament_loading_speed": [ + "28" + ], + "filament_loading_speed_start": [ + "3" + ], + "filament_toolchange_delay": [ + "0" + ], + "filament_unload_time": [ + "0" + ], + "filament_unloading_speed": [ + "90" + ], + "filament_unloading_speed_start": [ + "100" + ], + "filament_long_retractions_when_cut": [ + "nil" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_multitool_ramming": [ + "0" + ], + "filament_multitool_ramming_flow": [ + "0" + ], + "filament_multitool_ramming_volume": [ + "0" + ], + "filament_notes": [ + "" + ], + "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_start_gcode": ["; filament start gcode\n{if (position[2] > first_layer_height) }\nM104 S[nozzle_temperature]\n{else}\nM104 S[first_layer_temperature]\n{endif}\n"], + "compatible_printers": [ + "Creality Hi 0.4 nozzle", + "Creality Hi 0.6 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Creality Generic PLA @K2-all.json b/resources/profiles/Creality/filament/Creality Generic PLA @K2-all.json index 472eef9221..3bbc824e96 100644 --- a/resources/profiles/Creality/filament/Creality Generic PLA @K2-all.json +++ b/resources/profiles/Creality/filament/Creality Generic PLA @K2-all.json @@ -44,6 +44,7 @@ "reduce_fan_stop_start_freq": [ "1" ], + "filament_start_gcode": ["; filament start gcode\n{if (position[2] > first_layer_height) }\nM104 S[nozzle_temperature]\n{else}\nM104 S[first_layer_temperature]\n{endif}\n\n{if(initial_extruder != current_extruder || position[2] > first_layer_height)}\n{if (position[2] +0.4 < printable_height) }\nG2 Z{position[2] + 0.4} I0.86 J0.86 P1 F10000 ; spiral lift a little from second lift\nG1 X205 Y345 F20000\nG1 Z{position[2] } F1200\n{else}\nG1 X205 Y345 F20000\n{endif}\n{endif}\n"], "compatible_printers": [ "Creality K2 Plus 0.2 nozzle", "Creality K2 Plus 0.4 nozzle", diff --git a/resources/profiles/Creality/filament/Creality Generic PLA High Speed @Hi-all.json b/resources/profiles/Creality/filament/Creality Generic PLA High Speed @Hi-all.json new file mode 100644 index 0000000000..b661eddf23 --- /dev/null +++ b/resources/profiles/Creality/filament/Creality Generic PLA High Speed @Hi-all.json @@ -0,0 +1,18 @@ +{ + "type": "filament", + "setting_id": "GFSL95_00", + "name": "Creality Generic PLA High Speed @Hi-all", + "from": "system", + "instantiation": "true", + "inherits": "Creality Generic PLA @Hi-all", + "filament_flow_ratio": [ + "0.95" + ], + "filament_max_volumetric_speed": [ + "23" + ], + "compatible_printers": [ + "Creality Hi 0.4 nozzle", + "Creality Hi 0.6 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/TwoTrees/filament/TwoTrees Generic PLA Matte @SK1.json b/resources/profiles/Creality/filament/Creality Generic PLA Matte @Hi-all.json similarity index 55% rename from resources/profiles/TwoTrees/filament/TwoTrees Generic PLA Matte @SK1.json rename to resources/profiles/Creality/filament/Creality Generic PLA Matte @Hi-all.json index aa8ea64334..540725ceb2 100644 --- a/resources/profiles/TwoTrees/filament/TwoTrees Generic PLA Matte @SK1.json +++ b/resources/profiles/Creality/filament/Creality Generic PLA Matte @Hi-all.json @@ -1,15 +1,15 @@ { "type": "filament", - "instantiation": "true", - "name": "TwoTrees Generic PLA Matte @SK1", - "inherits": "TwoTrees Generic PLA @SK1", - "from": "system", - "filament_id": "GFSL05", "setting_id": "GFSL05_00", - "compatible_printers": [ - "TwoTrees SK1 0.4 nozzle" - ], + "name": "Creality Generic PLA Matte @Hi-all", + "from": "system", + "instantiation": "true", + "inherits": "Creality Generic PLA @Hi-all", "filament_max_volumetric_speed": [ "18" + ], + "compatible_printers": [ + "Creality Hi 0.4 nozzle", + "Creality Hi 0.6 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Creality Generic PLA Silk @Hi-all.json b/resources/profiles/Creality/filament/Creality Generic PLA Silk @Hi-all.json new file mode 100644 index 0000000000..dfb79cb6b9 --- /dev/null +++ b/resources/profiles/Creality/filament/Creality Generic PLA Silk @Hi-all.json @@ -0,0 +1,18 @@ +{ + "type": "filament", + "setting_id": "GFSL96_00", + "name": "Creality Generic PLA Silk @Hi-all", + "from": "system", + "instantiation": "true", + "inherits": "Creality Generic PLA @Hi-all", + "filament_flow_ratio": [ + "0.97" + ], + "filament_max_volumetric_speed": [ + "7.5" + ], + "compatible_printers": [ + "Creality Hi 0.4 nozzle", + "Creality Hi 0.6 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Creality Generic PLA Wood @Hi-all.json b/resources/profiles/Creality/filament/Creality Generic PLA Wood @Hi-all.json new file mode 100644 index 0000000000..fdabf19b0c --- /dev/null +++ b/resources/profiles/Creality/filament/Creality Generic PLA Wood @Hi-all.json @@ -0,0 +1,18 @@ +{ + "type": "filament", + "setting_id": "GFSL96_00", + "name": "Creality Generic PLA Wood @Hi-all", + "from": "system", + "instantiation": "true", + "inherits": "Creality Generic PLA @Hi-all", + "filament_flow_ratio": [ + "0.88" + ], + "filament_max_volumetric_speed": [ + "8" + ], + "compatible_printers": [ + "Creality Hi 0.4 nozzle", + "Creality Hi 0.6 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Creality Generic PLA-CF @Hi-all.json b/resources/profiles/Creality/filament/Creality Generic PLA-CF @Hi-all.json new file mode 100644 index 0000000000..96712a38f7 --- /dev/null +++ b/resources/profiles/Creality/filament/Creality Generic PLA-CF @Hi-all.json @@ -0,0 +1,15 @@ +{ + "type": "filament", + "setting_id": "GFSL96_00", + "name": "Creality Generic PLA-CF @Hi-all", + "from": "system", + "instantiation": "true", + "inherits": "Creality Generic PLA-CF", + "filament_max_volumetric_speed": [ + "18" + ], + "compatible_printers": [ + "Creality Hi 0.4 nozzle", + "Creality Hi 0.6 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Creality Generic TPU @Hi-all.json b/resources/profiles/Creality/filament/Creality Generic TPU @Hi-all.json new file mode 100644 index 0000000000..f98b6f6571 --- /dev/null +++ b/resources/profiles/Creality/filament/Creality Generic TPU @Hi-all.json @@ -0,0 +1,37 @@ +{ + "type": "filament", + "setting_id": "GFU99_CREALITY_00", + "name": "Creality Generic TPU @Hi-all", + "from": "system", + "instantiation": "true", + "inherits": "Creality Generic TPU", + "hot_plate_temp": [ + "30" + ], + "hot_plate_temp_initial_layer": [ + "30" + ], + "textured_plate_temp": [ + "30" + ], + "textured_plate_temp_initial_layer": [ + "30" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "nozzle_temperature": [ + "230" + ], + "filament_max_volumetric_speed": [ + "3.5" + ], + "slow_down_layer_time": [ + "5" + ], + "filament_start_gcode": ["; filament start gcode\n{if (position[2] > first_layer_height) }\nM104 S[nozzle_temperature]\n{else}\nM104 S[first_layer_temperature]\n{endif}\n"], + "compatible_printers": [ + "Creality Hi 0.4 nozzle", + "Creality Hi 0.6 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Creality Generic TPU @K2-all.json b/resources/profiles/Creality/filament/Creality Generic TPU @K2-all.json index 21b4e547a3..1c0d417cc1 100644 --- a/resources/profiles/Creality/filament/Creality Generic TPU @K2-all.json +++ b/resources/profiles/Creality/filament/Creality Generic TPU @K2-all.json @@ -32,6 +32,7 @@ "reduce_fan_stop_start_freq": [ "1" ], + "filament_start_gcode": ["; filament start gcode\n{if (position[2] > first_layer_height) }\nM104 S[nozzle_temperature]\n{else}\nM104 S[first_layer_temperature]\n{endif}\n\n{if(initial_extruder != current_extruder || position[2] > first_layer_height)}\n{if (position[2] +0.4 < printable_height) }\nG2 Z{position[2] + 0.4} I0.86 J0.86 P1 F10000 ; spiral lift a little from second lift\nG1 X205 Y345 F20000\nG1 Z{position[2] } F1200\n{else}\nG1 X205 Y345 F20000\n{endif}\n{endif}\n"], "compatible_printers": [ "Creality K2 Plus 0.2 nozzle", "Creality K2 Plus 0.4 nozzle", diff --git a/resources/profiles/Creality/machine/Creality Hi 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality Hi 0.4 nozzle.json new file mode 100644 index 0000000000..1c0a4b4421 --- /dev/null +++ b/resources/profiles/Creality/machine/Creality Hi 0.4 nozzle.json @@ -0,0 +1,145 @@ +{ + "type": "machine", + "setting_id": "GM001", + "name": "Creality Hi 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_creality_common", + "printer_model": "Creality Hi", + "gcode_flavor": "klipper", + "printer_structure": "i3", + "default_print_profile": "0.20mm Standard @Creality Hi", + "nozzle_diameter": [ + "0.4" + ], + "nozzle_type": "hardened_steel", + "nozzle_volume": "183", + "printer_variant": "0.4", + "printable_area": [ + "0x0", + "260x0", + "260x260", + "0x260" + ], + "printable_height": "300", + "auxiliary_fan": "0", + "support_air_filtration": "0", + "support_multi_bed_types": "1", + "machine_max_acceleration_e": [ + "5000", + "5000" + ], + "machine_max_acceleration_extruding": [ + "12000", + "12000" + ], + "machine_max_acceleration_retracting": [ + "5000", + "5000" + ], + "machine_max_acceleration_travel": [ + "12000", + "12000" + ], + "machine_max_acceleration_x": [ + "12000", + "12000" + ], + "machine_max_acceleration_y": [ + "12000", + "12000" + ], + "machine_max_acceleration_z": [ + "1000", + "1000" + ], + "machine_max_speed_e": [ + "50", + "50" + ], + "machine_max_speed_x": [ + "500", + "500" + ], + "machine_max_speed_y": [ + "500", + "500" + ], + "machine_max_speed_z": [ + "30", + "30" + ], + "machine_max_jerk_e": [ + "2.5", + "2.5" + ], + "machine_max_jerk_x": [ + "12", + "12" + ], + "machine_max_jerk_y": [ + "12", + "12" + ], + "machine_max_jerk_z": [ + "2", + "2" + ], + "max_layer_height": [ + "0.32" + ], + "min_layer_height": [ + "0.08" + ], + "printer_settings_id": "Creality", + "purge_in_prime_tower": "0", + "retraction_minimum_travel": [ + "0.5" + ], + "retract_before_wipe": [ + "70%" + ], + "retraction_length": [ + "0.8" + ], + "retract_length_toolchange": [ + "0" + ], + "retraction_speed": [ + "40" + ], + "deretraction_speed": [ + "40" + ], + "retract_lift_below": [ + "299" + ], + "retract_when_changing_layer": [ + "1" + ], + "enable_filament_ramming": "0", + "extruder_clearance_height_to_lid": "27", + "extruder_clearance_height_to_rod": "27", + "extruder_clearance_radius": "55", + "z_hop": [ + "0.4" + ], + "z_hop_types": [ + "Auto Lift" + ], + "wipe_distance": [ + "2" + ], + "single_extruder_multi_material": "1", + "machine_pause_gcode": "PAUSE", + "change_filament_gcode": "G2 Z{z_after_toolchange + 0.4} I0.86 J0.86 P1 F10000 ; spiral lift a little from second lift\nG1 X260 Y180 F30000\nG1 Z{z_after_toolchange} F600", + "default_filament_profile": [ + "Creality Generic PLA @Hi-all" + ], + "machine_start_gcode": "M140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM109 S[nozzle_temperature_initial_layer]\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y150 F12000\nG1 X0 F12000\nG1 Z0.2 F600\nG1 X0 Y150 F6000\nG1 X0 Y0 E15 F6000\nG1 X150 Y0 E15 F6000\nG92 E0\nG1 Z1 F600", + "machine_end_gcode": "END_PRINT", + "scan_first_layer": "0", + "thumbnails": [ + "96x96/PNG, 300x300/PNG" + ] +} \ No newline at end of file diff --git a/resources/profiles/Creality/machine/Creality Hi 0.6 nozzle.json b/resources/profiles/Creality/machine/Creality Hi 0.6 nozzle.json new file mode 100644 index 0000000000..c42ddd6ed4 --- /dev/null +++ b/resources/profiles/Creality/machine/Creality Hi 0.6 nozzle.json @@ -0,0 +1,145 @@ +{ + "type": "machine", + "setting_id": "GM001", + "name": "Creality Hi 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_creality_common", + "printer_model": "Creality Hi", + "gcode_flavor": "klipper", + "printer_structure": "i3", + "default_print_profile": "0.30mm Standard @Creality Hi", + "nozzle_diameter": [ + "0.6" + ], + "nozzle_type": "hardened_steel", + "nozzle_volume": "183", + "printer_variant": "0.6", + "printable_area": [ + "0x0", + "260x0", + "260x260", + "0x260" + ], + "printable_height": "300", + "auxiliary_fan": "0", + "support_air_filtration": "0", + "support_multi_bed_types": "1", + "machine_max_acceleration_e": [ + "5000", + "5000" + ], + "machine_max_acceleration_extruding": [ + "12000", + "12000" + ], + "machine_max_acceleration_retracting": [ + "5000", + "5000" + ], + "machine_max_acceleration_travel": [ + "12000", + "12000" + ], + "machine_max_acceleration_x": [ + "12000", + "12000" + ], + "machine_max_acceleration_y": [ + "12000", + "12000" + ], + "machine_max_acceleration_z": [ + "1000", + "1000" + ], + "machine_max_speed_e": [ + "50", + "50" + ], + "machine_max_speed_x": [ + "500", + "500" + ], + "machine_max_speed_y": [ + "500", + "500" + ], + "machine_max_speed_z": [ + "30", + "30" + ], + "machine_max_jerk_e": [ + "2.5", + "2.5" + ], + "machine_max_jerk_x": [ + "12", + "12" + ], + "machine_max_jerk_y": [ + "12", + "12" + ], + "machine_max_jerk_z": [ + "2", + "2" + ], + "max_layer_height": [ + "0.35" + ], + "min_layer_height": [ + "0.1" + ], + "printer_settings_id": "Creality", + "purge_in_prime_tower": "0", + "retraction_minimum_travel": [ + "0.5" + ], + "retract_before_wipe": [ + "70%" + ], + "retraction_length": [ + "0.8" + ], + "retract_length_toolchange": [ + "0" + ], + "retraction_speed": [ + "40" + ], + "deretraction_speed": [ + "40" + ], + "retract_lift_below": [ + "299" + ], + "retract_when_changing_layer": [ + "1" + ], + "enable_filament_ramming": "0", + "extruder_clearance_height_to_lid": "27", + "extruder_clearance_height_to_rod": "27", + "extruder_clearance_radius": "55", + "z_hop": [ + "0.4" + ], + "z_hop_types": [ + "Auto Lift" + ], + "wipe_distance": [ + "2" + ], + "single_extruder_multi_material": "1", + "machine_pause_gcode": "PAUSE", + "change_filament_gcode": "G2 Z{z_after_toolchange + 0.4} I0.86 J0.86 P1 F10000 ; spiral lift a little from second lift\nG1 X260 Y180 F30000\nG1 Z{z_after_toolchange} F600", + "default_filament_profile": [ + "Creality Generic PLA @Hi-all" + ], + "machine_start_gcode": "M140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM109 S[nozzle_temperature_initial_layer]\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y150 F12000\nG1 X0 F12000\nG1 Z0.2 F600\nG1 X0 Y150 F6000\nG1 X0 Y0 E15 F6000\nG1 X150 Y0 E15 F6000\nG92 E0\nG1 Z1 F600", + "machine_end_gcode": "END_PRINT", + "scan_first_layer": "0", + "thumbnails": [ + "96x96/PNG, 300x300/PNG" + ] +} \ No newline at end of file diff --git a/resources/profiles/Creality/machine/Creality Hi.json b/resources/profiles/Creality/machine/Creality Hi.json new file mode 100644 index 0000000000..73fce0e95d --- /dev/null +++ b/resources/profiles/Creality/machine/Creality Hi.json @@ -0,0 +1,13 @@ +{ + "type": "machine_model", + "name": "Creality Hi", + "model_id": "Creality-Hi", + "nozzle_diameter": "0.4;0.6", + "machine_tech": "FFF", + "family": "Creality", + "bed_model": "creality_hi_buildplate_model.stl", + "bed_texture": "creality_hi_buildplate_texture.png", + "default_bed_type": "Textured PEI Plate", + "hotend_model": "", + "default_materials": "Creality Generic ABS @Hi-all;Creality Generic ASA @Hi-all;Creality Generic ASA-CF @Hi-all;Creality Generic PETG @Hi-all;Creality Generic PETG-CF @Hi-all;Creality Generic PLA @Hi-all;Creality Generic PLA High Speed @Hi-all;Creality Generic PLA Matte @Hi-all;Creality Generic PLA Silk @Hi-all;Creality Generic PLA-CF @Hi-all;Creality Generic PLA Wood @Hi-all;Creality Generic TPU @Hi-all" +} \ No newline at end of file diff --git a/resources/profiles/Creality/machine/Creality K2 Plus 0.2 nozzle.json b/resources/profiles/Creality/machine/Creality K2 Plus 0.2 nozzle.json index dccdf656fa..533f565db2 100644 --- a/resources/profiles/Creality/machine/Creality K2 Plus 0.2 nozzle.json +++ b/resources/profiles/Creality/machine/Creality K2 Plus 0.2 nozzle.json @@ -20,9 +20,10 @@ ], "printable_height": "350", "nozzle_type": "hardened_steel", + "nozzle_volume": "183", "auxiliary_fan": "1", "support_air_filtration": "1", - "support_multi_bed_types": "0", + "support_multi_bed_types": "1", "machine_max_acceleration_e": [ "5000", "5000" @@ -91,7 +92,7 @@ ], "printer_settings_id": "Creality", "retraction_minimum_travel": [ - "2" + "1" ], "retract_before_wipe": [ "70%" @@ -108,7 +109,14 @@ "deretraction_speed": [ "40" ], + "retract_lift_above": [ + "0" + ], + "retract_lift_below": [ + "349" + ], "enable_filament_ramming": "0", + "purge_in_prime_tower": "0", "cooling_tube_length": "0", "cooling_tube_retraction": "0", "parking_pos_retraction": "0", @@ -127,12 +135,12 @@ "default_filament_profile": [ "Creality Generic PLA @K2-all" ], - "machine_start_gcode":"M140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y150 F12000\nG1 X0 F12000\nG1 Z0.2 F600\nG1 X0 Y150 F6000\nG1 X0 Y0 E15 F1500\nG1 X150 Y0 E15 F1500\nG92 E0\nG1 Z1 F600", + "machine_start_gcode": "M140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM109 S[nozzle_temperature_initial_layer]\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y150 F12000\nG1 X0 F12000\nG1 Z0.2 F600\nG1 X0 Y150 F6000\nG1 X0 Y0 E15 F6000\nG1 X150 Y0 E15 F6000\nG92 E0\nG1 Z1 F600", "machine_end_gcode": "END_PRINT", "machine_pause_gcode": "PAUSE", "change_filament_gcode": "G2 Z{z_after_toolchange + 0.4} I0.86 J0.86 P1 F10000 ; spiral lift a little from second lift\nG1 X0 Y245 F30000\nG1 Z{z_after_toolchange} F600", "scan_first_layer": "0", - "thumbnails_format":"PNG", + "thumbnails_format": "PNG", "thumbnails": [ "300x300", "96x96" diff --git a/resources/profiles/Creality/machine/Creality K2 Plus 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality K2 Plus 0.4 nozzle.json index 0b86c46be8..74af66fff6 100644 --- a/resources/profiles/Creality/machine/Creality K2 Plus 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality K2 Plus 0.4 nozzle.json @@ -20,9 +20,10 @@ ], "printable_height": "350", "nozzle_type": "hardened_steel", + "nozzle_volume": "183", "auxiliary_fan": "1", "support_air_filtration": "1", - "support_multi_bed_types": "0", + "support_multi_bed_types": "1", "machine_max_acceleration_e": [ "5000", "5000" @@ -91,13 +92,13 @@ ], "printer_settings_id": "Creality", "retraction_minimum_travel": [ - "2" + "1" ], "retract_before_wipe": [ "70%" ], "retraction_length": [ - "0.5" + "0.8" ], "retract_length_toolchange": [ "0" @@ -108,7 +109,14 @@ "deretraction_speed": [ "40" ], + "retract_lift_above": [ + "0" + ], + "retract_lift_below": [ + "349" + ], "enable_filament_ramming": "0", + "purge_in_prime_tower": "0", "cooling_tube_length": "0", "cooling_tube_retraction": "0", "parking_pos_retraction": "0", @@ -120,19 +128,19 @@ "0.4" ], "wipe_distance": [ - "1" + "2" ], "single_extruder_multi_material": "1", "manual_filament_change": "0", "default_filament_profile": [ "Creality Generic PLA @K2-all" ], - "machine_start_gcode":"M140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y150 F12000\nG1 X0 F12000\nG1 Z0.2 F600\nG1 X0 Y150 F6000\nG1 X0 Y0 E15 F1500\nG1 X150 Y0 E15 F1500\nG92 E0\nG1 Z1 F600", + "machine_start_gcode": "M140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM109 S[nozzle_temperature_initial_layer]\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y150 F12000\nG1 X0 F12000\nG1 Z0.2 F600\nG1 X0 Y150 F6000\nG1 X0 Y0 E15 F6000\nG1 X150 Y0 E15 F6000\nG92 E0\nG1 Z1 F600", "machine_end_gcode": "END_PRINT", "machine_pause_gcode": "PAUSE", "change_filament_gcode": "G2 Z{z_after_toolchange + 0.4} I0.86 J0.86 P1 F10000 ; spiral lift a little from second lift\nG1 X0 Y245 F30000\nG1 Z{z_after_toolchange} F600", "scan_first_layer": "0", - "thumbnails_format":"PNG", + "thumbnails_format": "PNG", "thumbnails": [ "300x300", "96x96" diff --git a/resources/profiles/Creality/machine/Creality K2 Plus 0.6 nozzle.json b/resources/profiles/Creality/machine/Creality K2 Plus 0.6 nozzle.json index ab0c9db164..0653905794 100644 --- a/resources/profiles/Creality/machine/Creality K2 Plus 0.6 nozzle.json +++ b/resources/profiles/Creality/machine/Creality K2 Plus 0.6 nozzle.json @@ -20,9 +20,10 @@ ], "printable_height": "350", "nozzle_type": "hardened_steel", + "nozzle_volume": "183", "auxiliary_fan": "1", "support_air_filtration": "1", - "support_multi_bed_types": "0", + "support_multi_bed_types": "1", "machine_max_acceleration_e": [ "5000", "5000" @@ -91,7 +92,7 @@ ], "printer_settings_id": "Creality", "retraction_minimum_travel": [ - "2" + "1" ], "retract_before_wipe": [ "70%" @@ -108,7 +109,14 @@ "deretraction_speed": [ "40" ], + "retract_lift_above": [ + "0" + ], + "retract_lift_below": [ + "349" + ], "enable_filament_ramming": "0", + "purge_in_prime_tower": "0", "cooling_tube_length": "0", "cooling_tube_retraction": "0", "parking_pos_retraction": "0", @@ -127,7 +135,7 @@ "default_filament_profile": [ "Creality Generic PLA @K2-all" ], - "machine_start_gcode":"M140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y150 F12000\nG1 X0 F12000\nG1 Z0.2 F600\nG1 X0 Y150 F6000\nG1 X0 Y0 E15 F1500\nG1 X150 Y0 E15 F1500\nG92 E0\nG1 Z1 F600", + "machine_start_gcode": "M140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM109 S[nozzle_temperature_initial_layer]\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y150 F12000\nG1 X0 F12000\nG1 Z0.2 F600\nG1 X0 Y150 F6000\nG1 X0 Y0 E15 F6000\nG1 X150 Y0 E15 F6000\nG92 E0\nG1 Z1 F600", "machine_end_gcode": "END_PRINT", "machine_pause_gcode": "PAUSE", "change_filament_gcode": "G2 Z{z_after_toolchange + 0.4} I0.86 J0.86 P1 F10000 ; spiral lift a little from second lift\nG1 X0 Y245 F30000\nG1 Z{z_after_toolchange} F600", @@ -137,4 +145,4 @@ "300x300", "96x96" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/machine/Creality K2 Plus 0.8 nozzle.json b/resources/profiles/Creality/machine/Creality K2 Plus 0.8 nozzle.json index 72b061807a..b452404086 100644 --- a/resources/profiles/Creality/machine/Creality K2 Plus 0.8 nozzle.json +++ b/resources/profiles/Creality/machine/Creality K2 Plus 0.8 nozzle.json @@ -20,9 +20,10 @@ ], "printable_height": "350", "nozzle_type": "hardened_steel", + "nozzle_volume": "183", "auxiliary_fan": "1", "support_air_filtration": "1", - "support_multi_bed_types": "0", + "support_multi_bed_types": "1", "machine_max_acceleration_e": [ "5000", "5000" @@ -91,7 +92,7 @@ ], "printer_settings_id": "Creality", "retraction_minimum_travel": [ - "2" + "1" ], "retract_before_wipe": [ "70%" @@ -108,7 +109,14 @@ "deretraction_speed": [ "40" ], + "retract_lift_above": [ + "0" + ], + "retract_lift_below": [ + "349" + ], "enable_filament_ramming": "0", + "purge_in_prime_tower": "0", "cooling_tube_length": "0", "cooling_tube_retraction": "0", "parking_pos_retraction": "0", @@ -127,14 +135,14 @@ "default_filament_profile": [ "Creality Generic PLA @K2-all" ], - "machine_start_gcode":"M140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y150 F12000\nG1 X0 F12000\nG1 Z0.2 F600\nG1 X0 Y150 F6000\nG1 X0 Y0 E15 F1500\nG1 X150 Y0 E15 F1500\nG92 E0\nG1 Z1 F600", + "machine_start_gcode": "M140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM109 S[nozzle_temperature_initial_layer]\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y150 F12000\nG1 X0 F12000\nG1 Z0.2 F600\nG1 X0 Y150 F6000\nG1 X0 Y0 E15 F6000\nG1 X150 Y0 E15 F6000\nG92 E0\nG1 Z1 F600", "machine_end_gcode": "END_PRINT", "machine_pause_gcode": "PAUSE", "change_filament_gcode": "G2 Z{z_after_toolchange + 0.4} I0.86 J0.86 P1 F10000 ; spiral lift a little from second lift\nG1 X0 Y245 F30000\nG1 Z{z_after_toolchange} F600", "scan_first_layer": "0", - "thumbnails_format":"PNG", + "thumbnails_format": "PNG", "thumbnails": [ "300x300", "96x96" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/machine/fdm_machine_common.json b/resources/profiles/Creality/machine/fdm_machine_common.json index 6bf00c7418..5226911867 100644 --- a/resources/profiles/Creality/machine/fdm_machine_common.json +++ b/resources/profiles/Creality/machine/fdm_machine_common.json @@ -90,7 +90,7 @@ "1" ], "retraction_length": [ - "5" + "1" ], "retract_length_toolchange": [ "1" diff --git a/resources/profiles/Creality/process/0.08mm SuperDetail @Creality Hi 0.4 nozzle.json b/resources/profiles/Creality/process/0.08mm SuperDetail @Creality Hi 0.4 nozzle.json new file mode 100644 index 0000000000..e21dceac19 --- /dev/null +++ b/resources/profiles/Creality/process/0.08mm SuperDetail @Creality Hi 0.4 nozzle.json @@ -0,0 +1,117 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.08mm SuperDetail @Creality Hi", + "from": "system", + "inherits": "fdm_process_common_klipper", + "instantiation": "true", + "max_travel_detour_distance": "0", + "bottom_surface_pattern": "monotonic", + "bottom_shell_layers": "7", + "bottom_shell_thickness": "0", + "bridge_flow": "1", + "bridge_speed": "50", + "internal_bridge_speed": "150%", + "brim_width": "5", + "brim_object_gap": "0.1", + "compatible_printers": [ + "Creality Hi 0.4 nozzle" + ], + "default_acceleration": "12000", + "bridge_no_support": "0", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.15", + "outer_wall_line_width": "0.42", + "outer_wall_speed": "200", + "outer_wall_acceleration": "5000", + "inner_wall_acceleration": "5000", + "wall_infill_order": "inner wall/outer wall/infill", + "line_width": "0.42", + "infill_direction": "45", + "sparse_infill_density": "15%", + "sparse_infill_pattern": "crosshatch", + "internal_bridge_support_thickness": "0.8", + "initial_layer_acceleration": "2000", + "initial_layer_line_width": "0.5", + "initial_layer_print_height": "0.2", + "initial_layer_speed": "60", + "gap_infill_speed": "250", + "infill_combination": "0", + "sparse_infill_line_width": "0.45", + "infill_wall_overlap": "30%", + "sparse_infill_speed": "270", + "interface_shells": "0", + "ironing_flow": "8%", + "ironing_spacing": "0.15", + "ironing_speed": "30", + "ironing_type": "no ironing", + "layer_height": "0.08", + "reduce_infill_retraction": "1", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "detect_overhang_wall": "1", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "50", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "10", + "only_one_wall_top": "1", + "precise_outer_wall": "1", + "inner_wall_line_width": "0.45", + "inner_wall_speed": "300", + "wall_loops": "2", + "raft_layers": "0", + "seam_position": "aligned", + "skirt_distance": "2", + "skirt_height": "1", + "skirt_loops": "0", + "minimum_sparse_infill_area": "15", + "internal_solid_infill_line_width": "0.42", + "internal_solid_infill_speed": "250", + "initial_layer_infill_speed": "105", + "standby_temperature_delta": "-5", + "enable_support": "0", + "resolution": "0.012", + "support_type": "tree(auto)", + "support_style": "default", + "support_on_build_plate_only": "0", + "support_top_z_distance": "0.2", + "support_bottom_z_distance": "0.2", + "support_filament": "0", + "support_line_width": "0.4", + "support_interface_loop_pattern": "0", + "support_interface_filament": "0", + "support_interface_top_layers": "2", + "support_interface_bottom_layers": "2", + "support_interface_spacing": "0.5", + "support_expansion": "0", + "support_interface_speed": "80", + "support_base_pattern": "default", + "support_base_pattern_spacing": "2.5", + "support_speed": "150", + "support_threshold_angle": "30", + "support_object_xy_distance": "0.35", + "tree_support_branch_diameter": "2", + "tree_support_branch_angle": "45", + "tree_support_wall_count": "1", + "detect_thin_wall": "0", + "top_surface_pattern": "monotonicline", + "top_surface_line_width": "0.42", + "top_surface_acceleration": "5000", + "top_surface_speed": "200", + "top_shell_layers": "9", + "top_shell_thickness": "0.8", + "travel_acceleration": "12000", + "travel_speed": "500", + "enable_prime_tower": "1", + "wipe_tower_no_sparse_layers": "0", + "prime_tower_width": "35", + "xy_hole_compensation": "0", + "xy_contour_compensation": "0", + "gcode_label_objects": "0", + "default_jerk": "12", + "outer_wall_jerk": "8", + "inner_wall_jerk": "8", + "infill_jerk": "12", + "top_surface_jerk": "8", + "initial_layer_jerk": "8", + "travel_jerk": "12" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.08mm SuperDetail @Creality K2 Plus 0.2 nozzle.json b/resources/profiles/Creality/process/0.08mm SuperDetail @Creality K2 Plus 0.2 nozzle.json index 3798743496..0aaf929625 100644 --- a/resources/profiles/Creality/process/0.08mm SuperDetail @Creality K2 Plus 0.2 nozzle.json +++ b/resources/profiles/Creality/process/0.08mm SuperDetail @Creality K2 Plus 0.2 nozzle.json @@ -54,6 +54,7 @@ "overhang_3_4_speed": "30", "overhang_4_4_speed": "10", "only_one_wall_top": "1", + "precise_outer_wall": "1", "inner_wall_line_width": "0.25", "inner_wall_speed": "150", "wall_loops": "4", diff --git a/resources/profiles/Creality/process/0.08mm SuperDetail @Creality K2 Plus 0.4 nozzle.json b/resources/profiles/Creality/process/0.08mm SuperDetail @Creality K2 Plus 0.4 nozzle.json index 7304c173ae..ee060f244b 100644 --- a/resources/profiles/Creality/process/0.08mm SuperDetail @Creality K2 Plus 0.4 nozzle.json +++ b/resources/profiles/Creality/process/0.08mm SuperDetail @Creality K2 Plus 0.4 nozzle.json @@ -54,6 +54,7 @@ "overhang_3_4_speed": "30", "overhang_4_4_speed": "10", "only_one_wall_top": "1", + "precise_outer_wall": "1", "inner_wall_line_width": "0.45", "inner_wall_speed": "350", "wall_loops": "2", diff --git a/resources/profiles/Creality/process/0.10mm HighDetail @Creality K2 Plus 0.2 nozzle.json b/resources/profiles/Creality/process/0.10mm HighDetail @Creality K2 Plus 0.2 nozzle.json index bffb09ca7c..8a1fda49e0 100644 --- a/resources/profiles/Creality/process/0.10mm HighDetail @Creality K2 Plus 0.2 nozzle.json +++ b/resources/profiles/Creality/process/0.10mm HighDetail @Creality K2 Plus 0.2 nozzle.json @@ -54,6 +54,7 @@ "overhang_3_4_speed": "30", "overhang_4_4_speed": "10", "only_one_wall_top": "1", + "precise_outer_wall": "1", "inner_wall_line_width": "0.25", "inner_wall_speed": "150", "wall_loops": "4", diff --git a/resources/profiles/Creality/process/0.12mm Detail @Creality K2 Plus 0.2 nozzle.json b/resources/profiles/Creality/process/0.12mm Detail @Creality K2 Plus 0.2 nozzle.json index 437d4c16e5..edbd1dc827 100644 --- a/resources/profiles/Creality/process/0.12mm Detail @Creality K2 Plus 0.2 nozzle.json +++ b/resources/profiles/Creality/process/0.12mm Detail @Creality K2 Plus 0.2 nozzle.json @@ -54,6 +54,7 @@ "overhang_3_4_speed": "30", "overhang_4_4_speed": "10", "only_one_wall_top": "1", + "precise_outer_wall": "1", "inner_wall_line_width": "0.25", "inner_wall_speed": "150", "wall_loops": "4", diff --git a/resources/profiles/Creality/process/0.12mm Detail @Creality K2 Plus 0.4 nozzle.json b/resources/profiles/Creality/process/0.12mm Detail @Creality K2 Plus 0.4 nozzle.json index 2f262bfaea..842b07347f 100644 --- a/resources/profiles/Creality/process/0.12mm Detail @Creality K2 Plus 0.4 nozzle.json +++ b/resources/profiles/Creality/process/0.12mm Detail @Creality K2 Plus 0.4 nozzle.json @@ -54,6 +54,7 @@ "overhang_3_4_speed": "30", "overhang_4_4_speed": "10", "only_one_wall_top": "1", + "precise_outer_wall": "1", "inner_wall_line_width": "0.45", "inner_wall_speed": "300", "wall_loops": "2", diff --git a/resources/profiles/Creality/process/0.12mm Fine @Creality Hi 0.4 nozzle.json b/resources/profiles/Creality/process/0.12mm Fine @Creality Hi 0.4 nozzle.json new file mode 100644 index 0000000000..d091be7ea1 --- /dev/null +++ b/resources/profiles/Creality/process/0.12mm Fine @Creality Hi 0.4 nozzle.json @@ -0,0 +1,126 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.12mm Fine @Creality Hi", + "from": "system", + "inherits": "fdm_process_common_klipper", + "instantiation": "true", + "adaptive_layer_height": "0", + "reduce_crossing_wall": "0", + "max_travel_detour_distance": "0", + "bottom_surface_pattern": "monotonic", + "bottom_shell_layers": "3", + "bottom_shell_thickness": "0", + "bridge_flow": "1", + "bridge_speed": "50", + "internal_bridge_speed": "150%", + "brim_width": "5", + "brim_object_gap": "0.1", + "compatible_printers": [ + "Creality Hi 0.4 nozzle" + ], + "compatible_printers_condition": "", + "print_sequence": "by layer", + "default_acceleration": "12000", + "bridge_no_support": "0", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.15", + "outer_wall_line_width": "0.42", + "outer_wall_speed": "200", + "outer_wall_acceleration": "5000", + "inner_wall_acceleration": "5000", + "wall_infill_order": "inner wall/outer wall/infill", + "line_width": "0.42", + "infill_direction": "45", + "sparse_infill_density": "15%", + "sparse_infill_pattern": "crosshatch", + "internal_bridge_support_thickness": "0.8", + "initial_layer_acceleration": "500", + "initial_layer_line_width": "0.5", + "initial_layer_print_height": "0.12", + "initial_layer_speed": "60", + "gap_infill_speed": "250", + "infill_combination": "0", + "sparse_infill_line_width": "0.45", + "infill_wall_overlap": "30%", + "sparse_infill_speed": "270", + "interface_shells": "0", + "ironing_flow": "10%", + "ironing_spacing": "0.15", + "ironing_speed": "100", + "ironing_type": "no ironing", + "layer_height": "0.12", + "reduce_infill_retraction": "1", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "detect_overhang_wall": "1", + "overhang_1_4_speed": "60", + "overhang_2_4_speed": "30", + "overhang_3_4_speed": "10", + "overhang_4_4_speed": "10", + "only_one_wall_top": "1", + "precise_outer_wall": "1", + "inner_wall_line_width": "0.45", + "inner_wall_speed": "300", + "wall_loops": "2", + "print_settings_id": "", + "raft_layers": "0", + "seam_position": "aligned", + "seam_slope_conditional": "1", + "seam_slope_inner_walls": "1", + "seam_slope_entire_loop": "1", + "skirt_distance": "2", + "skirt_height": "1", + "skirt_loops": "0", + "minimum_sparse_infill_area": "15", + "internal_solid_infill_line_width": "0.42", + "internal_solid_infill_speed": "250", + "spiral_mode": "0", + "initial_layer_infill_speed": "105", + "standby_temperature_delta": "-5", + "enable_support": "0", + "resolution": "0.012", + "support_type": "tree(auto)", + "support_style": "default", + "support_on_build_plate_only": "0", + "support_top_z_distance": "0.22", + "support_bottom_z_distance": "0.24", + "support_filament": "0", + "support_line_width": "0.42", + "support_interface_loop_pattern": "0", + "support_interface_filament": "0", + "support_interface_top_layers": "2", + "support_interface_bottom_layers": "2", + "support_interface_spacing": "0.5", + "support_expansion": "0", + "support_interface_speed": "80", + "support_base_pattern": "default", + "support_base_pattern_spacing": "2.5", + "support_speed": "150", + "support_threshold_angle": "30", + "support_object_xy_distance": "0.35", + "tree_support_branch_diameter": "2", + "tree_support_branch_angle": "45", + "tree_support_wall_count": "1", + "detect_thin_wall": "0", + "top_surface_pattern": "monotonicline", + "top_surface_line_width": "0.42", + "top_surface_acceleration": "5000", + "top_surface_speed": "200", + "top_shell_layers": "5", + "top_shell_thickness": "0.6", + "travel_acceleration": "12000", + "travel_speed": "500", + "enable_prime_tower": "1", + "wipe_tower_no_sparse_layers": "0", + "prime_tower_width": "35", + "xy_hole_compensation": "0", + "xy_contour_compensation": "0", + "gcode_label_objects": "0", + "default_jerk": "12", + "outer_wall_jerk": "8", + "inner_wall_jerk": "8", + "infill_jerk": "12", + "top_surface_jerk": "8", + "initial_layer_jerk": "8", + "travel_jerk": "12" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.14mm Optimal @Creality K2 Plus 0.2 nozzle.json b/resources/profiles/Creality/process/0.14mm Optimal @Creality K2 Plus 0.2 nozzle.json index 1525dd94f6..cb5884d099 100644 --- a/resources/profiles/Creality/process/0.14mm Optimal @Creality K2 Plus 0.2 nozzle.json +++ b/resources/profiles/Creality/process/0.14mm Optimal @Creality K2 Plus 0.2 nozzle.json @@ -54,6 +54,7 @@ "overhang_3_4_speed": "30", "overhang_4_4_speed": "10", "only_one_wall_top": "1", + "precise_outer_wall": "1", "inner_wall_line_width": "0.25", "inner_wall_speed": "150", "wall_loops": "4", diff --git a/resources/profiles/Creality/process/0.16mm Optimal @Creality Hi 0.4 nozzle.json b/resources/profiles/Creality/process/0.16mm Optimal @Creality Hi 0.4 nozzle.json new file mode 100644 index 0000000000..8b30e2b88b --- /dev/null +++ b/resources/profiles/Creality/process/0.16mm Optimal @Creality Hi 0.4 nozzle.json @@ -0,0 +1,119 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.16mm Optimal @Creality Hi", + "from": "system", + "inherits": "fdm_process_common_klipper", + "instantiation": "true", + "adaptive_layer_height": "0", + "reduce_crossing_wall": "0", + "max_travel_detour_distance": "0", + "bottom_surface_pattern": "monotonic", + "bottom_shell_layers": "3", + "bottom_shell_thickness": "0", + "bridge_flow": "1", + "bridge_speed": "50", + "internal_bridge_speed": "150%", + "brim_width": "5", + "brim_object_gap": "0.1", + "compatible_printers": [ + "Creality Hi 0.4 nozzle" + ], + "compatible_printers_condition": "", + "print_sequence": "by layer", + "default_acceleration": "12000", + "bridge_no_support": "0", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.15", + "outer_wall_line_width": "0.42", + "outer_wall_speed": "200", + "outer_wall_acceleration": "5000", + "inner_wall_acceleration": "5000", + "wall_infill_order": "inner wall/outer wall/infill", + "line_width": "0.42", + "infill_direction": "45", + "sparse_infill_density": "15%", + "sparse_infill_pattern": "crosshatch", + "internal_bridge_support_thickness": "0.8", + "initial_layer_acceleration": "500", + "initial_layer_line_width": "0.5", + "initial_layer_print_height": "0.16", + "initial_layer_speed": "60", + "gap_infill_speed": "300", + "infill_combination": "0", + "sparse_infill_line_width": "0.45", + "infill_wall_overlap": "15%", + "sparse_infill_speed": "500", + "interface_shells": "0", + "ironing_flow": "10%", + "ironing_spacing": "0.15", + "ironing_speed": "100", + "ironing_type": "no ironing", + "layer_height": "0.16", + "reduce_infill_retraction": "1", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "detect_overhang_wall": "1", + "overhang_1_4_speed": "60", + "overhang_2_4_speed": "30", + "overhang_3_4_speed": "10", + "overhang_4_4_speed": "10", + "only_one_wall_top": "1", + "precise_outer_wall": "1", + "inner_wall_line_width": "0.45", + "inner_wall_speed": "300", + "wall_loops": "2", + "print_settings_id": "", + "raft_layers": "0", + "seam_position": "aligned", + "seam_slope_conditional": "1", + "seam_slope_inner_walls": "1", + "seam_slope_entire_loop": "1", + "skirt_distance": "2", + "skirt_height": "1", + "skirt_loops": "0", + "minimum_sparse_infill_area": "15", + "internal_solid_infill_line_width": "0.42", + "internal_solid_infill_speed": "300", + "spiral_mode": "0", + "initial_layer_infill_speed": "105", + "standby_temperature_delta": "-5", + "enable_support": "0", + "resolution": "0.012", + "support_type": "tree(auto)", + "support_style": "default", + "support_on_build_plate_only": "0", + "support_top_z_distance": "0.2", + "support_bottom_z_distance": "0.2", + "support_filament": "0", + "support_line_width": "0.42", + "support_interface_loop_pattern": "0", + "support_interface_filament": "0", + "support_interface_top_layers": "2", + "support_interface_bottom_layers": "2", + "support_interface_spacing": "0.5", + "support_expansion": "0", + "support_interface_speed": "80", + "support_base_pattern": "default", + "support_base_pattern_spacing": "2.5", + "support_speed": "150", + "support_threshold_angle": "30", + "support_object_xy_distance": "0.35", + "tree_support_branch_diameter": "2", + "tree_support_branch_angle": "45", + "tree_support_wall_count": "1", + "detect_thin_wall": "0", + "top_surface_pattern": "monotonicline", + "top_surface_line_width": "0.42", + "top_surface_acceleration": "5000", + "top_surface_speed": "200", + "top_shell_layers": "3", + "top_shell_thickness": "0.6", + "travel_acceleration": "12000", + "travel_speed": "500", + "enable_prime_tower": "1", + "wipe_tower_no_sparse_layers": "0", + "prime_tower_width": "35", + "xy_hole_compensation": "0", + "xy_contour_compensation": "0", + "gcode_label_objects": "0" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.16mm Optimal @Creality K2 Plus 0.4 nozzle.json b/resources/profiles/Creality/process/0.16mm Optimal @Creality K2 Plus 0.4 nozzle.json index 981862606f..09af514094 100644 --- a/resources/profiles/Creality/process/0.16mm Optimal @Creality K2 Plus 0.4 nozzle.json +++ b/resources/profiles/Creality/process/0.16mm Optimal @Creality K2 Plus 0.4 nozzle.json @@ -54,6 +54,7 @@ "overhang_3_4_speed": "30", "overhang_4_4_speed": "10", "only_one_wall_top": "1", + "precise_outer_wall": "1", "inner_wall_line_width": "0.45", "inner_wall_speed": "300", "wall_loops": "2", diff --git a/resources/profiles/Creality/process/0.16mm Optimal @Creality Sermoon V1.json b/resources/profiles/Creality/process/0.16mm Optimal @Creality Sermoon V1.json index 60f390d1c1..4fbf1b286e 100644 --- a/resources/profiles/Creality/process/0.16mm Optimal @Creality Sermoon V1.json +++ b/resources/profiles/Creality/process/0.16mm Optimal @Creality Sermoon V1.json @@ -1,111 +1,112 @@ -{ - "accel_to_decel_enable": "1", - "accel_to_decel_factor": "65%", - "bottom_shell_thickness": "0.6", - "bridge_acceleration": "50%", - "bridge_speed": "120", - "brim_type": "no_brim", - "brim_width": "4", - "default_acceleration": "4000", - "default_jerk": "5", - "detect_thin_wall": "1", - "dont_filter_internal_bridges": "limited", - "elefant_foot_compensation": "0.3", - "elefant_foot_compensation_layers": "1", - "enable_arc_fitting": "0", - "enable_support": "1", - "exclude_object": "1", - "from": "User", - "gap_infill_speed": "195", - "gcode_comments": "1", - "infill_combination": "0", - "infill_wall_overlap": "30%", - "inherits": "fdm_process_creality_common", - "initial_layer_acceleration": "3000", - "initial_layer_infill_speed": "75", - "initial_layer_jerk": "5", - "initial_layer_line_width": "0.61", - "initial_layer_speed": "58", - "initial_layer_travel_speed": "150", - "inner_wall_acceleration": "6000", - "inner_wall_line_width": "0.61", - "inner_wall_speed": "195", - "internal_bridge_support_thickness": "0.8", - "internal_solid_infill_line_width": "0.32", - "internal_solid_infill_speed": "195", - "ironing_flow": "10%", - "ironing_spacing": "0.15", - "ironing_speed": "45", - "is_custom_defined": "0", - "layer_height": "0.16", - "line_width": "0.61", - "max_bridge_length": "20", - "max_travel_detour_distance": "200", - "min_bead_width": "80%", - "min_feature_size": "20%", - "minimum_sparse_infill_area": "8", - "name": "0.16mm Optimal @Creality Sermoon V1", - "only_one_wall_first_layer": "1", - "only_one_wall_top": "1", - "outer_wall_acceleration": "4000", - "outer_wall_jerk": "5", - "outer_wall_line_width": "0.61", - "outer_wall_speed": "195", - "overhang_1_4_speed": "60", - "overhang_2_4_speed": "40", - "overhang_3_4_speed": "30", - "overhang_4_4_speed": "10", - "precise_outer_wall": "1", - "reduce_crossing_wall": "1", - "reduce_infill_retraction": "1", - "print_settings_id": "", - "scarf_joint_flow_ratio": "0.95", - "seam_gap": "6%", - "seam_slope_min_length": "12", - "seam_slope_steps": "6", - "seam_slope_type": "external", - "skirt_loops": "0", - "slowdown_for_curled_perimeters": "1", - "sparse_infill_density": "4%", - "sparse_infill_line_width": "0.4", - "sparse_infill_pattern": "crosshatch", - "sparse_infill_speed": "195", - "support_base_pattern": "hollow", - "support_base_pattern_spacing": "7", - "support_bottom_z_distance": "0.7", - "support_critical_regions_only": "0", - "support_interface_pattern": "rectilinear_interlaced", - "support_interface_spacing": "2", - "support_interface_speed": "175", - "support_line_width": "0.56", - "support_object_xy_distance": "1.2", - "support_on_build_plate_only": "1", - "support_speed": "195", - "support_style": "tree_slim", - "support_threshold_angle": "30", - "support_top_z_distance": "0.28", - "support_type": "tree(auto)", - "top_shell_layers": "3", - "top_shell_thickness": "0.84", - "top_solid_infill_flow_ratio": "0.95", - "top_surface_acceleration": "5000", - "top_surface_jerk": "5", - "top_surface_line_width": "0.32", - "top_surface_speed": "195", - "travel_acceleration": "4000", - "travel_speed": "195", - "tree_support_branch_angle": "50", - "tree_support_branch_diameter": "2", - "tree_support_branch_distance": "10", - "tree_support_wall_count": "1", - "wall_loops": "2", - "tree_support_adaptive_layer_height": "0", - "version": "2.0.0.0", - "wall_infill_order": "infill/inner wall/outer wall", - "xy_hole_compensation": "0.05", - "xy_contour_compensation": "-0.05", - "independent_support_layer_height": "0", - "compatible_printers": [ - "Creality Sermoon V1 0.4 nozzle" - ] -} +{ + "accel_to_decel_enable": "1", + "accel_to_decel_factor": "65%", + "bottom_shell_thickness": "0.6", + "bridge_acceleration": "50%", + "bridge_speed": "120", + "brim_type": "no_brim", + "brim_width": "4", + "default_acceleration": "4000", + "default_jerk": "5", + "detect_thin_wall": "1", + "dont_filter_internal_bridges": "limited", + "elefant_foot_compensation": "0.3", + "elefant_foot_compensation_layers": "1", + "enable_arc_fitting": "0", + "enable_support": "1", + "exclude_object": "1", + "from": "User", + "gap_infill_speed": "195", + "gcode_comments": "1", + "infill_combination": "0", + "infill_wall_overlap": "30%", + "inherits": "fdm_process_creality_common", + "initial_layer_acceleration": "3000", + "initial_layer_infill_speed": "75", + "initial_layer_jerk": "5", + "initial_layer_line_width": "0.61", + "initial_layer_speed": "58", + "initial_layer_travel_speed": "150", + "inner_wall_acceleration": "6000", + "inner_wall_line_width": "0.61", + "inner_wall_speed": "195", + "internal_bridge_support_thickness": "0.8", + "internal_solid_infill_line_width": "0.32", + "internal_solid_infill_speed": "195", + "ironing_flow": "10%", + "ironing_spacing": "0.15", + "ironing_speed": "45", + "is_custom_defined": "0", + "layer_height": "0.16", + "line_width": "0.61", + "max_bridge_length": "20", + "max_travel_detour_distance": "200", + "min_bead_width": "80%", + "min_feature_size": "20%", + "minimum_sparse_infill_area": "8", + "name": "0.16mm Optimal @Creality Sermoon V1", + "instantiation": "true", + "only_one_wall_first_layer": "1", + "only_one_wall_top": "1", + "outer_wall_acceleration": "4000", + "outer_wall_jerk": "5", + "outer_wall_line_width": "0.61", + "outer_wall_speed": "195", + "overhang_1_4_speed": "60", + "overhang_2_4_speed": "40", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "10", + "precise_outer_wall": "1", + "reduce_crossing_wall": "1", + "reduce_infill_retraction": "1", + "print_settings_id": "", + "scarf_joint_flow_ratio": "0.95", + "seam_gap": "6%", + "seam_slope_min_length": "12", + "seam_slope_steps": "6", + "seam_slope_type": "external", + "skirt_loops": "0", + "slowdown_for_curled_perimeters": "1", + "sparse_infill_density": "4%", + "sparse_infill_line_width": "0.4", + "sparse_infill_pattern": "crosshatch", + "sparse_infill_speed": "195", + "support_base_pattern": "hollow", + "support_base_pattern_spacing": "7", + "support_bottom_z_distance": "0.7", + "support_critical_regions_only": "0", + "support_interface_pattern": "rectilinear_interlaced", + "support_interface_spacing": "2", + "support_interface_speed": "175", + "support_line_width": "0.56", + "support_object_xy_distance": "1.2", + "support_on_build_plate_only": "1", + "support_speed": "195", + "support_style": "tree_slim", + "support_threshold_angle": "30", + "support_top_z_distance": "0.28", + "support_type": "tree(auto)", + "top_shell_layers": "3", + "top_shell_thickness": "0.84", + "top_solid_infill_flow_ratio": "0.95", + "top_surface_acceleration": "5000", + "top_surface_jerk": "5", + "top_surface_line_width": "0.32", + "top_surface_speed": "195", + "travel_acceleration": "4000", + "travel_speed": "195", + "tree_support_branch_angle": "50", + "tree_support_branch_diameter": "2", + "tree_support_branch_distance": "10", + "tree_support_wall_count": "1", + "wall_loops": "2", + "tree_support_adaptive_layer_height": "0", + "version": "2.0.0.0", + "wall_infill_order": "infill/inner wall/outer wall", + "xy_hole_compensation": "0.05", + "xy_contour_compensation": "-0.05", + "independent_support_layer_height": "0", + "compatible_printers": [ + "Creality Sermoon V1 0.4 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.18mm Detail @Creality K2 Plus 0.6 nozzle.json b/resources/profiles/Creality/process/0.18mm Detail @Creality K2 Plus 0.6 nozzle.json index 4d42a50cba..21399d932d 100644 --- a/resources/profiles/Creality/process/0.18mm Detail @Creality K2 Plus 0.6 nozzle.json +++ b/resources/profiles/Creality/process/0.18mm Detail @Creality K2 Plus 0.6 nozzle.json @@ -54,6 +54,7 @@ "overhang_3_4_speed": "20", "overhang_4_4_speed": "10", "only_one_wall_top": "1", + "precise_outer_wall": "1", "inner_wall_line_width": "0.65", "inner_wall_speed": "150", "wall_loops": "2", diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality Hi 0.4 nozzle.json b/resources/profiles/Creality/process/0.20mm Standard @Creality Hi 0.4 nozzle.json new file mode 100644 index 0000000000..023cf2eeae --- /dev/null +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality Hi 0.4 nozzle.json @@ -0,0 +1,126 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.20mm Standard @Creality Hi", + "from": "system", + "inherits": "fdm_process_common_klipper", + "instantiation": "true", + "adaptive_layer_height": "0", + "reduce_crossing_wall": "0", + "max_travel_detour_distance": "0", + "bottom_surface_pattern": "monotonic", + "bottom_shell_layers": "3", + "bottom_shell_thickness": "0", + "bridge_flow": "1", + "bridge_speed": "50", + "internal_bridge_speed": "150%", + "brim_width": "5", + "brim_object_gap": "0.1", + "compatible_printers": [ + "Creality Hi 0.4 nozzle" + ], + "compatible_printers_condition": "", + "print_sequence": "by layer", + "default_acceleration": "12000", + "bridge_no_support": "0", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.15", + "outer_wall_line_width": "0.42", + "outer_wall_speed": "230", + "outer_wall_acceleration": "5000", + "inner_wall_acceleration": "5000", + "wall_infill_order": "inner wall/outer wall/infill", + "line_width": "0.42", + "infill_direction": "45", + "sparse_infill_density": "15%", + "sparse_infill_pattern": "crosshatch", + "internal_bridge_support_thickness": "0.8", + "initial_layer_acceleration": "2000", + "initial_layer_line_width": "0.5", + "initial_layer_print_height": "0.2", + "initial_layer_speed": "60", + "gap_infill_speed": "250", + "infill_combination": "0", + "sparse_infill_line_width": "0.45", + "infill_wall_overlap": "30%", + "sparse_infill_speed": "270", + "interface_shells": "0", + "ironing_flow": "10%", + "ironing_spacing": "0.15", + "ironing_speed": "100", + "ironing_type": "no ironing", + "layer_height": "0.2", + "reduce_infill_retraction": "1", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "detect_overhang_wall": "1", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "50", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "10", + "only_one_wall_top": "1", + "precise_outer_wall": "1", + "inner_wall_line_width": "0.45", + "inner_wall_speed": "300", + "wall_loops": "2", + "print_settings_id": "", + "raft_layers": "0", + "seam_position": "aligned", + "seam_slope_conditional": "1", + "seam_slope_inner_walls": "1", + "seam_slope_entire_loop": "1", + "skirt_distance": "2", + "skirt_height": "1", + "skirt_loops": "0", + "minimum_sparse_infill_area": "15", + "internal_solid_infill_line_width": "0.42", + "internal_solid_infill_speed": "250", + "spiral_mode": "0", + "initial_layer_infill_speed": "105", + "standby_temperature_delta": "-5", + "enable_support": "0", + "resolution": "0.012", + "support_type": "tree(auto)", + "support_style": "default", + "support_on_build_plate_only": "0", + "support_top_z_distance": "0.2", + "support_bottom_z_distance": "0.2", + "support_filament": "0", + "support_line_width": "0.4", + "support_interface_loop_pattern": "0", + "support_interface_filament": "0", + "support_interface_top_layers": "2", + "support_interface_bottom_layers": "2", + "support_interface_spacing": "0.5", + "support_expansion": "0", + "support_interface_speed": "80", + "support_base_pattern": "default", + "support_base_pattern_spacing": "2.5", + "support_speed": "150", + "support_threshold_angle": "30", + "support_object_xy_distance": "0.35", + "tree_support_branch_diameter": "2", + "tree_support_branch_angle": "45", + "tree_support_wall_count": "1", + "detect_thin_wall": "0", + "top_surface_pattern": "monotonicline", + "top_surface_line_width": "0.42", + "top_surface_acceleration": "5000", + "top_surface_speed": "200", + "top_shell_layers": "5", + "top_shell_thickness": "0.8", + "travel_acceleration": "12000", + "travel_speed": "500", + "enable_prime_tower": "1", + "wipe_tower_no_sparse_layers": "0", + "prime_tower_width": "35", + "xy_hole_compensation": "0", + "xy_contour_compensation": "0", + "gcode_label_objects": "0", + "default_jerk": "12", + "outer_wall_jerk": "8", + "inner_wall_jerk": "8", + "infill_jerk": "12", + "top_surface_jerk": "8", + "initial_layer_jerk": "8", + "travel_jerk": "12" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality K2 Plus 0.4 nozzle.json b/resources/profiles/Creality/process/0.20mm Standard @Creality K2 Plus 0.4 nozzle.json index b90fab60f8..d20935011d 100644 --- a/resources/profiles/Creality/process/0.20mm Standard @Creality K2 Plus 0.4 nozzle.json +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality K2 Plus 0.4 nozzle.json @@ -54,6 +54,7 @@ "overhang_3_4_speed": "30", "overhang_4_4_speed": "10", "only_one_wall_top": "1", + "precise_outer_wall": "1", "inner_wall_line_width": "0.45", "inner_wall_speed": "300", "wall_loops": "2", diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality Sermoon V1.json b/resources/profiles/Creality/process/0.20mm Standard @Creality Sermoon V1.json index 6fe51aab77..9cb78e50fd 100644 --- a/resources/profiles/Creality/process/0.20mm Standard @Creality Sermoon V1.json +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality Sermoon V1.json @@ -1,111 +1,112 @@ -{ - "accel_to_decel_enable": "1", - "accel_to_decel_factor": "65%", - "bottom_shell_thickness": "0.6", - "bridge_acceleration": "50%", - "bridge_speed": "120", - "brim_type": "no_brim", - "brim_width": "4", - "default_acceleration": "6000", - "default_jerk": "5", - "detect_thin_wall": "1", - "dont_filter_internal_bridges": "limited", - "elefant_foot_compensation": "0.3", - "elefant_foot_compensation_layers": "1", - "enable_arc_fitting": "0", - "enable_support": "1", - "exclude_object": "1", - "from": "User", - "gap_infill_speed": "195", - "gcode_comments": "1", - "infill_combination": "0", - "infill_wall_overlap": "30%", - "inherits": "fdm_process_creality_common", - "initial_layer_acceleration": "3000", - "initial_layer_infill_speed": "75", - "initial_layer_jerk": "5", - "initial_layer_line_width": "0.61", - "initial_layer_speed": "58", - "initial_layer_travel_speed": "150", - "inner_wall_acceleration": "6000", - "inner_wall_line_width": "0.61", - "inner_wall_speed": "195", - "internal_bridge_support_thickness": "0.8", - "internal_solid_infill_line_width": "0.32", - "internal_solid_infill_speed": "195", - "ironing_flow": "10%", - "ironing_spacing": "0.15", - "ironing_speed": "45", - "is_custom_defined": "0", - "layer_height": "0.20", - "line_width": "0.61", - "max_bridge_length": "20", - "max_travel_detour_distance": "200", - "min_bead_width": "80%", - "min_feature_size": "20%", - "minimum_sparse_infill_area": "8", - "name": "0.20mm Standard @Creality Sermoon V1", - "only_one_wall_first_layer": "1", - "only_one_wall_top": "1", - "outer_wall_acceleration": "4000", - "outer_wall_jerk": "5", - "outer_wall_line_width": "0.61", - "outer_wall_speed": "150", - "overhang_1_4_speed": "60", - "overhang_2_4_speed": "40", - "overhang_3_4_speed": "30", - "overhang_4_4_speed": "10", - "precise_outer_wall": "1", - "reduce_crossing_wall": "1", - "reduce_infill_retraction": "1", - "print_settings_id": "", - "scarf_joint_flow_ratio": "0.95", - "seam_gap": "6%", - "seam_slope_min_length": "12", - "seam_slope_steps": "6", - "seam_slope_type": "external", - "skirt_loops": "0", - "slowdown_for_curled_perimeters": "1", - "sparse_infill_density": "4%", - "sparse_infill_line_width": "0.4", - "sparse_infill_pattern": "crosshatch", - "sparse_infill_speed": "195", - "support_base_pattern": "hollow", - "support_base_pattern_spacing": "7", - "support_bottom_z_distance": "0.7", - "support_critical_regions_only": "0", - "support_interface_pattern": "rectilinear_interlaced", - "support_interface_spacing": "2", - "support_interface_speed": "175", - "support_line_width": "0.56", - "support_object_xy_distance": "1.2", - "support_on_build_plate_only": "1", - "support_speed": "195", - "support_style": "tree_slim", - "support_threshold_angle": "30", - "support_top_z_distance": "0.28", - "support_type": "tree(auto)", - "top_shell_layers": "3", - "top_shell_thickness": "0.80", - "top_solid_infill_flow_ratio": "0.95", - "top_surface_acceleration": "6000", - "top_surface_jerk": "5", - "top_surface_line_width": "0.32", - "top_surface_speed": "195", - "travel_acceleration": "6000", - "travel_speed": "195", - "tree_support_branch_angle": "50", - "tree_support_branch_diameter": "2", - "tree_support_branch_distance": "10", - "tree_support_wall_count": "1", - "wall_loops": "2", - "tree_support_adaptive_layer_height": "0", - "version": "2.0.0.0", - "wall_infill_order": "infill/inner wall/outer wall", - "xy_hole_compensation": "0.05", - "xy_contour_compensation": "-0.05", - "independent_support_layer_height": "0", - "compatible_printers": [ - "Creality Sermoon V1 0.4 nozzle" - ] -} +{ + "accel_to_decel_enable": "1", + "accel_to_decel_factor": "65%", + "bottom_shell_thickness": "0.6", + "bridge_acceleration": "50%", + "bridge_speed": "120", + "brim_type": "no_brim", + "brim_width": "4", + "default_acceleration": "6000", + "default_jerk": "5", + "detect_thin_wall": "1", + "dont_filter_internal_bridges": "limited", + "elefant_foot_compensation": "0.3", + "elefant_foot_compensation_layers": "1", + "enable_arc_fitting": "0", + "enable_support": "1", + "exclude_object": "1", + "from": "User", + "gap_infill_speed": "195", + "gcode_comments": "1", + "infill_combination": "0", + "infill_wall_overlap": "30%", + "inherits": "fdm_process_creality_common", + "initial_layer_acceleration": "3000", + "initial_layer_infill_speed": "75", + "initial_layer_jerk": "5", + "initial_layer_line_width": "0.61", + "initial_layer_speed": "58", + "initial_layer_travel_speed": "150", + "inner_wall_acceleration": "6000", + "inner_wall_line_width": "0.61", + "inner_wall_speed": "195", + "internal_bridge_support_thickness": "0.8", + "internal_solid_infill_line_width": "0.32", + "internal_solid_infill_speed": "195", + "ironing_flow": "10%", + "ironing_spacing": "0.15", + "ironing_speed": "45", + "is_custom_defined": "0", + "layer_height": "0.20", + "line_width": "0.61", + "max_bridge_length": "20", + "max_travel_detour_distance": "200", + "min_bead_width": "80%", + "min_feature_size": "20%", + "minimum_sparse_infill_area": "8", + "name": "0.20mm Standard @Creality Sermoon V1", + "instantiation": "true", + "only_one_wall_first_layer": "1", + "only_one_wall_top": "1", + "outer_wall_acceleration": "4000", + "outer_wall_jerk": "5", + "outer_wall_line_width": "0.61", + "outer_wall_speed": "150", + "overhang_1_4_speed": "60", + "overhang_2_4_speed": "40", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "10", + "precise_outer_wall": "1", + "reduce_crossing_wall": "1", + "reduce_infill_retraction": "1", + "print_settings_id": "", + "scarf_joint_flow_ratio": "0.95", + "seam_gap": "6%", + "seam_slope_min_length": "12", + "seam_slope_steps": "6", + "seam_slope_type": "external", + "skirt_loops": "0", + "slowdown_for_curled_perimeters": "1", + "sparse_infill_density": "4%", + "sparse_infill_line_width": "0.4", + "sparse_infill_pattern": "crosshatch", + "sparse_infill_speed": "195", + "support_base_pattern": "hollow", + "support_base_pattern_spacing": "7", + "support_bottom_z_distance": "0.7", + "support_critical_regions_only": "0", + "support_interface_pattern": "rectilinear_interlaced", + "support_interface_spacing": "2", + "support_interface_speed": "175", + "support_line_width": "0.56", + "support_object_xy_distance": "1.2", + "support_on_build_plate_only": "1", + "support_speed": "195", + "support_style": "tree_slim", + "support_threshold_angle": "30", + "support_top_z_distance": "0.28", + "support_type": "tree(auto)", + "top_shell_layers": "3", + "top_shell_thickness": "0.80", + "top_solid_infill_flow_ratio": "0.95", + "top_surface_acceleration": "6000", + "top_surface_jerk": "5", + "top_surface_line_width": "0.32", + "top_surface_speed": "195", + "travel_acceleration": "6000", + "travel_speed": "195", + "tree_support_branch_angle": "50", + "tree_support_branch_diameter": "2", + "tree_support_branch_distance": "10", + "tree_support_wall_count": "1", + "wall_loops": "2", + "tree_support_adaptive_layer_height": "0", + "version": "2.0.0.0", + "wall_infill_order": "infill/inner wall/outer wall", + "xy_hole_compensation": "0.05", + "xy_contour_compensation": "-0.05", + "independent_support_layer_height": "0", + "compatible_printers": [ + "Creality Sermoon V1 0.4 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.24mm Detail @Creality K2 Plus 0.8 nozzle.json b/resources/profiles/Creality/process/0.24mm Detail @Creality K2 Plus 0.8 nozzle.json index fc3ecfd103..c953b04a2f 100644 --- a/resources/profiles/Creality/process/0.24mm Detail @Creality K2 Plus 0.8 nozzle.json +++ b/resources/profiles/Creality/process/0.24mm Detail @Creality K2 Plus 0.8 nozzle.json @@ -54,6 +54,7 @@ "overhang_3_4_speed": "20", "overhang_4_4_speed": "10", "only_one_wall_top": "1", + "precise_outer_wall": "1", "inner_wall_line_width": "0.82", "inner_wall_speed": "150", "wall_loops": "2", diff --git a/resources/profiles/Creality/process/0.24mm Draft @Creality Hi 0.4 nozzle.json b/resources/profiles/Creality/process/0.24mm Draft @Creality Hi 0.4 nozzle.json new file mode 100644 index 0000000000..0ae0cd860d --- /dev/null +++ b/resources/profiles/Creality/process/0.24mm Draft @Creality Hi 0.4 nozzle.json @@ -0,0 +1,126 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.24mm Draft @Creality Hi", + "from": "system", + "inherits": "fdm_process_common_klipper", + "instantiation": "true", + "adaptive_layer_height": "0", + "reduce_crossing_wall": "0", + "max_travel_detour_distance": "0", + "bottom_surface_pattern": "monotonic", + "bottom_shell_layers": "3", + "bottom_shell_thickness": "0", + "bridge_flow": "1", + "bridge_speed": "50", + "internal_bridge_speed": "150%", + "brim_width": "5", + "brim_object_gap": "0.1", + "compatible_printers": [ + "Creality Hi 0.4 nozzle" + ], + "compatible_printers_condition": "", + "print_sequence": "by layer", + "default_acceleration": "12000", + "bridge_no_support": "0", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.15", + "outer_wall_line_width": "0.42", + "outer_wall_speed": "230", + "outer_wall_acceleration": "5000", + "inner_wall_acceleration": "5000", + "wall_infill_order": "inner wall/outer wall/infill", + "line_width": "0.42", + "infill_direction": "45", + "sparse_infill_density": "15%", + "sparse_infill_pattern": "crosshatch", + "internal_bridge_support_thickness": "0.8", + "initial_layer_acceleration": "500", + "initial_layer_line_width": "0.5", + "initial_layer_print_height": "0.2", + "initial_layer_speed": "60", + "gap_infill_speed": "250", + "infill_combination": "0", + "sparse_infill_line_width": "0.45", + "infill_wall_overlap": "30%", + "sparse_infill_speed": "270", + "interface_shells": "0", + "ironing_flow": "10%", + "ironing_spacing": "0.15", + "ironing_speed": "100", + "ironing_type": "no ironing", + "layer_height": "0.24", + "reduce_infill_retraction": "1", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "detect_overhang_wall": "1", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "50", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "10", + "only_one_wall_top": "1", + "precise_outer_wall": "1", + "inner_wall_line_width": "0.45", + "inner_wall_speed": "300", + "wall_loops": "2", + "print_settings_id": "", + "raft_layers": "0", + "seam_position": "aligned", + "seam_slope_conditional": "1", + "seam_slope_inner_walls": "1", + "seam_slope_entire_loop": "1", + "skirt_distance": "2", + "skirt_height": "1", + "skirt_loops": "0", + "minimum_sparse_infill_area": "15", + "internal_solid_infill_line_width": "0.42", + "internal_solid_infill_speed": "250", + "spiral_mode": "0", + "initial_layer_infill_speed": "105", + "standby_temperature_delta": "-5", + "enable_support": "0", + "resolution": "0.012", + "support_type": "tree(auto)", + "support_style": "default", + "support_on_build_plate_only": "0", + "support_top_z_distance": "0.2", + "support_bottom_z_distance": "0.2", + "support_filament": "0", + "support_line_width": "0.42", + "support_interface_loop_pattern": "0", + "support_interface_filament": "0", + "support_interface_top_layers": "2", + "support_interface_bottom_layers": "2", + "support_interface_spacing": "0.5", + "support_expansion": "0", + "support_interface_speed": "80", + "support_base_pattern": "default", + "support_base_pattern_spacing": "2.5", + "support_speed": "150", + "support_threshold_angle": "30", + "support_object_xy_distance": "0.35", + "tree_support_branch_diameter": "2", + "tree_support_branch_angle": "45", + "tree_support_wall_count": "1", + "detect_thin_wall": "0", + "top_surface_pattern": "monotonicline", + "top_surface_line_width": "0.42", + "top_surface_acceleration": "5000", + "top_surface_speed": "200", + "top_shell_layers": "3", + "top_shell_thickness": "0.6", + "travel_acceleration": "12000", + "travel_speed": "500", + "enable_prime_tower": "1", + "wipe_tower_no_sparse_layers": "0", + "prime_tower_width": "35", + "xy_hole_compensation": "0", + "xy_contour_compensation": "0", + "gcode_label_objects": "0", + "default_jerk": "12", + "outer_wall_jerk": "8", + "inner_wall_jerk": "8", + "infill_jerk": "12", + "top_surface_jerk": "8", + "initial_layer_jerk": "8", + "travel_jerk": "12" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.24mm Draft @Creality K2 Plus 0.4 nozzle.json b/resources/profiles/Creality/process/0.24mm Draft @Creality K2 Plus 0.4 nozzle.json index 55e401882c..3220276e29 100644 --- a/resources/profiles/Creality/process/0.24mm Draft @Creality K2 Plus 0.4 nozzle.json +++ b/resources/profiles/Creality/process/0.24mm Draft @Creality K2 Plus 0.4 nozzle.json @@ -54,6 +54,7 @@ "overhang_3_4_speed": "30", "overhang_4_4_speed": "10", "only_one_wall_top": "1", + "precise_outer_wall": "1", "inner_wall_line_width": "0.45", "inner_wall_speed": "300", "wall_loops": "2", diff --git a/resources/profiles/Creality/process/0.24mm Optimal @Creality Hi 0.6 nozzle.json b/resources/profiles/Creality/process/0.24mm Optimal @Creality Hi 0.6 nozzle.json new file mode 100644 index 0000000000..31adad81ab --- /dev/null +++ b/resources/profiles/Creality/process/0.24mm Optimal @Creality Hi 0.6 nozzle.json @@ -0,0 +1,125 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.24mm Optimal @Creality Hi", + "from": "system", + "inherits": "fdm_process_common_klipper", + "instantiation": "true", + "adaptive_layer_height": "0", + "reduce_crossing_wall": "0", + "max_travel_detour_distance": "0", + "bottom_surface_pattern": "monotonic", + "bottom_shell_layers": "3", + "bottom_shell_thickness": "0", + "bridge_flow": "1", + "bridge_speed": "30", + "brim_width": "5", + "brim_object_gap": "0.1", + "compatible_printers": [ + "Creality Hi 0.6 nozzle" + ], + "compatible_printers_condition": "", + "print_sequence": "by layer", + "default_acceleration": "12000", + "bridge_no_support": "0", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.15", + "outer_wall_line_width": "0.62", + "outer_wall_speed": "120", + "outer_wall_acceleration": "5000", + "inner_wall_acceleration": "5000", + "wall_infill_order": "inner wall/outer wall/infill", + "line_width": "0.62", + "infill_direction": "45", + "sparse_infill_density": "15%", + "sparse_infill_pattern": "crosshatch", + "internal_bridge_support_thickness": "0.8", + "initial_layer_acceleration": "500", + "initial_layer_line_width": "0.5", + "initial_layer_print_height": "0.24", + "initial_layer_speed": "50", + "gap_infill_speed": "50", + "infill_combination": "0", + "sparse_infill_line_width": "0.65", + "infill_wall_overlap": "15%", + "sparse_infill_speed": "150", + "interface_shells": "0", + "ironing_flow": "10%", + "ironing_spacing": "0.15", + "ironing_speed": "30", + "ironing_type": "no ironing", + "layer_height": "0.24", + "reduce_infill_retraction": "1", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "detect_overhang_wall": "1", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "50", + "overhang_3_4_speed": "15", + "overhang_4_4_speed": "10", + "only_one_wall_top": "1", + "precise_outer_wall": "1", + "inner_wall_line_width": "0.65", + "inner_wall_speed": "150", + "wall_loops": "2", + "print_settings_id": "", + "raft_layers": "0", + "seam_position": "aligned", + "seam_slope_conditional": "1", + "seam_slope_inner_walls": "1", + "seam_slope_entire_loop": "1", + "skirt_distance": "2", + "skirt_height": "1", + "skirt_loops": "0", + "minimum_sparse_infill_area": "15", + "internal_solid_infill_line_width": "0.62", + "internal_solid_infill_speed": "150", + "spiral_mode": "0", + "initial_layer_infill_speed": "105", + "standby_temperature_delta": "-5", + "enable_support": "0", + "resolution": "0.012", + "support_type": "normal(auto)", + "support_style": "default", + "support_on_build_plate_only": "0", + "support_top_z_distance": "0.2", + "support_bottom_z_distance": "0.2", + "support_filament": "0", + "support_line_width": "0.62", + "support_interface_loop_pattern": "0", + "support_interface_filament": "0", + "support_interface_top_layers": "2", + "support_interface_bottom_layers": "2", + "support_interface_spacing": "0.5", + "support_expansion": "0", + "support_interface_speed": "80", + "support_base_pattern": "default", + "support_base_pattern_spacing": "2.5", + "support_speed": "150", + "support_threshold_angle": "30", + "support_object_xy_distance": "0.35", + "tree_support_branch_diameter": "2", + "tree_support_branch_angle": "45", + "tree_support_wall_count": "1", + "detect_thin_wall": "0", + "top_surface_pattern": "monotonicline", + "top_surface_line_width": "0.62", + "top_surface_acceleration": "5000", + "top_surface_speed": "150", + "top_shell_layers": "3", + "top_shell_thickness": "0.6", + "travel_acceleration": "12000", + "travel_speed": "500", + "enable_prime_tower": "0", + "wipe_tower_no_sparse_layers": "0", + "prime_tower_width": "60", + "xy_hole_compensation": "0", + "xy_contour_compensation": "0", + "gcode_label_objects": "0", + "default_jerk": "12", + "outer_wall_jerk": "8", + "inner_wall_jerk": "8", + "infill_jerk": "12", + "top_surface_jerk": "8", + "initial_layer_jerk": "8", + "travel_jerk": "12" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.24mm Optimal @Creality K2 Plus 0.6 nozzle.json b/resources/profiles/Creality/process/0.24mm Optimal @Creality K2 Plus 0.6 nozzle.json index c15220e405..274783173b 100644 --- a/resources/profiles/Creality/process/0.24mm Optimal @Creality K2 Plus 0.6 nozzle.json +++ b/resources/profiles/Creality/process/0.24mm Optimal @Creality K2 Plus 0.6 nozzle.json @@ -54,6 +54,7 @@ "overhang_3_4_speed": "20", "overhang_4_4_speed": "10", "only_one_wall_top": "1", + "precise_outer_wall": "1", "inner_wall_line_width": "0.65", "inner_wall_speed": "150", "wall_loops": "2", diff --git a/resources/profiles/Creality/process/0.28mm Standard @Creality Sermoon V1.json b/resources/profiles/Creality/process/0.28mm Standard @Creality Sermoon V1.json index fc2608a5ff..ee45c3341f 100644 --- a/resources/profiles/Creality/process/0.28mm Standard @Creality Sermoon V1.json +++ b/resources/profiles/Creality/process/0.28mm Standard @Creality Sermoon V1.json @@ -1,111 +1,112 @@ -{ - "accel_to_decel_enable": "1", - "accel_to_decel_factor": "65%", - "bottom_shell_thickness": "0.6", - "bridge_acceleration": "50%", - "bridge_speed": "120", - "brim_type": "no_brim", - "brim_width": "4", - "default_acceleration": "6000", - "default_jerk": "5", - "detect_thin_wall": "1", - "dont_filter_internal_bridges": "limited", - "elefant_foot_compensation": "0.3", - "elefant_foot_compensation_layers": "1", - "enable_arc_fitting": "0", - "enable_support": "1", - "exclude_object": "1", - "from": "User", - "gap_infill_speed": "195", - "gcode_comments": "1", - "infill_combination": "0", - "infill_wall_overlap": "30%", - "inherits": "fdm_process_creality_common", - "initial_layer_acceleration": "3000", - "initial_layer_infill_speed": "75", - "initial_layer_jerk": "5", - "initial_layer_line_width": "0.61", - "initial_layer_speed": "58", - "initial_layer_travel_speed": "150", - "inner_wall_acceleration": "6000", - "inner_wall_line_width": "0.61", - "inner_wall_speed": "195", - "internal_bridge_support_thickness": "0.8", - "internal_solid_infill_line_width": "0.32", - "internal_solid_infill_speed": "195", - "ironing_flow": "10%", - "ironing_spacing": "0.15", - "ironing_speed": "45", - "is_custom_defined": "0", - "layer_height": "0.28", - "line_width": "0.61", - "max_bridge_length": "20", - "max_travel_detour_distance": "200", - "min_bead_width": "80%", - "min_feature_size": "20%", - "minimum_sparse_infill_area": "8", - "name": "0.28mm Standard @Creality Sermoon V1", - "only_one_wall_first_layer": "1", - "only_one_wall_top": "1", - "outer_wall_acceleration": "4000", - "outer_wall_jerk": "5", - "outer_wall_line_width": "0.61", - "outer_wall_speed": "195", - "overhang_1_4_speed": "60", - "overhang_2_4_speed": "40", - "overhang_3_4_speed": "30", - "overhang_4_4_speed": "10", - "precise_outer_wall": "1", - "reduce_crossing_wall": "1", - "reduce_infill_retraction": "1", - "print_settings_id": "", - "scarf_joint_flow_ratio": "0.95", - "seam_gap": "6%", - "seam_slope_min_length": "12", - "seam_slope_steps": "6", - "seam_slope_type": "external", - "skirt_loops": "0", - "slowdown_for_curled_perimeters": "1", - "sparse_infill_density": "4%", - "sparse_infill_line_width": "0.4", - "sparse_infill_pattern": "crosshatch", - "sparse_infill_speed": "195", - "support_base_pattern": "hollow", - "support_base_pattern_spacing": "7", - "support_bottom_z_distance": "0.7", - "support_critical_regions_only": "0", - "support_interface_pattern": "rectilinear_interlaced", - "support_interface_spacing": "2", - "support_interface_speed": "175", - "support_line_width": "0.56", - "support_object_xy_distance": "1.2", - "support_on_build_plate_only": "1", - "support_speed": "195", - "support_style": "tree_slim", - "support_threshold_angle": "30", - "support_top_z_distance": "0.28", - "support_type": "tree(auto)", - "top_shell_layers": "3", - "top_shell_thickness": "0.84", - "top_solid_infill_flow_ratio": "0.95", - "top_surface_acceleration": "6000", - "top_surface_jerk": "5", - "top_surface_line_width": "0.32", - "top_surface_speed": "195", - "travel_acceleration": "6000", - "travel_speed": "195", - "tree_support_branch_angle": "50", - "tree_support_branch_diameter": "2", - "tree_support_branch_distance": "10", - "tree_support_wall_count": "1", - "wall_loops": "2", - "tree_support_adaptive_layer_height": "0", - "version": "2.0.0.0", - "wall_infill_order": "infill/inner wall/outer wall", - "xy_hole_compensation": "0.05", - "xy_contour_compensation": "-0.05", - "independent_support_layer_height": "0", - "compatible_printers": [ - "Creality Sermoon V1 0.4 nozzle" - ] -} +{ + "accel_to_decel_enable": "1", + "accel_to_decel_factor": "65%", + "bottom_shell_thickness": "0.6", + "bridge_acceleration": "50%", + "bridge_speed": "120", + "brim_type": "no_brim", + "brim_width": "4", + "default_acceleration": "6000", + "default_jerk": "5", + "detect_thin_wall": "1", + "dont_filter_internal_bridges": "limited", + "elefant_foot_compensation": "0.3", + "elefant_foot_compensation_layers": "1", + "enable_arc_fitting": "0", + "enable_support": "1", + "exclude_object": "1", + "from": "User", + "gap_infill_speed": "195", + "gcode_comments": "1", + "infill_combination": "0", + "infill_wall_overlap": "30%", + "inherits": "fdm_process_creality_common", + "initial_layer_acceleration": "3000", + "initial_layer_infill_speed": "75", + "initial_layer_jerk": "5", + "initial_layer_line_width": "0.61", + "initial_layer_speed": "58", + "initial_layer_travel_speed": "150", + "inner_wall_acceleration": "6000", + "inner_wall_line_width": "0.61", + "inner_wall_speed": "195", + "internal_bridge_support_thickness": "0.8", + "internal_solid_infill_line_width": "0.32", + "internal_solid_infill_speed": "195", + "ironing_flow": "10%", + "ironing_spacing": "0.15", + "ironing_speed": "45", + "is_custom_defined": "0", + "layer_height": "0.28", + "line_width": "0.61", + "max_bridge_length": "20", + "max_travel_detour_distance": "200", + "min_bead_width": "80%", + "min_feature_size": "20%", + "minimum_sparse_infill_area": "8", + "name": "0.28mm Standard @Creality Sermoon V1", + "instantiation": "true", + "only_one_wall_first_layer": "1", + "only_one_wall_top": "1", + "outer_wall_acceleration": "4000", + "outer_wall_jerk": "5", + "outer_wall_line_width": "0.61", + "outer_wall_speed": "195", + "overhang_1_4_speed": "60", + "overhang_2_4_speed": "40", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "10", + "precise_outer_wall": "1", + "reduce_crossing_wall": "1", + "reduce_infill_retraction": "1", + "print_settings_id": "", + "scarf_joint_flow_ratio": "0.95", + "seam_gap": "6%", + "seam_slope_min_length": "12", + "seam_slope_steps": "6", + "seam_slope_type": "external", + "skirt_loops": "0", + "slowdown_for_curled_perimeters": "1", + "sparse_infill_density": "4%", + "sparse_infill_line_width": "0.4", + "sparse_infill_pattern": "crosshatch", + "sparse_infill_speed": "195", + "support_base_pattern": "hollow", + "support_base_pattern_spacing": "7", + "support_bottom_z_distance": "0.7", + "support_critical_regions_only": "0", + "support_interface_pattern": "rectilinear_interlaced", + "support_interface_spacing": "2", + "support_interface_speed": "175", + "support_line_width": "0.56", + "support_object_xy_distance": "1.2", + "support_on_build_plate_only": "1", + "support_speed": "195", + "support_style": "tree_slim", + "support_threshold_angle": "30", + "support_top_z_distance": "0.28", + "support_type": "tree(auto)", + "top_shell_layers": "3", + "top_shell_thickness": "0.84", + "top_solid_infill_flow_ratio": "0.95", + "top_surface_acceleration": "6000", + "top_surface_jerk": "5", + "top_surface_line_width": "0.32", + "top_surface_speed": "195", + "travel_acceleration": "6000", + "travel_speed": "195", + "tree_support_branch_angle": "50", + "tree_support_branch_diameter": "2", + "tree_support_branch_distance": "10", + "tree_support_wall_count": "1", + "wall_loops": "2", + "tree_support_adaptive_layer_height": "0", + "version": "2.0.0.0", + "wall_infill_order": "infill/inner wall/outer wall", + "xy_hole_compensation": "0.05", + "xy_contour_compensation": "-0.05", + "independent_support_layer_height": "0", + "compatible_printers": [ + "Creality Sermoon V1 0.4 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.28mm SuperDraft @Creality K2 Plus 0.4 nozzle.json b/resources/profiles/Creality/process/0.28mm SuperDraft @Creality K2 Plus 0.4 nozzle.json index 9a2f65b23c..c93d65bcc9 100644 --- a/resources/profiles/Creality/process/0.28mm SuperDraft @Creality K2 Plus 0.4 nozzle.json +++ b/resources/profiles/Creality/process/0.28mm SuperDraft @Creality K2 Plus 0.4 nozzle.json @@ -54,6 +54,7 @@ "overhang_3_4_speed": "30", "overhang_4_4_speed": "10", "only_one_wall_top": "1", + "precise_outer_wall": "1", "inner_wall_line_width": "0.45", "inner_wall_speed": "200", "wall_loops": "2", diff --git a/resources/profiles/Creality/process/0.30mm Standard @Creality Hi 0.6 nozzle.json b/resources/profiles/Creality/process/0.30mm Standard @Creality Hi 0.6 nozzle.json new file mode 100644 index 0000000000..b960981a53 --- /dev/null +++ b/resources/profiles/Creality/process/0.30mm Standard @Creality Hi 0.6 nozzle.json @@ -0,0 +1,125 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.30mm Standard @Creality Hi", + "from": "system", + "inherits": "fdm_process_common_klipper", + "instantiation": "true", + "adaptive_layer_height": "0", + "reduce_crossing_wall": "0", + "max_travel_detour_distance": "0", + "bottom_surface_pattern": "monotonic", + "bottom_shell_layers": "3", + "bottom_shell_thickness": "0", + "bridge_flow": "1", + "bridge_speed": "30", + "brim_width": "5", + "brim_object_gap": "0.1", + "compatible_printers": [ + "Creality Hi 0.6 nozzle" + ], + "compatible_printers_condition": "", + "print_sequence": "by layer", + "default_acceleration": "12000", + "bridge_no_support": "0", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.15", + "outer_wall_line_width": "0.62", + "outer_wall_speed": "120", + "outer_wall_acceleration": "5000", + "inner_wall_acceleration": "5000", + "wall_infill_order": "inner wall/outer wall/infill", + "line_width": "0.62", + "infill_direction": "45", + "sparse_infill_density": "15%", + "sparse_infill_pattern": "crosshatch", + "internal_bridge_support_thickness": "0.8", + "initial_layer_acceleration": "500", + "initial_layer_line_width": "0.5", + "initial_layer_print_height": "0.3", + "initial_layer_speed": "50", + "gap_infill_speed": "50", + "infill_combination": "0", + "sparse_infill_line_width": "0.65", + "infill_wall_overlap": "15%", + "sparse_infill_speed": "150", + "interface_shells": "0", + "ironing_flow": "10%", + "ironing_spacing": "0.15", + "ironing_speed": "30", + "ironing_type": "no ironing", + "layer_height": "0.3", + "reduce_infill_retraction": "1", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "detect_overhang_wall": "1", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "50", + "overhang_3_4_speed": "15", + "overhang_4_4_speed": "10", + "only_one_wall_top": "1", + "precise_outer_wall": "1", + "inner_wall_line_width": "0.65", + "inner_wall_speed": "150", + "wall_loops": "2", + "print_settings_id": "", + "raft_layers": "0", + "seam_position": "aligned", + "seam_slope_conditional": "1", + "seam_slope_inner_walls": "1", + "seam_slope_entire_loop": "1", + "skirt_distance": "2", + "skirt_height": "1", + "skirt_loops": "0", + "minimum_sparse_infill_area": "15", + "internal_solid_infill_line_width": "0.62", + "internal_solid_infill_speed": "150", + "spiral_mode": "0", + "initial_layer_infill_speed": "105", + "standby_temperature_delta": "-5", + "enable_support": "0", + "resolution": "0.012", + "support_type": "tree(auto)", + "support_style": "default", + "support_on_build_plate_only": "0", + "support_top_z_distance": "0.2", + "support_bottom_z_distance": "0.2", + "support_filament": "0", + "support_line_width": "0.62", + "support_interface_loop_pattern": "0", + "support_interface_filament": "0", + "support_interface_top_layers": "2", + "support_interface_bottom_layers": "2", + "support_interface_spacing": "0.5", + "support_expansion": "0", + "support_interface_speed": "80", + "support_base_pattern": "default", + "support_base_pattern_spacing": "2.5", + "support_speed": "150", + "support_threshold_angle": "30", + "support_object_xy_distance": "0.35", + "tree_support_branch_diameter": "2", + "tree_support_branch_angle": "45", + "tree_support_wall_count": "1", + "detect_thin_wall": "0", + "top_surface_pattern": "monotonicline", + "top_surface_line_width": "0.62", + "top_surface_acceleration": "5000", + "top_surface_speed": "150", + "top_shell_layers": "3", + "top_shell_thickness": "0.6", + "travel_acceleration": "12000", + "travel_speed": "500", + "enable_prime_tower": "1", + "wipe_tower_no_sparse_layers": "0", + "prime_tower_width": "35", + "xy_hole_compensation": "0", + "xy_contour_compensation": "0", + "gcode_label_objects": "0", + "default_jerk": "12", + "outer_wall_jerk": "8", + "inner_wall_jerk": "8", + "infill_jerk": "12", + "top_surface_jerk": "8", + "initial_layer_jerk": "8", + "travel_jerk": "12" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.30mm Standard @Creality K2 Plus 0.6 nozzle.json b/resources/profiles/Creality/process/0.30mm Standard @Creality K2 Plus 0.6 nozzle.json index 9efc66438c..6207414767 100644 --- a/resources/profiles/Creality/process/0.30mm Standard @Creality K2 Plus 0.6 nozzle.json +++ b/resources/profiles/Creality/process/0.30mm Standard @Creality K2 Plus 0.6 nozzle.json @@ -54,6 +54,7 @@ "overhang_3_4_speed": "20", "overhang_4_4_speed": "10", "only_one_wall_top": "1", + "precise_outer_wall": "1", "inner_wall_line_width": "0.65", "inner_wall_speed": "150", "wall_loops": "2", diff --git a/resources/profiles/Creality/process/0.32mm Optimal @Creality K2 Plus 0.8 nozzle.json b/resources/profiles/Creality/process/0.32mm Optimal @Creality K2 Plus 0.8 nozzle.json index 02f244ad2b..eeeb765710 100644 --- a/resources/profiles/Creality/process/0.32mm Optimal @Creality K2 Plus 0.8 nozzle.json +++ b/resources/profiles/Creality/process/0.32mm Optimal @Creality K2 Plus 0.8 nozzle.json @@ -54,6 +54,7 @@ "overhang_3_4_speed": "20", "overhang_4_4_speed": "10", "only_one_wall_top": "1", + "precise_outer_wall": "1", "inner_wall_line_width": "0.82", "inner_wall_speed": "150", "wall_loops": "2", diff --git a/resources/profiles/Creality/process/0.36mm Draft @Creality Hi 0.6 nozzle.json b/resources/profiles/Creality/process/0.36mm Draft @Creality Hi 0.6 nozzle.json new file mode 100644 index 0000000000..ca3749291c --- /dev/null +++ b/resources/profiles/Creality/process/0.36mm Draft @Creality Hi 0.6 nozzle.json @@ -0,0 +1,125 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.36mm Draft @Creality Hi", + "from": "system", + "inherits": "fdm_process_common_klipper", + "instantiation": "true", + "adaptive_layer_height": "0", + "reduce_crossing_wall": "0", + "max_travel_detour_distance": "0", + "bottom_surface_pattern": "monotonic", + "bottom_shell_layers": "3", + "bottom_shell_thickness": "0", + "bridge_flow": "1", + "bridge_speed": "30", + "brim_width": "5", + "brim_object_gap": "0.1", + "compatible_printers": [ + "Creality Hi 0.6 nozzle" + ], + "compatible_printers_condition": "", + "print_sequence": "by layer", + "default_acceleration": "12000", + "bridge_no_support": "0", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.15", + "outer_wall_line_width": "0.62", + "outer_wall_speed": "120", + "outer_wall_acceleration": "5000", + "inner_wall_acceleration": "5000", + "wall_infill_order": "inner wall/outer wall/infill", + "line_width": "0.62", + "infill_direction": "45", + "sparse_infill_density": "15%", + "sparse_infill_pattern": "crosshatch", + "internal_bridge_support_thickness": "0.8", + "initial_layer_acceleration": "500", + "initial_layer_line_width": "0.5", + "initial_layer_print_height": "0.36", + "initial_layer_speed": "50", + "gap_infill_speed": "50", + "infill_combination": "0", + "sparse_infill_line_width": "0.65", + "infill_wall_overlap": "15%", + "sparse_infill_speed": "150", + "interface_shells": "0", + "ironing_flow": "10%", + "ironing_spacing": "0.15", + "ironing_speed": "30", + "ironing_type": "no ironing", + "layer_height": "0.36", + "reduce_infill_retraction": "1", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "detect_overhang_wall": "1", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "50", + "overhang_3_4_speed": "15", + "overhang_4_4_speed": "10", + "only_one_wall_top": "1", + "precise_outer_wall": "1", + "inner_wall_line_width": "0.65", + "inner_wall_speed": "150", + "wall_loops": "2", + "print_settings_id": "", + "raft_layers": "0", + "seam_position": "aligned", + "seam_slope_conditional": "1", + "seam_slope_inner_walls": "1", + "seam_slope_entire_loop": "1", + "skirt_distance": "2", + "skirt_height": "1", + "skirt_loops": "0", + "minimum_sparse_infill_area": "15", + "internal_solid_infill_line_width": "0.62", + "internal_solid_infill_speed": "150", + "spiral_mode": "0", + "initial_layer_infill_speed": "105", + "standby_temperature_delta": "-5", + "enable_support": "0", + "resolution": "0.012", + "support_type": "tree(auto)", + "support_style": "default", + "support_on_build_plate_only": "0", + "support_top_z_distance": "0.2", + "support_bottom_z_distance": "0.2", + "support_filament": "0", + "support_line_width": "0.62", + "support_interface_loop_pattern": "0", + "support_interface_filament": "0", + "support_interface_top_layers": "2", + "support_interface_bottom_layers": "2", + "support_interface_spacing": "0.5", + "support_expansion": "0", + "support_interface_speed": "80", + "support_base_pattern": "default", + "support_base_pattern_spacing": "2.5", + "support_speed": "150", + "support_threshold_angle": "30", + "support_object_xy_distance": "0.35", + "tree_support_branch_diameter": "2", + "tree_support_branch_angle": "45", + "tree_support_wall_count": "1", + "detect_thin_wall": "0", + "top_surface_pattern": "monotonicline", + "top_surface_line_width": "0.62", + "top_surface_acceleration": "5000", + "top_surface_speed": "150", + "top_shell_layers": "3", + "top_shell_thickness": "0.6", + "travel_acceleration": "12000", + "travel_speed": "500", + "enable_prime_tower": "1", + "wipe_tower_no_sparse_layers": "0", + "prime_tower_width": "35", + "xy_hole_compensation": "0", + "xy_contour_compensation": "0", + "gcode_label_objects": "0", + "default_jerk": "12", + "outer_wall_jerk": "8", + "inner_wall_jerk": "8", + "infill_jerk": "12", + "top_surface_jerk": "8", + "initial_layer_jerk": "8", + "travel_jerk": "12" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.36mm Draft @Creality K2 Plus 0.6 nozzle.json b/resources/profiles/Creality/process/0.36mm Draft @Creality K2 Plus 0.6 nozzle.json index e112eb39c0..30de178e04 100644 --- a/resources/profiles/Creality/process/0.36mm Draft @Creality K2 Plus 0.6 nozzle.json +++ b/resources/profiles/Creality/process/0.36mm Draft @Creality K2 Plus 0.6 nozzle.json @@ -54,6 +54,7 @@ "overhang_3_4_speed": "20", "overhang_4_4_speed": "10", "only_one_wall_top": "1", + "precise_outer_wall": "1", "inner_wall_line_width": "0.65", "inner_wall_speed": "150", "wall_loops": "2", diff --git a/resources/profiles/Creality/process/0.40mm Standard @Creality K2 Plus 0.8 nozzle.json b/resources/profiles/Creality/process/0.40mm Standard @Creality K2 Plus 0.8 nozzle.json index 26477340b0..593e118940 100644 --- a/resources/profiles/Creality/process/0.40mm Standard @Creality K2 Plus 0.8 nozzle.json +++ b/resources/profiles/Creality/process/0.40mm Standard @Creality K2 Plus 0.8 nozzle.json @@ -54,6 +54,7 @@ "overhang_3_4_speed": "20", "overhang_4_4_speed": "10", "only_one_wall_top": "1", + "precise_outer_wall": "1", "inner_wall_line_width": "0.82", "inner_wall_speed": "150", "wall_loops": "2", diff --git a/resources/profiles/Creality/process/0.42mm SuperDraft @Creality K2 Plus 0.6 nozzle.json b/resources/profiles/Creality/process/0.42mm SuperDraft @Creality K2 Plus 0.6 nozzle.json index 4e9594ba20..2b765d102f 100644 --- a/resources/profiles/Creality/process/0.42mm SuperDraft @Creality K2 Plus 0.6 nozzle.json +++ b/resources/profiles/Creality/process/0.42mm SuperDraft @Creality K2 Plus 0.6 nozzle.json @@ -54,6 +54,7 @@ "overhang_3_4_speed": "20", "overhang_4_4_speed": "10", "only_one_wall_top": "1", + "precise_outer_wall": "1", "inner_wall_line_width": "0.65", "inner_wall_speed": "150", "wall_loops": "2", diff --git a/resources/profiles/Creality/process/0.48mm Draft @Creality K2 Plus 0.8 nozzle.json b/resources/profiles/Creality/process/0.48mm Draft @Creality K2 Plus 0.8 nozzle.json index c420d26892..32090d39aa 100644 --- a/resources/profiles/Creality/process/0.48mm Draft @Creality K2 Plus 0.8 nozzle.json +++ b/resources/profiles/Creality/process/0.48mm Draft @Creality K2 Plus 0.8 nozzle.json @@ -54,6 +54,7 @@ "overhang_3_4_speed": "20", "overhang_4_4_speed": "10", "only_one_wall_top": "1", + "precise_outer_wall": "1", "inner_wall_line_width": "0.82", "inner_wall_speed": "150", "wall_loops": "2", diff --git a/resources/profiles/Creality/process/0.56mm SuperDraft @Creality K2 Plus 0.8 nozzle.json b/resources/profiles/Creality/process/0.56mm SuperDraft @Creality K2 Plus 0.8 nozzle.json index a463fef969..6fe45f83d3 100644 --- a/resources/profiles/Creality/process/0.56mm SuperDraft @Creality K2 Plus 0.8 nozzle.json +++ b/resources/profiles/Creality/process/0.56mm SuperDraft @Creality K2 Plus 0.8 nozzle.json @@ -54,6 +54,7 @@ "overhang_3_4_speed": "20", "overhang_4_4_speed": "10", "only_one_wall_top": "1", + "precise_outer_wall": "1", "inner_wall_line_width": "0.82", "inner_wall_speed": "150", "wall_loops": "2", diff --git a/resources/profiles/Custom.json b/resources/profiles/Custom.json index 5141e5f323..eea4025908 100644 --- a/resources/profiles/Custom.json +++ b/resources/profiles/Custom.json @@ -1,6 +1,6 @@ { "name": "Custom Printer", - "version": "02.02.00.04", + "version": "02.02.00.05", "force_update": "0", "description": "My configurations", "machine_model_list": [ @@ -173,120 +173,44 @@ ], "filament_list": [ { - "name": "fdm_filament_common", - "sub_path": "filament/fdm_filament_common.json" + "name": "Generic PLA @MyToolChanger", + "sub_path": "filament/Generic PLA @MyToolChanger.json" }, { - "name": "fdm_filament_pla", - "sub_path": "filament/fdm_filament_pla.json" + "name": "Generic PLA-CF @MyToolChanger", + "sub_path": "filament/Generic PLA-CF @MyToolChanger.json" }, { - "name": "fdm_filament_tpu", - "sub_path": "filament/fdm_filament_tpu.json" + "name": "Generic PETG @MyToolChanger", + "sub_path": "filament/Generic PETG @MyToolChanger.json" }, { - "name": "fdm_filament_pet", - "sub_path": "filament/fdm_filament_pet.json" + "name": "Generic ABS @MyToolChanger", + "sub_path": "filament/Generic ABS @MyToolChanger.json" }, { - "name": "fdm_filament_abs", - "sub_path": "filament/fdm_filament_abs.json" + "name": "Generic TPU @MyToolChanger", + "sub_path": "filament/Generic TPU @MyToolChanger.json" }, { - "name": "fdm_filament_pc", - "sub_path": "filament/fdm_filament_pc.json" + "name": "Generic ASA @MyToolChanger", + "sub_path": "filament/Generic ASA @MyToolChanger.json" }, { - "name": "fdm_filament_asa", - "sub_path": "filament/fdm_filament_asa.json" + "name": "Generic PC @MyToolChanger", + "sub_path": "filament/Generic PC @MyToolChanger.json" }, { - "name": "fdm_filament_pva", - "sub_path": "filament/fdm_filament_pva.json" + "name": "Generic PVA @MyToolChanger", + "sub_path": "filament/Generic PVA @MyToolChanger.json" }, { - "name": "fdm_filament_pa", - "sub_path": "filament/fdm_filament_pa.json" + "name": "Generic PA @MyToolChanger", + "sub_path": "filament/Generic PA @MyToolChanger.json" }, { - "name": "My Generic PLA", - "sub_path": "filament/My Generic PLA.json" - }, - { - "name": "My Generic PLA-CF", - "sub_path": "filament/My Generic PLA-CF.json" - }, - { - "name": "My Generic PETG", - "sub_path": "filament/My Generic PETG.json" - }, - { - "name": "My Generic ABS", - "sub_path": "filament/My Generic ABS.json" - }, - { - "name": "My Generic TPU", - "sub_path": "filament/My Generic TPU.json" - }, - { - "name": "My Generic ASA", - "sub_path": "filament/My Generic ASA.json" - }, - { - "name": "My Generic PC", - "sub_path": "filament/My Generic PC.json" - }, - { - "name": "My Generic PVA", - "sub_path": "filament/My Generic PVA.json" - }, - { - "name": "My Generic PA", - "sub_path": "filament/My Generic PA.json" - }, - { - "name": "My Generic PA-CF", - "sub_path": "filament/My Generic PA-CF.json" - }, - { - "name": "My Generic PLA @MyToolChanger", - "sub_path": "filament/My Generic PLA @MyToolChanger.json" - }, - { - "name": "My Generic PLA-CF @MyToolChanger", - "sub_path": "filament/My Generic PLA-CF @MyToolChanger.json" - }, - { - "name": "My Generic PETG @MyToolChanger", - "sub_path": "filament/My Generic PETG @MyToolChanger.json" - }, - { - "name": "My Generic ABS @MyToolChanger", - "sub_path": "filament/My Generic ABS @MyToolChanger.json" - }, - { - "name": "My Generic TPU @MyToolChanger", - "sub_path": "filament/My Generic TPU @MyToolChanger.json" - }, - { - "name": "My Generic ASA @MyToolChanger", - "sub_path": "filament/My Generic ASA @MyToolChanger.json" - }, - { - "name": "My Generic PC @MyToolChanger", - "sub_path": "filament/My Generic PC @MyToolChanger.json" - }, - { - "name": "My Generic PVA @MyToolChanger", - "sub_path": "filament/My Generic PVA @MyToolChanger.json" - }, - { - "name": "My Generic PA @MyToolChanger", - "sub_path": "filament/My Generic PA @MyToolChanger.json" - }, - { - "name": "My Generic PA-CF @MyToolChanger", - "sub_path": "filament/My Generic PA-CF @MyToolChanger.json" + "name": "Generic PA-CF @MyToolChanger", + "sub_path": "filament/Generic PA-CF @MyToolChanger.json" } ], "machine_list": [ diff --git a/resources/profiles/Custom/Generic ToolChanger Printer_cover.png b/resources/profiles/Custom/Generic ToolChanger Printer_cover.png index cf85288d7a..05cc4833fd 100644 Binary files a/resources/profiles/Custom/Generic ToolChanger Printer_cover.png and b/resources/profiles/Custom/Generic ToolChanger Printer_cover.png differ diff --git a/resources/profiles/Custom/filament/My Generic ABS @MyToolChanger.json b/resources/profiles/Custom/filament/Generic ABS @MyToolChanger.json similarity index 81% rename from resources/profiles/Custom/filament/My Generic ABS @MyToolChanger.json rename to resources/profiles/Custom/filament/Generic ABS @MyToolChanger.json index fb8f51bf95..23238a1ea2 100644 --- a/resources/profiles/Custom/filament/My Generic ABS @MyToolChanger.json +++ b/resources/profiles/Custom/filament/Generic ABS @MyToolChanger.json @@ -1,17 +1,11 @@ { "type": "filament", - "filament_id": "GFB99", "setting_id": "GFB99_MTC_0", - "name": "My Generic ABS @MyToolChanger", + "name": "Generic ABS @MyToolChanger", + "renamed_from": "My Generic ABS @MyToolChanger", "from": "system", "instantiation": "true", - "inherits": "fdm_filament_abs", - "filament_flow_ratio": [ - "0.926" - ], - "filament_max_volumetric_speed": [ - "12" - ], + "inherits": "Generic ABS @System", "filament_cooling_final_speed": [ "3.5" ], diff --git a/resources/profiles/Custom/filament/My Generic ASA @MyToolChanger.json b/resources/profiles/Custom/filament/Generic ASA @MyToolChanger.json similarity index 81% rename from resources/profiles/Custom/filament/My Generic ASA @MyToolChanger.json rename to resources/profiles/Custom/filament/Generic ASA @MyToolChanger.json index 05bab114b4..28f13fc7c2 100644 --- a/resources/profiles/Custom/filament/My Generic ASA @MyToolChanger.json +++ b/resources/profiles/Custom/filament/Generic ASA @MyToolChanger.json @@ -1,17 +1,11 @@ { "type": "filament", - "filament_id": "GFB98", "setting_id": "GFB98_MTC_0", - "name": "My Generic ASA @MyToolChanger", + "name": "Generic ASA @MyToolChanger", + "renamed_from": "My Generic ASA @MyToolChanger", "from": "system", "instantiation": "true", - "inherits": "fdm_filament_asa", - "filament_flow_ratio": [ - "0.93" - ], - "filament_max_volumetric_speed": [ - "12" - ], + "inherits": "Generic ASA @System", "filament_cooling_final_speed": [ "3.5" ], diff --git a/resources/profiles/Custom/filament/My Generic PA @MyToolChanger.json b/resources/profiles/Custom/filament/Generic PA @MyToolChanger.json similarity index 77% rename from resources/profiles/Custom/filament/My Generic PA @MyToolChanger.json rename to resources/profiles/Custom/filament/Generic PA @MyToolChanger.json index 17a9b793cc..76ab962feb 100644 --- a/resources/profiles/Custom/filament/My Generic PA @MyToolChanger.json +++ b/resources/profiles/Custom/filament/Generic PA @MyToolChanger.json @@ -1,20 +1,11 @@ { "type": "filament", - "filament_id": "GFN99", "setting_id": "GFN99_MTC_0", - "name": "My Generic PA @MyToolChanger", + "name": "Generic PA @MyToolChanger", + "renamed_from": "My Generic PA @MyToolChanger", "from": "system", "instantiation": "true", - "inherits": "fdm_filament_pa", - "nozzle_temperature_initial_layer": [ - "280" - ], - "nozzle_temperature": [ - "280" - ], - "filament_max_volumetric_speed": [ - "12" - ], + "inherits": "Generic PA @System", "filament_cooling_final_speed": [ "3.5" ], diff --git a/resources/profiles/Custom/filament/Generic PA-CF @MyToolChanger.json b/resources/profiles/Custom/filament/Generic PA-CF @MyToolChanger.json new file mode 100644 index 0000000000..a0dfaa0829 --- /dev/null +++ b/resources/profiles/Custom/filament/Generic PA-CF @MyToolChanger.json @@ -0,0 +1,51 @@ +{ + "type": "filament", + "setting_id": "GFN98_MTC_0", + "name": "Generic PA-CF @MyToolChanger", + "renamed_from": "My Generic PA-CF @MyToolChanger", + "from": "system", + "instantiation": "true", + "inherits": "Generic PA-CF @System", + "filament_cooling_final_speed": [ + "3.5" + ], + "filament_cooling_initial_speed": [ + "10" + ], + "filament_cooling_moves": [ + "2" + ], + "filament_load_time": [ + "10.5" + ], + "filament_loading_speed": [ + "10" + ], + "filament_loading_speed_start": [ + "50" + ], + "filament_multitool_ramming": [ + "1" + ], + "filament_multitool_ramming_flow": [ + "40" + ], + "filament_stamping_distance": [ + "45" + ], + "filament_stamping_loading_speed": [ + "29" + ], + "filament_unload_time": [ + "8.5" + ], + "filament_unloading_speed": [ + "100" + ], + "compatible_printers": [ + "MyToolChanger 0.4 nozzle", + "MyToolChanger 0.2 nozzle", + "MyToolChanger 0.6 nozzle", + "MyToolChanger 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Custom/filament/My Generic PC @MyToolChanger.json b/resources/profiles/Custom/filament/Generic PC @MyToolChanger.json similarity index 83% rename from resources/profiles/Custom/filament/My Generic PC @MyToolChanger.json rename to resources/profiles/Custom/filament/Generic PC @MyToolChanger.json index 7ae24c6774..0ff6bee88f 100644 --- a/resources/profiles/Custom/filament/My Generic PC @MyToolChanger.json +++ b/resources/profiles/Custom/filament/Generic PC @MyToolChanger.json @@ -2,16 +2,11 @@ "type": "filament", "filament_id": "GFC99", "setting_id": "GFC99_MTC_0", - "name": "My Generic PC @MyToolChanger", + "name": "Generic PC @MyToolChanger", + "renamed_from": "My Generic PC @MyToolChanger", "from": "system", "instantiation": "true", - "inherits": "fdm_filament_pc", - "filament_max_volumetric_speed": [ - "12" - ], - "filament_flow_ratio": [ - "0.94" - ], + "inherits": "Generic PC @System", "filament_cooling_final_speed": [ "3.5" ], diff --git a/resources/profiles/Custom/filament/Generic PETG @MyToolChanger.json b/resources/profiles/Custom/filament/Generic PETG @MyToolChanger.json new file mode 100644 index 0000000000..27f0c96efc --- /dev/null +++ b/resources/profiles/Custom/filament/Generic PETG @MyToolChanger.json @@ -0,0 +1,52 @@ +{ + "type": "filament", + "filament_id": "GFG99", + "setting_id": "GFG99_MTC_0", + "name": "Generic PETG @MyToolChanger", + "renamed_from": "My Generic PETG @MyToolChanger", + "from": "system", + "instantiation": "true", + "inherits": "Generic PETG @System", + "filament_cooling_final_speed": [ + "3.5" + ], + "filament_cooling_initial_speed": [ + "10" + ], + "filament_cooling_moves": [ + "2" + ], + "filament_load_time": [ + "10.5" + ], + "filament_loading_speed": [ + "10" + ], + "filament_loading_speed_start": [ + "50" + ], + "filament_multitool_ramming": [ + "1" + ], + "filament_multitool_ramming_flow": [ + "40" + ], + "filament_stamping_distance": [ + "45" + ], + "filament_stamping_loading_speed": [ + "29" + ], + "filament_unload_time": [ + "8.5" + ], + "filament_unloading_speed": [ + "100" + ], + "compatible_printers": [ + "MyToolChanger 0.4 nozzle", + "MyToolChanger 0.2 nozzle", + "MyToolChanger 0.6 nozzle", + "MyToolChanger 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Custom/filament/My Generic PLA @MyToolChanger.json b/resources/profiles/Custom/filament/Generic PLA @MyToolChanger.json similarity index 80% rename from resources/profiles/Custom/filament/My Generic PLA @MyToolChanger.json rename to resources/profiles/Custom/filament/Generic PLA @MyToolChanger.json index facaf08984..ef24ac2afb 100644 --- a/resources/profiles/Custom/filament/My Generic PLA @MyToolChanger.json +++ b/resources/profiles/Custom/filament/Generic PLA @MyToolChanger.json @@ -2,19 +2,11 @@ "type": "filament", "filament_id": "GFL99", "setting_id": "GFL99_MTC_0", - "name": "My Generic PLA @MyToolChanger", + "name": "Generic PLA @MyToolChanger", + "renamed_from": "My Generic PLA @MyToolChanger", "from": "system", "instantiation": "true", - "inherits": "fdm_filament_pla", - "filament_flow_ratio": [ - "0.98" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "slow_down_layer_time": [ - "8" - ], + "inherits": "Generic PLA @System", "filament_cooling_final_speed": [ "3.5" ], diff --git a/resources/profiles/Custom/filament/My Generic PLA-CF @MyToolChanger.json b/resources/profiles/Custom/filament/Generic PLA-CF @MyToolChanger.json similarity index 77% rename from resources/profiles/Custom/filament/My Generic PLA-CF @MyToolChanger.json rename to resources/profiles/Custom/filament/Generic PLA-CF @MyToolChanger.json index 8adf8d53d2..8be0250760 100644 --- a/resources/profiles/Custom/filament/My Generic PLA-CF @MyToolChanger.json +++ b/resources/profiles/Custom/filament/Generic PLA-CF @MyToolChanger.json @@ -2,22 +2,11 @@ "type": "filament", "filament_id": "GFL98", "setting_id": "GFL98_MTC_0", - "name": "My Generic PLA-CF @MyToolChanger", + "name": "Generic PLA-CF @MyToolChanger", + "renamed_from": "My Generic PLA-CF @MyToolChanger", "from": "system", "instantiation": "true", - "inherits": "fdm_filament_pla", - "filament_flow_ratio": [ - "0.95" - ], - "filament_type": [ - "PLA-CF" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "slow_down_layer_time": [ - "7" - ], + "inherits": "Generic PLA-CF @System", "filament_cooling_final_speed": [ "3.5" ], diff --git a/resources/profiles/Custom/filament/Generic PVA @MyToolChanger.json b/resources/profiles/Custom/filament/Generic PVA @MyToolChanger.json new file mode 100644 index 0000000000..acb5e848af --- /dev/null +++ b/resources/profiles/Custom/filament/Generic PVA @MyToolChanger.json @@ -0,0 +1,52 @@ +{ + "type": "filament", + "filament_id": "GFS99", + "setting_id": "GFS99_MTC_0", + "name": "Generic PVA @MyToolChanger", + "renamed_from": "My Generic PVA @MyToolChanger", + "from": "system", + "instantiation": "true", + "inherits": "Generic PVA @System", + "filament_cooling_final_speed": [ + "3.5" + ], + "filament_cooling_initial_speed": [ + "10" + ], + "filament_cooling_moves": [ + "2" + ], + "filament_load_time": [ + "10.5" + ], + "filament_loading_speed": [ + "10" + ], + "filament_loading_speed_start": [ + "50" + ], + "filament_multitool_ramming": [ + "1" + ], + "filament_multitool_ramming_flow": [ + "40" + ], + "filament_stamping_distance": [ + "45" + ], + "filament_stamping_loading_speed": [ + "29" + ], + "filament_unload_time": [ + "8.5" + ], + "filament_unloading_speed": [ + "100" + ], + "compatible_printers": [ + "MyToolChanger 0.4 nozzle", + "MyToolChanger 0.2 nozzle", + "MyToolChanger 0.6 nozzle", + "MyToolChanger 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Custom/filament/My Generic TPU @MyToolChanger.json b/resources/profiles/Custom/filament/Generic TPU @MyToolChanger.json similarity index 73% rename from resources/profiles/Custom/filament/My Generic TPU @MyToolChanger.json rename to resources/profiles/Custom/filament/Generic TPU @MyToolChanger.json index 54c4a15a19..1f207dc2f1 100644 --- a/resources/profiles/Custom/filament/My Generic TPU @MyToolChanger.json +++ b/resources/profiles/Custom/filament/Generic TPU @MyToolChanger.json @@ -2,10 +2,11 @@ "type": "filament", "filament_id": "GFU99", "setting_id": "GFU99_MTC_0", - "name": "My Generic TPU @MyToolChanger", + "name": "Generic TPU @MyToolChanger", + "renamed_from": "My Generic TPU @MyToolChanger", "from": "system", "instantiation": "true", - "inherits": "fdm_filament_tpu", + "inherits": "Generic TPU @System", "filament_max_volumetric_speed": [ "3.2" ], diff --git a/resources/profiles/Custom/filament/My Generic ABS.json b/resources/profiles/Custom/filament/My Generic ABS.json deleted file mode 100644 index 14fe0490e5..0000000000 --- a/resources/profiles/Custom/filament/My Generic ABS.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFB99", - "setting_id": "GFSA04", - "name": "My Generic ABS", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_abs", - "filament_flow_ratio": [ - "0.926" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "compatible_printers": [ - "MyKlipper 0.4 nozzle", - "MyKlipper 0.2 nozzle", - "MyKlipper 0.6 nozzle", - "MyKlipper 0.8 nozzle", - "MyMarlin 0.4 nozzle", - "MyRRF 0.4 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/Custom/filament/My Generic ASA.json b/resources/profiles/Custom/filament/My Generic ASA.json deleted file mode 100644 index ca6539c115..0000000000 --- a/resources/profiles/Custom/filament/My Generic ASA.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFB98", - "setting_id": "GFSA04", - "name": "My Generic ASA", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_asa", - "filament_flow_ratio": [ - "0.93" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "compatible_printers": [ - "MyKlipper 0.4 nozzle", - "MyKlipper 0.2 nozzle", - "MyKlipper 0.6 nozzle", - "MyKlipper 0.8 nozzle", - "MyMarlin 0.4 nozzle", - "MyRRF 0.4 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/Custom/filament/My Generic PA-CF @MyToolChanger.json b/resources/profiles/Custom/filament/My Generic PA-CF @MyToolChanger.json deleted file mode 100644 index 0b0f065eed..0000000000 --- a/resources/profiles/Custom/filament/My Generic PA-CF @MyToolChanger.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFN98", - "setting_id": "GFN98_MTC_0", - "name": "My Generic PA-CF @MyToolChanger", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pa", - "filament_type": [ - "PA-CF" - ], - "nozzle_temperature_initial_layer": [ - "280" - ], - "nozzle_temperature": [ - "280" - ], - "filament_max_volumetric_speed": [ - "8" - ], - "filament_cooling_final_speed": [ - "3.5" - ], - "filament_cooling_initial_speed": [ - "10" - ], - "filament_cooling_moves": [ - "2" - ], - "filament_load_time": [ - "10.5" - ], - "filament_loading_speed": [ - "10" - ], - "filament_loading_speed_start": [ - "50" - ], - "filament_multitool_ramming": [ - "1" - ], - "filament_multitool_ramming_flow": [ - "40" - ], - "filament_stamping_distance": [ - "45" - ], - "filament_stamping_loading_speed": [ - "29" - ], - "filament_unload_time": [ - "8.5" - ], - "filament_unloading_speed": [ - "100" - ], - "compatible_printers": [ - "MyToolChanger 0.4 nozzle", - "MyToolChanger 0.2 nozzle", - "MyToolChanger 0.6 nozzle", - "MyToolChanger 0.8 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/Custom/filament/My Generic PA-CF.json b/resources/profiles/Custom/filament/My Generic PA-CF.json deleted file mode 100644 index 60efac620c..0000000000 --- a/resources/profiles/Custom/filament/My Generic PA-CF.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFN98", - "setting_id": "GFSA04", - "name": "My Generic PA-CF", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pa", - "filament_type": [ - "PA-CF" - ], - "nozzle_temperature_initial_layer": [ - "280" - ], - "nozzle_temperature": [ - "280" - ], - "filament_max_volumetric_speed": [ - "8" - ], - "compatible_printers": [ - "MyKlipper 0.4 nozzle", - "MyKlipper 0.2 nozzle", - "MyKlipper 0.6 nozzle", - "MyKlipper 0.8 nozzle", - "MyMarlin 0.4 nozzle", - "MyRRF 0.4 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/Custom/filament/My Generic PA.json b/resources/profiles/Custom/filament/My Generic PA.json deleted file mode 100644 index 2e284b6d37..0000000000 --- a/resources/profiles/Custom/filament/My Generic PA.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFN99", - "setting_id": "GFSA04", - "name": "My Generic PA", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pa", - "nozzle_temperature_initial_layer": [ - "280" - ], - "nozzle_temperature": [ - "280" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "compatible_printers": [ - "MyKlipper 0.4 nozzle", - "MyKlipper 0.2 nozzle", - "MyKlipper 0.6 nozzle", - "MyKlipper 0.8 nozzle", - "MyMarlin 0.4 nozzle", - "MyRRF 0.4 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/Custom/filament/My Generic PC.json b/resources/profiles/Custom/filament/My Generic PC.json deleted file mode 100644 index 4738b42e18..0000000000 --- a/resources/profiles/Custom/filament/My Generic PC.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFC99", - "setting_id": "GFSA04", - "name": "My Generic PC", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pc", - "filament_max_volumetric_speed": [ - "12" - ], - "filament_flow_ratio": [ - "0.94" - ], - "compatible_printers": [ - "MyKlipper 0.4 nozzle", - "MyKlipper 0.2 nozzle", - "MyKlipper 0.6 nozzle", - "MyKlipper 0.8 nozzle", - "MyMarlin 0.4 nozzle", - "MyRRF 0.4 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/Custom/filament/My Generic PETG @MyToolChanger.json b/resources/profiles/Custom/filament/My Generic PETG @MyToolChanger.json deleted file mode 100644 index f9cb2e0b16..0000000000 --- a/resources/profiles/Custom/filament/My Generic PETG @MyToolChanger.json +++ /dev/null @@ -1,87 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFG99", - "setting_id": "GFG99_MTC_0", - "name": "My Generic PETG @MyToolChanger", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pet", - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_cooling_layer_time": [ - "30" - ], - "overhang_fan_speed": [ - "90" - ], - "overhang_fan_threshold": [ - "25%" - ], - "fan_max_speed": [ - "90" - ], - "fan_min_speed": [ - "40" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "8" - ], - "filament_flow_ratio": [ - "0.95" - ], - "filament_max_volumetric_speed": [ - "10" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ], - "filament_cooling_final_speed": [ - "3.5" - ], - "filament_cooling_initial_speed": [ - "10" - ], - "filament_cooling_moves": [ - "2" - ], - "filament_load_time": [ - "10.5" - ], - "filament_loading_speed": [ - "10" - ], - "filament_loading_speed_start": [ - "50" - ], - "filament_multitool_ramming": [ - "1" - ], - "filament_multitool_ramming_flow": [ - "40" - ], - "filament_stamping_distance": [ - "45" - ], - "filament_stamping_loading_speed": [ - "29" - ], - "filament_unload_time": [ - "8.5" - ], - "filament_unloading_speed": [ - "100" - ], - "compatible_printers": [ - "MyToolChanger 0.4 nozzle", - "MyToolChanger 0.2 nozzle", - "MyToolChanger 0.6 nozzle", - "MyToolChanger 0.8 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/Custom/filament/My Generic PETG.json b/resources/profiles/Custom/filament/My Generic PETG.json deleted file mode 100644 index f640aea59e..0000000000 --- a/resources/profiles/Custom/filament/My Generic PETG.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFG99", - "setting_id": "GFSA04", - "name": "My Generic PETG", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pet", - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_cooling_layer_time": [ - "30" - ], - "overhang_fan_speed": [ - "90" - ], - "overhang_fan_threshold": [ - "25%" - ], - "fan_max_speed": [ - "90" - ], - "fan_min_speed": [ - "40" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "8" - ], - "filament_flow_ratio": [ - "0.95" - ], - "filament_max_volumetric_speed": [ - "10" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ], - "compatible_printers": [ - "MyKlipper 0.4 nozzle", - "MyKlipper 0.2 nozzle", - "MyKlipper 0.6 nozzle", - "MyKlipper 0.8 nozzle", - "MyMarlin 0.4 nozzle", - "MyRRF 0.4 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/Custom/filament/My Generic PLA-CF.json b/resources/profiles/Custom/filament/My Generic PLA-CF.json deleted file mode 100644 index b0ed43b93c..0000000000 --- a/resources/profiles/Custom/filament/My Generic PLA-CF.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFL98", - "setting_id": "GFSA04", - "name": "My Generic PLA-CF", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pla", - "filament_flow_ratio": [ - "0.95" - ], - "filament_type": [ - "PLA-CF" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "slow_down_layer_time": [ - "7" - ], - "compatible_printers": [ - "MyKlipper 0.4 nozzle", - "MyKlipper 0.2 nozzle", - "MyKlipper 0.6 nozzle", - "MyKlipper 0.8 nozzle", - "MyMarlin 0.4 nozzle", - "MyRRF 0.4 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/Custom/filament/My Generic PLA.json b/resources/profiles/Custom/filament/My Generic PLA.json deleted file mode 100644 index 54dc3dc779..0000000000 --- a/resources/profiles/Custom/filament/My Generic PLA.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFL99", - "setting_id": "GFSA04", - "name": "My Generic PLA", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pla", - "filament_flow_ratio": [ - "0.98" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "slow_down_layer_time": [ - "8" - ], - "compatible_printers": [ - "MyKlipper 0.4 nozzle", - "MyKlipper 0.2 nozzle", - "MyKlipper 0.6 nozzle", - "MyKlipper 0.8 nozzle", - "MyMarlin 0.4 nozzle", - "MyRRF 0.4 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/Custom/filament/My Generic PVA @MyToolChanger.json b/resources/profiles/Custom/filament/My Generic PVA @MyToolChanger.json deleted file mode 100644 index a2dd357753..0000000000 --- a/resources/profiles/Custom/filament/My Generic PVA @MyToolChanger.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFS99", - "setting_id": "GFS99_MTC_0", - "name": "My Generic PVA @MyToolChanger", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pva", - "filament_flow_ratio": [ - "0.95" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "slow_down_layer_time": [ - "7" - ], - "slow_down_min_speed": [ - "10" - ], - "compatible_printers": [ - "MyToolChanger 0.4 nozzle", - "MyToolChanger 0.2 nozzle", - "MyToolChanger 0.6 nozzle", - "MyToolChanger 0.8 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/Custom/filament/My Generic PVA.json b/resources/profiles/Custom/filament/My Generic PVA.json deleted file mode 100644 index ba874665cb..0000000000 --- a/resources/profiles/Custom/filament/My Generic PVA.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFS99", - "setting_id": "GFSA04", - "name": "My Generic PVA", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pva", - "filament_flow_ratio": [ - "0.95" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "slow_down_layer_time": [ - "7" - ], - "slow_down_min_speed": [ - "10" - ], - "compatible_printers": [ - "MyKlipper 0.4 nozzle", - "MyKlipper 0.2 nozzle", - "MyKlipper 0.6 nozzle", - "MyKlipper 0.8 nozzle", - "MyMarlin 0.4 nozzle", - "MyRRF 0.4 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/Custom/filament/My Generic TPU.json b/resources/profiles/Custom/filament/My Generic TPU.json deleted file mode 100644 index 359d3da7a7..0000000000 --- a/resources/profiles/Custom/filament/My Generic TPU.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFU99", - "setting_id": "GFSA04", - "name": "My Generic TPU", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_tpu", - "filament_max_volumetric_speed": [ - "3.2" - ], - "compatible_printers": [ - "MyKlipper 0.4 nozzle", - "MyKlipper 0.2 nozzle", - "MyKlipper 0.6 nozzle", - "MyKlipper 0.8 nozzle", - "MyMarlin 0.4 nozzle", - "MyRRF 0.4 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/Custom/filament/fdm_filament_abs.json b/resources/profiles/Custom/filament/fdm_filament_abs.json deleted file mode 100644 index b9d4eeda31..0000000000 --- a/resources/profiles/Custom/filament/fdm_filament_abs.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_abs", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "105" - ], - "eng_plate_temp" : [ - "105" - ], - "hot_plate_temp" : [ - "105" - ], - "textured_plate_temp" : [ - "105" - ], - "cool_plate_temp_initial_layer" : [ - "105" - ], - "eng_plate_temp_initial_layer" : [ - "105" - ], - "hot_plate_temp_initial_layer" : [ - "105" - ], - "textured_plate_temp_initial_layer" : [ - "105" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "30" - ], - "filament_max_volumetric_speed": [ - "28.6" - ], - "filament_type": [ - "ABS" - ], - "filament_density": [ - "1.04" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "260" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "fan_max_speed": [ - "80" - ], - "fan_min_speed": [ - "10" - ], - "overhang_fan_threshold": [ - "25%" - ], - "overhang_fan_speed": [ - "80" - ], - "nozzle_temperature": [ - "260" - ], - "temperature_vitrification": [ - "110" - ], - "nozzle_temperature_range_low": [ - "240" - ], - "nozzle_temperature_range_high": [ - "270" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "3" - ] -} diff --git a/resources/profiles/Custom/filament/fdm_filament_asa.json b/resources/profiles/Custom/filament/fdm_filament_asa.json deleted file mode 100644 index 262c561bda..0000000000 --- a/resources/profiles/Custom/filament/fdm_filament_asa.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_asa", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "105" - ], - "eng_plate_temp" : [ - "105" - ], - "hot_plate_temp" : [ - "105" - ], - "textured_plate_temp" : [ - "105" - ], - "cool_plate_temp_initial_layer" : [ - "105" - ], - "eng_plate_temp_initial_layer" : [ - "105" - ], - "hot_plate_temp_initial_layer" : [ - "105" - ], - "textured_plate_temp_initial_layer" : [ - "105" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "35" - ], - "filament_max_volumetric_speed": [ - "28.6" - ], - "filament_type": [ - "ASA" - ], - "filament_density": [ - "1.04" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "260" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "fan_max_speed": [ - "80" - ], - "fan_min_speed": [ - "10" - ], - "overhang_fan_threshold": [ - "25%" - ], - "overhang_fan_speed": [ - "80" - ], - "nozzle_temperature": [ - "260" - ], - "temperature_vitrification": [ - "110" - ], - "nozzle_temperature_range_low": [ - "240" - ], - "nozzle_temperature_range_high": [ - "270" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "3" - ] -} diff --git a/resources/profiles/Custom/filament/fdm_filament_common.json b/resources/profiles/Custom/filament/fdm_filament_common.json deleted file mode 100644 index 9f77975119..0000000000 --- a/resources/profiles/Custom/filament/fdm_filament_common.json +++ /dev/null @@ -1,144 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_common", - "from": "system", - "instantiation": "false", - "cool_plate_temp" : [ - "60" - ], - "eng_plate_temp" : [ - "60" - ], - "hot_plate_temp" : [ - "60" - ], - "textured_plate_temp" : [ - "60" - ], - "cool_plate_temp_initial_layer" : [ - "60" - ], - "eng_plate_temp_initial_layer" : [ - "60" - ], - "hot_plate_temp_initial_layer" : [ - "60" - ], - "textured_plate_temp_initial_layer" : [ - "60" - ], - "overhang_fan_threshold": [ - "95%" - ], - "overhang_fan_speed": [ - "100" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "filament_end_gcode": [ - "; filament end gcode \n" - ], - "filament_flow_ratio": [ - "1" - ], - "reduce_fan_stop_start_freq": [ - "0" - ], - "fan_cooling_layer_time": [ - "60" - ], - "filament_cost": [ - "0" - ], - "filament_density": [ - "0" - ], - "filament_deretraction_speed": [ - "nil" - ], - "filament_diameter": [ - "1.75" - ], - "filament_max_volumetric_speed": [ - "0" - ], - "filament_minimal_purge_on_wipe_tower": [ - "15" - ], - "filament_retraction_minimum_travel": [ - "nil" - ], - "filament_retract_before_wipe": [ - "nil" - ], - "filament_retract_when_changing_layer": [ - "nil" - ], - "filament_retraction_length": [ - "nil" - ], - "filament_z_hop": [ - "nil" - ], - "filament_z_hop_types": [ - "nil" - ], - "filament_retract_restart_extra": [ - "nil" - ], - "filament_retraction_speed": [ - "nil" - ], - "filament_settings_id": [ - "" - ], - "filament_soluble": [ - "0" - ], - "filament_type": [ - "PLA" - ], - "filament_vendor": [ - "Generic" - ], - "filament_wipe": [ - "nil" - ], - "filament_wipe_distance": [ - "nil" - ], - "bed_type": [ - "Cool Plate" - ], - "nozzle_temperature_initial_layer": [ - "200" - ], - "full_fan_speed_layer": [ - "0" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "35" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "8" - ], - "filament_start_gcode": [ - "; Filament gcode\n" - ], - "nozzle_temperature": [ - "200" - ], - "temperature_vitrification": [ - "100" - ] -} diff --git a/resources/profiles/Custom/filament/fdm_filament_pa.json b/resources/profiles/Custom/filament/fdm_filament_pa.json deleted file mode 100644 index 58f53cd451..0000000000 --- a/resources/profiles/Custom/filament/fdm_filament_pa.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pa", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "0" - ], - "eng_plate_temp" : [ - "100" - ], - "hot_plate_temp" : [ - "100" - ], - "textured_plate_temp" : [ - "100" - ], - "cool_plate_temp_initial_layer" : [ - "0" - ], - "eng_plate_temp_initial_layer" : [ - "100" - ], - "hot_plate_temp_initial_layer" : [ - "100" - ], - "textured_plate_temp_initial_layer" : [ - "100" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "4" - ], - "filament_max_volumetric_speed": [ - "8" - ], - "filament_type": [ - "PA" - ], - "filament_density": [ - "1.04" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "290" - ], - "reduce_fan_stop_start_freq": [ - "0" - ], - "fan_max_speed": [ - "60" - ], - "fan_min_speed": [ - "0" - ], - "overhang_fan_speed": [ - "30" - ], - "nozzle_temperature": [ - "290" - ], - "temperature_vitrification": [ - "108" - ], - "nozzle_temperature_range_low": [ - "270" - ], - "nozzle_temperature_range_high": [ - "300" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "2" - ] -} diff --git a/resources/profiles/Custom/filament/fdm_filament_pc.json b/resources/profiles/Custom/filament/fdm_filament_pc.json deleted file mode 100644 index cec8b89a38..0000000000 --- a/resources/profiles/Custom/filament/fdm_filament_pc.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pc", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "0" - ], - "eng_plate_temp" : [ - "110" - ], - "hot_plate_temp" : [ - "110" - ], - "textured_plate_temp" : [ - "110" - ], - "cool_plate_temp_initial_layer" : [ - "0" - ], - "eng_plate_temp_initial_layer" : [ - "110" - ], - "hot_plate_temp_initial_layer" : [ - "110" - ], - "textured_plate_temp_initial_layer" : [ - "110" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "30" - ], - "filament_max_volumetric_speed": [ - "23.2" - ], - "filament_type": [ - "PC" - ], - "filament_density": [ - "1.04" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "270" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "fan_max_speed": [ - "60" - ], - "fan_min_speed": [ - "10" - ], - "overhang_fan_threshold": [ - "25%" - ], - "overhang_fan_speed": [ - "60" - ], - "nozzle_temperature": [ - "280" - ], - "temperature_vitrification": [ - "140" - ], - "nozzle_temperature_range_low": [ - "260" - ], - "nozzle_temperature_range_high": [ - "280" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "2" - ] -} diff --git a/resources/profiles/Custom/filament/fdm_filament_pla.json b/resources/profiles/Custom/filament/fdm_filament_pla.json deleted file mode 100644 index 82c6772f35..0000000000 --- a/resources/profiles/Custom/filament/fdm_filament_pla.json +++ /dev/null @@ -1,94 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pla", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "fan_cooling_layer_time": [ - "100" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "filament_type": [ - "PLA" - ], - "filament_density": [ - "1.24" - ], - "filament_cost": [ - "20" - ], - "cool_plate_temp" : [ - "60" - ], - "eng_plate_temp" : [ - "60" - ], - "hot_plate_temp" : [ - "60" - ], - "textured_plate_temp" : [ - "60" - ], - "cool_plate_temp_initial_layer" : [ - "60" - ], - "eng_plate_temp_initial_layer" : [ - "60" - ], - "hot_plate_temp_initial_layer" : [ - "60" - ], - "textured_plate_temp_initial_layer" : [ - "60" - ], - "nozzle_temperature_initial_layer": [ - "220" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "overhang_fan_speed": [ - "100" - ], - "overhang_fan_threshold": [ - "50%" - ], - "close_fan_the_first_x_layers": [ - "1" - ], - "nozzle_temperature": [ - "220" - ], - "temperature_vitrification": [ - "60" - ], - "nozzle_temperature_range_low": [ - "190" - ], - "nozzle_temperature_range_high": [ - "230" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "4" - ], - "additional_cooling_fan_speed": [ - "70" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ] -} diff --git a/resources/profiles/Custom/filament/fdm_filament_pva.json b/resources/profiles/Custom/filament/fdm_filament_pva.json deleted file mode 100644 index ebf25aa3ae..0000000000 --- a/resources/profiles/Custom/filament/fdm_filament_pva.json +++ /dev/null @@ -1,100 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pva", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "35" - ], - "eng_plate_temp" : [ - "0" - ], - "hot_plate_temp" : [ - "45" - ], - "textured_plate_temp" : [ - "45" - ], - "cool_plate_temp_initial_layer" : [ - "35" - ], - "eng_plate_temp_initial_layer" : [ - "0" - ], - "hot_plate_temp_initial_layer" : [ - "45" - ], - "textured_plate_temp_initial_layer" : [ - "45" - ], - "fan_cooling_layer_time": [ - "100" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "filament_soluble": [ - "1" - ], - "filament_is_support": [ - "1" - ], - "filament_type": [ - "PVA" - ], - "filament_density": [ - "1.24" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "220" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "overhang_fan_speed": [ - "100" - ], - "overhang_fan_threshold": [ - "50%" - ], - "close_fan_the_first_x_layers": [ - "1" - ], - "nozzle_temperature": [ - "220" - ], - "temperature_vitrification": [ - "50" - ], - "nozzle_temperature_range_low": [ - "190" - ], - "nozzle_temperature_range_high": [ - "250" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "4" - ], - "additional_cooling_fan_speed": [ - "70" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ] -} diff --git a/resources/profiles/Custom/machine/MyKlipper.json b/resources/profiles/Custom/machine/MyKlipper.json index 8c4b9f56e9..9f909d3615 100644 --- a/resources/profiles/Custom/machine/MyKlipper.json +++ b/resources/profiles/Custom/machine/MyKlipper.json @@ -8,5 +8,5 @@ "bed_model": "", "bed_texture": "orcaslicer_bed_texture.svg", "hotend_model": "", - "default_materials": "My Generic ABS;My Generic PLA;My Generic PLA-CF;My Generic PETG;My Generic TPU;My Generic ASA;My Generic PC;My Generic PVA;My Generic PA;My Generic PA-CF" + "default_materials": "Generic ABS @System;Generic PLA @System;Generic PLA-CF @System;Generic PETG @System;Generic TPU @System;Generic ASA @System;Generic PC @System;Generic PVA @System;Generic PA @System;Generic PA-CF @System" } diff --git a/resources/profiles/Custom/machine/MyMarlin.json b/resources/profiles/Custom/machine/MyMarlin.json index 78f5f2c125..afd744e9a2 100644 --- a/resources/profiles/Custom/machine/MyMarlin.json +++ b/resources/profiles/Custom/machine/MyMarlin.json @@ -8,5 +8,5 @@ "bed_model": "", "bed_texture": "orcaslicer_bed_texture.svg", "hotend_model": "", - "default_materials": "My Generic ABS;My Generic PLA;My Generic PLA-CF;My Generic PETG;My Generic TPU;My Generic ASA;My Generic PC;My Generic PVA;My Generic PA;My Generic PA-CF" + "default_materials": "Generic ABS @System;Generic PLA @System;Generic PLA-CF @System;Generic PETG @System;Generic TPU @System;Generic ASA @System;Generic PC @System;Generic PVA @System;Generic PA @System;Generic PA-CF @System" } diff --git a/resources/profiles/Custom/machine/MyRRF.json b/resources/profiles/Custom/machine/MyRRF.json index f03683d61f..c830e20956 100644 --- a/resources/profiles/Custom/machine/MyRRF.json +++ b/resources/profiles/Custom/machine/MyRRF.json @@ -8,5 +8,5 @@ "bed_model": "", "bed_texture": "orcaslicer_bed_texture.svg", "hotend_model": "", - "default_materials": "My Generic ABS;My Generic PLA;My Generic PLA-CF;My Generic PETG;My Generic TPU;My Generic ASA;My Generic PC;My Generic PVA;My Generic PA;My Generic PA-CF" -} + "default_materials": "Generic ABS @System;Generic PLA @System;Generic PLA-CF @System;Generic PETG @System;Generic TPU @System;Generic ASA @System;Generic PC @System;Generic PVA @System;Generic PA @System;Generic PA-CF @System" +} \ No newline at end of file diff --git a/resources/profiles/Custom/machine/MyToolChanger.json b/resources/profiles/Custom/machine/MyToolChanger.json index 9c927e4be2..97b29c97e7 100644 --- a/resources/profiles/Custom/machine/MyToolChanger.json +++ b/resources/profiles/Custom/machine/MyToolChanger.json @@ -8,5 +8,5 @@ "bed_model": "Custom_350_bed.stl", "bed_texture": "orcaslicer_bed_texture.svg", "hotend_model": "", - "default_materials": "My Generic PLA @MyToolChanger;My Generic ABS @MyToolChanger;My Generic PLA-CF @MyToolChanger;My Generic PETG @MyToolChanger;My Generic TPU @MyToolChanger;My Generic ASA @MyToolChanger;My Generic PC @MyToolChanger;My Generic PVA @MyToolChanger;My Generic PA @MyToolChanger;My Generic PA-CF @MyToolChanger" + "default_materials": "Generic PLA @MyToolChanger;Generic ABS @MyToolChanger;Generic PLA-CF @MyToolChanger;Generic PETG @MyToolChanger;Generic TPU @MyToolChanger;Generic ASA @MyToolChanger;Generic PC @MyToolChanger;Generic PVA @MyToolChanger;Generic PA @MyToolChanger;Generic PA-CF @MyToolChanger" } diff --git a/resources/profiles/Custom/machine/fdm_machine_common.json b/resources/profiles/Custom/machine/fdm_machine_common.json index 5785f57b19..27d715772d 100644 --- a/resources/profiles/Custom/machine/fdm_machine_common.json +++ b/resources/profiles/Custom/machine/fdm_machine_common.json @@ -88,7 +88,7 @@ "1" ], "retraction_length": [ - "5" + "1" ], "retract_length_toolchange": [ "1" diff --git a/resources/profiles/DeltaMaker.json b/resources/profiles/DeltaMaker.json new file mode 100755 index 0000000000..4314c00860 --- /dev/null +++ b/resources/profiles/DeltaMaker.json @@ -0,0 +1,91 @@ +{ + "name": "DeltaMaker", + "url": "", + "version": "02.02.00.04", + "force_update": "0", + "description": "DeltaMaker configurations", + "machine_model_list": [ + { + "name": "DeltaMaker 2", + "sub_path": "machine/DeltaMaker 2.json" + }, + { + "name": "DeltaMaker 2T", + "sub_path": "machine/DeltaMaker 2T.json" + }, + { + "name": "DeltaMaker 2XT", + "sub_path": "machine/DeltaMaker 2XT.json" + } + ], + "process_list": [ + { + "name": "fdm_process_common", + "sub_path": "process/fdm_process_common.json" + }, + { + "name": "0.12mm Fine @DeltaMaker", + "sub_path": "process/0.12mm Fine @DeltaMaker.json" + }, + { + "name": "0.18mm Standard @DeltaMaker", + "sub_path": "process/0.18mm Standard @DeltaMaker.json" + }, + { + "name": "0.25mm Draft @DeltaMaker", + "sub_path": "process/0.25mm Draft @DeltaMaker.json" + } + ], + "filament_list": [ + { + "name": "fdm_filament_common", + "sub_path": "filament/fdm_filament_common.json" + }, + { + "name": "fdm_filament_pet", + "sub_path": "filament/fdm_filament_pet.json" + }, + { + "name": "fdm_filament_pla", + "sub_path": "filament/fdm_filament_pla.json" + }, + { + "name": "fdm_filament_tpu", + "sub_path": "filament/fdm_filament_tpu.json" + }, + { + "name": "DeltaMaker Brand PLA", + "sub_path": "filament/DeltaMaker Brand PLA.json" + }, + { + "name": "DeltaMaker Generic PLA", + "sub_path": "filament/DeltaMaker Generic PLA.json" + }, + { + "name": "DeltaMaker Generic PETG", + "sub_path": "filament/DeltaMaker Generic PETG.json" + }, + { + "name": "DeltaMaker Generic TPU", + "sub_path": "filament/DeltaMaker Generic TPU.json" + } + ], + "machine_list": [ + { + "name": "fdm_machine_common", + "sub_path": "machine/fdm_machine_common.json" + }, + { + "name": "DeltaMaker 2 0.35 nozzle", + "sub_path": "machine/DeltaMaker 2 0.35 nozzle.json" + }, + { + "name": "DeltaMaker 2T 0.5 nozzle", + "sub_path": "machine/DeltaMaker 2T 0.5 nozzle.json" + }, + { + "name": "DeltaMaker 2XT 0.5 nozzle", + "sub_path": "machine/DeltaMaker 2XT 0.5 nozzle.json" + } + ] +} diff --git a/resources/profiles/DeltaMaker/DeltaMaker 2T_cover.png b/resources/profiles/DeltaMaker/DeltaMaker 2T_cover.png new file mode 100755 index 0000000000..6286eaff77 Binary files /dev/null and b/resources/profiles/DeltaMaker/DeltaMaker 2T_cover.png differ diff --git a/resources/profiles/DeltaMaker/DeltaMaker 2XT_cover.png b/resources/profiles/DeltaMaker/DeltaMaker 2XT_cover.png new file mode 100755 index 0000000000..9cb90846f7 Binary files /dev/null and b/resources/profiles/DeltaMaker/DeltaMaker 2XT_cover.png differ diff --git a/resources/profiles/DeltaMaker/DeltaMaker 2_cover.png b/resources/profiles/DeltaMaker/DeltaMaker 2_cover.png new file mode 100755 index 0000000000..c96ee7e20e Binary files /dev/null and b/resources/profiles/DeltaMaker/DeltaMaker 2_cover.png differ diff --git a/resources/profiles/DeltaMaker/deltamaker_2_buildplate_model.stl b/resources/profiles/DeltaMaker/deltamaker_2_buildplate_model.stl new file mode 100755 index 0000000000..8d67fdb68f Binary files /dev/null and b/resources/profiles/DeltaMaker/deltamaker_2_buildplate_model.stl differ diff --git a/resources/profiles/DeltaMaker/deltamaker_2_buildplate_texture.png b/resources/profiles/DeltaMaker/deltamaker_2_buildplate_texture.png new file mode 100755 index 0000000000..8254c4ec13 Binary files /dev/null and b/resources/profiles/DeltaMaker/deltamaker_2_buildplate_texture.png differ diff --git a/resources/profiles/DeltaMaker/deltamaker_2_buildplate_texture.svg b/resources/profiles/DeltaMaker/deltamaker_2_buildplate_texture.svg new file mode 100755 index 0000000000..c27a94302d --- /dev/null +++ b/resources/profiles/DeltaMaker/deltamaker_2_buildplate_texture.svg @@ -0,0 +1,99 @@ + + + + + DM1-Build-Area + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/profiles/DeltaMaker/filament/DeltaMaker Brand PLA.json b/resources/profiles/DeltaMaker/filament/DeltaMaker Brand PLA.json new file mode 100755 index 0000000000..e141d35733 --- /dev/null +++ b/resources/profiles/DeltaMaker/filament/DeltaMaker Brand PLA.json @@ -0,0 +1,38 @@ +{ + "type": "filament", + "filament_id": "GFL99", + "setting_id": "GFSL99", + "name": "DeltaMaker Brand PLA", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_pla", + "filament_flow_ratio": [ + "0.987" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "slow_down_layer_time": [ + "8" + ], + "filament_vendor": [ + "DeltaMaker" + ], + "nozzle_temperature_range_low": [ + "210" + ], + "nozzle_temperature_range_high": [ + "235" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "235" + ], + "compatible_printers": [ + "DeltaMaker 2 0.35 nozzle", + "DeltaMaker 2T 0.5 nozzle", + "DeltaMaker 2XT 0.5 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/TwoTrees/filament/TwoTrees Generic PETG.json b/resources/profiles/DeltaMaker/filament/DeltaMaker Generic PETG.json old mode 100644 new mode 100755 similarity index 81% rename from resources/profiles/TwoTrees/filament/TwoTrees Generic PETG.json rename to resources/profiles/DeltaMaker/filament/DeltaMaker Generic PETG.json index 56d58b52e8..f31ccabd8c --- a/resources/profiles/TwoTrees/filament/TwoTrees Generic PETG.json +++ b/resources/profiles/DeltaMaker/filament/DeltaMaker Generic PETG.json @@ -2,7 +2,7 @@ "type": "filament", "filament_id": "GFG99", "setting_id": "GFSG99", - "name": "TwoTrees Generic PETG", + "name": "DeltaMaker Generic PETG", "from": "system", "instantiation": "true", "inherits": "fdm_filament_pet", @@ -18,14 +18,11 @@ "overhang_fan_speed": [ "90" ], - "overhang_fan_threshold": [ - "25%" - ], "fan_max_speed": [ - "90" + "40" ], "fan_min_speed": [ - "40" + "20" ], "slow_down_min_speed": [ "10" @@ -37,12 +34,14 @@ "0.95" ], "filament_max_volumetric_speed": [ - "10" + "2" ], "filament_start_gcode": [ "; filament start gcode\n" ], "compatible_printers": [ - "TwoTrees SP-5 Klipper 0.4 nozzle" + "DeltaMaker 2 0.35 nozzle", + "DeltaMaker 2T 0.5 nozzle", + "DeltaMaker 2XT 0.5 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/Vivedino/filament/Troodon Generic PLA.json b/resources/profiles/DeltaMaker/filament/DeltaMaker Generic PLA.json old mode 100644 new mode 100755 similarity index 64% rename from resources/profiles/Vivedino/filament/Troodon Generic PLA.json rename to resources/profiles/DeltaMaker/filament/DeltaMaker Generic PLA.json index 31e66f950a..cd281f36e2 --- a/resources/profiles/Vivedino/filament/Troodon Generic PLA.json +++ b/resources/profiles/DeltaMaker/filament/DeltaMaker Generic PLA.json @@ -2,21 +2,22 @@ "type": "filament", "filament_id": "GFL99", "setting_id": "GFSA04", - "name": "Troodon Generic PLA", + "name": "DeltaMaker Generic PLA", "from": "system", "instantiation": "true", "inherits": "fdm_filament_pla", "filament_flow_ratio": [ - "0.98" + "0.987" ], "filament_max_volumetric_speed": [ - "12" + "10" ], "slow_down_layer_time": [ "8" ], "compatible_printers": [ - "Troodon 2.0 Klipper 0.4 nozzle", - "Troodon 2.0 RRF 0.4 nozzle" - ] -} + "DeltaMaker 2 0.35 nozzle", + "DeltaMaker 2T 0.5 nozzle", + "DeltaMaker 2XT 0.5 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BIQU/filament/BIQU Generic ABS.json b/resources/profiles/DeltaMaker/filament/DeltaMaker Generic TPU.json old mode 100644 new mode 100755 similarity index 54% rename from resources/profiles/BIQU/filament/BIQU Generic ABS.json rename to resources/profiles/DeltaMaker/filament/DeltaMaker Generic TPU.json index 9db0d1dcdb..ce27751c7c --- a/resources/profiles/BIQU/filament/BIQU Generic ABS.json +++ b/resources/profiles/DeltaMaker/filament/DeltaMaker Generic TPU.json @@ -2,19 +2,19 @@ "type": "filament", "filament_id": "GFB99", "setting_id": "GFSA04", - "name": "BIQU Generic ABS", + "name": "DeltaMaker Generic TPU", "from": "system", "instantiation": "true", - "inherits": "fdm_filament_abs", + "inherits": "fdm_filament_tpu", "filament_flow_ratio": [ - "0.926" + "0.94" ], "filament_max_volumetric_speed": [ - "12" + "4.5" ], "compatible_printers": [ - "BIQU BX (0.4 nozzle)", - "BIQU B1 (0.4 nozzle)", - "BIQU Hurakan (0.4 nozzle)" + "DeltaMaker 2 0.35 nozzle", + "DeltaMaker 2T 0.5 nozzle", + "DeltaMaker 2XT 0.5 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/DeltaMaker/filament/fdm_filament_common.json b/resources/profiles/DeltaMaker/filament/fdm_filament_common.json new file mode 100755 index 0000000000..d2ba9bc380 --- /dev/null +++ b/resources/profiles/DeltaMaker/filament/fdm_filament_common.json @@ -0,0 +1,50 @@ +{ + "type": "filament", + "name": "fdm_filament_common", + "from": "system", + "instantiation": "false", + "cool_plate_temp" : ["0"], + "eng_plate_temp" : ["0"], + "hot_plate_temp" : ["0"], + "textured_plate_temp" : ["0"], + "cool_plate_temp_initial_layer" : ["0"], + "eng_plate_temp_initial_layer" : ["0"], + "hot_plate_temp_initial_layer" : ["0"], + "textured_plate_temp_initial_layer" : ["0"], + "overhang_fan_threshold": ["50%"], + "overhang_fan_speed": ["100"], + "slow_down_for_layer_cooling": ["1"], + "close_fan_the_first_x_layers": ["1"], + "filament_end_gcode": ["; filament end gcode \n"], + "filament_flow_ratio": ["1.0"], + "reduce_fan_stop_start_freq": ["1"], + "fan_cooling_layer_time": ["100"], + "filament_cost": ["38"], + "filament_density": ["1.25"], + "filament_deretraction_speed": ["150"], + "filament_diameter": ["1.75"], + "filament_max_volumetric_speed": ["15"], + "filament_minimal_purge_on_wipe_tower": ["15"], + "filament_retraction_minimum_travel": ["3.0"], + "filament_retract_before_wipe": ["1"], + "filament_retract_when_changing_layer": ["0"], + "filament_retraction_length": ["8.0"], + "filament_z_hop": ["0.8"], + "filament_z_hop_types": ["nil"], + "filament_retract_restart_extra": ["0.0"], + "filament_retraction_speed": ["150"], + "filament_settings_id": [""], + "filament_soluble": ["0"], + "filament_type": ["PLA"], + "filament_vendor": ["Generic"], + "filament_wipe": ["1"], + "filament_wipe_distance": ["8.0"], + "bed_type": ["Cool Plate"], + "full_fan_speed_layer": ["0"], + "fan_max_speed": ["100"], + "fan_min_speed": ["100"], + "slow_down_min_speed": ["10"], + "slow_down_layer_time": ["8"], + "filament_start_gcode": ["; filament start gcode\n"], + "temperature_vitrification": ["60"] +} diff --git a/resources/profiles/DeltaMaker/filament/fdm_filament_pet.json b/resources/profiles/DeltaMaker/filament/fdm_filament_pet.json new file mode 100755 index 0000000000..f71c7e00b4 --- /dev/null +++ b/resources/profiles/DeltaMaker/filament/fdm_filament_pet.json @@ -0,0 +1,24 @@ +{ + "type": "filament", + "name": "fdm_filament_pet", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_common", + "slow_down_for_layer_cooling": ["1"], + "close_fan_the_first_x_layers": ["3"], + "fan_cooling_layer_time": ["15"], + "filament_max_volumetric_speed": ["0"], + "filament_type": ["PETG"], + "filament_density": ["1.27"], + "filament_cost": ["30"], + "nozzle_temperature_initial_layer": ["240"], + "reduce_fan_stop_start_freq": ["1"], + "fan_max_speed": ["40"], + "fan_min_speed": ["20"], + "overhang_fan_speed": ["50"], + "nozzle_temperature": ["250"], + "temperature_vitrification": ["80"], + "nozzle_temperature_range_low": ["235"], + "nozzle_temperature_range_high": ["255"], + "filament_start_gcode": ["; filament start gcode\n"] +} diff --git a/resources/profiles/DeltaMaker/filament/fdm_filament_pla.json b/resources/profiles/DeltaMaker/filament/fdm_filament_pla.json new file mode 100755 index 0000000000..20ab632a4c --- /dev/null +++ b/resources/profiles/DeltaMaker/filament/fdm_filament_pla.json @@ -0,0 +1,27 @@ +{ + "type": "filament", + "name": "fdm_filament_pla", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_common", + "fan_cooling_layer_time": "100", + "filament_max_volumetric_speed": ["0"], + "filament_type": ["PLA"], + "filament_density": ["1.24"], + "filament_cost": ["29"], + "nozzle_temperature_initial_layer": ["205"], + "reduce_fan_stop_start_freq": ["1"], + "slow_down_for_layer_cooling": ["1"], + "fan_max_speed": ["100"], + "fan_min_speed": ["100"], + "overhang_fan_speed": ["100"], + "overhang_fan_threshold": ["50%"], + "close_fan_the_first_x_layers": ["1"], + "nozzle_temperature": ["210"], + "temperature_vitrification": ["60"], + "nozzle_temperature_range_low": ["190"], + "nozzle_temperature_range_high": ["210"], + "slow_down_min_speed": ["10"], + "slow_down_layer_time": ["4"], + "filament_start_gcode": ["; filament start gcode\n"] +} diff --git a/resources/profiles/DeltaMaker/filament/fdm_filament_tpu.json b/resources/profiles/DeltaMaker/filament/fdm_filament_tpu.json new file mode 100755 index 0000000000..e0163659ca --- /dev/null +++ b/resources/profiles/DeltaMaker/filament/fdm_filament_tpu.json @@ -0,0 +1,26 @@ +{ + "type": "filament", + "name": "fdm_filament_tpu", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_common", + "slow_down_for_layer_cooling": ["1"], + "close_fan_the_first_x_layers": ["3"], + "fan_cooling_layer_time": ["30"], + "filament_max_volumetric_speed": ["0"], + "filament_type": ["TPU"], + "filament_density": ["1.10"], + "filament_cost": ["20"], + "nozzle_temperature_initial_layer": ["240"], + "reduce_fan_stop_start_freq": ["1"], + "fan_max_speed": ["5"], + "fan_min_speed": ["5"], + "overhang_fan_threshold": ["25%"], + "overhang_fan_speed": ["80"], + "nozzle_temperature": ["235"], + "temperature_vitrification": ["110"], + "nozzle_temperature_range_low": ["235"], + "nozzle_temperature_range_high": ["240"], + "slow_down_min_speed": ["10"], + "slow_down_layer_time": ["15"] +} diff --git a/resources/profiles/DeltaMaker/machine/DeltaMaker 2 0.35 nozzle.json b/resources/profiles/DeltaMaker/machine/DeltaMaker 2 0.35 nozzle.json new file mode 100755 index 0000000000..f14cb56feb --- /dev/null +++ b/resources/profiles/DeltaMaker/machine/DeltaMaker 2 0.35 nozzle.json @@ -0,0 +1,25 @@ +{ + "type": "machine", + "setting_id": "GM001", + "name": "DeltaMaker 2 0.35 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_machine_common", + "printer_model": "DeltaMaker 2", + "default_print_profile": "0.18mm Standard @DeltaMaker", + "nozzle_diameter": ["0.35"], + "printer_variant": "0.35", + "printable_height": "260", + "printable_area": [ + "-69x-120", + "-138x0", + "-69x120", + "69x120", + "138x0", + "69x-120" + ], + "default_filament_profile": [ + "DeltaMaker Brand PLA", + "DeltaMaker Generic PLA" + ] +} diff --git a/resources/profiles/DeltaMaker/machine/DeltaMaker 2.json b/resources/profiles/DeltaMaker/machine/DeltaMaker 2.json new file mode 100755 index 0000000000..31349d707f --- /dev/null +++ b/resources/profiles/DeltaMaker/machine/DeltaMaker 2.json @@ -0,0 +1,11 @@ +{ + "type": "machine_model", + "name": "DeltaMaker 2", + "model_id": "deltamaker-2", + "nozzle_diameter": "0.35", + "machine_tech": "FFF", + "family": "DeltaMaker", + "bed_model": "deltamaker_2_buildplate_model.stl", + "bed_texture": "deltamaker_2_buildplate_texture.png", + "default_materials": "DeltaMaker Brand PLA;DeltaMaker Generic PLA" +} diff --git a/resources/profiles/DeltaMaker/machine/DeltaMaker 2T 0.5 nozzle.json b/resources/profiles/DeltaMaker/machine/DeltaMaker 2T 0.5 nozzle.json new file mode 100755 index 0000000000..5d26bcc52d --- /dev/null +++ b/resources/profiles/DeltaMaker/machine/DeltaMaker 2T 0.5 nozzle.json @@ -0,0 +1,25 @@ +{ + "type": "machine", + "setting_id": "GM002", + "name": "DeltaMaker 2T 0.5 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_machine_common", + "printer_model": "DeltaMaker 2T", + "default_print_profile": "0.18mm Standard @DeltaMaker", + "nozzle_diameter": ["0.5"], + "printer_variant": "0.5", + "printable_height": "460", + "printable_area": [ + "-69x-120", + "-138x0", + "-69x120", + "69x120", + "138x0", + "69x-120" + ], + "default_filament_profile": [ + "DeltaMaker Brand PLA", + "DeltaMaker Generic PLA" + ] +} diff --git a/resources/profiles/DeltaMaker/machine/DeltaMaker 2T.json b/resources/profiles/DeltaMaker/machine/DeltaMaker 2T.json new file mode 100755 index 0000000000..f4909fd6a7 --- /dev/null +++ b/resources/profiles/DeltaMaker/machine/DeltaMaker 2T.json @@ -0,0 +1,11 @@ +{ + "type": "machine_model", + "name": "DeltaMaker 2T", + "model_id": "deltamaker-2t", + "nozzle_diameter": "0.5", + "machine_tech": "FFF", + "family": "DeltaMaker", + "bed_model": "deltamaker_2_buildplate_model.stl", + "bed_texture": "deltamaker_2_buildplate_texture.png", + "default_materials": "DeltaMaker Brand PLA;DeltaMaker Generic PLA" +} diff --git a/resources/profiles/DeltaMaker/machine/DeltaMaker 2XT 0.5 nozzle.json b/resources/profiles/DeltaMaker/machine/DeltaMaker 2XT 0.5 nozzle.json new file mode 100755 index 0000000000..a6f1ac18f4 --- /dev/null +++ b/resources/profiles/DeltaMaker/machine/DeltaMaker 2XT 0.5 nozzle.json @@ -0,0 +1,25 @@ +{ + "type": "machine", + "setting_id": "GM003", + "name": "DeltaMaker 2XT 0.5 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_machine_common", + "printer_model": "DeltaMaker 2XT", + "default_print_profile": "0.25mm Draft @DeltaMaker", + "nozzle_diameter": ["0.5"], + "printer_variant": "0.5", + "printable_height": "565", + "printable_area": [ + "-69x-120", + "-138x0", + "-69x120", + "69x120", + "138x0", + "69x-120" + ], + "default_filament_profile": [ + "DeltaMaker Brand PLA", + "DeltaMaker Generic PLA" + ] +} diff --git a/resources/profiles/DeltaMaker/machine/DeltaMaker 2XT.json b/resources/profiles/DeltaMaker/machine/DeltaMaker 2XT.json new file mode 100755 index 0000000000..8ea63e79ab --- /dev/null +++ b/resources/profiles/DeltaMaker/machine/DeltaMaker 2XT.json @@ -0,0 +1,11 @@ +{ + "type": "machine_model", + "name": "DeltaMaker 2XT", + "model_id": "deltamaker-2xt", + "nozzle_diameter": "0.5", + "machine_tech": "FFF", + "family": "DeltaMaker", + "bed_model": "deltamaker_2_buildplate_model.stl", + "bed_texture": "deltamaker_2_buildplate_texture.png", + "default_materials": "DeltaMaker Brand PLA;DeltaMaker Generic PLA" +} diff --git a/resources/profiles/DeltaMaker/machine/fdm_klipper_common.json b/resources/profiles/DeltaMaker/machine/fdm_klipper_common.json new file mode 100755 index 0000000000..fcfe4d6f72 --- /dev/null +++ b/resources/profiles/DeltaMaker/machine/fdm_klipper_common.json @@ -0,0 +1,60 @@ +{ + "type": "machine", + "name": "fdm_klipper_common", + "from": "system", + "instantiation": "false", + "inherits": "fdm_machine_common", + "gcode_flavor": "klipper", + "machine_max_acceleration_e": ["5000", "5000"], + "machine_max_acceleration_extruding": ["5000", "5000"], + "machine_max_acceleration_retracting": ["5000", "5000"], + "machine_max_acceleration_travel": ["5000", "5000"], + "machine_max_acceleration_x": ["5000", "5000"], + "machine_max_acceleration_y": ["5000", "5000"], + "machine_max_acceleration_z": ["1000", "1000"], + "machine_max_speed_e": ["25", "25"], + "machine_max_speed_x": ["500", "200"], + "machine_max_speed_y": ["500", "200"], + "machine_max_speed_z": ["120", "120"], + "machine_max_jerk_e": ["2.5", "2.5"], + "machine_max_jerk_x": ["9", "9"], + "machine_max_jerk_y": ["9", "9"], + "machine_max_jerk_z": ["2", "2"], + "machine_min_extruding_rate": ["0", "0"], + "machine_min_travel_rate": ["0", "0"], + "max_layer_height": ["0.32"], + "min_layer_height": ["0.08"], + "printable_height": "250", + "extruder_clearance_radius": "65", + "extruder_clearance_height_to_rod": "36", + "extruder_clearance_height_to_lid": "140", + "printer_settings_id": "", + "printer_technology": "FFF", + "printer_variant": "0.5", + "retraction_minimum_travel": ["1"], + "retract_before_wipe": ["70%"], + "retract_when_changing_layer": ["1"], + "retraction_length": ["8"], + "retract_length_toolchange": ["2"], + "z_hop": ["0.8"], + "retract_restart_extra": ["0"], + "retract_restart_extra_toolchange": ["0"], + "retraction_speed": ["60"], + "deretraction_speed": ["30"], + "z_hop_types": "Normal Lift", + "silent_mode": "1", + "single_extruder_multi_material": "1", + "change_filament_gcode": "", + "wipe": ["1"], + "default_filament_profile": ["DeltaMaker PLA"], + "default_print_profile": "0.20mm Standard @DeltaMaker 2 0.35 nozzle", + "bed_exclude_area": ["0x0"], + "machine_start_gcode": "M190 S[bed_temperature_initial_layer_single]\nM109 S[nozzle_temperature_initial_layer]\nSTART_PRINT EXTRUDER=[nozzle_temperature_initial_layer] BED=[bed_temperature_initial_layer_single]\n", + "machine_end_gcode": "END_PRINT", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n", + "machine_pause_gcode": "PAUSE", + "scan_first_layer": "0", + "nozzle_type": "undefined", + "auxiliary_fan": "0" +} diff --git a/resources/profiles/DeltaMaker/machine/fdm_machine_common.json b/resources/profiles/DeltaMaker/machine/fdm_machine_common.json new file mode 100755 index 0000000000..ae0fda9a5d --- /dev/null +++ b/resources/profiles/DeltaMaker/machine/fdm_machine_common.json @@ -0,0 +1,54 @@ +{ + "type": "machine", + "name": "fdm_machine_common", + "from": "system", + "instantiation": "false", + "printer_technology": "FFF", + "extruder_colour": ["#FCE94F"], + "extruder_offset": ["0x0"], + "gcode_flavor": "klipper", + "silent_mode": "1", + "machine_max_acceleration_e": ["5000"], + "machine_max_acceleration_extruding": ["5000"], + "machine_max_acceleration_retracting": ["5000"], + "machine_max_acceleration_x": ["3500"], + "machine_max_acceleration_y": ["3500"], + "machine_max_acceleration_z": ["500"], + "machine_max_speed_e": ["120"], + "machine_max_speed_x": ["500"], + "machine_max_speed_y": ["500"], + "machine_max_speed_z": ["150"], + "machine_max_jerk_e": ["2.5"], + "machine_max_jerk_x": ["10"], + "machine_max_jerk_y": ["10"], + "machine_max_jerk_z": ["2"], + "machine_min_extruding_rate": ["0"], + "machine_min_travel_rate": ["0"], + "max_layer_height": ["0.3"], + "min_layer_height": ["0.1"], + "extruder_clearance_radius": "65", + "extruder_clearance_height_to_rod": "36", + "extruder_clearance_height_to_lid": "140", + "printer_settings_id": "", + "retraction_minimum_travel": ["2"], + "retract_before_wipe": ["0%"], + "retract_when_changing_layer": ["1"], + "retraction_length": ["7"], + "retract_length_toolchange": ["2"], + "z_hop": ["0.8"], + "retract_restart_extra": ["0"], + "retract_restart_extra_toolchange": ["0"], + "retraction_speed": ["80"], + "deretraction_speed": ["40"], + "single_extruder_multi_material": "0", + "change_filament_gcode": "", + "z_lift_type": "NormalLift", + "default_print_profile": "", + "nozzle_type": "undefine", + "auxiliary_fan": "0", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", + "machine_pause_gcode": "", + "machine_start_gcode": "M104 S[nozzle_temperature_initial_layer] ; set temp\nG28\nM109 S[nozzle_temperature_initial_layer] ; wait for temp\nG28\nG91 ; relative positioning\nG1 Z-40 F4000\nG90 ; absolute positioning\n", + "machine_end_gcode": "G28\nM104 S0\nM84 ; disable motors" +} diff --git a/resources/profiles/DeltaMaker/process/0.12mm Fine @DeltaMaker.json b/resources/profiles/DeltaMaker/process/0.12mm Fine @DeltaMaker.json new file mode 100755 index 0000000000..0c2f9c0d22 --- /dev/null +++ b/resources/profiles/DeltaMaker/process/0.12mm Fine @DeltaMaker.json @@ -0,0 +1,20 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.12mm Fine @DeltaMaker", + "from": "system", + "inherits": "fdm_process_common", + "instantiation": "true", + "layer_height": "0.12", + "bottom_shell_layers": "6", + "sparse_infill_density": "15%", + "infill_wall_overlap": "35%", + "ironing_flow": "15%", + "ironing_spacing": "0.1", + "skirt_distance": "3", + "skirt_height": "1", + "tree_support_branch_angle": "40", + "detect_thin_wall": "1", + "top_shell_layers": "8", + "travel_speed": "150" +} diff --git a/resources/profiles/DeltaMaker/process/0.18mm Standard @DeltaMaker.json b/resources/profiles/DeltaMaker/process/0.18mm Standard @DeltaMaker.json new file mode 100755 index 0000000000..97e2e11d25 --- /dev/null +++ b/resources/profiles/DeltaMaker/process/0.18mm Standard @DeltaMaker.json @@ -0,0 +1,25 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.18mm Standard @DeltaMaker", + "from": "system", + "inherits": "fdm_process_common", + "instantiation": "true", + "layer_height": "0.18", + "sparse_infill_density": "15%", + "initial_layer_print_height": "0.25", + "infill_wall_overlap": "35%", + "ironing_flow": "15%", + "ironing_spacing": "0.1", + "ironing_speed": "15", + "overhang_2_4_speed": "20", + "overhang_3_4_speed": "15", + "wall_loops": "3", + "skirt_distance": "3", + "skirt_height": "1", + "skirt_loops": "2", + "detect_thin_wall": "1", + "inner_wall_speed": "40", + "top_surface_speed": "15", + "sparse_infill_speed": "40" +} diff --git a/resources/profiles/DeltaMaker/process/0.25mm Draft @DeltaMaker.json b/resources/profiles/DeltaMaker/process/0.25mm Draft @DeltaMaker.json new file mode 100755 index 0000000000..89d4261bfd --- /dev/null +++ b/resources/profiles/DeltaMaker/process/0.25mm Draft @DeltaMaker.json @@ -0,0 +1,24 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.25mm Draft @DeltaMaker", + "from": "system", + "inherits": "fdm_process_common", + "instantiation": "true", + "adaptive_layer_height": "1", + "layer_height": "0.25", + "bottom_shell_layers": "3", + "bridge_speed": "60", + "wall_infill_order": "inner wall/outer wall/infill", + "sparse_infill_density": "15%", + "sparse_infill_line_width": "0.40", + "infill_wall_overlap": "35%", + "ironing_flow": "15%", + "overhang_2_4_speed": "20", + "overhang_3_4_speed": "15", + "wall_loops": "2", + "print_settings_id": "", + "standby_temperature_delta": "-5", + "detect_thin_wall": "1", + "top_shell_layers": "4" +} diff --git a/resources/profiles/DeltaMaker/process/fdm_process_common.json b/resources/profiles/DeltaMaker/process/fdm_process_common.json new file mode 100755 index 0000000000..2253394cc7 --- /dev/null +++ b/resources/profiles/DeltaMaker/process/fdm_process_common.json @@ -0,0 +1,114 @@ +{ + "type": "process", + "name": "fdm_process_common", + "from": "system", + "instantiation": "false", + "adaptive_layer_height": "0", + "reduce_crossing_wall": "0", + "max_travel_detour_distance": "20.0", + "bottom_surface_pattern": "monotonic", + "bottom_shell_thickness": "0.8", + "bridge_speed": "100", + "brim_type": "no_brim", + "brim_width": "4", + "brim_object_gap": "0.1", + "print_sequence": "by layer", + "default_acceleration": "1000", + "initial_layer_acceleration": "500", + "top_surface_acceleration": "1000", + "travel_acceleration": "1000", + "inner_wall_acceleration": "1000", + "outer_wall_acceleration": "700", + "bridge_no_support": "0", + "draft_shield": "disabled", + "elefant_foot_compensation": "0", + "enable_arc_fitting": "0", + "wall_infill_order": "inner wall/outer wall/infill", + "infill_direction": "45", + "sparse_infill_density": "50%", + "sparse_infill_pattern": "gyroid", + "initial_layer_print_height": "0.25", + "infill_combination": "0", + "infill_wall_overlap": "25%", + "interface_shells": "0", + "ironing_flow": "10%", + "ironing_spacing": "0.15", + "ironing_speed": "30", + "ironing_type": "no ironing", + "reduce_infill_retraction": "1", + "filename_format": "{input_filename_base}_{layer_height}mm_{filament_type[initial_tool]}_{print_time}.gcode", + "detect_overhang_wall": "1", + "slowdown_for_curled_perimeters": "1", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "50", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "10", + "line_width": "120%", + "inner_wall_line_width": "110%", + "outer_wall_line_width": "100%", + "top_surface_line_width": "100%", + "sparse_infill_line_width": "100%", + "initial_layer_line_width": "120%", + "internal_solid_infill_line_width": "120%", + "support_line_width": "110%", + "wall_loops": "2", + "print_settings_id": "", + "raft_layers": "0", + "seam_position": "aligned", + "skirt_distance": "3.0", + "skirt_height": "2", + "min_skirt_length": "4", + "skirt_loops": "3", + "minimum_sparse_infill_area": "15", + "spiral_mode": "0", + "standby_temperature_delta": "-5", + "enable_support": "0", + "resolution": "0.012", + "support_type": "tree(auto)", + "support_on_build_plate_only": "0", + "support_top_z_distance": "0.25", + "support_bottom_z_distance": "0.25", + "support_filament": "0", + "support_interface_loop_pattern": "0", + "support_interface_filament": "0", + "support_interface_top_layers": "1", + "support_interface_bottom_layers": "0", + "support_interface_spacing": "0.25", + "support_interface_speed": "80", + "support_base_pattern": "default", + "support_base_pattern_spacing": "2.5", + "support_speed": "75", + "support_threshold_angle": "25", + "support_object_xy_distance": "0.8", + "tree_support_branch_angle": "45", + "tree_support_wall_count": "0", + "tree_support_with_infill": "0", + "detect_thin_wall": "0", + "top_surface_pattern": "monotonicline", + "top_shell_thickness": "0.8", + "enable_prime_tower": "0", + "wipe_tower_no_sparse_layers": "0", + "prime_tower_width": "12.0", + "xy_hole_compensation": "0", + "xy_contour_compensation": "0", + "layer_height": "0.2", + "bottom_shell_layers": "4", + "top_shell_layers": "4", + "bridge_flow": "0.98", + "initial_layer_speed": "20", + "initial_layer_infill_speed": "20", + "initial_layer_travel_speed": "50%", + "slow_down_layers": "2", + "outer_wall_speed": "50", + "inner_wall_speed": "80", + "sparse_infill_speed": "80", + "internal_solid_infill_speed": "75", + "top_surface_speed": "50", + "gap_infill_speed": "30", + "travel_speed": "150", + "compatible_printers": [ + "DeltaMaker 2 0.35 nozzle", + "DeltaMaker 2T 0.5 nozzle", + "DeltaMaker 2XT 0.5 nozzle" + ] +} diff --git a/resources/profiles/DeltaMaker/process/fdm_process_klipper_common.json b/resources/profiles/DeltaMaker/process/fdm_process_klipper_common.json new file mode 100755 index 0000000000..1fe8e43149 --- /dev/null +++ b/resources/profiles/DeltaMaker/process/fdm_process_klipper_common.json @@ -0,0 +1,23 @@ +{ + "type": "process", + "name": "fdm_process_klipper_common", + "from": "system", + "instantiation": "false", + "inherits": "fdm_process_common", + "default_acceleration": "5000", + "top_surface_acceleration": "3000", + "travel_acceleration": "6000", + "inner_wall_acceleration": "5000", + "outer_wall_acceleration": "3000", + "initial_layer_acceleration": "500", + "initial_layer_speed": "50", + "initial_layer_infill_speed": "105", + "outer_wall_speed": "120", + "inner_wall_speed": "120", + "internal_solid_infill_speed": "120", + "top_surface_speed": "100", + "gap_infill_speed": "100", + "sparse_infill_speed": "120", + "travel_speed": "250", + "exclude_object": "1" +} diff --git a/resources/profiles/Dremel/machine/fdm_machine_common.json b/resources/profiles/Dremel/machine/fdm_machine_common.json index 6bf00c7418..5226911867 100644 --- a/resources/profiles/Dremel/machine/fdm_machine_common.json +++ b/resources/profiles/Dremel/machine/fdm_machine_common.json @@ -90,7 +90,7 @@ "1" ], "retraction_length": [ - "5" + "1" ], "retract_length_toolchange": [ "1" diff --git a/resources/profiles/Elegoo.json b/resources/profiles/Elegoo.json index de8197bbb5..5b556c083f 100644 --- a/resources/profiles/Elegoo.json +++ b/resources/profiles/Elegoo.json @@ -1,9 +1,17 @@ { "name": "Elegoo", - "version": "02.02.00.04", + "version": "02.03.00.00", "force_update": "0", "description": "Elegoo configurations", "machine_model_list": [ + { + "name": "Elegoo Centauri Carbon", + "sub_path": "machine/ECC/Elegoo Centauri Carbon.json" + }, + { + "name": "Elegoo Centauri", + "sub_path": "machine/EC/Elegoo Centauri.json" + }, { "name": "Elegoo Neptune", "sub_path": "machine/Elegoo Neptune.json" @@ -62,6 +70,198 @@ } ], "process_list": [ + { + "name": "fdm_process_ecc_common", + "sub_path": "process/ECC/fdm_process_ecc_common.json" + }, + { + "name": "fdm_process_ecc", + "sub_path": "process/ECC/fdm_process_ecc.json" + }, + { + "name": "fdm_process_ecc_02010", + "sub_path": "process/ECC/fdm_process_ecc_02010.json" + }, + { + "name": "fdm_process_ecc_04020", + "sub_path": "process/ECC/fdm_process_ecc_04020.json" + }, + { + "name": "fdm_process_ecc_06030", + "sub_path": "process/ECC/fdm_process_ecc_06030.json" + }, + { + "name": "fdm_process_ecc_08040", + "sub_path": "process/ECC/fdm_process_ecc_08040.json" + }, + { + "name": "0.20mm Standard @Elegoo CC 0.4 nozzle", + "sub_path": "process/ECC/0.20mm Standard @Elegoo CC 0.4 nozzle.json" + }, + { + "name": "0.10mm Standard @Elegoo CC 0.2 nozzle", + "sub_path": "process/ECC/0.10mm Standard @Elegoo CC 0.2 nozzle.json" + }, + { + "name": "0.30mm Standard @Elegoo CC 0.6 nozzle", + "sub_path": "process/ECC/0.30mm Standard @Elegoo CC 0.6 nozzle.json" + }, + { + "name": "0.40mm Standard @Elegoo CC 0.8 nozzle", + "sub_path": "process/ECC/0.40mm Standard @Elegoo CC 0.8 nozzle.json" + }, + { + "name": "0.48mm Draft @Elegoo CC 0.8 nozzle", + "sub_path": "process/ECC/0.48mm Draft @Elegoo CC 0.8 nozzle.json" + }, + { + "name": "0.42mm Extra Draft @Elegoo CC 0.6 nozzle", + "sub_path": "process/ECC/0.42mm Extra Draft @Elegoo CC 0.6 nozzle.json" + }, + { + "name": "0.36mm Draft @Elegoo CC 0.6 nozzle", + "sub_path": "process/ECC/0.36mm Draft @Elegoo CC 0.6 nozzle.json" + }, + { + "name": "0.32mm Optimal @Elegoo CC 0.8 nozzle", + "sub_path": "process/ECC/0.32mm Optimal @Elegoo CC 0.8 nozzle.json" + }, + { + "name": "0.30mm Strength @Elegoo CC 0.6 nozzle", + "sub_path": "process/ECC/0.30mm Strength @Elegoo CC 0.6 nozzle.json" + }, + { + "name": "0.28mm Extra Draft @Elegoo CC 0.4 nozzle", + "sub_path": "process/ECC/0.28mm Extra Draft @Elegoo CC 0.4 nozzle.json" + }, + { + "name": "0.24mm Optimal @Elegoo CC 0.6 nozzle", + "sub_path": "process/ECC/0.24mm Optimal @Elegoo CC 0.6 nozzle.json" + }, + { + "name": "0.24mm Fine @Elegoo CC 0.8 nozzle", + "sub_path": "process/ECC/0.24mm Fine @Elegoo CC 0.8 nozzle.json" + }, + { + "name": "0.24mm Draft @Elegoo CC 0.4 nozzle", + "sub_path": "process/ECC/0.24mm Draft @Elegoo CC 0.4 nozzle.json" + }, + { + "name": "0.20mm Strength @Elegoo CC 0.4 nozzle", + "sub_path": "process/ECC/0.20mm Strength @Elegoo CC 0.4 nozzle.json" + }, + { + "name": "0.18mm Fine @Elegoo CC 0.6 nozzle", + "sub_path": "process/ECC/0.18mm Fine @Elegoo CC 0.6 nozzle.json" + }, + { + "name": "0.16mm Optimal @Elegoo CC 0.4 nozzle", + "sub_path": "process/ECC/0.16mm Optimal @Elegoo CC 0.4 nozzle.json" + }, + { + "name": "0.16mm Extra Fine @Elegoo CC 0.8 nozzle", + "sub_path": "process/ECC/0.16mm Extra Fine @Elegoo CC 0.8 nozzle.json" + }, + { + "name": "0.14mm Extra Draft @Elegoo CC 0.2 nozzle", + "sub_path": "process/ECC/0.14mm Extra Draft @Elegoo CC 0.2 nozzle.json" + }, + { + "name": "0.12mm Fine @Elegoo CC 0.4 nozzle", + "sub_path": "process/ECC/0.12mm Fine @Elegoo CC 0.4 nozzle.json" + }, + { + "name": "0.12mm Draft @Elegoo CC 0.2 nozzle", + "sub_path": "process/ECC/0.12mm Draft @Elegoo CC 0.2 nozzle.json" + }, + { + "name": "0.08mm Optimal @Elegoo CC 0.2 nozzle", + "sub_path": "process/ECC/0.08mm Optimal @Elegoo CC 0.2 nozzle.json" + }, + { + "name": "0.20mm Standard @Elegoo C 0.4 nozzle", + "sub_path": "process/EC/0.20mm Standard @Elegoo C 0.4 nozzle.json" + }, + { + "name": "0.10mm Standard @Elegoo C 0.2 nozzle", + "sub_path": "process/EC/0.10mm Standard @Elegoo C 0.2 nozzle.json" + }, + { + "name": "0.30mm Standard @Elegoo C 0.6 nozzle", + "sub_path": "process/EC/0.30mm Standard @Elegoo C 0.6 nozzle.json" + }, + { + "name": "0.40mm Standard @Elegoo C 0.8 nozzle", + "sub_path": "process/EC/0.40mm Standard @Elegoo C 0.8 nozzle.json" + }, + { + "name": "0.48mm Draft @Elegoo C 0.8 nozzle", + "sub_path": "process/EC/0.48mm Draft @Elegoo C 0.8 nozzle.json" + }, + { + "name": "0.42mm Extra Draft @Elegoo C 0.6 nozzle", + "sub_path": "process/EC/0.42mm Extra Draft @Elegoo C 0.6 nozzle.json" + }, + { + "name": "0.36mm Draft @Elegoo C 0.6 nozzle", + "sub_path": "process/EC/0.36mm Draft @Elegoo C 0.6 nozzle.json" + }, + { + "name": "0.32mm Optimal @Elegoo C 0.8 nozzle", + "sub_path": "process/EC/0.32mm Optimal @Elegoo C 0.8 nozzle.json" + }, + { + "name": "0.30mm Strength @Elegoo C 0.6 nozzle", + "sub_path": "process/EC/0.30mm Strength @Elegoo C 0.6 nozzle.json" + }, + { + "name": "0.28mm Extra Draft @Elegoo C 0.4 nozzle", + "sub_path": "process/EC/0.28mm Extra Draft @Elegoo C 0.4 nozzle.json" + }, + { + "name": "0.24mm Optimal @Elegoo C 0.6 nozzle", + "sub_path": "process/EC/0.24mm Optimal @Elegoo C 0.6 nozzle.json" + }, + { + "name": "0.24mm Fine @Elegoo C 0.8 nozzle", + "sub_path": "process/EC/0.24mm Fine @Elegoo C 0.8 nozzle.json" + }, + { + "name": "0.24mm Draft @Elegoo C 0.4 nozzle", + "sub_path": "process/EC/0.24mm Draft @Elegoo C 0.4 nozzle.json" + }, + { + "name": "0.20mm Strength @Elegoo C 0.4 nozzle", + "sub_path": "process/EC/0.20mm Strength @Elegoo C 0.4 nozzle.json" + }, + { + "name": "0.18mm Fine @Elegoo C 0.6 nozzle", + "sub_path": "process/EC/0.18mm Fine @Elegoo C 0.6 nozzle.json" + }, + { + "name": "0.16mm Optimal @Elegoo C 0.4 nozzle", + "sub_path": "process/EC/0.16mm Optimal @Elegoo C 0.4 nozzle.json" + }, + { + "name": "0.16mm Extra Fine @Elegoo C 0.8 nozzle", + "sub_path": "process/EC/0.16mm Extra Fine @Elegoo C 0.8 nozzle.json" + }, + { + "name": "0.14mm Extra Draft @Elegoo C 0.2 nozzle", + "sub_path": "process/EC/0.14mm Extra Draft @Elegoo C 0.2 nozzle.json" + }, + { + "name": "0.12mm Fine @Elegoo C 0.4 nozzle", + "sub_path": "process/EC/0.12mm Fine @Elegoo C 0.4 nozzle.json" + }, + { + "name": "0.12mm Draft @Elegoo C 0.2 nozzle", + "sub_path": "process/EC/0.12mm Draft @Elegoo C 0.2 nozzle.json" + }, + { + "name": "0.08mm Optimal @Elegoo C 0.2 nozzle", + "sub_path": "process/EC/0.08mm Optimal @Elegoo C 0.2 nozzle.json" + }, { "name": "fdm_process_common", "sub_path": "process/fdm_process_common.json" @@ -775,7 +975,183 @@ "sub_path": "process/0.16mm Optimal @Elegoo Giga 0.4 nozzle.json" } ], - "filament_list": [ + "filament_list": [ + { + "name": "fdm_elegoo_filament_common", + "sub_path": "filament/ELEGOO/fdm_elegoo_filament_common.json" + }, + { + "name": "fdm_elegoo_filament_pla", + "sub_path": "filament/ELEGOO/fdm_elegoo_filament_pla.json" + }, + { + "name": "fdm_elegoo_filament_tpu", + "sub_path": "filament/ELEGOO/fdm_elegoo_filament_tpu.json" + }, + { + "name": "fdm_elegoo_filament_pet", + "sub_path": "filament/ELEGOO/fdm_elegoo_filament_pet.json" + }, + { + "name": "fdm_elegoo_filament_asa", + "sub_path": "filament/ELEGOO/fdm_elegoo_filament_asa.json" + }, + { + "name": "Elegoo TPU 95A @base", + "sub_path": "filament/ELEGOO/Elegoo TPU 95A @base.json" + }, + { + "name": "Elegoo PETG PRO @base", + "sub_path": "filament/ELEGOO/Elegoo PETG PRO @base.json" + }, + { + "name": "Elegoo RAPID PETG @base", + "sub_path": "filament/ELEGOO/Elegoo RAPID PETG @base.json" + }, + { + "name": "Elegoo PLA @base", + "sub_path": "filament/ELEGOO/Elegoo PLA @base.json" + }, + { + "name": "Elegoo RAPID PLA+ @base", + "sub_path": "filament/ELEGOO/Elegoo RAPID PLA+ @base.json" + }, + { + "name": "Elegoo PLA Silk @base", + "sub_path": "filament/ELEGOO/Elegoo PLA Silk @base.json" + }, + { + "name": "Elegoo PLA Matte @base", + "sub_path": "filament/ELEGOO/Elegoo PLA Matte @base.json" + }, + { + "name": "Elegoo PLA-CF @base", + "sub_path": "filament/ELEGOO/Elegoo PLA-CF @base.json" + }, + { + "name": "Elegoo ASA @base", + "sub_path": "filament/ELEGOO/Elegoo ASA @base.json" + }, + { + "name": "Elegoo ASA @0.2 nozzle", + "sub_path": "filament/ELEGOO/Elegoo ASA @0.2 nozzle.json" + }, + { + "name": "Elegoo PETG PRO @0.2 nozzle", + "sub_path": "filament/ELEGOO/Elegoo PETG PRO @0.2 nozzle.json" + }, + { + "name": "Elegoo PLA @0.2 nozzle", + "sub_path": "filament/ELEGOO/Elegoo PLA @0.2 nozzle.json" + }, + { + "name": "Elegoo PLA Matte @0.2 nozzle", + "sub_path": "filament/ELEGOO/Elegoo PLA Matte @0.2 nozzle.json" + }, + { + "name": "Elegoo PLA PRO @0.2 nozzle", + "sub_path": "filament/ELEGOO/Elegoo PLA PRO @0.2 nozzle.json" + }, + { + "name": "Elegoo PLA Silk @0.2 nozzle", + "sub_path": "filament/ELEGOO/Elegoo PLA Silk @0.2 nozzle.json" + }, + { + "name": "Elegoo PLA+ @0.2 nozzle", + "sub_path": "filament/ELEGOO/Elegoo PLA+ @0.2 nozzle.json" + }, + { + "name": "Elegoo RAPID PLA+ @0.2 nozzle", + "sub_path": "filament/ELEGOO/Elegoo RAPID PLA+ @0.2 nozzle.json" + }, + { + "name": "Elegoo RAPID PETG @0.2 nozzle", + "sub_path": "filament/ELEGOO/Elegoo RAPID PETG @0.2 nozzle.json" + }, + { + "name": "Elegoo PLA @ECC", + "sub_path": "filament/ECC/Elegoo PLA @ECC.json" + }, + { + "name": "Elegoo PLA PRO @ECC", + "sub_path": "filament/ECC/Elegoo PLA PRO @ECC.json" + }, + { + "name": "Elegoo PLA+ @ECC", + "sub_path": "filament/ECC/Elegoo PLA+ @ECC.json" + }, + { + "name": "Elegoo RAPID PLA+ @ECC", + "sub_path": "filament/ECC/Elegoo RAPID PLA+ @ECC.json" + }, + { + "name": "Elegoo PLA Silk @ECC", + "sub_path": "filament/ECC/Elegoo PLA Silk @ECC.json" + }, + { + "name": "Elegoo PLA Matte @ECC", + "sub_path": "filament/ECC/Elegoo PLA Matte @ECC.json" + }, + { + "name": "Elegoo PLA-CF @ECC", + "sub_path": "filament/ECC/Elegoo PLA-CF @ECC.json" + }, + { + "name": "Elegoo PETG PRO @ECC", + "sub_path": "filament/ECC/Elegoo PETG PRO @ECC.json" + }, + { + "name": "Elegoo RAPID PETG @ECC", + "sub_path": "filament/ECC/Elegoo RAPID PETG @ECC.json" + }, + { + "name": "Elegoo TPU 95A @ECC", + "sub_path": "filament/ECC/Elegoo TPU 95A @ECC.json" + }, + { + "name": "Elegoo ASA @ECC", + "sub_path": "filament/ECC/Elegoo ASA @ECC.json" + }, + { + "name": "Elegoo PLA @EC", + "sub_path": "filament/EC/Elegoo PLA @EC.json" + }, + { + "name": "Elegoo PLA PRO @EC", + "sub_path": "filament/EC/Elegoo PLA PRO @EC.json" + }, + { + "name": "Elegoo PLA+ @EC", + "sub_path": "filament/EC/Elegoo PLA+ @EC.json" + }, + { + "name": "Elegoo RAPID PLA+ @EC", + "sub_path": "filament/EC/Elegoo RAPID PLA+ @EC.json" + }, + { + "name": "Elegoo PLA Silk @EC", + "sub_path": "filament/EC/Elegoo PLA Silk @EC.json" + }, + { + "name": "Elegoo PLA Matte @EC", + "sub_path": "filament/EC/Elegoo PLA Matte @EC.json" + }, + { + "name": "Elegoo PETG PRO @EC", + "sub_path": "filament/EC/Elegoo PETG PRO @EC.json" + }, + { + "name": "Elegoo RAPID PETG @EC", + "sub_path": "filament/EC/Elegoo RAPID PETG @EC.json" + }, + { + "name": "Elegoo TPU 95A @EC", + "sub_path": "filament/EC/Elegoo TPU 95A @EC.json" + }, + { + "name": "Elegoo ASA @EC", + "sub_path": "filament/EC/Elegoo ASA @EC.json" + }, { "name": "fdm_filament_common", "sub_path": "filament/fdm_filament_common.json" @@ -838,6 +1214,46 @@ } ], "machine_list": [ + { + "name": "fdm_machine_ecc_common", + "sub_path": "machine/ECC/fdm_machine_ecc_common.json" + }, + { + "name": "fdm_machine_ecc", + "sub_path": "machine/ECC/fdm_machine_ecc.json" + }, + { + "name": "Elegoo Centauri Carbon 0.4 nozzle", + "sub_path": "machine/ECC/Elegoo Centauri Carbon 0.4 nozzle.json" + }, + { + "name": "Elegoo Centauri Carbon 0.2 nozzle", + "sub_path": "machine/ECC/Elegoo Centauri Carbon 0.2 nozzle.json" + }, + { + "name": "Elegoo Centauri Carbon 0.6 nozzle", + "sub_path": "machine/ECC/Elegoo Centauri Carbon 0.6 nozzle.json" + }, + { + "name": "Elegoo Centauri Carbon 0.8 nozzle", + "sub_path": "machine/ECC/Elegoo Centauri Carbon 0.8 nozzle.json" + }, + { + "name": "Elegoo Centauri 0.4 nozzle", + "sub_path": "machine/EC/Elegoo Centauri 0.4 nozzle.json" + }, + { + "name": "Elegoo Centauri 0.2 nozzle", + "sub_path": "machine/EC/Elegoo Centauri 0.2 nozzle.json" + }, + { + "name": "Elegoo Centauri 0.6 nozzle", + "sub_path": "machine/EC/Elegoo Centauri 0.6 nozzle.json" + }, + { + "name": "Elegoo Centauri 0.8 nozzle", + "sub_path": "machine/EC/Elegoo Centauri 0.8 nozzle.json" + }, { "name": "fdm_machine_common", "sub_path": "machine/fdm_machine_common.json" @@ -971,4 +1387,4 @@ "sub_path": "machine/Elegoo OrangeStorm Giga 0.8 nozzle.json" } ] -} +} \ No newline at end of file diff --git a/resources/profiles/Elegoo/Elegoo Centauri Carbon_cover.png b/resources/profiles/Elegoo/Elegoo Centauri Carbon_cover.png new file mode 100644 index 0000000000..77e395385c Binary files /dev/null and b/resources/profiles/Elegoo/Elegoo Centauri Carbon_cover.png differ diff --git a/resources/profiles/Elegoo/Elegoo Centauri_cover.png b/resources/profiles/Elegoo/Elegoo Centauri_cover.png new file mode 100644 index 0000000000..db621731ba Binary files /dev/null and b/resources/profiles/Elegoo/Elegoo Centauri_cover.png differ diff --git a/resources/profiles/Elegoo/elegoo_CC_buildplate_model.stl b/resources/profiles/Elegoo/elegoo_CC_buildplate_model.stl new file mode 100644 index 0000000000..16710b68b8 Binary files /dev/null and b/resources/profiles/Elegoo/elegoo_CC_buildplate_model.stl differ diff --git a/resources/profiles/Elegoo/elegoo_C_buildplate_model.stl b/resources/profiles/Elegoo/elegoo_C_buildplate_model.stl new file mode 100644 index 0000000000..16710b68b8 Binary files /dev/null and b/resources/profiles/Elegoo/elegoo_C_buildplate_model.stl differ diff --git a/resources/profiles/Elegoo/elegoo_orangestorm_giga_buildplate_texture.png b/resources/profiles/Elegoo/elegoo_orangestorm_giga_buildplate_texture.png index 2c0e148da1..227755d038 100644 Binary files a/resources/profiles/Elegoo/elegoo_orangestorm_giga_buildplate_texture.png and b/resources/profiles/Elegoo/elegoo_orangestorm_giga_buildplate_texture.png differ diff --git a/resources/profiles/Elegoo/filament/EC/Elegoo ASA @EC.json b/resources/profiles/Elegoo/filament/EC/Elegoo ASA @EC.json new file mode 100644 index 0000000000..b1b917a6db --- /dev/null +++ b/resources/profiles/Elegoo/filament/EC/Elegoo ASA @EC.json @@ -0,0 +1,23 @@ +{ + "type": "filament", + "name": "Elegoo ASA @EC", + "inherits": "Elegoo ASA @base", + "from": "system", + "setting_id": "EASAEC", + "instantiation": "true", + "pressure_advance": [ + "0.024" + ], + "nozzle_temperature": [ + "270" + ], + "nozzle_temperature_initial_layer": [ + "270" + ], + "compatible_printers": [ + "Elegoo Centauri 0.4 nozzle", + "Elegoo Centauri 0.6 nozzle", + "Elegoo Centauri 0.8 nozzle" + ] +} + \ No newline at end of file diff --git a/resources/profiles/Elegoo/filament/EC/Elegoo PETG PRO @EC.json b/resources/profiles/Elegoo/filament/EC/Elegoo PETG PRO @EC.json new file mode 100644 index 0000000000..84ffa4264c --- /dev/null +++ b/resources/profiles/Elegoo/filament/EC/Elegoo PETG PRO @EC.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "name": "Elegoo PETG PRO @EC", + "inherits": "Elegoo PETG PRO @base", + "from": "system", + "setting_id": "EPETGPROEC", + "instantiation": "true", + "pressure_advance": [ + "0.024" + ], + "compatible_printers": [ + "Elegoo Centauri 0.4 nozzle", + "Elegoo Centauri 0.6 nozzle", + "Elegoo Centauri 0.8 nozzle" + ] +} diff --git a/resources/profiles/Elegoo/filament/EC/Elegoo PLA @EC.json b/resources/profiles/Elegoo/filament/EC/Elegoo PLA @EC.json new file mode 100644 index 0000000000..549dfeda68 --- /dev/null +++ b/resources/profiles/Elegoo/filament/EC/Elegoo PLA @EC.json @@ -0,0 +1,31 @@ +{ + "type": "filament", + "name": "Elegoo PLA @EC", + "inherits": "Elegoo PLA @base", + "from": "system", + "setting_id": "EPLAEC", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "21" + ], + "nozzle_temperature_initial_layer": [ + "210" + ], + "nozzle_temperature": [ + "210" + ], + "pressure_advance": [ + "0.024" + ], + "slow_down_layer_time": [ + "4" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ], + "compatible_printers": [ + "Elegoo Centauri 0.4 nozzle", + "Elegoo Centauri 0.6 nozzle", + "Elegoo Centauri 0.8 nozzle" + ] +} diff --git a/resources/profiles/Elegoo/filament/EC/Elegoo PLA Matte @EC.json b/resources/profiles/Elegoo/filament/EC/Elegoo PLA Matte @EC.json new file mode 100644 index 0000000000..fac450b2c9 --- /dev/null +++ b/resources/profiles/Elegoo/filament/EC/Elegoo PLA Matte @EC.json @@ -0,0 +1,46 @@ +{ + "type": "filament", + "name": "Elegoo PLA Matte @EC", + "inherits": "Elegoo PLA Matte @base", + "from": "system", + "setting_id": "EPLAMEC", + "instantiation": "true", + "fan_cooling_layer_time": [ + "80" + ], + "fan_max_speed": [ + "80" + ], + "fan_min_speed": [ + "60" + ], + "filament_max_volumetric_speed": [ + "16" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "slow_down_layer_time": [ + "6" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "pressure_advance": [ + "0.024" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ], + "compatible_printers": [ + "Elegoo Centauri 0.4 nozzle", + "Elegoo Centauri 0.6 nozzle", + "Elegoo Centauri 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Elegoo/filament/EC/Elegoo PLA PRO @EC.json b/resources/profiles/Elegoo/filament/EC/Elegoo PLA PRO @EC.json new file mode 100644 index 0000000000..78aa71d384 --- /dev/null +++ b/resources/profiles/Elegoo/filament/EC/Elegoo PLA PRO @EC.json @@ -0,0 +1,25 @@ +{ + "type": "filament", + "name": "Elegoo PLA PRO @EC", + "inherits": "Elegoo PLA @base", + "from": "system", + "setting_id": "EPLAPROEC", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "20" + ], + "pressure_advance": [ + "0.024" + ], + "slow_down_layer_time": [ + "6" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ], + "compatible_printers": [ + "Elegoo Centauri 0.4 nozzle", + "Elegoo Centauri 0.6 nozzle", + "Elegoo Centauri 0.8 nozzle" + ] +} diff --git a/resources/profiles/Elegoo/filament/EC/Elegoo PLA Silk @EC.json b/resources/profiles/Elegoo/filament/EC/Elegoo PLA Silk @EC.json new file mode 100644 index 0000000000..a8ac184802 --- /dev/null +++ b/resources/profiles/Elegoo/filament/EC/Elegoo PLA Silk @EC.json @@ -0,0 +1,43 @@ +{ + "type": "filament", + "name": "Elegoo PLA Silk @EC", + "inherits": "Elegoo PLA Silk @base", + "from": "system", + "setting_id": "EPLASEC", + "instantiation": "true", + "fan_cooling_layer_time": [ + "80" + ], + "fan_max_speed": [ + "80" + ], + "fan_min_speed": [ + "60" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "slow_down_layer_time": [ + "8" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "pressure_advance": [ + "0.024" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ], + "compatible_printers": [ + "Elegoo Centauri 0.4 nozzle", + "Elegoo Centauri 0.6 nozzle", + "Elegoo Centauri 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Elegoo/filament/EC/Elegoo PLA+ @EC.json b/resources/profiles/Elegoo/filament/EC/Elegoo PLA+ @EC.json new file mode 100644 index 0000000000..47299a382c --- /dev/null +++ b/resources/profiles/Elegoo/filament/EC/Elegoo PLA+ @EC.json @@ -0,0 +1,25 @@ +{ + "type": "filament", + "name": "Elegoo PLA+ @EC", + "inherits": "Elegoo PLA @base", + "from": "system", + "setting_id": "EPLAPLUSEC", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "20" + ], + "pressure_advance": [ + "0.024" + ], + "slow_down_layer_time": [ + "6" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ], + "compatible_printers": [ + "Elegoo Centauri 0.4 nozzle", + "Elegoo Centauri 0.6 nozzle", + "Elegoo Centauri 0.8 nozzle" + ] +} diff --git a/resources/profiles/Elegoo/filament/EC/Elegoo RAPID PETG @EC.json b/resources/profiles/Elegoo/filament/EC/Elegoo RAPID PETG @EC.json new file mode 100644 index 0000000000..62359032c8 --- /dev/null +++ b/resources/profiles/Elegoo/filament/EC/Elegoo RAPID PETG @EC.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "name": "Elegoo RAPID PETG @EC", + "inherits": "Elegoo RAPID PETG @base", + "from": "system", + "setting_id": "ERPETGEC", + "instantiation": "true", + "pressure_advance": [ + "0.024" + ], + "compatible_printers": [ + "Elegoo Centauri 0.4 nozzle", + "Elegoo Centauri 0.6 nozzle", + "Elegoo Centauri 0.8 nozzle" + ] +} diff --git a/resources/profiles/Elegoo/filament/EC/Elegoo RAPID PLA+ @EC.json b/resources/profiles/Elegoo/filament/EC/Elegoo RAPID PLA+ @EC.json new file mode 100644 index 0000000000..4ae38a2c68 --- /dev/null +++ b/resources/profiles/Elegoo/filament/EC/Elegoo RAPID PLA+ @EC.json @@ -0,0 +1,46 @@ +{ + "type": "filament", + "name": "Elegoo RAPID PLA+ @EC", + "inherits": "Elegoo RAPID PLA+ @base", + "from": "system", + "setting_id": "ERPLAPLUSEC", + "instantiation": "true", + "fan_cooling_layer_time": [ + "80" + ], + "fan_max_speed": [ + "100" + ], + "fan_min_speed": [ + "60" + ], + "filament_max_volumetric_speed": [ + "21" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "slow_down_layer_time": [ + "4" + ], + "textured_plate_temp": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "pressure_advance": [ + "0.024" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ], + "compatible_printers": [ + "Elegoo Centauri 0.4 nozzle", + "Elegoo Centauri 0.6 nozzle", + "Elegoo Centauri 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Elegoo/filament/EC/Elegoo TPU 95A @EC.json b/resources/profiles/Elegoo/filament/EC/Elegoo TPU 95A @EC.json new file mode 100644 index 0000000000..6d33bab481 --- /dev/null +++ b/resources/profiles/Elegoo/filament/EC/Elegoo TPU 95A @EC.json @@ -0,0 +1,19 @@ +{ + "type": "filament", + "name": "Elegoo TPU 95A @EC", + "inherits": "Elegoo TPU 95A @base", + "from": "system", + "setting_id": "ETPU95AEC", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "3.2" + ], + "pressure_advance": [ + "0.024" + ], + "compatible_printers": [ + "Elegoo Centauri 0.4 nozzle", + "Elegoo Centauri 0.6 nozzle", + "Elegoo Centauri 0.8 nozzle" + ] +} diff --git a/resources/profiles/Elegoo/filament/ECC/Elegoo ASA @ECC.json b/resources/profiles/Elegoo/filament/ECC/Elegoo ASA @ECC.json new file mode 100644 index 0000000000..3f8a4d7995 --- /dev/null +++ b/resources/profiles/Elegoo/filament/ECC/Elegoo ASA @ECC.json @@ -0,0 +1,23 @@ +{ + "type": "filament", + "name": "Elegoo ASA @ECC", + "inherits": "Elegoo ASA @base", + "from": "system", + "setting_id": "EASAECC", + "instantiation": "true", + "pressure_advance": [ + "0.024" + ], + "nozzle_temperature": [ + "270" + ], + "nozzle_temperature_initial_layer": [ + "270" + ], + "compatible_printers": [ + "Elegoo Centauri Carbon 0.4 nozzle", + "Elegoo Centauri Carbon 0.6 nozzle", + "Elegoo Centauri Carbon 0.8 nozzle" + ] +} + \ No newline at end of file diff --git a/resources/profiles/Elegoo/filament/ECC/Elegoo PETG PRO @ECC.json b/resources/profiles/Elegoo/filament/ECC/Elegoo PETG PRO @ECC.json new file mode 100644 index 0000000000..7fbdc24dcc --- /dev/null +++ b/resources/profiles/Elegoo/filament/ECC/Elegoo PETG PRO @ECC.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "name": "Elegoo PETG PRO @ECC", + "inherits": "Elegoo PETG PRO @base", + "from": "system", + "setting_id": "EPETGPROECC", + "instantiation": "true", + "pressure_advance": [ + "0.024" + ], + "compatible_printers": [ + "Elegoo Centauri Carbon 0.4 nozzle", + "Elegoo Centauri Carbon 0.6 nozzle", + "Elegoo Centauri Carbon 0.8 nozzle" + ] +} diff --git a/resources/profiles/Elegoo/filament/ECC/Elegoo PLA @ECC.json b/resources/profiles/Elegoo/filament/ECC/Elegoo PLA @ECC.json new file mode 100644 index 0000000000..64838026a8 --- /dev/null +++ b/resources/profiles/Elegoo/filament/ECC/Elegoo PLA @ECC.json @@ -0,0 +1,31 @@ +{ + "type": "filament", + "name": "Elegoo PLA @ECC", + "inherits": "Elegoo PLA @base", + "from": "system", + "setting_id": "EPLAECC", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "21" + ], + "nozzle_temperature_initial_layer": [ + "210" + ], + "nozzle_temperature": [ + "210" + ], + "pressure_advance": [ + "0.024" + ], + "slow_down_layer_time": [ + "4" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ], + "compatible_printers": [ + "Elegoo Centauri Carbon 0.4 nozzle", + "Elegoo Centauri Carbon 0.6 nozzle", + "Elegoo Centauri Carbon 0.8 nozzle" + ] +} diff --git a/resources/profiles/Elegoo/filament/ECC/Elegoo PLA Matte @ECC.json b/resources/profiles/Elegoo/filament/ECC/Elegoo PLA Matte @ECC.json new file mode 100644 index 0000000000..e4b8d6a8fc --- /dev/null +++ b/resources/profiles/Elegoo/filament/ECC/Elegoo PLA Matte @ECC.json @@ -0,0 +1,46 @@ +{ + "type": "filament", + "name": "Elegoo PLA Matte @ECC", + "inherits": "Elegoo PLA Matte @base", + "from": "system", + "setting_id": "EPLAMECC", + "instantiation": "true", + "fan_cooling_layer_time": [ + "80" + ], + "fan_max_speed": [ + "80" + ], + "fan_min_speed": [ + "60" + ], + "filament_max_volumetric_speed": [ + "16" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "slow_down_layer_time": [ + "6" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "pressure_advance": [ + "0.024" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ], + "compatible_printers": [ + "Elegoo Centauri Carbon 0.4 nozzle", + "Elegoo Centauri Carbon 0.6 nozzle", + "Elegoo Centauri Carbon 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Elegoo/filament/ECC/Elegoo PLA PRO @ECC.json b/resources/profiles/Elegoo/filament/ECC/Elegoo PLA PRO @ECC.json new file mode 100644 index 0000000000..e169374edb --- /dev/null +++ b/resources/profiles/Elegoo/filament/ECC/Elegoo PLA PRO @ECC.json @@ -0,0 +1,25 @@ +{ + "type": "filament", + "name": "Elegoo PLA PRO @ECC", + "inherits": "Elegoo PLA @base", + "from": "system", + "setting_id": "EPLAPROECC", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "20" + ], + "pressure_advance": [ + "0.024" + ], + "slow_down_layer_time": [ + "6" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ], + "compatible_printers": [ + "Elegoo Centauri Carbon 0.4 nozzle", + "Elegoo Centauri Carbon 0.6 nozzle", + "Elegoo Centauri Carbon 0.8 nozzle" + ] +} diff --git a/resources/profiles/Elegoo/filament/ECC/Elegoo PLA Silk @ECC.json b/resources/profiles/Elegoo/filament/ECC/Elegoo PLA Silk @ECC.json new file mode 100644 index 0000000000..56101b838e --- /dev/null +++ b/resources/profiles/Elegoo/filament/ECC/Elegoo PLA Silk @ECC.json @@ -0,0 +1,43 @@ +{ + "type": "filament", + "name": "Elegoo PLA Silk @ECC", + "inherits": "Elegoo PLA Silk @base", + "from": "system", + "setting_id": "EPLASECC", + "instantiation": "true", + "fan_cooling_layer_time": [ + "80" + ], + "fan_max_speed": [ + "80" + ], + "fan_min_speed": [ + "60" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "slow_down_layer_time": [ + "8" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "pressure_advance": [ + "0.024" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ], + "compatible_printers": [ + "Elegoo Centauri Carbon 0.4 nozzle", + "Elegoo Centauri Carbon 0.6 nozzle", + "Elegoo Centauri Carbon 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Elegoo/filament/ECC/Elegoo PLA+ @ECC.json b/resources/profiles/Elegoo/filament/ECC/Elegoo PLA+ @ECC.json new file mode 100644 index 0000000000..21e0471e8a --- /dev/null +++ b/resources/profiles/Elegoo/filament/ECC/Elegoo PLA+ @ECC.json @@ -0,0 +1,25 @@ +{ + "type": "filament", + "name": "Elegoo PLA+ @ECC", + "inherits": "Elegoo PLA @base", + "from": "system", + "setting_id": "EPLAPLUSECC", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "20" + ], + "pressure_advance": [ + "0.024" + ], + "slow_down_layer_time": [ + "6" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ], + "compatible_printers": [ + "Elegoo Centauri Carbon 0.4 nozzle", + "Elegoo Centauri Carbon 0.6 nozzle", + "Elegoo Centauri Carbon 0.8 nozzle" + ] +} diff --git a/resources/profiles/Elegoo/filament/ECC/Elegoo PLA-CF @ECC.json b/resources/profiles/Elegoo/filament/ECC/Elegoo PLA-CF @ECC.json new file mode 100644 index 0000000000..a8a887eece --- /dev/null +++ b/resources/profiles/Elegoo/filament/ECC/Elegoo PLA-CF @ECC.json @@ -0,0 +1,46 @@ +{ + "type": "filament", + "name": "Elegoo PLA-CF @ECC", + "inherits": "Elegoo PLA-CF @base", + "from": "system", + "setting_id": "EPLACFECC", + "instantiation": "true", + "fan_cooling_layer_time": [ + "80" + ], + "fan_max_speed": [ + "80" + ], + "fan_min_speed": [ + "60" + ], + "filament_max_volumetric_speed": [ + "21" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "slow_down_layer_time": [ + "6" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "pressure_advance": [ + "0.024" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ], + "compatible_printers": [ + "Elegoo Centauri Carbon 0.4 nozzle", + "Elegoo Centauri Carbon 0.6 nozzle", + "Elegoo Centauri Carbon 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Elegoo/filament/ECC/Elegoo RAPID PETG @ECC.json b/resources/profiles/Elegoo/filament/ECC/Elegoo RAPID PETG @ECC.json new file mode 100644 index 0000000000..d88ba1ff12 --- /dev/null +++ b/resources/profiles/Elegoo/filament/ECC/Elegoo RAPID PETG @ECC.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "name": "Elegoo RAPID PETG @ECC", + "inherits": "Elegoo RAPID PETG @base", + "from": "system", + "setting_id": "ERPETGECC", + "instantiation": "true", + "pressure_advance": [ + "0.024" + ], + "compatible_printers": [ + "Elegoo Centauri Carbon 0.4 nozzle", + "Elegoo Centauri Carbon 0.6 nozzle", + "Elegoo Centauri Carbon 0.8 nozzle" + ] +} diff --git a/resources/profiles/Elegoo/filament/ECC/Elegoo RAPID PLA+ @ECC.json b/resources/profiles/Elegoo/filament/ECC/Elegoo RAPID PLA+ @ECC.json new file mode 100644 index 0000000000..68312b569d --- /dev/null +++ b/resources/profiles/Elegoo/filament/ECC/Elegoo RAPID PLA+ @ECC.json @@ -0,0 +1,46 @@ +{ + "type": "filament", + "name": "Elegoo RAPID PLA+ @ECC", + "inherits": "Elegoo RAPID PLA+ @base", + "from": "system", + "setting_id": "ERPLAPLUSECC", + "instantiation": "true", + "fan_cooling_layer_time": [ + "80" + ], + "fan_max_speed": [ + "100" + ], + "fan_min_speed": [ + "60" + ], + "filament_max_volumetric_speed": [ + "21" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "slow_down_layer_time": [ + "4" + ], + "textured_plate_temp": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "pressure_advance": [ + "0.024" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ], + "compatible_printers": [ + "Elegoo Centauri Carbon 0.4 nozzle", + "Elegoo Centauri Carbon 0.6 nozzle", + "Elegoo Centauri Carbon 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Elegoo/filament/ECC/Elegoo TPU 95A @ECC.json b/resources/profiles/Elegoo/filament/ECC/Elegoo TPU 95A @ECC.json new file mode 100644 index 0000000000..e41926a16c --- /dev/null +++ b/resources/profiles/Elegoo/filament/ECC/Elegoo TPU 95A @ECC.json @@ -0,0 +1,19 @@ +{ + "type": "filament", + "name": "Elegoo TPU 95A @ECC", + "inherits": "Elegoo TPU 95A @base", + "from": "system", + "setting_id": "ETPU95AECC", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "3.2" + ], + "pressure_advance": [ + "0.024" + ], + "compatible_printers": [ + "Elegoo Centauri Carbon 0.4 nozzle", + "Elegoo Centauri Carbon 0.6 nozzle", + "Elegoo Centauri Carbon 0.8 nozzle" + ] +} diff --git a/resources/profiles/Elegoo/filament/ELEGOO/Elegoo ASA @0.2 nozzle.json b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo ASA @0.2 nozzle.json new file mode 100644 index 0000000000..945d91ddb6 --- /dev/null +++ b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo ASA @0.2 nozzle.json @@ -0,0 +1,23 @@ +{ + "type": "filament", + "name": "Elegoo ASA @0.2 nozzle", + "inherits": "Elegoo ASA @base", + "from": "system", + "setting_id": "EASA00020", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "3.2" + ], + "compatible_printers": [ + "Elegoo Centauri 0.2 nozzle", + "Elegoo Centauri Carbon 0.2 nozzle", + "Elegoo Neptune 4 0.2 nozzle", + "Elegoo Neptune 4 Pro 0.2 nozzle", + "Elegoo Neptune 4 Plus 0.2 nozzle", + "Elegoo Neptune 4 Max 0.2 nozzle", + "Elegoo Neptune 3 Pro 0.2 nozzle", + "Elegoo Neptune 3 Plus 0.2 nozzle", + "Elegoo Neptune 3 Max 0.2 nozzle" + ] +} + \ No newline at end of file diff --git a/resources/profiles/Elegoo/filament/ELEGOO/Elegoo ASA @base.json b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo ASA @base.json new file mode 100644 index 0000000000..78386c7351 --- /dev/null +++ b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo ASA @base.json @@ -0,0 +1,17 @@ +{ + "type": "filament", + "name": "Elegoo ASA @base", + "inherits": "fdm_elegoo_filament_asa", + "from": "system", + "filament_id": "EASAB00", + "instantiation": "false", + "filament_vendor": [ + "Elegoo" + ], + "filament_density": [ + "1.1" + ], + "filament_max_volumetric_speed": [ + "12" + ] +} \ No newline at end of file diff --git a/resources/profiles/Elegoo/filament/ELEGOO/Elegoo ASA.json b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo ASA.json new file mode 100644 index 0000000000..8381f0978f --- /dev/null +++ b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo ASA.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "name": "Elegoo ASA", + "inherits": "Elegoo ASA @base", + "from": "system", + "setting_id": "EASA00", + "instantiation": "true", + "compatible_printers": [ + ] +} + \ No newline at end of file diff --git a/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PETG PRO @0.2 nozzle.json b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PETG PRO @0.2 nozzle.json new file mode 100644 index 0000000000..cb9c132128 --- /dev/null +++ b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PETG PRO @0.2 nozzle.json @@ -0,0 +1,22 @@ +{ + "type": "filament", + "name": "Elegoo PETG PRO @0.2 nozzle", + "inherits": "Elegoo PETG PRO @base", + "from": "system", + "setting_id": "EGPETG00020", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "1" + ], + "compatible_printers": [ + "Elegoo Centauri 0.2 nozzle", + "Elegoo Centauri Carbon 0.2 nozzle", + "Elegoo Neptune 4 0.2 nozzle", + "Elegoo Neptune 4 Pro 0.2 nozzle", + "Elegoo Neptune 4 Plus 0.2 nozzle", + "Elegoo Neptune 4 Max 0.2 nozzle", + "Elegoo Neptune 3 Pro 0.2 nozzle", + "Elegoo Neptune 3 Plus 0.2 nozzle", + "Elegoo Neptune 3 Max 0.2 nozzle" + ] +} diff --git a/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PETG PRO @base.json b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PETG PRO @base.json new file mode 100644 index 0000000000..82edb3f89c --- /dev/null +++ b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PETG PRO @base.json @@ -0,0 +1,83 @@ +{ + "type": "filament", + "name": "Elegoo PETG PRO @base", + "inherits": "fdm_elegoo_filament_pet", + "from": "system", + "filament_id": "EPETGPROB00", + "instantiation": "false", + "cool_plate_temp": [ + "0" + ], + "cool_plate_temp_initial_layer": [ + "0" + ], + "eng_plate_temp": [ + "70" + ], + "eng_plate_temp_initial_layer": [ + "70" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "10" + ], + "filament_cost": [ + "0" + ], + "filament_density": [ + "1.25" + ], + "filament_max_volumetric_speed": [ + "8" + ], + "filament_vendor": [ + "Elegoo" + ], + "hot_plate_temp": [ + "70" + ], + "hot_plate_temp_initial_layer": [ + "70" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "230" + ], + "nozzle_temperature": [ + "240" + ], + "nozzle_temperature_initial_layer": [ + "240" + ], + "overhang_fan_speed": [ + "90" + ], + "overhang_fan_threshold": [ + "10%" + ], + "slow_down_layer_time": [ + "12" + ], + "textured_plate_temp": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "70" + ], + "filament_start_gcode": [ + "; Filament start gcode\n" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "filament_type": [ + "PETG" + ] +} \ No newline at end of file diff --git a/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PETG PRO.json b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PETG PRO.json new file mode 100644 index 0000000000..12c6fd1c33 --- /dev/null +++ b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PETG PRO.json @@ -0,0 +1,10 @@ +{ + "type": "filament", + "name": "Elegoo PETG PRO", + "inherits": "Elegoo PETG PRO @base", + "from": "system", + "setting_id": "EPETGPRO00", + "instantiation": "true", + "compatible_printers": [ + ] +} diff --git a/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PLA @0.2 nozzle.json b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PLA @0.2 nozzle.json new file mode 100644 index 0000000000..26f3efd91b --- /dev/null +++ b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PLA @0.2 nozzle.json @@ -0,0 +1,22 @@ +{ + "type": "filament", + "name": "Elegoo PLA @0.2 nozzle", + "from": "system", + "setting_id": "EPLA00020", + "instantiation": "true", + "inherits": "Elegoo PLA @base", + "filament_max_volumetric_speed": [ + "3.2" + ], + "compatible_printers": [ + "Elegoo Centauri 0.2 nozzle", + "Elegoo Centauri Carbon 0.2 nozzle", + "Elegoo Neptune 4 0.2 nozzle", + "Elegoo Neptune 4 Pro 0.2 nozzle", + "Elegoo Neptune 4 Plus 0.2 nozzle", + "Elegoo Neptune 4 Max 0.2 nozzle", + "Elegoo Neptune 3 Pro 0.2 nozzle", + "Elegoo Neptune 3 Plus 0.2 nozzle", + "Elegoo Neptune 3 Max 0.2 nozzle" + ] +} diff --git a/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PLA @base.json b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PLA @base.json new file mode 100644 index 0000000000..5b837fd233 --- /dev/null +++ b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PLA @base.json @@ -0,0 +1,23 @@ +{ + "type": "filament", + "name": "Elegoo PLA @base", + "inherits": "fdm_elegoo_filament_pla", + "from": "system", + "filament_id": "EPLAB00", + "instantiation": "false", + "filament_cost": [ + "0" + ], + "filament_density": [ + "1.25" + ], + "filament_max_volumetric_speed": [ + "16" + ], + "filament_vendor": [ + "Elegoo" + ], + "filament_start_gcode": [ + "; filament start gcode\n" + ] +} \ No newline at end of file diff --git a/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PLA Matte @0.2 nozzle.json b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PLA Matte @0.2 nozzle.json new file mode 100644 index 0000000000..0cd3391585 --- /dev/null +++ b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PLA Matte @0.2 nozzle.json @@ -0,0 +1,46 @@ +{ + "type": "filament", + "name": "Elegoo PLA Matte @0.2 nozzle", + "inherits": "Elegoo PLA Matte @base", + "from": "system", + "setting_id": "EPLAM00020", + "instantiation": "true", + "fan_cooling_layer_time": [ + "80" + ], + "fan_max_speed": [ + "80" + ], + "fan_min_speed": [ + "60" + ], + "filament_max_volumetric_speed": [ + "2" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "slow_down_layer_time": [ + "6" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "compatible_printers": [ + "Elegoo Centauri 0.2 nozzle", + "Elegoo Centauri Carbon 0.2 nozzle", + "Elegoo Neptune 4 0.2 nozzle", + "Elegoo Neptune 4 Pro 0.2 nozzle", + "Elegoo Neptune 4 Plus 0.2 nozzle", + "Elegoo Neptune 4 Max 0.2 nozzle", + "Elegoo Neptune 3 Pro 0.2 nozzle", + "Elegoo Neptune 3 Plus 0.2 nozzle", + "Elegoo Neptune 3 Max 0.2 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PLA Matte @base.json b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PLA Matte @base.json new file mode 100644 index 0000000000..55c747b373 --- /dev/null +++ b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PLA Matte @base.json @@ -0,0 +1,20 @@ +{ + "type": "filament", + "name": "Elegoo PLA Matte @base", + "inherits": "fdm_elegoo_filament_pla", + "from": "system", + "filament_id": "EPLAMB00", + "instantiation": "false", + "filament_cost": [ + "0" + ], + "filament_density": [ + "1.25" + ], + "filament_vendor": [ + "Elegoo" + ], + "filament_start_gcode": [ + "; filament start gcode\n" + ] +} \ No newline at end of file diff --git a/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PLA Matte.json b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PLA Matte.json new file mode 100644 index 0000000000..cc002d1b0d --- /dev/null +++ b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PLA Matte.json @@ -0,0 +1,37 @@ +{ + "type": "filament", + "name": "Elegoo PLA Matte", + "inherits": "Elegoo PLA Matte @base", + "from": "system", + "setting_id": "EPLAM00", + "instantiation": "true", + "fan_cooling_layer_time": [ + "80" + ], + "fan_max_speed": [ + "80" + ], + "fan_min_speed": [ + "60" + ], + "filament_max_volumetric_speed": [ + "16" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "slow_down_layer_time": [ + "6" + ], + "textured_plate_temp": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "compatible_printers": [ + ] +} \ No newline at end of file diff --git a/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PLA PRO @0.2 nozzle.json b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PLA PRO @0.2 nozzle.json new file mode 100644 index 0000000000..a46f14d250 --- /dev/null +++ b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PLA PRO @0.2 nozzle.json @@ -0,0 +1,22 @@ +{ + "type": "filament", + "name": "Elegoo PLA PRO @0.2 nozzle", + "inherits": "Elegoo PLA @base", + "from": "system", + "setting_id": "EPLAPRO00020", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "3.2" + ], + "compatible_printers": [ + "Elegoo Centauri 0.2 nozzle", + "Elegoo Centauri Carbon 0.2 nozzle", + "Elegoo Neptune 4 0.2 nozzle", + "Elegoo Neptune 4 Pro 0.2 nozzle", + "Elegoo Neptune 4 Plus 0.2 nozzle", + "Elegoo Neptune 4 Max 0.2 nozzle", + "Elegoo Neptune 3 Pro 0.2 nozzle", + "Elegoo Neptune 3 Plus 0.2 nozzle", + "Elegoo Neptune 3 Max 0.2 nozzle" + ] +} diff --git a/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PLA PRO.json b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PLA PRO.json new file mode 100644 index 0000000000..6ddbe449ef --- /dev/null +++ b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PLA PRO.json @@ -0,0 +1,13 @@ +{ + "type": "filament", + "name": "Elegoo PLA PRO", + "inherits": "Elegoo PLA @base", + "from": "system", + "setting_id": "EPLAPRO00", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "16" + ], + "compatible_printers": [ + ] +} diff --git a/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PLA Silk @0.2 nozzle.json b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PLA Silk @0.2 nozzle.json new file mode 100644 index 0000000000..43994c5f57 --- /dev/null +++ b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PLA Silk @0.2 nozzle.json @@ -0,0 +1,46 @@ +{ + "type": "filament", + "name": "Elegoo PLA Silk @0.2 nozzle", + "inherits": "Elegoo PLA Silk @base", + "from": "system", + "setting_id": "EPLAS00020", + "instantiation": "true", + "fan_cooling_layer_time": [ + "80" + ], + "fan_max_speed": [ + "80" + ], + "fan_min_speed": [ + "60" + ], + "filament_max_volumetric_speed": [ + "2" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "slow_down_layer_time": [ + "8" + ], + "textured_plate_temp": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "compatible_printers": [ + "Elegoo Centauri 0.2 nozzle", + "Elegoo Centauri Carbon 0.2 nozzle", + "Elegoo Neptune 4 0.2 nozzle", + "Elegoo Neptune 4 Pro 0.2 nozzle", + "Elegoo Neptune 4 Plus 0.2 nozzle", + "Elegoo Neptune 4 Max 0.2 nozzle", + "Elegoo Neptune 3 Pro 0.2 nozzle", + "Elegoo Neptune 3 Plus 0.2 nozzle", + "Elegoo Neptune 3 Max 0.2 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PLA Silk @base.json b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PLA Silk @base.json new file mode 100644 index 0000000000..ba627e88cb --- /dev/null +++ b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PLA Silk @base.json @@ -0,0 +1,29 @@ +{ + "type": "filament", + "name": "Elegoo PLA Silk @base", + "inherits": "fdm_elegoo_filament_pla", + "from": "system", + "filament_id": "EPLASB00", + "instantiation": "false", + "filament_cost": [ + "0" + ], + "filament_density": [ + "1.32" + ], + "filament_vendor": [ + "Elegoo" + ], + "filament_max_volumetric_speed": [ + "16" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "filament_start_gcode": [ + "; filament start gcode\n" + ] +} \ No newline at end of file diff --git a/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PLA Silk.json b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PLA Silk.json new file mode 100644 index 0000000000..eb576dce2d --- /dev/null +++ b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PLA Silk.json @@ -0,0 +1,34 @@ +{ + "type": "filament", + "name": "Elegoo PLA Silk", + "inherits": "Elegoo PLA Silk @base", + "from": "system", + "setting_id": "EPLAS00", + "instantiation": "true", + "fan_cooling_layer_time": [ + "80" + ], + "fan_max_speed": [ + "80" + ], + "fan_min_speed": [ + "60" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "slow_down_layer_time": [ + "8" + ], + "textured_plate_temp": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "compatible_printers": [ + ] +} \ No newline at end of file diff --git a/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PLA+ @0.2 nozzle.json b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PLA+ @0.2 nozzle.json new file mode 100644 index 0000000000..6fc3cbf7fc --- /dev/null +++ b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PLA+ @0.2 nozzle.json @@ -0,0 +1,22 @@ +{ + "type": "filament", + "name": "Elegoo PLA+ @0.2 nozzle", + "inherits": "Elegoo PLA @base", + "from": "system", + "setting_id": "EPLAPLUS00020", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "3.2" + ], + "compatible_printers": [ + "Elegoo Centauri 0.2 nozzle", + "Elegoo Centauri Carbon 0.2 nozzle", + "Elegoo Neptune 4 0.2 nozzle", + "Elegoo Neptune 4 Pro 0.2 nozzle", + "Elegoo Neptune 4 Plus 0.2 nozzle", + "Elegoo Neptune 4 Max 0.2 nozzle", + "Elegoo Neptune 3 Pro 0.2 nozzle", + "Elegoo Neptune 3 Plus 0.2 nozzle", + "Elegoo Neptune 3 Max 0.2 nozzle" + ] +} diff --git a/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PLA+.json b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PLA+.json new file mode 100644 index 0000000000..54cfdb3d0a --- /dev/null +++ b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PLA+.json @@ -0,0 +1,13 @@ +{ + "type": "filament", + "name": "Elegoo PLA+", + "inherits": "Elegoo PLA @base", + "from": "system", + "setting_id": "EPLAPLUS00", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "16" + ], + "compatible_printers": [ + ] +} diff --git a/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PLA-CF @base.json b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PLA-CF @base.json new file mode 100644 index 0000000000..3e2fca2bb6 --- /dev/null +++ b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PLA-CF @base.json @@ -0,0 +1,38 @@ +{ + "type": "filament", + "name": "Elegoo PLA-CF @base", + "inherits": "fdm_elegoo_filament_pla", + "from": "system", + "filament_id": "EPLACFB00", + "instantiation": "false", + "additional_cooling_fan_speed": [ + "0" + ], + "cool_plate_temp": [ + "45" + ], + "cool_plate_temp_initial_layer": [ + "45" + ], + "filament_type": [ + "PLA-CF" + ], + "filament_vendor": [ + "Elegoo" + ], + "filament_density": [ + "1.21" + ], + "required_nozzle_HRC": [ + "40" + ], + "slow_down_layer_time": [ + "7" + ], + "filament_start_gcode": [ + "; Filament start gcode\n" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ] +} \ No newline at end of file diff --git a/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PLA-CF.json b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PLA-CF.json new file mode 100644 index 0000000000..1111ff70f6 --- /dev/null +++ b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PLA-CF.json @@ -0,0 +1,37 @@ +{ + "type": "filament", + "name": "Elegoo PLA-CF", + "inherits": "Elegoo PLA-CF @base", + "from": "system", + "setting_id": "EPLACF00", + "instantiation": "true", + "fan_cooling_layer_time": [ + "80" + ], + "fan_max_speed": [ + "100" + ], + "fan_min_speed": [ + "60" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "slow_down_layer_time": [ + "6" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "compatible_printers": [ + ] +} \ No newline at end of file diff --git a/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PLA.json b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PLA.json new file mode 100644 index 0000000000..5cbb391d81 --- /dev/null +++ b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PLA.json @@ -0,0 +1,13 @@ +{ + "type": "filament", + "name": "Elegoo PLA", + "inherits": "Elegoo PLA @base", + "from": "system", + "setting_id": "EPLA00", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "15" + ], + "compatible_printers": [ + ] +} diff --git a/resources/profiles/Elegoo/filament/ELEGOO/Elegoo RAPID PETG @0.2 nozzle.json b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo RAPID PETG @0.2 nozzle.json new file mode 100644 index 0000000000..105690cfeb --- /dev/null +++ b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo RAPID PETG @0.2 nozzle.json @@ -0,0 +1,22 @@ +{ + "type": "filament", + "name": "Elegoo RAPID PETG @0.2 nozzle", + "inherits": "Elegoo RAPID PETG @base", + "from": "system", + "setting_id": "ERPETG00020", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "1" + ], + "compatible_printers": [ + "Elegoo Centauri 0.2 nozzle", + "Elegoo Centauri Carbon 0.2 nozzle", + "Elegoo Neptune 4 0.2 nozzle", + "Elegoo Neptune 4 Pro 0.2 nozzle", + "Elegoo Neptune 4 Plus 0.2 nozzle", + "Elegoo Neptune 4 Max 0.2 nozzle", + "Elegoo Neptune 3 Pro 0.2 nozzle", + "Elegoo Neptune 3 Plus 0.2 nozzle", + "Elegoo Neptune 3 Max 0.2 nozzle" + ] +} diff --git a/resources/profiles/Elegoo/filament/ELEGOO/Elegoo RAPID PETG @base.json b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo RAPID PETG @base.json new file mode 100644 index 0000000000..d0ae01301c --- /dev/null +++ b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo RAPID PETG @base.json @@ -0,0 +1,83 @@ +{ + "type": "filament", + "name": "Elegoo RAPID PETG @base", + "inherits": "fdm_elegoo_filament_pet", + "from": "system", + "filament_id": "ERPETGB00", + "instantiation": "false", + "cool_plate_temp": [ + "0" + ], + "filament_type": [ + "PETG" + ], + "cool_plate_temp_initial_layer": [ + "0" + ], + "eng_plate_temp": [ + "70" + ], + "eng_plate_temp_initial_layer": [ + "70" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "80" + ], + "fan_min_speed": [ + "30" + ], + "filament_cost": [ + "0" + ], + "filament_density": [ + "1.26" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "filament_vendor": [ + "Elegoo" + ], + "hot_plate_temp": [ + "70" + ], + "hot_plate_temp_initial_layer": [ + "70" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "230" + ], + "nozzle_temperature": [ + "250" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "overhang_fan_speed": [ + "90" + ], + "overhang_fan_threshold": [ + "10%" + ], + "slow_down_layer_time": [ + "12" + ], + "textured_plate_temp": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "70" + ], + "filament_start_gcode": [ + "; Filament start gcode\n" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ] +} \ No newline at end of file diff --git a/resources/profiles/Elegoo/filament/ELEGOO/Elegoo RAPID PETG+.json b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo RAPID PETG+.json new file mode 100644 index 0000000000..67b208178b --- /dev/null +++ b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo RAPID PETG+.json @@ -0,0 +1,10 @@ +{ + "type": "filament", + "name": "Elegoo RAPID PETG+", + "inherits": "Elegoo RAPID PETG @base", + "from": "system", + "setting_id": "ERPETGPLUS00", + "instantiation": "true", + "compatible_printers": [ + ] +} diff --git a/resources/profiles/Elegoo/filament/ELEGOO/Elegoo RAPID PETG.json b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo RAPID PETG.json new file mode 100644 index 0000000000..87f8df6cea --- /dev/null +++ b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo RAPID PETG.json @@ -0,0 +1,10 @@ +{ + "type": "filament", + "name": "Elegoo RAPID PETG", + "inherits": "Elegoo RAPID PETG @base", + "from": "system", + "setting_id": "ERPETG00", + "instantiation": "true", + "compatible_printers": [ + ] +} diff --git a/resources/profiles/Elegoo/filament/ELEGOO/Elegoo RAPID PLA+ @0.2 nozzle.json b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo RAPID PLA+ @0.2 nozzle.json new file mode 100644 index 0000000000..6dc97327db --- /dev/null +++ b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo RAPID PLA+ @0.2 nozzle.json @@ -0,0 +1,22 @@ +{ + "type": "filament", + "name": "Elegoo RAPID PLA+ @0.2 nozzle", + "inherits": "Elegoo RAPID PLA+ @base", + "from": "system", + "setting_id": "ERPLAPLUS00020", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "3.2" + ], + "compatible_printers": [ + "Elegoo Centauri 0.2 nozzle", + "Elegoo Centauri Carbon 0.2 nozzle", + "Elegoo Neptune 4 0.2 nozzle", + "Elegoo Neptune 4 Pro 0.2 nozzle", + "Elegoo Neptune 4 Plus 0.2 nozzle", + "Elegoo Neptune 4 Max 0.2 nozzle", + "Elegoo Neptune 3 Pro 0.2 nozzle", + "Elegoo Neptune 3 Plus 0.2 nozzle", + "Elegoo Neptune 3 Max 0.2 nozzle" + ] +} diff --git a/resources/profiles/Elegoo/filament/ELEGOO/Elegoo RAPID PLA+ @base.json b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo RAPID PLA+ @base.json new file mode 100644 index 0000000000..31d06cc809 --- /dev/null +++ b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo RAPID PLA+ @base.json @@ -0,0 +1,20 @@ +{ + "type": "filament", + "name": "Elegoo RAPID PLA+ @base", + "inherits": "fdm_elegoo_filament_pla", + "from": "system", + "filament_id": "ERPLAPLUSB00", + "instantiation": "false", + "filament_max_volumetric_speed": [ + "21" + ], + "filament_density": [ + "1.25" + ], + "filament_vendor": [ + "Elegoo" + ], + "filament_start_gcode": [ + "; filament start gcode\n" + ] +} \ No newline at end of file diff --git a/resources/profiles/Elegoo/filament/ELEGOO/Elegoo RAPID PLA+.json b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo RAPID PLA+.json new file mode 100644 index 0000000000..41aba3dcd6 --- /dev/null +++ b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo RAPID PLA+.json @@ -0,0 +1,37 @@ +{ + "type": "filament", + "name": "Elegoo RAPID PLA+", + "inherits": "Elegoo RAPID PLA+ @base", + "from": "system", + "setting_id": "ERPLAPLUS00", + "instantiation": "true", + "fan_cooling_layer_time": [ + "80" + ], + "fan_max_speed": [ + "100" + ], + "fan_min_speed": [ + "60" + ], + "filament_max_volumetric_speed": [ + "21" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "slow_down_layer_time": [ + "6" + ], + "textured_plate_temp": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "compatible_printers": [ + ] +} \ No newline at end of file diff --git a/resources/profiles/Elegoo/filament/ELEGOO/Elegoo TPU 95A @base.json b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo TPU 95A @base.json new file mode 100644 index 0000000000..022972ac19 --- /dev/null +++ b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo TPU 95A @base.json @@ -0,0 +1,26 @@ +{ + "type": "filament", + "name": "Elegoo TPU 95A @base", + "inherits": "fdm_elegoo_filament_tpu", + "from": "system", + "filament_id": "ETPU95AB00", + "instantiation": "false", + "filament_max_volumetric_speed": [ + "3.6" + ], + "filament_vendor": [ + "Elegoo" + ], + "filament_density": [ + "1.21" + ], + "nozzle_temperature": [ + "225" + ], + "nozzle_temperature_initial_layer": [ + "225" + ], + "filament_start_gcode": [ + "; filament start gcode\n" + ] +} \ No newline at end of file diff --git a/resources/profiles/Chuanying/filament/fdm_filament_asa.json b/resources/profiles/Elegoo/filament/ELEGOO/fdm_elegoo_filament_asa.json similarity index 62% rename from resources/profiles/Chuanying/filament/fdm_filament_asa.json rename to resources/profiles/Elegoo/filament/ELEGOO/fdm_elegoo_filament_asa.json index 29a752a4ee..cb033e1172 100644 --- a/resources/profiles/Chuanying/filament/fdm_filament_asa.json +++ b/resources/profiles/Elegoo/filament/ELEGOO/fdm_elegoo_filament_asa.json @@ -1,82 +1,82 @@ { "type": "filament", - "name": "fdm_filament_asa", + "name": "fdm_elegoo_filament_asa", + "inherits": "fdm_elegoo_filament_common", "from": "system", "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "105" + "activate_air_filtration": [ + "0" ], - "eng_plate_temp" : [ - "105" + "cool_plate_temp": [ + "0" ], - "hot_plate_temp" : [ - "105" + "cool_plate_temp_initial_layer": [ + "0" ], - "cool_plate_temp_initial_layer" : [ - "105" + "eng_plate_temp": [ + "90" ], - "eng_plate_temp_initial_layer" : [ - "105" - ], - "hot_plate_temp_initial_layer" : [ - "105" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" + "eng_plate_temp_initial_layer": [ + "90" ], "fan_cooling_layer_time": [ "35" ], - "filament_max_volumetric_speed": [ - "28.6" - ], - "filament_type": [ - "ASA" - ], - "filament_density": [ - "1.04" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "260" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], "fan_max_speed": [ "80" ], "fan_min_speed": [ "10" ], - "overhang_fan_threshold": [ - "25%" + "filament_cost": [ + "0" ], - "overhang_fan_speed": [ - "80" + "filament_density": [ + "1.04" + ], + "filament_max_volumetric_speed": [ + "16" + ], + "filament_type": [ + "ASA" + ], + "hot_plate_temp": [ + "90" + ], + "hot_plate_temp_initial_layer": [ + "90" ], "nozzle_temperature": [ "260" ], - "temperature_vitrification": [ - "110" + "nozzle_temperature_initial_layer": [ + "260" + ], + "nozzle_temperature_range_high": [ + "280" ], "nozzle_temperature_range_low": [ "240" ], - "nozzle_temperature_range_high": [ - "270" + "overhang_fan_speed": [ + "80" ], - "slow_down_min_speed": [ - "10" + "overhang_fan_threshold": [ + "25%" + ], + "reduce_fan_stop_start_freq": [ + "1" ], "slow_down_layer_time": [ "3" + ], + "slow_down_min_speed": [ + "20" + ], + "textured_plate_temp": [ + "90" + ], + "textured_plate_temp_initial_layer": [ + "90" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Eryone/filament/fdm_filament_common.json b/resources/profiles/Elegoo/filament/ELEGOO/fdm_elegoo_filament_common.json similarity index 78% rename from resources/profiles/Eryone/filament/fdm_filament_common.json rename to resources/profiles/Elegoo/filament/ELEGOO/fdm_elegoo_filament_common.json index 4851217fe1..df77feb47a 100644 --- a/resources/profiles/Eryone/filament/fdm_filament_common.json +++ b/resources/profiles/Elegoo/filament/ELEGOO/fdm_elegoo_filament_common.json @@ -1,50 +1,44 @@ { "type": "filament", - "name": "fdm_filament_common", + "name": "fdm_elegoo_filament_common", "from": "system", "instantiation": "false", + "activate_air_filtration": [ + "0" + ], + "chamber_temperatures": [ + "0" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "complete_print_exhaust_fan_speed": [ + "70" + ], "cool_plate_temp": [ "60" ], - "eng_plate_temp": [ - "60" - ], - "hot_plate_temp": [ - "60" - ], "cool_plate_temp_initial_layer": [ "60" ], + "during_print_exhaust_fan_speed": [ + "70" + ], + "eng_plate_temp": [ + "60" + ], "eng_plate_temp_initial_layer": [ "60" ], - "hot_plate_temp_initial_layer": [ - "60" - ], - "overhang_fan_threshold": [ - "95%" - ], - "overhang_fan_speed": [ - "100" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "filament_end_gcode": [ - "; filament end gcode \n" - ], - "filament_flow_ratio": [ - "1" - ], - "reduce_fan_stop_start_freq": [ - "0" - ], "fan_cooling_layer_time": [ "60" ], + "fan_max_speed": [ + "100" + ], + "fan_min_speed": [ + "35" + ], "filament_cost": [ "0" ], @@ -57,16 +51,22 @@ "filament_diameter": [ "1.75" ], - "filament_max_volumetric_speed": [ + "filament_flow_ratio": [ + "0.98" + ], + "filament_is_support": [ "0" ], + "filament_max_volumetric_speed": [ + "1" + ], "filament_minimal_purge_on_wipe_tower": [ "15" ], - "filament_retraction_minimum_travel": [ + "filament_retract_before_wipe": [ "nil" ], - "filament_retract_before_wipe": [ + "filament_retract_restart_extra": [ "nil" ], "filament_retract_when_changing_layer": [ @@ -75,10 +75,7 @@ "filament_retraction_length": [ "nil" ], - "filament_z_hop": [ - "nil" - ], - "filament_retract_restart_extra": [ + "filament_retraction_minimum_travel": [ "nil" ], "filament_retraction_speed": [ @@ -94,7 +91,7 @@ "PLA" ], "filament_vendor": [ - "Generic" + "Elegoo" ], "filament_wipe": [ "nil" @@ -102,31 +99,62 @@ "filament_wipe_distance": [ "nil" ], - "nozzle_temperature_initial_layer": [ - "200" + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" ], "full_fan_speed_layer": [ "0" ], - "fan_max_speed": [ - "100" + "hot_plate_temp": [ + "60" ], - "fan_min_speed": [ - "35" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "5" - ], - "filament_start_gcode": [ - "; Filament gcode\n" + "hot_plate_temp_initial_layer": [ + "60" ], "nozzle_temperature": [ "200" ], + "nozzle_temperature_initial_layer": [ + "200" + ], + "overhang_fan_speed": [ + "100" + ], + "overhang_fan_threshold": [ + "95%" + ], + "reduce_fan_stop_start_freq": [ + "0" + ], + "required_nozzle_HRC": [ + "3" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "slow_down_layer_time": [ + "8" + ], + "slow_down_min_speed": [ + "10" + ], "temperature_vitrification": [ "100" + ], + "textured_plate_temp": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "compatible_printers": [], + "filament_start_gcode": [ + "; Filament start gcode\n" + ], + "filament_end_gcode": [ + "; filament end gcode \n" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Folgertech/filament/fdm_filament_pet.json b/resources/profiles/Elegoo/filament/ELEGOO/fdm_elegoo_filament_pet.json similarity index 53% rename from resources/profiles/Folgertech/filament/fdm_filament_pet.json rename to resources/profiles/Elegoo/filament/ELEGOO/fdm_elegoo_filament_pet.json index bb2323e9c1..3951115ee3 100644 --- a/resources/profiles/Folgertech/filament/fdm_filament_pet.json +++ b/resources/profiles/Elegoo/filament/ELEGOO/fdm_elegoo_filament_pet.json @@ -1,82 +1,67 @@ { "type": "filament", - "name": "fdm_filament_pet", + "name": "fdm_elegoo_filament_pet", + "inherits": "fdm_elegoo_filament_common", "from": "system", "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "60" - ], - "eng_plate_temp" : [ + "eng_plate_temp": [ "0" ], - "hot_plate_temp" : [ - "80" - ], - "textured_plate_temp" : [ - "80" - ], - "cool_plate_temp_initial_layer" : [ - "60" - ], - "eng_plate_temp_initial_layer" : [ + "eng_plate_temp_initial_layer": [ "0" ], - "hot_plate_temp_initial_layer" : [ - "80" - ], - "textured_plate_temp_initial_layer" : [ - "80" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], "fan_cooling_layer_time": [ "20" ], - "filament_max_volumetric_speed": [ - "25" + "fan_min_speed": [ + "20" ], - "filament_type": [ - "PETG" + "filament_cost": [ + "0" ], "filament_density": [ "1.27" ], - "filament_cost": [ - "30" + "filament_max_volumetric_speed": [ + "12" ], - "nozzle_temperature_initial_layer": [ - "255" + "filament_type": [ + "PET" ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "20" - ], - "overhang_fan_speed": [ - "100" - ], - "nozzle_temperature": [ - "255" - ], - "temperature_vitrification": [ + "hot_plate_temp": [ "80" ], - "nozzle_temperature_range_low": [ - "220" + "hot_plate_temp_initial_layer": [ + "80" + ], + "nozzle_temperature": [ + "250" + ], + "nozzle_temperature_initial_layer": [ + "250" ], "nozzle_temperature_range_high": [ "260" ], + "nozzle_temperature_range_low": [ + "220" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "temperature_vitrification": [ + "70" + ], + "textured_plate_temp": [ + "80" + ], + "textured_plate_temp_initial_layer": [ + "80" + ], "filament_start_gcode": [ - "; filament start gcode\n" + "; Filament start gcode\n" + ], + "filament_end_gcode": [ + "; filament end gcode \n" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Elegoo/filament/ELEGOO/fdm_elegoo_filament_pla.json b/resources/profiles/Elegoo/filament/ELEGOO/fdm_elegoo_filament_pla.json new file mode 100644 index 0000000000..2f837599c8 --- /dev/null +++ b/resources/profiles/Elegoo/filament/ELEGOO/fdm_elegoo_filament_pla.json @@ -0,0 +1,88 @@ +{ + "type": "filament", + "name": "fdm_elegoo_filament_pla", + "inherits": "fdm_elegoo_filament_common", + "from": "system", + "instantiation": "false", + "filament_max_volumetric_speed": [ + "12" + ], + "filament_type": [ + "PLA" + ], + "filament_density": [ + "1.24" + ], + "filament_cost": [ + "0" + ], + "cool_plate_temp": [ + "35" + ], + "eng_plate_temp": [ + "0" + ], + "textured_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "35" + ], + "eng_plate_temp_initial_layer": [ + "0" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "nozzle_temperature_initial_layer": [ + "220" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "overhang_fan_threshold": [ + "50%" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "nozzle_temperature": [ + "220" + ], + "temperature_vitrification": [ + "45" + ], + "nozzle_temperature_range_low": [ + "190" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "slow_down_min_speed": [ + "20" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "fan_cooling_layer_time": [ + "80" + ], + "fan_min_speed": [ + "50" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "slow_down_layer_time": [ + "8" + ], + "filament_start_gcode": [ + "; Filament start gcode\n" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ] +} \ No newline at end of file diff --git a/resources/profiles/Custom/filament/fdm_filament_tpu.json b/resources/profiles/Elegoo/filament/ELEGOO/fdm_elegoo_filament_tpu.json similarity index 64% rename from resources/profiles/Custom/filament/fdm_filament_tpu.json rename to resources/profiles/Elegoo/filament/ELEGOO/fdm_elegoo_filament_tpu.json index d00b7dbcab..98e75f6f20 100644 --- a/resources/profiles/Custom/filament/fdm_filament_tpu.json +++ b/resources/profiles/Elegoo/filament/ELEGOO/fdm_elegoo_filament_tpu.json @@ -1,88 +1,85 @@ { "type": "filament", - "name": "fdm_filament_tpu", + "name": "fdm_elegoo_filament_tpu", + "inherits": "fdm_elegoo_filament_common", "from": "system", "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ + "filament_flow_ratio": [ + "0.96" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "cool_plate_temp": [ "30" ], - "eng_plate_temp" : [ + "cool_plate_temp_initial_layer": [ "30" ], - "hot_plate_temp" : [ - "35" - ], - "textured_plate_temp" : [ - "35" - ], - "cool_plate_temp_initial_layer" : [ + "eng_plate_temp": [ "30" ], - "eng_plate_temp_initial_layer" : [ + "eng_plate_temp_initial_layer": [ "30" ], - "hot_plate_temp_initial_layer" : [ - "35" - ], - "textured_plate_temp_initial_layer" : [ - "35" - ], "fan_cooling_layer_time": [ "100" ], - "filament_max_volumetric_speed": [ - "15" - ], - "filament_type": [ - "TPU" - ], - "filament_density": [ - "1.24" - ], - "filament_cost": [ - "20" - ], - "filament_retraction_length": [ - "0.4" - ], - "nozzle_temperature_initial_layer": [ - "240" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_max_speed": [ - "100" - ], "fan_min_speed": [ "100" ], - "overhang_fan_speed": [ - "100" + "filament_cost": [ + "0" ], - "additional_cooling_fan_speed": [ - "70" + "filament_density": [ + "1.24" ], - "close_fan_the_first_x_layers": [ - "1" + "filament_max_volumetric_speed": [ + "3" + ], + "filament_retraction_length": [ + "0.4" + ], + "filament_type": [ + "TPU" + ], + "hot_plate_temp": [ + "35" + ], + "hot_plate_temp_initial_layer": [ + "35" ], "nozzle_temperature": [ "240" ], - "temperature_vitrification": [ - "60" - ], - "nozzle_temperature_range_low": [ - "200" + "nozzle_temperature_initial_layer": [ + "240" ], "nozzle_temperature_range_high": [ "250" ], + "nozzle_temperature_range_low": [ + "200" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "temperature_vitrification": [ + "30" + ], + "textured_plate_temp": [ + "35" + ], + "textured_plate_temp_initial_layer": [ + "35" + ], "filament_start_gcode": [ - "; filament start gcode\n" + "; Filament start gcode\n" + ], + "filament_end_gcode": [ + "; filament end gcode \n" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Elegoo/machine/EC/Elegoo Centauri 0.2 nozzle.json b/resources/profiles/Elegoo/machine/EC/Elegoo Centauri 0.2 nozzle.json new file mode 100644 index 0000000000..771ae88be9 --- /dev/null +++ b/resources/profiles/Elegoo/machine/EC/Elegoo Centauri 0.2 nozzle.json @@ -0,0 +1,32 @@ +{ + "type": "machine", + "name": "Elegoo Centauri 0.2 nozzle", + "inherits": "Elegoo Centauri 0.4 nozzle", + "from": "system", + "setting_id": "EC02", + "instantiation": "true", + "nozzle_diameter": [ + "0.2" + ], + "printer_model": "Elegoo Centauri", + "printer_variant": "0.2", + "default_filament_profile": [ + "Elegoo PLA @0.2 nozzle" + ], + "default_print_profile": "0.10mm Standard @Elegoo C 0.2 nozzle", + "retraction_minimum_travel": [ + "0.4" + ], + "wipe_distance": [ + "0.8" + ], + "retraction_length": [ + "0.5" + ], + "max_layer_height": [ + "0.14" + ], + "min_layer_height": [ + "0.06" + ] +} \ No newline at end of file diff --git a/resources/profiles/Elegoo/machine/EC/Elegoo Centauri 0.4 nozzle.json b/resources/profiles/Elegoo/machine/EC/Elegoo Centauri 0.4 nozzle.json new file mode 100644 index 0000000000..5b196abdd7 --- /dev/null +++ b/resources/profiles/Elegoo/machine/EC/Elegoo Centauri 0.4 nozzle.json @@ -0,0 +1,56 @@ +{ + "type": "machine", + "name": "Elegoo Centauri 0.4 nozzle", + "inherits": "fdm_machine_ecc", + "from": "system", + "setting_id": "EC04", + "instantiation": "true", + "nozzle_diameter": [ + "0.4" + ], + "printer_model": "Elegoo Centauri", + "printer_variant": "0.4", + "auxiliary_fan": "1", + "printable_area": [ + "0x0", + "257x0", + "257x257", + "0x257" + ], + "printable_height": "257", + "retract_lift_below": [ + "255" + ], + "bed_exclude_area": [ + "246x0", + "256x0", + "256x20", + "246x20" + ], + "thumbnails": [ + "144x144" + ], + "machine_max_acceleration_travel": [ + "20000", + "20000" + ], + "default_filament_profile": [ + "Elegoo PLA @EC" + ], + "default_print_profile": "0.20mm Standard @Elegoo C 0.4 nozzle", + "extruder_offset": [ + "0x0" + ], + "fan_speedup_time": "0.5", + "machine_load_filament_time": "29", + "machine_unload_filament_time": "28", + "nozzle_type": "hardened_steel", + "scan_first_layer": "1", + "upward_compatible_machine": [ + ], + "gcode_flavor": "klipper", + "change_filament_gcode": "M600", + "machine_pause_gcode": "M600", + "machine_start_gcode": ";;===== date: 20240520 =====================\n;printer_model:[printer_model]\n;initial_filament:{filament_type[initial_extruder]}\n;curr_bed_type:{curr_bed_type}\nM400 ; wait for buffer to clear\nM220 S100 ;Set the feed speed to 100%\nM221 S100 ;Set the flow rate to 100%\nM104 S140\nM140 S[bed_temperature_initial_layer_single]\nG90\nG28 ;home\nM729 ;Clean Nozzle\n\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {elsif (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n{endif}\n\n;enable_pressure_advance:{enable_pressure_advance[initial_extruder]}\n;This value is called if pressure advance is enabled\n{if enable_pressure_advance[initial_extruder] == \"true\"}\nSET_PRESSURE_ADVANCE ADVANCE=[pressure_advance] ;\nM400\n{endif}\nM204 S{min(20000,max(1000,outer_wall_acceleration))} ;Call exterior wall print acceleration\n\n\nG1 X{print_bed_max[0]*0.5} Y-1.2 F20000\nG1 Z0.3 F900\nM109 S[nozzle_temperature_initial_layer]\nM83\nG92 E0 ;Reset Extruder\nG1 F{min(6000, max(900, filament_max_volumetric_speed[initial_no_support_extruder]/0.5/0.3*60))} \nG1 X-1.2 E10.156 ;Draw the first line\nG1 Y98.8 E7.934\nG1 X-0.5 Y100 E0.1\nG1 Y-0.3 E7.934\nG1 X{print_bed_max[0]*0.5-50} E6.284\nG1 F{0.2*min(12000, max(1200, filament_max_volumetric_speed[initial_no_support_extruder]/0.5/0.3*60))} \nG1 X{print_bed_max[0]*0.5-30} E2\nG1 F{min(12000, max(1200, filament_max_volumetric_speed[initial_no_support_extruder]/0.5/0.3*60))} \nG1 X{print_bed_max[0]*0.5-10} E2\nG1 F{0.2*min(12000, max(1200, filament_max_volumetric_speed[initial_no_support_extruder]/0.5/0.3*60))} \nG1 X{print_bed_max[0]*0.5+10} E2\nG1 F{min(12000, max(1200, filament_max_volumetric_speed[initial_no_support_extruder]/0.5/0.3*60))} \nG1 X{print_bed_max[0]*0.5+30} E2\nG1 F{min(12000, max(1200, filament_max_volumetric_speed[initial_no_support_extruder]/0.5/0.3*60))} \nG1 X{print_bed_max[0]*0.5+50} E2\n;End PA test.\n\n\nG3 I-1 J0 Z0.6 F1200.0 ;Move to side a little\nG1 F20000\nG92 E0 ;Reset Extruder\n;LAYER_COUNT:[total_layer_count]\n;LAYER:0", + "machine_end_gcode": ";===== date: 20250109 =====================\nM400 ; wait for buffer to clear\nM140 S0 ;Turn-off bed\nM106 S255 ;Cooling nozzle\nM83\nG92 E0 ; zero the extruder\nG2 I1 J0 Z{max_layer_z+0.5} E-1 F3000 ; lower z a little\nG90\n{if max_layer_z > 50}G1 Z{min(max_layer_z+50, printable_height+0.5)} F20000{else}G1 Z100 F20000 {endif}; Move print head up \nM204 S5000\nM400\nM83\nG1 X202 F20000\nM400\nG1 Y250 F20000\nG1 Y264.5 F1200\nM400\nG92 E0\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off remote part cooling fan\nM106 P3 S0 ; turn off chamber cooling fan\nM84 ;Disable all steppers" +} \ No newline at end of file diff --git a/resources/profiles/Elegoo/machine/EC/Elegoo Centauri 0.6 nozzle.json b/resources/profiles/Elegoo/machine/EC/Elegoo Centauri 0.6 nozzle.json new file mode 100644 index 0000000000..d9f11b1ad0 --- /dev/null +++ b/resources/profiles/Elegoo/machine/EC/Elegoo Centauri 0.6 nozzle.json @@ -0,0 +1,32 @@ +{ + "type": "machine", + "name": "Elegoo Centauri 0.6 nozzle", + "inherits": "Elegoo Centauri 0.4 nozzle", + "from": "system", + "setting_id": "EC06", + "instantiation": "true", + "nozzle_diameter": [ + "0.6" + ], + "printer_model": "Elegoo Centauri", + "printer_variant": "0.6", + "default_filament_profile": [ + "Elegoo PLA @EC" + ], + "default_print_profile": "0.30mm Standard @Elegoo C 0.6 nozzle", + "retraction_minimum_travel": [ + "1.2" + ], + "wipe_distance": [ + "1.8" + ], + "retraction_length": [ + "0.8" + ], + "max_layer_height": [ + "0.42" + ], + "min_layer_height": [ + "0.12" + ] +} \ No newline at end of file diff --git a/resources/profiles/Elegoo/machine/EC/Elegoo Centauri 0.8 nozzle.json b/resources/profiles/Elegoo/machine/EC/Elegoo Centauri 0.8 nozzle.json new file mode 100644 index 0000000000..5491b94b50 --- /dev/null +++ b/resources/profiles/Elegoo/machine/EC/Elegoo Centauri 0.8 nozzle.json @@ -0,0 +1,35 @@ +{ + "type": "machine", + "name": "Elegoo Centauri 0.8 nozzle", + "inherits": "Elegoo Centauri 0.4 nozzle", + "from": "system", + "setting_id": "EC08", + "instantiation": "true", + "nozzle_diameter": [ + "0.8" + ], + "printer_model": "Elegoo Centauri", + "printer_variant": "0.8", + "default_filament_profile": [ + "Elegoo PLA @EC" + ], + "default_print_profile": "0.40mm Standard @Elegoo C 0.8 nozzle", + "retraction_minimum_travel": [ + "1.6" + ], + "wipe_distance": [ + "2.0" + ], + "retraction_length": [ + "1.2" + ], + "max_layer_height": [ + "0.56" + ], + "min_layer_height": [ + "0.16" + ], + "retract_length_toolchange": [ + "3" + ] +} \ No newline at end of file diff --git a/resources/profiles/Elegoo/machine/EC/Elegoo Centauri.json b/resources/profiles/Elegoo/machine/EC/Elegoo Centauri.json new file mode 100644 index 0000000000..d16ef5ea4a --- /dev/null +++ b/resources/profiles/Elegoo/machine/EC/Elegoo Centauri.json @@ -0,0 +1,12 @@ +{ + "type": "machine_model", + "name": "Elegoo Centauri", + "model_id": "Elegoo-C", + "nozzle_diameter": "0.4;0.2;0.6;0.8", + "machine_tech": "FFF", + "family": "Elegoo", + "bed_model": "elegoo_C_buildplate_model.stl", + "bed_texture": "", + "hotend_model": "", + "default_materials": "Elegoo ASA @0.2 nozzle;Elegoo ASA @EC;Elegoo PETG PRO @0.2 nozzle;Elegoo PETG PRO @EC;Elegoo PLA @0.2 nozzle;Elegoo PLA Matte @0.2 nozzle;Elegoo PLA Matte @EC;Elegoo PLA PRO @0.2 nozzle;Elegoo PLA PRO @EC;Elegoo PLA Silk @0.2 nozzle;Elegoo PLA Silk @EC;Elegoo PLA @EC;Elegoo PLA+ @0.2 nozzle;Elegoo PLA+ @EC;Elegoo RAPID PETG @0.2 nozzle;Elegoo RAPID PETG @EC;Elegoo RAPID PETG+ @0.2 nozzle;Elegoo RAPID PETG+ @EC;Elegoo RAPID PLA @0.2 nozzle;Elegoo RAPID PLA @EC;Elegoo RAPID PLA+ @0.2 nozzle;Elegoo RAPID PLA+ @EC;Elegoo TPU 95A @EC" +} diff --git a/resources/profiles/Elegoo/machine/ECC/Elegoo Centauri Carbon 0.2 nozzle.json b/resources/profiles/Elegoo/machine/ECC/Elegoo Centauri Carbon 0.2 nozzle.json new file mode 100644 index 0000000000..218ab73e1c --- /dev/null +++ b/resources/profiles/Elegoo/machine/ECC/Elegoo Centauri Carbon 0.2 nozzle.json @@ -0,0 +1,32 @@ +{ + "type": "machine", + "name": "Elegoo Centauri Carbon 0.2 nozzle", + "inherits": "Elegoo Centauri Carbon 0.4 nozzle", + "from": "system", + "setting_id": "ECC02", + "instantiation": "true", + "nozzle_diameter": [ + "0.2" + ], + "printer_model": "Elegoo Centauri Carbon", + "printer_variant": "0.2", + "default_filament_profile": [ + "Elegoo PLA @0.2 nozzle" + ], + "default_print_profile": "0.10mm Standard @Elegoo CC 0.2 nozzle", + "retraction_minimum_travel": [ + "0.4" + ], + "wipe_distance": [ + "0.8" + ], + "retraction_length": [ + "0.5" + ], + "max_layer_height": [ + "0.14" + ], + "min_layer_height": [ + "0.06" + ] +} \ No newline at end of file diff --git a/resources/profiles/Elegoo/machine/ECC/Elegoo Centauri Carbon 0.4 nozzle.json b/resources/profiles/Elegoo/machine/ECC/Elegoo Centauri Carbon 0.4 nozzle.json new file mode 100644 index 0000000000..2757442d27 --- /dev/null +++ b/resources/profiles/Elegoo/machine/ECC/Elegoo Centauri Carbon 0.4 nozzle.json @@ -0,0 +1,56 @@ +{ + "type": "machine", + "name": "Elegoo Centauri Carbon 0.4 nozzle", + "inherits": "fdm_machine_ecc", + "from": "system", + "setting_id": "ECC04", + "instantiation": "true", + "nozzle_diameter": [ + "0.4" + ], + "printer_model": "Elegoo Centauri Carbon", + "printer_variant": "0.4", + "auxiliary_fan": "1", + "printable_area": [ + "0x0", + "257x0", + "257x257", + "0x257" + ], + "printable_height": "257", + "retract_lift_below": [ + "255" + ], + "bed_exclude_area": [ + "246x0", + "256x0", + "256x20", + "246x20" + ], + "thumbnails": [ + "144x144" + ], + "machine_max_acceleration_travel": [ + "20000", + "20000" + ], + "default_filament_profile": [ + "Elegoo PLA @ECC" + ], + "default_print_profile": "0.20mm Standard @Elegoo CC 0.4 nozzle", + "extruder_offset": [ + "0x0" + ], + "fan_speedup_time": "0.5", + "machine_load_filament_time": "29", + "machine_unload_filament_time": "28", + "nozzle_type": "hardened_steel", + "scan_first_layer": "1", + "upward_compatible_machine": [ + ], + "gcode_flavor": "klipper", + "change_filament_gcode": "M600", + "machine_pause_gcode": "M600", + "machine_start_gcode": ";;===== date: 20240520 =====================\n;printer_model:[printer_model]\n;initial_filament:{filament_type[initial_extruder]}\n;curr_bed_type:{curr_bed_type}\nM400 ; wait for buffer to clear\nM220 S100 ;Set the feed speed to 100%\nM221 S100 ;Set the flow rate to 100%\nM104 S140\nM140 S[bed_temperature_initial_layer_single]\nG90\nG28 ;home\nM729 ;Clean Nozzle\n\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {elsif (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n{endif}\n\n;enable_pressure_advance:{enable_pressure_advance[initial_extruder]}\n;This value is called if pressure advance is enabled\n{if enable_pressure_advance[initial_extruder] == \"true\"}\nSET_PRESSURE_ADVANCE ADVANCE=[pressure_advance] ;\nM400\n{endif}\nM204 S{min(20000,max(1000,outer_wall_acceleration))} ;Call exterior wall print acceleration\n\n\nG1 X{print_bed_max[0]*0.5} Y-1.2 F20000\nG1 Z0.3 F900\nM109 S[nozzle_temperature_initial_layer]\nM83\nG92 E0 ;Reset Extruder\nG1 F{min(6000, max(900, filament_max_volumetric_speed[initial_no_support_extruder]/0.5/0.3*60))} \nG1 X-1.2 E10.156 ;Draw the first line\nG1 Y98.8 E7.934\nG1 X-0.5 Y100 E0.1\nG1 Y-0.3 E7.934\nG1 X{print_bed_max[0]*0.5-50} E6.284\nG1 F{0.2*min(12000, max(1200, filament_max_volumetric_speed[initial_no_support_extruder]/0.5/0.3*60))} \nG1 X{print_bed_max[0]*0.5-30} E2\nG1 F{min(12000, max(1200, filament_max_volumetric_speed[initial_no_support_extruder]/0.5/0.3*60))} \nG1 X{print_bed_max[0]*0.5-10} E2\nG1 F{0.2*min(12000, max(1200, filament_max_volumetric_speed[initial_no_support_extruder]/0.5/0.3*60))} \nG1 X{print_bed_max[0]*0.5+10} E2\nG1 F{min(12000, max(1200, filament_max_volumetric_speed[initial_no_support_extruder]/0.5/0.3*60))} \nG1 X{print_bed_max[0]*0.5+30} E2\nG1 F{min(12000, max(1200, filament_max_volumetric_speed[initial_no_support_extruder]/0.5/0.3*60))} \nG1 X{print_bed_max[0]*0.5+50} E2\n;End PA test.\n\n\nG3 I-1 J0 Z0.6 F1200.0 ;Move to side a little\nG1 F20000\nG92 E0 ;Reset Extruder\n;LAYER_COUNT:[total_layer_count]\n;LAYER:0", + "machine_end_gcode": ";===== date: 20250109 =====================\nM400 ; wait for buffer to clear\nM140 S0 ;Turn-off bed\nM106 S255 ;Cooling nozzle\nM83\nG92 E0 ; zero the extruder\nG2 I1 J0 Z{max_layer_z+0.5} E-1 F3000 ; lower z a little\nG90\n{if max_layer_z > 50}G1 Z{min(max_layer_z+50, printable_height+0.5)} F20000{else}G1 Z100 F20000 {endif}; Move print head up \nM204 S5000\nM400\nM83\nG1 X202 F20000\nM400\nG1 Y250 F20000\nG1 Y264.5 F1200\nM400\nG92 E0\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off remote part cooling fan\nM106 P3 S0 ; turn off chamber cooling fan\nM84 ;Disable all steppers" +} \ No newline at end of file diff --git a/resources/profiles/Elegoo/machine/ECC/Elegoo Centauri Carbon 0.6 nozzle.json b/resources/profiles/Elegoo/machine/ECC/Elegoo Centauri Carbon 0.6 nozzle.json new file mode 100644 index 0000000000..92006ad780 --- /dev/null +++ b/resources/profiles/Elegoo/machine/ECC/Elegoo Centauri Carbon 0.6 nozzle.json @@ -0,0 +1,32 @@ +{ + "type": "machine", + "name": "Elegoo Centauri Carbon 0.6 nozzle", + "inherits": "Elegoo Centauri Carbon 0.4 nozzle", + "from": "system", + "setting_id": "ECC06", + "instantiation": "true", + "nozzle_diameter": [ + "0.6" + ], + "printer_model": "Elegoo Centauri Carbon", + "printer_variant": "0.6", + "default_filament_profile": [ + "Elegoo PLA @ECC" + ], + "default_print_profile": "0.30mm Standard @Elegoo CC 0.6 nozzle", + "retraction_minimum_travel": [ + "1.2" + ], + "wipe_distance": [ + "1.8" + ], + "retraction_length": [ + "0.8" + ], + "max_layer_height": [ + "0.42" + ], + "min_layer_height": [ + "0.12" + ] +} \ No newline at end of file diff --git a/resources/profiles/Elegoo/machine/ECC/Elegoo Centauri Carbon 0.8 nozzle.json b/resources/profiles/Elegoo/machine/ECC/Elegoo Centauri Carbon 0.8 nozzle.json new file mode 100644 index 0000000000..3feab339ef --- /dev/null +++ b/resources/profiles/Elegoo/machine/ECC/Elegoo Centauri Carbon 0.8 nozzle.json @@ -0,0 +1,35 @@ +{ + "type": "machine", + "name": "Elegoo Centauri Carbon 0.8 nozzle", + "inherits": "Elegoo Centauri Carbon 0.4 nozzle", + "from": "system", + "setting_id": "ECC08", + "instantiation": "true", + "nozzle_diameter": [ + "0.8" + ], + "printer_model": "Elegoo Centauri Carbon", + "printer_variant": "0.8", + "default_filament_profile": [ + "Elegoo PLA @ECC" + ], + "default_print_profile": "0.40mm Standard @Elegoo CC 0.8 nozzle", + "retraction_minimum_travel": [ + "1.6" + ], + "wipe_distance": [ + "2.0" + ], + "retraction_length": [ + "1.2" + ], + "max_layer_height": [ + "0.56" + ], + "min_layer_height": [ + "0.16" + ], + "retract_length_toolchange": [ + "3" + ] +} \ No newline at end of file diff --git a/resources/profiles/Elegoo/machine/ECC/Elegoo Centauri Carbon.json b/resources/profiles/Elegoo/machine/ECC/Elegoo Centauri Carbon.json new file mode 100644 index 0000000000..999b98354e --- /dev/null +++ b/resources/profiles/Elegoo/machine/ECC/Elegoo Centauri Carbon.json @@ -0,0 +1,12 @@ +{ + "type": "machine_model", + "name": "Elegoo Centauri Carbon", + "model_id": "Elegoo-CC", + "nozzle_diameter": "0.4;0.2;0.6;0.8", + "machine_tech": "FFF", + "family": "Elegoo", + "bed_model": "elegoo_CC_buildplate_model.stl", + "bed_texture": "", + "hotend_model": "", + "default_materials": "Elegoo ASA @0.2 nozzle;Elegoo ASA @ECC;Elegoo PETG PRO @0.2 nozzle;Elegoo PETG PRO @ECC;Elegoo PLA @0.2 nozzle;Elegoo PLA Matte @0.2 nozzle;Elegoo PLA Matte @ECC;Elegoo PLA PRO @0.2 nozzle;Elegoo PLA PRO @ECC;Elegoo PLA Silk @0.2 nozzle;Elegoo PLA Silk @ECC;Elegoo PLA-CF @ECC;Elegoo PLA @ECC;Elegoo PLA+ @0.2 nozzle;Elegoo PLA+ @ECC;Elegoo RAPID PETG @0.2 nozzle;Elegoo RAPID PETG @ECC;Elegoo RAPID PETG+ @0.2 nozzle;Elegoo RAPID PETG+ @ECC;Elegoo RAPID PLA @0.2 nozzle;Elegoo RAPID PLA @ECC;Elegoo RAPID PLA+ @0.2 nozzle;Elegoo RAPID PLA+ @ECC;Elegoo TPU 95A @ECC" +} diff --git a/resources/profiles/Elegoo/machine/ECC/fdm_machine_ecc.json b/resources/profiles/Elegoo/machine/ECC/fdm_machine_ecc.json new file mode 100644 index 0000000000..48aeca1553 --- /dev/null +++ b/resources/profiles/Elegoo/machine/ECC/fdm_machine_ecc.json @@ -0,0 +1,143 @@ +{ + "type": "machine", + "name": "fdm_machine_ecc", + "inherits": "fdm_machine_ecc_common", + "from": "system", + "instantiation": "false", + "nozzle_diameter": [ + "0.4" + ], + "printer_variant": "0.4", + "printable_area": [ + "0x0", + "256x0", + "256x256", + "0x256" + ], + "auxiliary_fan": "1", + "bed_exclude_area": [ + "0x0" + ], + "default_filament_profile": [ + "Elegoo PLA" + ], + "default_print_profile": "0.20mm Standard @Elegoo CC 0.4 nozzle", + "extruder_colour": [ + "#018001" + ], + "machine_max_acceleration_e": [ + "5000", + "5000" + ], + "machine_max_acceleration_extruding": [ + "20000", + "20000" + ], + "machine_max_acceleration_retracting": [ + "5000", + "5000" + ], + "machine_max_acceleration_travel": [ + "9000", + "9000" + ], + "machine_max_acceleration_x": [ + "20000", + "20000" + ], + "machine_max_acceleration_y": [ + "20000", + "20000" + ], + "machine_max_acceleration_z": [ + "500", + "200" + ], + "machine_max_speed_e": [ + "30", + "30" + ], + "machine_max_speed_x": [ + "500", + "200" + ], + "machine_max_speed_y": [ + "500", + "200" + ], + "machine_max_speed_z": [ + "20", + "20" + ], + "machine_max_jerk_e": [ + "2.5", + "2.5" + ], + "machine_max_jerk_x": [ + "9", + "9" + ], + "machine_max_jerk_y": [ + "9", + "9" + ], + "machine_max_jerk_z": [ + "3", + "3" + ], + "machine_min_extruding_rate": [ + "0", + "0" + ], + "machine_min_travel_rate": [ + "0", + "0" + ], + "retract_lift_below":[ + "249" + ], + "extruder_clearance_radius": "57", + "extruder_clearance_max_radius": "68", + "extruder_clearance_height_to_lid": "90", + "nozzle_volume": "107", + "printer_structure": "corexy", + "best_object_pos":"0.5x0.5", + "retraction_minimum_travel": [ + "0.8" + ], + "retract_before_wipe": [ + "0%" + ], + "wipe_distance": [ + "1.2" + ], + "retraction_length": [ + "0.8" + ], + "retract_length_toolchange": [ + "2" + ], + "z_hop": [ + "0.4" + ], + "retraction_speed": [ + "30" + ], + "deretraction_speed": [ + "30" + ], + "z_hop_types": [ + "Auto Lift" + ], + "thumbnails": [ + "320x320", + "160x160" + ], + "thumbnails_format": "PNG", + "nozzle_type": "brass", + "single_extruder_multi_material": "1", + "machine_end_gcode": ";===== date: 20240510 =====================\nM400 ; wait for buffer to clear\nG92 E0 ; zero the extruder\nG1 E-0.8 F1800 ; retract\nG1 Z{max_layer_z + 0.5} F900 ; lower z a little\nG1 X65 Y245 F12000 ; move to safe pos \nG1 Y245 F3000\n\nG1 X65 Y245 F12000\nG1 Y245 F3000\nM140 S0 ; turn off bed\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off remote part cooling fan\nM106 P3 S0 ; turn off chamber cooling fan\n", + "layer_change_gcode": ";LAYER:{layer_num+1}\n", + "change_filament_gcode": "", + "machine_pause_gcode": "M600" +} \ No newline at end of file diff --git a/resources/profiles/Elegoo/machine/ECC/fdm_machine_ecc_common.json b/resources/profiles/Elegoo/machine/ECC/fdm_machine_ecc_common.json new file mode 100644 index 0000000000..129aa8fcef --- /dev/null +++ b/resources/profiles/Elegoo/machine/ECC/fdm_machine_ecc_common.json @@ -0,0 +1,130 @@ +{ + "type": "machine", + "name": "fdm_machine_ecc_common", + "from": "system", + "instantiation": "false", + "nozzle_diameter": [ + "0.4" + ], + "printer_variant": "0.4", + "support_chamber_temp_control": "0", + "printer_technology": "FFF", + "printer_notes": "", + "deretraction_speed": [ + "40" + ], + "extruder_colour": [ + "#FCE94F" + ], + "extruder_offset": [ + "0x0" + ], + "gcode_flavor": "marlin", + "silent_mode": "0", + "machine_max_acceleration_e": [ + "5000" + ], + "machine_max_acceleration_extruding": [ + "10000" + ], + "machine_max_acceleration_retracting": [ + "1000" + ], + "machine_max_acceleration_x": [ + "10000" + ], + "machine_max_acceleration_y": [ + "10000" + ], + "machine_max_acceleration_z": [ + "100" + ], + "machine_max_speed_e": [ + "60" + ], + "machine_max_speed_x": [ + "500" + ], + "machine_max_speed_y": [ + "500" + ], + "machine_max_speed_z": [ + "10" + ], + "machine_max_jerk_e": [ + "5" + ], + "machine_max_jerk_x": [ + "8" + ], + "machine_max_jerk_y": [ + "8" + ], + "machine_max_jerk_z": [ + "3" + ], + "machine_min_extruding_rate": [ + "0" + ], + "machine_min_travel_rate": [ + "0" + ], + "max_layer_height": [ + "0.28" + ], + "min_layer_height": [ + "0.08" + ], + "printable_height": "250", + "extruder_clearance_radius": "65", + "extruder_clearance_height_to_rod": "36", + "extruder_clearance_height_to_lid": "140", + "printer_settings_id": "Elegoo", + "disable_m73": "1", + "retraction_minimum_travel": [ + "2" + ], + "retract_before_wipe": [ + "70%" + ], + "retract_when_changing_layer": [ + "1" + ], + "retraction_length": [ + "5" + ], + "retract_length_toolchange": [ + "1" + ], + "z_hop": [ + "0" + ], + "retract_restart_extra": [ + "0" + ], + "retract_restart_extra_toolchange": [ + "0" + ], + "retraction_speed": [ + "60" + ], + "cooling_tube_retraction": "90", + "parking_pos_retraction": "90", + "single_extruder_multi_material": "1", + "support_air_filtration": "0", + "wipe": [ + "1" + ], + "z_hop_types": [ + "Auto Lift" + ], + "default_filament_profile": [], + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n", + "layer_change_gcode": ";LAYER:{layer_num+1}\n", + "machine_start_gcode": "", + "machine_end_gcode": "", + "change_filament_gcode": "", + "purge_in_prime_tower": "0", + "manual_filament_change": "1", + "enable_filament_ramming": "0" +} \ No newline at end of file diff --git a/resources/profiles/Elegoo/process/0.16mm Optimal @Elegoo Giga 0.4 nozzle.json b/resources/profiles/Elegoo/process/0.16mm Optimal @Elegoo Giga 0.4 nozzle.json index eb4d847cfc..a4e66e5f7e 100644 --- a/resources/profiles/Elegoo/process/0.16mm Optimal @Elegoo Giga 0.4 nozzle.json +++ b/resources/profiles/Elegoo/process/0.16mm Optimal @Elegoo Giga 0.4 nozzle.json @@ -1,5 +1,6 @@ -{ - "inherits": "0.20mm Standard @Elegoo Giga 0.4 nozzle", - "layer_height": "0.16", - "name": "0.16mm Optimal @Elegoo Giga 0.4 nozzle" +{ + "inherits": "0.20mm Standard @Elegoo Giga 0.4 nozzle", + "layer_height": "0.16", + "name": "0.16mm Optimal @Elegoo Giga 0.4 nozzle", + "instantiation": "true" } \ No newline at end of file diff --git a/resources/profiles/Elegoo/process/0.18mm Fine @Elegoo Giga 0.6 nozzle.json b/resources/profiles/Elegoo/process/0.18mm Fine @Elegoo Giga 0.6 nozzle.json index bd20c05d58..9f31d4faeb 100644 --- a/resources/profiles/Elegoo/process/0.18mm Fine @Elegoo Giga 0.6 nozzle.json +++ b/resources/profiles/Elegoo/process/0.18mm Fine @Elegoo Giga 0.6 nozzle.json @@ -1,8 +1,9 @@ -{ - "inherits": "0.30mm Standard @Elegoo Giga 0.6 nozzle", - "layer_height": "0.18", - "name": "0.18mm Fine @Elegoo Giga 0.6 nozzle", - "compatible_printers": [ - "Elegoo OrangeStorm Giga 0.6 nozzle" - ] -} +{ + "inherits": "0.30mm Standard @Elegoo Giga 0.6 nozzle", + "layer_height": "0.18", + "name": "0.18mm Fine @Elegoo Giga 0.6 nozzle", + "instantiation": "true", + "compatible_printers": [ + "Elegoo OrangeStorm Giga 0.6 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Elegoo/process/0.20mm Strength @Elegoo Giga 0.4 nozzle.json b/resources/profiles/Elegoo/process/0.20mm Strength @Elegoo Giga 0.4 nozzle.json index af5eb091f7..eb70a4ad5a 100644 --- a/resources/profiles/Elegoo/process/0.20mm Strength @Elegoo Giga 0.4 nozzle.json +++ b/resources/profiles/Elegoo/process/0.20mm Strength @Elegoo Giga 0.4 nozzle.json @@ -1,5 +1,6 @@ -{ - "inherits": "0.20mm Standard @Elegoo Giga 0.4 nozzle", - "name": "0.20mm Strength @Elegoo Giga 0.4 nozzle", - "wall_loops": "6" -} +{ + "inherits": "0.20mm Standard @Elegoo Giga 0.4 nozzle", + "name": "0.20mm Strength @Elegoo Giga 0.4 nozzle", + "instantiation": "true", + "wall_loops": "6" +} \ No newline at end of file diff --git a/resources/profiles/Elegoo/process/0.24mm Draft @Elegoo Giga 0.4 nozzle.json b/resources/profiles/Elegoo/process/0.24mm Draft @Elegoo Giga 0.4 nozzle.json index 81880b6c5d..22eada6343 100644 --- a/resources/profiles/Elegoo/process/0.24mm Draft @Elegoo Giga 0.4 nozzle.json +++ b/resources/profiles/Elegoo/process/0.24mm Draft @Elegoo Giga 0.4 nozzle.json @@ -1,5 +1,6 @@ -{ - "inherits": "0.20mm Standard @Elegoo Giga 0.4 nozzle", - "layer_height": "0.24", - "name": "0.24mm Draft @Elegoo Giga 0.4 nozzle" -} +{ + "inherits": "0.20mm Standard @Elegoo Giga 0.4 nozzle", + "layer_height": "0.24", + "name": "0.24mm Draft @Elegoo Giga 0.4 nozzle", + "instantiation": "true" +} \ No newline at end of file diff --git a/resources/profiles/Elegoo/process/0.24mm Fine @Elegoo Giga 0.8 nozzle.json b/resources/profiles/Elegoo/process/0.24mm Fine @Elegoo Giga 0.8 nozzle.json index f8b6ca7863..1e6d9161a6 100644 --- a/resources/profiles/Elegoo/process/0.24mm Fine @Elegoo Giga 0.8 nozzle.json +++ b/resources/profiles/Elegoo/process/0.24mm Fine @Elegoo Giga 0.8 nozzle.json @@ -1,5 +1,6 @@ -{ - "inherits": "0.40mm Standard @Elegoo Giga 0.8 nozzle", - "layer_height": "0.24", - "name": "0.24mm Fine @Elegoo Giga 0.8 nozzle" -} +{ + "inherits": "0.40mm Standard @Elegoo Giga 0.8 nozzle", + "layer_height": "0.24", + "name": "0.24mm Fine @Elegoo Giga 0.8 nozzle", + "instantiation": "true" +} \ No newline at end of file diff --git a/resources/profiles/Elegoo/process/0.24mm Optimal @Elegoo Giga 0.6 nozzle.json b/resources/profiles/Elegoo/process/0.24mm Optimal @Elegoo Giga 0.6 nozzle.json index 70aaa8d5a4..5ddb985336 100644 --- a/resources/profiles/Elegoo/process/0.24mm Optimal @Elegoo Giga 0.6 nozzle.json +++ b/resources/profiles/Elegoo/process/0.24mm Optimal @Elegoo Giga 0.6 nozzle.json @@ -1,5 +1,6 @@ -{ - "inherits": "0.30mm Standard @Elegoo Giga 0.6 nozzle", - "layer_height": "0.24", - "name": "0.24mm Optimal @Elegoo Giga 0.6 nozzle" -} +{ + "inherits": "0.30mm Standard @Elegoo Giga 0.6 nozzle", + "layer_height": "0.24", + "name": "0.24mm Optimal @Elegoo Giga 0.6 nozzle", + "instantiation": "true" +} \ No newline at end of file diff --git a/resources/profiles/Elegoo/process/0.28mm Extra Draft @Elegoo Giga 0.4 nozzle.json b/resources/profiles/Elegoo/process/0.28mm Extra Draft @Elegoo Giga 0.4 nozzle.json index 4e08bb4249..7273f07d97 100644 --- a/resources/profiles/Elegoo/process/0.28mm Extra Draft @Elegoo Giga 0.4 nozzle.json +++ b/resources/profiles/Elegoo/process/0.28mm Extra Draft @Elegoo Giga 0.4 nozzle.json @@ -1,5 +1,6 @@ -{ - "inherits": "0.20mm Standard @Elegoo Giga 0.4 nozzle", - "layer_height": "0.28", - "name": "0.28mm Extra Draft @Elegoo Giga 0.4 nozzle" -} +{ + "inherits": "0.20mm Standard @Elegoo Giga 0.4 nozzle", + "layer_height": "0.28", + "name": "0.28mm Extra Draft @Elegoo Giga 0.4 nozzle", + "instantiation": "true" +} \ No newline at end of file diff --git a/resources/profiles/Elegoo/process/0.30mm Fine @Elegoo Giga 1.0 nozzle.json b/resources/profiles/Elegoo/process/0.30mm Fine @Elegoo Giga 1.0 nozzle.json index 5d2204e095..9489755491 100644 --- a/resources/profiles/Elegoo/process/0.30mm Fine @Elegoo Giga 1.0 nozzle.json +++ b/resources/profiles/Elegoo/process/0.30mm Fine @Elegoo Giga 1.0 nozzle.json @@ -1,5 +1,6 @@ { "inherits": "0.50mm Standard @Elegoo Giga 1.0 nozzle", "layer_height": "0.3", - "name": "0.30mm Fine @Elegoo Giga 1.0 nozzle" + "name": "0.30mm Fine @Elegoo Giga 1.0 nozzle", + "instantiation": "true" } diff --git a/resources/profiles/Elegoo/process/0.30mm Strength @Elegoo Giga 0.6 nozzle.json b/resources/profiles/Elegoo/process/0.30mm Strength @Elegoo Giga 0.6 nozzle.json index ae412918b5..f1757bd3af 100644 --- a/resources/profiles/Elegoo/process/0.30mm Strength @Elegoo Giga 0.6 nozzle.json +++ b/resources/profiles/Elegoo/process/0.30mm Strength @Elegoo Giga 0.6 nozzle.json @@ -1,5 +1,6 @@ { "inherits": "0.30mm Standard @Elegoo Giga 0.6 nozzle", "name": "0.30mm Strength @Elegoo Giga 0.6 nozzle", - "wall_loops": "5" + "wall_loops": "5", + "instantiation": "true" } diff --git a/resources/profiles/Elegoo/process/0.32mm Optimal @Elegoo Giga 0.8 nozzle.json b/resources/profiles/Elegoo/process/0.32mm Optimal @Elegoo Giga 0.8 nozzle.json index 614d802216..f67df7b7db 100644 --- a/resources/profiles/Elegoo/process/0.32mm Optimal @Elegoo Giga 0.8 nozzle.json +++ b/resources/profiles/Elegoo/process/0.32mm Optimal @Elegoo Giga 0.8 nozzle.json @@ -1,5 +1,6 @@ { "inherits": "0.40mm Standard @Elegoo Giga 0.8 nozzle", "layer_height": "0.32", - "name": "0.32mm Optimal @Elegoo Giga 0.8 nozzle" + "name": "0.32mm Optimal @Elegoo Giga 0.8 nozzle", + "instantiation": "true" } diff --git a/resources/profiles/Elegoo/process/0.36mm Draft @Elegoo Giga 0.6 nozzle.json b/resources/profiles/Elegoo/process/0.36mm Draft @Elegoo Giga 0.6 nozzle.json index 273cddeb1f..87c52f8f00 100644 --- a/resources/profiles/Elegoo/process/0.36mm Draft @Elegoo Giga 0.6 nozzle.json +++ b/resources/profiles/Elegoo/process/0.36mm Draft @Elegoo Giga 0.6 nozzle.json @@ -1,5 +1,6 @@ { "inherits": "0.30mm Standard @Elegoo Giga 0.6 nozzle", "layer_height": "0.36", - "name": "0.36mm Draft @Elegoo Giga 0.6 nozzle" + "name": "0.36mm Draft @Elegoo Giga 0.6 nozzle", + "instantiation": "true" } diff --git a/resources/profiles/Elegoo/process/0.40mm Optimal @Elegoo Giga 1.0 nozzle.json b/resources/profiles/Elegoo/process/0.40mm Optimal @Elegoo Giga 1.0 nozzle.json index b2556bc434..f5c47bc93d 100644 --- a/resources/profiles/Elegoo/process/0.40mm Optimal @Elegoo Giga 1.0 nozzle.json +++ b/resources/profiles/Elegoo/process/0.40mm Optimal @Elegoo Giga 1.0 nozzle.json @@ -1,5 +1,6 @@ { "inherits": "0.50mm Standard @Elegoo Giga 1.0 nozzle", "layer_height": "0.4", - "name": "0.40mm Optimal @Elegoo Giga 1.0 nozzle" + "name": "0.40mm Optimal @Elegoo Giga 1.0 nozzle", + "instantiation": "true" } diff --git a/resources/profiles/Elegoo/process/0.42mm Extra Draft @Elegoo Giga 0.6 nozzle.json b/resources/profiles/Elegoo/process/0.42mm Extra Draft @Elegoo Giga 0.6 nozzle.json index dbc8f679f9..7ce258ca9f 100644 --- a/resources/profiles/Elegoo/process/0.42mm Extra Draft @Elegoo Giga 0.6 nozzle.json +++ b/resources/profiles/Elegoo/process/0.42mm Extra Draft @Elegoo Giga 0.6 nozzle.json @@ -1,5 +1,6 @@ { "inherits": "0.30mm Standard @Elegoo Giga 0.6 nozzle", "layer_height": "0.42", - "name": "0.42mm Extra Draft @Elegoo Giga 0.6 nozzle" + "name": "0.42mm Extra Draft @Elegoo Giga 0.6 nozzle", + "instantiation": "true" } diff --git a/resources/profiles/Elegoo/process/0.48mm Draft @Elegoo Giga 0.8 nozzle.json b/resources/profiles/Elegoo/process/0.48mm Draft @Elegoo Giga 0.8 nozzle.json index cccb1ed632..29e330e3e0 100644 --- a/resources/profiles/Elegoo/process/0.48mm Draft @Elegoo Giga 0.8 nozzle.json +++ b/resources/profiles/Elegoo/process/0.48mm Draft @Elegoo Giga 0.8 nozzle.json @@ -1,5 +1,6 @@ { "inherits": "0.40mm Standard @Elegoo Giga 0.8 nozzle", "layer_height": "0.48", - "name": "0.48mm Draft @Elegoo Giga 0.8 nozzle" + "name": "0.48mm Draft @Elegoo Giga 0.8 nozzle", + "instantiation": "true" } diff --git a/resources/profiles/Elegoo/process/0.56mm Extra Draft @Elegoo Giga 0.8 nozzle.json b/resources/profiles/Elegoo/process/0.56mm Extra Draft @Elegoo Giga 0.8 nozzle.json index dac0e73757..8b1c2c292d 100644 --- a/resources/profiles/Elegoo/process/0.56mm Extra Draft @Elegoo Giga 0.8 nozzle.json +++ b/resources/profiles/Elegoo/process/0.56mm Extra Draft @Elegoo Giga 0.8 nozzle.json @@ -1,4 +1,5 @@ { "inherits": "0.40mm Standard @Elegoo Giga 0.8 nozzle", - "name": "0.56mm Extra Draft @Elegoo Giga 0.8 nozzle" + "name": "0.56mm Extra Draft @Elegoo Giga 0.8 nozzle", + "instantiation": "true" } diff --git a/resources/profiles/Elegoo/process/0.60mm Draft @Elegoo Giga 1.0 nozzle.json b/resources/profiles/Elegoo/process/0.60mm Draft @Elegoo Giga 1.0 nozzle.json index 7116f51b9a..82ac0f724a 100644 --- a/resources/profiles/Elegoo/process/0.60mm Draft @Elegoo Giga 1.0 nozzle.json +++ b/resources/profiles/Elegoo/process/0.60mm Draft @Elegoo Giga 1.0 nozzle.json @@ -1,5 +1,6 @@ { "inherits": "0.50mm Standard @Elegoo Giga 1.0 nozzle", "layer_height": "0.6", - "name": "0.60mm Draft @Elegoo Giga 1.0 nozzle" + "name": "0.60mm Draft @Elegoo Giga 1.0 nozzle", + "instantiation": "true" } diff --git a/resources/profiles/Elegoo/process/EC/0.08mm Optimal @Elegoo C 0.2 nozzle.json b/resources/profiles/Elegoo/process/EC/0.08mm Optimal @Elegoo C 0.2 nozzle.json new file mode 100644 index 0000000000..4e3cdbb77a --- /dev/null +++ b/resources/profiles/Elegoo/process/EC/0.08mm Optimal @Elegoo C 0.2 nozzle.json @@ -0,0 +1,7 @@ +{ + "elefant_foot_compensation": "0.05", + "inherits": "0.10mm Standard @Elegoo C 0.2 nozzle", + "layer_height": "0.08", + "name": "0.08mm Optimal @Elegoo C 0.2 nozzle", + "instantiation": "true" +} diff --git a/resources/profiles/Elegoo/process/EC/0.10mm Standard @Elegoo C 0.2 nozzle.json b/resources/profiles/Elegoo/process/EC/0.10mm Standard @Elegoo C 0.2 nozzle.json new file mode 100644 index 0000000000..b0b493d5c1 --- /dev/null +++ b/resources/profiles/Elegoo/process/EC/0.10mm Standard @Elegoo C 0.2 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "process", + "name": "0.10mm Standard @Elegoo C 0.2 nozzle", + "inherits": "fdm_process_ecc_02010", + "from": "system", + "setting_id": "PEC02010", + "instantiation": "true", + "sparse_infill_pattern": "zig-zag", + "filename_format": "EC_{nozzle_diameter[0]}_{input_filename_base}_{filament_type[0]}{layer_height}_{print_time}.gcode", + "elefant_foot_compensation": "0.15", + "compatible_printers": [ + "Elegoo Centauri 0.2 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Elegoo/process/EC/0.12mm Draft @Elegoo C 0.2 nozzle.json b/resources/profiles/Elegoo/process/EC/0.12mm Draft @Elegoo C 0.2 nozzle.json new file mode 100644 index 0000000000..d44d74b44f --- /dev/null +++ b/resources/profiles/Elegoo/process/EC/0.12mm Draft @Elegoo C 0.2 nozzle.json @@ -0,0 +1,6 @@ +{ + "inherits": "0.10mm Standard @Elegoo C 0.2 nozzle", + "layer_height": "0.12", + "name": "0.12mm Draft @Elegoo C 0.2 nozzle", + "instantiation": "true" +} diff --git a/resources/profiles/Elegoo/process/EC/0.12mm Fine @Elegoo C 0.4 nozzle.json b/resources/profiles/Elegoo/process/EC/0.12mm Fine @Elegoo C 0.4 nozzle.json new file mode 100644 index 0000000000..6673f84cdc --- /dev/null +++ b/resources/profiles/Elegoo/process/EC/0.12mm Fine @Elegoo C 0.4 nozzle.json @@ -0,0 +1,7 @@ +{ + "inherits": "0.20mm Standard @Elegoo C 0.4 nozzle", + "layer_height": "0.12", + "name": "0.12mm Fine @Elegoo C 0.4 nozzle", + "wall_loops": "3", + "instantiation": "true" +} diff --git a/resources/profiles/Elegoo/process/EC/0.14mm Extra Draft @Elegoo C 0.2 nozzle.json b/resources/profiles/Elegoo/process/EC/0.14mm Extra Draft @Elegoo C 0.2 nozzle.json new file mode 100644 index 0000000000..b8de607b01 --- /dev/null +++ b/resources/profiles/Elegoo/process/EC/0.14mm Extra Draft @Elegoo C 0.2 nozzle.json @@ -0,0 +1,6 @@ +{ + "inherits": "0.10mm Standard @Elegoo C 0.2 nozzle", + "layer_height": "0.14", + "name": "0.14mm Extra Draft @Elegoo C 0.2 nozzle", + "instantiation": "true" +} diff --git a/resources/profiles/Elegoo/process/EC/0.16mm Extra Fine @Elegoo C 0.8 nozzle.json b/resources/profiles/Elegoo/process/EC/0.16mm Extra Fine @Elegoo C 0.8 nozzle.json new file mode 100644 index 0000000000..c2ea2b0c0d --- /dev/null +++ b/resources/profiles/Elegoo/process/EC/0.16mm Extra Fine @Elegoo C 0.8 nozzle.json @@ -0,0 +1,7 @@ +{ + "inherits": "0.40mm Standard @Elegoo C 0.8 nozzle", + "initial_layer_print_height": "0.3", + "layer_height": "0.16", + "name": "0.16mm Extra Fine @Elegoo C 0.8 nozzle", + "instantiation": "true" +} diff --git a/resources/profiles/Elegoo/process/EC/0.16mm Optimal @Elegoo C 0.4 nozzle.json b/resources/profiles/Elegoo/process/EC/0.16mm Optimal @Elegoo C 0.4 nozzle.json new file mode 100644 index 0000000000..137d7bb435 --- /dev/null +++ b/resources/profiles/Elegoo/process/EC/0.16mm Optimal @Elegoo C 0.4 nozzle.json @@ -0,0 +1,6 @@ +{ + "inherits": "0.20mm Standard @Elegoo C 0.4 nozzle", + "layer_height": "0.16", + "name": "0.16mm Optimal @Elegoo C 0.4 nozzle", + "instantiation": "true" +} diff --git a/resources/profiles/Elegoo/process/EC/0.18mm Fine @Elegoo C 0.6 nozzle.json b/resources/profiles/Elegoo/process/EC/0.18mm Fine @Elegoo C 0.6 nozzle.json new file mode 100644 index 0000000000..217e174eb7 --- /dev/null +++ b/resources/profiles/Elegoo/process/EC/0.18mm Fine @Elegoo C 0.6 nozzle.json @@ -0,0 +1,6 @@ +{ + "inherits": "0.30mm Standard @Elegoo C 0.6 nozzle", + "layer_height": "0.18", + "name": "0.18mm Fine @Elegoo C 0.6 nozzle", + "instantiation": "true" +} diff --git a/resources/profiles/Elegoo/process/EC/0.20mm Standard @Elegoo C 0.4 nozzle.json b/resources/profiles/Elegoo/process/EC/0.20mm Standard @Elegoo C 0.4 nozzle.json new file mode 100644 index 0000000000..538c8b3e65 --- /dev/null +++ b/resources/profiles/Elegoo/process/EC/0.20mm Standard @Elegoo C 0.4 nozzle.json @@ -0,0 +1,15 @@ +{ + "type": "process", + "name": "0.20mm Standard @Elegoo C 0.4 nozzle", + "inherits": "fdm_process_ecc_04020", + "from": "system", + "setting_id": "PEC04020", + "instantiation": "true", + "bottom_shell_layers": "3", + "bottom_shell_thickness": "0.6", + "sparse_infill_pattern": "zig-zag", + "filename_format": "EC_{nozzle_diameter[0]}_{input_filename_base}_{filament_type[0]}{layer_height}_{print_time}.gcode", + "compatible_printers": [ + "Elegoo Centauri 0.4 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Elegoo/process/EC/0.20mm Strength @Elegoo C 0.4 nozzle.json b/resources/profiles/Elegoo/process/EC/0.20mm Strength @Elegoo C 0.4 nozzle.json new file mode 100644 index 0000000000..cd35fa1ad7 --- /dev/null +++ b/resources/profiles/Elegoo/process/EC/0.20mm Strength @Elegoo C 0.4 nozzle.json @@ -0,0 +1,13 @@ +{ + "inherits": "0.20mm Standard @Elegoo C 0.4 nozzle", + "name": "0.20mm Strength @Elegoo C 0.4 nozzle", + "wall_sequence": "inner-outer-inner wall", + "reduce_crossing_wall": "1", + "bottom_shell_layers": "5", + "outer_wall_speed": "120", + "print_flow_ratio": "0.95", + "sparse_infill_density": "20%", + "top_shell_layers": "6", + "wall_loops": "6", + "instantiation": "true" +} diff --git a/resources/profiles/Elegoo/process/EC/0.24mm Draft @Elegoo C 0.4 nozzle.json b/resources/profiles/Elegoo/process/EC/0.24mm Draft @Elegoo C 0.4 nozzle.json new file mode 100644 index 0000000000..203b7e4bfd --- /dev/null +++ b/resources/profiles/Elegoo/process/EC/0.24mm Draft @Elegoo C 0.4 nozzle.json @@ -0,0 +1,6 @@ +{ + "inherits": "0.20mm Standard @Elegoo C 0.4 nozzle", + "layer_height": "0.24", + "name": "0.24mm Draft @Elegoo C 0.4 nozzle", + "instantiation": "true" +} diff --git a/resources/profiles/Elegoo/process/EC/0.24mm Fine @Elegoo C 0.8 nozzle.json b/resources/profiles/Elegoo/process/EC/0.24mm Fine @Elegoo C 0.8 nozzle.json new file mode 100644 index 0000000000..e14a75ec1b --- /dev/null +++ b/resources/profiles/Elegoo/process/EC/0.24mm Fine @Elegoo C 0.8 nozzle.json @@ -0,0 +1,7 @@ +{ + "inherits": "0.40mm Standard @Elegoo C 0.8 nozzle", + "initial_layer_print_height": "0.3", + "layer_height": "0.24", + "name": "0.24mm Fine @Elegoo C 0.8 nozzle", + "instantiation": "true" +} diff --git a/resources/profiles/Elegoo/process/EC/0.24mm Optimal @Elegoo C 0.6 nozzle.json b/resources/profiles/Elegoo/process/EC/0.24mm Optimal @Elegoo C 0.6 nozzle.json new file mode 100644 index 0000000000..e8a6624341 --- /dev/null +++ b/resources/profiles/Elegoo/process/EC/0.24mm Optimal @Elegoo C 0.6 nozzle.json @@ -0,0 +1,6 @@ +{ + "inherits": "0.30mm Standard @Elegoo C 0.6 nozzle", + "layer_height": "0.24", + "name": "0.24mm Optimal @Elegoo C 0.6 nozzle", + "instantiation": "true" +} diff --git a/resources/profiles/Elegoo/process/EC/0.28mm Extra Draft @Elegoo C 0.4 nozzle.json b/resources/profiles/Elegoo/process/EC/0.28mm Extra Draft @Elegoo C 0.4 nozzle.json new file mode 100644 index 0000000000..b6dab7d434 --- /dev/null +++ b/resources/profiles/Elegoo/process/EC/0.28mm Extra Draft @Elegoo C 0.4 nozzle.json @@ -0,0 +1,6 @@ +{ + "inherits": "0.20mm Standard @Elegoo C 0.4 nozzle", + "layer_height": "0.28", + "name": "0.28mm Extra Draft @Elegoo C 0.4 nozzle", + "instantiation": "true" +} diff --git a/resources/profiles/Elegoo/process/EC/0.30mm Standard @Elegoo C 0.6 nozzle.json b/resources/profiles/Elegoo/process/EC/0.30mm Standard @Elegoo C 0.6 nozzle.json new file mode 100644 index 0000000000..8421d8e308 --- /dev/null +++ b/resources/profiles/Elegoo/process/EC/0.30mm Standard @Elegoo C 0.6 nozzle.json @@ -0,0 +1,13 @@ +{ + "type": "process", + "name": "0.30mm Standard @Elegoo C 0.6 nozzle", + "inherits": "fdm_process_ecc_06030", + "from": "system", + "setting_id": "PEC06030", + "instantiation": "true", + "sparse_infill_pattern": "zig-zag", + "filename_format": "EC_{nozzle_diameter[0]}_{input_filename_base}_{filament_type[0]}{layer_height}_{print_time}.gcode", + "compatible_printers": [ + "Elegoo Centauri 0.6 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Elegoo/process/EC/0.30mm Strength @Elegoo C 0.6 nozzle.json b/resources/profiles/Elegoo/process/EC/0.30mm Strength @Elegoo C 0.6 nozzle.json new file mode 100644 index 0000000000..b7829d73a1 --- /dev/null +++ b/resources/profiles/Elegoo/process/EC/0.30mm Strength @Elegoo C 0.6 nozzle.json @@ -0,0 +1,12 @@ +{ + "inherits": "0.30mm Standard @Elegoo C 0.6 nozzle", + "inner_wall_speed": "120", + "name": "0.30mm Strength @Elegoo C 0.6 nozzle", + "wall_sequence": "inner-outer-inner wall", + "reduce_crossing_wall": "1", + "outer_wall_speed": "80", + "sparse_infill_density": "15%", + "top_surface_speed": "120", + "wall_loops": "4", + "instantiation": "true" +} diff --git a/resources/profiles/Elegoo/process/EC/0.32mm Optimal @Elegoo C 0.8 nozzle.json b/resources/profiles/Elegoo/process/EC/0.32mm Optimal @Elegoo C 0.8 nozzle.json new file mode 100644 index 0000000000..ac37109ba6 --- /dev/null +++ b/resources/profiles/Elegoo/process/EC/0.32mm Optimal @Elegoo C 0.8 nozzle.json @@ -0,0 +1,6 @@ +{ + "inherits": "0.40mm Standard @Elegoo C 0.8 nozzle", + "layer_height": "0.32", + "name": "0.32mm Optimal @Elegoo C 0.8 nozzle", + "instantiation": "true" +} diff --git a/resources/profiles/Elegoo/process/EC/0.36mm Draft @Elegoo C 0.6 nozzle.json b/resources/profiles/Elegoo/process/EC/0.36mm Draft @Elegoo C 0.6 nozzle.json new file mode 100644 index 0000000000..efddf97035 --- /dev/null +++ b/resources/profiles/Elegoo/process/EC/0.36mm Draft @Elegoo C 0.6 nozzle.json @@ -0,0 +1,6 @@ +{ + "inherits": "0.30mm Standard @Elegoo C 0.6 nozzle", + "layer_height": "0.36", + "name": "0.36mm Draft @Elegoo C 0.6 nozzle", + "instantiation": "true" +} diff --git a/resources/profiles/Elegoo/process/EC/0.40mm Standard @Elegoo C 0.8 nozzle.json b/resources/profiles/Elegoo/process/EC/0.40mm Standard @Elegoo C 0.8 nozzle.json new file mode 100644 index 0000000000..b83167b57f --- /dev/null +++ b/resources/profiles/Elegoo/process/EC/0.40mm Standard @Elegoo C 0.8 nozzle.json @@ -0,0 +1,13 @@ +{ + "type": "process", + "name": "0.40mm Standard @Elegoo C 0.8 nozzle", + "inherits": "fdm_process_ecc_08040", + "from": "system", + "setting_id": "PEC08040", + "instantiation": "true", + "sparse_infill_pattern": "zig-zag", + "filename_format": "EC_{nozzle_diameter[0]}_{input_filename_base}_{filament_type[0]}{layer_height}_{print_time}.gcode", + "compatible_printers": [ + "Elegoo Centauri 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Elegoo/process/EC/0.42mm Extra Draft @Elegoo C 0.6 nozzle.json b/resources/profiles/Elegoo/process/EC/0.42mm Extra Draft @Elegoo C 0.6 nozzle.json new file mode 100644 index 0000000000..46fca6e52e --- /dev/null +++ b/resources/profiles/Elegoo/process/EC/0.42mm Extra Draft @Elegoo C 0.6 nozzle.json @@ -0,0 +1,6 @@ +{ + "inherits": "0.30mm Standard @Elegoo C 0.6 nozzle", + "layer_height": "0.42", + "name": "0.42mm Extra Draft @Elegoo C 0.6 nozzle", + "instantiation": "true" +} diff --git a/resources/profiles/Elegoo/process/EC/0.48mm Draft @Elegoo C 0.8 nozzle.json b/resources/profiles/Elegoo/process/EC/0.48mm Draft @Elegoo C 0.8 nozzle.json new file mode 100644 index 0000000000..337e27e01a --- /dev/null +++ b/resources/profiles/Elegoo/process/EC/0.48mm Draft @Elegoo C 0.8 nozzle.json @@ -0,0 +1,6 @@ +{ + "inherits": "0.40mm Standard @Elegoo C 0.8 nozzle", + "layer_height": "0.48", + "name": "0.48mm Draft @Elegoo C 0.8 nozzle", + "instantiation": "true" +} diff --git a/resources/profiles/Elegoo/process/ECC/0.08mm Optimal @Elegoo CC 0.2 nozzle.json b/resources/profiles/Elegoo/process/ECC/0.08mm Optimal @Elegoo CC 0.2 nozzle.json new file mode 100644 index 0000000000..603c5b1198 --- /dev/null +++ b/resources/profiles/Elegoo/process/ECC/0.08mm Optimal @Elegoo CC 0.2 nozzle.json @@ -0,0 +1,7 @@ +{ + "elefant_foot_compensation": "0.05", + "inherits": "0.10mm Standard @Elegoo CC 0.2 nozzle", + "layer_height": "0.08", + "name": "0.08mm Optimal @Elegoo CC 0.2 nozzle", + "instantiation": "true" +} diff --git a/resources/profiles/Elegoo/process/ECC/0.10mm Standard @Elegoo CC 0.2 nozzle.json b/resources/profiles/Elegoo/process/ECC/0.10mm Standard @Elegoo CC 0.2 nozzle.json new file mode 100644 index 0000000000..751436c461 --- /dev/null +++ b/resources/profiles/Elegoo/process/ECC/0.10mm Standard @Elegoo CC 0.2 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "process", + "name": "0.10mm Standard @Elegoo CC 0.2 nozzle", + "inherits": "fdm_process_ecc_02010", + "from": "system", + "setting_id": "PECC02010", + "instantiation": "true", + "sparse_infill_pattern": "zig-zag", + "filename_format": "ECC_{nozzle_diameter[0]}_{input_filename_base}_{filament_type[0]}{layer_height}_{print_time}.gcode", + "elefant_foot_compensation": "0.15", + "compatible_printers": [ + "Elegoo Centauri Carbon 0.2 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Elegoo/process/ECC/0.12mm Draft @Elegoo CC 0.2 nozzle.json b/resources/profiles/Elegoo/process/ECC/0.12mm Draft @Elegoo CC 0.2 nozzle.json new file mode 100644 index 0000000000..5636327c63 --- /dev/null +++ b/resources/profiles/Elegoo/process/ECC/0.12mm Draft @Elegoo CC 0.2 nozzle.json @@ -0,0 +1,6 @@ +{ + "inherits": "0.10mm Standard @Elegoo CC 0.2 nozzle", + "layer_height": "0.12", + "name": "0.12mm Draft @Elegoo CC 0.2 nozzle", + "instantiation": "true" +} diff --git a/resources/profiles/Elegoo/process/ECC/0.12mm Fine @Elegoo CC 0.4 nozzle.json b/resources/profiles/Elegoo/process/ECC/0.12mm Fine @Elegoo CC 0.4 nozzle.json new file mode 100644 index 0000000000..2823fe4c56 --- /dev/null +++ b/resources/profiles/Elegoo/process/ECC/0.12mm Fine @Elegoo CC 0.4 nozzle.json @@ -0,0 +1,7 @@ +{ + "inherits": "0.20mm Standard @Elegoo CC 0.4 nozzle", + "layer_height": "0.12", + "name": "0.12mm Fine @Elegoo CC 0.4 nozzle", + "wall_loops": "3", + "instantiation": "true" +} diff --git a/resources/profiles/Elegoo/process/ECC/0.14mm Extra Draft @Elegoo CC 0.2 nozzle.json b/resources/profiles/Elegoo/process/ECC/0.14mm Extra Draft @Elegoo CC 0.2 nozzle.json new file mode 100644 index 0000000000..cf33c7821d --- /dev/null +++ b/resources/profiles/Elegoo/process/ECC/0.14mm Extra Draft @Elegoo CC 0.2 nozzle.json @@ -0,0 +1,6 @@ +{ + "inherits": "0.10mm Standard @Elegoo CC 0.2 nozzle", + "layer_height": "0.14", + "name": "0.14mm Extra Draft @Elegoo CC 0.2 nozzle", + "instantiation": "true" +} diff --git a/resources/profiles/Elegoo/process/ECC/0.16mm Extra Fine @Elegoo CC 0.8 nozzle.json b/resources/profiles/Elegoo/process/ECC/0.16mm Extra Fine @Elegoo CC 0.8 nozzle.json new file mode 100644 index 0000000000..aece670af5 --- /dev/null +++ b/resources/profiles/Elegoo/process/ECC/0.16mm Extra Fine @Elegoo CC 0.8 nozzle.json @@ -0,0 +1,7 @@ +{ + "inherits": "0.40mm Standard @Elegoo CC 0.8 nozzle", + "initial_layer_print_height": "0.3", + "layer_height": "0.16", + "name": "0.16mm Extra Fine @Elegoo CC 0.8 nozzle", + "instantiation": "true" +} diff --git a/resources/profiles/Elegoo/process/ECC/0.16mm Optimal @Elegoo CC 0.4 nozzle.json b/resources/profiles/Elegoo/process/ECC/0.16mm Optimal @Elegoo CC 0.4 nozzle.json new file mode 100644 index 0000000000..c4c113a38c --- /dev/null +++ b/resources/profiles/Elegoo/process/ECC/0.16mm Optimal @Elegoo CC 0.4 nozzle.json @@ -0,0 +1,6 @@ +{ + "inherits": "0.20mm Standard @Elegoo CC 0.4 nozzle", + "layer_height": "0.16", + "name": "0.16mm Optimal @Elegoo CC 0.4 nozzle", + "instantiation": "true" +} diff --git a/resources/profiles/Elegoo/process/ECC/0.18mm Fine @Elegoo CC 0.6 nozzle.json b/resources/profiles/Elegoo/process/ECC/0.18mm Fine @Elegoo CC 0.6 nozzle.json new file mode 100644 index 0000000000..60a67ebcbc --- /dev/null +++ b/resources/profiles/Elegoo/process/ECC/0.18mm Fine @Elegoo CC 0.6 nozzle.json @@ -0,0 +1,6 @@ +{ + "inherits": "0.30mm Standard @Elegoo CC 0.6 nozzle", + "layer_height": "0.18", + "name": "0.18mm Fine @Elegoo CC 0.6 nozzle", + "instantiation": "true" +} diff --git a/resources/profiles/Elegoo/process/ECC/0.20mm Standard @Elegoo CC 0.4 nozzle.json b/resources/profiles/Elegoo/process/ECC/0.20mm Standard @Elegoo CC 0.4 nozzle.json new file mode 100644 index 0000000000..410b4f9143 --- /dev/null +++ b/resources/profiles/Elegoo/process/ECC/0.20mm Standard @Elegoo CC 0.4 nozzle.json @@ -0,0 +1,16 @@ + +{ + "type": "process", + "name": "0.20mm Standard @Elegoo CC 0.4 nozzle", + "inherits": "fdm_process_ecc_04020", + "from": "system", + "setting_id": "PECC04020", + "instantiation": "true", + "bottom_shell_layers": "3", + "bottom_shell_thickness": "0.6", + "sparse_infill_pattern": "zig-zag", + "filename_format": "ECC_{nozzle_diameter[0]}_{input_filename_base}_{filament_type[0]}{layer_height}_{print_time}.gcode", + "compatible_printers": [ + "Elegoo Centauri Carbon 0.4 nozzle" + ] +} diff --git a/resources/profiles/Elegoo/process/ECC/0.20mm Strength @Elegoo CC 0.4 nozzle.json b/resources/profiles/Elegoo/process/ECC/0.20mm Strength @Elegoo CC 0.4 nozzle.json new file mode 100644 index 0000000000..7082721b6c --- /dev/null +++ b/resources/profiles/Elegoo/process/ECC/0.20mm Strength @Elegoo CC 0.4 nozzle.json @@ -0,0 +1,13 @@ +{ + "inherits": "0.20mm Standard @Elegoo CC 0.4 nozzle", + "name": "0.20mm Strength @Elegoo CC 0.4 nozzle", + "wall_sequence": "inner-outer-inner wall", + "reduce_crossing_wall": "1", + "bottom_shell_layers": "5", + "outer_wall_speed": "120", + "print_flow_ratio": "0.95", + "sparse_infill_density": "20%", + "top_shell_layers": "6", + "wall_loops": "6", + "instantiation": "true" +} diff --git a/resources/profiles/Elegoo/process/ECC/0.24mm Draft @Elegoo CC 0.4 nozzle.json b/resources/profiles/Elegoo/process/ECC/0.24mm Draft @Elegoo CC 0.4 nozzle.json new file mode 100644 index 0000000000..31ff8f882f --- /dev/null +++ b/resources/profiles/Elegoo/process/ECC/0.24mm Draft @Elegoo CC 0.4 nozzle.json @@ -0,0 +1,6 @@ +{ + "inherits": "0.20mm Standard @Elegoo CC 0.4 nozzle", + "layer_height": "0.24", + "name": "0.24mm Draft @Elegoo CC 0.4 nozzle", + "instantiation": "true" +} diff --git a/resources/profiles/Elegoo/process/ECC/0.24mm Fine @Elegoo CC 0.8 nozzle.json b/resources/profiles/Elegoo/process/ECC/0.24mm Fine @Elegoo CC 0.8 nozzle.json new file mode 100644 index 0000000000..3280e7baa0 --- /dev/null +++ b/resources/profiles/Elegoo/process/ECC/0.24mm Fine @Elegoo CC 0.8 nozzle.json @@ -0,0 +1,7 @@ +{ + "inherits": "0.40mm Standard @Elegoo CC 0.8 nozzle", + "initial_layer_print_height": "0.3", + "layer_height": "0.24", + "name": "0.24mm Fine @Elegoo CC 0.8 nozzle", + "instantiation": "true" +} diff --git a/resources/profiles/Elegoo/process/ECC/0.24mm Optimal @Elegoo CC 0.6 nozzle.json b/resources/profiles/Elegoo/process/ECC/0.24mm Optimal @Elegoo CC 0.6 nozzle.json new file mode 100644 index 0000000000..35489b01b3 --- /dev/null +++ b/resources/profiles/Elegoo/process/ECC/0.24mm Optimal @Elegoo CC 0.6 nozzle.json @@ -0,0 +1,6 @@ +{ + "inherits": "0.30mm Standard @Elegoo CC 0.6 nozzle", + "layer_height": "0.24", + "name": "0.24mm Optimal @Elegoo CC 0.6 nozzle", + "instantiation": "true" +} diff --git a/resources/profiles/Elegoo/process/ECC/0.28mm Extra Draft @Elegoo CC 0.4 nozzle.json b/resources/profiles/Elegoo/process/ECC/0.28mm Extra Draft @Elegoo CC 0.4 nozzle.json new file mode 100644 index 0000000000..1e5b57eb9d --- /dev/null +++ b/resources/profiles/Elegoo/process/ECC/0.28mm Extra Draft @Elegoo CC 0.4 nozzle.json @@ -0,0 +1,6 @@ +{ + "inherits": "0.20mm Standard @Elegoo CC 0.4 nozzle", + "layer_height": "0.28", + "name": "0.28mm Extra Draft @Elegoo CC 0.4 nozzle", + "instantiation": "true" +} diff --git a/resources/profiles/Elegoo/process/ECC/0.30mm Standard @Elegoo CC 0.6 nozzle.json b/resources/profiles/Elegoo/process/ECC/0.30mm Standard @Elegoo CC 0.6 nozzle.json new file mode 100644 index 0000000000..0159917c78 --- /dev/null +++ b/resources/profiles/Elegoo/process/ECC/0.30mm Standard @Elegoo CC 0.6 nozzle.json @@ -0,0 +1,14 @@ + +{ + "type": "process", + "name": "0.30mm Standard @Elegoo CC 0.6 nozzle", + "inherits": "fdm_process_ecc_06030", + "from": "system", + "setting_id": "PECC06030", + "instantiation": "true", + "sparse_infill_pattern": "zig-zag", + "filename_format": "ECC_{nozzle_diameter[0]}_{input_filename_base}_{filament_type[0]}{layer_height}_{print_time}.gcode", + "compatible_printers": [ + "Elegoo Centauri Carbon 0.6 nozzle" + ] +} diff --git a/resources/profiles/Elegoo/process/ECC/0.30mm Strength @Elegoo CC 0.6 nozzle.json b/resources/profiles/Elegoo/process/ECC/0.30mm Strength @Elegoo CC 0.6 nozzle.json new file mode 100644 index 0000000000..025d46e3b0 --- /dev/null +++ b/resources/profiles/Elegoo/process/ECC/0.30mm Strength @Elegoo CC 0.6 nozzle.json @@ -0,0 +1,12 @@ +{ + "inherits": "0.30mm Standard @Elegoo CC 0.6 nozzle", + "inner_wall_speed": "120", + "name": "0.30mm Strength @Elegoo CC 0.6 nozzle", + "wall_sequence": "inner-outer-inner wall", + "reduce_crossing_wall": "1", + "outer_wall_speed": "80", + "sparse_infill_density": "15%", + "top_surface_speed": "120", + "wall_loops": "4", + "instantiation": "true" +} diff --git a/resources/profiles/Elegoo/process/ECC/0.32mm Optimal @Elegoo CC 0.8 nozzle.json b/resources/profiles/Elegoo/process/ECC/0.32mm Optimal @Elegoo CC 0.8 nozzle.json new file mode 100644 index 0000000000..c8950d4fd0 --- /dev/null +++ b/resources/profiles/Elegoo/process/ECC/0.32mm Optimal @Elegoo CC 0.8 nozzle.json @@ -0,0 +1,6 @@ +{ + "inherits": "0.40mm Standard @Elegoo CC 0.8 nozzle", + "layer_height": "0.32", + "name": "0.32mm Optimal @Elegoo CC 0.8 nozzle", + "instantiation": "true" +} diff --git a/resources/profiles/Elegoo/process/ECC/0.36mm Draft @Elegoo CC 0.6 nozzle.json b/resources/profiles/Elegoo/process/ECC/0.36mm Draft @Elegoo CC 0.6 nozzle.json new file mode 100644 index 0000000000..a65e5bdf60 --- /dev/null +++ b/resources/profiles/Elegoo/process/ECC/0.36mm Draft @Elegoo CC 0.6 nozzle.json @@ -0,0 +1,6 @@ +{ + "inherits": "0.30mm Standard @Elegoo CC 0.6 nozzle", + "layer_height": "0.36", + "name": "0.36mm Draft @Elegoo CC 0.6 nozzle", + "instantiation": "true" +} diff --git a/resources/profiles/Elegoo/process/ECC/0.40mm Standard @Elegoo CC 0.8 nozzle.json b/resources/profiles/Elegoo/process/ECC/0.40mm Standard @Elegoo CC 0.8 nozzle.json new file mode 100644 index 0000000000..f46bc25763 --- /dev/null +++ b/resources/profiles/Elegoo/process/ECC/0.40mm Standard @Elegoo CC 0.8 nozzle.json @@ -0,0 +1,14 @@ + +{ + "type": "process", + "name": "0.40mm Standard @Elegoo CC 0.8 nozzle", + "inherits": "fdm_process_ecc_08040", + "from": "system", + "setting_id": "PECC08040", + "instantiation": "true", + "sparse_infill_pattern": "zig-zag", + "filename_format": "ECC_{nozzle_diameter[0]}_{input_filename_base}_{filament_type[0]}{layer_height}_{print_time}.gcode", + "compatible_printers": [ + "Elegoo Centauri Carbon 0.8 nozzle" + ] +} diff --git a/resources/profiles/Elegoo/process/ECC/0.42mm Extra Draft @Elegoo CC 0.6 nozzle.json b/resources/profiles/Elegoo/process/ECC/0.42mm Extra Draft @Elegoo CC 0.6 nozzle.json new file mode 100644 index 0000000000..8c0270b34a --- /dev/null +++ b/resources/profiles/Elegoo/process/ECC/0.42mm Extra Draft @Elegoo CC 0.6 nozzle.json @@ -0,0 +1,6 @@ +{ + "inherits": "0.30mm Standard @Elegoo CC 0.6 nozzle", + "layer_height": "0.42", + "name": "0.42mm Extra Draft @Elegoo CC 0.6 nozzle", + "instantiation": "true" +} diff --git a/resources/profiles/Elegoo/process/ECC/0.48mm Draft @Elegoo CC 0.8 nozzle.json b/resources/profiles/Elegoo/process/ECC/0.48mm Draft @Elegoo CC 0.8 nozzle.json new file mode 100644 index 0000000000..fb9c99eb5f --- /dev/null +++ b/resources/profiles/Elegoo/process/ECC/0.48mm Draft @Elegoo CC 0.8 nozzle.json @@ -0,0 +1,6 @@ +{ + "inherits": "0.40mm Standard @Elegoo CC 0.8 nozzle", + "layer_height": "0.48", + "name": "0.48mm Draft @Elegoo CC 0.8 nozzle", + "instantiation": "true" +} diff --git a/resources/profiles/Elegoo/process/ECC/fdm_process_ecc.json b/resources/profiles/Elegoo/process/ECC/fdm_process_ecc.json new file mode 100644 index 0000000000..9bc0e0f1c5 --- /dev/null +++ b/resources/profiles/Elegoo/process/ECC/fdm_process_ecc.json @@ -0,0 +1,93 @@ +{ + "type": "process", + "name": "fdm_process_ecc", + "inherits": "fdm_process_ecc_common", + "from": "system", + "instantiation": "false", + "max_travel_detour_distance": "0", + "bottom_surface_pattern": "monotonic", + "bottom_shell_layers": "4", + "bridge_speed": "50", + "brim_object_gap": "0.1", + "compatible_printers_condition": "", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.05", + "enable_arc_fitting": "1", + "outer_wall_acceleration": "5000", + "wall_infill_order": "inner wall/outer wall/infill", + "line_width": "0.42", + "internal_bridge_support_thickness": "0.8", + "initial_layer_acceleration": "500", + "initial_layer_line_width": "0.5", + "initial_layer_speed": "30", + "gap_infill_speed": "50", + "sparse_infill_speed": "250", + "ironing_flow": "10%", + "ironing_spacing": "0.15", + "ironing_speed": "30", + "ironing_type": "no ironing", + "layer_height": "0.2", + "filename_format": "{input_filename_base}_{filament_type[0]}{layer_height}_{print_time}.gcode", + "detect_overhang_wall": "1", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "50", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "10", + "only_one_wall_top": "1", + "inner_wall_speed": "150", + "seam_position": "aligned", + "skirt_height": "1", + "skirt_loops": "0", + "sparse_infill_density": "15%", + "sparse_infill_pattern": "cubic", + "top_bottom_infill_wall_overlap": "5%", + "infill_anchor": "400%", + "infill_anchor_max": "40", + "minimum_sparse_infill_area": "15", + "internal_solid_infill_line_width": "0.42", + "internal_solid_infill_speed": "150", + "initial_layer_infill_speed": "60", + "resolution": "0.012", + "support_type": "normal(auto)", + "support_style": "default", + "support_top_z_distance": "0.2", + "support_bottom_z_distance": "0.2", + "support_interface_bottom_layers": "2", + "support_interface_spacing": "0.5", + "support_expansion": "0", + "support_base_pattern_spacing": "2.5", + "support_speed": "150", + "support_threshold_angle": "30", + "support_object_xy_distance": "0.35", + "tree_support_branch_diameter": "2", + "tree_support_branch_angle": "45", + "tree_support_wall_count": "0", + "top_surface_pattern": "monotonicline", + "top_surface_acceleration": "2000", + "top_surface_speed": "200", + "top_shell_layers": "3", + "travel_speed": "500", + "wipe_tower_no_sparse_layers": "0", + "prime_tower_width": "35", + "wall_generator": "classic", + "compatible_printers": [], + "detect_narrow_internal_solid_infill": "1", + "extra_perimeters_on_overhangs": "0", + "seam_slope_conditional": "1", + "seam_slope_inner_walls": "1", + "accel_to_decel_enable": "0", + "precise_outer_wall": "0", + "seam_slope_min_length": "0", + "bridge_flow": "0.95", + "internal_bridge_flow": "0.95", + "role_based_wipe_speed": "0", + "seam_slope_type": "none", + "wipe_on_loops": "0", + "gcode_label_objects": "0", + "staggered_inner_seams": "0", + "wipe_before_external_loop": "0", + "exclude_object": "1", + "wipe_speed": "100%", + "print_flow_ratio": "0.97", + "wall_sequence": "inner wall/outer wall" +} diff --git a/resources/profiles/Elegoo/process/ECC/fdm_process_ecc_02010.json b/resources/profiles/Elegoo/process/ECC/fdm_process_ecc_02010.json new file mode 100644 index 0000000000..464c82d5f0 --- /dev/null +++ b/resources/profiles/Elegoo/process/ECC/fdm_process_ecc_02010.json @@ -0,0 +1,30 @@ +{ + "type": "process", + "name": "fdm_process_ecc_02010", + "inherits": "fdm_process_ecc", + "from": "system", + "instantiation": "false", + "layer_height": "0.1", + "initial_layer_print_height": "0.15", + "elefant_foot_compensation": "0.05", + "wall_loops": "4", + "bottom_shell_layers": "5", + "top_shell_layers": "7", + "bridge_flow": "1", + "line_width": "0.22", + "outer_wall_line_width": "0.22", + "initial_layer_line_width": "0.3", + "sparse_infill_line_width": "0.25", + "inner_wall_line_width": "0.22", + "internal_solid_infill_line_width": "0.22", + "support_line_width": "0.22", + "top_surface_line_width": "0.22", + "initial_layer_speed": "35", + "initial_layer_infill_speed": "60", + "sparse_infill_speed": "100", + "inner_wall_speed": "100", + "internal_solid_infill_speed": "100", + "is_custom_defined": "0", + "outer_wall_speed": "60", + "top_surface_speed": "80" +} \ No newline at end of file diff --git a/resources/profiles/Elegoo/process/ECC/fdm_process_ecc_04020.json b/resources/profiles/Elegoo/process/ECC/fdm_process_ecc_04020.json new file mode 100644 index 0000000000..f9fbc12e5f --- /dev/null +++ b/resources/profiles/Elegoo/process/ECC/fdm_process_ecc_04020.json @@ -0,0 +1,18 @@ +{ + "type": "process", + "name": "fdm_process_ecc_04020", + "inherits": "fdm_process_ecc", + "from": "system", + "instantiation": "false", + "elefant_foot_compensation": "0.1", + "top_shell_thickness": "1.0", + "bridge_flow": "1", + "initial_layer_speed": "50", + "initial_layer_infill_speed": "105", + "outer_wall_speed": "160", + "inner_wall_speed": "200", + "sparse_infill_speed": "200", + "internal_solid_infill_speed": "250", + "gap_infill_speed": "250", + "top_shell_layers": "5" +} \ No newline at end of file diff --git a/resources/profiles/Elegoo/process/ECC/fdm_process_ecc_06030.json b/resources/profiles/Elegoo/process/ECC/fdm_process_ecc_06030.json new file mode 100644 index 0000000000..48892929b6 --- /dev/null +++ b/resources/profiles/Elegoo/process/ECC/fdm_process_ecc_06030.json @@ -0,0 +1,26 @@ +{ + "type": "process", + "name": "fdm_process_ecc_06030", + "inherits": "fdm_process_ecc", + "from": "system", + "instantiation": "false", + "layer_height": "0.3", + "initial_layer_print_height": "0.3", + "elefant_foot_compensation": "0.15", + "bridge_flow": "1", + "line_width": "0.62", + "outer_wall_line_width": "0.62", + "initial_layer_line_width": "0.80", + "sparse_infill_line_width": "0.62", + "inner_wall_line_width": "0.62", + "internal_solid_infill_line_width": "0.62", + "support_line_width": "0.62", + "top_surface_line_width": "0.62", + "initial_layer_speed": "35", + "initial_layer_infill_speed": "55", + "gap_infill_speed": "80", + "sparse_infill_speed": "200", + "top_surface_speed": "150", + "bridge_speed": "30", + "overhang_3_4_speed": "25" +} \ No newline at end of file diff --git a/resources/profiles/Elegoo/process/ECC/fdm_process_ecc_08040.json b/resources/profiles/Elegoo/process/ECC/fdm_process_ecc_08040.json new file mode 100644 index 0000000000..da30cf4017 --- /dev/null +++ b/resources/profiles/Elegoo/process/ECC/fdm_process_ecc_08040.json @@ -0,0 +1,27 @@ +{ + "type": "process", + "name": "fdm_process_ecc_08040", + "inherits": "fdm_process_ecc", + "from": "system", + "instantiation": "false", + "layer_height": "0.4", + "initial_layer_print_height": "0.4", + "elefant_foot_compensation": "0.15", + "bridge_flow": "1", + "line_width": "0.82", + "outer_wall_line_width": "0.82", + "initial_layer_line_width": "0.82", + "sparse_infill_line_width": "0.82", + "inner_wall_line_width": "0.82", + "internal_solid_infill_line_width": "0.82", + "support_line_width": "0.82", + "top_surface_line_width": "0.82", + "initial_layer_speed": "35", + "initial_layer_infill_speed": "55", + "sparse_infill_speed": "100", + "top_surface_speed": "150", + "bridge_speed": "30", + "overhang_2_4_speed": "40", + "overhang_3_4_speed": "20", + "overhang_4_4_speed": "10" +} \ No newline at end of file diff --git a/resources/profiles/Elegoo/process/ECC/fdm_process_ecc_common.json b/resources/profiles/Elegoo/process/ECC/fdm_process_ecc_common.json new file mode 100644 index 0000000000..ffbd6580a5 --- /dev/null +++ b/resources/profiles/Elegoo/process/ECC/fdm_process_ecc_common.json @@ -0,0 +1,86 @@ +{ + "type": "process", + "name": "fdm_process_ecc_common", + "from": "system", + "instantiation": "false", + "adaptive_layer_height": "0", + "reduce_crossing_wall": "0", + "bridge_flow": "0.95", + "bridge_speed": "25", + "brim_width": "5", + "print_sequence": "by layer", + "default_acceleration": "10000", + "travel_acceleration": "0", + "inner_wall_acceleration": "0", + "bridge_no_support": "0", + "elefant_foot_compensation": "0.1", + "outer_wall_line_width": "0.42", + "outer_wall_speed": "120", + "line_width": "0.45", + "infill_direction": "45", + "sparse_infill_density": "15%", + "sparse_infill_pattern": "grid", + "initial_layer_line_width": "0.42", + "initial_layer_print_height": "0.2", + "initial_layer_speed": "20", + "gap_infill_speed": "30", + "infill_combination": "0", + "sparse_infill_line_width": "0.45", + "infill_wall_overlap": "15%", + "sparse_infill_speed": "50", + "overhang_speed_classic": "1", + "interface_shells": "0", + "detect_overhang_wall": "0", + "reduce_infill_retraction": "1", + "filename_format": "{input_filename_base}.gcode", + "wall_loops": "2", + "inner_wall_line_width": "0.45", + "inner_wall_speed": "40", + "raft_layers": "0", + "seam_position": "nearest", + "skirt_distance": "2", + "skirt_height": "2", + "minimum_sparse_infill_area": "0", + "internal_solid_infill_line_width": "0.45", + "internal_solid_infill_speed": "40", + "spiral_mode": "0", + "standby_temperature_delta": "-5", + "enable_support": "0", + "support_filament": "0", + "support_line_width": "0.42", + "support_interface_filament": "0", + "support_on_build_plate_only": "0", + "support_top_z_distance": "0.15", + "support_interface_loop_pattern": "0", + "support_interface_top_layers": "2", + "support_interface_spacing": "0", + "support_interface_speed": "80", + "support_interface_pattern": "auto", + "support_base_pattern": "default", + "support_base_pattern_spacing": "2", + "support_speed": "40", + "support_threshold_angle": "40", + "support_object_xy_distance": "0.5", + "tree_support_angle_slow": "30", + "tree_support_branch_angle_organic": "45", + "tree_support_branch_diameter_double_wall": "10", + "tree_support_branch_distance_organic": "5", + "tree_support_tip_diameter": "2", + "detect_thin_wall": "0", + "top_surface_line_width": "0.42", + "top_surface_speed": "30", + "travel_speed": "400", + "enable_prime_tower": "0", + "prime_tower_width": "60", + "xy_hole_compensation": "0", + "xy_contour_compensation": "0", + "role_based_wipe_speed": "1", + "detect_narrow_internal_solid_infill": "1", + "top_shell_thickness": "0.8", + "bottom_shell_thickness":"0.8", + "gap_fill_target": "everywhere", + "filter_out_gap_fill": "1", + "ensure_vertical_shell_thickness": "ensure_all", + "compatible_printers": [], + "slowdown_for_curled_perimeters": "0" +} diff --git a/resources/profiles/Eryone.json b/resources/profiles/Eryone.json index 7bbaf375d8..54df4b7506 100644 --- a/resources/profiles/Eryone.json +++ b/resources/profiles/Eryone.json @@ -31,44 +31,7 @@ "sub_path": "process/0.24mm Standard @Thinker X400.json" } ], - "filament_list": [ - { - "name": "fdm_filament_common", - "sub_path": "filament/fdm_filament_common.json" - }, - { - "name": "fdm_filament_pla", - "sub_path": "filament/fdm_filament_pla.json" - }, - { - "name": "Eryone Standard PLA", - "sub_path": "filament/Eryone Standard PLA.json" - }, - { - "name": "Eryone Generic PLA", - "sub_path": "filament/Eryone Generic PLA.json" - }, - { - "name": "Eryone Generic ABS", - "sub_path": "filament/Eryone Generic ABS.json" - }, - { - "name": "Eryone Generic PETG", - "sub_path": "filament/Eryone Generic PETG.json" - }, - { - "name": "Eryone Generic ASA", - "sub_path": "filament/Eryone Generic ASA.json" - }, - { - "name": "Eryone Generic Silk PLA", - "sub_path": "filament/Eryone Generic Silk PLA.json" - }, - { - "name": "Eryone Generic TPU", - "sub_path": "filament/Eryone Generic TPU.json" - } - ], + "filament_list": [], "machine_list": [ { "name": "fdm_machine_common", @@ -79,4 +42,4 @@ "sub_path": "machine/Thinker X400 0.4 nozzle.json" } ] -} +} \ No newline at end of file diff --git a/resources/profiles/Eryone/filament/Eryone Generic ABS.json b/resources/profiles/Eryone/filament/Eryone Generic ABS.json deleted file mode 100644 index 91f0c59d72..0000000000 --- a/resources/profiles/Eryone/filament/Eryone Generic ABS.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "type": "filament", - "filament_id": "EFL91", - "setting_id": "EFSA01", - "name": "Eryone Generic ABS", - "from": "system", - "instantiation": "true", - "inherits": "Eryone Standard PLA", - "compatible_printers": [ - "Thinker X400 0.4 nozzle" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "30" - ], - "fan_max_speed": [ - "60" - ], - "fan_min_speed": [ - "30" - ], - "filament_settings_id": [ - "Eryone Generic ABS" - ], - "filament_type": [ - "ABS" - ], - "filament_vendor": [ - "Eryone" - ], - "hot_plate_temp": [ - "115" - ], - "hot_plate_temp_initial_layer": [ - "115" - ], - "nozzle_temperature": [ - "250" - ], - "nozzle_temperature_initial_layer": [ - "250" - ], - "nozzle_temperature_range_high": [ - "280" - ], - "nozzle_temperature_range_low": [ - "240" - ], - "slow_down_layer_time": [ - "12" - ] -} diff --git a/resources/profiles/Eryone/filament/Eryone Generic ASA.json b/resources/profiles/Eryone/filament/Eryone Generic ASA.json deleted file mode 100644 index 9fffd9ed92..0000000000 --- a/resources/profiles/Eryone/filament/Eryone Generic ASA.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "type": "filament", - "filament_id": "EFL92", - "setting_id": "EFSA02", - "name": "Eryone Generic ASA", - "from": "system", - "instantiation": "true", - "inherits": "Eryone Standard PLA", - "compatible_printers": [ - "Thinker X400 0.4 nozzle" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "30" - ], - "fan_max_speed": [ - "30" - ], - "fan_min_speed": [ - "30" - ], - "filament_settings_id": [ - "Eryone Generic ASA" - ], - "filament_type": [ - "ASA" - ], - "filament_vendor": [ - "Eryone" - ], - "hot_plate_temp": [ - "115" - ], - "hot_plate_temp_initial_layer": [ - "115" - ], - "nozzle_temperature": [ - "265" - ], - "nozzle_temperature_initial_layer": [ - "265" - ], - "nozzle_temperature_range_high": [ - "280" - ], - "nozzle_temperature_range_low": [ - "240" - ], - "slow_down_layer_time": [ - "12" - ] -} diff --git a/resources/profiles/Eryone/filament/Eryone Generic PETG.json b/resources/profiles/Eryone/filament/Eryone Generic PETG.json deleted file mode 100644 index c9fc9060be..0000000000 --- a/resources/profiles/Eryone/filament/Eryone Generic PETG.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "type": "filament", - "filament_id": "EFL93", - "setting_id": "EFSA03", - "name": "Eryone Generic PETG", - "from": "system", - "instantiation": "true", - "inherits": "Eryone Standard PLA", - "compatible_printers": [ - "Thinker X400 0.4 nozzle" - ], - "fan_min_speed": [ - "90" - ], - "close_fan_the_first_x_layers": [ - "2" - ], - "filament_vendor": [ - "Eryone" - ], - "filament_settings_id": [ - "Eryone Generic PETG" - ], - "filament_type": [ - "PETG" - ], - - "hot_plate_temp": [ - "85" - ], - "hot_plate_temp_initial_layer": [ - "85" - ], - "nozzle_temperature": [ - "245" - ], - "nozzle_temperature_initial_layer": [ - "245" - ], - "nozzle_temperature_range_high": [ - "270" - ], - "nozzle_temperature_range_low": [ - "225" - ], - "slow_down_layer_time": [ - "8" - ] -} diff --git a/resources/profiles/Eryone/filament/Eryone Generic PLA.json b/resources/profiles/Eryone/filament/Eryone Generic PLA.json deleted file mode 100644 index 8b9d23b072..0000000000 --- a/resources/profiles/Eryone/filament/Eryone Generic PLA.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "type": "filament", - "filament_id": "EFL90", - "setting_id": "EFSA00", - "name": "Eryone Generic PLA", - "from": "system", - "instantiation": "true", - "inherits": "Eryone Standard PLA", - "compatible_printers": [ - "Thinker X400 0.4 nozzle" - ], - "fan_min_speed": [ - "90" - ], - "filament_max_volumetric_speed": [ - "20" - ], - "filament_settings_id": [ - "Eryone Generic PLA" - ], - "from": "User", - "hot_plate_temp": [ - "65" - ], - "slow_down_layer_time": [ - "4" - ], - "slow_down_min_speed": [ - "15" - ] -} diff --git a/resources/profiles/Eryone/filament/Eryone Generic Silk PLA.json b/resources/profiles/Eryone/filament/Eryone Generic Silk PLA.json deleted file mode 100644 index 6fce0687c6..0000000000 --- a/resources/profiles/Eryone/filament/Eryone Generic Silk PLA.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "type": "filament", - "filament_id": "EFL941", - "setting_id": "EFSA041", - "name": "Eryone Generic Silk PLA", - "from": "system", - "instantiation": "true", - "inherits": "Eryone Standard PLA", - "compatible_printers": [ - "Thinker X400 0.4 nozzle" - ], - "fan_min_speed": [ - "90" - ], - "filament_settings_id": [ - "Eryone Generic Silk PLA" - ], - "from": "User", - "hot_plate_temp": [ - "65" - ], - "nozzle_temperature": [ - "225" - ], - "nozzle_temperature_initial_layer": [ - "225" - ], - "slow_down_layer_time": [ - "8" - ], - "slow_down_min_speed": [ - "15" - ] -} diff --git a/resources/profiles/Eryone/filament/Eryone Generic TPU.json b/resources/profiles/Eryone/filament/Eryone Generic TPU.json deleted file mode 100644 index 1cabba5b69..0000000000 --- a/resources/profiles/Eryone/filament/Eryone Generic TPU.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "type": "filament", - "filament_id": "EFL95", - "setting_id": "EFSA05", - "name": "Eryone Generic TPU", - "from": "system", - "instantiation": "true", - "inherits": "Eryone Standard PLA", - "compatible_printers": [ - "Thinker X400 0.4 nozzle" - ], - "fan_min_speed": [ - "90" - ], - "filament_max_volumetric_speed": [ - "4.2" - ], - "filament_retraction_length": [ - "1.6" - ], - "filament_settings_id": [ - "Eryone Generic TPU" - ], - "filament_type": [ - "TPU" - ], - "from": "User", - "nozzle_temperature": [ - "230" - ], - "nozzle_temperature_initial_layer": [ - "230" - ], - "hot_plate_temp": [ - "50" - ], - "hot_plate_temp_initial_layer": [ - "50" - ], - "slow_down_layer_time": [ - "8" - ] -} diff --git a/resources/profiles/Eryone/filament/Eryone Standard PLA.json b/resources/profiles/Eryone/filament/Eryone Standard PLA.json deleted file mode 100644 index 66299ef95a..0000000000 --- a/resources/profiles/Eryone/filament/Eryone Standard PLA.json +++ /dev/null @@ -1,250 +0,0 @@ -{ - "type": "filament", - - "name": "Eryone Standard PLA", - "from": "system", - "instantiation": "false", - "compatible_printers": [ - "Thinker X400 0.4 nozzle" - ], - "activate_air_filtration": [ - "0" - ], - "activate_chamber_temp_control": [ - "0" - ], - "additional_cooling_fan_speed": [ - "70" - ], - "chamber_temperature": [ - "0" - ], - "close_fan_the_first_x_layers": [ - "1" - ], - "compatible_printers_condition": "", - "compatible_prints": [], - "compatible_prints_condition": "", - "complete_print_exhaust_fan_speed": [ - "80" - ], - "cool_plate_temp": [ - "60" - ], - "cool_plate_temp_initial_layer": [ - "60" - ], - "default_filament_colour": [ - "" - ], - "during_print_exhaust_fan_speed": [ - "60" - ], - "enable_overhang_bridge_fan": [ - "1" - ], - "enable_pressure_advance": [ - "0" - ], - "eng_plate_temp": [ - "60" - ], - "eng_plate_temp_initial_layer": [ - "60" - ], - "fan_cooling_layer_time": [ - "100" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "filament_cooling_final_speed": [ - "3.4" - ], - "filament_cooling_initial_speed": [ - "2.2" - ], - "filament_cooling_moves": [ - "4" - ], - "filament_cost": [ - "20" - ], - "filament_density": [ - "1.24" - ], - "filament_deretraction_speed": [ - "nil" - ], - "filament_diameter": [ - "1.75" - ], - "filament_end_gcode": [ - "; filament end gcode \n" - ], - "filament_flow_ratio": [ - "0.98" - ], - "filament_is_support": [ - "0" - ], - "filament_load_time": [ - "0" - ], - "filament_loading_speed": [ - "28" - ], - "filament_loading_speed_start": [ - "3" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "filament_minimal_purge_on_wipe_tower": [ - "15" - ], - "filament_multitool_ramming": [ - "0" - ], - "filament_multitool_ramming_flow": [ - "10" - ], - "filament_multitool_ramming_volume": [ - "10" - ], - "filament_notes": [ - "" - ], - "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_retract_before_wipe": [ - "nil" - ], - "filament_retract_lift_above": [ - "nil" - ], - "filament_retract_lift_below": [ - "nil" - ], - "filament_retract_lift_enforce": [ - "nil" - ], - "filament_retract_restart_extra": [ - "nil" - ], - "filament_retract_when_changing_layer": [ - "nil" - ], - "filament_retraction_length": [ - "nil" - ], - "filament_retraction_minimum_travel": [ - "nil" - ], - "filament_retraction_speed": [ - "nil" - ], - "filament_settings_id": [ - "Eryone Standard PLA" - ], - "filament_shrink": [ - "100%" - ], - "filament_soluble": [ - "0" - ], - "filament_start_gcode": [ - "; filament start gcode" - ], - "filament_toolchange_delay": [ - "0" - ], - "filament_type": [ - "PLA" - ], - "filament_unload_time": [ - "0" - ], - "filament_unloading_speed": [ - "90" - ], - "filament_unloading_speed_start": [ - "100" - ], - "filament_vendor": [ - "Eryone" - ], - "filament_wipe": [ - "nil" - ], - "filament_wipe_distance": [ - "nil" - ], - "filament_z_hop": [ - "nil" - ], - "filament_z_hop_types": [ - "nil" - ], - "full_fan_speed_layer": [ - "0" - ], - "hot_plate_temp": [ - "60" - ], - "hot_plate_temp_initial_layer": [ - "65" - ], - "nozzle_temperature": [ - "220" - ], - "nozzle_temperature_initial_layer": [ - "220" - ], - "nozzle_temperature_range_high": [ - "260" - ], - "nozzle_temperature_range_low": [ - "180" - ], - "overhang_fan_speed": [ - "100" - ], - "overhang_fan_threshold": [ - "50%" - ], - "pressure_advance": [ - "0.02" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "required_nozzle_HRC": [ - "0" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "slow_down_layer_time": [ - "5" - ], - "slow_down_min_speed": [ - "10" - ], - "support_material_interface_fan_speed": [ - "-1" - ], - "temperature_vitrification": [ - "60" - ], - "textured_plate_temp": [ - "60" - ], - "textured_plate_temp_initial_layer": [ - "60" - ] -} diff --git a/resources/profiles/Eryone/process/0.12mm Standard @Thinker X400.json b/resources/profiles/Eryone/process/0.12mm Standard @Thinker X400.json index c3fc98d56e..3171630d71 100644 --- a/resources/profiles/Eryone/process/0.12mm Standard @Thinker X400.json +++ b/resources/profiles/Eryone/process/0.12mm Standard @Thinker X400.json @@ -11,6 +11,7 @@ "is_custom_defined": "0", "layer_height": "0.12", "name": "0.12mm Standard @Thinker X400", + "instantiation": "true", "only_one_wall_top": "1", "outer_wall_speed": "200", "overhang_1_4_speed": "60", @@ -24,4 +25,4 @@ "top_shell_thickness": "1", "version": "1.9.0.2", "wall_generator": "classic" -} +} \ No newline at end of file diff --git a/resources/profiles/Eryone/process/0.16mm Standard @Thinker X400.json b/resources/profiles/Eryone/process/0.16mm Standard @Thinker X400.json index f224b3388c..c19eb5d3a4 100644 --- a/resources/profiles/Eryone/process/0.16mm Standard @Thinker X400.json +++ b/resources/profiles/Eryone/process/0.16mm Standard @Thinker X400.json @@ -11,6 +11,7 @@ "is_custom_defined": "0", "layer_height": "0.16", "name": "0.16mm Standard @Thinker X400", + "instantiation": "true", "only_one_wall_top": "1", "outer_wall_speed": "200", "overhang_1_4_speed": "60", @@ -24,4 +25,4 @@ "top_shell_thickness": "1", "version": "1.9.0.2", "wall_generator": "classic" -} +} \ No newline at end of file diff --git a/resources/profiles/Eryone/process/0.24mm Standard @Thinker X400.json b/resources/profiles/Eryone/process/0.24mm Standard @Thinker X400.json index 95e96660fb..37169e4326 100644 --- a/resources/profiles/Eryone/process/0.24mm Standard @Thinker X400.json +++ b/resources/profiles/Eryone/process/0.24mm Standard @Thinker X400.json @@ -11,6 +11,7 @@ "is_custom_defined": "0", "layer_height": "0.24", "name": "0.24mm Standard @Thinker X400", + "instantiation": "true", "only_one_wall_top": "1", "outer_wall_speed": "200", "print_settings_id": "0.24mm Standard @Thinker X400", @@ -21,4 +22,4 @@ "top_shell_thickness": "1", "version": "1.9.0.2", "wall_generator": "classic" -} +} \ No newline at end of file diff --git a/resources/profiles/FLSun/FLSun_S1_buildplate_texture.png b/resources/profiles/FLSun/FLSun_S1_buildplate_texture.png index 81f375fce9..b931e1a7f0 100644 Binary files a/resources/profiles/FLSun/FLSun_S1_buildplate_texture.png and b/resources/profiles/FLSun/FLSun_S1_buildplate_texture.png differ diff --git a/resources/profiles/Flashforge.json b/resources/profiles/Flashforge.json index cfe73baf40..44854d0a5d 100644 --- a/resources/profiles/Flashforge.json +++ b/resources/profiles/Flashforge.json @@ -488,7 +488,7 @@ "sub_path": "machine/Flashforge Adventurer 5M Pro 0.8 Nozzle.json" }, { - "name": "fdm_flashforge_common", + "name": "fdm_adventurer3_common", "sub_path": "machine/fdm_adventurer3_common.json" }, { diff --git a/resources/profiles/Flashforge/flashforge_g2s_buildplate_texture.png b/resources/profiles/Flashforge/flashforge_g2s_buildplate_texture.png index f65e5d9746..2ced3df87c 100644 Binary files a/resources/profiles/Flashforge/flashforge_g2s_buildplate_texture.png and b/resources/profiles/Flashforge/flashforge_g2s_buildplate_texture.png differ diff --git a/resources/profiles/Flashforge/flashforge_g3u_buildplate_texture.png b/resources/profiles/Flashforge/flashforge_g3u_buildplate_texture.png index f65e5d9746..2ced3df87c 100644 Binary files a/resources/profiles/Flashforge/flashforge_g3u_buildplate_texture.png and b/resources/profiles/Flashforge/flashforge_g3u_buildplate_texture.png differ diff --git a/resources/profiles/Flashforge/machine/fdm_machine_common.json b/resources/profiles/Flashforge/machine/fdm_machine_common.json index 5d63d9c4a4..69a2698dff 100644 --- a/resources/profiles/Flashforge/machine/fdm_machine_common.json +++ b/resources/profiles/Flashforge/machine/fdm_machine_common.json @@ -88,7 +88,7 @@ "1" ], "retraction_length": [ - "5" + "1" ], "retract_length_toolchange": [ "1" diff --git a/resources/profiles/Folgertech.json b/resources/profiles/Folgertech.json index 76e1deff82..f8fae9a3e4 100644 --- a/resources/profiles/Folgertech.json +++ b/resources/profiles/Folgertech.json @@ -4,7 +4,7 @@ "force_update": "0", "description": "Folgertech configurations", "machine_model_list": [ - { + { "name": "Folgertech i3", "sub_path": "machine/Folgertech i3.json" }, @@ -12,7 +12,7 @@ "name": "Folgertech FT-5", "sub_path": "machine/Folgertech FT-5.json" }, - { + { "name": "Folgertech FT-6", "sub_path": "machine/Folgertech FT-6.json" } @@ -42,11 +42,11 @@ "name": "0.20mm Standard @FT 0.4 nozzle", "sub_path": "process/0.20mm Standard @FT.json" }, - { + { "name": "0.20mm Strength @FT 0.4 nozzle", "sub_path": "process/0.20mm Strength @FT.json" }, - { + { "name": "0.24mm Draft @FT 0.4 nozzle", "sub_path": "process/0.24mm Draft @FT.json" }, @@ -70,101 +70,16 @@ "name": "0.30mm Strength @FT 0.6 nozzle", "sub_path": "process/0.30mm Strength @FT 0.6 nozzle.json" }, - { + { "name": "0.36mm Draft @FT 0.6 nozzle", "sub_path": "process/0.36mm Draft @FT 0.6 nozzle.json" }, - { + { "name": "0.42mm Extra Draft @FT 0.6 nozzle", "sub_path": "process/0.42mm Extra Draft @FT 0.6 nozzle.json" } ], - "filament_list": [ - { - "name": "fdm_filament_common", - "sub_path": "filament/fdm_filament_common.json" - }, - { - "name": "fdm_filament_pla", - "sub_path": "filament/fdm_filament_pla.json" - }, - { - "name": "fdm_filament_tpu", - "sub_path": "filament/fdm_filament_tpu.json" - }, - { - "name": "fdm_filament_pet", - "sub_path": "filament/fdm_filament_pet.json" - }, - { - "name": "fdm_filament_abs", - "sub_path": "filament/fdm_filament_abs.json" - }, - { - "name": "fdm_filament_pc", - "sub_path": "filament/fdm_filament_pc.json" - }, - { - "name": "fdm_filament_asa", - "sub_path": "filament/fdm_filament_asa.json" - }, - { - "name": "fdm_filament_pva", - "sub_path": "filament/fdm_filament_pva.json" - }, - { - "name": "fdm_filament_pa", - "sub_path": "filament/fdm_filament_pa.json" - }, - { - "name": "Folgertech Generic ABS", - "sub_path": "filament/Folgertech Generic ABS.json" - }, - { - "name": "Folgertech Generic ASA", - "sub_path": "filament/Folgertech Generic ASA.json" - }, - { - "name": "Folgertech Generic PA", - "sub_path": "filament/Folgertech Generic PA.json" - }, - { - "name": "Folgertech Generic PA-CF", - "sub_path": "filament/Folgertech Generic PA-CF.json" - }, - { - "name": "Folgertech Generic PC", - "sub_path": "filament/Folgertech Generic PC.json" - }, - { - "name": "Folgertech Generic PETG", - "sub_path": "filament/Folgertech Generic PETG.json" - }, - { - "name": "Folgertech Generic PETG-CF", - "sub_path": "filament/Folgertech Generic PETG-CF.json" - }, - { - "name": "Folgertech Generic PLA", - "sub_path": "filament/Folgertech Generic PLA.json" - }, - { - "name": "Folgertech Generic PLA Silk", - "sub_path": "filament/Folgertech Generic PLA Silk.json" - }, - { - "name": "Folgertech Generic PLA-CF", - "sub_path": "filament/Folgertech Generic PLA-CF.json" - }, - { - "name": "Folgertech Generic TPU", - "sub_path": "filament/Folgertech Generic TPU.json" - }, - { - "name": "Folgertech Generic PVA", - "sub_path": "filament/Folgertech Generic PVA.json" - } - ], + "filament_list": [], "machine_list": [ { "name": "fdm_machine_common", @@ -174,7 +89,7 @@ "name": "fdm_folgertech_common", "sub_path": "machine/fdm_folgertech_common.json" }, - { + { "name": "Folgertech i3 0.4 nozzle", "sub_path": "machine/Folgertech i3 0.4 nozzle.json" }, @@ -199,4 +114,4 @@ "sub_path": "machine/Folgertech FT-6 0.6 nozzle.json" } ] -} +} \ No newline at end of file diff --git a/resources/profiles/Folgertech/filament/Folgertech Generic ABS.json b/resources/profiles/Folgertech/filament/Folgertech Generic ABS.json deleted file mode 100644 index 82133c864d..0000000000 --- a/resources/profiles/Folgertech/filament/Folgertech Generic ABS.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFB99", - "setting_id": "GFSA04", - "name": "Folgertech Generic ABS", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_abs", - "filament_flow_ratio": [ - "0.926" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "compatible_printers": [ - "Folgertech FT-5 0.4 nozzle", - "Folgertech FT-5 0.6 nozzle", - "Folgertech FT-6 0.4 nozzle", - "Folgertech FT-6 0.6 nozzle", - "Folgertech i3 0.4 nozzle", - "Folgertech i3 0.6 nozzle" - ] -} diff --git a/resources/profiles/Folgertech/filament/Folgertech Generic ASA.json b/resources/profiles/Folgertech/filament/Folgertech Generic ASA.json deleted file mode 100644 index 1e46e35403..0000000000 --- a/resources/profiles/Folgertech/filament/Folgertech Generic ASA.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFB99", - "setting_id": "GFSA04", - "name": "Folgertech Generic ASA", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_asa", - "filament_max_volumetric_speed": [ - "12" - ], - "filament_flow_ratio": [ - "0.926" - ], - "compatible_printers": [ - "Folgertech FT-5 0.4 nozzle", - "Folgertech FT-5 0.6 nozzle", - "Folgertech FT-6 0.4 nozzle", - "Folgertech FT-6 0.6 nozzle", - "Folgertech i3 0.4 nozzle", - "Folgertech i3 0.6 nozzle" - ] -} diff --git a/resources/profiles/Folgertech/filament/Folgertech Generic PA-CF.json b/resources/profiles/Folgertech/filament/Folgertech Generic PA-CF.json deleted file mode 100644 index bf1ebecc26..0000000000 --- a/resources/profiles/Folgertech/filament/Folgertech Generic PA-CF.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFN98", - "setting_id": "GFSN99", - "name": "Folgertech Generic PA-CF", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pa", - "filament_type": [ - "PA-CF" - ], - "nozzle_temperature_initial_layer": [ - "290" - ], - "nozzle_temperature": [ - "290" - ], - "filament_max_volumetric_speed": [ - "8" - ], - "fan_max_speed": [ - "30" - ], - "fan_min_speed": [ - "10" - ], - "overhang_fan_threshold": [ - "0%" - ], - "overhang_fan_speed": [ - "40" - ], - "fan_cooling_layer_time": [ - "5" - ], - "full_fan_speed_layer": [ - "2" - ], - "compatible_printers": [ - "Folgertech FT-5 0.4 nozzle", - "Folgertech FT-5 0.6 nozzle", - "Folgertech FT-6 0.4 nozzle", - "Folgertech FT-6 0.6 nozzle", - "Folgertech i3 0.4 nozzle", - "Folgertech i3 0.6 nozzle" - ] -} diff --git a/resources/profiles/Folgertech/filament/Folgertech Generic PA.json b/resources/profiles/Folgertech/filament/Folgertech Generic PA.json deleted file mode 100644 index 35b3a0907f..0000000000 --- a/resources/profiles/Folgertech/filament/Folgertech Generic PA.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFN99", - "setting_id": "GFSN98", - "name": "Folgertech Generic PA", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pa", - "required_nozzle_HRC": [ - "3" - ], - "nozzle_temperature_initial_layer": [ - "280" - ], - "nozzle_temperature": [ - "280" - ], - "filament_max_volumetric_speed": [ - "16" - ], - "compatible_printers": [ - "Folgertech FT-5 0.4 nozzle", - "Folgertech FT-5 0.6 nozzle", - "Folgertech FT-6 0.4 nozzle", - "Folgertech FT-6 0.6 nozzle", - "Folgertech i3 0.4 nozzle", - "Folgertech i3 0.6 nozzle" - ] -} diff --git a/resources/profiles/Folgertech/filament/Folgertech Generic PC.json b/resources/profiles/Folgertech/filament/Folgertech Generic PC.json deleted file mode 100644 index 2d70828327..0000000000 --- a/resources/profiles/Folgertech/filament/Folgertech Generic PC.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFC99", - "setting_id": "GFSC99", - "name": "Folgertech Generic PC", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pc", - "filament_max_volumetric_speed": [ - "16" - ], - "filament_flow_ratio": [ - "0.94" - ], - "compatible_printers": [ - "Folgertech FT-5 0.4 nozzle", - "Folgertech FT-5 0.6 nozzle", - "Folgertech FT-6 0.4 nozzle", - "Folgertech FT-6 0.6 nozzle", - "Folgertech i3 0.4 nozzle", - "Folgertech i3 0.6 nozzle" - ] -} diff --git a/resources/profiles/Folgertech/filament/Folgertech Generic PETG.json b/resources/profiles/Folgertech/filament/Folgertech Generic PETG.json deleted file mode 100644 index 9b323523b3..0000000000 --- a/resources/profiles/Folgertech/filament/Folgertech Generic PETG.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFG99", - "setting_id": "GFSG99", - "name": "Folgertech Generic PETG", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pet", - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_cooling_layer_time": [ - "30" - ], - "overhang_fan_speed": [ - "90" - ], - "overhang_fan_threshold": [ - "25%" - ], - "fan_max_speed": [ - "90" - ], - "fan_min_speed": [ - "40" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "8" - ], - "filament_flow_ratio": [ - "0.95" - ], - "filament_max_volumetric_speed": [ - "10" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ], - "compatible_printers": [ - "Folgertech FT-5 0.4 nozzle", - "Folgertech FT-5 0.6 nozzle", - "Folgertech FT-6 0.4 nozzle", - "Folgertech FT-6 0.6 nozzle", - "Folgertech i3 0.4 nozzle", - "Folgertech i3 0.6 nozzle" - ] -} diff --git a/resources/profiles/Folgertech/filament/Folgertech Generic PLA Silk.json b/resources/profiles/Folgertech/filament/Folgertech Generic PLA Silk.json deleted file mode 100644 index 3a5b22744c..0000000000 --- a/resources/profiles/Folgertech/filament/Folgertech Generic PLA Silk.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFA05", - "setting_id": "GFSL99_01", - "name": "Folgertech Generic PLA Silk", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pla", - "filament_max_volumetric_speed": [ - "7.5" - ], - "filament_retraction_length": [ - "0.5" - ], - "filament_flow_ratio": [ - "0.98" - ], - "slow_down_layer_time": [ - "8" - ], - "filament_start_gcode": [ - "; filament start gcode\n{if (bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S255\n{elsif(bed_temperature[current_extruder] >35)||(bed_temperature_initial_layer[current_extruder] >35)}M106 P3 S180\n{endif};Prevent PLA from jamming" - ], - "compatible_printers": [ - "Folgertech FT-5 0.4 nozzle", - "Folgertech FT-5 0.6 nozzle", - "Folgertech FT-6 0.4 nozzle", - "Folgertech FT-6 0.6 nozzle", - "Folgertech i3 0.4 nozzle", - "Folgertech i3 0.6 nozzle" - ] -} diff --git a/resources/profiles/Folgertech/filament/Folgertech Generic PLA-CF.json b/resources/profiles/Folgertech/filament/Folgertech Generic PLA-CF.json deleted file mode 100644 index 7984a0c42f..0000000000 --- a/resources/profiles/Folgertech/filament/Folgertech Generic PLA-CF.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFL98", - "setting_id": "GFSL98", - "name": "Folgertech Generic PLA-CF", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pla", - "required_nozzle_HRC": [ - "40" - ], - "filament_flow_ratio": [ - "0.95" - ], - "filament_type": [ - "PLA-CF" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "slow_down_layer_time": [ - "7" - ], - "additional_cooling_fan_speed": [ - "0" - ], - "temperature_vitrification": [ - "55" - ], - "nozzle_temperature_range_low": [ - "190" - ], - "nozzle_temperature_range_high": [ - "240" - ], - "filament_start_gcode": [ - "; filament start gcode\n{if (bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S255\n{elsif(bed_temperature[current_extruder] >35)||(bed_temperature_initial_layer[current_extruder] >35)}M106 P3 S180\n{endif}" - ], - "compatible_printers": [ - "Folgertech FT-5 0.4 nozzle", - "Folgertech FT-5 0.6 nozzle", - "Folgertech FT-6 0.4 nozzle", - "Folgertech FT-6 0.6 nozzle", - "Folgertech i3 0.4 nozzle", - "Folgertech i3 0.6 nozzle" - ] -} diff --git a/resources/profiles/Folgertech/filament/Folgertech Generic PLA.json b/resources/profiles/Folgertech/filament/Folgertech Generic PLA.json deleted file mode 100644 index fc91a9b484..0000000000 --- a/resources/profiles/Folgertech/filament/Folgertech Generic PLA.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFL99", - "setting_id": "GFSL99", - "name": "Folgertech Generic PLA", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pla", - "filament_flow_ratio": [ - "0.98" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "slow_down_layer_time": [ - "8" - ], - "compatible_printers": [ - "Folgertech FT-5 0.4 nozzle", - "Folgertech FT-5 0.6 nozzle", - "Folgertech FT-6 0.4 nozzle", - "Folgertech FT-6 0.6 nozzle", - "Folgertech i3 0.4 nozzle", - "Folgertech i3 0.6 nozzle" - ] -} diff --git a/resources/profiles/Folgertech/filament/Folgertech Generic PVA.json b/resources/profiles/Folgertech/filament/Folgertech Generic PVA.json deleted file mode 100644 index 6da301cab1..0000000000 --- a/resources/profiles/Folgertech/filament/Folgertech Generic PVA.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFS99", - "setting_id": "GFSS99", - "name": "Folgertech Generic PVA", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pva", - "filament_flow_ratio": [ - "0.95" - ], - "filament_max_volumetric_speed": [ - "16" - ], - "slow_down_layer_time": [ - "7" - ], - "slow_down_min_speed": [ - "10" - ], - "compatible_printers": [ - "Folgertech FT-5 0.4 nozzle", - "Folgertech FT-5 0.6 nozzle", - "Folgertech FT-6 0.4 nozzle", - "Folgertech FT-6 0.6 nozzle", - "Folgertech i3 0.4 nozzle", - "Folgertech i3 0.6 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/Folgertech/filament/Folgertech Generic TPU.json b/resources/profiles/Folgertech/filament/Folgertech Generic TPU.json deleted file mode 100644 index c31b6767bd..0000000000 --- a/resources/profiles/Folgertech/filament/Folgertech Generic TPU.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFU99", - "setting_id": "GFSR99", - "name": "Folgertech Generic TPU", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_tpu", - "filament_max_volumetric_speed": [ - "3.2" - ], - "filament_start_gcode": [ - "; filament start gcode\n{if (bed_temperature[current_extruder] >35)||(bed_temperature_initial_layer[current_extruder] >35)}M106 P3 S255\n{elsif (bed_temperature[current_extruder] >30)||(bed_temperature_initial_layer[current_extruder] >30)}M106 P3 S180\n{endif}" - ], - "compatible_printers": [ - "Folgertech FT-5 0.4 nozzle", - "Folgertech FT-5 0.6 nozzle", - "Folgertech FT-6 0.4 nozzle", - "Folgertech FT-6 0.6 nozzle", - "Folgertech i3 0.4 nozzle", - "Folgertech i3 0.6 nozzle" - ] -} diff --git a/resources/profiles/Folgertech/filament/fdm_filament_abs.json b/resources/profiles/Folgertech/filament/fdm_filament_abs.json deleted file mode 100644 index b9d4eeda31..0000000000 --- a/resources/profiles/Folgertech/filament/fdm_filament_abs.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_abs", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "105" - ], - "eng_plate_temp" : [ - "105" - ], - "hot_plate_temp" : [ - "105" - ], - "textured_plate_temp" : [ - "105" - ], - "cool_plate_temp_initial_layer" : [ - "105" - ], - "eng_plate_temp_initial_layer" : [ - "105" - ], - "hot_plate_temp_initial_layer" : [ - "105" - ], - "textured_plate_temp_initial_layer" : [ - "105" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "30" - ], - "filament_max_volumetric_speed": [ - "28.6" - ], - "filament_type": [ - "ABS" - ], - "filament_density": [ - "1.04" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "260" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "fan_max_speed": [ - "80" - ], - "fan_min_speed": [ - "10" - ], - "overhang_fan_threshold": [ - "25%" - ], - "overhang_fan_speed": [ - "80" - ], - "nozzle_temperature": [ - "260" - ], - "temperature_vitrification": [ - "110" - ], - "nozzle_temperature_range_low": [ - "240" - ], - "nozzle_temperature_range_high": [ - "270" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "3" - ] -} diff --git a/resources/profiles/Folgertech/filament/fdm_filament_common.json b/resources/profiles/Folgertech/filament/fdm_filament_common.json deleted file mode 100644 index 9f77975119..0000000000 --- a/resources/profiles/Folgertech/filament/fdm_filament_common.json +++ /dev/null @@ -1,144 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_common", - "from": "system", - "instantiation": "false", - "cool_plate_temp" : [ - "60" - ], - "eng_plate_temp" : [ - "60" - ], - "hot_plate_temp" : [ - "60" - ], - "textured_plate_temp" : [ - "60" - ], - "cool_plate_temp_initial_layer" : [ - "60" - ], - "eng_plate_temp_initial_layer" : [ - "60" - ], - "hot_plate_temp_initial_layer" : [ - "60" - ], - "textured_plate_temp_initial_layer" : [ - "60" - ], - "overhang_fan_threshold": [ - "95%" - ], - "overhang_fan_speed": [ - "100" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "filament_end_gcode": [ - "; filament end gcode \n" - ], - "filament_flow_ratio": [ - "1" - ], - "reduce_fan_stop_start_freq": [ - "0" - ], - "fan_cooling_layer_time": [ - "60" - ], - "filament_cost": [ - "0" - ], - "filament_density": [ - "0" - ], - "filament_deretraction_speed": [ - "nil" - ], - "filament_diameter": [ - "1.75" - ], - "filament_max_volumetric_speed": [ - "0" - ], - "filament_minimal_purge_on_wipe_tower": [ - "15" - ], - "filament_retraction_minimum_travel": [ - "nil" - ], - "filament_retract_before_wipe": [ - "nil" - ], - "filament_retract_when_changing_layer": [ - "nil" - ], - "filament_retraction_length": [ - "nil" - ], - "filament_z_hop": [ - "nil" - ], - "filament_z_hop_types": [ - "nil" - ], - "filament_retract_restart_extra": [ - "nil" - ], - "filament_retraction_speed": [ - "nil" - ], - "filament_settings_id": [ - "" - ], - "filament_soluble": [ - "0" - ], - "filament_type": [ - "PLA" - ], - "filament_vendor": [ - "Generic" - ], - "filament_wipe": [ - "nil" - ], - "filament_wipe_distance": [ - "nil" - ], - "bed_type": [ - "Cool Plate" - ], - "nozzle_temperature_initial_layer": [ - "200" - ], - "full_fan_speed_layer": [ - "0" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "35" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "8" - ], - "filament_start_gcode": [ - "; Filament gcode\n" - ], - "nozzle_temperature": [ - "200" - ], - "temperature_vitrification": [ - "100" - ] -} diff --git a/resources/profiles/Folgertech/filament/fdm_filament_pla.json b/resources/profiles/Folgertech/filament/fdm_filament_pla.json deleted file mode 100644 index 5000e3ec94..0000000000 --- a/resources/profiles/Folgertech/filament/fdm_filament_pla.json +++ /dev/null @@ -1,94 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pla", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "fan_cooling_layer_time": [ - "100" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "filament_type": [ - "PLA" - ], - "filament_density": [ - "1.24" - ], - "filament_cost": [ - "20" - ], - "cool_plate_temp" : [ - "60" - ], - "eng_plate_temp" : [ - "60" - ], - "hot_plate_temp" : [ - "60" - ], - "textured_plate_temp" : [ - "60" - ], - "cool_plate_temp_initial_layer" : [ - "60" - ], - "eng_plate_temp_initial_layer" : [ - "60" - ], - "hot_plate_temp_initial_layer" : [ - "60" - ], - "textured_plate_temp_initial_layer" : [ - "60" - ], - "nozzle_temperature_initial_layer": [ - "220" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "overhang_fan_speed": [ - "100" - ], - "overhang_fan_threshold": [ - "50%" - ], - "close_fan_the_first_x_layers": [ - "1" - ], - "nozzle_temperature": [ - "220" - ], - "temperature_vitrification": [ - "60" - ], - "nozzle_temperature_range_low": [ - "190" - ], - "nozzle_temperature_range_high": [ - "230" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "4" - ], - "additional_cooling_fan_speed": [ - "100" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ] -} diff --git a/resources/profiles/Folgertech/filament/fdm_filament_pva.json b/resources/profiles/Folgertech/filament/fdm_filament_pva.json deleted file mode 100644 index fb84ccf0a4..0000000000 --- a/resources/profiles/Folgertech/filament/fdm_filament_pva.json +++ /dev/null @@ -1,100 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pva", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "35" - ], - "eng_plate_temp" : [ - "0" - ], - "hot_plate_temp" : [ - "55" - ], - "textured_plate_temp" : [ - "55" - ], - "cool_plate_temp_initial_layer" : [ - "35" - ], - "eng_plate_temp_initial_layer" : [ - "0" - ], - "hot_plate_temp_initial_layer" : [ - "55" - ], - "textured_plate_temp_initial_layer" : [ - "55" - ], - "fan_cooling_layer_time": [ - "100" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "filament_soluble": [ - "1" - ], - "filament_is_support": [ - "1" - ], - "filament_type": [ - "PVA" - ], - "filament_density": [ - "1.24" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "220" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "overhang_fan_speed": [ - "100" - ], - "overhang_fan_threshold": [ - "50%" - ], - "close_fan_the_first_x_layers": [ - "1" - ], - "nozzle_temperature": [ - "220" - ], - "temperature_vitrification": [ - "55" - ], - "nozzle_temperature_range_low": [ - "190" - ], - "nozzle_temperature_range_high": [ - "240" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "4" - ], - "additional_cooling_fan_speed": [ - "70" - ], - "filament_start_gcode": [ - "; filament start gcode\n{if (bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S255\n{elsif(bed_temperature[current_extruder] >35)||(bed_temperature_initial_layer[current_extruder] >35)}M106 P3 S180\n{endif}" - ] -} diff --git a/resources/profiles/Folgertech/filament/fdm_filament_tpu.json b/resources/profiles/Folgertech/filament/fdm_filament_tpu.json deleted file mode 100644 index df97b1ccf4..0000000000 --- a/resources/profiles/Folgertech/filament/fdm_filament_tpu.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_tpu", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "30" - ], - "eng_plate_temp" : [ - "30" - ], - "hot_plate_temp" : [ - "35" - ], - "textured_plate_temp" : [ - "35" - ], - "cool_plate_temp_initial_layer" : [ - "30" - ], - "eng_plate_temp_initial_layer" : [ - "30" - ], - "hot_plate_temp_initial_layer" : [ - "35" - ], - "textured_plate_temp_initial_layer" : [ - "35" - ], - "fan_cooling_layer_time": [ - "100" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "filament_type": [ - "TPU" - ], - "filament_density": [ - "1.24" - ], - "filament_cost": [ - "20" - ], - "filament_retraction_length": [ - "0.4" - ], - "nozzle_temperature_initial_layer": [ - "240" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "overhang_fan_speed": [ - "100" - ], - "additional_cooling_fan_speed": [ - "70" - ], - "close_fan_the_first_x_layers": [ - "1" - ], - "nozzle_temperature": [ - "240" - ], - "temperature_vitrification": [ - "35" - ], - "nozzle_temperature_range_low": [ - "200" - ], - "nozzle_temperature_range_high": [ - "250" - ], - "filament_start_gcode": [ - "; filament start gcode\n{if (bed_temperature[current_extruder] >35)||(bed_temperature_initial_layer[current_extruder] >35)}M106 P3 S255\n{elsif(bed_temperature[current_extruder] >30)||(bed_temperature_initial_layer[current_extruder] >30)}M106 P3 S180\n{endif}" - ] -} diff --git a/resources/profiles/Folgertech/machine/fdm_machine_common.json b/resources/profiles/Folgertech/machine/fdm_machine_common.json index fe27b6027b..8f0529a7e0 100644 --- a/resources/profiles/Folgertech/machine/fdm_machine_common.json +++ b/resources/profiles/Folgertech/machine/fdm_machine_common.json @@ -88,7 +88,7 @@ "1" ], "retraction_length": [ - "5" + "1" ], "retract_length_toolchange": [ "1" diff --git a/resources/profiles/Geeetech.json b/resources/profiles/Geeetech.json index 7b7d01597f..cc72766b9a 100644 --- a/resources/profiles/Geeetech.json +++ b/resources/profiles/Geeetech.json @@ -8,22 +8,22 @@ "name": "Geeetech Thunder", "sub_path": "machine/Geeetech Thunder.json" }, - { + { "name": "Geeetech Mizar M", "sub_path": "machine/Geeetech Mizar M.json" }, - { + { "name": "Geeetech Mizar S", "sub_path": "machine/Geeetech Mizar S.json" }, - { + { "name": "Geeetech Mizar Pro", "sub_path": "machine/Geeetech Mizar Pro.json" }, - { + { "name": "Geeetech Mizar Max", "sub_path": "machine/Geeetech Mizar Max.json" - }, + }, { "name": "Geeetech Mizar", "sub_path": "machine/Geeetech Mizar.json" @@ -67,7 +67,7 @@ { "name": "Geeetech M1", "sub_path": "machine/Geeetech M1.json" - } + } ], "process_list": [ { @@ -221,7 +221,7 @@ { "name": "fdm_process_geeetech_0.56_nozzle_0.8", "sub_path": "process/fdm_process_geeetech_0.56_nozzle_0.8.json" - }, + }, { "name": "0.06mm Fine @Geeetech common 0.2 nozzle", "sub_path": "process/0.06mm Fine @Geeetech common 0.2 nozzle.json" @@ -229,7 +229,7 @@ { "name": "0.08mm Extra Fine @Geeetech common", "sub_path": "process/0.08mm Extra Fine @Geeetech common.json" - }, + }, { "name": "0.08mm Extra Fine @Geeetech Thunder", "sub_path": "process/0.08mm Extra Fine @Geeetech Thunder.json" @@ -373,7 +373,7 @@ { "name": "0.08mm Extra Fine @Geeetech M1", "sub_path": "process/0.08mm Extra Fine @Geeetech M1.json" - }, + }, { "name": "0.08mm Optimal @Geeetech M1 0.2 nozzle", "sub_path": "process/0.08mm Optimal @Geeetech M1 0.2 nozzle.json" @@ -381,7 +381,7 @@ { "name": "0.10mm Fine @Geeetech M1", "sub_path": "process/0.10mm Fine @Geeetech M1.json" - }, + }, { "name": "0.10mm Standard @Geeetech M1 0.2 nozzle", "sub_path": "process/0.10mm Standard @Geeetech M1 0.2 nozzle.json" @@ -389,7 +389,7 @@ { "name": "0.12mm Draft @Geeetech M1 0.2 nozzle", "sub_path": "process/0.12mm Draft @Geeetech M1 0.2 nozzle.json" - }, + }, { "name": "0.14mm Extra Draft @Geeetech M1 0.2 nozzle", "sub_path": "process/0.14mm Extra Draft @Geeetech M1 0.2 nozzle.json" @@ -397,15 +397,15 @@ { "name": "0.16mm Optimal @Geeetech M1", "sub_path": "process/0.16mm Optimal @Geeetech M1.json" - }, + }, { "name": "0.24mm Optimal @Geeetech M1 0.6 nozzle", "sub_path": "process/0.24mm Optimal @Geeetech M1 0.6 nozzle.json" - }, + }, { "name": "0.20mm Standard @Geeetech M1", "sub_path": "process/0.20mm Standard @Geeetech M1.json" - }, + }, { "name": "0.25mm Draft @Geeetech M1", "sub_path": "process/0.25mm Draft @Geeetech M1.json" @@ -413,11 +413,11 @@ { "name": "0.30mm Standard @Geeetech M1 0.6 nozzle", "sub_path": "process/0.30mm Standard @Geeetech M1 0.6 nozzle.json" - }, + }, { "name": "0.36mm Draft @Geeetech M1 0.6 nozzle", "sub_path": "process/0.36mm Draft @Geeetech M1 0.6 nozzle.json" - }, + }, { "name": "0.36mm Optimal @Geeetech M1 0.8 nozzle", "sub_path": "process/0.36mm Optimal @Geeetech M1 0.8 nozzle.json" @@ -425,86 +425,9 @@ { "name": "0.44mm Draft @Geeetech M1 0.8 nozzle", "sub_path": "process/0.44mm Draft @Geeetech M1 0.8 nozzle.json" - } - ], - "filament_list": [ - { - "name": "fdm_filament_common", - "sub_path": "filament/fdm_filament_common.json" - }, - { - "name": "fdm_filament_abs", - "sub_path": "filament/fdm_filament_abs.json" - }, - { - "name": "fdm_filament_asa", - "sub_path": "filament/fdm_filament_asa.json" - }, - { - "name": "fdm_filament_pa", - "sub_path": "filament/fdm_filament_pa.json" - }, - { - "name": "fdm_filament_pc", - "sub_path": "filament/fdm_filament_pc.json" - }, - { - "name": "fdm_filament_pet", - "sub_path": "filament/fdm_filament_pet.json" - }, - { - "name": "fdm_filament_pva", - "sub_path": "filament/fdm_filament_pva.json" - }, - { - "name": "fdm_filament_pla", - "sub_path": "filament/fdm_filament_pla.json" - }, - { - "name": "fdm_filament_tpu", - "sub_path": "filament/fdm_filament_tpu.json" - }, - { - "name": "Generic ABS @Geeetech", - "sub_path": "filament/Generic ABS @Geeetech.json" - }, - { - "name": "Generic ASA @Geeetech", - "sub_path": "filament/Generic ASA @Geeetech.json" - }, - { - "name": "Generic PA @Geeetech", - "sub_path": "filament/Generic PA @Geeetech.json" - }, - { - "name": "Generic PC @Geeetech", - "sub_path": "filament/Generic PC @Geeetech.json" - }, - { - "name": "Generic PETG @Geeetech", - "sub_path": "filament/Generic PETG @Geeetech.json" - }, - { - "name": "Generic PLA @Geeetech", - "sub_path": "filament/Generic PLA @Geeetech.json" - }, - { - "name": "Generic PLA @Geeetech_FastSpeed", - "sub_path": "filament/Generic PLA @Geeetech_FastSpeed.json" - }, - { - "name": "Generic PLA-CF @Geeetech", - "sub_path": "filament/Generic PLA-CF @Geeetech.json" - }, - { - "name": "Generic PVA @Geeetech", - "sub_path": "filament/Generic PVA @Geeetech.json" - }, - { - "name": "Generic TPU @Geeetech", - "sub_path": "filament/Generic TPU @Geeetech.json" } ], + "filament_list": [], "machine_list": [ { "name": "fdm_machine_common", @@ -689,6 +612,6 @@ { "name": "Geeetech M1 0.8 nozzle", "sub_path": "machine/Geeetech M1 0.8 nozzle.json" - } + } ] } \ No newline at end of file diff --git a/resources/profiles/Geeetech/Geeetech M1_cover.png b/resources/profiles/Geeetech/Geeetech M1_cover.png index a0080e99fe..13b0ee51a0 100644 Binary files a/resources/profiles/Geeetech/Geeetech M1_cover.png and b/resources/profiles/Geeetech/Geeetech M1_cover.png differ diff --git a/resources/profiles/Geeetech/filament/Generic ABS @Geeetech.json b/resources/profiles/Geeetech/filament/Generic ABS @Geeetech.json deleted file mode 100644 index 2fc2aca7da..0000000000 --- a/resources/profiles/Geeetech/filament/Generic ABS @Geeetech.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFB99", - "setting_id": "GFSB99_Geeetech_00", - "name": "Generic ABS @Geeetech", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_abs", - "filament_flow_ratio": [ - "0.926" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "compatible_printers": [ - "Geeetech A10 Pro 0.2 nozzle", - "Geeetech A10 Pro 0.4 nozzle", - "Geeetech A10 Pro 0.6 nozzle", - "Geeetech A10 Pro 0.8 nozzle", - "Geeetech A20 0.2 nozzle", - "Geeetech A20 0.4 nozzle", - "Geeetech A20 0.6 nozzle", - "Geeetech A20 0.8 nozzle", - "Geeetech A30 Pro 0.2 nozzle", - "Geeetech A30 Pro 0.4 nozzle", - "Geeetech A30 Pro 0.6 nozzle", - "Geeetech A30 Pro 0.8 nozzle", - "Geeetech A10 M 0.4 nozzle", - "Geeetech A20 M 0.4 nozzle", - "Geeetech A30 M 0.4 nozzle", - "Geeetech A10 T 0.4 nozzle", - "Geeetech A20 T 0.4 nozzle", - "Geeetech A30 T 0.4 nozzle", - "Geeetech Mizar 0.2 nozzle", - "Geeetech Mizar 0.4 nozzle", - "Geeetech Mizar 0.6 nozzle", - "Geeetech Mizar 0.8 nozzle", - "Geeetech Mizar S 0.2 nozzle", - "Geeetech Mizar S 0.4 nozzle", - "Geeetech Mizar S 0.6 nozzle", - "Geeetech Mizar S 0.8 nozzle", - "Geeetech Mizar Pro 0.2 nozzle", - "Geeetech Mizar Pro 0.4 nozzle", - "Geeetech Mizar Pro 0.6 nozzle", - "Geeetech Mizar Pro 0.8 nozzle", - "Geeetech Mizar Max 0.2 nozzle", - "Geeetech Mizar Max 0.4 nozzle", - "Geeetech Mizar Max 0.6 nozzle", - "Geeetech Mizar Max 0.8 nozzle", - "Geeetech Mizar M 0.4 nozzle", - "Geeetech Thunder 0.2 nozzle", - "Geeetech Thunder 0.4 nozzle", - "Geeetech Thunder 0.6 nozzle", - "Geeetech Thunder 0.8 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/Geeetech/filament/Generic ASA @Geeetech.json b/resources/profiles/Geeetech/filament/Generic ASA @Geeetech.json deleted file mode 100644 index 6dfa8bf539..0000000000 --- a/resources/profiles/Geeetech/filament/Generic ASA @Geeetech.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFB98", - "setting_id": "GFSB98_Geeetech_01", - "name": "Generic ASA @Geeetech", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_asa", - "filament_flow_ratio": [ - "0.926" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "compatible_printers": [ - "Geeetech A10 Pro 0.2 nozzle", - "Geeetech A10 Pro 0.4 nozzle", - "Geeetech A10 Pro 0.6 nozzle", - "Geeetech A10 Pro 0.8 nozzle", - "Geeetech A20 0.2 nozzle", - "Geeetech A20 0.4 nozzle", - "Geeetech A20 0.6 nozzle", - "Geeetech A20 0.8 nozzle", - "Geeetech A30 Pro 0.2 nozzle", - "Geeetech A30 Pro 0.4 nozzle", - "Geeetech A30 Pro 0.6 nozzle", - "Geeetech A30 Pro 0.8 nozzle", - "Geeetech A10 M 0.4 nozzle", - "Geeetech A20 M 0.4 nozzle", - "Geeetech A30 M 0.4 nozzle", - "Geeetech A10 T 0.4 nozzle", - "Geeetech A20 T 0.4 nozzle", - "Geeetech A30 T 0.4 nozzle", - "Geeetech Mizar 0.2 nozzle", - "Geeetech Mizar 0.4 nozzle", - "Geeetech Mizar 0.6 nozzle", - "Geeetech Mizar 0.8 nozzle", - "Geeetech Mizar S 0.2 nozzle", - "Geeetech Mizar S 0.4 nozzle", - "Geeetech Mizar S 0.6 nozzle", - "Geeetech Mizar S 0.8 nozzle", - "Geeetech Mizar Pro 0.2 nozzle", - "Geeetech Mizar Pro 0.4 nozzle", - "Geeetech Mizar Pro 0.6 nozzle", - "Geeetech Mizar Pro 0.8 nozzle", - "Geeetech Mizar Max 0.2 nozzle", - "Geeetech Mizar Max 0.4 nozzle", - "Geeetech Mizar Max 0.6 nozzle", - "Geeetech Mizar Max 0.8 nozzle", - "Geeetech Mizar M 0.4 nozzle", - "Geeetech Thunder 0.2 nozzle", - "Geeetech Thunder 0.4 nozzle", - "Geeetech Thunder 0.6 nozzle", - "Geeetech Thunder 0.8 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/Geeetech/filament/Generic PA @Geeetech.json b/resources/profiles/Geeetech/filament/Generic PA @Geeetech.json deleted file mode 100644 index f1e38d2525..0000000000 --- a/resources/profiles/Geeetech/filament/Generic PA @Geeetech.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFN99", - "setting_id": "GFSN99_Geeetech_00", - "name": "Generic PA @Geeetech", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pa", - "nozzle_temperature_initial_layer": [ - "280" - ], - "nozzle_temperature": [ - "280" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "compatible_printers": [ - "Geeetech A10 Pro 0.2 nozzle", - "Geeetech A10 Pro 0.4 nozzle", - "Geeetech A10 Pro 0.6 nozzle", - "Geeetech A10 Pro 0.8 nozzle", - "Geeetech A20 0.2 nozzle", - "Geeetech A20 0.4 nozzle", - "Geeetech A20 0.6 nozzle", - "Geeetech A20 0.8 nozzle", - "Geeetech A30 Pro 0.2 nozzle", - "Geeetech A30 Pro 0.4 nozzle", - "Geeetech A30 Pro 0.6 nozzle", - "Geeetech A30 Pro 0.8 nozzle", - "Geeetech A10 M 0.4 nozzle", - "Geeetech A20 M 0.4 nozzle", - "Geeetech A30 M 0.4 nozzle", - "Geeetech A10 T 0.4 nozzle", - "Geeetech A20 T 0.4 nozzle", - "Geeetech A30 T 0.4 nozzle", - "Geeetech Mizar 0.2 nozzle", - "Geeetech Mizar 0.4 nozzle", - "Geeetech Mizar 0.6 nozzle", - "Geeetech Mizar 0.8 nozzle", - "Geeetech Mizar S 0.2 nozzle", - "Geeetech Mizar S 0.4 nozzle", - "Geeetech Mizar S 0.6 nozzle", - "Geeetech Mizar S 0.8 nozzle", - "Geeetech Mizar Pro 0.2 nozzle", - "Geeetech Mizar Pro 0.4 nozzle", - "Geeetech Mizar Pro 0.6 nozzle", - "Geeetech Mizar Pro 0.8 nozzle", - "Geeetech Mizar Max 0.2 nozzle", - "Geeetech Mizar Max 0.4 nozzle", - "Geeetech Mizar Max 0.6 nozzle", - "Geeetech Mizar Max 0.8 nozzle", - "Geeetech Mizar M 0.4 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/Geeetech/filament/Generic PC @Geeetech.json b/resources/profiles/Geeetech/filament/Generic PC @Geeetech.json deleted file mode 100644 index ce1d28c961..0000000000 --- a/resources/profiles/Geeetech/filament/Generic PC @Geeetech.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFC99", - "setting_id": "GFSC99_Geeetech_00", - "name": "Generic PC @Geeetech", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pc", - "filament_max_volumetric_speed": [ - "12" - ], - "filament_flow_ratio": [ - "0.94" - ], - "compatible_printers": [ - "Geeetech A10 Pro 0.2 nozzle", - "Geeetech A10 Pro 0.4 nozzle", - "Geeetech A10 Pro 0.6 nozzle", - "Geeetech A10 Pro 0.8 nozzle", - "Geeetech A20 0.2 nozzle", - "Geeetech A20 0.4 nozzle", - "Geeetech A20 0.6 nozzle", - "Geeetech A20 0.8 nozzle", - "Geeetech A30 Pro 0.2 nozzle", - "Geeetech A30 Pro 0.4 nozzle", - "Geeetech A30 Pro 0.6 nozzle", - "Geeetech A30 Pro 0.8 nozzle", - "Geeetech A10 M 0.4 nozzle", - "Geeetech A20 M 0.4 nozzle", - "Geeetech A30 M 0.4 nozzle", - "Geeetech A10 T 0.4 nozzle", - "Geeetech A20 T 0.4 nozzle", - "Geeetech A30 T 0.4 nozzle", - "Geeetech Mizar 0.2 nozzle", - "Geeetech Mizar 0.4 nozzle", - "Geeetech Mizar 0.6 nozzle", - "Geeetech Mizar 0.8 nozzle", - "Geeetech Mizar S 0.2 nozzle", - "Geeetech Mizar S 0.4 nozzle", - "Geeetech Mizar S 0.6 nozzle", - "Geeetech Mizar S 0.8 nozzle", - "Geeetech Mizar Pro 0.2 nozzle", - "Geeetech Mizar Pro 0.4 nozzle", - "Geeetech Mizar Pro 0.6 nozzle", - "Geeetech Mizar Pro 0.8 nozzle", - "Geeetech Mizar Max 0.2 nozzle", - "Geeetech Mizar Max 0.4 nozzle", - "Geeetech Mizar Max 0.6 nozzle", - "Geeetech Mizar Max 0.8 nozzle", - "Geeetech Mizar M 0.4 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/Geeetech/filament/Generic PETG @Geeetech.json b/resources/profiles/Geeetech/filament/Generic PETG @Geeetech.json deleted file mode 100644 index b003156d2c..0000000000 --- a/resources/profiles/Geeetech/filament/Generic PETG @Geeetech.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFG99", - "setting_id": "GFSG99_Geeetech_00", - "name": "Generic PETG @Geeetech", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pet", - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_cooling_layer_time": [ - "30" - ], - "overhang_fan_speed": [ - "90" - ], - "overhang_fan_threshold": [ - "25%" - ], - "fan_max_speed": [ - "90" - ], - "fan_min_speed": [ - "40" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "8" - ], - "filament_flow_ratio": [ - "0.95" - ], - "filament_max_volumetric_speed": [ - "10" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ], - "compatible_printers": [ - "Geeetech A10 Pro 0.2 nozzle", - "Geeetech A10 Pro 0.4 nozzle", - "Geeetech A10 Pro 0.6 nozzle", - "Geeetech A10 Pro 0.8 nozzle", - "Geeetech A20 0.2 nozzle", - "Geeetech A20 0.4 nozzle", - "Geeetech A20 0.6 nozzle", - "Geeetech A20 0.8 nozzle", - "Geeetech A30 Pro 0.2 nozzle", - "Geeetech A30 Pro 0.4 nozzle", - "Geeetech A30 Pro 0.6 nozzle", - "Geeetech A30 Pro 0.8 nozzle", - "Geeetech A10 M 0.4 nozzle", - "Geeetech A20 M 0.4 nozzle", - "Geeetech A30 M 0.4 nozzle", - "Geeetech A10 T 0.4 nozzle", - "Geeetech A20 T 0.4 nozzle", - "Geeetech A30 T 0.4 nozzle", - "Geeetech Mizar 0.2 nozzle", - "Geeetech Mizar 0.4 nozzle", - "Geeetech Mizar 0.6 nozzle", - "Geeetech Mizar 0.8 nozzle", - "Geeetech Mizar S 0.2 nozzle", - "Geeetech Mizar S 0.4 nozzle", - "Geeetech Mizar S 0.6 nozzle", - "Geeetech Mizar S 0.8 nozzle", - "Geeetech Mizar Pro 0.2 nozzle", - "Geeetech Mizar Pro 0.4 nozzle", - "Geeetech Mizar Pro 0.6 nozzle", - "Geeetech Mizar Pro 0.8 nozzle", - "Geeetech Mizar Max 0.2 nozzle", - "Geeetech Mizar Max 0.4 nozzle", - "Geeetech Mizar Max 0.6 nozzle", - "Geeetech Mizar Max 0.8 nozzle", - "Geeetech Mizar M 0.4 nozzle", - "Geeetech Thunder 0.2 nozzle", - "Geeetech Thunder 0.4 nozzle", - "Geeetech Thunder 0.6 nozzle", - "Geeetech Thunder 0.8 nozzle", - "Geeetech M1 0.2 nozzle", - "Geeetech M1 0.4 nozzle", - "Geeetech M1 0.6 nozzle", - "Geeetech M1 0.8 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/Geeetech/filament/Generic PLA @Geeetech.json b/resources/profiles/Geeetech/filament/Generic PLA @Geeetech.json deleted file mode 100644 index 3606f07d2a..0000000000 --- a/resources/profiles/Geeetech/filament/Generic PLA @Geeetech.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFL99", - "setting_id": "GFSL99_Geeetech_00", - "name": "Generic PLA @Geeetech", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pla", - "filament_flow_ratio": ["0.98"], - "filament_max_volumetric_speed": ["12"], - "slow_down_layer_time": ["8"], - "nozzle_temperature_initial_layer": ["205"], - "nozzle_temperature": ["200"], - "compatible_printers": [ - "Geeetech A10 Pro 0.2 nozzle", - "Geeetech A10 Pro 0.4 nozzle", - "Geeetech A10 Pro 0.6 nozzle", - "Geeetech A10 Pro 0.8 nozzle", - "Geeetech A20 0.2 nozzle", - "Geeetech A20 0.4 nozzle", - "Geeetech A20 0.6 nozzle", - "Geeetech A20 0.8 nozzle", - "Geeetech A30 Pro 0.2 nozzle", - "Geeetech A30 Pro 0.4 nozzle", - "Geeetech A30 Pro 0.6 nozzle", - "Geeetech A30 Pro 0.8 nozzle", - "Geeetech A10 M 0.4 nozzle", - "Geeetech A20 M 0.4 nozzle", - "Geeetech A30 M 0.4 nozzle", - "Geeetech A10 T 0.4 nozzle", - "Geeetech A20 T 0.4 nozzle", - "Geeetech A30 T 0.4 nozzle", - "Geeetech Mizar 0.2 nozzle", - "Geeetech Mizar 0.4 nozzle", - "Geeetech Mizar 0.6 nozzle", - "Geeetech Mizar 0.8 nozzle", - "Geeetech Mizar S 0.2 nozzle", - "Geeetech Mizar S 0.4 nozzle", - "Geeetech Mizar S 0.6 nozzle", - "Geeetech Mizar S 0.8 nozzle", - "Geeetech Mizar Pro 0.2 nozzle", - "Geeetech Mizar Pro 0.4 nozzle", - "Geeetech Mizar Pro 0.6 nozzle", - "Geeetech Mizar Pro 0.8 nozzle", - "Geeetech Mizar Max 0.2 nozzle", - "Geeetech Mizar Max 0.4 nozzle", - "Geeetech Mizar Max 0.6 nozzle", - "Geeetech Mizar Max 0.8 nozzle", - "Geeetech Mizar M 0.4 nozzle", - "Geeetech M1 0.2 nozzle", - "Geeetech M1 0.4 nozzle", - "Geeetech M1 0.6 nozzle", - "Geeetech M1 0.8 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/Geeetech/filament/Generic PLA @Geeetech_FastSpeed.json b/resources/profiles/Geeetech/filament/Generic PLA @Geeetech_FastSpeed.json deleted file mode 100644 index c1d3566c4e..0000000000 --- a/resources/profiles/Geeetech/filament/Generic PLA @Geeetech_FastSpeed.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFL99", - "setting_id": "GFSL99_Geeetech_01", - "name": "Generic PLA @Geeetech_FastSpeed", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pla", - "filament_flow_ratio": ["0.98"], - "filament_max_volumetric_speed": ["18"], - "slow_down_layer_time": ["1"], - "slow_down_min_speed": ["20"], - "cool_plate_temp": ["65"], - "eng_plate_temp": ["65"], - "hot_plate_temp": ["65"], - "textured_plate_temp": ["65"], - "cool_plate_temp_initial_layer": ["65"], - "eng_plate_temp_initial_layer": ["65"], - "hot_plate_temp_initial_layer": ["65"], - "textured_plate_temp_initial_layer": ["65"], - "compatible_printers": [ - "Geeetech Thunder 0.2 nozzle", - "Geeetech Thunder 0.4 nozzle", - "Geeetech Thunder 0.6 nozzle", - "Geeetech Thunder 0.8 nozzle", - "Geeetech M1 0.2 nozzle", - "Geeetech M1 0.4 nozzle", - "Geeetech M1 0.6 nozzle", - "Geeetech M1 0.8 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/Geeetech/filament/Generic PLA-CF @Geeetech.json b/resources/profiles/Geeetech/filament/Generic PLA-CF @Geeetech.json deleted file mode 100644 index 3c07747800..0000000000 --- a/resources/profiles/Geeetech/filament/Generic PLA-CF @Geeetech.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFL98", - "setting_id": "GFSL98_Geeetech_00", - "name": "Generic PLA-CF @Geeetech", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pla", - "filament_flow_ratio": [ - "0.95" - ], - "filament_type": [ - "PLA-CF" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "slow_down_layer_time": [ - "7" - ], -"compatible_printers": [ - "Geeetech A10 Pro 0.2 nozzle", - "Geeetech A10 Pro 0.4 nozzle", - "Geeetech A10 Pro 0.6 nozzle", - "Geeetech A10 Pro 0.8 nozzle", - "Geeetech A20 0.2 nozzle", - "Geeetech A20 0.4 nozzle", - "Geeetech A20 0.6 nozzle", - "Geeetech A20 0.8 nozzle", - "Geeetech A30 Pro 0.2 nozzle", - "Geeetech A30 Pro 0.4 nozzle", - "Geeetech A30 Pro 0.6 nozzle", - "Geeetech A30 Pro 0.8 nozzle", - "Geeetech A10 M 0.4 nozzle", - "Geeetech A20 M 0.4 nozzle", - "Geeetech A30 M 0.4 nozzle", - "Geeetech A10 T 0.4 nozzle", - "Geeetech A20 T 0.4 nozzle", - "Geeetech A30 T 0.4 nozzle", - "Geeetech Mizar 0.2 nozzle", - "Geeetech Mizar 0.4 nozzle", - "Geeetech Mizar 0.6 nozzle", - "Geeetech Mizar 0.8 nozzle", - "Geeetech Mizar S 0.2 nozzle", - "Geeetech Mizar S 0.4 nozzle", - "Geeetech Mizar S 0.6 nozzle", - "Geeetech Mizar S 0.8 nozzle", - "Geeetech Mizar Pro 0.2 nozzle", - "Geeetech Mizar Pro 0.4 nozzle", - "Geeetech Mizar Pro 0.6 nozzle", - "Geeetech Mizar Pro 0.8 nozzle", - "Geeetech Mizar Max 0.2 nozzle", - "Geeetech Mizar Max 0.4 nozzle", - "Geeetech Mizar Max 0.6 nozzle", - "Geeetech Mizar Max 0.8 nozzle", - "Geeetech Mizar M 0.4 nozzle", - "Geeetech Thunder 0.2 nozzle", - "Geeetech Thunder 0.4 nozzle", - "Geeetech Thunder 0.6 nozzle", - "Geeetech Thunder 0.8 nozzle", - "Geeetech M1 0.2 nozzle", - "Geeetech M1 0.4 nozzle", - "Geeetech M1 0.6 nozzle", - "Geeetech M1 0.8 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/Geeetech/filament/Generic PVA @Geeetech.json b/resources/profiles/Geeetech/filament/Generic PVA @Geeetech.json deleted file mode 100644 index 165abbe22d..0000000000 --- a/resources/profiles/Geeetech/filament/Generic PVA @Geeetech.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFS99", - "setting_id": "GFSS99_Geeetech_00", - "name": "Generic PVA @Geeetech", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pva", - "filament_flow_ratio": [ - "0.95" - ], - "filament_max_volumetric_speed": [ - "10" - ], - "slow_down_layer_time": [ - "7" - ], - "slow_down_min_speed": [ - "10" - ], - "compatible_printers": [ - "Geeetech A10 Pro 0.2 nozzle", - "Geeetech A10 Pro 0.4 nozzle", - "Geeetech A10 Pro 0.6 nozzle", - "Geeetech A10 Pro 0.8 nozzle", - "Geeetech A20 0.2 nozzle", - "Geeetech A20 0.4 nozzle", - "Geeetech A20 0.6 nozzle", - "Geeetech A20 0.8 nozzle", - "Geeetech A30 Pro 0.2 nozzle", - "Geeetech A30 Pro 0.4 nozzle", - "Geeetech A30 Pro 0.6 nozzle", - "Geeetech A30 Pro 0.8 nozzle", - "Geeetech A10 M 0.4 nozzle", - "Geeetech A20 M 0.4 nozzle", - "Geeetech A30 M 0.4 nozzle", - "Geeetech A10 T 0.4 nozzle", - "Geeetech A20 T 0.4 nozzle", - "Geeetech A30 T 0.4 nozzle", - "Geeetech Mizar 0.2 nozzle", - "Geeetech Mizar 0.4 nozzle", - "Geeetech Mizar 0.6 nozzle", - "Geeetech Mizar 0.8 nozzle", - "Geeetech Mizar S 0.2 nozzle", - "Geeetech Mizar S 0.4 nozzle", - "Geeetech Mizar S 0.6 nozzle", - "Geeetech Mizar S 0.8 nozzle", - "Geeetech Mizar Pro 0.2 nozzle", - "Geeetech Mizar Pro 0.4 nozzle", - "Geeetech Mizar Pro 0.6 nozzle", - "Geeetech Mizar Pro 0.8 nozzle", - "Geeetech Mizar Max 0.2 nozzle", - "Geeetech Mizar Max 0.4 nozzle", - "Geeetech Mizar Max 0.6 nozzle", - "Geeetech Mizar Max 0.8 nozzle", - "Geeetech Mizar M 0.4 nozzle", - "Geeetech M1 0.2 nozzle", - "Geeetech M1 0.4 nozzle", - "Geeetech M1 0.6 nozzle", - "Geeetech M1 0.8 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/Geeetech/filament/Generic TPU @Geeetech.json b/resources/profiles/Geeetech/filament/Generic TPU @Geeetech.json deleted file mode 100644 index 31f225a4df..0000000000 --- a/resources/profiles/Geeetech/filament/Generic TPU @Geeetech.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFU99", - "setting_id": "GFSU99_Geeetech_00", - "name": "Generic TPU @Geeetech", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_tpu", - "filament_max_volumetric_speed": [ - "3.2" - ], - "compatible_printers": [ - "Geeetech A10 Pro 0.2 nozzle", - "Geeetech A10 Pro 0.4 nozzle", - "Geeetech A10 Pro 0.6 nozzle", - "Geeetech A10 Pro 0.8 nozzle", - "Geeetech A20 0.2 nozzle", - "Geeetech A20 0.4 nozzle", - "Geeetech A20 0.6 nozzle", - "Geeetech A20 0.8 nozzle", - "Geeetech A30 Pro 0.2 nozzle", - "Geeetech A30 Pro 0.4 nozzle", - "Geeetech A30 Pro 0.6 nozzle", - "Geeetech A30 Pro 0.8 nozzle", - "Geeetech A10 M 0.4 nozzle", - "Geeetech A20 M 0.4 nozzle", - "Geeetech A30 M 0.4 nozzle", - "Geeetech A10 T 0.4 nozzle", - "Geeetech A20 T 0.4 nozzle", - "Geeetech A30 T 0.4 nozzle", - "Geeetech Mizar 0.2 nozzle", - "Geeetech Mizar 0.4 nozzle", - "Geeetech Mizar 0.6 nozzle", - "Geeetech Mizar 0.8 nozzle", - "Geeetech Mizar S 0.2 nozzle", - "Geeetech Mizar S 0.4 nozzle", - "Geeetech Mizar S 0.6 nozzle", - "Geeetech Mizar S 0.8 nozzle", - "Geeetech Mizar Pro 0.2 nozzle", - "Geeetech Mizar Pro 0.4 nozzle", - "Geeetech Mizar Pro 0.6 nozzle", - "Geeetech Mizar Pro 0.8 nozzle", - "Geeetech Mizar Max 0.2 nozzle", - "Geeetech Mizar Max 0.4 nozzle", - "Geeetech Mizar Max 0.6 nozzle", - "Geeetech Mizar Max 0.8 nozzle", - "Geeetech Mizar M 0.4 nozzle", - "Geeetech Thunder 0.2 nozzle", - "Geeetech Thunder 0.4 nozzle", - "Geeetech Thunder 0.6 nozzle", - "Geeetech Thunder 0.8 nozzle", - "Geeetech M1 0.2 nozzle", - "Geeetech M1 0.4 nozzle", - "Geeetech M1 0.6 nozzle", - "Geeetech M1 0.8 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/Geeetech/filament/fdm_filament_abs.json b/resources/profiles/Geeetech/filament/fdm_filament_abs.json deleted file mode 100644 index 508db29049..0000000000 --- a/resources/profiles/Geeetech/filament/fdm_filament_abs.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_abs", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "0" - ], - "eng_plate_temp" : [ - "105" - ], - "hot_plate_temp" : [ - "105" - ], - "textured_plate_temp" : [ - "105" - ], - "cool_plate_temp_initial_layer" : [ - "0" - ], - "eng_plate_temp_initial_layer" : [ - "105" - ], - "hot_plate_temp_initial_layer" : [ - "105" - ], - "textured_plate_temp_initial_layer" : [ - "105" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "30" - ], - "filament_max_volumetric_speed": [ - "28.6" - ], - "filament_type": [ - "ABS" - ], - "filament_density": [ - "1.04" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "260" - ], - "reduce_fan_stop_start_freq": [ - "0" - ], - "fan_max_speed": [ - "35" - ], - "fan_min_speed": [ - "35" - ], - "overhang_fan_threshold": [ - "25%" - ], - "overhang_fan_speed": [ - "80" - ], - "nozzle_temperature": [ - "260" - ], - "temperature_vitrification": [ - "110" - ], - "nozzle_temperature_range_low": [ - "240" - ], - "nozzle_temperature_range_high": [ - "270" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "3" - ] -} diff --git a/resources/profiles/Geeetech/filament/fdm_filament_asa.json b/resources/profiles/Geeetech/filament/fdm_filament_asa.json deleted file mode 100644 index 75ec0fb70a..0000000000 --- a/resources/profiles/Geeetech/filament/fdm_filament_asa.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_asa", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "0" - ], - "eng_plate_temp" : [ - "105" - ], - "hot_plate_temp" : [ - "105" - ], - "textured_plate_temp" : [ - "105" - ], - "cool_plate_temp_initial_layer" : [ - "0" - ], - "eng_plate_temp_initial_layer" : [ - "105" - ], - "hot_plate_temp_initial_layer" : [ - "105" - ], - "textured_plate_temp_initial_layer" : [ - "105" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "35" - ], - "filament_max_volumetric_speed": [ - "28.6" - ], - "filament_type": [ - "ASA" - ], - "filament_density": [ - "1.04" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "260" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "fan_max_speed": [ - "35" - ], - "fan_min_speed": [ - "35" - ], - "overhang_fan_threshold": [ - "25%" - ], - "overhang_fan_speed": [ - "80" - ], - "nozzle_temperature": [ - "260" - ], - "temperature_vitrification": [ - "100" - ], - "nozzle_temperature_range_low": [ - "240" - ], - "nozzle_temperature_range_high": [ - "280" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "3" - ] -} diff --git a/resources/profiles/Geeetech/filament/fdm_filament_common.json b/resources/profiles/Geeetech/filament/fdm_filament_common.json deleted file mode 100644 index c30dcd1e7c..0000000000 --- a/resources/profiles/Geeetech/filament/fdm_filament_common.json +++ /dev/null @@ -1,141 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_common", - "from": "system", - "instantiation": "false", - "cool_plate_temp" : [ - "60" - ], - "eng_plate_temp" : [ - "60" - ], - "hot_plate_temp" : [ - "60" - ], - "textured_plate_temp" : [ - "60" - ], - "cool_plate_temp_initial_layer" : [ - "60" - ], - "eng_plate_temp_initial_layer" : [ - "60" - ], - "hot_plate_temp_initial_layer" : [ - "60" - ], - "textured_plate_temp_initial_layer" : [ - "60" - ], - "overhang_fan_threshold": [ - "95%" - ], - "overhang_fan_speed": [ - "100" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "filament_end_gcode": [ - "; filament end gcode \n" - ], - "filament_flow_ratio": [ - "1" - ], - "reduce_fan_stop_start_freq": [ - "0" - ], - "fan_cooling_layer_time": [ - "60" - ], - "filament_cost": [ - "0" - ], - "filament_density": [ - "0" - ], - "filament_deretraction_speed": [ - "nil" - ], - "filament_diameter": [ - "1.75" - ], - "filament_max_volumetric_speed": [ - "0" - ], - "filament_minimal_purge_on_wipe_tower": [ - "90" - ], - "filament_retraction_minimum_travel": [ - "nil" - ], - "filament_retract_before_wipe": [ - "nil" - ], - "filament_retract_when_changing_layer": [ - "nil" - ], - "filament_retraction_length": [ - "nil" - ], - "filament_z_hop": [ - "nil" - ], - "filament_z_hop_types": [ - "nil" - ], - "filament_retract_restart_extra": [ - "nil" - ], - "filament_retraction_speed": [ - "nil" - ], - "filament_settings_id": [ - "" - ], - "filament_soluble": [ - "0" - ], - "filament_type": [ - "PLA" - ], - "filament_vendor": [ - "Generic" - ], - "filament_wipe": [ - "nil" - ], - "filament_wipe_distance": [ - "nil" - ], - "nozzle_temperature_initial_layer": [ - "200" - ], - "full_fan_speed_layer": [ - "0" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "35" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "8" - ], - "filament_start_gcode": [ - "; Filament gcode\n" - ], - "nozzle_temperature": [ - "200" - ], - "temperature_vitrification": [ - "100" - ] -} diff --git a/resources/profiles/Geeetech/filament/fdm_filament_pc.json b/resources/profiles/Geeetech/filament/fdm_filament_pc.json deleted file mode 100644 index c6f0edeb28..0000000000 --- a/resources/profiles/Geeetech/filament/fdm_filament_pc.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pc", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "0" - ], - "eng_plate_temp" : [ - "120" - ], - "hot_plate_temp" : [ - "120" - ], - "textured_plate_temp" : [ - "120" - ], - "cool_plate_temp_initial_layer" : [ - "0" - ], - "eng_plate_temp_initial_layer" : [ - "120" - ], - "hot_plate_temp_initial_layer" : [ - "120" - ], - "textured_plate_temp_initial_layer" : [ - "120" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "30" - ], - "filament_max_volumetric_speed": [ - "23.2" - ], - "filament_type": [ - "PC" - ], - "filament_density": [ - "1.04" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "270" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "fan_max_speed": [ - "60" - ], - "fan_min_speed": [ - "10" - ], - "overhang_fan_threshold": [ - "25%" - ], - "overhang_fan_speed": [ - "60" - ], - "nozzle_temperature": [ - "280" - ], - "temperature_vitrification": [ - "120" - ], - "nozzle_temperature_range_low": [ - "260" - ], - "nozzle_temperature_range_high": [ - "290" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "2" - ] -} diff --git a/resources/profiles/Geeetech/filament/fdm_filament_pet.json b/resources/profiles/Geeetech/filament/fdm_filament_pet.json deleted file mode 100644 index 752bc473b3..0000000000 --- a/resources/profiles/Geeetech/filament/fdm_filament_pet.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pet", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "80" - ], - "eng_plate_temp" : [ - "0" - ], - "hot_plate_temp" : [ - "80" - ], - "textured_plate_temp" : [ - "80" - ], - "cool_plate_temp_initial_layer" : [ - "80" - ], - "eng_plate_temp_initial_layer" : [ - "0" - ], - "hot_plate_temp_initial_layer" : [ - "80" - ], - "textured_plate_temp_initial_layer" : [ - "80" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "20" - ], - "filament_max_volumetric_speed": [ - "25" - ], - "filament_type": [ - "PETG" - ], - "filament_density": [ - "1.27" - ], - "filament_cost": [ - "30" - ], - "nozzle_temperature_initial_layer": [ - "255" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "20" - ], - "overhang_fan_speed": [ - "100" - ], - "nozzle_temperature": [ - "255" - ], - "temperature_vitrification": [ - "80" - ], - "nozzle_temperature_range_low": [ - "220" - ], - "nozzle_temperature_range_high": [ - "260" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ] -} diff --git a/resources/profiles/Geeetech/filament/fdm_filament_pla.json b/resources/profiles/Geeetech/filament/fdm_filament_pla.json deleted file mode 100644 index 82c6772f35..0000000000 --- a/resources/profiles/Geeetech/filament/fdm_filament_pla.json +++ /dev/null @@ -1,94 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pla", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "fan_cooling_layer_time": [ - "100" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "filament_type": [ - "PLA" - ], - "filament_density": [ - "1.24" - ], - "filament_cost": [ - "20" - ], - "cool_plate_temp" : [ - "60" - ], - "eng_plate_temp" : [ - "60" - ], - "hot_plate_temp" : [ - "60" - ], - "textured_plate_temp" : [ - "60" - ], - "cool_plate_temp_initial_layer" : [ - "60" - ], - "eng_plate_temp_initial_layer" : [ - "60" - ], - "hot_plate_temp_initial_layer" : [ - "60" - ], - "textured_plate_temp_initial_layer" : [ - "60" - ], - "nozzle_temperature_initial_layer": [ - "220" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "overhang_fan_speed": [ - "100" - ], - "overhang_fan_threshold": [ - "50%" - ], - "close_fan_the_first_x_layers": [ - "1" - ], - "nozzle_temperature": [ - "220" - ], - "temperature_vitrification": [ - "60" - ], - "nozzle_temperature_range_low": [ - "190" - ], - "nozzle_temperature_range_high": [ - "230" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "4" - ], - "additional_cooling_fan_speed": [ - "70" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ] -} diff --git a/resources/profiles/Geeetech/machine/fdm_machine_common.json b/resources/profiles/Geeetech/machine/fdm_machine_common.json index fb4fff3f14..cc7e883a37 100644 --- a/resources/profiles/Geeetech/machine/fdm_machine_common.json +++ b/resources/profiles/Geeetech/machine/fdm_machine_common.json @@ -89,7 +89,7 @@ "1" ], "retraction_length": [ - "5" + "1" ], "retract_length_toolchange": [ "1" diff --git a/resources/profiles/Kingroon.json b/resources/profiles/Kingroon.json index 21c9f6beed..6e988ba454 100644 --- a/resources/profiles/Kingroon.json +++ b/resources/profiles/Kingroon.json @@ -1,175 +1,98 @@ { - "name": "Kingroon", - "url": "https://kingroon.com/", - "version": "02.02.00.04", - "force_update": "1", - "description": "Kingroon configuration files", - "machine_model_list": [ - { - "name": "Kingroon KP3S PRO S1", - "sub_path": "machine/Kingroon KP3S PRO S1.json" - }, - { - "name": "Kingroon KP3S PRO V2", - "sub_path": "machine/Kingroon KP3S PRO V2.json" - }, - { - "name": "Kingroon KP3S 3.0", - "sub_path": "machine/Kingroon KP3S 3.0.json" - }, - { - "name": "Kingroon KP3S V1", - "sub_path": "machine/Kingroon KP3S V1.json" - }, - { - "name": "Kingroon KLP1", - "sub_path": "machine/Kingroon KLP1.json" - } - ], - "process_list": [ - { - "name": "fdm_process_common", - "sub_path": "process/fdm_process_common.json" - }, - { - "name": "0.08mm Standard @Kingroon KP3S PRO S1", - "sub_path": "process/0.08mm Standard @Kingroon KP3S PRO S1.json" - }, - { - "name": "0.12mm Standard @Kingroon KP3S PRO S1", - "sub_path": "process/0.12mm Standard @Kingroon KP3S PRO S1.json" - }, - { - "name": "0.20mm Standard @Kingroon KP3S PRO S1", - "sub_path": "process/0.20mm Standard @Kingroon KP3S PRO S1.json" - }, - { - "name": "0.20mm Standard @Kingroon KP3S PRO V2", - "sub_path": "process/0.20mm Standard @Kingroon KP3S PRO V2.json" - }, - { - "name": "0.30mm Standard @Kingroon KP3S 3.0", - "sub_path": "process/0.30mm Standard @Kingroon KP3S 3.0.json" - }, - { - "name": "0.20mm Standard @Kingroon KP3S V1", - "sub_path": "process/0.20mm Standard @Kingroon KP3S V1.json" - }, - { - "name": "0.12mm Standard @Kingroon KLP1", - "sub_path": "process/0.12mm Standard @Kingroon KLP1.json" - }, - { - "name": "0.20mm Standard @Kingroon KLP1", - "sub_path": "process/0.20mm Standard @Kingroon KLP1.json" - } - ], - "filament_list": [ - { - "name": "fdm_filament_common", - "sub_path": "filament/fdm_filament_common.json" - }, - { - "name": "fdm_filament_pla", - "sub_path": "filament/fdm_filament_pla.json" - }, - { - "name": "fdm_filament_tpu", - "sub_path": "filament/fdm_filament_tpu.json" - }, - { - "name": "fdm_filament_pet", - "sub_path": "filament/fdm_filament_pet.json" - }, - { - "name": "fdm_filament_abs", - "sub_path": "filament/fdm_filament_abs.json" - }, - { - "name": "fdm_filament_pc", - "sub_path": "filament/fdm_filament_pc.json" - }, - { - "name": "fdm_filament_asa", - "sub_path": "filament/fdm_filament_asa.json" - }, - { - "name": "fdm_filament_pva", - "sub_path": "filament/fdm_filament_pva.json" - }, - { - "name": "fdm_filament_pa", - "sub_path": "filament/fdm_filament_pa.json" - }, - { - "name": "Kingroon Generic PLA", - "sub_path": "filament/Kingroon Generic PLA.json" - }, - { - "name": "Kingroon Generic PLA-CF", - "sub_path": "filament/Kingroon Generic PLA-CF.json" - }, - { - "name": "Kingroon Generic PETG", - "sub_path": "filament/Kingroon Generic PETG.json" - }, - { - "name": "Kingroon Generic ABS", - "sub_path": "filament/Kingroon Generic ABS.json" - }, - { - "name": "Kingroon Generic TPU", - "sub_path": "filament/Kingroon Generic TPU.json" - }, - { - "name": "Kingroon Generic ASA", - "sub_path": "filament/Kingroon Generic ASA.json" - }, - { - "name": "Kingroon Generic PC", - "sub_path": "filament/Kingroon Generic PC.json" - }, - { - "name": "Kingroon Generic PVA", - "sub_path": "filament/Kingroon Generic PVA.json" - }, - { - "name": "Kingroon Generic PA", - "sub_path": "filament/Kingroon Generic PA.json" - }, - { - "name": "Kingroon Generic PA-CF", - "sub_path": "filament/Kingroon Generic PA-CF.json" - } - ], - "machine_list": [ - { - "name": "fdm_machine_common", - "sub_path": "machine/fdm_machine_common.json" - }, - { - "name": "fdm_klipper_common", - "sub_path": "machine/fdm_klipper_common.json" - }, - { - "name": "Kingroon KP3S PRO S1 0.4 nozzle", - "sub_path": "machine/Kingroon KP3S PRO S1 0.4 nozzle.json" - }, - { - "name": "Kingroon KP3S PRO V2 0.4 nozzle", - "sub_path": "machine/Kingroon KP3S PRO V2 0.4 nozzle.json" - }, - { - "name": "Kingroon KP3S 0.4 nozzle", - "sub_path": "machine/Kingroon KP3S 3.0 0.4 nozzle.json" - }, - { - "name": "Kingroon KP3S V1 0.4 nozzle", - "sub_path": "machine/Kingroon KP3S V1 0.4 nozzle.json" - }, - { - "name": "Kingroon KLP1 0.4 nozzle", - "sub_path": "machine/Kingroon KLP1 0.4 nozzle.json" - } - ] -} + "name": "Kingroon", + "url": "https://kingroon.com/", + "version": "02.02.00.04", + "force_update": "1", + "description": "Kingroon configuration files", + "machine_model_list": [ + { + "name": "Kingroon KP3S PRO S1", + "sub_path": "machine/Kingroon KP3S PRO S1.json" + }, + { + "name": "Kingroon KP3S PRO V2", + "sub_path": "machine/Kingroon KP3S PRO V2.json" + }, + { + "name": "Kingroon KP3S 3.0", + "sub_path": "machine/Kingroon KP3S 3.0.json" + }, + { + "name": "Kingroon KP3S V1", + "sub_path": "machine/Kingroon KP3S V1.json" + }, + { + "name": "Kingroon KLP1", + "sub_path": "machine/Kingroon KLP1.json" + } + ], + "process_list": [ + { + "name": "fdm_process_common", + "sub_path": "process/fdm_process_common.json" + }, + { + "name": "0.08mm Standard @Kingroon KP3S PRO S1", + "sub_path": "process/0.08mm Standard @Kingroon KP3S PRO S1.json" + }, + { + "name": "0.12mm Standard @Kingroon KP3S PRO S1", + "sub_path": "process/0.12mm Standard @Kingroon KP3S PRO S1.json" + }, + { + "name": "0.20mm Standard @Kingroon KP3S PRO S1", + "sub_path": "process/0.20mm Standard @Kingroon KP3S PRO S1.json" + }, + { + "name": "0.20mm Standard @Kingroon KP3S PRO V2", + "sub_path": "process/0.20mm Standard @Kingroon KP3S PRO V2.json" + }, + { + "name": "0.30mm Standard @Kingroon KP3S 3.0", + "sub_path": "process/0.30mm Standard @Kingroon KP3S 3.0.json" + }, + { + "name": "0.20mm Standard @Kingroon KP3S V1", + "sub_path": "process/0.20mm Standard @Kingroon KP3S V1.json" + }, + { + "name": "0.12mm Standard @Kingroon KLP1", + "sub_path": "process/0.12mm Standard @Kingroon KLP1.json" + }, + { + "name": "0.20mm Standard @Kingroon KLP1", + "sub_path": "process/0.20mm Standard @Kingroon KLP1.json" + } + ], + "filament_list": [], + "machine_list": [ + { + "name": "fdm_machine_common", + "sub_path": "machine/fdm_machine_common.json" + }, + { + "name": "fdm_klipper_common", + "sub_path": "machine/fdm_klipper_common.json" + }, + { + "name": "Kingroon KP3S PRO S1 0.4 nozzle", + "sub_path": "machine/Kingroon KP3S PRO S1 0.4 nozzle.json" + }, + { + "name": "Kingroon KP3S PRO V2 0.4 nozzle", + "sub_path": "machine/Kingroon KP3S PRO V2 0.4 nozzle.json" + }, + { + "name": "Kingroon KP3S 0.4 nozzle", + "sub_path": "machine/Kingroon KP3S 3.0 0.4 nozzle.json" + }, + { + "name": "Kingroon KP3S V1 0.4 nozzle", + "sub_path": "machine/Kingroon KP3S V1 0.4 nozzle.json" + }, + { + "name": "Kingroon KLP1 0.4 nozzle", + "sub_path": "machine/Kingroon KLP1 0.4 nozzle.json" + } + ] +} \ No newline at end of file diff --git a/resources/profiles/Kingroon/Kingroon KLP1_cover.png b/resources/profiles/Kingroon/Kingroon KLP1_cover.png index 5fb71eb9b9..457f17a010 100644 Binary files a/resources/profiles/Kingroon/Kingroon KLP1_cover.png and b/resources/profiles/Kingroon/Kingroon KLP1_cover.png differ diff --git a/resources/profiles/Kingroon/Kingroon KP3S V1_cover.png b/resources/profiles/Kingroon/Kingroon KP3S V1_cover.png index d6a50e207b..2beb7b1de9 100644 Binary files a/resources/profiles/Kingroon/Kingroon KP3S V1_cover.png and b/resources/profiles/Kingroon/Kingroon KP3S V1_cover.png differ diff --git a/resources/profiles/Kingroon/filament/Kingroon Generic ABS.json b/resources/profiles/Kingroon/filament/Kingroon Generic ABS.json deleted file mode 100644 index 73911af68b..0000000000 --- a/resources/profiles/Kingroon/filament/Kingroon Generic ABS.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFB99", - "setting_id": "GFSA04", - "name": "Kingroon Generic ABS", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_abs", - "filament_flow_ratio": [ - "0.926" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "compatible_printers": [ - "Kingroon KLP1 0.4 nozzle", - "Kingroon KP3S V1 0.4 nozzle", - "Kingroon KP3S PRO S1 0.4 nozzle", - "Kingroon KP3S PRO V2 0.4 nozzle", - "Kingroon KP3S 3.0 0.4 nozzle" - ] -} diff --git a/resources/profiles/Kingroon/filament/Kingroon Generic ASA.json b/resources/profiles/Kingroon/filament/Kingroon Generic ASA.json deleted file mode 100644 index b06c5b8ee6..0000000000 --- a/resources/profiles/Kingroon/filament/Kingroon Generic ASA.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFB98", - "setting_id": "GFSA04", - "name": "Kingroon Generic ASA", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_asa", - "filament_flow_ratio": [ - "0.93" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "compatible_printers": [ - "Kingroon KLP1 0.4 nozzle", - "Kingroon KP3S V1 0.4 nozzle", - "Kingroon KP3S PRO S1 0.4 nozzle", - "Kingroon KP3S PRO V2 0.4 nozzle", - "Kingroon KP3S 3.0 0.4 nozzle" - ] -} diff --git a/resources/profiles/Kingroon/filament/Kingroon Generic PA-CF.json b/resources/profiles/Kingroon/filament/Kingroon Generic PA-CF.json deleted file mode 100644 index 8eef1a8c69..0000000000 --- a/resources/profiles/Kingroon/filament/Kingroon Generic PA-CF.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFN98", - "setting_id": "GFSA04", - "name": "Kingroon Generic PA-CF", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pa", - "filament_type": [ - "PA-CF" - ], - "nozzle_temperature_initial_layer": [ - "280" - ], - "nozzle_temperature": [ - "280" - ], - "filament_max_volumetric_speed": [ - "8" - ], - "compatible_printers": [ - "Kingroon KLP1 0.4 nozzle", - "Kingroon KP3S V1 0.4 nozzle", - "Kingroon KP3S PRO S1 0.4 nozzle", - "Kingroon KP3S PRO V2 0.4 nozzle", - "Kingroon KP3S 3.0 0.4 nozzle" - ] -} diff --git a/resources/profiles/Kingroon/filament/Kingroon Generic PA.json b/resources/profiles/Kingroon/filament/Kingroon Generic PA.json deleted file mode 100644 index 07d73558d3..0000000000 --- a/resources/profiles/Kingroon/filament/Kingroon Generic PA.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFN99", - "setting_id": "GFSA04", - "name": "Kingroon Generic PA", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pa", - "nozzle_temperature_initial_layer": [ - "280" - ], - "nozzle_temperature": [ - "280" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "compatible_printers": [ - "Kingroon KLP1 0.4 nozzle", - "Kingroon KP3S V1 0.4 nozzle", - "Kingroon KP3S PRO S1 0.4 nozzle", - "Kingroon KP3S PRO V2 0.4 nozzle", - "Kingroon KP3S 3.0 0.4 nozzle" - ] -} diff --git a/resources/profiles/Kingroon/filament/Kingroon Generic PC.json b/resources/profiles/Kingroon/filament/Kingroon Generic PC.json deleted file mode 100644 index f40641125f..0000000000 --- a/resources/profiles/Kingroon/filament/Kingroon Generic PC.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFC99", - "setting_id": "GFSA04", - "name": "Kingroon Generic PC", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pc", - "filament_max_volumetric_speed": [ - "12" - ], - "filament_flow_ratio": [ - "0.94" - ], - "compatible_printers": [ - "Kingroon KLP1 0.4 nozzle", - "Kingroon KP3S V1 0.4 nozzle", - "Kingroon KP3S PRO S1 0.4 nozzle", - "Kingroon KP3S PRO V2 0.4 nozzle", - "Kingroon KP3S 3.0 0.4 nozzle" - ] -} diff --git a/resources/profiles/Kingroon/filament/Kingroon Generic PETG.json b/resources/profiles/Kingroon/filament/Kingroon Generic PETG.json deleted file mode 100644 index 281aae4af3..0000000000 --- a/resources/profiles/Kingroon/filament/Kingroon Generic PETG.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFG99", - "setting_id": "GFSA04", - "name": "Kingroon Generic PETG", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pet", - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_cooling_layer_time": [ - "30" - ], - "overhang_fan_speed": [ - "90" - ], - "overhang_fan_threshold": [ - "25%" - ], - "fan_max_speed": [ - "90" - ], - "fan_min_speed": [ - "40" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "8" - ], - "filament_flow_ratio": [ - "0.95" - ], - "filament_max_volumetric_speed": [ - "10" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ], - "compatible_printers": [ - "Kingroon KLP1 0.4 nozzle", - "Kingroon KP3S V1 0.4 nozzle", - "Kingroon KP3S PRO S1 0.4 nozzle", - "Kingroon KP3S PRO V2 0.4 nozzle", - "Kingroon KP3S 3.0 0.4 nozzle" - ] -} diff --git a/resources/profiles/Kingroon/filament/Kingroon Generic PLA-CF.json b/resources/profiles/Kingroon/filament/Kingroon Generic PLA-CF.json deleted file mode 100644 index 43b20cd38e..0000000000 --- a/resources/profiles/Kingroon/filament/Kingroon Generic PLA-CF.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFL98", - "setting_id": "GFSA04", - "name": "Kingroon Generic PLA-CF", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pla", - "filament_flow_ratio": [ - "0.95" - ], - "filament_type": [ - "PLA-CF" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "slow_down_layer_time": [ - "7" - ], - "compatible_printers": [ - "Kingroon KLP1 0.4 nozzle", - "Kingroon KP3S V1 0.4 nozzle", - "Kingroon KP3S PRO S1 0.4 nozzle", - "Kingroon KP3S PRO V2 0.4 nozzle", - "Kingroon KP3S 3.0 0.4 nozzle" - ] -} diff --git a/resources/profiles/Kingroon/filament/Kingroon Generic PLA.json b/resources/profiles/Kingroon/filament/Kingroon Generic PLA.json deleted file mode 100644 index df234d7e05..0000000000 --- a/resources/profiles/Kingroon/filament/Kingroon Generic PLA.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFL99", - "setting_id": "GFSA04", - "name": "Kingroon Generic PLA", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pla", - "compatible_printers": [ - "Kingroon KLP1 0.4 nozzle", - "Kingroon KP3S V1 0.4 nozzle", - "Kingroon KP3S PRO S1 0.4 nozzle", - "Kingroon KP3S PRO V2 0.4 nozzle", - "Kingroon KP3S 3.0 0.4 nozzle" - ] -} diff --git a/resources/profiles/Kingroon/filament/Kingroon Generic PVA.json b/resources/profiles/Kingroon/filament/Kingroon Generic PVA.json deleted file mode 100644 index 1cb99ecb5d..0000000000 --- a/resources/profiles/Kingroon/filament/Kingroon Generic PVA.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFS99", - "setting_id": "GFSA04", - "name": "Kingroon Generic PVA", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pva", - "filament_flow_ratio": [ - "0.95" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "slow_down_layer_time": [ - "7" - ], - "slow_down_min_speed": [ - "10" - ], - "compatible_printers": [ - "Kingroon KLP1 0.4 nozzle", - "Kingroon KP3S V1 0.4 nozzle", - "Kingroon KP3S PRO S1 0.4 nozzle", - "Kingroon KP3S PRO V2 0.4 nozzle", - "Kingroon KP3S 3.0 0.4 nozzle" - ] -} diff --git a/resources/profiles/Kingroon/filament/Kingroon Generic TPU.json b/resources/profiles/Kingroon/filament/Kingroon Generic TPU.json deleted file mode 100644 index 7908828470..0000000000 --- a/resources/profiles/Kingroon/filament/Kingroon Generic TPU.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFU99", - "setting_id": "GFSA04", - "name": "Kingroon Generic TPU", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_tpu", - "filament_max_volumetric_speed": [ - "3.2" - ], - "compatible_printers": [ - "Kingroon KLP1 0.4 nozzle", - "Kingroon KP3S V1 0.4 nozzle", - "Kingroon KP3S PRO S1 0.4 nozzle", - "Kingroon KP3S PRO V2 0.4 nozzle", - "Kingroon KP3S 3.0 0.4 nozzle" - ] -} diff --git a/resources/profiles/Kingroon/filament/fdm_filament_abs.json b/resources/profiles/Kingroon/filament/fdm_filament_abs.json deleted file mode 100644 index d655561fc3..0000000000 --- a/resources/profiles/Kingroon/filament/fdm_filament_abs.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_abs", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp": ["105"], - "eng_plate_temp": ["105"], - "hot_plate_temp": ["105"], - "cool_plate_temp_initial_layer": ["105"], - "eng_plate_temp_initial_layer": ["105"], - "hot_plate_temp_initial_layer": ["105"], - "slow_down_for_layer_cooling": ["1"], - "close_fan_the_first_x_layers": ["3"], - "fan_cooling_layer_time": ["30"], - "filament_max_volumetric_speed": ["28.6"], - "filament_type": ["ABS"], - "filament_density": ["1.04"], - "filament_cost": ["20"], - "nozzle_temperature_initial_layer": ["260"], - "reduce_fan_stop_start_freq": ["1"], - "fan_max_speed": ["80"], - "fan_min_speed": ["10"], - "overhang_fan_threshold": ["25%"], - "overhang_fan_speed": ["80"], - "nozzle_temperature": ["260"], - "temperature_vitrification": ["110"], - "nozzle_temperature_range_low": ["240"], - "nozzle_temperature_range_high": ["270"], - "slow_down_min_speed": ["10"], - "slow_down_layer_time": ["3"] -} diff --git a/resources/profiles/Kingroon/filament/fdm_filament_asa.json b/resources/profiles/Kingroon/filament/fdm_filament_asa.json deleted file mode 100644 index b60eb881a7..0000000000 --- a/resources/profiles/Kingroon/filament/fdm_filament_asa.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_asa", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp": ["105"], - "eng_plate_temp": ["105"], - "hot_plate_temp": ["105"], - "cool_plate_temp_initial_layer": ["105"], - "eng_plate_temp_initial_layer": ["105"], - "hot_plate_temp_initial_layer": ["105"], - "slow_down_for_layer_cooling": ["1"], - "close_fan_the_first_x_layers": ["3"], - "fan_cooling_layer_time": ["35"], - "filament_max_volumetric_speed": ["28.6"], - "filament_type": ["ASA"], - "filament_density": ["1.04"], - "filament_cost": ["20"], - "nozzle_temperature_initial_layer": ["260"], - "reduce_fan_stop_start_freq": ["1"], - "fan_max_speed": ["80"], - "fan_min_speed": ["10"], - "overhang_fan_threshold": ["25%"], - "overhang_fan_speed": ["80"], - "nozzle_temperature": ["260"], - "temperature_vitrification": ["110"], - "nozzle_temperature_range_low": ["240"], - "nozzle_temperature_range_high": ["270"], - "slow_down_min_speed": ["10"], - "slow_down_layer_time": ["3"] -} diff --git a/resources/profiles/Kingroon/filament/fdm_filament_common.json b/resources/profiles/Kingroon/filament/fdm_filament_common.json deleted file mode 100644 index 5212d445a5..0000000000 --- a/resources/profiles/Kingroon/filament/fdm_filament_common.json +++ /dev/null @@ -1,135 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_common", - "from": "system", - "instantiation": "false", - "cool_plate_temp" : [ - "60" - ], - "eng_plate_temp" : [ - "60" - ], - "hot_plate_temp" : [ - "60" - ], - "cool_plate_temp_initial_layer" : [ - "60" - ], - "eng_plate_temp_initial_layer" : [ - "60" - ], - "hot_plate_temp_initial_layer" : [ - "60" - ], - "overhang_fan_threshold": [ - "95%" - ], - "overhang_fan_speed": [ - "100" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "filament_end_gcode": [ - "; filament end gcode \n" - ], - "filament_flow_ratio": [ - "1" - ], - "reduce_fan_stop_start_freq": [ - "0" - ], - "fan_cooling_layer_time": [ - "60" - ], - "filament_cost": [ - "0" - ], - "filament_density": [ - "0" - ], - "filament_deretraction_speed": [ - "nil" - ], - "filament_diameter": [ - "1.75" - ], - "filament_max_volumetric_speed": [ - "0" - ], - "filament_minimal_purge_on_wipe_tower": [ - "15" - ], - "filament_retraction_minimum_travel": [ - "nil" - ], - "filament_retract_before_wipe": [ - "nil" - ], - "filament_retract_when_changing_layer": [ - "nil" - ], - "filament_retraction_length": [ - "nil" - ], - "filament_z_hop": [ - "nil" - ], - "filament_retract_restart_extra": [ - "nil" - ], - "filament_retraction_speed": [ - "nil" - ], - "filament_settings_id": [ - "" - ], - "filament_soluble": [ - "0" - ], - "filament_type": [ - "PLA" - ], - "filament_vendor": [ - "Generic" - ], - "filament_wipe": [ - "nil" - ], - "filament_wipe_distance": [ - "nil" - ], - "bed_type": [ - "Cool Plate" - ], - "nozzle_temperature_initial_layer": [ - "200" - ], - "full_fan_speed_layer": [ - "0" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "35" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "8" - ], - "filament_start_gcode": [ - "; Filament gcode\n" - ], - "nozzle_temperature": [ - "200" - ], - "temperature_vitrification": [ - "100" - ] -} diff --git a/resources/profiles/Kingroon/filament/fdm_filament_pc.json b/resources/profiles/Kingroon/filament/fdm_filament_pc.json deleted file mode 100644 index 89f770017e..0000000000 --- a/resources/profiles/Kingroon/filament/fdm_filament_pc.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pc", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "0" - ], - "eng_plate_temp" : [ - "110" - ], - "hot_plate_temp" : [ - "110" - ], - "cool_plate_temp_initial_layer" : [ - "0" - ], - "eng_plate_temp_initial_layer" : [ - "110" - ], - "hot_plate_temp_initial_layer" : [ - "110" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "30" - ], - "filament_max_volumetric_speed": [ - "23.2" - ], - "filament_type": [ - "PC" - ], - "filament_density": [ - "1.04" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "270" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "fan_max_speed": [ - "60" - ], - "fan_min_speed": [ - "10" - ], - "overhang_fan_threshold": [ - "25%" - ], - "overhang_fan_speed": [ - "60" - ], - "nozzle_temperature": [ - "280" - ], - "temperature_vitrification": [ - "140" - ], - "nozzle_temperature_range_low": [ - "260" - ], - "nozzle_temperature_range_high": [ - "280" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "2" - ] -} diff --git a/resources/profiles/Kingroon/filament/fdm_filament_pet.json b/resources/profiles/Kingroon/filament/fdm_filament_pet.json deleted file mode 100644 index 1b31478fa1..0000000000 --- a/resources/profiles/Kingroon/filament/fdm_filament_pet.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pet", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp": ["60"], - "eng_plate_temp": ["0"], - "hot_plate_temp": ["80"], - "cool_plate_temp_initial_layer": ["60"], - "eng_plate_temp_initial_layer": ["0"], - "hot_plate_temp_initial_layer": ["80"], - "slow_down_for_layer_cooling": ["1"], - "close_fan_the_first_x_layers": ["3"], - "fan_cooling_layer_time": ["20"], - "filament_max_volumetric_speed": ["25"], - "filament_type": ["PETG"], - "filament_density": ["1.27"], - "filament_cost": ["30"], - "nozzle_temperature_initial_layer": ["255"], - "reduce_fan_stop_start_freq": ["1"], - "fan_max_speed": ["100"], - "fan_min_speed": ["20"], - "overhang_fan_speed": ["100"], - "nozzle_temperature": ["255"], - "temperature_vitrification": ["80"], - "nozzle_temperature_range_low": ["220"], - "nozzle_temperature_range_high": ["260"], - "filament_start_gcode": ["; filament start gcode\n"] -} diff --git a/resources/profiles/Kingroon/filament/fdm_filament_pla.json b/resources/profiles/Kingroon/filament/fdm_filament_pla.json deleted file mode 100644 index 3ba7fdc4fc..0000000000 --- a/resources/profiles/Kingroon/filament/fdm_filament_pla.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pla", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "bed_temperature_difference": ["10"], - "close_fan_the_first_x_layers": ["1"], - "compatible_printers_condition": "", - "compatible_prints": [], - "compatible_prints_condition": "", - "cool_plate_temp": ["60"], - "cool_plate_temp_initial_layer": ["60"], - "default_filament_colour": [""], - "enable_overhang_bridge_fan": ["1"], - "enable_pressure_advance": ["1"], - "eng_plate_temp": ["60"], - "eng_plate_temp_initial_layer": ["60"], - "fan_cooling_layer_time": ["100"], - "fan_max_speed": ["100"], - "fan_min_speed": ["100"], - "filament_cost": ["17.33"], - "filament_density": ["1.24"], - "filament_deretraction_speed": ["nil"], - "filament_diameter": ["1.73"], - "filament_end_gcode": ["; filament end gcode \n"], - "filament_flow_ratio": ["1.02"], - "filament_is_support": ["0"], - "filament_max_volumetric_speed": ["18"], - "filament_minimal_purge_on_wipe_tower": ["15"], - "filament_retract_before_wipe": ["nil"], - "filament_retract_restart_extra": ["nil"], - "filament_retract_when_changing_layer": ["nil"], - "filament_retraction_length": ["nil"], - "filament_retraction_minimum_travel": ["nil"], - "filament_retraction_speed": ["nil"], - "filament_shrink": ["100%"], - "filament_soluble": ["0"], - "filament_start_gcode": ["; filament start gcode\n"], - "filament_type": ["PLA"], - "filament_vendor": ["Generic"], - "filament_wipe": ["nil"], - "filament_wipe_distance": ["nil"], - "filament_z_hop": ["nil"], - "filament_z_hop_types": ["nil"], - "full_fan_speed_layer": ["0"], - "hot_plate_temp": ["55"], - "hot_plate_temp_initial_layer": ["55"], - "nozzle_temperature": ["200"], - "nozzle_temperature_initial_layer": ["200"], - "nozzle_temperature_range_high": ["220"], - "nozzle_temperature_range_low": ["190"], - "overhang_fan_speed": ["100"], - "overhang_fan_threshold": ["50%"], - "pressure_advance": ["0.04"], - "reduce_fan_stop_start_freq": ["1"], - "required_nozzle_HRC": ["0"], - "slow_down_for_layer_cooling": ["1"], - "slow_down_layer_time": ["8"], - "slow_down_min_speed": ["10"], - "support_material_interface_fan_speed": ["-1"], - "temperature_vitrification": ["60"], - "textured_plate_temp": ["60"], - "textured_plate_temp_initial_layer": ["60"] -} diff --git a/resources/profiles/Kingroon/filament/fdm_filament_tpu.json b/resources/profiles/Kingroon/filament/fdm_filament_tpu.json deleted file mode 100644 index d5cc57fbcc..0000000000 --- a/resources/profiles/Kingroon/filament/fdm_filament_tpu.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_tpu", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "30" - ], - "eng_plate_temp" : [ - "30" - ], - "hot_plate_temp" : [ - "35" - ], - "cool_plate_temp_initial_layer" : [ - "30" - ], - "eng_plate_temp_initial_layer" : [ - "30" - ], - "hot_plate_temp_initial_layer" : [ - "35" - ], - "fan_cooling_layer_time": [ - "100" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "filament_type": [ - "TPU" - ], - "filament_density": [ - "1.24" - ], - "filament_cost": [ - "20" - ], - "filament_retraction_length": [ - "0.4" - ], - "nozzle_temperature_initial_layer": [ - "240" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "overhang_fan_speed": [ - "100" - ], - "additional_cooling_fan_speed": [ - "70" - ], - "close_fan_the_first_x_layers": [ - "1" - ], - "nozzle_temperature": [ - "240" - ], - "temperature_vitrification": [ - "60" - ], - "nozzle_temperature_range_low": [ - "200" - ], - "nozzle_temperature_range_high": [ - "250" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ] -} diff --git a/resources/profiles/Kingroon/process/0.30mm Standard @Kingroon KP3S 3.0.json b/resources/profiles/Kingroon/process/0.30mm Standard @Kingroon KP3S 3.0.json index fa301a7d11..44b7e14e1f 100644 --- a/resources/profiles/Kingroon/process/0.30mm Standard @Kingroon KP3S 3.0.json +++ b/resources/profiles/Kingroon/process/0.30mm Standard @Kingroon KP3S 3.0.json @@ -1,9 +1,10 @@ { "type": "process", "compatible_printers": [ - "Kingroon KP3S 3.0 0.4 nozzle" + "Kingroon KP3S 3.0 0.4 nozzle" ], "name": "0.30mm Standard @Kingroon KP3S 3.0", + "instantiation": "true", "inherits": "fdm_process_common", "print_settings_id": "0.30mm Standard @Kingroon KP3S 3.0", "bottom_surface_pattern": "monotonicline", @@ -84,4 +85,4 @@ "wall_transition_angle": "59", "wipe_before_external_loop": "1", "wipe_tower_bridging": "2" -} +} \ No newline at end of file diff --git a/resources/profiles/MagicMaker.json b/resources/profiles/MagicMaker.json index a5e730954f..b0e6470626 100644 --- a/resources/profiles/MagicMaker.json +++ b/resources/profiles/MagicMaker.json @@ -1,226 +1,174 @@ -{ - "name": "MagicMaker", - "version": "02.02.00.04", - "force_update": "0", - "description": "MagicMaker configurations", - "machine_model_list": [ - { - "name": "MM hqs hj", - "sub_path": "machine/MM hqs hj.json" - }, - { - "name": "MM hqs SF", - "sub_path": "machine/MM hqs SF.json" - }, - { - "name": "MM hj SK", - "sub_path": "machine/MM hj SK.json" - }, - { - "name": "MM BoneKing", - "sub_path": "machine/MM BoneKing.json" - }, - { - "name": "MM slb", - "sub_path": "machine/MM slb.json" - } - ], - "process_list": [ - { - "name": "fdm_process_common", - "sub_path": "process/fdm_process_common.json" - }, - { - "name": "0.10mm Fine @MM slb", - "sub_path": "process/0.10mm Fine @MM slb.json" - }, - { - "name": "0.20mm Standard @MM slb", - "sub_path": "process/0.20mm Standard @MM slb.json" - }, - { - "name": "0.30mm Draft @MM slb", - "sub_path": "process/0.30mm Draft @MM slb.json" - }, - { - "name": "0.10mm Fine @MM hqs hj", - "sub_path": "process/0.10mm Fine @MM hqs hj.json" - }, - { - "name": "0.20mm Standard @MM hqs hj", - "sub_path": "process/0.20mm Standard @MM hqs hj.json" - }, - { - "name": "0.30mm Draft @MM hqs hj", - "sub_path": "process/0.30mm Draft @MM hqs hj.json" - }, - { - "name": "0.10mm Fine @MM hqs SF", - "sub_path": "process/0.10mm Fine @MM hqs SF.json" - }, - { - "name": "0.20mm Standard @MM hqs SF", - "sub_path": "process/0.20mm Standard @MM hqs SF.json" - }, - { - "name": "0.30mm Draft @MM hqs SF", - "sub_path": "process/0.30mm Draft @MM hqs SF.json" - }, - { - "name": "0.10mm Fine Fast @MM hqs SF", - "sub_path": "process/0.10mm Fine Fast @MM hqs SF.json" - }, - { - "name": "0.20mm Standard Fast @MM hqs SF", - "sub_path": "process/0.20mm Standard Fast @MM hqs SF.json" - }, - { - "name": "0.30mm Draft Fast @MM hqs SF", - "sub_path": "process/0.30mm Draft Fast @MM hqs SF.json" - }, - { - "name": "0.10mm Fine @MM hj SK", - "sub_path": "process/0.10mm Fine @MM hj SK.json" - }, - { - "name": "0.20mm Standard @MM hj SK", - "sub_path": "process/0.20mm Standard @MM hj SK.json" - }, - { - "name": "0.30mm Draft @MM hj SK", - "sub_path": "process/0.30mm Draft @MM hj SK.json" - }, - { - "name": "0.10mm Fine Fast @MM hj SK", - "sub_path": "process/0.10mm Fine Fast @MM hj SK.json" - }, - { - "name": "0.20mm Standard Fast @MM hj SK", - "sub_path": "process/0.20mm Standard Fast @MM hj SK.json" - }, - { - "name": "0.30mm Draft Fast @MM hj SK", - "sub_path": "process/0.30mm Draft Fast @MM hj SK.json" - }, - { - "name": "0.10mm Fine @MM BoneKing", - "sub_path": "process/0.10mm Fine @MM BoneKing.json" - }, - { - "name": "0.20mm Standard @MM BoneKing", - "sub_path": "process/0.20mm Standard @MM BoneKing.json" - }, - { - "name": "0.30mm Draft @MM BoneKing", - "sub_path": "process/0.30mm Draft @MM BoneKing.json" - }, - { - "name": "0.10mm Fine Fast @MM BoneKing", - "sub_path": "process/0.10mm Fine Fast @MM BoneKing.json" - }, - { - "name": "0.20mm Standard Fast @MM BoneKing", - "sub_path": "process/0.20mm Standard Fast @MM BoneKing.json" - }, - { - "name": "0.30mm Draft Fast @MM BoneKing", - "sub_path": "process/0.30mm Draft Fast @MM BoneKing.json" - }, - { - "name": "0.12mm Fine SuperFast @MM BoneKing", - "sub_path": "process/0.12mm Fine SuperFast @MM BoneKing.json" - }, - { - "name": "0.12mm Fine BestFast @MM BoneKing", - "sub_path": "process/0.12mm Fine BestFast @MM BoneKing.json" - } - ], - "filament_list": [ - { - "name": "fdm_filament_common", - "sub_path": "filament/fdm_filament_common.json" - }, - { - "name": "fdm_filament_pla", - "sub_path": "filament/fdm_filament_pla.json" - }, - { - "name": "fdm_filament_pet", - "sub_path": "filament/fdm_filament_pet.json" - }, - { - "name": "fdm_filament_abs", - "sub_path": "filament/fdm_filament_abs.json" - }, - { - "name": "fdm_filament_tpu", - "sub_path": "filament/fdm_filament_tpu.json" - }, - { - "name": "fdm_filament_pc", - "sub_path": "filament/fdm_filament_pc.json" - }, - { - "name": "fdm_filament_pa", - "sub_path": "filament/fdm_filament_pa.json" - }, - { - "name": "fdm_filament_peek", - "sub_path": "filament/fdm_filament_peek.json" - }, - { - "name": "MM Generic PLA", - "sub_path": "filament/MM Generic PLA.json" - }, - { - "name": "MM Generic PETG", - "sub_path": "filament/MM Generic PETG.json" - }, - { - "name": "MM Generic ABS", - "sub_path": "filament/MM Generic ABS.json" - }, - { - "name": "MM Generic TPU", - "sub_path": "filament/MM Generic TPU.json" - }, - { - "name": "MM Generic PC", - "sub_path": "filament/MM Generic PC.json" - }, - { - "name": "MM Generic PA", - "sub_path": "filament/MM Generic PA.json" - }, - { - "name": "MM Generic PEEK", - "sub_path": "filament/MM Generic PEEK.json" - } - ], - "machine_list": [ - { - "name": "fdm_machine_common", - "sub_path": "machine/fdm_machine_common.json" - }, - { - "name": "MM hqs hj 0.4 nozzle", - "sub_path": "machine/MM hqs hj 0.4 nozzle.json" - }, - { - "name": "MM hqs SF 0.4 nozzle", - "sub_path": "machine/MM hqs SF 0.4 nozzle.json" - }, - { - "name": "MM hj SK 0.4 nozzle", - "sub_path": "machine/MM hj SK 0.4 nozzle.json" - }, - { - "name": "MM BoneKing 0.4 nozzle", - "sub_path": "machine/MM BoneKing 0.4 nozzle.json" - }, - { - "name": "MM slb 0.4 nozzle", - "sub_path": "machine/MM slb 0.4 nozzle.json" - } - ] -} +{ + "name": "MagicMaker", + "version": "02.02.00.04", + "force_update": "0", + "description": "MagicMaker configurations", + "machine_model_list": [ + { + "name": "MM hqs hj", + "sub_path": "machine/MM hqs hj.json" + }, + { + "name": "MM hqs SF", + "sub_path": "machine/MM hqs SF.json" + }, + { + "name": "MM hj SK", + "sub_path": "machine/MM hj SK.json" + }, + { + "name": "MM BoneKing", + "sub_path": "machine/MM BoneKing.json" + }, + { + "name": "MM slb", + "sub_path": "machine/MM slb.json" + } + ], + "process_list": [ + { + "name": "fdm_process_common", + "sub_path": "process/fdm_process_common.json" + }, + { + "name": "0.10mm Fine @MM slb", + "sub_path": "process/0.10mm Fine @MM slb.json" + }, + { + "name": "0.20mm Standard @MM slb", + "sub_path": "process/0.20mm Standard @MM slb.json" + }, + { + "name": "0.30mm Draft @MM slb", + "sub_path": "process/0.30mm Draft @MM slb.json" + }, + { + "name": "0.10mm Fine @MM hqs hj", + "sub_path": "process/0.10mm Fine @MM hqs hj.json" + }, + { + "name": "0.20mm Standard @MM hqs hj", + "sub_path": "process/0.20mm Standard @MM hqs hj.json" + }, + { + "name": "0.30mm Draft @MM hqs hj", + "sub_path": "process/0.30mm Draft @MM hqs hj.json" + }, + { + "name": "0.10mm Fine @MM hqs SF", + "sub_path": "process/0.10mm Fine @MM hqs SF.json" + }, + { + "name": "0.20mm Standard @MM hqs SF", + "sub_path": "process/0.20mm Standard @MM hqs SF.json" + }, + { + "name": "0.30mm Draft @MM hqs SF", + "sub_path": "process/0.30mm Draft @MM hqs SF.json" + }, + { + "name": "0.10mm Fine Fast @MM hqs SF", + "sub_path": "process/0.10mm Fine Fast @MM hqs SF.json" + }, + { + "name": "0.20mm Standard Fast @MM hqs SF", + "sub_path": "process/0.20mm Standard Fast @MM hqs SF.json" + }, + { + "name": "0.30mm Draft Fast @MM hqs SF", + "sub_path": "process/0.30mm Draft Fast @MM hqs SF.json" + }, + { + "name": "0.10mm Fine @MM hj SK", + "sub_path": "process/0.10mm Fine @MM hj SK.json" + }, + { + "name": "0.20mm Standard @MM hj SK", + "sub_path": "process/0.20mm Standard @MM hj SK.json" + }, + { + "name": "0.30mm Draft @MM hj SK", + "sub_path": "process/0.30mm Draft @MM hj SK.json" + }, + { + "name": "0.10mm Fine Fast @MM hj SK", + "sub_path": "process/0.10mm Fine Fast @MM hj SK.json" + }, + { + "name": "0.20mm Standard Fast @MM hj SK", + "sub_path": "process/0.20mm Standard Fast @MM hj SK.json" + }, + { + "name": "0.30mm Draft Fast @MM hj SK", + "sub_path": "process/0.30mm Draft Fast @MM hj SK.json" + }, + { + "name": "0.10mm Fine @MM BoneKing", + "sub_path": "process/0.10mm Fine @MM BoneKing.json" + }, + { + "name": "0.20mm Standard @MM BoneKing", + "sub_path": "process/0.20mm Standard @MM BoneKing.json" + }, + { + "name": "0.30mm Draft @MM BoneKing", + "sub_path": "process/0.30mm Draft @MM BoneKing.json" + }, + { + "name": "0.10mm Fine Fast @MM BoneKing", + "sub_path": "process/0.10mm Fine Fast @MM BoneKing.json" + }, + { + "name": "0.20mm Standard Fast @MM BoneKing", + "sub_path": "process/0.20mm Standard Fast @MM BoneKing.json" + }, + { + "name": "0.30mm Draft Fast @MM BoneKing", + "sub_path": "process/0.30mm Draft Fast @MM BoneKing.json" + }, + { + "name": "0.12mm Fine SuperFast @MM BoneKing", + "sub_path": "process/0.12mm Fine SuperFast @MM BoneKing.json" + }, + { + "name": "0.12mm Fine BestFast @MM BoneKing", + "sub_path": "process/0.12mm Fine BestFast @MM BoneKing.json" + } + ], + "filament_list": [ + { + "name": "fdm_filament_peek", + "sub_path": "filament/fdm_filament_peek.json" + }, + { + "name": "MM Generic PEEK", + "sub_path": "filament/MM Generic PEEK.json" + } + ], + "machine_list": [ + { + "name": "fdm_machine_common", + "sub_path": "machine/fdm_machine_common.json" + }, + { + "name": "MM hqs hj 0.4 nozzle", + "sub_path": "machine/MM hqs hj 0.4 nozzle.json" + }, + { + "name": "MM hqs SF 0.4 nozzle", + "sub_path": "machine/MM hqs SF 0.4 nozzle.json" + }, + { + "name": "MM hj SK 0.4 nozzle", + "sub_path": "machine/MM hj SK 0.4 nozzle.json" + }, + { + "name": "MM BoneKing 0.4 nozzle", + "sub_path": "machine/MM BoneKing 0.4 nozzle.json" + }, + { + "name": "MM slb 0.4 nozzle", + "sub_path": "machine/MM slb 0.4 nozzle.json" + } + ] +} \ No newline at end of file diff --git a/resources/profiles/MagicMaker/filament/MM Generic ABS.json b/resources/profiles/MagicMaker/filament/MM Generic ABS.json deleted file mode 100644 index 3dec8e66d3..0000000000 --- a/resources/profiles/MagicMaker/filament/MM Generic ABS.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFB99", - "setting_id": "GFSA04", - "is_custom_defined": "0", - "name": "MM Generic ABS", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_abs", - "filament_max_volumetric_speed": [ - "50" - ], - "fan_max_speed": [ - "10" - ], - "filament_cost": [ - "100" - ], - "filament_diameter": [ - "1.75" - ], - "filament_flow_ratio": [ - "1" - ], - "full_fan_speed_layer": [ - "5" - ], - "hot_plate_temp": [ - "100" - ], - "hot_plate_temp_initial_layer": [ - "100" - ], - "nozzle_temperature": [ - "240" - ], - "nozzle_temperature_range_high": [ - "250" - ], - "nozzle_temperature_range_low": [ - "230" - ], - "slow_down_min_speed": [ - "5" - ], - "compatible_printers": [ - "MM hqs hj 0.4 nozzle", - "MM hqs SF 0.4 nozzle", - "MM hj SK 0.4 nozzle", - "MM BoneKing 0.4 nozzle", - "MM slb 0.4 nozzle" - ], - "version": "2.0.0.0" -} \ No newline at end of file diff --git a/resources/profiles/MagicMaker/filament/MM Generic PA.json b/resources/profiles/MagicMaker/filament/MM Generic PA.json deleted file mode 100644 index cfffeec427..0000000000 --- a/resources/profiles/MagicMaker/filament/MM Generic PA.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFB99", - "setting_id": "GFSA04", - "is_custom_defined": "0", - "name": "MM Generic PA", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pa", - "chamber_temperature": [ - "60" - ], - "fan_max_speed": [ - "40" - ], - "filament_cost": [ - "100" - ], - "filament_diameter": [ - "1.75" - ], - "full_fan_speed_layer": [ - "5" - ], - "compatible_printers": [ - "MM hqs hj 0.4 nozzle", - "MM hqs SF 0.4 nozzle", - "MM hj SK 0.4 nozzle", - "MM BoneKing 0.4 nozzle" - ], - "version": "2.0.0.0" -} \ No newline at end of file diff --git a/resources/profiles/MagicMaker/filament/MM Generic PC.json b/resources/profiles/MagicMaker/filament/MM Generic PC.json deleted file mode 100644 index 3bc754c450..0000000000 --- a/resources/profiles/MagicMaker/filament/MM Generic PC.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFB99", - "setting_id": "GFSA04", - "is_custom_defined": "0", - "name": "MM Generic PC", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pc", - "fan_max_speed": [ - "40" - ], - "filament_cost": [ - "100" - ], - "filament_diameter": [ - "1.75" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "full_fan_speed_layer": [ - "5" - ], - "nozzle_temperature": [ - "270" - ], - "compatible_printers": [ - "MM hqs hj 0.4 nozzle", - "MM hqs SF 0.4 nozzle", - "MM hj SK 0.4 nozzle", - "MM BoneKing 0.4 nozzle" - ], - "version": "2.0.0.0" -} \ No newline at end of file diff --git a/resources/profiles/MagicMaker/filament/MM Generic PETG.json b/resources/profiles/MagicMaker/filament/MM Generic PETG.json deleted file mode 100644 index 5e9eae5c40..0000000000 --- a/resources/profiles/MagicMaker/filament/MM Generic PETG.json +++ /dev/null @@ -1,87 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFG99", - "setting_id": "GFSA04", - "name": "MM Generic PETG", - "is_custom_defined": "0", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pet", - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_cooling_layer_time": [ - "30" - ], - "overhang_fan_speed": [ - "70" - ], - "overhang_fan_threshold": [ - "25%" - ], - "fan_min_speed": [ - "20" - ], - "slow_down_layer_time": [ - "5" - ], - "filament_max_volumetric_speed": [ - "50" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ], - "chamber_temperature": [ - "40" - ], - "close_fan_the_first_x_layers": [ - "2" - ], - "fan_max_speed": [ - "60" - ], - "filament_cost": [ - "100" - ], - "filament_diameter": [ - "1.75" - ], - "filament_flow_ratio": [ - "1" - ], - "filament_retraction_length": [ - "2" - ], - "full_fan_speed_layer": [ - "4" - ], - "hot_plate_temp": [ - "70" - ], - "hot_plate_temp_initial_layer": [ - "70" - ], - "nozzle_temperature_initial_layer": [ - "235" - ], - "nozzle_temperature_range_high": [ - "245" - ], - "nozzle_temperature_range_low": [ - "225" - ], - "slow_down_min_speed": [ - "10" - ], - "compatible_printers": [ - "MM hqs hj 0.4 nozzle", - "MM hqs SF 0.4 nozzle", - "MM hj SK 0.4 nozzle", - "MM BoneKing 0.4 nozzle", - "MM slb 0.4 nozzle" - ], - "version": "2.0.0.0" -} diff --git a/resources/profiles/MagicMaker/filament/MM Generic PLA.json b/resources/profiles/MagicMaker/filament/MM Generic PLA.json deleted file mode 100644 index a2aa68f8a8..0000000000 --- a/resources/profiles/MagicMaker/filament/MM Generic PLA.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFL99", - "setting_id": "GFSA04", - "name": "MM Generic PLA", - "is_custom_defined": "0", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pla", - "filament_max_volumetric_speed": [ - "50" - ], - "slow_down_layer_time": [ - "5" - ], - - "filament_cost": [ - "100" - ], - "filament_diameter": [ - "1.75" - ], - "filament_flow_ratio": [ - "1" - ], - "full_fan_speed_layer": [ - "3" - ], - "hot_plate_temp_initial_layer": [ - "60" - ], - "nozzle_temperature": [ - "205" - ], - "nozzle_temperature_range_high": [ - "230" - ], - "compatible_printers": [ - "MM hqs hj 0.4 nozzle", - "MM hqs SF 0.4 nozzle", - "MM hj SK 0.4 nozzle", - "MM BoneKing 0.4 nozzle", - "MM slb 0.4 nozzle" - ], - "version": "2.0.0.0" -} diff --git a/resources/profiles/MagicMaker/filament/MM Generic TPU.json b/resources/profiles/MagicMaker/filament/MM Generic TPU.json deleted file mode 100644 index e9700a279a..0000000000 --- a/resources/profiles/MagicMaker/filament/MM Generic TPU.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFU99", - "setting_id": "GFSA04", - "name": "MM Generic TPU", - "is_custom_defined": "0", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_tpu", - "fan_max_speed": [ - "80" - ], - "fan_min_speed": [ - "40" - ], - "filament_cost": [ - "100" - ], - "filament_diameter": [ - "1.75" - ], - "filament_max_volumetric_speed": [ - "3" - ], - "filament_retraction_length": [ - "0.5" - ], - - "full_fan_speed_layer": [ - "3" - ], - "hot_plate_temp": [ - "45" - ], - "hot_plate_temp_initial_layer": [ - "45" - ], - "nozzle_temperature": [ - "220" - ], - "nozzle_temperature_initial_layer": [ - "220" - ], - "nozzle_temperature_range_high": [ - "240" - ], - "slow_down_min_speed": [ - "5" - ], - "compatible_printers": [ - "MM hqs hj 0.4 nozzle", - "MM hqs SF 0.4 nozzle", - "MM hj SK 0.4 nozzle", - "MM BoneKing 0.4 nozzle", - "MM slb 0.4 nozzle" - ], - "version": "2.0.0.0" -} diff --git a/resources/profiles/MagicMaker/filament/fdm_filament_abs.json b/resources/profiles/MagicMaker/filament/fdm_filament_abs.json deleted file mode 100644 index 1ada3b4ae1..0000000000 --- a/resources/profiles/MagicMaker/filament/fdm_filament_abs.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_abs", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "80" - ], - "eng_plate_temp" : [ - "80" - ], - "hot_plate_temp" : [ - "80" - ], - "textured_plate_temp" : [ - "80" - ], - "cool_plate_temp_initial_layer" : [ - "80" - ], - "eng_plate_temp_initial_layer" : [ - "80" - ], - "hot_plate_temp_initial_layer" : [ - "80" - ], - "textured_plate_temp_initial_layer" : [ - "80" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "30" - ], - "filament_max_volumetric_speed": [ - "0" - ], - "filament_type": [ - "ABS" - ], - "filament_density": [ - "1.10" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "240" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "fan_max_speed": [ - "5" - ], - "fan_min_speed": [ - "5" - ], - "overhang_fan_threshold": [ - "25%" - ], - "overhang_fan_speed": [ - "80" - ], - "nozzle_temperature": [ - "235" - ], - "temperature_vitrification": [ - "110" - ], - "nozzle_temperature_range_low": [ - "235" - ], - "nozzle_temperature_range_high": [ - "240" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "15" - ] -} diff --git a/resources/profiles/MagicMaker/filament/fdm_filament_asa.json b/resources/profiles/MagicMaker/filament/fdm_filament_asa.json deleted file mode 100644 index 38126ffe56..0000000000 --- a/resources/profiles/MagicMaker/filament/fdm_filament_asa.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_asa", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "105" - ], - "eng_plate_temp" : [ - "105" - ], - "hot_plate_temp" : [ - "105" - ], - "textured_plate_temp" : [ - "105" - ], - "cool_plate_temp_initial_layer" : [ - "105" - ], - "eng_plate_temp_initial_layer" : [ - "105" - ], - "hot_plate_temp_initial_layer" : [ - "105" - ], - "textured_plate_temp_initial_layer" : [ - "105" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "35" - ], - "filament_max_volumetric_speed": [ - "28.6" - ], - "filament_type": [ - "ASA" - ], - "filament_density": [ - "1.04" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "260" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "fan_max_speed": [ - "80" - ], - "fan_min_speed": [ - "10" - ], - "overhang_fan_threshold": [ - "25%" - ], - "overhang_fan_speed": [ - "80" - ], - "nozzle_temperature": [ - "260" - ], - "temperature_vitrification": [ - "110" - ], - "nozzle_temperature_range_low": [ - "240" - ], - "nozzle_temperature_range_high": [ - "270" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "3" - ] -} diff --git a/resources/profiles/MagicMaker/filament/fdm_filament_common.json b/resources/profiles/MagicMaker/filament/fdm_filament_common.json deleted file mode 100644 index 1e4b7b89ed..0000000000 --- a/resources/profiles/MagicMaker/filament/fdm_filament_common.json +++ /dev/null @@ -1,144 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_common", - "from": "system", - "instantiation": "false", - "cool_plate_temp" : [ - "60" - ], - "eng_plate_temp" : [ - "60" - ], - "hot_plate_temp" : [ - "60" - ], - "textured_plate_temp" : [ - "60" - ], - "cool_plate_temp_initial_layer" : [ - "60" - ], - "eng_plate_temp_initial_layer" : [ - "60" - ], - "hot_plate_temp_initial_layer" : [ - "60" - ], - "textured_plate_temp_initial_layer" : [ - "60" - ], - "overhang_fan_threshold": [ - "95%" - ], - "overhang_fan_speed": [ - "100" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "filament_end_gcode": [ - "; filament end gcode \n" - ], - "filament_flow_ratio": [ - "1" - ], - "reduce_fan_stop_start_freq": [ - "0" - ], - "fan_cooling_layer_time": [ - "60" - ], - "filament_cost": [ - "0" - ], - "filament_density": [ - "0" - ], - "filament_deretraction_speed": [ - "nil" - ], - "filament_diameter": [ - "2.85" - ], - "filament_max_volumetric_speed": [ - "0" - ], - "filament_minimal_purge_on_wipe_tower": [ - "15" - ], - "filament_retraction_minimum_travel": [ - "nil" - ], - "filament_retract_before_wipe": [ - "nil" - ], - "filament_retract_when_changing_layer": [ - "nil" - ], - "filament_retraction_length": [ - "nil" - ], - "filament_z_hop": [ - "nil" - ], - "filament_z_hop_types": [ - "nil" - ], - "filament_retract_restart_extra": [ - "nil" - ], - "filament_retraction_speed": [ - "nil" - ], - "filament_settings_id": [ - "" - ], - "filament_soluble": [ - "0" - ], - "filament_type": [ - "PLA" - ], - "filament_vendor": [ - "Generic" - ], - "filament_wipe": [ - "nil" - ], - "filament_wipe_distance": [ - "nil" - ], - "bed_type": [ - "Cool Plate" - ], - "nozzle_temperature_initial_layer": [ - "200" - ], - "full_fan_speed_layer": [ - "0" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "35" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "8" - ], - "filament_start_gcode": [ - "; Filament gcode\n" - ], - "nozzle_temperature": [ - "200" - ], - "temperature_vitrification": [ - "100" - ] -} diff --git a/resources/profiles/MagicMaker/filament/fdm_filament_pa.json b/resources/profiles/MagicMaker/filament/fdm_filament_pa.json deleted file mode 100644 index 671549041e..0000000000 --- a/resources/profiles/MagicMaker/filament/fdm_filament_pa.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pa", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "0" - ], - "eng_plate_temp" : [ - "100" - ], - "hot_plate_temp" : [ - "100" - ], - "textured_plate_temp" : [ - "100" - ], - "cool_plate_temp_initial_layer" : [ - "0" - ], - "eng_plate_temp_initial_layer" : [ - "100" - ], - "hot_plate_temp_initial_layer" : [ - "100" - ], - "textured_plate_temp_initial_layer" : [ - "100" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "4" - ], - "filament_max_volumetric_speed": [ - "8" - ], - "filament_type": [ - "PA" - ], - "filament_density": [ - "1.04" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "290" - ], - "reduce_fan_stop_start_freq": [ - "0" - ], - "fan_max_speed": [ - "60" - ], - "fan_min_speed": [ - "0" - ], - "overhang_fan_speed": [ - "30" - ], - "nozzle_temperature": [ - "290" - ], - "temperature_vitrification": [ - "108" - ], - "nozzle_temperature_range_low": [ - "270" - ], - "nozzle_temperature_range_high": [ - "300" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "2" - ] -} diff --git a/resources/profiles/MagicMaker/filament/fdm_filament_pc.json b/resources/profiles/MagicMaker/filament/fdm_filament_pc.json deleted file mode 100644 index e87b47be07..0000000000 --- a/resources/profiles/MagicMaker/filament/fdm_filament_pc.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pc", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "0" - ], - "eng_plate_temp" : [ - "110" - ], - "hot_plate_temp" : [ - "110" - ], - "textured_plate_temp" : [ - "110" - ], - "cool_plate_temp_initial_layer" : [ - "0" - ], - "eng_plate_temp_initial_layer" : [ - "110" - ], - "hot_plate_temp_initial_layer" : [ - "110" - ], - "textured_plate_temp_initial_layer" : [ - "110" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "30" - ], - "filament_max_volumetric_speed": [ - "23.2" - ], - "filament_type": [ - "PC" - ], - "filament_density": [ - "1.04" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "270" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "fan_max_speed": [ - "60" - ], - "fan_min_speed": [ - "10" - ], - "overhang_fan_threshold": [ - "25%" - ], - "overhang_fan_speed": [ - "60" - ], - "nozzle_temperature": [ - "280" - ], - "temperature_vitrification": [ - "140" - ], - "nozzle_temperature_range_low": [ - "260" - ], - "nozzle_temperature_range_high": [ - "280" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "2" - ] -} diff --git a/resources/profiles/MagicMaker/filament/fdm_filament_pet.json b/resources/profiles/MagicMaker/filament/fdm_filament_pet.json deleted file mode 100644 index 58fd5baf30..0000000000 --- a/resources/profiles/MagicMaker/filament/fdm_filament_pet.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pet", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "85" - ], - "eng_plate_temp" : [ - "85" - ], - "hot_plate_temp" : [ - "85" - ], - "textured_plate_temp" : [ - "85" - ], - "cool_plate_temp_initial_layer" : [ - "85" - ], - "eng_plate_temp_initial_layer" : [ - "85" - ], - "hot_plate_temp_initial_layer" : [ - "85" - ], - "textured_plate_temp_initial_layer" : [ - "85" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "15" - ], - "filament_max_volumetric_speed": [ - "0" - ], - "filament_type": [ - "PETG" - ], - "filament_density": [ - "1.27" - ], - "filament_cost": [ - "30" - ], - "nozzle_temperature_initial_layer": [ - "240" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "fan_max_speed": [ - "40" - ], - "fan_min_speed": [ - "20" - ], - "overhang_fan_speed": [ - "50" - ], - "nozzle_temperature": [ - "235" - ], - "temperature_vitrification": [ - "80" - ], - "nozzle_temperature_range_low": [ - "235" - ], - "nozzle_temperature_range_high": [ - "240" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ] -} diff --git a/resources/profiles/MagicMaker/filament/fdm_filament_pla.json b/resources/profiles/MagicMaker/filament/fdm_filament_pla.json deleted file mode 100644 index eb53896e67..0000000000 --- a/resources/profiles/MagicMaker/filament/fdm_filament_pla.json +++ /dev/null @@ -1,91 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pla", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "fan_cooling_layer_time": [ - "100" - ], - "filament_max_volumetric_speed": [ - "0" - ], - "filament_type": [ - "PLA" - ], - "filament_density": [ - "1.24" - ], - "filament_cost": [ - "20" - ], - "cool_plate_temp" : [ - "60" - ], - "eng_plate_temp" : [ - "60" - ], - "hot_plate_temp" : [ - "60" - ], - "textured_plate_temp" : [ - "60" - ], - "cool_plate_temp_initial_layer" : [ - "55" - ], - "eng_plate_temp_initial_layer" : [ - "55" - ], - "hot_plate_temp_initial_layer" : [ - "55" - ], - "textured_plate_temp_initial_layer" : [ - "55" - ], - "nozzle_temperature_initial_layer": [ - "205" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "overhang_fan_speed": [ - "100" - ], - "overhang_fan_threshold": [ - "50%" - ], - "close_fan_the_first_x_layers": [ - "1" - ], - "nozzle_temperature": [ - "210" - ], - "temperature_vitrification": [ - "60" - ], - "nozzle_temperature_range_low": [ - "190" - ], - "nozzle_temperature_range_high": [ - "210" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "4" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ] -} diff --git a/resources/profiles/MagicMaker/filament/fdm_filament_pva.json b/resources/profiles/MagicMaker/filament/fdm_filament_pva.json deleted file mode 100644 index 773d97da7a..0000000000 --- a/resources/profiles/MagicMaker/filament/fdm_filament_pva.json +++ /dev/null @@ -1,100 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pva", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "35" - ], - "eng_plate_temp" : [ - "0" - ], - "hot_plate_temp" : [ - "45" - ], - "textured_plate_temp" : [ - "45" - ], - "cool_plate_temp_initial_layer" : [ - "35" - ], - "eng_plate_temp_initial_layer" : [ - "0" - ], - "hot_plate_temp_initial_layer" : [ - "45" - ], - "textured_plate_temp_initial_layer" : [ - "45" - ], - "fan_cooling_layer_time": [ - "100" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "filament_soluble": [ - "1" - ], - "filament_is_support": [ - "1" - ], - "filament_type": [ - "PVA" - ], - "filament_density": [ - "1.24" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "220" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "overhang_fan_speed": [ - "100" - ], - "overhang_fan_threshold": [ - "50%" - ], - "close_fan_the_first_x_layers": [ - "1" - ], - "nozzle_temperature": [ - "220" - ], - "temperature_vitrification": [ - "50" - ], - "nozzle_temperature_range_low": [ - "190" - ], - "nozzle_temperature_range_high": [ - "250" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "4" - ], - "additional_cooling_fan_speed": [ - "70" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ] -} diff --git a/resources/profiles/MagicMaker/filament/fdm_filament_tpu.json b/resources/profiles/MagicMaker/filament/fdm_filament_tpu.json deleted file mode 100644 index c153d38516..0000000000 --- a/resources/profiles/MagicMaker/filament/fdm_filament_tpu.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_tpu", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "30" - ], - "eng_plate_temp" : [ - "30" - ], - "hot_plate_temp" : [ - "35" - ], - "textured_plate_temp" : [ - "35" - ], - "cool_plate_temp_initial_layer" : [ - "30" - ], - "eng_plate_temp_initial_layer" : [ - "30" - ], - "hot_plate_temp_initial_layer" : [ - "35" - ], - "textured_plate_temp_initial_layer" : [ - "35" - ], - "fan_cooling_layer_time": [ - "100" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "filament_type": [ - "TPU" - ], - "filament_density": [ - "1.24" - ], - "filament_cost": [ - "20" - ], - "filament_retraction_length": [ - "0.4" - ], - "nozzle_temperature_initial_layer": [ - "240" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "overhang_fan_speed": [ - "100" - ], - "additional_cooling_fan_speed": [ - "70" - ], - "close_fan_the_first_x_layers": [ - "1" - ], - "nozzle_temperature": [ - "240" - ], - "temperature_vitrification": [ - "60" - ], - "nozzle_temperature_range_low": [ - "200" - ], - "nozzle_temperature_range_high": [ - "250" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ] -} diff --git a/resources/profiles/Mellow.json b/resources/profiles/Mellow.json index ca27b7897f..5b1eca2022 100644 --- a/resources/profiles/Mellow.json +++ b/resources/profiles/Mellow.json @@ -55,84 +55,7 @@ "sub_path": "process/0.56mm Extra Draft @M1.json" } ], - "filament_list": [ - { - "name": "fdm_filament_common", - "sub_path": "filament/fdm_filament_common.json" - }, - { - "name": "fdm_filament_pla", - "sub_path": "filament/fdm_filament_pla.json" - }, - { - "name": "fdm_filament_tpu", - "sub_path": "filament/fdm_filament_tpu.json" - }, - { - "name": "fdm_filament_pet", - "sub_path": "filament/fdm_filament_pet.json" - }, - { - "name": "fdm_filament_abs", - "sub_path": "filament/fdm_filament_abs.json" - }, - { - "name": "fdm_filament_pc", - "sub_path": "filament/fdm_filament_pc.json" - }, - { - "name": "fdm_filament_asa", - "sub_path": "filament/fdm_filament_asa.json" - }, - { - "name": "fdm_filament_pva", - "sub_path": "filament/fdm_filament_pva.json" - }, - { - "name": "fdm_filament_pa", - "sub_path": "filament/fdm_filament_pa.json" - }, - { - "name": "Generic PLA @M1", - "sub_path": "filament/Generic PLA @M1.json" - }, - { - "name": "Generic PLA-CF @M1", - "sub_path": "filament/Generic PLA-CF @M1.json" - }, - { - "name": "Generic PETG @M1", - "sub_path": "filament/Generic PETG @M1.json" - }, - { - "name": "Generic ABS @M1", - "sub_path": "filament/Generic ABS @M1.json" - }, - { - "name": "Generic TPU @M1", - "sub_path": "filament/Generic TPU @M1.json" - }, - { - "name": "Generic ASA @M1", - "sub_path": "filament/Generic ASA @M1.json" - }, - { - "name": "Generic PC @M1", - "sub_path": "filament/Generic PC @M1.json" - }, - { - "name": "Generic PVA @M1", - "sub_path": "filament/Generic PVA @M1.json" - }, - { - "name": "Generic PA @M1", - "sub_path": "filament/Generic PA @M1.json" - }, - { - "name": "Generic PA-CF @M1", - "sub_path": "filament/Generic PA-CF @M1.json" - } - ], + "filament_list": [], "machine_list": [ { "name": "fdm_machine_common", @@ -159,4 +82,4 @@ "sub_path": "machine/M1 0.8 nozzle.json" } ] -} +} \ No newline at end of file diff --git a/resources/profiles/Mellow/filament/Generic ABS @M1.json b/resources/profiles/Mellow/filament/Generic ABS @M1.json deleted file mode 100644 index 8d9504ef09..0000000000 --- a/resources/profiles/Mellow/filament/Generic ABS @M1.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFB99", - "setting_id": "GFB99_m1_0", - "name": "Generic ABS @M1", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_abs", - "filament_flow_ratio": [ - "0.926" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "compatible_printers": [ - "M1 0.4 nozzle", - "M1 0.2 nozzle", - "M1 0.6 nozzle", - "M1 0.8 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/Mellow/filament/Generic ASA @M1.json b/resources/profiles/Mellow/filament/Generic ASA @M1.json deleted file mode 100644 index e98313f5c9..0000000000 --- a/resources/profiles/Mellow/filament/Generic ASA @M1.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFB98", - "setting_id": "GFB98_m1_0", - "name": "Generic ASA @M1", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_asa", - "filament_flow_ratio": [ - "0.93" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "compatible_printers": [ - "M1 0.4 nozzle", - "M1 0.2 nozzle", - "M1 0.6 nozzle", - "M1 0.8 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/Mellow/filament/Generic PA @M1.json b/resources/profiles/Mellow/filament/Generic PA @M1.json deleted file mode 100644 index bfd0833a9d..0000000000 --- a/resources/profiles/Mellow/filament/Generic PA @M1.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFN99", - "setting_id": "GFN99_m1_0", - "name": "Generic PA @M1", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pa", - "nozzle_temperature_initial_layer": [ - "280" - ], - "nozzle_temperature": [ - "280" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "compatible_printers": [ - "M1 0.4 nozzle", - "M1 0.2 nozzle", - "M1 0.6 nozzle", - "M1 0.8 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/Mellow/filament/Generic PA-CF @M1.json b/resources/profiles/Mellow/filament/Generic PA-CF @M1.json deleted file mode 100644 index 581410cdd0..0000000000 --- a/resources/profiles/Mellow/filament/Generic PA-CF @M1.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFN98", - "setting_id": "GFN98_m1_0", - "name": "Generic PA-CF @M1", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pa", - "filament_type": [ - "PA-CF" - ], - "nozzle_temperature_initial_layer": [ - "280" - ], - "nozzle_temperature": [ - "280" - ], - "filament_max_volumetric_speed": [ - "8" - ], - "compatible_printers": [ - "M1 0.4 nozzle", - "M1 0.2 nozzle", - "M1 0.6 nozzle", - "M1 0.8 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/Mellow/filament/Generic PETG @M1.json b/resources/profiles/Mellow/filament/Generic PETG @M1.json deleted file mode 100644 index f40ea0dedc..0000000000 --- a/resources/profiles/Mellow/filament/Generic PETG @M1.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFG99", - "setting_id": "GFG99_m1_0", - "name": "Generic PETG @M1", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pet", - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_cooling_layer_time": [ - "30" - ], - "overhang_fan_speed": [ - "90" - ], - "overhang_fan_threshold": [ - "25%" - ], - "fan_max_speed": [ - "90" - ], - "fan_min_speed": [ - "40" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "8" - ], - "filament_flow_ratio": [ - "0.95" - ], - "filament_max_volumetric_speed": [ - "10" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ], - "compatible_printers": [ - "M1 0.4 nozzle", - "M1 0.2 nozzle", - "M1 0.6 nozzle", - "M1 0.8 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/Mellow/filament/Generic PLA @M1.json b/resources/profiles/Mellow/filament/Generic PLA @M1.json deleted file mode 100644 index f3208bd55b..0000000000 --- a/resources/profiles/Mellow/filament/Generic PLA @M1.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFL99", - "setting_id": "GFL99_m1_0", - "name": "Generic PLA @M1", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pla", - "filament_flow_ratio": [ - "0.98" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "slow_down_layer_time": [ - "8" - ], - "compatible_printers": [ - "M1 0.4 nozzle", - "M1 0.2 nozzle", - "M1 0.6 nozzle", - "M1 0.8 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/Mellow/filament/Generic PLA-CF @M1.json b/resources/profiles/Mellow/filament/Generic PLA-CF @M1.json deleted file mode 100644 index 0b14e17f72..0000000000 --- a/resources/profiles/Mellow/filament/Generic PLA-CF @M1.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFL98", - "setting_id": "GFL98_m1_0", - "name": "Generic PLA-CF @M1", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pla", - "filament_flow_ratio": [ - "0.95" - ], - "filament_type": [ - "PLA-CF" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "slow_down_layer_time": [ - "7" - ], - "compatible_printers": [ - "M1 0.4 nozzle", - "M1 0.2 nozzle", - "M1 0.6 nozzle", - "M1 0.8 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/Mellow/filament/Generic PVA @M1.json b/resources/profiles/Mellow/filament/Generic PVA @M1.json deleted file mode 100644 index 869bbe2dc0..0000000000 --- a/resources/profiles/Mellow/filament/Generic PVA @M1.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFS99", - "setting_id": "GFS99_m1_0", - "name": "Generic PVA @M1", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pva", - "filament_flow_ratio": [ - "0.95" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "slow_down_layer_time": [ - "7" - ], - "slow_down_min_speed": [ - "10" - ], - "compatible_printers": [ - "M1 0.4 nozzle", - "M1 0.2 nozzle", - "M1 0.6 nozzle", - "M1 0.8 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/Mellow/filament/Generic TPU @M1.json b/resources/profiles/Mellow/filament/Generic TPU @M1.json deleted file mode 100644 index a891bbd20c..0000000000 --- a/resources/profiles/Mellow/filament/Generic TPU @M1.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFU99", - "setting_id": "GFU99_m1_0", - "name": "Generic TPU @M1", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_tpu", - "filament_max_volumetric_speed": [ - "3.2" - ], - "compatible_printers": [ - "M1 0.4 nozzle", - "M1 0.2 nozzle", - "M1 0.6 nozzle", - "M1 0.8 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/Mellow/filament/fdm_filament_abs.json b/resources/profiles/Mellow/filament/fdm_filament_abs.json deleted file mode 100644 index b9d4eeda31..0000000000 --- a/resources/profiles/Mellow/filament/fdm_filament_abs.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_abs", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "105" - ], - "eng_plate_temp" : [ - "105" - ], - "hot_plate_temp" : [ - "105" - ], - "textured_plate_temp" : [ - "105" - ], - "cool_plate_temp_initial_layer" : [ - "105" - ], - "eng_plate_temp_initial_layer" : [ - "105" - ], - "hot_plate_temp_initial_layer" : [ - "105" - ], - "textured_plate_temp_initial_layer" : [ - "105" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "30" - ], - "filament_max_volumetric_speed": [ - "28.6" - ], - "filament_type": [ - "ABS" - ], - "filament_density": [ - "1.04" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "260" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "fan_max_speed": [ - "80" - ], - "fan_min_speed": [ - "10" - ], - "overhang_fan_threshold": [ - "25%" - ], - "overhang_fan_speed": [ - "80" - ], - "nozzle_temperature": [ - "260" - ], - "temperature_vitrification": [ - "110" - ], - "nozzle_temperature_range_low": [ - "240" - ], - "nozzle_temperature_range_high": [ - "270" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "3" - ] -} diff --git a/resources/profiles/Mellow/filament/fdm_filament_asa.json b/resources/profiles/Mellow/filament/fdm_filament_asa.json deleted file mode 100644 index 262c561bda..0000000000 --- a/resources/profiles/Mellow/filament/fdm_filament_asa.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_asa", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "105" - ], - "eng_plate_temp" : [ - "105" - ], - "hot_plate_temp" : [ - "105" - ], - "textured_plate_temp" : [ - "105" - ], - "cool_plate_temp_initial_layer" : [ - "105" - ], - "eng_plate_temp_initial_layer" : [ - "105" - ], - "hot_plate_temp_initial_layer" : [ - "105" - ], - "textured_plate_temp_initial_layer" : [ - "105" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "35" - ], - "filament_max_volumetric_speed": [ - "28.6" - ], - "filament_type": [ - "ASA" - ], - "filament_density": [ - "1.04" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "260" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "fan_max_speed": [ - "80" - ], - "fan_min_speed": [ - "10" - ], - "overhang_fan_threshold": [ - "25%" - ], - "overhang_fan_speed": [ - "80" - ], - "nozzle_temperature": [ - "260" - ], - "temperature_vitrification": [ - "110" - ], - "nozzle_temperature_range_low": [ - "240" - ], - "nozzle_temperature_range_high": [ - "270" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "3" - ] -} diff --git a/resources/profiles/Mellow/filament/fdm_filament_common.json b/resources/profiles/Mellow/filament/fdm_filament_common.json deleted file mode 100644 index 9f77975119..0000000000 --- a/resources/profiles/Mellow/filament/fdm_filament_common.json +++ /dev/null @@ -1,144 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_common", - "from": "system", - "instantiation": "false", - "cool_plate_temp" : [ - "60" - ], - "eng_plate_temp" : [ - "60" - ], - "hot_plate_temp" : [ - "60" - ], - "textured_plate_temp" : [ - "60" - ], - "cool_plate_temp_initial_layer" : [ - "60" - ], - "eng_plate_temp_initial_layer" : [ - "60" - ], - "hot_plate_temp_initial_layer" : [ - "60" - ], - "textured_plate_temp_initial_layer" : [ - "60" - ], - "overhang_fan_threshold": [ - "95%" - ], - "overhang_fan_speed": [ - "100" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "filament_end_gcode": [ - "; filament end gcode \n" - ], - "filament_flow_ratio": [ - "1" - ], - "reduce_fan_stop_start_freq": [ - "0" - ], - "fan_cooling_layer_time": [ - "60" - ], - "filament_cost": [ - "0" - ], - "filament_density": [ - "0" - ], - "filament_deretraction_speed": [ - "nil" - ], - "filament_diameter": [ - "1.75" - ], - "filament_max_volumetric_speed": [ - "0" - ], - "filament_minimal_purge_on_wipe_tower": [ - "15" - ], - "filament_retraction_minimum_travel": [ - "nil" - ], - "filament_retract_before_wipe": [ - "nil" - ], - "filament_retract_when_changing_layer": [ - "nil" - ], - "filament_retraction_length": [ - "nil" - ], - "filament_z_hop": [ - "nil" - ], - "filament_z_hop_types": [ - "nil" - ], - "filament_retract_restart_extra": [ - "nil" - ], - "filament_retraction_speed": [ - "nil" - ], - "filament_settings_id": [ - "" - ], - "filament_soluble": [ - "0" - ], - "filament_type": [ - "PLA" - ], - "filament_vendor": [ - "Generic" - ], - "filament_wipe": [ - "nil" - ], - "filament_wipe_distance": [ - "nil" - ], - "bed_type": [ - "Cool Plate" - ], - "nozzle_temperature_initial_layer": [ - "200" - ], - "full_fan_speed_layer": [ - "0" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "35" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "8" - ], - "filament_start_gcode": [ - "; Filament gcode\n" - ], - "nozzle_temperature": [ - "200" - ], - "temperature_vitrification": [ - "100" - ] -} diff --git a/resources/profiles/Mellow/filament/fdm_filament_pa.json b/resources/profiles/Mellow/filament/fdm_filament_pa.json deleted file mode 100644 index 58f53cd451..0000000000 --- a/resources/profiles/Mellow/filament/fdm_filament_pa.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pa", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "0" - ], - "eng_plate_temp" : [ - "100" - ], - "hot_plate_temp" : [ - "100" - ], - "textured_plate_temp" : [ - "100" - ], - "cool_plate_temp_initial_layer" : [ - "0" - ], - "eng_plate_temp_initial_layer" : [ - "100" - ], - "hot_plate_temp_initial_layer" : [ - "100" - ], - "textured_plate_temp_initial_layer" : [ - "100" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "4" - ], - "filament_max_volumetric_speed": [ - "8" - ], - "filament_type": [ - "PA" - ], - "filament_density": [ - "1.04" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "290" - ], - "reduce_fan_stop_start_freq": [ - "0" - ], - "fan_max_speed": [ - "60" - ], - "fan_min_speed": [ - "0" - ], - "overhang_fan_speed": [ - "30" - ], - "nozzle_temperature": [ - "290" - ], - "temperature_vitrification": [ - "108" - ], - "nozzle_temperature_range_low": [ - "270" - ], - "nozzle_temperature_range_high": [ - "300" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "2" - ] -} diff --git a/resources/profiles/Mellow/filament/fdm_filament_pc.json b/resources/profiles/Mellow/filament/fdm_filament_pc.json deleted file mode 100644 index cec8b89a38..0000000000 --- a/resources/profiles/Mellow/filament/fdm_filament_pc.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pc", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "0" - ], - "eng_plate_temp" : [ - "110" - ], - "hot_plate_temp" : [ - "110" - ], - "textured_plate_temp" : [ - "110" - ], - "cool_plate_temp_initial_layer" : [ - "0" - ], - "eng_plate_temp_initial_layer" : [ - "110" - ], - "hot_plate_temp_initial_layer" : [ - "110" - ], - "textured_plate_temp_initial_layer" : [ - "110" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "30" - ], - "filament_max_volumetric_speed": [ - "23.2" - ], - "filament_type": [ - "PC" - ], - "filament_density": [ - "1.04" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "270" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "fan_max_speed": [ - "60" - ], - "fan_min_speed": [ - "10" - ], - "overhang_fan_threshold": [ - "25%" - ], - "overhang_fan_speed": [ - "60" - ], - "nozzle_temperature": [ - "280" - ], - "temperature_vitrification": [ - "140" - ], - "nozzle_temperature_range_low": [ - "260" - ], - "nozzle_temperature_range_high": [ - "280" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "2" - ] -} diff --git a/resources/profiles/Mellow/filament/fdm_filament_pet.json b/resources/profiles/Mellow/filament/fdm_filament_pet.json deleted file mode 100644 index bb2323e9c1..0000000000 --- a/resources/profiles/Mellow/filament/fdm_filament_pet.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pet", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "60" - ], - "eng_plate_temp" : [ - "0" - ], - "hot_plate_temp" : [ - "80" - ], - "textured_plate_temp" : [ - "80" - ], - "cool_plate_temp_initial_layer" : [ - "60" - ], - "eng_plate_temp_initial_layer" : [ - "0" - ], - "hot_plate_temp_initial_layer" : [ - "80" - ], - "textured_plate_temp_initial_layer" : [ - "80" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "20" - ], - "filament_max_volumetric_speed": [ - "25" - ], - "filament_type": [ - "PETG" - ], - "filament_density": [ - "1.27" - ], - "filament_cost": [ - "30" - ], - "nozzle_temperature_initial_layer": [ - "255" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "20" - ], - "overhang_fan_speed": [ - "100" - ], - "nozzle_temperature": [ - "255" - ], - "temperature_vitrification": [ - "80" - ], - "nozzle_temperature_range_low": [ - "220" - ], - "nozzle_temperature_range_high": [ - "260" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ] -} diff --git a/resources/profiles/Mellow/filament/fdm_filament_pla.json b/resources/profiles/Mellow/filament/fdm_filament_pla.json deleted file mode 100644 index 82c6772f35..0000000000 --- a/resources/profiles/Mellow/filament/fdm_filament_pla.json +++ /dev/null @@ -1,94 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pla", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "fan_cooling_layer_time": [ - "100" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "filament_type": [ - "PLA" - ], - "filament_density": [ - "1.24" - ], - "filament_cost": [ - "20" - ], - "cool_plate_temp" : [ - "60" - ], - "eng_plate_temp" : [ - "60" - ], - "hot_plate_temp" : [ - "60" - ], - "textured_plate_temp" : [ - "60" - ], - "cool_plate_temp_initial_layer" : [ - "60" - ], - "eng_plate_temp_initial_layer" : [ - "60" - ], - "hot_plate_temp_initial_layer" : [ - "60" - ], - "textured_plate_temp_initial_layer" : [ - "60" - ], - "nozzle_temperature_initial_layer": [ - "220" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "overhang_fan_speed": [ - "100" - ], - "overhang_fan_threshold": [ - "50%" - ], - "close_fan_the_first_x_layers": [ - "1" - ], - "nozzle_temperature": [ - "220" - ], - "temperature_vitrification": [ - "60" - ], - "nozzle_temperature_range_low": [ - "190" - ], - "nozzle_temperature_range_high": [ - "230" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "4" - ], - "additional_cooling_fan_speed": [ - "70" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ] -} diff --git a/resources/profiles/Mellow/filament/fdm_filament_pva.json b/resources/profiles/Mellow/filament/fdm_filament_pva.json deleted file mode 100644 index ebf25aa3ae..0000000000 --- a/resources/profiles/Mellow/filament/fdm_filament_pva.json +++ /dev/null @@ -1,100 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pva", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "35" - ], - "eng_plate_temp" : [ - "0" - ], - "hot_plate_temp" : [ - "45" - ], - "textured_plate_temp" : [ - "45" - ], - "cool_plate_temp_initial_layer" : [ - "35" - ], - "eng_plate_temp_initial_layer" : [ - "0" - ], - "hot_plate_temp_initial_layer" : [ - "45" - ], - "textured_plate_temp_initial_layer" : [ - "45" - ], - "fan_cooling_layer_time": [ - "100" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "filament_soluble": [ - "1" - ], - "filament_is_support": [ - "1" - ], - "filament_type": [ - "PVA" - ], - "filament_density": [ - "1.24" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "220" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "overhang_fan_speed": [ - "100" - ], - "overhang_fan_threshold": [ - "50%" - ], - "close_fan_the_first_x_layers": [ - "1" - ], - "nozzle_temperature": [ - "220" - ], - "temperature_vitrification": [ - "50" - ], - "nozzle_temperature_range_low": [ - "190" - ], - "nozzle_temperature_range_high": [ - "250" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "4" - ], - "additional_cooling_fan_speed": [ - "70" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ] -} diff --git a/resources/profiles/Mellow/filament/fdm_filament_tpu.json b/resources/profiles/Mellow/filament/fdm_filament_tpu.json deleted file mode 100644 index d00b7dbcab..0000000000 --- a/resources/profiles/Mellow/filament/fdm_filament_tpu.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_tpu", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "30" - ], - "eng_plate_temp" : [ - "30" - ], - "hot_plate_temp" : [ - "35" - ], - "textured_plate_temp" : [ - "35" - ], - "cool_plate_temp_initial_layer" : [ - "30" - ], - "eng_plate_temp_initial_layer" : [ - "30" - ], - "hot_plate_temp_initial_layer" : [ - "35" - ], - "textured_plate_temp_initial_layer" : [ - "35" - ], - "fan_cooling_layer_time": [ - "100" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "filament_type": [ - "TPU" - ], - "filament_density": [ - "1.24" - ], - "filament_cost": [ - "20" - ], - "filament_retraction_length": [ - "0.4" - ], - "nozzle_temperature_initial_layer": [ - "240" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "overhang_fan_speed": [ - "100" - ], - "additional_cooling_fan_speed": [ - "70" - ], - "close_fan_the_first_x_layers": [ - "1" - ], - "nozzle_temperature": [ - "240" - ], - "temperature_vitrification": [ - "60" - ], - "nozzle_temperature_range_low": [ - "200" - ], - "nozzle_temperature_range_high": [ - "250" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ] -} diff --git a/resources/profiles/Mellow/machine/fdm_common_M1.json b/resources/profiles/Mellow/machine/fdm_common_M1.json index be2c1976fd..ac5a32f744 100644 --- a/resources/profiles/Mellow/machine/fdm_common_M1.json +++ b/resources/profiles/Mellow/machine/fdm_common_M1.json @@ -34,7 +34,7 @@ "retraction_minimum_travel": ["1"], "retract_before_wipe": ["70%"], "retract_when_changing_layer": ["1"], - "retraction_length": ["2.9"], + "retraction_length": ["0.6"], "retract_length_toolchange": ["2"], "z_hop": ["0.4"], "retract_restart_extra": ["0"], diff --git a/resources/profiles/Mellow/machine/fdm_machine_common.json b/resources/profiles/Mellow/machine/fdm_machine_common.json index bfb6b23e1a..1d35eb33bf 100644 --- a/resources/profiles/Mellow/machine/fdm_machine_common.json +++ b/resources/profiles/Mellow/machine/fdm_machine_common.json @@ -88,7 +88,7 @@ "1" ], "retraction_length": [ - "5" + "1" ], "retract_length_toolchange": [ "1" diff --git a/resources/profiles/OrcaArena/machine/fdm_machine_common.json b/resources/profiles/OrcaArena/machine/fdm_machine_common.json index 7552d1251f..9b9c5179d4 100644 --- a/resources/profiles/OrcaArena/machine/fdm_machine_common.json +++ b/resources/profiles/OrcaArena/machine/fdm_machine_common.json @@ -88,7 +88,7 @@ "1" ], "retraction_length": [ - "5" + "1" ], "retract_length_toolchange": [ "1" diff --git a/resources/profiles/OrcaFilamentLibrary.json b/resources/profiles/OrcaFilamentLibrary.json new file mode 100644 index 0000000000..5e73b5d28a --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary.json @@ -0,0 +1,716 @@ +{ + "name": "OrcaFilamentLibrary", + "version": "02.02.00.04", + "force_update": "0", + "description": "Orca Filament Library", + "filament_list": [ + { + "name": "fdm_filament_common", + "sub_path": "filament/base/fdm_filament_common.json" + }, + { + "name": "fdm_filament_abs", + "sub_path": "filament/base/fdm_filament_abs.json" + }, + { + "name": "fdm_filament_asa", + "sub_path": "filament/base/fdm_filament_asa.json" + }, + { + "name": "fdm_filament_bvoh", + "sub_path": "filament/base/fdm_filament_bvoh.json" + }, + { + "name": "fdm_filament_eva", + "sub_path": "filament/base/fdm_filament_eva.json" + }, + { + "name": "fdm_filament_hips", + "sub_path": "filament/base/fdm_filament_hips.json" + }, + { + "name": "fdm_filament_pa", + "sub_path": "filament/base/fdm_filament_pa.json" + }, + { + "name": "fdm_filament_pc", + "sub_path": "filament/base/fdm_filament_pc.json" + }, + { + "name": "fdm_filament_pctg", + "sub_path": "filament/base/fdm_filament_pctg.json" + }, + { + "name": "fdm_filament_pe", + "sub_path": "filament/base/fdm_filament_pe.json" + }, + { + "name": "fdm_filament_pet", + "sub_path": "filament/base/fdm_filament_pet.json" + }, + { + "name": "fdm_filament_pha", + "sub_path": "filament/base/fdm_filament_pha.json" + }, + { + "name": "fdm_filament_pla", + "sub_path": "filament/base/fdm_filament_pla.json" + }, + { + "name": "fdm_filament_pp", + "sub_path": "filament/base/fdm_filament_pp.json" + }, + { + "name": "fdm_filament_ppa", + "sub_path": "filament/base/fdm_filament_ppa.json" + }, + { + "name": "fdm_filament_pps", + "sub_path": "filament/base/fdm_filament_pps.json" + }, + { + "name": "fdm_filament_pva", + "sub_path": "filament/base/fdm_filament_pva.json" + }, + { + "name": "fdm_filament_sbs", + "sub_path": "filament/base/fdm_filament_sbs.json" + }, + { + "name": "fdm_filament_tpu", + "sub_path": "filament/base/fdm_filament_tpu.json" + }, + { + "name": "Bambu ABS @base", + "sub_path": "filament/Bambu/Bambu ABS @base.json" + }, + { + "name": "Bambu ABS-GF @base", + "sub_path": "filament/Bambu/Bambu ABS-GF @base.json" + }, + { + "name": "Bambu Support for ABS @base", + "sub_path": "filament/Bambu/Bambu Support for ABS @base.json" + }, + { + "name": "Generic ABS @System", + "sub_path": "filament/Generic ABS @System.json" + }, + { + "name": "PolyLite ABS @base", + "sub_path": "filament/Polymaker/PolyLite ABS @base.json" + }, + { + "name": "Bambu ASA @base", + "sub_path": "filament/Bambu/Bambu ASA @base.json" + }, + { + "name": "Bambu ASA-Aero @base", + "sub_path": "filament/Bambu/Bambu ASA-Aero @base.json" + }, + { + "name": "Bambu ASA-CF @base", + "sub_path": "filament/Bambu/Bambu ASA-CF @base.json" + }, + { + "name": "Generic ASA @System", + "sub_path": "filament/Generic ASA @System.json" + }, + { + "name": "PolyLite ASA @base", + "sub_path": "filament/Polymaker/PolyLite ASA @base.json" + }, + { + "name": "Generic BVOH @System", + "sub_path": "filament/Generic BVOH @System.json" + }, + { + "name": "Generic EVA @System", + "sub_path": "filament/Generic EVA @System.json" + }, + { + "name": "Generic HIPS @System", + "sub_path": "filament/Generic HIPS @System.json" + }, + { + "name": "Bambu PA-CF @base", + "sub_path": "filament/Bambu/Bambu PA-CF @base.json" + }, + { + "name": "Bambu PA6-CF @base", + "sub_path": "filament/Bambu/Bambu PA6-CF @base.json" + }, + { + "name": "Bambu PA6-GF @base", + "sub_path": "filament/Bambu/Bambu PA6-GF @base.json" + }, + { + "name": "Bambu PAHT-CF @base", + "sub_path": "filament/Bambu/Bambu PAHT-CF @base.json" + }, + { + "name": "Bambu Support For PA/PET @base", + "sub_path": "filament/Bambu/Bambu Support For PA PET @base.json" + }, + { + "name": "Bambu Support G @base", + "sub_path": "filament/Bambu/Bambu Support G @base.json" + }, + { + "name": "Fiberon PA12-CF @base", + "sub_path": "filament/Polymaker/Fiberon PA12-CF @base.json" + }, + { + "name": "Fiberon PA6-CF @base", + "sub_path": "filament/Polymaker/Fiberon PA6-CF @base.json" + }, + { + "name": "Fiberon PA6-GF @base", + "sub_path": "filament/Polymaker/Fiberon PA6-GF @base.json" + }, + { + "name": "Fiberon PA612-CF @base", + "sub_path": "filament/Polymaker/Fiberon PA612-CF @base.json" + }, + { + "name": "Generic PA @System", + "sub_path": "filament/Generic PA @System.json" + }, + { + "name": "Generic PA-CF @System", + "sub_path": "filament/Generic PA-CF @System.json" + }, + { + "name": "Bambu PC @base", + "sub_path": "filament/Bambu/Bambu PC @base.json" + }, + { + "name": "Bambu PC FR @base", + "sub_path": "filament/Bambu/Bambu PC FR @base.json" + }, + { + "name": "Generic PC @System", + "sub_path": "filament/Generic PC @System.json" + }, + { + "name": "Generic PCTG @System", + "sub_path": "filament/Generic PCTG @System.json" + }, + { + "name": "Generic PE @System", + "sub_path": "filament/Generic PE @System.json" + }, + { + "name": "Generic PE-CF @System", + "sub_path": "filament/Generic PE-CF @System.json" + }, + { + "name": "Bambu PET-CF @base", + "sub_path": "filament/Bambu/Bambu PET-CF @base.json" + }, + { + "name": "Bambu PETG Basic @base", + "sub_path": "filament/Bambu/Bambu PETG Basic @base.json" + }, + { + "name": "Bambu PETG HF @base", + "sub_path": "filament/Bambu/Bambu PETG HF @base.json" + }, + { + "name": "Bambu PETG Translucent @base", + "sub_path": "filament/Bambu/Bambu PETG Translucent @base.json" + }, + { + "name": "Bambu PETG-CF @base", + "sub_path": "filament/Bambu/Bambu PETG-CF @base.json" + }, + { + "name": "Fiberon PET-CF @base", + "sub_path": "filament/Polymaker/Fiberon PET-CF @base.json" + }, + { + "name": "Fiberon PETG-ESD @base", + "sub_path": "filament/Polymaker/Fiberon PETG-ESD @base.json" + }, + { + "name": "Fiberon PETG-rCF @base", + "sub_path": "filament/Polymaker/Fiberon PETG-rCF @base.json" + }, + { + "name": "Generic PETG @System", + "sub_path": "filament/Generic PETG @System.json" + }, + { + "name": "Generic PETG HF @System", + "sub_path": "filament/Generic PETG HF @System.json" + }, + { + "name": "Generic PETG-CF @System", + "sub_path": "filament/Generic PETG-CF @System.json" + }, + { + "name": "PolyLite PETG @base", + "sub_path": "filament/Polymaker/PolyLite PETG @base.json" + }, + { + "name": "SUNLU PETG @base", + "sub_path": "filament/SUNLU/SUNLU PETG @base.json" + }, + { + "name": "Generic PHA @System", + "sub_path": "filament/Generic PHA @System.json" + }, + { + "name": "Bambu PLA Aero @base", + "sub_path": "filament/Bambu/Bambu PLA Aero @base.json" + }, + { + "name": "Bambu PLA Basic @base", + "sub_path": "filament/Bambu/Bambu PLA Basic @base.json" + }, + { + "name": "Bambu PLA Dynamic @base", + "sub_path": "filament/Bambu/Bambu PLA Dynamic @base.json" + }, + { + "name": "Bambu PLA Galaxy @base", + "sub_path": "filament/Bambu/Bambu PLA Galaxy @base.json" + }, + { + "name": "Bambu PLA Glow @base", + "sub_path": "filament/Bambu/Bambu PLA Glow @base.json" + }, + { + "name": "Bambu PLA Impact @base", + "sub_path": "filament/Bambu/Bambu PLA Impact @base.json" + }, + { + "name": "Bambu PLA Marble @base", + "sub_path": "filament/Bambu/Bambu PLA Marble @base.json" + }, + { + "name": "Bambu PLA Matte @base", + "sub_path": "filament/Bambu/Bambu PLA Matte @base.json" + }, + { + "name": "Bambu PLA Metal @base", + "sub_path": "filament/Bambu/Bambu PLA Metal @base.json" + }, + { + "name": "Bambu PLA Silk @base", + "sub_path": "filament/Bambu/Bambu PLA Silk @base.json" + }, + { + "name": "Bambu PLA Silk+ @base", + "sub_path": "filament/Bambu/Bambu PLA Silk+ @base.json" + }, + { + "name": "Bambu PLA Sparkle @base", + "sub_path": "filament/Bambu/Bambu PLA Sparkle @base.json" + }, + { + "name": "Bambu PLA Tough @base", + "sub_path": "filament/Bambu/Bambu PLA Tough @base.json" + }, + { + "name": "Bambu PLA Wood @base", + "sub_path": "filament/Bambu/Bambu PLA Wood @base.json" + }, + { + "name": "Bambu PLA-CF @base", + "sub_path": "filament/Bambu/Bambu PLA-CF @base.json" + }, + { + "name": "Bambu Support For PLA @base", + "sub_path": "filament/Bambu/Bambu Support For PLA @base.json" + }, + { + "name": "Bambu Support For PLA/PETG @base", + "sub_path": "filament/Bambu/Bambu Support For PLA-PETG @base.json" + }, + { + "name": "Bambu Support W @base", + "sub_path": "filament/Bambu/Bambu Support W @base.json" + }, + { + "name": "Generic PLA @System", + "sub_path": "filament/Generic PLA @System.json" + }, + { + "name": "Generic PLA High Speed @System", + "sub_path": "filament/Generic PLA High Speed @System.json" + }, + { + "name": "Generic PLA Matte @System", + "sub_path": "filament/Generic PLA Matte @System.json" + }, + { + "name": "Generic PLA-CF @System", + "sub_path": "filament/Generic PLA-CF @System.json" + }, + { + "name": "Overture Matte PLA @base", + "sub_path": "filament/Overture/Overture Matte PLA @base.json" + }, + { + "name": "Overture PLA @base", + "sub_path": "filament/Overture/Overture PLA @base.json" + }, + { + "name": "PolyLite PLA @base", + "sub_path": "filament/Polymaker/PolyLite PLA @base.json" + }, + { + "name": "PolyTerra PLA @base", + "sub_path": "filament/Polymaker/PolyTerra PLA @base.json" + }, + { + "name": "SUNLU PLA Marble @base", + "sub_path": "filament/SUNLU/SUNLU Marble PLA @base.json" + }, + { + "name": "SUNLU PLA Matte @base", + "sub_path": "filament/SUNLU/SUNLU PLA Matte @base.json" + }, + { + "name": "SUNLU PLA+ 2.0 @base", + "sub_path": "filament/SUNLU/SUNLU PLA+ 2.0 @base.json" + }, + { + "name": "SUNLU PLA+ @base", + "sub_path": "filament/SUNLU/SUNLU PLA+ @base.json" + }, + { + "name": "SUNLU Silk PLA+ @base", + "sub_path": "filament/SUNLU/SUNLU Silk PLA+ @base.json" + }, + { + "name": "SUNLU Wood PLA @base", + "sub_path": "filament/SUNLU/SUNLU Wood PLA @base.json" + }, + { + "name": "eSUN PLA+ @base", + "sub_path": "filament/eSUN/eSUN PLA+ @base.json" + }, + { + "name": "fdm_filament_pla_silk", + "sub_path": "filament/base/fdm_filament_pla_silk.json" + }, + { + "name": "Generic PP @System", + "sub_path": "filament/Generic PP @System.json" + }, + { + "name": "Generic PP-CF @System", + "sub_path": "filament/Generic PP-CF @System.json" + }, + { + "name": "Generic PP-GF @System", + "sub_path": "filament/Generic PP-GF @System.json" + }, + { + "name": "Bambu PPA-CF @base", + "sub_path": "filament/Bambu/Bambu PPA-CF @base.json" + }, + { + "name": "Generic PPA-CF @System", + "sub_path": "filament/Generic PPA-CF @System.json" + }, + { + "name": "Generic PPA-GF @System", + "sub_path": "filament/Generic PPA-GF @System.json" + }, + { + "name": "Bambu PPS-CF @base", + "sub_path": "filament/Bambu/Bambu PPS-CF @base.json" + }, + { + "name": "Bambu PVA @base", + "sub_path": "filament/Bambu/Bambu PVA @base.json" + }, + { + "name": "Generic PVA @System", + "sub_path": "filament/Generic PVA @System.json" + }, + { + "name": "Generic SBS @System", + "sub_path": "filament/Generic SBS @System.json" + }, + { + "name": "Bambu TPU 95A @base", + "sub_path": "filament/Bambu/Bambu TPU 95A @base.json" + }, + { + "name": "Bambu TPU 95A HF @base", + "sub_path": "filament/Bambu/Bambu TPU 95A HF @base.json" + }, + { + "name": "Generic TPU @System", + "sub_path": "filament/Generic TPU @System.json" + }, + { + "name": "Bambu ABS @System", + "sub_path": "filament/Bambu/Bambu ABS @System.json" + }, + { + "name": "Bambu ABS-GF @System", + "sub_path": "filament/Bambu/Bambu ABS-GF @System.json" + }, + { + "name": "Bambu Support for ABS @System", + "sub_path": "filament/Bambu/Bambu Support for ABS @System.json" + }, + { + "name": "PolyLite ABS @System", + "sub_path": "filament/Polymaker/PolyLite ABS @System.json" + }, + { + "name": "Bambu ASA @System", + "sub_path": "filament/Bambu/Bambu ASA @System.json" + }, + { + "name": "Bambu ASA-Aero @System", + "sub_path": "filament/Bambu/Bambu ASA-Aero @System.json" + }, + { + "name": "Bambu ASA-CF @System", + "sub_path": "filament/Bambu/Bambu ASA-CF @System.json" + }, + { + "name": "PolyLite ASA @System", + "sub_path": "filament/Polymaker/PolyLite ASA @System.json" + }, + { + "name": "Bambu PA-CF @System", + "sub_path": "filament/Bambu/Bambu PA-CF @System.json" + }, + { + "name": "Bambu PA6-CF @System", + "sub_path": "filament/Bambu/Bambu PA6-CF @System.json" + }, + { + "name": "Bambu PA6-GF @System", + "sub_path": "filament/Bambu/Bambu PA6-GF @System.json" + }, + { + "name": "Bambu PAHT-CF @System", + "sub_path": "filament/Bambu/Bambu PAHT-CF @System.json" + }, + { + "name": "Bambu Support For PA/PET @System", + "sub_path": "filament/Bambu/Bambu Support For PA PET @System.json" + }, + { + "name": "Bambu Support G @System", + "sub_path": "filament/Bambu/Bambu Support G @System.json" + }, + { + "name": "Fiberon PA12-CF @System", + "sub_path": "filament/Polymaker/Fiberon PA12-CF @System.json" + }, + { + "name": "Fiberon PA6-CF @System", + "sub_path": "filament/Polymaker/Fiberon PA6-CF @System.json" + }, + { + "name": "Fiberon PA6-GF @System", + "sub_path": "filament/Polymaker/Fiberon PA6-GF @System.json" + }, + { + "name": "Fiberon PA612-CF @System", + "sub_path": "filament/Polymaker/Fiberon PA612-CF @System.json" + }, + { + "name": "Bambu PC @System", + "sub_path": "filament/Bambu/Bambu PC @System.json" + }, + { + "name": "Bambu PC FR @System", + "sub_path": "filament/Bambu/Bambu PC FR @System.json" + }, + { + "name": "Bambu PET-CF @System", + "sub_path": "filament/Bambu/Bambu PET-CF @System.json" + }, + { + "name": "Bambu PETG Basic @System", + "sub_path": "filament/Bambu/Bambu PETG Basic @System.json" + }, + { + "name": "Bambu PETG HF @System", + "sub_path": "filament/Bambu/Bambu PETG HF @System.json" + }, + { + "name": "Bambu PETG Translucent @System", + "sub_path": "filament/Bambu/Bambu PETG Translucent @System.json" + }, + { + "name": "Bambu PETG-CF @System", + "sub_path": "filament/Bambu/Bambu PETG-CF @System.json" + }, + { + "name": "Fiberon PET-CF @System", + "sub_path": "filament/Polymaker/Fiberon PET-CF @System.json" + }, + { + "name": "Fiberon PETG-ESD @System", + "sub_path": "filament/Polymaker/Fiberon PETG-ESD @System.json" + }, + { + "name": "Fiberon PETG-rCF @System", + "sub_path": "filament/Polymaker/Fiberon PETG-rCF @System.json" + }, + { + "name": "PolyLite PETG @System", + "sub_path": "filament/Polymaker/PolyLite PETG @System.json" + }, + { + "name": "SUNLU PETG @System", + "sub_path": "filament/SUNLU/SUNLU PETG @System.json" + }, + { + "name": "Bambu PLA Aero @System", + "sub_path": "filament/Bambu/Bambu PLA Aero @System.json" + }, + { + "name": "Bambu PLA Basic @System", + "sub_path": "filament/Bambu/Bambu PLA Basic @System.json" + }, + { + "name": "Bambu PLA Dynamic @System", + "sub_path": "filament/Bambu/Bambu PLA Dynamic @System.json" + }, + { + "name": "Bambu PLA Galaxy @System", + "sub_path": "filament/Bambu/Bambu PLA Galaxy @System.json" + }, + { + "name": "Bambu PLA Glow @System", + "sub_path": "filament/Bambu/Bambu PLA Glow @System.json" + }, + { + "name": "Bambu PLA Impact @System", + "sub_path": "filament/Bambu/Bambu PLA Impact @System.json" + }, + { + "name": "Bambu PLA Marble @System", + "sub_path": "filament/Bambu/Bambu PLA Marble @System.json" + }, + { + "name": "Bambu PLA Matte @System", + "sub_path": "filament/Bambu/Bambu PLA Matte @System.json" + }, + { + "name": "Bambu PLA Metal @System", + "sub_path": "filament/Bambu/Bambu PLA Metal @System.json" + }, + { + "name": "Bambu PLA Silk @System", + "sub_path": "filament/Bambu/Bambu PLA Silk @System.json" + }, + { + "name": "Bambu PLA Silk+ @System", + "sub_path": "filament/Bambu/Bambu PLA Silk+ @System.json" + }, + { + "name": "Bambu PLA Sparkle @System", + "sub_path": "filament/Bambu/Bambu PLA Sparkle @System.json" + }, + { + "name": "Bambu PLA Tough @System", + "sub_path": "filament/Bambu/Bambu PLA Tough @System.json" + }, + { + "name": "Bambu PLA Wood @System", + "sub_path": "filament/Bambu/Bambu PLA Wood @System.json" + }, + { + "name": "Bambu PLA-CF @System", + "sub_path": "filament/Bambu/Bambu PLA-CF @System.json" + }, + { + "name": "Bambu Support For PLA @System", + "sub_path": "filament/Bambu/Bambu Support For PLA @System.json" + }, + { + "name": "Bambu Support For PLA/PETG @System", + "sub_path": "filament/Bambu/Bambu Support For PLA-PETG @System.json" + }, + { + "name": "Bambu Support W @System", + "sub_path": "filament/Bambu/Bambu Support W @System.json" + }, + { + "name": "Overture Matte PLA @System", + "sub_path": "filament/Overture/Overture Matte PLA @System.json" + }, + { + "name": "Overture PLA @System", + "sub_path": "filament/Overture/Overture PLA @System.json" + }, + { + "name": "PolyLite Dual PLA @System", + "sub_path": "filament/Polymaker/PolyLite Dual PLA @System.json" + }, + { + "name": "PolyLite PLA @System", + "sub_path": "filament/Polymaker/PolyLite PLA @System.json" + }, + { + "name": "PolyTerra Dual PLA @System", + "sub_path": "filament/Polymaker/PolyTerra Dual PLA @System.json" + }, + { + "name": "PolyTerra PLA @System", + "sub_path": "filament/Polymaker/PolyTerra PLA @System.json" + }, + { + "name": "SUNLU PLA Marble @System", + "sub_path": "filament/SUNLU/SUNLU Marble PLA @System.json" + }, + { + "name": "SUNLU PLA Matte @System", + "sub_path": "filament/SUNLU/SUNLU PLA Matte @System.json" + }, + { + "name": "SUNLU PLA+ 2.0 @System", + "sub_path": "filament/SUNLU/SUNLU PLA+ 2.0 @System.json" + }, + { + "name": "SUNLU PLA+ @System", + "sub_path": "filament/SUNLU/SUNLU PLA+ @System.json" + }, + { + "name": "SUNLU Silk PLA+ @System", + "sub_path": "filament/SUNLU/SUNLU Silk PLA+ @System.json" + }, + { + "name": "SUNLU Wood PLA @System", + "sub_path": "filament/SUNLU/SUNLU Wood PLA @System.json" + }, + { + "name": "eSUN PLA+ @System", + "sub_path": "filament/eSUN/eSUN PLA+ @System.json" + }, + { + "name": "Generic PLA Silk @System", + "sub_path": "filament/Generic PLA Silk @System.json" + }, + { + "name": "Bambu PPA-CF @System", + "sub_path": "filament/Bambu/Bambu PPA-CF @System.json" + }, + { + "name": "Bambu PVA @System", + "sub_path": "filament/Bambu/Bambu PVA @System.json" + }, + { + "name": "Bambu TPU 95A @System", + "sub_path": "filament/Bambu/Bambu TPU 95A @System.json" + }, + { + "name": "Bambu TPU 95A HF @System", + "sub_path": "filament/Bambu/Bambu TPU 95A HF @System.json" + } + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu ABS @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu ABS @System.json new file mode 100644 index 0000000000..f4b66a3460 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu ABS @System.json @@ -0,0 +1,24 @@ +{ + "type": "filament", + "name": "Bambu ABS @System", + "inherits": "Bambu ABS @base", + "from": "system", + "setting_id": "OGFSB00", + "instantiation": "true", + "fan_max_speed": [ + "60" + ], + "filament_long_retractions_when_cut": [ + "1" + ], + "filament_max_volumetric_speed": [ + "16" + ], + "filament_retraction_distances_when_cut": [ + "18" + ], + "slow_down_layer_time": [ + "12" + ], + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu ABS @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu ABS @base.json new file mode 100644 index 0000000000..f5d8680b06 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu ABS @base.json @@ -0,0 +1,18 @@ +{ + "type": "filament", + "name": "Bambu ABS @base", + "inherits": "fdm_filament_abs", + "from": "system", + "filament_id": "GFB00", + "instantiation": "false", + "description": "When printing this filament, there's a risk of warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.", + "filament_cost": [ + "24.99" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_vendor": [ + "Bambu Lab" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu ABS-GF @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu ABS-GF @System.json new file mode 100644 index 0000000000..a424cf4e98 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu ABS-GF @System.json @@ -0,0 +1,15 @@ +{ + "type": "filament", + "name": "Bambu ABS-GF @System", + "inherits": "Bambu ABS-GF @base", + "from": "system", + "setting_id": "OGFSB50_00", + "instantiation": "true", + "filament_long_retractions_when_cut": [ + "1" + ], + "filament_retraction_distances_when_cut": [ + "18" + ], + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu ABS-GF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu ABS-GF @base.json new file mode 100644 index 0000000000..a67aa45465 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu ABS-GF @base.json @@ -0,0 +1,42 @@ +{ + "type": "filament", + "name": "Bambu ABS-GF @base", + "inherits": "fdm_filament_abs", + "from": "system", + "filament_id": "GFB50", + "instantiation": "false", + "description": "When printing this filament, there's a risk of nozzle clogging, oozing, warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.", + "fan_cooling_layer_time": [ + "12" + ], + "fan_max_speed": [ + "30" + ], + "filament_cost": [ + "29.99" + ], + "filament_density": [ + "1.08" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_type": [ + "ABS-GF" + ], + "filament_vendor": [ + "Bambu Lab" + ], + "overhang_fan_speed": [ + "30" + ], + "overhang_fan_threshold": [ + "10%" + ], + "slow_down_layer_time": [ + "4" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu ASA @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu ASA @System.json new file mode 100644 index 0000000000..fb443e0643 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu ASA @System.json @@ -0,0 +1,18 @@ +{ + "type": "filament", + "name": "Bambu ASA @System", + "inherits": "Bambu ASA @base", + "from": "system", + "setting_id": "OGFSB01_00", + "instantiation": "true", + "fan_min_speed": [ + "25" + ], + "filament_long_retractions_when_cut": [ + "1" + ], + "filament_retraction_distances_when_cut": [ + "18" + ], + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu ASA @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu ASA @base.json new file mode 100644 index 0000000000..322bb3514c --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu ASA @base.json @@ -0,0 +1,54 @@ +{ + "type": "filament", + "name": "Bambu ASA @base", + "inherits": "fdm_filament_asa", + "from": "system", + "filament_id": "GFB01", + "instantiation": "false", + "description": "When printing this filament, there's a risk of warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.", + "eng_plate_temp": [ + "100" + ], + "eng_plate_temp_initial_layer": [ + "100" + ], + "fan_max_speed": [ + "35" + ], + "filament_cost": [ + "31.99" + ], + "filament_density": [ + "1.05" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_vendor": [ + "Bambu Lab" + ], + "hot_plate_temp": [ + "100" + ], + "hot_plate_temp_initial_layer": [ + "100" + ], + "nozzle_temperature": [ + "270" + ], + "nozzle_temperature_initial_layer": [ + "270" + ], + "slow_down_layer_time": [ + "12" + ], + "textured_plate_temp": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "100" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu ASA-Aero @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu ASA-Aero @System.json new file mode 100644 index 0000000000..3442434afa --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu ASA-Aero @System.json @@ -0,0 +1,9 @@ +{ + "type": "filament", + "name": "Bambu ASA-Aero @System", + "inherits": "Bambu ASA-Aero @base", + "from": "system", + "setting_id": "OGFSB02_00", + "instantiation": "true", + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu ASA-Aero @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu ASA-Aero @base.json new file mode 100644 index 0000000000..4cfe7de309 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu ASA-Aero @base.json @@ -0,0 +1,63 @@ +{ + "type": "filament", + "name": "Bambu ASA-Aero @base", + "inherits": "fdm_filament_asa", + "from": "system", + "filament_id": "GFB02", + "instantiation": "false", + "description": "This filament is only used to print models with a low density usually, and some special parameters are required. To get better printing quality, please refer to this wiki: ASA Aero Printing Guide.", + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "50" + ], + "fan_min_speed": [ + "30" + ], + "filament_cost": [ + "49.99" + ], + "filament_density": [ + "0.99" + ], + "filament_flow_ratio": [ + "0.52" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_retraction_length": [ + "1.5" + ], + "filament_type": [ + "ASA-Aero" + ], + "filament_vendor": [ + "Bambu Lab" + ], + "filament_wipe_distance": [ + "5" + ], + "filament_z_hop_types": [ + "Normal Lift" + ], + "nozzle_temperature": [ + "270" + ], + "nozzle_temperature_initial_layer": [ + "270" + ], + "overhang_fan_speed": [ + "50" + ], + "reduce_fan_stop_start_freq": [ + "0" + ], + "slow_down_layer_time": [ + "5" + ], + "filament_scarf_seam_type": [ + "none" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu ASA-CF @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu ASA-CF @System.json new file mode 100644 index 0000000000..4b104b1a42 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu ASA-CF @System.json @@ -0,0 +1,9 @@ +{ + "type": "filament", + "name": "Bambu ASA-CF @System", + "inherits": "Bambu ASA-CF @base", + "from": "system", + "setting_id": "OGFSB51_00", + "instantiation": "true", + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu ASA-CF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu ASA-CF @base.json new file mode 100644 index 0000000000..d8c3c0ffce --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu ASA-CF @base.json @@ -0,0 +1,62 @@ +{ + "type": "filament", + "name": "Bambu ASA-CF @base", + "inherits": "fdm_filament_asa", + "from": "system", + "filament_id": "GFB51", + "instantiation": "false", + "eng_plate_temp": [ + "100" + ], + "eng_plate_temp_initial_layer": [ + "100" + ], + "fan_max_speed": [ + "25" + ], + "filament_cost": [ + "36.99" + ], + "filament_density": [ + "1.02" + ], + "filament_flow_ratio": [ + "0.9" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_type": [ + "ASA-CF" + ], + "filament_vendor": [ + "Bambu Lab" + ], + "hot_plate_temp": [ + "100" + ], + "hot_plate_temp_initial_layer": [ + "100" + ], + "nozzle_temperature": [ + "275" + ], + "nozzle_temperature_initial_layer": [ + "275" + ], + "nozzle_temperature_range_low": [ + "250" + ], + "slow_down_layer_time": [ + "12" + ], + "temperature_vitrification": [ + "108" + ], + "textured_plate_temp": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "100" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PA-CF @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PA-CF @System.json new file mode 100644 index 0000000000..abcbce92a0 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PA-CF @System.json @@ -0,0 +1,27 @@ +{ + "type": "filament", + "name": "Bambu PA-CF @System", + "inherits": "Bambu PA-CF @base", + "from": "system", + "setting_id": "OGFSN00", + "instantiation": "true", + "nozzle_temperature_initial_layer": [ + "290" + ], + "nozzle_temperature": [ + "290" + ], + "fan_max_speed": [ + "30" + ], + "fan_min_speed": [ + "10" + ], + "fan_cooling_layer_time": [ + "5" + ], + "full_fan_speed_layer": [ + "2" + ], + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PA-CF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PA-CF @base.json new file mode 100644 index 0000000000..f278ca567b --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PA-CF @base.json @@ -0,0 +1,39 @@ +{ + "type": "filament", + "name": "Bambu PA-CF @base", + "inherits": "fdm_filament_pa", + "from": "system", + "filament_id": "GFN03", + "instantiation": "false", + "description": "When printing this filament, there's a risk of nozzle clogging, oozing, warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.", + "filament_cost": [ + "84.99" + ], + "filament_density": [ + "1.09" + ], + "filament_flow_ratio": [ + "0.96" + ], + "filament_type": [ + "PA-CF" + ], + "filament_vendor": [ + "Bambu Lab" + ], + "nozzle_temperature": [ + "280" + ], + "nozzle_temperature_initial_layer": [ + "280" + ], + "overhang_fan_speed": [ + "40" + ], + "overhang_fan_threshold": [ + "0%" + ], + "temperature_vitrification": [ + "170" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PA6-CF @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PA6-CF @System.json new file mode 100644 index 0000000000..3a1d3510af --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PA6-CF @System.json @@ -0,0 +1,9 @@ +{ + "type": "filament", + "name": "Bambu PA6-CF @System", + "inherits": "Bambu PA6-CF @base", + "from": "system", + "setting_id": "OGFSN05_02", + "instantiation": "true", + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PA6-CF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PA6-CF @base.json new file mode 100644 index 0000000000..7df1f06e4a --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PA6-CF @base.json @@ -0,0 +1,48 @@ +{ + "type": "filament", + "name": "Bambu PA6-CF @base", + "inherits": "fdm_filament_pa", + "from": "system", + "filament_id": "GFN05", + "instantiation": "false", + "description": "When printing this filament, there's a risk of nozzle clogging, oozing, warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.", + "fan_cooling_layer_time": [ + "5" + ], + "fan_max_speed": [ + "30" + ], + "fan_min_speed": [ + "10" + ], + "filament_cost": [ + "79.99" + ], + "filament_density": [ + "1.10" + ], + "filament_flow_ratio": [ + "0.96" + ], + "filament_type": [ + "PA6-CF" + ], + "filament_vendor": [ + "Bambu Lab" + ], + "nozzle_temperature": [ + "275" + ], + "nozzle_temperature_initial_layer": [ + "275" + ], + "overhang_fan_speed": [ + "40" + ], + "overhang_fan_threshold": [ + "0%" + ], + "temperature_vitrification": [ + "170" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PA6-GF @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PA6-GF @System.json new file mode 100644 index 0000000000..dce5c0d2e5 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PA6-GF @System.json @@ -0,0 +1,21 @@ +{ + "type": "filament", + "name": "Bambu PA6-GF @System", + "inherits": "Bambu PA6-GF @base", + "from": "system", + "setting_id": "OGFSN08_00", + "instantiation": "true", + "chamber_temperatures": [ + "60" + ], + "filament_max_volumetric_speed": [ + "10.5" + ], + "nozzle_temperature": [ + "265" + ], + "nozzle_temperature_initial_layer": [ + "265" + ], + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PA6-GF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PA6-GF @base.json new file mode 100644 index 0000000000..e2246b0cab --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PA6-GF @base.json @@ -0,0 +1,45 @@ +{ + "type": "filament", + "name": "Bambu PA6-GF @base", + "inherits": "fdm_filament_pa", + "from": "system", + "filament_id": "GFN08", + "instantiation": "false", + "description": "When printing this filament, there's a risk of nozzle clogging, oozing, warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.", + "fan_cooling_layer_time": [ + "5" + ], + "fan_max_speed": [ + "30" + ], + "fan_min_speed": [ + "10" + ], + "filament_cost": [ + "59.99" + ], + "filament_density": [ + "1.14" + ], + "filament_flow_ratio": [ + "0.96" + ], + "filament_type": [ + "PA-GF" + ], + "filament_vendor": [ + "Bambu Lab" + ], + "full_fan_speed_layer": [ + "2" + ], + "overhang_fan_speed": [ + "40" + ], + "overhang_fan_threshold": [ + "0%" + ], + "temperature_vitrification": [ + "180" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PAHT-CF @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PAHT-CF @System.json new file mode 100644 index 0000000000..336e79d1c9 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PAHT-CF @System.json @@ -0,0 +1,12 @@ +{ + "type": "filament", + "name": "Bambu PAHT-CF @System", + "inherits": "Bambu PAHT-CF @base", + "from": "system", + "setting_id": "OGFSN04", + "instantiation": "true", + "chamber_temperatures": [ + "60" + ], + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PAHT-CF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PAHT-CF @base.json new file mode 100644 index 0000000000..17ef39575f --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PAHT-CF @base.json @@ -0,0 +1,45 @@ +{ + "type": "filament", + "name": "Bambu PAHT-CF @base", + "inherits": "fdm_filament_pa", + "from": "system", + "filament_id": "GFN04", + "instantiation": "false", + "description": "When printing this filament, there's a risk of nozzle clogging, oozing, warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.", + "fan_cooling_layer_time": [ + "5" + ], + "fan_max_speed": [ + "30" + ], + "fan_min_speed": [ + "10" + ], + "filament_cost": [ + "94.99" + ], + "filament_density": [ + "1.06" + ], + "filament_flow_ratio": [ + "0.96" + ], + "filament_type": [ + "PA-CF" + ], + "filament_vendor": [ + "Bambu Lab" + ], + "full_fan_speed_layer": [ + "2" + ], + "overhang_fan_speed": [ + "40" + ], + "overhang_fan_threshold": [ + "0%" + ], + "temperature_vitrification": [ + "180" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PC @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PC @System.json new file mode 100644 index 0000000000..1889a50281 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PC @System.json @@ -0,0 +1,15 @@ +{ + "type": "filament", + "name": "Bambu PC @System", + "inherits": "Bambu PC @base", + "from": "system", + "setting_id": "OGFSC00", + "instantiation": "true", + "fan_max_speed": [ + "40" + ], + "slow_down_layer_time": [ + "12" + ], + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PC @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PC @base.json new file mode 100644 index 0000000000..001f7c94d7 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PC @base.json @@ -0,0 +1,17 @@ +{ + "type": "filament", + "name": "Bambu PC @base", + "inherits": "fdm_filament_pc", + "from": "system", + "filament_id": "GFC00", + "instantiation": "false", + "filament_vendor": [ + "Bambu Lab" + ], + "filament_cost": [ + "39.99" + ], + "filament_flow_ratio": [ + "0.94" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PC FR @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PC FR @System.json new file mode 100644 index 0000000000..61eb80d720 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PC FR @System.json @@ -0,0 +1,15 @@ +{ + "type": "filament", + "name": "Bambu PC FR @System", + "inherits": "Bambu PC FR @base", + "from": "system", + "setting_id": "OGFSC01_00", + "instantiation": "true", + "fan_max_speed": [ + "40" + ], + "slow_down_layer_time": [ + "12" + ], + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PC FR @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PC FR @base.json new file mode 100644 index 0000000000..c01a0dfe0d --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PC FR @base.json @@ -0,0 +1,20 @@ +{ + "type": "filament", + "name": "Bambu PC FR @base", + "inherits": "fdm_filament_pc", + "from": "system", + "filament_id": "GFC01", + "instantiation": "false", + "filament_cost": [ + "0" + ], + "filament_density": [ + "1.19" + ], + "filament_flow_ratio": [ + "0.94" + ], + "filament_vendor": [ + "Bambu Lab" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PET-CF @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PET-CF @System.json new file mode 100644 index 0000000000..abad651a30 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PET-CF @System.json @@ -0,0 +1,15 @@ +{ + "type": "filament", + "name": "Bambu PET-CF @System", + "inherits": "Bambu PET-CF @base", + "from": "system", + "setting_id": "OGFST01", + "instantiation": "true", + "reduce_fan_stop_start_freq": [ + "0" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PET-CF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PET-CF @base.json new file mode 100644 index 0000000000..86f36ecab1 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PET-CF @base.json @@ -0,0 +1,90 @@ +{ + "type": "filament", + "name": "Bambu PET-CF @base", + "inherits": "fdm_filament_pet", + "from": "system", + "filament_id": "GFT01", + "instantiation": "false", + "description": "When printing this filament, there's a risk of nozzle clogging, oozing, warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.", + "cool_plate_temp": [ + "0" + ], + "cool_plate_temp_initial_layer": [ + "0" + ], + "eng_plate_temp": [ + "80" + ], + "eng_plate_temp_initial_layer": [ + "80" + ], + "fan_cooling_layer_time": [ + "5" + ], + "fan_max_speed": [ + "30" + ], + "fan_min_speed": [ + "10" + ], + "filament_cost": [ + "84.99" + ], + "filament_density": [ + "1.29" + ], + "filament_max_volumetric_speed": [ + "8" + ], + "filament_type": [ + "PET-CF" + ], + "filament_vendor": [ + "Bambu Lab" + ], + "hot_plate_temp": [ + "100" + ], + "hot_plate_temp_initial_layer": [ + "100" + ], + "nozzle_temperature": [ + "270" + ], + "nozzle_temperature_initial_layer": [ + "270" + ], + "nozzle_temperature_range_high": [ + "290" + ], + "nozzle_temperature_range_low": [ + "260" + ], + "overhang_fan_speed": [ + "40" + ], + "overhang_fan_threshold": [ + "0%" + ], + "required_nozzle_HRC": [ + "40" + ], + "supertack_plate_temp": [ + "80" + ], + "supertack_plate_temp_initial_layer": [ + "80" + ], + "slow_down_layer_time": [ + "2" + ], + "temperature_vitrification": [ + "185" + ], + "textured_plate_temp": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "100" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PETG Basic @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PETG Basic @System.json new file mode 100644 index 0000000000..7d675a724c --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PETG Basic @System.json @@ -0,0 +1,18 @@ +{ + "type": "filament", + "name": "Bambu PETG Basic @System", + "inherits": "Bambu PETG Basic @base", + "from": "system", + "setting_id": "OGFSG00_01", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "13" + ], + "filament_long_retractions_when_cut": [ + "1" + ], + "filament_retraction_distances_when_cut": [ + "18" + ], + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PETG Basic @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PETG Basic @base.json new file mode 100644 index 0000000000..07f806457b --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PETG Basic @base.json @@ -0,0 +1,72 @@ +{ + "type": "filament", + "name": "Bambu PETG Basic @base", + "inherits": "fdm_filament_pet", + "from": "system", + "filament_id": "GFG00", + "instantiation": "false", + "description": "To get better transparent or translucent results with the corresponding filament, please refer to this wiki: Printing tips for transparent PETG.", + "cool_plate_temp": [ + "0" + ], + "cool_plate_temp_initial_layer": [ + "0" + ], + "eng_plate_temp": [ + "70" + ], + "eng_plate_temp_initial_layer": [ + "70" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "10" + ], + "filament_cost": [ + "24.99" + ], + "filament_density": [ + "1.25" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_max_volumetric_speed": [ + "8" + ], + "filament_vendor": [ + "Bambu Lab" + ], + "hot_plate_temp": [ + "70" + ], + "hot_plate_temp_initial_layer": [ + "70" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "230" + ], + "overhang_fan_speed": [ + "90" + ], + "overhang_fan_threshold": [ + "10%" + ], + "slow_down_layer_time": [ + "12" + ], + "textured_plate_temp": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "70" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PETG HF @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PETG HF @System.json new file mode 100644 index 0000000000..334bbaef19 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PETG HF @System.json @@ -0,0 +1,30 @@ +{ + "type": "filament", + "name": "Bambu PETG HF @System", + "inherits": "Bambu PETG HF @base", + "from": "system", + "setting_id": "OGFSG02_00", + "instantiation": "true", + "fan_cooling_layer_time": [ + "20" + ], + "fan_min_speed": [ + "20" + ], + "filament_long_retractions_when_cut": [ + "1" + ], + "filament_retraction_distances_when_cut": [ + "18" + ], + "overhang_fan_speed": [ + "100" + ], + "slow_down_layer_time": [ + "10" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PETG HF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PETG HF @base.json new file mode 100644 index 0000000000..dc50f6b886 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PETG HF @base.json @@ -0,0 +1,77 @@ +{ + "type": "filament", + "name": "Bambu PETG HF @base", + "inherits": "fdm_filament_pet", + "from": "system", + "filament_id": "GFG02", + "instantiation": "false", + "cool_plate_temp": [ + "0" + ], + "cool_plate_temp_initial_layer": [ + "0" + ], + "eng_plate_temp": [ + "70" + ], + "eng_plate_temp_initial_layer": [ + "70" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "10" + ], + "filament_cost": [ + "24.99" + ], + "filament_density": [ + "1.28" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_vendor": [ + "Bambu Lab" + ], + "hot_plate_temp": [ + "70" + ], + "hot_plate_temp_initial_layer": [ + "70" + ], + "nozzle_temperature": [ + "245" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "230" + ], + "overhang_fan_speed": [ + "90" + ], + "overhang_fan_threshold": [ + "10%" + ], + "slow_down_layer_time": [ + "12" + ], + "textured_plate_temp": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "70" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PETG Translucent @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PETG Translucent @System.json new file mode 100644 index 0000000000..d481374add --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PETG Translucent @System.json @@ -0,0 +1,21 @@ +{ + "type": "filament", + "name": "Bambu PETG Translucent @System", + "inherits": "Bambu PETG Translucent @base", + "from": "system", + "setting_id": "OGFSG01_00", + "instantiation": "true", + "filament_long_retractions_when_cut": [ + "1" + ], + "filament_retraction_distances_when_cut": [ + "18" + ], + "filament_retraction_length": [ + "0.3" + ], + "slow_down_layer_time": [ + "8" + ], + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PETG Translucent @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PETG Translucent @base.json new file mode 100644 index 0000000000..1582cd8d4a --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PETG Translucent @base.json @@ -0,0 +1,78 @@ +{ + "type": "filament", + "name": "Bambu PETG Translucent @base", + "inherits": "fdm_filament_pet", + "from": "system", + "filament_id": "GFG01", + "instantiation": "false", + "description": "To get better transparent or translucent results with the corresponding filament, please refer to this wiki: Printing tips for transparent PETG.", + "cool_plate_temp": [ + "0" + ], + "cool_plate_temp_initial_layer": [ + "0" + ], + "eng_plate_temp": [ + "70" + ], + "eng_plate_temp_initial_layer": [ + "70" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "30" + ], + "fan_min_speed": [ + "10" + ], + "filament_cost": [ + "24.99" + ], + "filament_density": [ + "1.25" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_max_volumetric_speed": [ + "6" + ], + "filament_vendor": [ + "Bambu Lab" + ], + "hot_plate_temp": [ + "70" + ], + "hot_plate_temp_initial_layer": [ + "70" + ], + "nozzle_temperature": [ + "245" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "230" + ], + "overhang_fan_speed": [ + "90" + ], + "overhang_fan_threshold": [ + "10%" + ], + "slow_down_layer_time": [ + "12" + ], + "textured_plate_temp": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "70" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PETG-CF @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PETG-CF @System.json new file mode 100644 index 0000000000..693f5de7b5 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PETG-CF @System.json @@ -0,0 +1,30 @@ +{ + "type": "filament", + "name": "Bambu PETG-CF @System", + "inherits": "Bambu PETG-CF @base", + "from": "system", + "setting_id": "OGFSG50_01", + "instantiation": "true", + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "5" + ], + "filament_long_retractions_when_cut": [ + "1" + ], + "filament_max_volumetric_speed": [ + "11.5" + ], + "filament_retraction_distances_when_cut": [ + "18" + ], + "overhang_fan_speed": [ + "100" + ], + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/Folgertech/filament/Folgertech Generic PETG-CF.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PETG-CF @base.json similarity index 51% rename from resources/profiles/Folgertech/filament/Folgertech Generic PETG-CF.json rename to resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PETG-CF @base.json index 99321ccf89..89eccb7c52 100644 --- a/resources/profiles/Folgertech/filament/Folgertech Generic PETG-CF.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PETG-CF @base.json @@ -1,92 +1,77 @@ { "type": "filament", - "filament_id": "GFG98", - "setting_id": "GFSG50", - "name": "Folgertech Generic PETG-CF", - "from": "system", - "instantiation": "true", + "name": "Bambu PETG-CF @base", "inherits": "fdm_filament_pet", - "temperature_vitrification": [ - "75" - ], - "overhang_fan_threshold": [ - "25%" - ], - "overhang_fan_speed": [ - "90" - ], - "cool_plate_temp" : [ + "from": "system", + "filament_id": "GFG50", + "instantiation": "false", + "cool_plate_temp": [ "0" ], - "eng_plate_temp" : [ - "70" - ], - "hot_plate_temp" : [ - "70" - ], - "textured_plate_temp" : [ - "70" - ], - "cool_plate_temp_initial_layer" : [ + "cool_plate_temp_initial_layer": [ "0" ], - "eng_plate_temp_initial_layer" : [ + "eng_plate_temp": [ "70" ], - "hot_plate_temp_initial_layer" : [ + "eng_plate_temp_initial_layer": [ "70" ], - "textured_plate_temp_initial_layer" : [ - "70" - ], - "required_nozzle_HRC": [ - "40" - ], - "filament_vendor": [ - "Bambu Lab" - ], - "filament_type": [ - "PETG-CF" - ], - "nozzle_temperature_range_low": [ - "240" - ], - "nozzle_temperature_range_high": [ - "270" - ], - "nozzle_temperature_initial_layer": [ - "255" - ], - "nozzle_temperature": [ - "255" - ], - "filament_cost": [ - "34.99" - ], - "filament_density": [ - "1.25" - ], "fan_max_speed": [ "30" ], "fan_min_speed": [ "0" ], + "filament_cost": [ + "34.99" + ], + "filament_density": [ + "1.25" + ], + "filament_flow_ratio": [ + "0.95" + ], "filament_max_volumetric_speed": [ - "10" + "12" + ], + "filament_type": [ + "PETG-CF" + ], + "filament_vendor": [ + "Bambu Lab" + ], + "hot_plate_temp": [ + "70" + ], + "hot_plate_temp_initial_layer": [ + "70" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "240" + ], + "overhang_fan_speed": [ + "90" + ], + "overhang_fan_threshold": [ + "10%" + ], + "required_nozzle_HRC": [ + "40" ], "slow_down_layer_time": [ "6" ], - "fan_cooling_layer_time": [ - "20" + "temperature_vitrification": [ + "70" ], - "compatible_printers": [ - "Folgertech FT-5 0.4 nozzle", - "Folgertech FT-5 0.6 nozzle", - "Folgertech FT-6 0.4 nozzle", - "Folgertech FT-6 0.6 nozzle", - "Folgertech i3 0.4 nozzle", - "Folgertech i3 0.6 nozzle" + "textured_plate_temp": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "70" ] -} +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Aero @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Aero @System.json new file mode 100644 index 0000000000..40db0e39b9 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Aero @System.json @@ -0,0 +1,18 @@ +{ + "type": "filament", + "name": "Bambu PLA Aero @System", + "inherits": "Bambu PLA Aero @base", + "from": "system", + "setting_id": "OGFSA11_01", + "instantiation": "true", + "additional_cooling_fan_speed": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "compatible_printers": [], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\nM142 P1 R35 S40\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Aero @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Aero @base.json new file mode 100644 index 0000000000..a53ae18186 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Aero @base.json @@ -0,0 +1,45 @@ +{ + "type": "filament", + "name": "Bambu PLA Aero @base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFA11", + "instantiation": "false", + "description": "This filament is only used to print models with a low density usually, and some special parameters are required. To get better printing quality, please refer to this wiki: Instructions for printing RC model with foaming PLA (PLA Aero).", + "fan_min_speed": [ + "30" + ], + "filament_cost": [ + "44.99" + ], + "filament_density": [ + "1.21" + ], + "filament_flow_ratio": [ + "0.6" + ], + "filament_max_volumetric_speed": [ + "6" + ], + "filament_type": [ + "PLA-AERO" + ], + "filament_vendor": [ + "Bambu Lab" + ], + "filament_scarf_seam_type": [ + "none" + ], + "nozzle_temperature_range_low": [ + "210" + ], + "nozzle_temperature_range_high": [ + "260" + ], + "supertack_plate_temp": [ + "0" + ], + "supertack_plate_temp_initial_layer": [ + "0" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Basic @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Basic @System.json new file mode 100644 index 0000000000..33969ec6f6 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Basic @System.json @@ -0,0 +1,21 @@ +{ + "type": "filament", + "name": "Bambu PLA Basic @System", + "inherits": "Bambu PLA Basic @base", + "from": "system", + "setting_id": "OGFSA00", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "21" + ], + "filament_long_retractions_when_cut": [ + "1" + ], + "filament_retraction_distances_when_cut": [ + "18" + ], + "compatible_printers": [], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\nM142 P1 R35 S40\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Basic @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Basic @base.json new file mode 100644 index 0000000000..5e584c7980 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Basic @base.json @@ -0,0 +1,35 @@ +{ + "type": "filament", + "name": "Bambu PLA Basic @base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFA00", + "instantiation": "false", + "filament_cost": [ + "24.99" + ], + "filament_density": [ + "1.26" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_vendor": [ + "Bambu Lab" + ], + "filament_scarf_seam_type": [ + "none" + ], + "filament_scarf_height":[ + "10%" + ], + "filament_scarf_gap":[ + "0%" + ], + "filament_scarf_length":[ + "10" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Dynamic @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Dynamic @System.json new file mode 100644 index 0000000000..8ad3db841c --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Dynamic @System.json @@ -0,0 +1,21 @@ +{ + "type": "filament", + "name": "Bambu PLA Dynamic @System", + "inherits": "Bambu PLA Dynamic @base", + "from": "system", + "setting_id": "OGFSA13_00", + "instantiation": "true", + "filament_flow_ratio": [ + "0.98" + ], + "filament_max_volumetric_speed": [ + "21" + ], + "filament_vendor": [ + "Bambu Lab" + ], + "compatible_printers": [], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\nM142 P1 R35 S40\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Dynamic @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Dynamic @base.json new file mode 100644 index 0000000000..46b034593c --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Dynamic @base.json @@ -0,0 +1,17 @@ +{ + "type": "filament", + "name": "Bambu PLA Dynamic @base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFA13", + "instantiation": "false", + "filament_cost": [ + "31.99" + ], + "filament_density": [ + "1.26" + ], + "filament_vendor": [ + "Bambu Lab" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Galaxy @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Galaxy @System.json new file mode 100644 index 0000000000..36abbbe334 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Galaxy @System.json @@ -0,0 +1,18 @@ +{ + "type": "filament", + "name": "Bambu PLA Galaxy @System", + "inherits": "Bambu PLA Galaxy @base", + "from": "system", + "setting_id": "OGFSA15_00", + "instantiation": "true", + "filament_long_retractions_when_cut": [ + "1" + ], + "filament_retraction_distances_when_cut": [ + "18" + ], + "compatible_printers": [], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\nM142 P1 R35 S40\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Galaxy @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Galaxy @base.json new file mode 100644 index 0000000000..a493400c1a --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Galaxy @base.json @@ -0,0 +1,23 @@ +{ + "type": "filament", + "name": "Bambu PLA Galaxy @base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFA15", + "instantiation": "false", + "filament_cost": [ + "29.99" + ], + "filament_density": [ + "1.19" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_vendor": [ + "Bambu Lab" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Glow @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Glow @System.json new file mode 100644 index 0000000000..89cbf33daa --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Glow @System.json @@ -0,0 +1,18 @@ +{ + "type": "filament", + "name": "Bambu PLA Glow @System", + "inherits": "Bambu PLA Glow @base", + "from": "system", + "setting_id": "OGFSA12_00", + "instantiation": "true", + "filament_long_retractions_when_cut": [ + "1" + ], + "filament_retraction_distances_when_cut": [ + "18" + ], + "compatible_printers": [], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\nM142 P1 R35 S40\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Glow @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Glow @base.json new file mode 100644 index 0000000000..206578285f --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Glow @base.json @@ -0,0 +1,26 @@ +{ + "type": "filament", + "name": "Bambu PLA Glow @base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFA12", + "instantiation": "false", + "filament_cost": [ + "29.99" + ], + "filament_density": [ + "1.26" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_vendor": [ + "Bambu Lab" + ], + "temperature_vitrification": [ + "45" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Impact @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Impact @System.json new file mode 100644 index 0000000000..015d320e53 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Impact @System.json @@ -0,0 +1,12 @@ +{ + "type": "filament", + "setting_id": "OGFSA03", + "name": "Bambu PLA Impact @System", + "from": "system", + "instantiation": "true", + "inherits": "Bambu PLA Impact @base", + "filament_max_volumetric_speed": [ + "23.2" + ], + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Impact @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Impact @base.json new file mode 100644 index 0000000000..f56887abff --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Impact @base.json @@ -0,0 +1,17 @@ +{ + "type": "filament", + "name": "Bambu PLA Impact @base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFA03", + "instantiation": "false", + "filament_cost": [ + "25.4" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_vendor": [ + "Bambu Lab" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Marble @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Marble @System.json new file mode 100644 index 0000000000..e414955324 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Marble @System.json @@ -0,0 +1,18 @@ +{ + "type": "filament", + "name": "Bambu PLA Marble @System", + "inherits": "Bambu PLA Marble @base", + "from": "system", + "setting_id": "OGFSA07_00", + "instantiation": "true", + "filament_long_retractions_when_cut": [ + "1" + ], + "filament_retraction_distances_when_cut": [ + "18" + ], + "compatible_printers": [], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\nM142 P1 R35 S40\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Marble @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Marble @base.json new file mode 100644 index 0000000000..a34253171b --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Marble @base.json @@ -0,0 +1,20 @@ +{ + "type": "filament", + "name": "Bambu PLA Marble @base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFA07", + "instantiation": "false", + "filament_cost": [ + "29.99" + ], + "filament_density": [ + "1.22" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_vendor": [ + "Bambu Lab" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Matte @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Matte @System.json new file mode 100644 index 0000000000..94c2758601 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Matte @System.json @@ -0,0 +1,21 @@ +{ + "type": "filament", + "name": "Bambu PLA Matte @System", + "inherits": "Bambu PLA Matte @base", + "from": "system", + "setting_id": "OGFSA01", + "instantiation": "true", + "filament_long_retractions_when_cut": [ + "1" + ], + "filament_max_volumetric_speed": [ + "22" + ], + "filament_retraction_distances_when_cut": [ + "18" + ], + "compatible_printers": [], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\nM142 P1 R35 S40\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Matte @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Matte @base.json new file mode 100644 index 0000000000..700253f841 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Matte @base.json @@ -0,0 +1,32 @@ +{ + "type": "filament", + "name": "Bambu PLA Matte @base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFA01", + "instantiation": "false", + "filament_cost": [ + "24.99" + ], + "filament_density": [ + "1.32" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_vendor": [ + "Bambu Lab" + ], + "filament_scarf_seam_type": [ + "none" + ], + "filament_scarf_height":[ + "5%" + ], + "filament_scarf_gap":[ + "0%" + ], + "filament_scarf_length":[ + "10" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Metal @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Metal @System.json new file mode 100644 index 0000000000..aef30ac87d --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Metal @System.json @@ -0,0 +1,15 @@ +{ + "type": "filament", + "name": "Bambu PLA Metal @System", + "inherits": "Bambu PLA Metal @base", + "from": "system", + "setting_id": "OGFSA02", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "21" + ], + "compatible_printers": [], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\nM142 P1 R35 S40\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Metal @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Metal @base.json new file mode 100644 index 0000000000..d2edaf4bd3 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Metal @base.json @@ -0,0 +1,24 @@ +{ + "type": "filament", + "name": "Bambu PLA Metal @base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFA02", + "instantiation": "false", + "description": "To make the prints get higher gloss, please dry the filament before use, and set the outer wall speed to be 40 to 60 mm/s when slicing.", + "filament_cost": [ + "29.99" + ], + "filament_density": [ + "1.25" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_vendor": [ + "Bambu Lab" + ], + "filament_scarf_seam_type": [ + "none" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Silk @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Silk @System.json new file mode 100644 index 0000000000..c8c860b0e6 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Silk @System.json @@ -0,0 +1,12 @@ +{ + "type": "filament", + "name": "Bambu PLA Silk @System", + "inherits": "Bambu PLA Silk @base", + "from": "system", + "setting_id": "OGFSA05_01", + "instantiation": "true", + "compatible_printers": [], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\nM142 P1 R35 S40\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Silk @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Silk @base.json new file mode 100644 index 0000000000..40b486e812 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Silk @base.json @@ -0,0 +1,39 @@ +{ + "type": "filament", + "name": "Bambu PLA Silk @base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFA05", + "instantiation": "false", + "description": "To make the prints get higher gloss, please dry the filament before use, and set the outer wall speed to be 40 to 60 mm/s when slicing.", + "filament_cost": [ + "29.99" + ], + "filament_density": [ + "1.32" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_vendor": [ + "Bambu Lab" + ], + "filament_scarf_height": [ + "5%" + ], + "filament_scarf_gap": [ + "0%" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "supertack_plate_temp": [ + "0" + ], + "supertack_plate_temp_initial_layer": [ + "0" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Silk+ @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Silk+ @System.json new file mode 100644 index 0000000000..2f5f989f72 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Silk+ @System.json @@ -0,0 +1,18 @@ +{ + "type": "filament", + "name": "Bambu PLA Silk+ @System", + "inherits": "Bambu PLA Silk+ @base", + "from": "system", + "setting_id": "OGFSA06_00", + "instantiation": "true", + "supertack_plate_temp": [ + "35" + ], + "supertack_plate_temp_initial_layer": [ + "35" + ], + "compatible_printers": [], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\nM142 P1 R35 S40\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Silk+ @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Silk+ @base.json new file mode 100644 index 0000000000..550061b0bc --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Silk+ @base.json @@ -0,0 +1,33 @@ +{ + "type": "filament", + "name": "Bambu PLA Silk+ @base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFA06", + "instantiation": "false", + "description": "To make the prints get higher gloss, please dry the filament before use, and set the outer wall speed to be 40 to 60 mm/s when slicing.", + "filament_cost": [ + "29.99" + ], + "filament_density": [ + "1.27" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_scarf_height": [ + "5%" + ], + "filament_scarf_seam_type": [ + "all" + ], + "filament_vendor": [ + "Bambu Lab" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Sparkle @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Sparkle @System.json new file mode 100644 index 0000000000..bad029a7b0 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Sparkle @System.json @@ -0,0 +1,12 @@ +{ + "type": "filament", + "name": "Bambu PLA Sparkle @System", + "inherits": "Bambu PLA Sparkle @base", + "from": "system", + "setting_id": "OGFSA08_00", + "instantiation": "true", + "compatible_printers": [], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\nM142 P1 R35 S40\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Sparkle @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Sparkle @base.json new file mode 100644 index 0000000000..02bddb8948 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Sparkle @base.json @@ -0,0 +1,20 @@ +{ + "type": "filament", + "name": "Bambu PLA Sparkle @base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFA08", + "instantiation": "false", + "filament_cost": [ + "29.99" + ], + "filament_density": [ + "1.26" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_vendor": [ + "Bambu Lab" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Tough @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Tough @System.json new file mode 100644 index 0000000000..b819c792d9 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Tough @System.json @@ -0,0 +1,15 @@ +{ + "type": "filament", + "name": "Bambu PLA Tough @System", + "inherits": "Bambu PLA Tough @base", + "from": "system", + "setting_id": "OGFSA09_02", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "21" + ], + "compatible_printers": [], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\nM142 P1 R35 S40\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Tough @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Tough @base.json new file mode 100644 index 0000000000..489843c50b --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Tough @base.json @@ -0,0 +1,23 @@ +{ + "type": "filament", + "name": "Bambu PLA Tough @base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFA09", + "instantiation": "false", + "filament_cost": [ + "28.99" + ], + "filament_density": [ + "1.26" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_vendor": [ + "Bambu Lab" + ], + "filament_scarf_seam_type": [ + "none" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Wood @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Wood @System.json new file mode 100644 index 0000000000..97ac78ecc6 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Wood @System.json @@ -0,0 +1,9 @@ +{ + "type": "filament", + "name": "Bambu PLA Wood @System", + "inherits": "Bambu PLA Wood @base", + "from": "system", + "setting_id": "OGFSA16_00", + "instantiation": "true", + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Wood @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Wood @base.json new file mode 100644 index 0000000000..45015187b3 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Wood @base.json @@ -0,0 +1,32 @@ +{ + "type": "filament", + "name": "Bambu PLA Wood @base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFA16", + "instantiation": "false", + "filament_cost": [ + "24.99" + ], + "filament_density": [ + "1.21" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_long_retractions_when_cut": [ + "1" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_retraction_distances_when_cut": [ + "18" + ], + "filament_scarf_seam_type": [ + "none" + ], + "filament_vendor": [ + "Bambu Lab" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA-CF @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA-CF @System.json new file mode 100644 index 0000000000..55bd4e8867 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA-CF @System.json @@ -0,0 +1,27 @@ +{ + "type": "filament", + "name": "Bambu PLA-CF @System", + "inherits": "Bambu PLA-CF @base", + "from": "system", + "setting_id": "OGFSA50_01", + "instantiation": "true", + "filament_long_retractions_when_cut": [ + "1" + ], + "filament_max_volumetric_speed": [ + "15" + ], + "filament_retraction_distances_when_cut": [ + "18" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "compatible_printers": [], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\nM142 P1 R35 S40\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA-CF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA-CF @base.json new file mode 100644 index 0000000000..b16b20ca1d --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA-CF @base.json @@ -0,0 +1,50 @@ +{ + "type": "filament", + "name": "Bambu PLA-CF @base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFA50", + "instantiation": "false", + "additional_cooling_fan_speed": [ + "0" + ], + "cool_plate_temp": [ + "45" + ], + "cool_plate_temp_initial_layer": [ + "45" + ], + "filament_cost": [ + "34.99" + ], + "filament_density": [ + "1.22" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_type": [ + "PLA-CF" + ], + "filament_vendor": [ + "Bambu Lab" + ], + "nozzle_temperature_range_low": [ + "210" + ], + "nozzle_temperature_range_high": [ + "250" + ], + "required_nozzle_HRC": [ + "40" + ], + "supertack_plate_temp": [ + "50" + ], + "supertack_plate_temp_initial_layer": [ + "50" + ], + "slow_down_layer_time": [ + "8" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PPA-CF @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PPA-CF @System.json new file mode 100644 index 0000000000..aafc527e6e --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PPA-CF @System.json @@ -0,0 +1,9 @@ +{ + "type": "filament", + "setting_id": "OGFSN06_00", + "name": "Bambu PPA-CF @System", + "from": "system", + "instantiation": "true", + "inherits": "Bambu PPA-CF @base", + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PPA-CF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PPA-CF @base.json new file mode 100644 index 0000000000..d94bae666c --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PPA-CF @base.json @@ -0,0 +1,12 @@ +{ + "type": "filament", + "name": "Bambu PPA-CF @base", + "inherits": "fdm_filament_ppa", + "from": "system", + "filament_id": "GFN06", + "instantiation": "false", + "filament_vendor": [ + "Bambu Lab" + ], + "description": "When printing this filament, there's a risk of nozzle clogging, oozing, warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials." +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PPS-CF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PPS-CF @base.json new file mode 100644 index 0000000000..cef49fe98d --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PPS-CF @base.json @@ -0,0 +1,39 @@ +{ + "type": "filament", + "name": "Bambu PPS-CF @base", + "inherits": "fdm_filament_pps", + "from": "system", + "filament_id": "GFT02", + "instantiation": "false", + "description": "When printing this filament, there's a risk of nozzle clogging, oozing, warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.", + "fan_max_speed": [ + "30" + ], + "filament_cost": [ + "175" + ], + "filament_density": [ + "1.26" + ], + "filament_max_volumetric_speed": [ + "6" + ], + "filament_type": [ + "PPS-CF" + ], + "filament_vendor": [ + "Bambu Lab" + ], + "nozzle_temperature_range_low": [ + "310" + ], + "overhang_fan_threshold": [ + "25%" + ], + "required_nozzle_HRC": [ + "40" + ], + "temperature_vitrification": [ + "220" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PVA @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PVA @System.json new file mode 100644 index 0000000000..60b3eebbf7 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PVA @System.json @@ -0,0 +1,15 @@ +{ + "type": "filament", + "name": "Bambu PVA @System", + "inherits": "Bambu PVA @base", + "from": "system", + "setting_id": "OGFSS04_00", + "instantiation": "true", + "nozzle_temperature": [ + "240" + ], + "nozzle_temperature_initial_layer": [ + "240" + ], + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PVA @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PVA @base.json new file mode 100644 index 0000000000..f9396292cf --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PVA @base.json @@ -0,0 +1,33 @@ +{ + "type": "filament", + "name": "Bambu PVA @base", + "inherits": "fdm_filament_pva", + "from": "system", + "filament_id": "GFS04", + "instantiation": "false", + "description": "This is a water-soluble support filament, and usually it is only for the support structure and not for the model body. Printing this filament is of many requirements, and to get better printing quality, please refer to this wiki: PVA Printing Guide.", + "filament_cost": [ + "79.98" + ], + "filament_density": [ + "1.27" + ], + "filament_max_volumetric_speed": [ + "6" + ], + "filament_vendor": [ + "Bambu Lab" + ], + "nozzle_temperature_range_high": [ + "250" + ], + "nozzle_temperature_range_low": [ + "210" + ], + "slow_down_layer_time": [ + "7" + ], + "slow_down_min_speed": [ + "20" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support For PA PET @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support For PA PET @System.json new file mode 100644 index 0000000000..35788b3ed7 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support For PA PET @System.json @@ -0,0 +1,12 @@ +{ + "type": "filament", + "name": "Bambu Support For PA/PET @System", + "inherits": "Bambu Support For PA/PET @base", + "from": "system", + "setting_id": "OGFSS03_00", + "instantiation": "true", + "chamber_temperatures": [ + "60" + ], + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support For PA PET @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support For PA PET @base.json new file mode 100644 index 0000000000..3166617d72 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support For PA PET @base.json @@ -0,0 +1,36 @@ +{ + "type": "filament", + "name": "Bambu Support For PA/PET @base", + "inherits": "fdm_filament_pa", + "from": "system", + "filament_id": "GFS03", + "instantiation": "false", + "description": "This is a non-water-soluble support filament, and usually it is only for the support structure and not for the model body. To get better printing quality, please refer to this wiki: Printing Tips for Support Filament and Support Function.", + "fan_cooling_layer_time": [ + "10" + ], + "filament_cost": [ + "34.99" + ], + "filament_density": [ + "1.22" + ], + "filament_is_support": [ + "1" + ], + "filament_vendor": [ + "Bambu Lab" + ], + "nozzle_temperature": [ + "280" + ], + "nozzle_temperature_initial_layer": [ + "280" + ], + "required_nozzle_HRC": [ + "3" + ], + "slow_down_layer_time": [ + "6" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support For PLA @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support For PLA @System.json new file mode 100644 index 0000000000..ac1fce2b2d --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support For PLA @System.json @@ -0,0 +1,9 @@ +{ + "type": "filament", + "name": "Bambu Support For PLA @System", + "inherits": "Bambu Support For PLA @base", + "from": "system", + "setting_id": "OGFSS02_02", + "instantiation": "true", + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support For PLA @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support For PLA @base.json new file mode 100644 index 0000000000..4fda6e0010 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support For PLA @base.json @@ -0,0 +1,33 @@ +{ + "type": "filament", + "name": "Bambu Support For PLA @base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFS02", + "instantiation": "false", + "description": "This is a non-water-soluble support filament, and usually it is only for the support structure and not for the model body. To get better printing quality, please refer to this wiki: Printing Tips for Support Filament and Support Function.", + "cool_plate_temp": [ + "40" + ], + "cool_plate_temp_initial_layer": [ + "40" + ], + "filament_cost": [ + "69.98" + ], + "filament_density": [ + "1.30" + ], + "filament_is_support": [ + "1" + ], + "filament_vendor": [ + "Bambu Lab" + ], + "filament_scarf_seam_type": [ + "none" + ], + "slow_down_layer_time": [ + "8" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support For PLA-PETG @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support For PLA-PETG @System.json new file mode 100644 index 0000000000..ae15fb305b --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support For PLA-PETG @System.json @@ -0,0 +1,21 @@ +{ + "type": "filament", + "name": "Bambu Support For PLA/PETG @System", + "inherits": "Bambu Support For PLA/PETG @base", + "from": "system", + "setting_id": "OGFSS05_00", + "instantiation": "true", + "eng_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "filament_long_retractions_when_cut": [ + "1" + ], + "filament_retraction_distances_when_cut": [ + "18" + ], + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support For PLA-PETG @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support For PLA-PETG @base.json new file mode 100644 index 0000000000..6eae3684bf --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support For PLA-PETG @base.json @@ -0,0 +1,60 @@ +{ + "type": "filament", + "name": "Bambu Support For PLA/PETG @base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFS05", + "instantiation": "false", + "description": "This is a non-water-soluble support filament, and usually it is only for the support structure and not for the model body. To get better printing quality, please refer to this wiki: Printing Tips for Support Filament and Support Function.", + "fan_cooling_layer_time": [ + "80" + ], + "fan_max_speed": [ + "30" + ], + "fan_min_speed": [ + "20" + ], + "filament_cost": [ + "69.98" + ], + "filament_density": [ + "1.19" + ], + "filament_is_support": [ + "1" + ], + "filament_max_volumetric_speed": [ + "6" + ], + "filament_scarf_seam_type": [ + "none" + ], + "filament_vendor": [ + "Bambu Lab" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "nozzle_temperature": [ + "210" + ], + "nozzle_temperature_initial_layer": [ + "210" + ], + "slow_down_layer_time": [ + "8" + ], + "supertack_plate_temp_initial_layer": [ + "0" + ], + "textured_plate_temp": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support G @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support G @System.json new file mode 100644 index 0000000000..a5ac0bccbd --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support G @System.json @@ -0,0 +1,9 @@ +{ + "type": "filament", + "name": "Bambu Support G @System", + "inherits": "Bambu Support G @base", + "from": "system", + "setting_id": "OGFSS01", + "instantiation": "true", + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support G @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support G @base.json new file mode 100644 index 0000000000..7a60603cae --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support G @base.json @@ -0,0 +1,39 @@ +{ + "type": "filament", + "name": "Bambu Support G @base", + "inherits": "fdm_filament_pa", + "from": "system", + "filament_id": "GFS01", + "instantiation": "false", + "description": "This is a non-water-soluble support filament, and usually it is only for the support structure and not for the model body. To get better printing quality, please refer to this wiki: Printing Tips for Support Filament and Support Function.", + "fan_cooling_layer_time": [ + "10" + ], + "filament_cost": [ + "34.99" + ], + "filament_density": [ + "1.22" + ], + "filament_is_support": [ + "1" + ], + "filament_vendor": [ + "Bambu Lab" + ], + "nozzle_temperature": [ + "280" + ], + "nozzle_temperature_initial_layer": [ + "280" + ], + "required_nozzle_HRC": [ + "3" + ], + "filament_scarf_seam_type": [ + "none" + ], + "slow_down_layer_time": [ + "6" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support W @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support W @System.json new file mode 100644 index 0000000000..1bfd7ac7c0 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support W @System.json @@ -0,0 +1,9 @@ +{ + "type": "filament", + "name": "Bambu Support W @System", + "inherits": "Bambu Support W @base", + "from": "system", + "setting_id": "OGFSS00", + "instantiation": "true", + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support W @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support W @base.json new file mode 100644 index 0000000000..d94a54812e --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support W @base.json @@ -0,0 +1,33 @@ +{ + "type": "filament", + "name": "Bambu Support W @base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFS00", + "instantiation": "false", + "description": "This is a non-water-soluble support filament, and usually it is only for the support structure and not for the model body. To get better printing quality, please refer to this wiki: Printing Tips for Support Filament and Support Function.", + "cool_plate_temp": [ + "40" + ], + "cool_plate_temp_initial_layer": [ + "40" + ], + "filament_cost": [ + "69.98" + ], + "filament_density": [ + "1.30" + ], + "filament_is_support": [ + "1" + ], + "filament_vendor": [ + "Bambu Lab" + ], + "filament_scarf_seam_type": [ + "none" + ], + "slow_down_layer_time": [ + "8" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support for ABS @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support for ABS @System.json new file mode 100644 index 0000000000..ab731f129c --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support for ABS @System.json @@ -0,0 +1,15 @@ +{ + "type": "filament", + "name": "Bambu Support for ABS @System", + "inherits": "Bambu Support for ABS @base", + "from": "system", + "setting_id": "OGFSS06_00", + "instantiation": "true", + "filament_long_retractions_when_cut": [ + "1" + ], + "filament_retraction_distances_when_cut": [ + "18" + ], + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support for ABS @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support for ABS @base.json new file mode 100644 index 0000000000..3bd74d4d96 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support for ABS @base.json @@ -0,0 +1,39 @@ +{ + "type": "filament", + "name": "Bambu Support for ABS @base", + "inherits": "fdm_filament_abs", + "from": "system", + "filament_id": "GFS06", + "instantiation": "false", + "description": "This is a non-water-soluble support filament, and usually it is only for the support structure and not for the model body. To get better printing quality, please refer to this wiki: Printing Tips for Support Filament and Support Function.", + "fan_max_speed": [ + "30" + ], + "filament_cost": [ + "29.98" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "1" + ], + "filament_max_volumetric_speed": [ + "6" + ], + "filament_vendor": [ + "Bambu Lab" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "slow_down_layer_time": [ + "12" + ], + "filament_scarf_seam_type": [ + "none" + ], + "temperature_vitrification": [ + "90" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu TPU 95A @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu TPU 95A @System.json new file mode 100644 index 0000000000..9c3e2443b0 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu TPU 95A @System.json @@ -0,0 +1,12 @@ +{ + "type": "filament", + "name": "Bambu TPU 95A @System", + "inherits": "Bambu TPU 95A @base", + "from": "system", + "setting_id": "OGFSU00", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "3.6" + ], + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu TPU 95A @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu TPU 95A @base.json new file mode 100644 index 0000000000..eb0555633a --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu TPU 95A @base.json @@ -0,0 +1,24 @@ +{ + "type": "filament", + "name": "Bambu TPU 95A @base", + "inherits": "fdm_filament_tpu", + "from": "system", + "filament_id": "GFU01", + "instantiation": "false", + "description": "This filament is too soft and not compatible with the AMS. Printing it is of many requirements, and to get better printing quality, please refer to this wiki: TPU printing guide.", + "filament_cost": [ + "41.99" + ], + "filament_density": [ + "1.22" + ], + "filament_vendor": [ + "Bambu Lab" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu TPU 95A HF @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu TPU 95A HF @System.json new file mode 100644 index 0000000000..a96aacc331 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu TPU 95A HF @System.json @@ -0,0 +1,9 @@ +{ + "type": "filament", + "name": "Bambu TPU 95A HF @System", + "inherits": "Bambu TPU 95A HF @base", + "from": "system", + "setting_id": "OGFSU00_00", + "instantiation": "true", + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu TPU 95A HF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu TPU 95A HF @base.json new file mode 100644 index 0000000000..6deab30b35 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu TPU 95A HF @base.json @@ -0,0 +1,30 @@ +{ + "type": "filament", + "name": "Bambu TPU 95A HF @base", + "inherits": "fdm_filament_tpu", + "from": "system", + "filament_id": "GFU00", + "instantiation": "false", + "description": "This filament is too soft and not compatible with the AMS. Printing it is of many requirements, and to get better printing quality, please refer to this wiki: TPU printing guide.", + "filament_cost": [ + "41.99" + ], + "filament_density": [ + "1.22" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_retraction_length": [ + "0.8" + ], + "filament_vendor": [ + "Bambu Lab" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic ABS @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic ABS @System.json new file mode 100644 index 0000000000..518f53a614 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic ABS @System.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "setting_id": "OGFSA04", + "name": "Generic ABS @System", + "from": "system", + "instantiation": "true", + "renamed_from": "My Generic ABS", + "inherits": "fdm_filament_abs", + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic ASA @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic ASA @System.json new file mode 100644 index 0000000000..95f34f416a --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic ASA @System.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "filament_id": "GFB98", + "setting_id": "OGFSA04", + "name": "Generic ASA @System", + "from": "system", + "instantiation": "true", + "renamed_from": "My Generic ASA", + "inherits": "fdm_filament_asa", + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic BVOH @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic BVOH @System.json new file mode 100644 index 0000000000..383730da1b --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic BVOH @System.json @@ -0,0 +1,9 @@ +{ + "type": "filament", + "name": "Generic BVOH @System", + "inherits": "fdm_filament_bvoh", + "from": "system", + "setting_id": "OGFSS97_00", + "instantiation": "true", + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic EVA @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic EVA @System.json new file mode 100644 index 0000000000..05fc6f7061 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic EVA @System.json @@ -0,0 +1,10 @@ +{ + "type": "filament", + "name": "Generic EVA @System", + "inherits": "fdm_filament_eva", + "from": "system", + "setting_id": "OGFSR99_00", + "instantiation": "true", + "description": "This is neither a commonly used filament, nor one of Bambu filaments, and it varies a lot from brand to brand. So, it's highly recommended to ask its vendor for suitable profile before printing and adjust some parameters according to its performances.", + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic HIPS @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic HIPS @System.json new file mode 100644 index 0000000000..af3541c6c6 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic HIPS @System.json @@ -0,0 +1,9 @@ +{ + "type": "filament", + "name": "Generic HIPS @System", + "inherits": "fdm_filament_hips", + "from": "system", + "setting_id": "OGFSS98_00", + "instantiation": "true", + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PA @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PA @System.json new file mode 100644 index 0000000000..4e28b8d3f4 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PA @System.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "filament_id": "GFN99", + "setting_id": "OGFSA04", + "name": "Generic PA @System", + "from": "system", + "instantiation": "true", + "renamed_from": "My Generic PA", + "inherits": "fdm_filament_pa", + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PA-CF @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PA-CF @System.json new file mode 100644 index 0000000000..2f91467a13 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PA-CF @System.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "filament_id": "GFN98", + "setting_id": "OGFSA04", + "name": "Generic PA-CF @System", + "from": "system", + "instantiation": "true", + "renamed_from": "My Generic PA-CF", + "inherits": "fdm_filament_pa", + "filament_type": [ + "PA-CF" + ], + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PC @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PC @System.json new file mode 100644 index 0000000000..1724ee008c --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PC @System.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "filament_id": "GFC99", + "setting_id": "OGFSA04", + "name": "Generic PC @System", + "from": "system", + "instantiation": "true", + "renamed_from": "My Generic PC", + "inherits": "fdm_filament_pc", + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PCTG @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PCTG @System.json new file mode 100644 index 0000000000..fb402b2414 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PCTG @System.json @@ -0,0 +1,9 @@ +{ + "type": "filament", + "name": "Generic PCTG @System", + "inherits": "fdm_filament_pctg", + "from": "system", + "setting_id": "OGFSG97_00", + "instantiation": "true", + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PE @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PE @System.json new file mode 100644 index 0000000000..9da06f5e0e --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PE @System.json @@ -0,0 +1,10 @@ +{ + "type": "filament", + "name": "Generic PE @System", + "inherits": "fdm_filament_pe", + "from": "system", + "setting_id": "OGFSP99_00", + "instantiation": "true", + "description": "This is neither a commonly used filament, nor one of Bambu filaments, and it varies a lot from brand to brand. So, it's highly recommended to ask its vendor for suitable profile before printing and adjust some parameters according to its performances.", + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PE-CF @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PE-CF @System.json new file mode 100644 index 0000000000..337d596a9d --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PE-CF @System.json @@ -0,0 +1,9 @@ +{ + "type": "filament", + "name": "Generic PE-CF @System", + "inherits": "fdm_filament_pe", + "from": "system", + "setting_id": "OGFSP98_00", + "instantiation": "true", + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PETG @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PETG @System.json new file mode 100644 index 0000000000..14fcba533c --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PETG @System.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "filament_id": "GFG99", + "setting_id": "OGFSA04", + "name": "Generic PETG @System", + "from": "system", + "instantiation": "true", + "renamed_from": "My Generic PETG", + "inherits": "fdm_filament_pet", + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PETG HF @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PETG HF @System.json new file mode 100644 index 0000000000..d749767884 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PETG HF @System.json @@ -0,0 +1,12 @@ +{ + "type": "filament", + "name": "Generic PETG HF @System", + "inherits": "fdm_filament_pet", + "from": "system", + "setting_id": "OGFSG96_00", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "20" + ], + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PETG-CF @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PETG-CF @System.json new file mode 100644 index 0000000000..e5d34272e6 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PETG-CF @System.json @@ -0,0 +1,24 @@ +{ + "type": "filament", + "name": "Generic PETG-CF @System", + "inherits": "fdm_filament_pet", + "from": "system", + "setting_id": "OGFSG50", + "instantiation": "true", + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "5" + ], + "filament_max_volumetric_speed": [ + "11.5" + ], + "overhang_fan_speed": [ + "100" + ], + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PHA @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PHA @System.json new file mode 100644 index 0000000000..8cdc7727c6 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PHA @System.json @@ -0,0 +1,10 @@ +{ + "type": "filament", + "name": "Generic PHA @System", + "inherits": "fdm_filament_pha", + "from": "system", + "setting_id": "OGFSR98_00", + "instantiation": "true", + "description": "This is neither a commonly used filament, nor one of Bambu filaments, and it varies a lot from brand to brand. So, it's highly recommended to ask its vendor for suitable profile before printing and adjust some parameters according to its performances.", + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PLA @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PLA @System.json new file mode 100644 index 0000000000..de33d3d27d --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PLA @System.json @@ -0,0 +1,10 @@ +{ + "type": "filament", + "setting_id": "OGFSA04", + "name": "Generic PLA @System", + "from": "system", + "instantiation": "true", + "renamed_from": "My Generic PLA", + "inherits": "fdm_filament_pla", + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PLA High Speed @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PLA High Speed @System.json new file mode 100644 index 0000000000..c9b41a937c --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PLA High Speed @System.json @@ -0,0 +1,22 @@ +{ + "type": "filament", + "name": "Generic PLA High Speed @System", + "inherits": "fdm_filament_pla", + "filament_id": "GFL95", + "from": "system", + "setting_id": "OGFSL95_00", + "instantiation": "true", + "filament_flow_ratio": [ + "0.98" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "slow_down_layer_time": [ + "4" + ], + "compatible_printers": [], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PLA Matte @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PLA Matte @System.json new file mode 100644 index 0000000000..eee08348a0 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PLA Matte @System.json @@ -0,0 +1,15 @@ +{ + "type": "filament", + "name": "Generic PLA Matte @System", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "OGFSL99_02", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "11" + ], + "filament_retraction_length": [ + "0.8" + ], + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PLA Silk @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PLA Silk @System.json new file mode 100644 index 0000000000..a1c7e90cdc --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PLA Silk @System.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "name": "Generic PLA Silk @System", + "inherits": "fdm_filament_pla_silk", + "renamed_from": "Generic Silk PLA @System", + "from": "system", + "setting_id": "OGFSL99_01", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "7.5" + ], + "filament_retraction_length": [ + "0.5" + ], + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PLA-CF @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PLA-CF @System.json new file mode 100644 index 0000000000..d6bb799618 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PLA-CF @System.json @@ -0,0 +1,17 @@ +{ + "type": "filament", + "filament_id": "GFL98", + "setting_id": "OGFSA04", + "name": "Generic PLA-CF @System", + "from": "system", + "instantiation": "true", + "renamed_from": "My Generic PLA-CF", + "inherits": "fdm_filament_pla", + "filament_flow_ratio": [ + "0.95" + ], + "filament_type": [ + "PLA-CF" + ], + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PP @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PP @System.json new file mode 100644 index 0000000000..be923c7360 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PP @System.json @@ -0,0 +1,10 @@ +{ + "type": "filament", + "name": "Generic PP @System", + "inherits": "fdm_filament_pp", + "from": "system", + "setting_id": "OGFSP97_00", + "instantiation": "true", + "description": "This is neither a commonly used filament, nor one of Bambu filaments, and it varies a lot from brand to brand. So, it's highly recommended to ask its vendor for suitable profile before printing and adjust some parameters according to its performances.", + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PP-CF @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PP-CF @System.json new file mode 100644 index 0000000000..8919cebaf4 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PP-CF @System.json @@ -0,0 +1,22 @@ +{ + "type": "filament", + "name": "Generic PP-CF @System", + "inherits": "fdm_filament_pp", + "from": "system", + "setting_id": "OGFSP96_00", + "instantiation": "true", + "description": "This is neither a commonly used filament, nor one of Bambu filaments, and it varies a lot from brand to brand. So, it's highly recommended to ask its vendor for suitable profile before printing and adjust some parameters according to its performances.", + "filament_cost": [ + "77.99" + ], + "filament_density": [ + "1.01" + ], + "filament_max_volumetric_speed": [ + "6" + ], + "filament_type": [ + "PP-CF" + ], + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PP-GF @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PP-GF @System.json new file mode 100644 index 0000000000..11cebe36cc --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PP-GF @System.json @@ -0,0 +1,22 @@ +{ + "type": "filament", + "name": "Generic PP-GF @System", + "inherits": "fdm_filament_pp", + "from": "system", + "setting_id": "OGFSP97_03", + "instantiation": "true", + "description": "This is neither a commonly used filament, nor one of Bambu filaments, and it varies a lot from brand to brand. So, it's highly recommended to ask its vendor for suitable profile before printing and adjust some parameters according to its performances.", + "filament_cost": [ + "59.99" + ], + "filament_density": [ + "1.05" + ], + "filament_max_volumetric_speed": [ + "6" + ], + "filament_type": [ + "PP-GF" + ], + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PPA-CF @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PPA-CF @System.json new file mode 100644 index 0000000000..408d752cec --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PPA-CF @System.json @@ -0,0 +1,21 @@ +{ + "type": "filament", + "name": "Generic PPA-CF @System", + "inherits": "fdm_filament_ppa", + "from": "system", + "setting_id": "OGFSN97_00", + "instantiation": "true", + "fan_max_speed": [ + "35" + ], + "filament_max_volumetric_speed": [ + "6.5" + ], + "overhang_fan_threshold": [ + "25%" + ], + "filament_type": [ + "PPA-CF" + ], + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PPA-GF @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PPA-GF @System.json new file mode 100644 index 0000000000..57ee34719d --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PPA-GF @System.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "name": "Generic PPA-GF @System", + "inherits": "fdm_filament_ppa", + "filament_id": "GFN96", + "from": "system", + "setting_id": "OGFSN96_00", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "6" + ], + "filament_type": [ + "PPA-GF" + ], + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PVA @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PVA @System.json new file mode 100644 index 0000000000..20b1c491ff --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PVA @System.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "filament_id": "GFS99", + "setting_id": "OGFSA04", + "name": "Generic PVA @System", + "from": "system", + "instantiation": "true", + "renamed_from": "My Generic PVA", + "inherits": "fdm_filament_pva", + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic SBS @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic SBS @System.json new file mode 100644 index 0000000000..3847e3706c --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic SBS @System.json @@ -0,0 +1,9 @@ +{ + "type": "filament", + "name": "Generic SBS @System", + "inherits": "fdm_filament_sbs", + "from": "system", + "setting_id": "OGFSL99", + "instantiation": "true", + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic TPU @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic TPU @System.json new file mode 100644 index 0000000000..137d30dca6 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic TPU @System.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "filament_id": "GFU99", + "setting_id": "OGFSA04", + "name": "Generic TPU @System", + "from": "system", + "instantiation": "true", + "renamed_from": "My Generic TPU", + "inherits": "fdm_filament_tpu", + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Overture/Overture Matte PLA @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Overture/Overture Matte PLA @System.json new file mode 100644 index 0000000000..06772e2e25 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Overture/Overture Matte PLA @System.json @@ -0,0 +1,12 @@ +{ + "type": "filament", + "name": "Overture Matte PLA @System", + "inherits": "Overture Matte PLA @base", + "from": "system", + "setting_id": "OGFSL05_00", + "instantiation": "true", + "compatible_printers": [], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Overture/Overture Matte PLA @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Overture/Overture Matte PLA @base.json new file mode 100644 index 0000000000..7e9e9a1c0b --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Overture/Overture Matte PLA @base.json @@ -0,0 +1,26 @@ +{ + "type": "filament", + "name": "Overture Matte PLA @base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFL05", + "instantiation": "false", + "filament_cost": [ + "24.52" + ], + "filament_density": [ + "1.22" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_vendor": [ + "Overture" + ], + "slow_down_layer_time": [ + "6" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Overture/Overture PLA @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Overture/Overture PLA @System.json new file mode 100644 index 0000000000..b76012a175 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Overture/Overture PLA @System.json @@ -0,0 +1,12 @@ +{ + "type": "filament", + "name": "Overture PLA @System", + "inherits": "Overture PLA @base", + "from": "system", + "setting_id": "OGFSL04_05", + "instantiation": "true", + "compatible_printers": [], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Overture/Overture PLA @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Overture/Overture PLA @base.json new file mode 100644 index 0000000000..18e711b03c --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Overture/Overture PLA @base.json @@ -0,0 +1,26 @@ +{ + "type": "filament", + "name": "Overture PLA @base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFL04", + "instantiation": "false", + "filament_cost": [ + "24.15" + ], + "filament_density": [ + "1.2" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_vendor": [ + "Overture" + ], + "slow_down_layer_time": [ + "6" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PA12-CF @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PA12-CF @System.json new file mode 100644 index 0000000000..0b8c00c3b9 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PA12-CF @System.json @@ -0,0 +1,9 @@ +{ + "type": "filament", + "name": "Fiberon PA12-CF @System", + "inherits": "Fiberon PA12-CF @base", + "from": "system", + "setting_id": "OGFSL52_00", + "instantiation": "true", + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PA12-CF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PA12-CF @base.json new file mode 100644 index 0000000000..e2a5bf6475 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PA12-CF @base.json @@ -0,0 +1,71 @@ +{ + "type": "filament", + "name": "Fiberon PA12-CF @base", + "inherits": "fdm_filament_pa", + "from": "system", + "filament_id": "GFL52", + "instantiation": "false", + "eng_plate_temp": [ + "40" + ], + "eng_plate_temp_initial_layer": [ + "40" + ], + "fan_cooling_layer_time": [ + "15" + ], + "fan_max_speed": [ + "100" + ], + "filament_cost": [ + "99.99" + ], + "filament_density": [ + "1.06" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_max_volumetric_speed": [ + "14" + ], + "filament_type": [ + "PA-CF" + ], + "filament_vendor": [ + "Polymaker" + ], + "full_fan_speed_layer": [ + "2" + ], + "hot_plate_temp": [ + "40" + ], + "hot_plate_temp_initial_layer": [ + "40" + ], + "nozzle_temperature": [ + "300" + ], + "nozzle_temperature_initial_layer": [ + "300" + ], + "nozzle_temperature_range_low": [ + "260" + ], + "overhang_fan_speed": [ + "100" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "temperature_vitrification": [ + "131" + ], + "textured_plate_temp": [ + "40" + ], + "textured_plate_temp_initial_layer": [ + "40" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PA6-CF @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PA6-CF @System.json new file mode 100644 index 0000000000..1b0e99f84f --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PA6-CF @System.json @@ -0,0 +1,9 @@ +{ + "type": "filament", + "name": "Fiberon PA6-CF @System", + "inherits": "Fiberon PA6-CF @base", + "from": "system", + "setting_id": "OGFSL50_00", + "instantiation": "true", + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PA6-CF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PA6-CF @base.json new file mode 100644 index 0000000000..9d59fba6a8 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PA6-CF @base.json @@ -0,0 +1,68 @@ +{ + "type": "filament", + "name": "Fiberon PA6-CF @base", + "inherits": "fdm_filament_pa", + "from": "system", + "filament_id": "GFL50", + "instantiation": "false", + "eng_plate_temp": [ + "40" + ], + "eng_plate_temp_initial_layer": [ + "40" + ], + "fan_cooling_layer_time": [ + "15" + ], + "fan_max_speed": [ + "100" + ], + "filament_cost": [ + "83.99" + ], + "filament_density": [ + "1.17" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_type": [ + "PA6-CF" + ], + "filament_vendor": [ + "Polymaker" + ], + "hot_plate_temp": [ + "40" + ], + "hot_plate_temp_initial_layer": [ + "40" + ], + "nozzle_temperature": [ + "300" + ], + "nozzle_temperature_initial_layer": [ + "300" + ], + "nozzle_temperature_range_low": [ + "280" + ], + "overhang_fan_speed": [ + "100" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "temperature_vitrification": [ + "215" + ], + "textured_plate_temp": [ + "40" + ], + "textured_plate_temp_initial_layer": [ + "40" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PA6-GF @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PA6-GF @System.json new file mode 100644 index 0000000000..f774cf1741 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PA6-GF @System.json @@ -0,0 +1,9 @@ +{ + "type": "filament", + "name": "Fiberon PA6-GF @System", + "inherits": "Fiberon PA6-GF @base", + "from": "system", + "setting_id": "OGFSL51_00", + "instantiation": "true", + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PA6-GF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PA6-GF @base.json new file mode 100644 index 0000000000..9ab9237e7b --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PA6-GF @base.json @@ -0,0 +1,71 @@ +{ + "type": "filament", + "name": "Fiberon PA6-GF @base", + "inherits": "fdm_filament_pa", + "from": "system", + "filament_id": "GFL51", + "instantiation": "false", + "eng_plate_temp": [ + "40" + ], + "eng_plate_temp_initial_layer": [ + "40" + ], + "fan_cooling_layer_time": [ + "15" + ], + "fan_max_speed": [ + "100" + ], + "filament_cost": [ + "63.99" + ], + "filament_density": [ + "1.2" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_type": [ + "PA-GF" + ], + "filament_vendor": [ + "Polymaker" + ], + "full_fan_speed_layer": [ + "2" + ], + "hot_plate_temp": [ + "40" + ], + "hot_plate_temp_initial_layer": [ + "40" + ], + "nozzle_temperature": [ + "300" + ], + "nozzle_temperature_initial_layer": [ + "300" + ], + "nozzle_temperature_range_low": [ + "280" + ], + "overhang_fan_speed": [ + "100" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "temperature_vitrification": [ + "191" + ], + "textured_plate_temp": [ + "40" + ], + "textured_plate_temp_initial_layer": [ + "40" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PA612-CF @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PA612-CF @System.json new file mode 100644 index 0000000000..7f297ae5da --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PA612-CF @System.json @@ -0,0 +1,9 @@ +{ + "type": "filament", + "name": "Fiberon PA612-CF @System", + "inherits": "Fiberon PA612-CF @base", + "from": "system", + "setting_id": "OGFSL53_00", + "instantiation": "true", + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PA612-CF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PA612-CF @base.json new file mode 100644 index 0000000000..f545b1e1fb --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PA612-CF @base.json @@ -0,0 +1,41 @@ +{ + "type": "filament", + "name": "Fiberon PA612-CF @base", + "inherits": "fdm_filament_pa", + "from": "system", + "filament_id": "GFL53", + "instantiation": "false", + "fan_cooling_layer_time": [ + "5" + ], + "fan_max_speed": [ + "30" + ], + "fan_min_speed": [ + "10" + ], + "filament_cost": [ + "94.99" + ], + "filament_density": [ + "1.06" + ], + "filament_flow_ratio": [ + "0.96" + ], + "filament_vendor": [ + "Polymaker" + ], + "full_fan_speed_layer": [ + "2" + ], + "overhang_fan_speed": [ + "40" + ], + "overhang_fan_threshold": [ + "0%" + ], + "temperature_vitrification": [ + "180" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PET-CF @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PET-CF @System.json new file mode 100644 index 0000000000..9a0d2edec8 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PET-CF @System.json @@ -0,0 +1,9 @@ +{ + "type": "filament", + "name": "Fiberon PET-CF @System", + "inherits": "Fiberon PET-CF @base", + "from": "system", + "setting_id": "OGFSL54_00", + "instantiation": "true", + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PET-CF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PET-CF @base.json new file mode 100644 index 0000000000..c54e0d7ebd --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PET-CF @base.json @@ -0,0 +1,86 @@ +{ + "type": "filament", + "name": "Fiberon PET-CF @base", + "inherits": "fdm_filament_pet", + "from": "system", + "filament_id": "GFL54", + "instantiation": "false", + "cool_plate_temp": [ + "0" + ], + "cool_plate_temp_initial_layer": [ + "0" + ], + "eng_plate_temp": [ + "70" + ], + "eng_plate_temp_initial_layer": [ + "70" + ], + "fan_cooling_layer_time": [ + "242" + ], + "fan_min_speed": [ + "0" + ], + "filament_cost": [ + "89.99" + ], + "filament_density": [ + "1.34" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_type": [ + "PET-CF" + ], + "filament_vendor": [ + "Polymaker" + ], + "hot_plate_temp": [ + "70" + ], + "hot_plate_temp_initial_layer": [ + "70" + ], + "nozzle_temperature": [ + "300" + ], + "nozzle_temperature_initial_layer": [ + "300" + ], + "nozzle_temperature_range_high": [ + "300" + ], + "nozzle_temperature_range_low": [ + "270" + ], + "required_nozzle_HRC": [ + "40" + ], + "supertack_plate_temp": [ + "80" + ], + "supertack_plate_temp_initial_layer": [ + "80" + ], + "slow_down_layer_time": [ + "5" + ], + "slow_down_min_speed": [ + "20" + ], + "temperature_vitrification": [ + "147" + ], + "textured_plate_temp": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "70" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PETG-ESD @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PETG-ESD @System.json new file mode 100644 index 0000000000..14bca9c515 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PETG-ESD @System.json @@ -0,0 +1,12 @@ +{ + "type": "filament", + "name": "Fiberon PETG-ESD @System", + "inherits": "Fiberon PETG-ESD @base", + "from": "system", + "setting_id": "OGFSL06_00", + "instantiation": "true", + "filament_cost": [ + "29.99" + ], + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/Kingroon/filament/fdm_filament_pa.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PETG-ESD @base.json similarity index 52% rename from resources/profiles/Kingroon/filament/fdm_filament_pa.json rename to resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PETG-ESD @base.json index e75e2e9f6c..6840342767 100644 --- a/resources/profiles/Kingroon/filament/fdm_filament_pa.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PETG-ESD @base.json @@ -1,79 +1,74 @@ { "type": "filament", - "name": "fdm_filament_pa", + "name": "Fiberon PETG-ESD @base", + "inherits": "fdm_filament_pet", "from": "system", + "filament_id": "GFL06", "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ + "cool_plate_temp": [ "0" ], - "eng_plate_temp" : [ - "100" - ], - "hot_plate_temp" : [ - "100" - ], - "cool_plate_temp_initial_layer" : [ + "cool_plate_temp_initial_layer": [ "0" ], - "eng_plate_temp_initial_layer" : [ - "100" + "eng_plate_temp": [ + "60" ], - "hot_plate_temp_initial_layer" : [ - "100" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" + "eng_plate_temp_initial_layer": [ + "60" ], "fan_cooling_layer_time": [ - "4" - ], - "filament_max_volumetric_speed": [ - "8" - ], - "filament_type": [ - "PA" - ], - "filament_density": [ - "1.04" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "290" - ], - "reduce_fan_stop_start_freq": [ - "0" - ], - "fan_max_speed": [ - "60" + "15" ], "fan_min_speed": [ "0" ], - "overhang_fan_speed": [ - "30" + "filament_cost": [ + "0" + ], + "filament_density": [ + "1.24" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_vendor": [ + "Polymaker" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" ], "nozzle_temperature": [ "290" ], - "temperature_vitrification": [ - "108" - ], - "nozzle_temperature_range_low": [ - "270" + "nozzle_temperature_initial_layer": [ + "290" ], "nozzle_temperature_range_high": [ - "300" + "290" ], - "slow_down_min_speed": [ - "10" + "nozzle_temperature_range_low": [ + "250" ], "slow_down_layer_time": [ "2" + ], + "slow_down_min_speed": [ + "20" + ], + "temperature_vitrification": [ + "76" + ], + "textured_plate_temp": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" ] -} +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PETG-rCF @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PETG-rCF @System.json new file mode 100644 index 0000000000..5c661c15b0 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PETG-rCF @System.json @@ -0,0 +1,9 @@ +{ + "type": "filament", + "name": "Fiberon PETG-rCF @System", + "inherits": "Fiberon PETG-rCF @base", + "from": "system", + "setting_id": "OGFSL55_00", + "instantiation": "true", + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PETG-rCF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PETG-rCF @base.json new file mode 100644 index 0000000000..6f31483a4e --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PETG-rCF @base.json @@ -0,0 +1,77 @@ +{ + "type": "filament", + "name": "Fiberon PETG-rCF @base", + "inherits": "fdm_filament_pet", + "from": "system", + "filament_id": "GFL55", + "instantiation": "false", + "cool_plate_temp": [ + "0" + ], + "cool_plate_temp_initial_layer": [ + "0" + ], + "eng_plate_temp": [ + "70" + ], + "eng_plate_temp_initial_layer": [ + "70" + ], + "fan_cooling_layer_time": [ + "12" + ], + "fan_min_speed": [ + "0" + ], + "filament_cost": [ + "39.99" + ], + "filament_density": [ + "1.3" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_type": [ + "PETG-CF" + ], + "filament_vendor": [ + "Polymaker" + ], + "hot_plate_temp": [ + "70" + ], + "hot_plate_temp_initial_layer": [ + "70" + ], + "nozzle_temperature": [ + "270" + ], + "nozzle_temperature_initial_layer": [ + "270" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "240" + ], + "required_nozzle_HRC": [ + "40" + ], + "slow_down_layer_time": [ + "2" + ], + "slow_down_min_speed": [ + "20" + ], + "textured_plate_temp": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "70" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite ABS @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite ABS @System.json new file mode 100644 index 0000000000..2ee4e44656 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite ABS @System.json @@ -0,0 +1,9 @@ +{ + "type": "filament", + "name": "PolyLite ABS @System", + "inherits": "PolyLite ABS @base", + "from": "system", + "setting_id": "OGFSB60_00", + "instantiation": "true", + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite ABS @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite ABS @base.json new file mode 100644 index 0000000000..539a1d1fc2 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite ABS @base.json @@ -0,0 +1,23 @@ +{ + "type": "filament", + "name": "PolyLite ABS @base", + "inherits": "fdm_filament_abs", + "from": "system", + "filament_id": "GFB60", + "instantiation": "false", + "filament_cost": [ + "26.9" + ], + "filament_density": [ + "1.03" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_vendor": [ + "Polymaker" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite ASA @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite ASA @System.json new file mode 100644 index 0000000000..09128d7e07 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite ASA @System.json @@ -0,0 +1,9 @@ +{ + "type": "filament", + "name": "PolyLite ASA @System", + "inherits": "PolyLite ASA @base", + "from": "system", + "setting_id": "OGFSB61_00", + "instantiation": "true", + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite ASA @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite ASA @base.json new file mode 100644 index 0000000000..d29a9a2aa5 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite ASA @base.json @@ -0,0 +1,41 @@ +{ + "type": "filament", + "name": "PolyLite ASA @base", + "inherits": "fdm_filament_asa", + "from": "system", + "filament_id": "GFB61", + "instantiation": "false", + "eng_plate_temp": [ + "100" + ], + "eng_plate_temp_initial_layer": [ + "100" + ], + "filament_cost": [ + "23.6" + ], + "filament_density": [ + "1.02" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_vendor": [ + "Polymaker" + ], + "hot_plate_temp": [ + "100" + ], + "hot_plate_temp_initial_layer": [ + "100" + ], + "textured_plate_temp": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "100" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite Dual PLA @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite Dual PLA @System.json new file mode 100644 index 0000000000..24d06bfea9 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite Dual PLA @System.json @@ -0,0 +1,10 @@ +{ + "type": "filament", + "from": "system", + "instantiation": "true", + "name": "PolyLite Dual PLA @System", + "renamed_from": "PolyLite Dual PLA", + "setting_id": "O64868365", + "inherits": "PolyLite PLA @base", + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite PETG @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite PETG @System.json new file mode 100644 index 0000000000..f9bafcec56 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite PETG @System.json @@ -0,0 +1,15 @@ +{ + "type": "filament", + "name": "PolyLite PETG @System", + "inherits": "PolyLite PETG @base", + "from": "system", + "setting_id": "OGFSG60_00", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "11.5" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite PETG @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite PETG @base.json new file mode 100644 index 0000000000..d93701f41d --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite PETG @base.json @@ -0,0 +1,59 @@ +{ + "type": "filament", + "name": "PolyLite PETG @base", + "inherits": "fdm_filament_pet", + "from": "system", + "filament_id": "GFG60", + "instantiation": "false", + "cool_plate_temp": [ + "0" + ], + "cool_plate_temp_initial_layer": [ + "0" + ], + "eng_plate_temp": [ + "70" + ], + "eng_plate_temp_initial_layer": [ + "70" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "90" + ], + "fan_min_speed": [ + "40" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_vendor": [ + "Polymaker" + ], + "hot_plate_temp": [ + "70" + ], + "hot_plate_temp_initial_layer": [ + "70" + ], + "overhang_fan_speed": [ + "90" + ], + "overhang_fan_threshold": [ + "10%" + ], + "slow_down_layer_time": [ + "12" + ], + "slow_down_min_speed": [ + "20" + ], + "textured_plate_temp": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "70" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite PLA @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite PLA @System.json new file mode 100644 index 0000000000..921e9c6836 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite PLA @System.json @@ -0,0 +1,15 @@ +{ + "type": "filament", + "name": "PolyLite PLA @System", + "inherits": "PolyLite PLA @base", + "from": "system", + "setting_id": "OGFSL19", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "15" + ], + "compatible_printers": [], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite PLA @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite PLA @base.json new file mode 100644 index 0000000000..1e7f4d16b7 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite PLA @base.json @@ -0,0 +1,17 @@ +{ + "type": "filament", + "name": "PolyLite PLA @base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFL00", + "instantiation": "false", + "filament_cost": [ + "25.4" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_vendor": [ + "Polymaker" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyTerra Dual PLA @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyTerra Dual PLA @System.json new file mode 100644 index 0000000000..b2b4efd5e7 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyTerra Dual PLA @System.json @@ -0,0 +1,10 @@ +{ + "type": "filament", + "from": "system", + "instantiation": "true", + "name": "PolyTerra Dual PLA @System", + "renamed_from": "PolyTerra Dual PLA", + "setting_id": "O1258005940", + "inherits": "PolyTerra PLA @base", + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyTerra PLA @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyTerra PLA @System.json new file mode 100644 index 0000000000..b6def8a37e --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyTerra PLA @System.json @@ -0,0 +1,13 @@ +{ + "type": "filament", + "name": "PolyTerra PLA @System", + "inherits": "PolyTerra PLA @base", + "renamed_from": "PolyTerra PLA", + "from": "system", + "setting_id": "OGFSL18", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "22" + ], + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyTerra PLA @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyTerra PLA @base.json new file mode 100644 index 0000000000..2deb2d9141 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyTerra PLA @base.json @@ -0,0 +1,20 @@ +{ + "type": "filament", + "name": "PolyTerra PLA @base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFL01", + "instantiation": "false", + "filament_cost": [ + "25.4" + ], + "filament_density": [ + "1.31" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_vendor": [ + "Polymaker" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU Marble PLA @System.json b/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU Marble PLA @System.json new file mode 100644 index 0000000000..620d2bf9d6 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU Marble PLA @System.json @@ -0,0 +1,18 @@ +{ + "type": "filament", + "name": "SUNLU PLA Marble @System", + "inherits": "SUNLU PLA Marble @base", + "from": "system", + "setting_id": "OSNLS06", + "instantiation": "true", + "filament_long_retractions_when_cut": [ + "1" + ], + "filament_retraction_distances_when_cut": [ + "18" + ], + "compatible_printers": [], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\nM142 P1 R35 S40\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU Marble PLA @base.json b/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU Marble PLA @base.json new file mode 100644 index 0000000000..5e4dfa6f87 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU Marble PLA @base.json @@ -0,0 +1,23 @@ +{ + "type": "filament", + "name": "SUNLU PLA Marble @base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "SNL06", + "instantiation": "false", + "filament_cost": [ + "31.99" + ], + "filament_density": [ + "1.25" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_vendor": [ + "SUNLU" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU PETG @System.json b/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU PETG @System.json new file mode 100644 index 0000000000..76cffa684c --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU PETG @System.json @@ -0,0 +1,18 @@ +{ + "type": "filament", + "name": "SUNLU PETG @System", + "inherits": "SUNLU PETG @base", + "from": "system", + "setting_id": "OSNLS08", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "14" + ], + "filament_long_retractions_when_cut": [ + "1" + ], + "filament_retraction_distances_when_cut": [ + "18" + ], + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU PETG @base.json b/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU PETG @base.json new file mode 100644 index 0000000000..5a190a7283 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU PETG @base.json @@ -0,0 +1,84 @@ +{ + "type": "filament", + "name": "SUNLU PETG @base", + "inherits": "fdm_filament_pet", + "from": "system", + "filament_id": "SNL08", + "instantiation": "false", + "description": "To get better transparent or translucent results with the corresponding filament, please refer to this wiki: Printing tips for transparent PETG.", + "cool_plate_temp": [ + "0" + ], + "cool_plate_temp_initial_layer": [ + "0" + ], + "eng_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "30" + ], + "fan_min_speed": [ + "10" + ], + "filament_cost": [ + "22.99" + ], + "filament_density": [ + "1.23" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_vendor": [ + "SUNLU" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "nozzle_temperature": [ + "245" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "230" + ], + "overhang_fan_speed": [ + "90" + ], + "overhang_fan_threshold": [ + "10%" + ], + "slow_down_layer_time": [ + "12" + ], + "textured_plate_temp": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "temperature_vitrification": [ + "64" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >80)||(bed_temperature_initial_layer[current_extruder] >80)}M106 P3 S255\n{elsif (bed_temperature[current_extruder] >60)||(bed_temperature_initial_layer[current_extruder] >60)}M106 P3 S180\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU PLA Matte @System.json b/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU PLA Matte @System.json new file mode 100644 index 0000000000..13de726d74 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU PLA Matte @System.json @@ -0,0 +1,12 @@ +{ + "type": "filament", + "name": "SUNLU PLA Matte @System", + "inherits": "SUNLU PLA Matte @base", + "from": "system", + "setting_id": "OSNLS02", + "instantiation": "true", + "compatible_printers": [], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\nM142 P1 R35 S40\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU PLA Matte @base.json b/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU PLA Matte @base.json new file mode 100644 index 0000000000..1b684a1aff --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU PLA Matte @base.json @@ -0,0 +1,47 @@ +{ + "type": "filament", + "name": "SUNLU PLA Matte @base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "SNL02", + "instantiation": "false", + "filament_cost": [ + "25.99" + ], + "filament_density": [ + "1.3" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_long_retractions_when_cut": [ + "1" + ], + "filament_retraction_distances_when_cut": [ + "18" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_vendor": [ + "SUNLU" + ], + "filament_scarf_seam_type": [ + "none" + ], + "filament_scarf_height":[ + "5%" + ], + "filament_scarf_gap":[ + "0%" + ], + "filament_scarf_length":[ + "10" + ], + "temperature_vitrification": [ + "53" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU PLA+ 2.0 @System.json b/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU PLA+ 2.0 @System.json new file mode 100644 index 0000000000..751fba4f8a --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU PLA+ 2.0 @System.json @@ -0,0 +1,12 @@ +{ + "type": "filament", + "name": "SUNLU PLA+ 2.0 @System", + "inherits": "SUNLU PLA+ 2.0 @base", + "from": "system", + "setting_id": "OSNLS04", + "instantiation": "true", + "compatible_printers": [], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\nM142 P1 R35 S40\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU PLA+ 2.0 @base.json b/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU PLA+ 2.0 @base.json new file mode 100644 index 0000000000..61938db568 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU PLA+ 2.0 @base.json @@ -0,0 +1,47 @@ +{ + "type": "filament", + "name": "SUNLU PLA+ 2.0 @base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "SNL04", + "instantiation": "false", + "filament_cost": [ + "18.99" + ], + "filament_density": [ + "1.23" + ], + "filament_flow_ratio": [ + "1.0" + ], + "filament_long_retractions_when_cut": [ + "1" + ], + "filament_retraction_distances_when_cut": [ + "18" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_vendor": [ + "SUNLU" + ], + "filament_scarf_seam_type": [ + "none" + ], + "filament_scarf_height":[ + "5%" + ], + "filament_scarf_gap":[ + "0%" + ], + "filament_scarf_length":[ + "10" + ], + "temperature_vitrification": [ + "53" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU PLA+ @System.json b/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU PLA+ @System.json new file mode 100644 index 0000000000..57892f2d5d --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU PLA+ @System.json @@ -0,0 +1,12 @@ +{ + "type": "filament", + "name": "SUNLU PLA+ @System", + "inherits": "SUNLU PLA+ @base", + "from": "system", + "setting_id": "OSNLS03", + "instantiation": "true", + "compatible_printers": [], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\nM142 P1 R35 S40\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU PLA+ @base.json b/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU PLA+ @base.json new file mode 100644 index 0000000000..ec96f4bb23 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU PLA+ @base.json @@ -0,0 +1,47 @@ +{ + "type": "filament", + "name": "SUNLU PLA+ @base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "SNL03", + "instantiation": "false", + "filament_cost": [ + "18.99" + ], + "filament_density": [ + "1.23" + ], + "filament_flow_ratio": [ + "1.0" + ], + "filament_long_retractions_when_cut": [ + "1" + ], + "filament_retraction_distances_when_cut": [ + "18" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_vendor": [ + "SUNLU" + ], + "filament_scarf_seam_type": [ + "none" + ], + "filament_scarf_height":[ + "5%" + ], + "filament_scarf_gap":[ + "0%" + ], + "filament_scarf_length":[ + "10" + ], + "temperature_vitrification": [ + "53" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU Silk PLA+ @System.json b/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU Silk PLA+ @System.json new file mode 100644 index 0000000000..e65c0bd867 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU Silk PLA+ @System.json @@ -0,0 +1,12 @@ +{ + "type": "filament", + "name": "SUNLU Silk PLA+ @System", + "inherits": "SUNLU Silk PLA+ @base", + "from": "system", + "setting_id": "OSNLS05", + "instantiation": "true", + "compatible_printers": [], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\nM142 P1 R35 S40\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU Silk PLA+ @base.json b/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU Silk PLA+ @base.json new file mode 100644 index 0000000000..84f470b6cb --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU Silk PLA+ @base.json @@ -0,0 +1,54 @@ +{ + "type": "filament", + "name": "SUNLU Silk PLA+ @base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "SNL05", + "instantiation": "false", + "description": "To make the prints get higher gloss, please dry the filament before use, and set the outer wall speed to be 40 to 60 mm/s when slicing.", + "filament_cost": [ + "29.99" + ], + "filament_density": [ + "1.25" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_long_retractions_when_cut": [ + "1" + ], + "filament_retraction_distances_when_cut": [ + "18" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_vendor": [ + "SUNLU" + ], + "filament_scarf_height": [ + "5%" + ], + "filament_scarf_gap": [ + "0%" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "supertack_plate_temp": [ + "0" + ], + "supertack_plate_temp_initial_layer": [ + "0" + ], + "temperature_vitrification": [ + "53" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU Wood PLA @System.json b/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU Wood PLA @System.json new file mode 100644 index 0000000000..82ab22e1b0 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU Wood PLA @System.json @@ -0,0 +1,9 @@ +{ + "type": "filament", + "name": "SUNLU Wood PLA @System", + "inherits": "SUNLU Wood PLA @base", + "from": "system", + "setting_id": "OSNLS07", + "instantiation": "true", + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU Wood PLA @base.json b/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU Wood PLA @base.json new file mode 100644 index 0000000000..81a251bdc7 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU Wood PLA @base.json @@ -0,0 +1,56 @@ +{ + "type": "filament", + "name": "SUNLU Wood PLA @base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "SNL07", + "instantiation": "false", + "filament_cost": [ + "26.99" + ], + "filament_density": [ + "1.25" + ], + "filament_flow_ratio": [ + "1.0" + ], + "filament_long_retractions_when_cut": [ + "1" + ], + "filament_retraction_distances_when_cut": [ + "18" + ], + "filament_retraction_length": [ + "4" + ], + "filament_retraction_speed": [ + "50" + ], + "filament_deretraction_speed": [ + "0" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_vendor": [ + "SUNLU" + ], + "filament_scarf_seam_type": [ + "none" + ], + "filament_scarf_height":[ + "5%" + ], + "filament_scarf_gap":[ + "0%" + ], + "filament_scarf_length":[ + "10" + ], + "temperature_vitrification": [ + "45" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\nM142 P1 R35 S40\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ] +} \ No newline at end of file diff --git a/resources/profiles/BIQU/filament/fdm_filament_asa.json b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_abs.json similarity index 66% rename from resources/profiles/BIQU/filament/fdm_filament_asa.json rename to resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_abs.json index a3a3c9a27d..631ef58793 100644 --- a/resources/profiles/BIQU/filament/fdm_filament_asa.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_abs.json @@ -1,59 +1,32 @@ { "type": "filament", - "name": "fdm_filament_asa", + "name": "fdm_filament_abs", + "inherits": "fdm_filament_common", "from": "system", "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "0" - ], - "eng_plate_temp" : [ - "90" - ], - "hot_plate_temp" : [ - "90" - ], - "textured_plate_temp" : [ - "90" - ], - "cool_plate_temp_initial_layer" : [ - "0" - ], - "eng_plate_temp_initial_layer" : [ - "90" - ], - "hot_plate_temp_initial_layer" : [ - "90" - ], - "textured_plate_temp_initial_layer" : [ - "90" - ], - "slow_down_for_layer_cooling": [ + "activate_air_filtration": [ "1" ], - "close_fan_the_first_x_layers": [ - "3" + "supertack_plate_temp": [ + "0" + ], + "supertack_plate_temp_initial_layer": [ + "0" + ], + "cool_plate_temp": [ + "0" + ], + "cool_plate_temp_initial_layer": [ + "0" + ], + "eng_plate_temp": [ + "90" + ], + "eng_plate_temp_initial_layer": [ + "90" ], "fan_cooling_layer_time": [ - "35" - ], - "filament_max_volumetric_speed": [ - "28.6" - ], - "filament_type": [ - "ASA" - ], - "filament_density": [ - "1.04" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "260" - ], - "reduce_fan_stop_start_freq": [ - "1" + "30" ], "fan_max_speed": [ "80" @@ -61,28 +34,58 @@ "fan_min_speed": [ "10" ], - "overhang_fan_threshold": [ - "25%" + "filament_cost": [ + "20" ], - "overhang_fan_speed": [ - "80" + "filament_density": [ + "1.04" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_type": [ + "ABS" + ], + "hot_plate_temp": [ + "90" + ], + "hot_plate_temp_initial_layer": [ + "90" ], "nozzle_temperature": [ "260" ], - "temperature_vitrification": [ - "100" - ], - "nozzle_temperature_range_low": [ - "240" + "nozzle_temperature_initial_layer": [ + "260" ], "nozzle_temperature_range_high": [ "280" ], - "slow_down_min_speed": [ - "10" + "nozzle_temperature_range_low": [ + "240" + ], + "overhang_fan_speed": [ + "80" + ], + "overhang_fan_threshold": [ + "25%" + ], + "reduce_fan_stop_start_freq": [ + "1" ], "slow_down_layer_time": [ "3" + ], + "slow_down_min_speed": [ + "20" + ], + "textured_plate_temp": [ + "90" + ], + "textured_plate_temp_initial_layer": [ + "90" + ], + "filament_flow_ratio": [ + "0.926" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Folgertech/filament/fdm_filament_asa.json b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_asa.json similarity index 70% rename from resources/profiles/Folgertech/filament/fdm_filament_asa.json rename to resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_asa.json index a3a3c9a27d..33fc272352 100644 --- a/resources/profiles/Folgertech/filament/fdm_filament_asa.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_asa.json @@ -1,88 +1,91 @@ { "type": "filament", "name": "fdm_filament_asa", + "inherits": "fdm_filament_common", "from": "system", "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "0" - ], - "eng_plate_temp" : [ - "90" - ], - "hot_plate_temp" : [ - "90" - ], - "textured_plate_temp" : [ - "90" - ], - "cool_plate_temp_initial_layer" : [ - "0" - ], - "eng_plate_temp_initial_layer" : [ - "90" - ], - "hot_plate_temp_initial_layer" : [ - "90" - ], - "textured_plate_temp_initial_layer" : [ - "90" - ], - "slow_down_for_layer_cooling": [ + "activate_air_filtration": [ "1" ], - "close_fan_the_first_x_layers": [ - "3" + "supertack_plate_temp": [ + "0" + ], + "supertack_plate_temp_initial_layer": [ + "0" + ], + "cool_plate_temp": [ + "0" + ], + "cool_plate_temp_initial_layer": [ + "0" + ], + "eng_plate_temp": [ + "90" + ], + "eng_plate_temp_initial_layer": [ + "90" ], "fan_cooling_layer_time": [ "35" ], - "filament_max_volumetric_speed": [ - "28.6" - ], - "filament_type": [ - "ASA" - ], - "filament_density": [ - "1.04" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "260" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], "fan_max_speed": [ "80" ], "fan_min_speed": [ "10" ], - "overhang_fan_threshold": [ - "25%" + "filament_cost": [ + "20" ], - "overhang_fan_speed": [ - "80" + "filament_density": [ + "1.04" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_type": [ + "ASA" + ], + "hot_plate_temp": [ + "90" + ], + "hot_plate_temp_initial_layer": [ + "90" ], "nozzle_temperature": [ "260" ], - "temperature_vitrification": [ - "100" - ], - "nozzle_temperature_range_low": [ - "240" + "nozzle_temperature_initial_layer": [ + "260" ], "nozzle_temperature_range_high": [ "280" ], - "slow_down_min_speed": [ - "10" + "nozzle_temperature_range_low": [ + "240" + ], + "overhang_fan_speed": [ + "80" + ], + "overhang_fan_threshold": [ + "25%" + ], + "reduce_fan_stop_start_freq": [ + "1" ], "slow_down_layer_time": [ "3" + ], + "slow_down_min_speed": [ + "20" + ], + "textured_plate_temp": [ + "90" + ], + "textured_plate_temp_initial_layer": [ + "90" + ], + "filament_flow_ratio": [ + "0.926" ] -} +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_bvoh.json b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_bvoh.json new file mode 100644 index 0000000000..4f288a5438 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_bvoh.json @@ -0,0 +1,89 @@ +{ + "type": "filament", + "name": "fdm_filament_bvoh", + "inherits": "fdm_filament_common", + "from": "system", + "instantiation": "false", + "filament_id": "GFS97", + "additional_cooling_fan_speed": [ + "70" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "cool_plate_temp": [ + "40" + ], + "cool_plate_temp_initial_layer": [ + "40" + ], + "eng_plate_temp": [ + "0" + ], + "eng_plate_temp_initial_layer": [ + "0" + ], + "fan_cooling_layer_time": [ + "100" + ], + "fan_min_speed": [ + "100" + ], + "filament_cost": [ + "69.99" + ], + "filament_density": [ + "1.13" + ], + "filament_is_support": [ + "1" + ], + "filament_max_volumetric_speed": [ + "8" + ], + "filament_type": [ + "BVOH" + ], + "hot_plate_temp": [ + "55" + ], + "hot_plate_temp_initial_layer": [ + "55" + ], + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_initial_layer": [ + "220" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "nozzle_temperature_range_low": [ + "190" + ], + "overhang_fan_threshold": [ + "50%" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "supertack_plate_temp": [ + "0" + ], + "supertack_plate_temp_initial_layer": [ + "0" + ], + "slow_down_min_speed": [ + "20" + ], + "temperature_vitrification": [ + "45" + ], + "textured_plate_temp": [ + "55" + ], + "textured_plate_temp_initial_layer": [ + "55" + ] +} \ No newline at end of file diff --git a/resources/profiles/BIQU/filament/fdm_filament_common.json b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_common.json similarity index 62% rename from resources/profiles/BIQU/filament/fdm_filament_common.json rename to resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_common.json index 9f77975119..1e7a813c4b 100644 --- a/resources/profiles/BIQU/filament/fdm_filament_common.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_common.json @@ -3,54 +3,42 @@ "name": "fdm_filament_common", "from": "system", "instantiation": "false", - "cool_plate_temp" : [ - "60" + "activate_air_filtration": [ + "0" ], - "eng_plate_temp" : [ - "60" - ], - "hot_plate_temp" : [ - "60" - ], - "textured_plate_temp" : [ - "60" - ], - "cool_plate_temp_initial_layer" : [ - "60" - ], - "eng_plate_temp_initial_layer" : [ - "60" - ], - "hot_plate_temp_initial_layer" : [ - "60" - ], - "textured_plate_temp_initial_layer" : [ - "60" - ], - "overhang_fan_threshold": [ - "95%" - ], - "overhang_fan_speed": [ - "100" - ], - "slow_down_for_layer_cooling": [ - "1" + "chamber_temperatures": [ + "0" ], "close_fan_the_first_x_layers": [ "3" ], - "filament_end_gcode": [ - "; filament end gcode \n" + "complete_print_exhaust_fan_speed": [ + "70" ], - "filament_flow_ratio": [ - "1" + "cool_plate_temp": [ + "60" ], - "reduce_fan_stop_start_freq": [ - "0" + "cool_plate_temp_initial_layer": [ + "60" + ], + "during_print_exhaust_fan_speed": [ + "70" + ], + "eng_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" ], "fan_cooling_layer_time": [ "60" ], + "fan_max_speed": [ + "100" + ], + "fan_min_speed": [ + "35" + ], "filament_cost": [ "0" ], @@ -63,31 +51,37 @@ "filament_diameter": [ "1.75" ], + "filament_flow_ratio": [ + "1" + ], + "filament_is_support": [ + "0" + ], + "filament_long_retractions_when_cut": [ + "nil" + ], "filament_max_volumetric_speed": [ "0" ], "filament_minimal_purge_on_wipe_tower": [ "15" ], - "filament_retraction_minimum_travel": [ + "filament_retract_before_wipe": [ "nil" ], - "filament_retract_before_wipe": [ + "filament_retract_restart_extra": [ "nil" ], "filament_retract_when_changing_layer": [ "nil" ], + "filament_retraction_distances_when_cut": [ + "nil" + ], "filament_retraction_length": [ "nil" ], - "filament_z_hop": [ - "nil" - ], - "filament_z_hop_types": [ - "nil" - ], - "filament_retract_restart_extra": [ + "filament_retraction_minimum_travel": [ "nil" ], "filament_retraction_speed": [ @@ -111,34 +105,83 @@ "filament_wipe_distance": [ "nil" ], - "bed_type": [ - "Cool Plate" + "filament_z_hop": [ + "nil" ], - "nozzle_temperature_initial_layer": [ - "200" + "filament_z_hop_types": [ + "nil" ], "full_fan_speed_layer": [ "0" ], - "fan_max_speed": [ - "100" + "filament_scarf_seam_type": [ + "none" ], - "fan_min_speed": [ - "35" + "filament_scarf_height": [ + "10%" ], - "slow_down_min_speed": [ + "filament_scarf_gap": [ + "0%" + ], + "filament_scarf_length": [ "10" ], - "slow_down_layer_time": [ - "8" + "filament_shrink": [ + "100%" ], - "filament_start_gcode": [ - "; Filament gcode\n" + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" ], "nozzle_temperature": [ "200" ], + "nozzle_temperature_initial_layer": [ + "200" + ], + "overhang_fan_speed": [ + "100" + ], + "overhang_fan_threshold": [ + "95%" + ], + "reduce_fan_stop_start_freq": [ + "0" + ], + "required_nozzle_HRC": [ + "3" + ], + "supertack_plate_temp": [ + "45" + ], + "supertack_plate_temp_initial_layer": [ + "45" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "slow_down_layer_time": [ + "8" + ], + "slow_down_min_speed": [ + "10" + ], "temperature_vitrification": [ "100" + ], + "textured_plate_temp": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "compatible_printers": [], + "filament_start_gcode": [ + "; Filament gcode\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ], + "filament_end_gcode": [ + "; filament end gcode \nM106 P3 S0\n" ] -} +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_eva.json b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_eva.json new file mode 100644 index 0000000000..9e77bf4f93 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_eva.json @@ -0,0 +1,17 @@ +{ + "type": "filament", + "name": "fdm_filament_eva", + "inherits": "fdm_filament_common", + "filament_id": "GFR99", + "from": "system", + "instantiation": "false", + "filament_type": [ + "EVA" + ], + "supertack_plate_temp": [ + "0" + ], + "supertack_plate_temp_initial_layer": [ + "0" + ] +} \ No newline at end of file diff --git a/resources/profiles/UltiMaker/filament/fdm_filament_abs.json b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_hips.json similarity index 59% rename from resources/profiles/UltiMaker/filament/fdm_filament_abs.json rename to resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_hips.json index 937d7c841d..de7bf0c476 100644 --- a/resources/profiles/UltiMaker/filament/fdm_filament_abs.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_hips.json @@ -1,65 +1,63 @@ { "type": "filament", - "name": "fdm_filament_abs", + "name": "fdm_filament_hips", + "inherits": "fdm_filament_common", + "filament_id": "GFS98", "from": "system", "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "90" - ], - "eng_plate_temp" : [ - "90" - ], - "hot_plate_temp" : [ - "90" - ], - "textured_plate_temp" : [ - "90" - ], - "cool_plate_temp_initial_layer" : [ - "90" - ], - "eng_plate_temp_initial_layer" : [ - "90" - ], - "hot_plate_temp_initial_layer" : [ - "90" - ], - "textured_plate_temp_initial_layer" : [ - "90" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "30" - ], - "filament_max_volumetric_speed": [ + "cool_plate_temp": [ "0" ], + "eng_plate_temp": [ + "90" + ], + "hot_plate_temp": [ + "90" + ], + "textured_plate_temp": [ + "90" + ], + "supertack_plate_temp": [ + "0" + ], + "supertack_plate_temp_initial_layer": [ + "0" + ], + "cool_plate_temp_initial_layer": [ + "0" + ], + "eng_plate_temp_initial_layer": [ + "90" + ], + "hot_plate_temp_initial_layer": [ + "90" + ], + "textured_plate_temp_initial_layer": [ + "90" + ], + "fan_cooling_layer_time": [ + "10" + ], + "filament_max_volumetric_speed": [ + "8" + ], "filament_type": [ - "ABS" + "HIPS" ], "filament_density": [ - "1.10" + "1.06" ], "filament_cost": [ - "20" + "22.99" ], "nozzle_temperature_initial_layer": [ "240" ], - "reduce_fan_stop_start_freq": [ - "1" - ], "fan_max_speed": [ - "5" + "60" ], "fan_min_speed": [ - "5" + "0" ], "overhang_fan_threshold": [ "25%" @@ -68,21 +66,21 @@ "80" ], "nozzle_temperature": [ - "235" - ], - "temperature_vitrification": [ - "110" - ], - "nozzle_temperature_range_low": [ - "235" - ], - "nozzle_temperature_range_high": [ "240" ], + "nozzle_temperature_range_low": [ + "220" + ], + "nozzle_temperature_range_high": [ + "270" + ], "slow_down_min_speed": [ - "10" + "20" ], "slow_down_layer_time": [ - "15" + "6" + ], + "additional_cooling_fan_speed": [ + "0" ] -} +} \ No newline at end of file diff --git a/resources/profiles/BIQU/filament/fdm_filament_pa.json b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pa.json similarity index 71% rename from resources/profiles/BIQU/filament/fdm_filament_pa.json rename to resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pa.json index fb2d02e700..28b2974070 100644 --- a/resources/profiles/BIQU/filament/fdm_filament_pa.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pa.json @@ -1,88 +1,89 @@ { "type": "filament", "name": "fdm_filament_pa", + "inherits": "fdm_filament_common", + "filament_id": "GFN99", "from": "system", "instantiation": "false", - "inherits": "fdm_filament_common", - "required_nozzle_HRC": [ - "40" - ], - "cool_plate_temp" : [ - "0" - ], - "eng_plate_temp" : [ - "100" - ], - "hot_plate_temp" : [ - "100" - ], - "textured_plate_temp" : [ - "100" - ], - "cool_plate_temp_initial_layer" : [ - "0" - ], - "eng_plate_temp_initial_layer" : [ - "100" - ], - "hot_plate_temp_initial_layer" : [ - "100" - ], - "textured_plate_temp_initial_layer" : [ - "100" - ], - "slow_down_for_layer_cooling": [ + "activate_air_filtration": [ "1" ], - "close_fan_the_first_x_layers": [ - "3" + "supertack_plate_temp": [ + "0" + ], + "supertack_plate_temp_initial_layer": [ + "0" + ], + "cool_plate_temp": [ + "0" + ], + "cool_plate_temp_initial_layer": [ + "0" + ], + "eng_plate_temp": [ + "100" + ], + "eng_plate_temp_initial_layer": [ + "100" ], "fan_cooling_layer_time": [ "4" ], - "filament_max_volumetric_speed": [ - "8" - ], - "filament_type": [ - "PA" - ], - "filament_density": [ - "1.04" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "290" - ], - "reduce_fan_stop_start_freq": [ - "0" - ], "fan_max_speed": [ "60" ], "fan_min_speed": [ "0" ], - "overhang_fan_speed": [ - "30" + "filament_cost": [ + "20" + ], + "filament_density": [ + "1.04" + ], + "filament_max_volumetric_speed": [ + "8" + ], + "filament_type": [ + "PA" + ], + "hot_plate_temp": [ + "100" + ], + "hot_plate_temp_initial_layer": [ + "100" ], "nozzle_temperature": [ - "290" + "280" ], - "temperature_vitrification": [ - "108" - ], - "nozzle_temperature_range_low": [ - "260" + "nozzle_temperature_initial_layer": [ + "280" ], "nozzle_temperature_range_high": [ "300" ], - "slow_down_min_speed": [ - "10" + "nozzle_temperature_range_low": [ + "260" + ], + "overhang_fan_speed": [ + "30" + ], + "required_nozzle_HRC": [ + "40" ], "slow_down_layer_time": [ "2" + ], + "slow_down_min_speed": [ + "20" + ], + "temperature_vitrification": [ + "108" + ], + "textured_plate_temp": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "100" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Folgertech/filament/fdm_filament_pc.json b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pc.json similarity index 71% rename from resources/profiles/Folgertech/filament/fdm_filament_pc.json rename to resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pc.json index daf96f0164..4bbd930e0e 100644 --- a/resources/profiles/Folgertech/filament/fdm_filament_pc.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pc.json @@ -1,88 +1,92 @@ { "type": "filament", "name": "fdm_filament_pc", + "inherits": "fdm_filament_common", + "filament_id": "GFC99", "from": "system", "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ + "supertack_plate_temp": [ "0" ], - "eng_plate_temp" : [ - "110" - ], - "hot_plate_temp" : [ - "110" - ], - "textured_plate_temp" : [ - "110" - ], - "cool_plate_temp_initial_layer" : [ + "supertack_plate_temp_initial_layer": [ "0" ], - "eng_plate_temp_initial_layer" : [ + "cool_plate_temp": [ + "0" + ], + "cool_plate_temp_initial_layer": [ + "0" + ], + "eng_plate_temp": [ "110" ], - "hot_plate_temp_initial_layer" : [ + "eng_plate_temp_initial_layer": [ "110" ], - "textured_plate_temp_initial_layer" : [ - "110" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], "fan_cooling_layer_time": [ "30" ], - "filament_max_volumetric_speed": [ - "23.2" - ], - "filament_type": [ - "PC" - ], - "filament_density": [ - "1.04" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "270" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], "fan_max_speed": [ "60" ], "fan_min_speed": [ "10" ], - "overhang_fan_threshold": [ - "25%" + "filament_cost": [ + "20" ], - "overhang_fan_speed": [ - "60" + "filament_density": [ + "1.04" + ], + "filament_type": [ + "PC" + ], + "hot_plate_temp": [ + "110" + ], + "hot_plate_temp_initial_layer": [ + "110" ], "nozzle_temperature": [ "280" ], - "temperature_vitrification": [ - "120" - ], - "nozzle_temperature_range_low": [ - "260" + "nozzle_temperature_initial_layer": [ + "270" ], "nozzle_temperature_range_high": [ "290" ], - "slow_down_min_speed": [ - "10" + "nozzle_temperature_range_low": [ + "260" + ], + "overhang_fan_speed": [ + "60" + ], + "overhang_fan_threshold": [ + "25%" + ], + "reduce_fan_stop_start_freq": [ + "1" ], "slow_down_layer_time": [ "2" + ], + "slow_down_min_speed": [ + "20" + ], + "temperature_vitrification": [ + "120" + ], + "textured_plate_temp": [ + "110" + ], + "textured_plate_temp_initial_layer": [ + "110" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_flow_ratio": [ + "0.94" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Custom/filament/fdm_filament_pet.json b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pctg.json similarity index 56% rename from resources/profiles/Custom/filament/fdm_filament_pet.json rename to resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pctg.json index bb2323e9c1..21eb7ed51c 100644 --- a/resources/profiles/Custom/filament/fdm_filament_pet.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pctg.json @@ -1,82 +1,68 @@ { "type": "filament", - "name": "fdm_filament_pet", + "name": "fdm_filament_pctg", + "inherits": "fdm_filament_common", + "filament_id": "GFG97", "from": "system", "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "60" - ], - "eng_plate_temp" : [ + "eng_plate_temp": [ "0" ], - "hot_plate_temp" : [ - "80" - ], - "textured_plate_temp" : [ - "80" - ], - "cool_plate_temp_initial_layer" : [ - "60" - ], - "eng_plate_temp_initial_layer" : [ + "eng_plate_temp_initial_layer": [ "0" ], - "hot_plate_temp_initial_layer" : [ - "80" - ], - "textured_plate_temp_initial_layer" : [ - "80" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], "fan_cooling_layer_time": [ "20" ], - "filament_max_volumetric_speed": [ - "25" - ], - "filament_type": [ - "PETG" - ], - "filament_density": [ - "1.27" + "fan_min_speed": [ + "20" ], "filament_cost": [ "30" ], - "nozzle_temperature_initial_layer": [ - "255" + "filament_density": [ + "1.27" ], - "reduce_fan_stop_start_freq": [ - "1" + "filament_max_volumetric_speed": [ + "12" ], - "fan_max_speed": [ - "100" + "filament_type": [ + "PCTG" ], - "fan_min_speed": [ - "20" + "hot_plate_temp": [ + "80" ], - "overhang_fan_speed": [ - "100" + "hot_plate_temp_initial_layer": [ + "80" ], "nozzle_temperature": [ "255" ], - "temperature_vitrification": [ - "80" - ], - "nozzle_temperature_range_low": [ - "220" + "nozzle_temperature_initial_layer": [ + "255" ], "nozzle_temperature_range_high": [ "260" ], - "filament_start_gcode": [ - "; filament start gcode\n" + "nozzle_temperature_range_low": [ + "220" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "supertack_plate_temp": [ + "0" + ], + "supertack_plate_temp_initial_layer": [ + "0" + ], + "temperature_vitrification": [ + "70" + ], + "textured_plate_temp": [ + "80" + ], + "textured_plate_temp_initial_layer": [ + "80" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Eryone/filament/fdm_filament_pla.json b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pe.json similarity index 79% rename from resources/profiles/Eryone/filament/fdm_filament_pla.json rename to resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pe.json index 324fe07e49..2e53506d3a 100644 --- a/resources/profiles/Eryone/filament/fdm_filament_pla.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pe.json @@ -1,91 +1,89 @@ { "type": "filament", - "name": "fdm_filament_pla", + "name": "fdm_filament_pe", + "inherits": "fdm_filament_common", + "filament_id": "GFP99", "from": "system", "instantiation": "false", - "inherits": "fdm_filament_common", - "fan_cooling_layer_time": [ - "100" + "additional_cooling_fan_speed": [ + "70" ], - "filament_max_volumetric_speed": [ - "12" - ], - "filament_type": [ - "PLA" - ], - "filament_density": [ - "1.24" - ], - "filament_cost": [ - "20" + "close_fan_the_first_x_layers": [ + "1" ], "cool_plate_temp": [ "35" ], + "cool_plate_temp_initial_layer": [ + "35" + ], "eng_plate_temp": [ "0" ], - "hot_plate_temp": [ - "60" - ], - "cool_plate_temp_initial_layer": [ - "35" - ], "eng_plate_temp_initial_layer": [ "0" ], - "hot_plate_temp_initial_layer": [ - "60" - ], - "nozzle_temperature_initial_layer": [ - "220" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "0" - ], - "fan_max_speed": [ + "fan_cooling_layer_time": [ "100" ], "fan_min_speed": [ "100" ], - "overhang_fan_speed": [ - "100" + "filament_cost": [ + "20" ], - "overhang_fan_threshold": [ - "50%" + "filament_density": [ + "1.24" ], - "close_fan_the_first_x_layers": [ - "1" + "filament_max_volumetric_speed": [ + "12" + ], + "filament_type": [ + "PE" + ], + "hot_plate_temp": [ + "55" + ], + "hot_plate_temp_initial_layer": [ + "55" ], "nozzle_temperature": [ "220" ], - "temperature_vitrification": [ - "60" + "nozzle_temperature_initial_layer": [ + "220" + ], + "nozzle_temperature_range_high": [ + "240" ], "nozzle_temperature_range_low": [ "190" ], - "nozzle_temperature_range_high": [ - "230" + "overhang_fan_threshold": [ + "50%" ], - "slow_down_min_speed": [ - "10" + "reduce_fan_stop_start_freq": [ + "1" + ], + "supertack_plate_temp": [ + "0" + ], + "supertack_plate_temp_initial_layer": [ + "0" ], "slow_down_layer_time": [ "4" ], - "additional_cooling_fan_speed": [ - "70" + "slow_down_min_speed": [ + "20" ], - "enable_overhang_bridge_fan": [ - "0" + "temperature_vitrification": [ + "45" ], - "filament_start_gcode": [ - "; filament start gcode\n" + "textured_plate_temp": [ + "55" + ], + "textured_plate_temp_initial_layer": [ + "55" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Raise3D/filament/fdm_filament_pet.json b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pet.json similarity index 61% rename from resources/profiles/Raise3D/filament/fdm_filament_pet.json rename to resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pet.json index a8cc89c7b3..f4a31b746b 100644 --- a/resources/profiles/Raise3D/filament/fdm_filament_pet.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pet.json @@ -1,76 +1,68 @@ { "type": "filament", "name": "fdm_filament_pet", + "inherits": "fdm_filament_common", + "filament_id": "GFG99", "from": "system", "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "60" - ], - "eng_plate_temp" : [ + "eng_plate_temp": [ "0" ], - "hot_plate_temp" : [ - "80" - ], - "cool_plate_temp_initial_layer" : [ - "60" - ], - "eng_plate_temp_initial_layer" : [ + "eng_plate_temp_initial_layer": [ "0" ], - "hot_plate_temp_initial_layer" : [ - "80" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], "fan_cooling_layer_time": [ "20" ], - "filament_max_volumetric_speed": [ - "25" - ], - "filament_type": [ - "PETG" - ], - "filament_density": [ - "1.27" + "fan_min_speed": [ + "20" ], "filament_cost": [ "30" ], + "filament_density": [ + "1.27" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_type": [ + "PETG" + ], + "hot_plate_temp": [ + "80" + ], + "hot_plate_temp_initial_layer": [ + "80" + ], + "nozzle_temperature": [ + "255" + ], "nozzle_temperature_initial_layer": [ + "255" + ], + "nozzle_temperature_range_high": [ + "260" + ], + "nozzle_temperature_range_low": [ "220" ], "reduce_fan_stop_start_freq": [ "1" ], - "fan_max_speed": [ - "50" + "supertack_plate_temp": [ + "70" ], - "fan_min_speed": [ - "30" - ], - "overhang_fan_speed": [ - "100" - ], - "nozzle_temperature": [ - "255" + "supertack_plate_temp_initial_layer": [ + "70" ], "temperature_vitrification": [ + "70" + ], + "textured_plate_temp": [ "80" ], - "nozzle_temperature_range_low": [ - "220" - ], - "nozzle_temperature_range_high": [ - "260" - ], - "filament_start_gcode": [ - "; filament start gcode\n" + "textured_plate_temp_initial_layer": [ + "80" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Kingroon/filament/fdm_filament_pva.json b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pha.json similarity index 63% rename from resources/profiles/Kingroon/filament/fdm_filament_pva.json rename to resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pha.json index f529bb39af..82a8a3e6eb 100644 --- a/resources/profiles/Kingroon/filament/fdm_filament_pva.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pha.json @@ -1,94 +1,89 @@ { "type": "filament", - "name": "fdm_filament_pva", + "name": "fdm_filament_pha", + "inherits": "fdm_filament_common", + "filament_id": "GFR98", "from": "system", "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ + "additional_cooling_fan_speed": [ + "70" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "cool_plate_temp": [ "35" ], - "eng_plate_temp" : [ - "0" - ], - "hot_plate_temp" : [ - "45" - ], - "cool_plate_temp_initial_layer" : [ + "cool_plate_temp_initial_layer": [ "35" ], - "eng_plate_temp_initial_layer" : [ + "eng_plate_temp": [ "0" ], - "hot_plate_temp_initial_layer" : [ - "45" + "eng_plate_temp_initial_layer": [ + "0" ], "fan_cooling_layer_time": [ "100" ], - "filament_max_volumetric_speed": [ - "15" - ], - "filament_soluble": [ - "1" - ], - "filament_is_support": [ - "1" - ], - "filament_type": [ - "PVA" - ], - "filament_density": [ - "1.24" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "220" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_max_speed": [ - "100" - ], "fan_min_speed": [ "100" ], - "overhang_fan_speed": [ - "100" + "filament_cost": [ + "27.99" ], - "overhang_fan_threshold": [ - "50%" + "filament_density": [ + "1.24" ], - "close_fan_the_first_x_layers": [ - "1" + "filament_max_volumetric_speed": [ + "6" + ], + "filament_type": [ + "PHA" + ], + "hot_plate_temp": [ + "55" + ], + "hot_plate_temp_initial_layer": [ + "55" ], "nozzle_temperature": [ "220" ], - "temperature_vitrification": [ - "50" + "nozzle_temperature_initial_layer": [ + "220" + ], + "nozzle_temperature_range_high": [ + "240" ], "nozzle_temperature_range_low": [ "190" ], - "nozzle_temperature_range_high": [ - "250" + "overhang_fan_threshold": [ + "50%" ], - "slow_down_min_speed": [ - "10" + "reduce_fan_stop_start_freq": [ + "1" + ], + "supertack_plate_temp": [ + "0" + ], + "supertack_plate_temp_initial_layer": [ + "0" ], "slow_down_layer_time": [ "4" ], - "additional_cooling_fan_speed": [ - "70" + "slow_down_min_speed": [ + "20" ], - "filament_start_gcode": [ - "; filament start gcode\n" + "temperature_vitrification": [ + "120" + ], + "textured_plate_temp": [ + "55" + ], + "textured_plate_temp_initial_layer": [ + "55" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Raise3D/filament/fdm_filament_pla.json b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pla.json similarity index 66% rename from resources/profiles/Raise3D/filament/fdm_filament_pla.json rename to resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pla.json index 8709f51cd5..5beeff28eb 100644 --- a/resources/profiles/Raise3D/filament/fdm_filament_pla.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pla.json @@ -1,88 +1,89 @@ { "type": "filament", "name": "fdm_filament_pla", + "inherits": "fdm_filament_common", "from": "system", "instantiation": "false", - "inherits": "fdm_filament_common", + "filament_id": "GFL99", + "additional_cooling_fan_speed": [ + "70" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "cool_plate_temp": [ + "35" + ], + "cool_plate_temp_initial_layer": [ + "35" + ], + "eng_plate_temp": [ + "0" + ], + "eng_plate_temp_initial_layer": [ + "0" + ], "fan_cooling_layer_time": [ "100" ], - "filament_max_volumetric_speed": [ - "15" - ], - "filament_type": [ - "PLA" - ], - "filament_density": [ - "1.24" - ], - "filament_cost": [ - "20" - ], - "cool_plate_temp" : [ - "35" - ], - "eng_plate_temp" : [ - "0" - ], - "hot_plate_temp" : [ - "45" - ], - "cool_plate_temp_initial_layer" : [ - "35" - ], - "eng_plate_temp_initial_layer" : [ - "0" - ], - "hot_plate_temp_initial_layer" : [ - "45" - ], - "nozzle_temperature_initial_layer": [ - "210" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_max_speed": [ - "100" - ], "fan_min_speed": [ "100" ], - "overhang_fan_speed": [ - "100" + "filament_cost": [ + "20" ], - "overhang_fan_threshold": [ - "50%" + "filament_density": [ + "1.24" ], - "close_fan_the_first_x_layers": [ - "1" + "filament_max_volumetric_speed": [ + "12" + ], + "filament_scarf_seam_type": [ + "none" + ], + "filament_scarf_gap": [ + "15%" + ], + "hot_plate_temp": [ + "55" + ], + "hot_plate_temp_initial_layer": [ + "55" ], "nozzle_temperature": [ "220" ], - "temperature_vitrification": [ - "60" + "nozzle_temperature_initial_layer": [ + "220" ], "nozzle_temperature_range_low": [ "190" ], "nozzle_temperature_range_high": [ - "230" + "240" ], - "slow_down_min_speed": [ - "10" + "overhang_fan_threshold": [ + "50%" + ], + "reduce_fan_stop_start_freq": [ + "1" ], "slow_down_layer_time": [ "4" ], - "additional_cooling_fan_speed": [ - "70" + "slow_down_min_speed": [ + "20" ], - "filament_start_gcode": [ - "; filament start gcode\n" + "temperature_vitrification": [ + "45" + ], + "textured_plate_temp": [ + "55" + ], + "textured_plate_temp_initial_layer": [ + "55" + ], + "filament_flow_ratio": [ + "0.98" ] -} +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pla_silk.json b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pla_silk.json new file mode 100644 index 0000000000..9e407dbf4a --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pla_silk.json @@ -0,0 +1,15 @@ +{ + "type": "filament", + "name": "fdm_filament_pla_silk", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFL96", + "instantiation": "false", + "description": "To make the prints get higher gloss, please dry the filament before use, and set the outer wall speed to be 40 to 60 mm/s when slicing.", + "filament_flow_ratio": [ + "0.98" + ], + "slow_down_layer_time": [ + "8" + ] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pp.json b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pp.json new file mode 100644 index 0000000000..1d8aaddb5d --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pp.json @@ -0,0 +1,89 @@ +{ + "type": "filament", + "name": "fdm_filament_pp", + "inherits": "fdm_filament_common", + "filament_id": "GFP97", + "from": "system", + "instantiation": "false", + "additional_cooling_fan_speed": [ + "70" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "cool_plate_temp": [ + "35" + ], + "cool_plate_temp_initial_layer": [ + "35" + ], + "eng_plate_temp": [ + "0" + ], + "eng_plate_temp_initial_layer": [ + "0" + ], + "fan_cooling_layer_time": [ + "100" + ], + "fan_min_speed": [ + "100" + ], + "filament_cost": [ + "34.99" + ], + "filament_density": [ + "0.93" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_type": [ + "PP" + ], + "hot_plate_temp": [ + "55" + ], + "hot_plate_temp_initial_layer": [ + "55" + ], + "nozzle_temperature": [ + "235" + ], + "nozzle_temperature_initial_layer": [ + "235" + ], + "nozzle_temperature_range_high": [ + "250" + ], + "nozzle_temperature_range_low": [ + "220" + ], + "overhang_fan_threshold": [ + "50%" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "supertack_plate_temp": [ + "0" + ], + "supertack_plate_temp_initial_layer": [ + "0" + ], + "slow_down_layer_time": [ + "4" + ], + "slow_down_min_speed": [ + "20" + ], + "temperature_vitrification": [ + "110" + ], + "textured_plate_temp": [ + "55" + ], + "textured_plate_temp_initial_layer": [ + "55" + ] +} \ No newline at end of file diff --git a/resources/profiles/Folgertech/filament/fdm_filament_pa.json b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_ppa.json similarity index 61% rename from resources/profiles/Folgertech/filament/fdm_filament_pa.json rename to resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_ppa.json index fb2d02e700..fa7478d1e2 100644 --- a/resources/profiles/Folgertech/filament/fdm_filament_pa.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_ppa.json @@ -1,88 +1,95 @@ { "type": "filament", - "name": "fdm_filament_pa", + "name": "fdm_filament_ppa", + "inherits": "fdm_filament_common", + "filament_id": "GFN97", "from": "system", "instantiation": "false", - "inherits": "fdm_filament_common", - "required_nozzle_HRC": [ - "40" - ], - "cool_plate_temp" : [ - "0" - ], - "eng_plate_temp" : [ - "100" - ], - "hot_plate_temp" : [ - "100" - ], - "textured_plate_temp" : [ - "100" - ], - "cool_plate_temp_initial_layer" : [ - "0" - ], - "eng_plate_temp_initial_layer" : [ - "100" - ], - "hot_plate_temp_initial_layer" : [ - "100" - ], - "textured_plate_temp_initial_layer" : [ - "100" - ], - "slow_down_for_layer_cooling": [ + "activate_air_filtration": [ "1" ], - "close_fan_the_first_x_layers": [ - "3" + "supertack_plate_temp": [ + "0" + ], + "supertack_plate_temp_initial_layer": [ + "0" + ], + "cool_plate_temp": [ + "0" + ], + "cool_plate_temp_initial_layer": [ + "0" + ], + "eng_plate_temp": [ + "100" + ], + "eng_plate_temp_initial_layer": [ + "100" ], "fan_cooling_layer_time": [ - "4" + "5" + ], + "fan_max_speed": [ + "30" + ], + "fan_min_speed": [ + "10" + ], + "filament_cost": [ + "20" + ], + "filament_density": [ + "1.17" + ], + "filament_flow_ratio": [ + "0.96" ], "filament_max_volumetric_speed": [ "8" ], "filament_type": [ - "PA" + "PPA-CF" ], - "filament_density": [ - "1.04" + "hot_plate_temp": [ + "100" ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "290" - ], - "reduce_fan_stop_start_freq": [ - "0" - ], - "fan_max_speed": [ - "60" - ], - "fan_min_speed": [ - "0" - ], - "overhang_fan_speed": [ - "30" + "hot_plate_temp_initial_layer": [ + "100" ], "nozzle_temperature": [ "290" ], - "temperature_vitrification": [ - "108" - ], - "nozzle_temperature_range_low": [ - "260" + "nozzle_temperature_initial_layer": [ + "290" ], "nozzle_temperature_range_high": [ - "300" + "320" ], - "slow_down_min_speed": [ - "10" + "nozzle_temperature_range_low": [ + "280" + ], + "overhang_fan_speed": [ + "40" + ], + "overhang_fan_threshold": [ + "0%" + ], + "required_nozzle_HRC": [ + "40" ], "slow_down_layer_time": [ "2" + ], + "slow_down_min_speed": [ + "20" + ], + "temperature_vitrification": [ + "210" + ], + "textured_plate_temp": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "100" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Geeetech/filament/fdm_filament_pa.json b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pps.json similarity index 57% rename from resources/profiles/Geeetech/filament/fdm_filament_pa.json rename to resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pps.json index fb462acbd3..b8d366193e 100644 --- a/resources/profiles/Geeetech/filament/fdm_filament_pa.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pps.json @@ -1,88 +1,85 @@ { "type": "filament", - "name": "fdm_filament_pa", + "name": "fdm_filament_pps", + "inherits": "fdm_filament_common", "from": "system", "instantiation": "false", - "inherits": "fdm_filament_common", - "required_nozzle_HRC": [ - "40" + "chamber_temperatures": [ + "60" ], - "cool_plate_temp" : [ + "supertack_plate_temp": [ "0" ], - "eng_plate_temp" : [ - "110" - ], - "hot_plate_temp" : [ - "110" - ], - "textured_plate_temp" : [ - "110" - ], - "cool_plate_temp_initial_layer" : [ + "supertack_plate_temp_initial_layer": [ "0" ], - "eng_plate_temp_initial_layer" : [ + "cool_plate_temp": [ + "0" + ], + "cool_plate_temp_initial_layer": [ + "0" + ], + "eng_plate_temp": [ "110" ], - "hot_plate_temp_initial_layer" : [ + "eng_plate_temp_initial_layer": [ "110" ], - "textured_plate_temp_initial_layer" : [ - "110" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], "fan_cooling_layer_time": [ - "4" - ], - "filament_max_volumetric_speed": [ - "8" - ], - "filament_type": [ - "PA" - ], - "filament_density": [ - "1.04" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "290" - ], - "reduce_fan_stop_start_freq": [ - "0" + "5" ], "fan_max_speed": [ - "60" + "50" ], "fan_min_speed": [ "0" ], + "filament_density": [ + "1.36" + ], + "filament_flow_ratio": [ + "0.96" + ], + "filament_max_volumetric_speed": [ + "4" + ], + "filament_type": [ + "PPS" + ], + "hot_plate_temp": [ + "110" + ], + "hot_plate_temp_initial_layer": [ + "110" + ], + "nozzle_temperature": [ + "320" + ], + "nozzle_temperature_initial_layer": [ + "320" + ], + "nozzle_temperature_range_high": [ + "340" + ], + "nozzle_temperature_range_low": [ + "300" + ], "overhang_fan_speed": [ "30" ], - "nozzle_temperature": [ - "290" - ], - "temperature_vitrification": [ - "108" - ], - "nozzle_temperature_range_low": [ - "260" - ], - "nozzle_temperature_range_high": [ - "300" - ], - "slow_down_min_speed": [ - "10" + "overhang_fan_threshold": [ + "0%" ], "slow_down_layer_time": [ "2" + ], + "temperature_vitrification": [ + "125" + ], + "textured_plate_temp": [ + "110" + ], + "textured_plate_temp_initial_layer": [ + "110" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Geeetech/filament/fdm_filament_pva.json b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pva.json similarity index 75% rename from resources/profiles/Geeetech/filament/fdm_filament_pva.json rename to resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pva.json index 440168cdf1..1b55c2b8ad 100644 --- a/resources/profiles/Geeetech/filament/fdm_filament_pva.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pva.json @@ -1,100 +1,97 @@ { "type": "filament", "name": "fdm_filament_pva", + "inherits": "fdm_filament_common", "from": "system", "instantiation": "false", - "inherits": "fdm_filament_common", + "additional_cooling_fan_speed": [ + "70" + ], + "close_fan_the_first_x_layers": [ + "1" + ], "cool_plate_temp": [ - "55" + "45" + ], + "cool_plate_temp_initial_layer": [ + "45" ], "eng_plate_temp": [ "0" ], - "hot_plate_temp": [ - "55" - ], - "textured_plate_temp": [ - "65" - ], - "cool_plate_temp_initial_layer": [ - "55" - ], "eng_plate_temp_initial_layer": [ "0" ], - "hot_plate_temp_initial_layer": [ - "55" - ], - "textured_plate_temp_initial_layer": [ - "65" - ], "fan_cooling_layer_time": [ "100" ], - "filament_max_volumetric_speed": [ - "15" - ], - "filament_soluble": [ - "1" - ], - "filament_is_support": [ - "1" - ], - "filament_type": [ - "PVA" - ], - "filament_density": [ - "1.24" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "220" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_max_speed": [ - "100" - ], "fan_min_speed": [ "100" ], - "overhang_fan_speed": [ - "100" + "filament_cost": [ + "20" ], - "overhang_fan_threshold": [ - "50%" + "filament_density": [ + "1.24" ], - "close_fan_the_first_x_layers": [ + "filament_is_support": [ "1" ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_soluble": [ + "1" + ], + "filament_type": [ + "PVA" + ], + "hot_plate_temp": [ + "55" + ], + "hot_plate_temp_initial_layer": [ + "55" + ], "nozzle_temperature": [ "220" ], - "temperature_vitrification": [ - "55" - ], - "nozzle_temperature_range_low": [ - "190" + "nozzle_temperature_initial_layer": [ + "220" ], "nozzle_temperature_range_high": [ "240" ], - "slow_down_min_speed": [ - "10" + "nozzle_temperature_range_low": [ + "190" + ], + "overhang_fan_threshold": [ + "50%" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "supertack_plate_temp": [ + "35" + ], + "supertack_plate_temp_initial_layer": [ + "35" ], "slow_down_layer_time": [ "4" ], - "additional_cooling_fan_speed": [ - "70" + "slow_down_min_speed": [ + "10" ], - "filament_start_gcode": [ - "; filament start gcode\n{if (bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S255\n{elsif(bed_temperature[current_extruder] >35)||(bed_temperature_initial_layer[current_extruder] >35)}M106 P3 S180\n{endif}" + "temperature_vitrification": [ + "45" + ], + "textured_plate_temp": [ + "55" + ], + "textured_plate_temp_initial_layer": [ + "55" + ], + "filament_flow_ratio": [ + "0.95" ] } \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_sbs.json b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_sbs.json new file mode 100644 index 0000000000..af59b81dfa --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_sbs.json @@ -0,0 +1,83 @@ +{ + "type": "filament", + "name": "fdm_filament_sbs", + "inherits": "fdm_filament_common", + "from": "system", + "instantiation": "false", + "filament_id": "GFL99", + "fan_cooling_layer_time": [ + "100" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_type": [ + "SBS" + ], + "filament_density": [ + "1.02" + ], + "filament_cost": [ + "15" + ], + "cool_plate_temp": [ + "70" + ], + "eng_plate_temp": [ + "70" + ], + "hot_plate_temp": [ + "70" + ], + "textured_plate_temp": [ + "70" + ], + "cool_plate_temp_initial_layer": [ + "70" + ], + "eng_plate_temp_initial_layer": [ + "70" + ], + "hot_plate_temp_initial_layer": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "70" + ], + "nozzle_temperature_initial_layer": [ + "235" + ], + "reduce_fan_stop_start_freq": [ + "0" + ], + "fan_min_speed": [ + "0" + ], + "overhang_fan_threshold": [ + "50%" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "nozzle_temperature": [ + "235" + ], + "temperature_vitrification": [ + "70" + ], + "nozzle_temperature_range_low": [ + "215" + ], + "nozzle_temperature_range_high": [ + "250" + ], + "slow_down_min_speed": [ + "20" + ], + "slow_down_layer_time": [ + "4" + ], + "additional_cooling_fan_speed": [ + "40" + ] +} \ No newline at end of file diff --git a/resources/profiles/Geeetech/filament/fdm_filament_tpu.json b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_tpu.json similarity index 72% rename from resources/profiles/Geeetech/filament/fdm_filament_tpu.json rename to resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_tpu.json index dd3c9cbdc1..cc84b4de2a 100644 --- a/resources/profiles/Geeetech/filament/fdm_filament_tpu.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_tpu.json @@ -1,88 +1,82 @@ { "type": "filament", "name": "fdm_filament_tpu", + "inherits": "fdm_filament_common", "from": "system", "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp": [ - "30" - ], - "eng_plate_temp": [ - "30" - ], - "hot_plate_temp": [ - "45" - ], - "textured_plate_temp": [ - "45" - ], - "cool_plate_temp_initial_layer": [ - "30" - ], - "eng_plate_temp_initial_layer": [ - "30" - ], - "hot_plate_temp_initial_layer": [ - "45" - ], - "textured_plate_temp_initial_layer": [ - "45" - ], - "fan_cooling_layer_time": [ - "100" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "filament_type": [ - "TPU" - ], - "filament_density": [ - "1.24" - ], - "filament_cost": [ - "20" - ], - "filament_retraction_length": [ - "0.4" - ], - "nozzle_temperature_initial_layer": [ - "240" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "overhang_fan_speed": [ - "100" - ], "additional_cooling_fan_speed": [ "70" ], "close_fan_the_first_x_layers": [ "1" ], + "supertack_plate_temp": [ + "0" + ], + "supertack_plate_temp_initial_layer": [ + "0" + ], + "cool_plate_temp": [ + "30" + ], + "cool_plate_temp_initial_layer": [ + "30" + ], + "eng_plate_temp": [ + "30" + ], + "eng_plate_temp_initial_layer": [ + "30" + ], + "fan_cooling_layer_time": [ + "100" + ], + "fan_min_speed": [ + "100" + ], + "filament_cost": [ + "20" + ], + "filament_density": [ + "1.24" + ], + "filament_max_volumetric_speed": [ + "3.2" + ], + "filament_retraction_length": [ + "0.4" + ], + "filament_type": [ + "TPU" + ], + "hot_plate_temp": [ + "35" + ], + "hot_plate_temp_initial_layer": [ + "35" + ], "nozzle_temperature": [ "240" ], - "temperature_vitrification": [ - "35" - ], - "nozzle_temperature_range_low": [ - "200" + "nozzle_temperature_initial_layer": [ + "240" ], "nozzle_temperature_range_high": [ "250" ], - "filament_start_gcode": [ - "; filament start gcode\n{if (bed_temperature[current_extruder] >35)||(bed_temperature_initial_layer[current_extruder] >35)}M106 P3 S255\n{elsif(bed_temperature[current_extruder] >30)||(bed_temperature_initial_layer[current_extruder] >30)}M106 P3 S180\n{endif}" + "nozzle_temperature_range_low": [ + "200" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "temperature_vitrification": [ + "30" + ], + "textured_plate_temp": [ + "35" + ], + "textured_plate_temp_initial_layer": [ + "35" ] } \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/eSUN/eSUN PLA+ @System.json b/resources/profiles/OrcaFilamentLibrary/filament/eSUN/eSUN PLA+ @System.json new file mode 100644 index 0000000000..f72868f4d3 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/eSUN/eSUN PLA+ @System.json @@ -0,0 +1,9 @@ +{ + "type": "filament", + "name": "eSUN PLA+ @System", + "inherits": "eSUN PLA+ @base", + "from": "system", + "setting_id": "OGFSL03_00", + "instantiation": "true", + "compatible_printers": [] +} \ No newline at end of file diff --git a/resources/profiles/TwoTrees/filament/TwoTrees Generic PLA.json b/resources/profiles/OrcaFilamentLibrary/filament/eSUN/eSUN PLA+ @base.json similarity index 50% rename from resources/profiles/TwoTrees/filament/TwoTrees Generic PLA.json rename to resources/profiles/OrcaFilamentLibrary/filament/eSUN/eSUN PLA+ @base.json index 5d7f144110..ac6bcd04fc 100644 --- a/resources/profiles/TwoTrees/filament/TwoTrees Generic PLA.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/eSUN/eSUN PLA+ @base.json @@ -1,21 +1,26 @@ { "type": "filament", - "filament_id": "GFL99", - "setting_id": "GFSL99", - "name": "TwoTrees Generic PLA", - "from": "system", - "instantiation": "true", + "name": "eSUN PLA+ @base", "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFL03", + "instantiation": "false", + "filament_cost": [ + "22.99" + ], + "filament_density": [ + "1.25" + ], "filament_flow_ratio": [ "0.98" ], "filament_max_volumetric_speed": [ "12" ], - "slow_down_layer_time": [ - "8" + "filament_vendor": [ + "eSUN" ], - "compatible_printers": [ - "TwoTrees SP-5 Klipper 0.4 nozzle" + "slow_down_layer_time": [ + "6" ] } \ No newline at end of file diff --git a/resources/profiles/Positron3D.json b/resources/profiles/Positron3D.json index 093360a0ad..e07ec2c115 100644 --- a/resources/profiles/Positron3D.json +++ b/resources/profiles/Positron3D.json @@ -55,84 +55,7 @@ "sub_path": "process/0.56mm Extra Draft @The Positron.json" } ], - "filament_list": [ - { - "name": "fdm_filament_common", - "sub_path": "filament/fdm_filament_common.json" - }, - { - "name": "fdm_filament_pla", - "sub_path": "filament/fdm_filament_pla.json" - }, - { - "name": "fdm_filament_tpu", - "sub_path": "filament/fdm_filament_tpu.json" - }, - { - "name": "fdm_filament_pet", - "sub_path": "filament/fdm_filament_pet.json" - }, - { - "name": "fdm_filament_abs", - "sub_path": "filament/fdm_filament_abs.json" - }, - { - "name": "fdm_filament_pc", - "sub_path": "filament/fdm_filament_pc.json" - }, - { - "name": "fdm_filament_asa", - "sub_path": "filament/fdm_filament_asa.json" - }, - { - "name": "fdm_filament_pva", - "sub_path": "filament/fdm_filament_pva.json" - }, - { - "name": "fdm_filament_pa", - "sub_path": "filament/fdm_filament_pa.json" - }, - { - "name": "Positron Generic PLA", - "sub_path": "filament/Positron Generic PLA.json" - }, - { - "name": "Positron Generic PLA-CF", - "sub_path": "filament/Positron Generic PLA-CF.json" - }, - { - "name": "Positron Generic PETG", - "sub_path": "filament/Positron Generic PETG.json" - }, - { - "name": "Positron Generic ABS", - "sub_path": "filament/Positron Generic ABS.json" - }, - { - "name": "Positron Generic TPU", - "sub_path": "filament/Positron Generic TPU.json" - }, - { - "name": "Positron Generic ASA", - "sub_path": "filament/Positron Generic ASA.json" - }, - { - "name": "Positron Generic PC", - "sub_path": "filament/Positron Generic PC.json" - }, - { - "name": "Positron Generic PVA", - "sub_path": "filament/Positron Generic PVA.json" - }, - { - "name": "Positron Generic PA", - "sub_path": "filament/Positron Generic PA.json" - }, - { - "name": "Positron Generic PA-CF", - "sub_path": "filament/Positron Generic PA-CF.json" - } - ], + "filament_list": [], "machine_list": [ { "name": "fdm_machine_common", @@ -159,4 +82,4 @@ "sub_path": "machine/The Positron 0.8 nozzle.json" } ] -} +} \ No newline at end of file diff --git a/resources/profiles/Positron3D/filament/Positron Generic ABS.json b/resources/profiles/Positron3D/filament/Positron Generic ABS.json deleted file mode 100644 index 2ec763c05a..0000000000 --- a/resources/profiles/Positron3D/filament/Positron Generic ABS.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFB99", - "setting_id": "GFSA04", - "name": "Positron Generic ABS", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_abs", - "filament_flow_ratio": [ - "0.926" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "compatible_printers": [ - "The Positron 0.4 nozzle", - "The Positron 0.2 nozzle", - "The Positron 0.6 nozzle", - "The Positron 0.8 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/Positron3D/filament/Positron Generic ASA.json b/resources/profiles/Positron3D/filament/Positron Generic ASA.json deleted file mode 100644 index e14571afcf..0000000000 --- a/resources/profiles/Positron3D/filament/Positron Generic ASA.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFB98", - "setting_id": "GFSA04", - "name": "Positron Generic ASA", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_asa", - "filament_flow_ratio": [ - "0.93" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "compatible_printers": [ - "The Positron 0.4 nozzle", - "The Positron 0.2 nozzle", - "The Positron 0.6 nozzle", - "The Positron 0.8 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/Positron3D/filament/Positron Generic PA-CF.json b/resources/profiles/Positron3D/filament/Positron Generic PA-CF.json deleted file mode 100644 index 11d0865e67..0000000000 --- a/resources/profiles/Positron3D/filament/Positron Generic PA-CF.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFN98", - "setting_id": "GFSA04", - "name": "Positron Generic PA-CF", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pa", - "filament_type": [ - "PA-CF" - ], - "nozzle_temperature_initial_layer": [ - "280" - ], - "nozzle_temperature": [ - "280" - ], - "filament_max_volumetric_speed": [ - "8" - ], - "compatible_printers": [ - "The Positron 0.4 nozzle", - "The Positron 0.2 nozzle", - "The Positron 0.6 nozzle", - "The Positron 0.8 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/Positron3D/filament/Positron Generic PA.json b/resources/profiles/Positron3D/filament/Positron Generic PA.json deleted file mode 100644 index ebc35a463b..0000000000 --- a/resources/profiles/Positron3D/filament/Positron Generic PA.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFN99", - "setting_id": "GFSA04", - "name": "Positron Generic PA", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pa", - "nozzle_temperature_initial_layer": [ - "280" - ], - "nozzle_temperature": [ - "280" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "compatible_printers": [ - "The Positron 0.4 nozzle", - "The Positron 0.2 nozzle", - "The Positron 0.6 nozzle", - "The Positron 0.8 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/Positron3D/filament/Positron Generic PC.json b/resources/profiles/Positron3D/filament/Positron Generic PC.json deleted file mode 100644 index 0b7ec94316..0000000000 --- a/resources/profiles/Positron3D/filament/Positron Generic PC.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFC99", - "setting_id": "GFSA04", - "name": "Positron Generic PC", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pc", - "filament_max_volumetric_speed": [ - "12" - ], - "filament_flow_ratio": [ - "0.94" - ], - "compatible_printers": [ - "The Positron 0.4 nozzle", - "The Positron 0.2 nozzle", - "The Positron 0.6 nozzle", - "The Positron 0.8 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/Positron3D/filament/Positron Generic PETG.json b/resources/profiles/Positron3D/filament/Positron Generic PETG.json deleted file mode 100644 index cddfe7cd90..0000000000 --- a/resources/profiles/Positron3D/filament/Positron Generic PETG.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFG99", - "setting_id": "GFSA04", - "name": "Positron Generic PETG", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pet", - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_cooling_layer_time": [ - "30" - ], - "overhang_fan_speed": [ - "90" - ], - "overhang_fan_threshold": [ - "25%" - ], - "fan_max_speed": [ - "90" - ], - "fan_min_speed": [ - "40" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "8" - ], - "filament_flow_ratio": [ - "0.95" - ], - "filament_max_volumetric_speed": [ - "10" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ], - "compatible_printers": [ - "The Positron 0.4 nozzle", - "The Positron 0.2 nozzle", - "The Positron 0.6 nozzle", - "The Positron 0.8 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/Positron3D/filament/Positron Generic PLA-CF.json b/resources/profiles/Positron3D/filament/Positron Generic PLA-CF.json deleted file mode 100644 index 24f9e37305..0000000000 --- a/resources/profiles/Positron3D/filament/Positron Generic PLA-CF.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFL98", - "setting_id": "GFSA04", - "name": "Positron Generic PLA-CF", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pla", - "filament_flow_ratio": [ - "0.95" - ], - "filament_type": [ - "PLA-CF" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "slow_down_layer_time": [ - "7" - ], - "compatible_printers": [ - "The Positron 0.4 nozzle", - "The Positron 0.2 nozzle", - "The Positron 0.6 nozzle", - "The Positron 0.8 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/Positron3D/filament/Positron Generic PLA.json b/resources/profiles/Positron3D/filament/Positron Generic PLA.json deleted file mode 100644 index b03c04976a..0000000000 --- a/resources/profiles/Positron3D/filament/Positron Generic PLA.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFL99", - "setting_id": "GFSA04", - "name": "Positron Generic PLA", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pla", - "filament_flow_ratio": [ - "0.98" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "slow_down_layer_time": [ - "8" - ], - "compatible_printers": [ - "The Positron 0.4 nozzle", - "The Positron 0.2 nozzle", - "The Positron 0.6 nozzle", - "The Positron 0.8 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/Positron3D/filament/Positron Generic PVA.json b/resources/profiles/Positron3D/filament/Positron Generic PVA.json deleted file mode 100644 index c0b9ae4647..0000000000 --- a/resources/profiles/Positron3D/filament/Positron Generic PVA.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFS99", - "setting_id": "GFSA04", - "name": "Positron Generic PVA", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pva", - "filament_flow_ratio": [ - "0.95" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "slow_down_layer_time": [ - "7" - ], - "slow_down_min_speed": [ - "10" - ], - "compatible_printers": [ - "The Positron 0.4 nozzle", - "The Positron 0.2 nozzle", - "The Positron 0.6 nozzle", - "The Positron 0.8 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/Positron3D/filament/Positron Generic TPU.json b/resources/profiles/Positron3D/filament/Positron Generic TPU.json deleted file mode 100644 index d186eb9348..0000000000 --- a/resources/profiles/Positron3D/filament/Positron Generic TPU.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFU99", - "setting_id": "GFSA04", - "name": "Positron Generic TPU", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_tpu", - "filament_max_volumetric_speed": [ - "3.2" - ], - "compatible_printers": [ - "The Positron 0.4 nozzle", - "The Positron 0.2 nozzle", - "The Positron 0.6 nozzle", - "The Positron 0.8 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/Positron3D/filament/fdm_filament_abs.json b/resources/profiles/Positron3D/filament/fdm_filament_abs.json deleted file mode 100644 index b9d4eeda31..0000000000 --- a/resources/profiles/Positron3D/filament/fdm_filament_abs.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_abs", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "105" - ], - "eng_plate_temp" : [ - "105" - ], - "hot_plate_temp" : [ - "105" - ], - "textured_plate_temp" : [ - "105" - ], - "cool_plate_temp_initial_layer" : [ - "105" - ], - "eng_plate_temp_initial_layer" : [ - "105" - ], - "hot_plate_temp_initial_layer" : [ - "105" - ], - "textured_plate_temp_initial_layer" : [ - "105" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "30" - ], - "filament_max_volumetric_speed": [ - "28.6" - ], - "filament_type": [ - "ABS" - ], - "filament_density": [ - "1.04" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "260" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "fan_max_speed": [ - "80" - ], - "fan_min_speed": [ - "10" - ], - "overhang_fan_threshold": [ - "25%" - ], - "overhang_fan_speed": [ - "80" - ], - "nozzle_temperature": [ - "260" - ], - "temperature_vitrification": [ - "110" - ], - "nozzle_temperature_range_low": [ - "240" - ], - "nozzle_temperature_range_high": [ - "270" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "3" - ] -} diff --git a/resources/profiles/Positron3D/filament/fdm_filament_asa.json b/resources/profiles/Positron3D/filament/fdm_filament_asa.json deleted file mode 100644 index 262c561bda..0000000000 --- a/resources/profiles/Positron3D/filament/fdm_filament_asa.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_asa", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "105" - ], - "eng_plate_temp" : [ - "105" - ], - "hot_plate_temp" : [ - "105" - ], - "textured_plate_temp" : [ - "105" - ], - "cool_plate_temp_initial_layer" : [ - "105" - ], - "eng_plate_temp_initial_layer" : [ - "105" - ], - "hot_plate_temp_initial_layer" : [ - "105" - ], - "textured_plate_temp_initial_layer" : [ - "105" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "35" - ], - "filament_max_volumetric_speed": [ - "28.6" - ], - "filament_type": [ - "ASA" - ], - "filament_density": [ - "1.04" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "260" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "fan_max_speed": [ - "80" - ], - "fan_min_speed": [ - "10" - ], - "overhang_fan_threshold": [ - "25%" - ], - "overhang_fan_speed": [ - "80" - ], - "nozzle_temperature": [ - "260" - ], - "temperature_vitrification": [ - "110" - ], - "nozzle_temperature_range_low": [ - "240" - ], - "nozzle_temperature_range_high": [ - "270" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "3" - ] -} diff --git a/resources/profiles/Positron3D/filament/fdm_filament_common.json b/resources/profiles/Positron3D/filament/fdm_filament_common.json deleted file mode 100644 index 9f77975119..0000000000 --- a/resources/profiles/Positron3D/filament/fdm_filament_common.json +++ /dev/null @@ -1,144 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_common", - "from": "system", - "instantiation": "false", - "cool_plate_temp" : [ - "60" - ], - "eng_plate_temp" : [ - "60" - ], - "hot_plate_temp" : [ - "60" - ], - "textured_plate_temp" : [ - "60" - ], - "cool_plate_temp_initial_layer" : [ - "60" - ], - "eng_plate_temp_initial_layer" : [ - "60" - ], - "hot_plate_temp_initial_layer" : [ - "60" - ], - "textured_plate_temp_initial_layer" : [ - "60" - ], - "overhang_fan_threshold": [ - "95%" - ], - "overhang_fan_speed": [ - "100" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "filament_end_gcode": [ - "; filament end gcode \n" - ], - "filament_flow_ratio": [ - "1" - ], - "reduce_fan_stop_start_freq": [ - "0" - ], - "fan_cooling_layer_time": [ - "60" - ], - "filament_cost": [ - "0" - ], - "filament_density": [ - "0" - ], - "filament_deretraction_speed": [ - "nil" - ], - "filament_diameter": [ - "1.75" - ], - "filament_max_volumetric_speed": [ - "0" - ], - "filament_minimal_purge_on_wipe_tower": [ - "15" - ], - "filament_retraction_minimum_travel": [ - "nil" - ], - "filament_retract_before_wipe": [ - "nil" - ], - "filament_retract_when_changing_layer": [ - "nil" - ], - "filament_retraction_length": [ - "nil" - ], - "filament_z_hop": [ - "nil" - ], - "filament_z_hop_types": [ - "nil" - ], - "filament_retract_restart_extra": [ - "nil" - ], - "filament_retraction_speed": [ - "nil" - ], - "filament_settings_id": [ - "" - ], - "filament_soluble": [ - "0" - ], - "filament_type": [ - "PLA" - ], - "filament_vendor": [ - "Generic" - ], - "filament_wipe": [ - "nil" - ], - "filament_wipe_distance": [ - "nil" - ], - "bed_type": [ - "Cool Plate" - ], - "nozzle_temperature_initial_layer": [ - "200" - ], - "full_fan_speed_layer": [ - "0" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "35" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "8" - ], - "filament_start_gcode": [ - "; Filament gcode\n" - ], - "nozzle_temperature": [ - "200" - ], - "temperature_vitrification": [ - "100" - ] -} diff --git a/resources/profiles/Positron3D/filament/fdm_filament_pa.json b/resources/profiles/Positron3D/filament/fdm_filament_pa.json deleted file mode 100644 index 58f53cd451..0000000000 --- a/resources/profiles/Positron3D/filament/fdm_filament_pa.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pa", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "0" - ], - "eng_plate_temp" : [ - "100" - ], - "hot_plate_temp" : [ - "100" - ], - "textured_plate_temp" : [ - "100" - ], - "cool_plate_temp_initial_layer" : [ - "0" - ], - "eng_plate_temp_initial_layer" : [ - "100" - ], - "hot_plate_temp_initial_layer" : [ - "100" - ], - "textured_plate_temp_initial_layer" : [ - "100" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "4" - ], - "filament_max_volumetric_speed": [ - "8" - ], - "filament_type": [ - "PA" - ], - "filament_density": [ - "1.04" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "290" - ], - "reduce_fan_stop_start_freq": [ - "0" - ], - "fan_max_speed": [ - "60" - ], - "fan_min_speed": [ - "0" - ], - "overhang_fan_speed": [ - "30" - ], - "nozzle_temperature": [ - "290" - ], - "temperature_vitrification": [ - "108" - ], - "nozzle_temperature_range_low": [ - "270" - ], - "nozzle_temperature_range_high": [ - "300" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "2" - ] -} diff --git a/resources/profiles/Positron3D/filament/fdm_filament_pc.json b/resources/profiles/Positron3D/filament/fdm_filament_pc.json deleted file mode 100644 index cec8b89a38..0000000000 --- a/resources/profiles/Positron3D/filament/fdm_filament_pc.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pc", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "0" - ], - "eng_plate_temp" : [ - "110" - ], - "hot_plate_temp" : [ - "110" - ], - "textured_plate_temp" : [ - "110" - ], - "cool_plate_temp_initial_layer" : [ - "0" - ], - "eng_plate_temp_initial_layer" : [ - "110" - ], - "hot_plate_temp_initial_layer" : [ - "110" - ], - "textured_plate_temp_initial_layer" : [ - "110" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "30" - ], - "filament_max_volumetric_speed": [ - "23.2" - ], - "filament_type": [ - "PC" - ], - "filament_density": [ - "1.04" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "270" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "fan_max_speed": [ - "60" - ], - "fan_min_speed": [ - "10" - ], - "overhang_fan_threshold": [ - "25%" - ], - "overhang_fan_speed": [ - "60" - ], - "nozzle_temperature": [ - "280" - ], - "temperature_vitrification": [ - "140" - ], - "nozzle_temperature_range_low": [ - "260" - ], - "nozzle_temperature_range_high": [ - "280" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "2" - ] -} diff --git a/resources/profiles/Positron3D/filament/fdm_filament_pet.json b/resources/profiles/Positron3D/filament/fdm_filament_pet.json deleted file mode 100644 index bb2323e9c1..0000000000 --- a/resources/profiles/Positron3D/filament/fdm_filament_pet.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pet", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "60" - ], - "eng_plate_temp" : [ - "0" - ], - "hot_plate_temp" : [ - "80" - ], - "textured_plate_temp" : [ - "80" - ], - "cool_plate_temp_initial_layer" : [ - "60" - ], - "eng_plate_temp_initial_layer" : [ - "0" - ], - "hot_plate_temp_initial_layer" : [ - "80" - ], - "textured_plate_temp_initial_layer" : [ - "80" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "20" - ], - "filament_max_volumetric_speed": [ - "25" - ], - "filament_type": [ - "PETG" - ], - "filament_density": [ - "1.27" - ], - "filament_cost": [ - "30" - ], - "nozzle_temperature_initial_layer": [ - "255" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "20" - ], - "overhang_fan_speed": [ - "100" - ], - "nozzle_temperature": [ - "255" - ], - "temperature_vitrification": [ - "80" - ], - "nozzle_temperature_range_low": [ - "220" - ], - "nozzle_temperature_range_high": [ - "260" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ] -} diff --git a/resources/profiles/Positron3D/filament/fdm_filament_pla.json b/resources/profiles/Positron3D/filament/fdm_filament_pla.json deleted file mode 100644 index 82c6772f35..0000000000 --- a/resources/profiles/Positron3D/filament/fdm_filament_pla.json +++ /dev/null @@ -1,94 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pla", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "fan_cooling_layer_time": [ - "100" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "filament_type": [ - "PLA" - ], - "filament_density": [ - "1.24" - ], - "filament_cost": [ - "20" - ], - "cool_plate_temp" : [ - "60" - ], - "eng_plate_temp" : [ - "60" - ], - "hot_plate_temp" : [ - "60" - ], - "textured_plate_temp" : [ - "60" - ], - "cool_plate_temp_initial_layer" : [ - "60" - ], - "eng_plate_temp_initial_layer" : [ - "60" - ], - "hot_plate_temp_initial_layer" : [ - "60" - ], - "textured_plate_temp_initial_layer" : [ - "60" - ], - "nozzle_temperature_initial_layer": [ - "220" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "overhang_fan_speed": [ - "100" - ], - "overhang_fan_threshold": [ - "50%" - ], - "close_fan_the_first_x_layers": [ - "1" - ], - "nozzle_temperature": [ - "220" - ], - "temperature_vitrification": [ - "60" - ], - "nozzle_temperature_range_low": [ - "190" - ], - "nozzle_temperature_range_high": [ - "230" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "4" - ], - "additional_cooling_fan_speed": [ - "70" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ] -} diff --git a/resources/profiles/Positron3D/filament/fdm_filament_pva.json b/resources/profiles/Positron3D/filament/fdm_filament_pva.json deleted file mode 100644 index ebf25aa3ae..0000000000 --- a/resources/profiles/Positron3D/filament/fdm_filament_pva.json +++ /dev/null @@ -1,100 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pva", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "35" - ], - "eng_plate_temp" : [ - "0" - ], - "hot_plate_temp" : [ - "45" - ], - "textured_plate_temp" : [ - "45" - ], - "cool_plate_temp_initial_layer" : [ - "35" - ], - "eng_plate_temp_initial_layer" : [ - "0" - ], - "hot_plate_temp_initial_layer" : [ - "45" - ], - "textured_plate_temp_initial_layer" : [ - "45" - ], - "fan_cooling_layer_time": [ - "100" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "filament_soluble": [ - "1" - ], - "filament_is_support": [ - "1" - ], - "filament_type": [ - "PVA" - ], - "filament_density": [ - "1.24" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "220" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "overhang_fan_speed": [ - "100" - ], - "overhang_fan_threshold": [ - "50%" - ], - "close_fan_the_first_x_layers": [ - "1" - ], - "nozzle_temperature": [ - "220" - ], - "temperature_vitrification": [ - "50" - ], - "nozzle_temperature_range_low": [ - "190" - ], - "nozzle_temperature_range_high": [ - "250" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "4" - ], - "additional_cooling_fan_speed": [ - "70" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ] -} diff --git a/resources/profiles/Positron3D/filament/fdm_filament_tpu.json b/resources/profiles/Positron3D/filament/fdm_filament_tpu.json deleted file mode 100644 index d00b7dbcab..0000000000 --- a/resources/profiles/Positron3D/filament/fdm_filament_tpu.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_tpu", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "30" - ], - "eng_plate_temp" : [ - "30" - ], - "hot_plate_temp" : [ - "35" - ], - "textured_plate_temp" : [ - "35" - ], - "cool_plate_temp_initial_layer" : [ - "30" - ], - "eng_plate_temp_initial_layer" : [ - "30" - ], - "hot_plate_temp_initial_layer" : [ - "35" - ], - "textured_plate_temp_initial_layer" : [ - "35" - ], - "fan_cooling_layer_time": [ - "100" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "filament_type": [ - "TPU" - ], - "filament_density": [ - "1.24" - ], - "filament_cost": [ - "20" - ], - "filament_retraction_length": [ - "0.4" - ], - "nozzle_temperature_initial_layer": [ - "240" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "overhang_fan_speed": [ - "100" - ], - "additional_cooling_fan_speed": [ - "70" - ], - "close_fan_the_first_x_layers": [ - "1" - ], - "nozzle_temperature": [ - "240" - ], - "temperature_vitrification": [ - "60" - ], - "nozzle_temperature_range_low": [ - "200" - ], - "nozzle_temperature_range_high": [ - "250" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ] -} diff --git a/resources/profiles/Positron3D/machine/fdm_common_the_positron.json b/resources/profiles/Positron3D/machine/fdm_common_the_positron.json index 23effbd1e0..3c3a74959b 100644 --- a/resources/profiles/Positron3D/machine/fdm_common_the_positron.json +++ b/resources/profiles/Positron3D/machine/fdm_common_the_positron.json @@ -34,7 +34,7 @@ "retraction_minimum_travel": ["1"], "retract_before_wipe": ["70%"], "retract_when_changing_layer": ["1"], - "retraction_length": ["2.9"], + "retraction_length": ["0.8"], "retract_length_toolchange": ["2"], "z_hop": ["0.4"], "retract_restart_extra": ["0"], diff --git a/resources/profiles/Positron3D/machine/fdm_machine_common.json b/resources/profiles/Positron3D/machine/fdm_machine_common.json index bfb6b23e1a..1d35eb33bf 100644 --- a/resources/profiles/Positron3D/machine/fdm_machine_common.json +++ b/resources/profiles/Positron3D/machine/fdm_machine_common.json @@ -88,7 +88,7 @@ "1" ], "retraction_length": [ - "5" + "1" ], "retract_length_toolchange": [ "1" diff --git a/resources/profiles/Prusa.json b/resources/profiles/Prusa.json index 596cfc9524..75675aedc5 100644 --- a/resources/profiles/Prusa.json +++ b/resources/profiles/Prusa.json @@ -31,6 +31,14 @@ { "name": "Prusa XL 5T", "sub_path": "machine/Prusa XL 5T.json" + }, + { + "name": "MK4S", + "sub_path": "machine/Prusa MK4S.json" + }, + { + "name": "MK4S HF", + "sub_path": "machine/Prusa MK4S HF.json" } ], "process_list": [ @@ -66,6 +74,10 @@ "name": "process_common_xl_5t", "sub_path": "process/process_common_xl_5t.json" }, + { + "name": "process_common_mk4s", + "sub_path": "process/process_common_mk4s.json" + }, { "name": "0.20mm Standard @MINI 0.25", "sub_path": "process/0.20mm Standard @MINI 0.25.json" @@ -85,12 +97,12 @@ { "name": "0.05mm UltraDetail @MK3S 0.25", "sub_path": "process/0.05mm UltraDetail @MK3S 0.25.json" - }, - { + }, + { "name": "0.05mm UltraDetail @MK3S 0.4", "sub_path": "process/0.05mm UltraDetail @MK3S 0.4.json" }, - { + { "name": "0.07mm UltraDetail @MK3S 0.25", "sub_path": "process/0.07mm UltraDetail @MK3S 0.25.json" }, @@ -98,7 +110,7 @@ "name": "0.07mm UltraDetail @MK3S 0.4", "sub_path": "process/0.07mm UltraDetail @MK3S 0.4.json" }, - { + { "name": "0.10mm Detail @MK3S 0.25", "sub_path": "process/0.10mm Detail @MK3S 0.25.json" }, @@ -106,7 +118,7 @@ "name": "0.10mm Detail @MK3S 0.4", "sub_path": "process/0.10mm Detail @MK3S 0.4.json" }, - { + { "name": "0.15mm Quality @MK3S 0.25", "sub_path": "process/0.15mm Quality @MK3S 0.25.json" }, @@ -117,7 +129,7 @@ { "name": "0.15mm Speed @MK3S 0.4", "sub_path": "process/0.15mm Speed @MK3S 0.4.json" - }, + }, { "name": "0.20mm Standard @MK3S 0.4", "sub_path": "process/0.20mm Standard @MK3S 0.4.json" @@ -130,38 +142,38 @@ "name": "0.30mm Draft @MK3S 0.4", "sub_path": "process/0.30mm Draft @MK3S 0.4.json" }, - { + { "name": "0.15mm Detail @MK3S 0.6", "sub_path": "process/0.15mm Detail @MK3S 0.6.json" }, - { + { "name": "0.20mm Detail @MK3S 0.6", "sub_path": "process/0.20mm Detail @MK3S 0.6.json" }, - { + { "name": "0.30mm Quality @MK3S 0.6", "sub_path": "process/0.30mm Quality @MK3S 0.6.json" }, - { + { "name": "0.35mm Speed @MK3S 0.6", "sub_path": "process/0.35mm Speed @MK3S 0.6.json" }, - { + { "name": "0.40mm Draft @MK3S 0.6", "sub_path": "process/0.40mm Draft @MK3S 0.6.json" }, - { + { "name": "0.30mm Detail @MK3S 0.8", "sub_path": "process/0.30mm Detail @MK3S 0.8.json" }, - { + { "name": "0.40mm Quality @MK3S 0.8", "sub_path": "process/0.40mm Quality @MK3S 0.8.json" }, - { + { "name": "0.55mm Draft @MK3S 0.8", "sub_path": "process/0.55mm Draft @MK3S 0.8.json" - }, + }, { "name": "0.08mm Standard @MK4", "sub_path": "process/0.08mm Standard @MK4.json" @@ -249,7 +261,7 @@ { "name": "0.35mm Standard @MINIIS", "sub_path": "process/0.35mm Standard @MINIIS.json" - }, + }, { "name": "0.40mm Standard @MINIIS", "sub_path": "process/0.40mm Standard @MINIIS.json" @@ -333,11 +345,11 @@ { "name": "0.35mm Standard @MK3.5", "sub_path": "process/0.35mm Standard @MK3.5.json" - }, + }, { "name": "0.40mm Standard @MK3.5", "sub_path": "process/0.40mm Standard @MK3.5.json" - }, + }, { "name": "0.24mm Standard @MK4", "sub_path": "process/0.24mm Standard @MK4.json" @@ -613,7 +625,220 @@ { "name": "0.30mm Detail @Prusa XL 5T 0.8", "sub_path": "process/0.30mm Detail @Prusa XL 5T 0.8.json" + }, + { + "name": "0.07mm DETAIL @MK4S 0.25", + "sub_path": "process/0.07mm DETAIL @MK4S 0.25.json" + }, + { + "name": "0.05mm DETAIL @MK4S 0.25", + "sub_path": "process/0.05mm DETAIL @MK4S 0.25.json" + }, + { + "name": "0.15mm SPEED @MK4S 0.4", + "sub_path": "process/0.15mm SPEED @MK4S 0.4.json" + }, + { + "name": "0.10mm FAST DETAIL @MK4S 0.4", + "sub_path": "process/0.10mm FAST DETAIL @MK4S 0.4.json" + }, + { + "name": "0.10mm STRUCTURAL @MK4S 0.5", + "sub_path": "process/0.10mm STRUCTURAL @MK4S 0.5.json" + }, + { + "name": "0.12mm SPEED @MK4S 0.25", + "sub_path": "process/0.12mm SPEED @MK4S 0.25.json" + }, + { + "name": "0.12mm STRUCTURAL @MK4S 0.25", + "sub_path": "process/0.12mm STRUCTURAL @MK4S 0.25.json" + }, + { + "name": "0.12mm STRUCTURAL @MK4S 0.3", + "sub_path": "process/0.12mm STRUCTURAL @MK4S 0.3.json" + }, + { + "name": "0.15mm SPEED @MK4S 0.25", + "sub_path": "process/0.15mm SPEED @MK4S 0.25.json" + }, + { + "name": "0.15mm SPEED @MK4S HF0.4", + "sub_path": "process/0.15mm SPEED @MK4S HF0.4.json" + }, + { + "name": "0.15mm STRUCTURAL @MK4S 0.25", + "sub_path": "process/0.15mm STRUCTURAL @MK4S 0.25.json" + }, + { + "name": "0.20mm STRUCTURAL @MK4S 0.4", + "sub_path": "process/0.20mm STRUCTURAL @MK4S 0.4.json" + }, + { + "name": "0.15mm STRUCTURAL @MK4S 0.4", + "sub_path": "process/0.15mm STRUCTURAL @MK4S 0.4.json" + }, + { + "name": "0.15mm STRUCTURAL @MK4S 0.5", + "sub_path": "process/0.15mm STRUCTURAL @MK4S 0.5.json" + }, + { + "name": "0.15mm STRUCTURAL @MK4S 0.6", + "sub_path": "process/0.15mm STRUCTURAL @MK4S 0.6.json" + }, + { + "name": "0.16mm STRUCTURAL @MK4S 0.3", + "sub_path": "process/0.16mm STRUCTURAL @MK4S 0.3.json" + }, + { + "name": "0.16mm SPEED @MK4S 0.3", + "sub_path": "process/0.16mm SPEED @MK4S 0.3.json" + }, + { + "name": "0.20mm SPEED @MK4S 0.3", + "sub_path": "process/0.20mm SPEED @MK4S 0.3.json" + }, + { + "name": "0.20mm SPEED @MK4S 0.4", + "sub_path": "process/0.20mm SPEED @MK4S 0.4.json" + }, + { + "name": "0.20mm SPEED @MK4S 0.5", + "sub_path": "process/0.20mm SPEED @MK4S 0.5.json" + }, + { + "name": "0.20mm SPEED @MK4S 0.6", + "sub_path": "process/0.20mm SPEED @MK4S 0.6.json" + }, + { + "name": "0.20mm SPEED @MK4S HF0.4", + "sub_path": "process/0.20mm SPEED @MK4S HF0.4.json" + }, + { + "name": "0.20mm SPEED @MK4S HF0.5", + "sub_path": "process/0.20mm SPEED @MK4S HF0.5.json" + }, + { + "name": "0.20mm SPEED @MK4S HF0.6", + "sub_path": "process/0.20mm SPEED @MK4S HF0.6.json" + }, + { + "name": "0.20mm STRUCTURAL @MK4S 0.3", + "sub_path": "process/0.20mm STRUCTURAL @MK4S 0.3.json" + }, + { + "name": "0.20mm STRUCTURAL @MK4S 0.5", + "sub_path": "process/0.20mm STRUCTURAL @MK4S 0.5.json" + }, + { + "name": "0.20mm STRUCTURAL @MK4S 0.6", + "sub_path": "process/0.20mm STRUCTURAL @MK4S 0.6.json" + }, + { + "name": "0.25mm SPEED @MK4S 0.5", + "sub_path": "process/0.25mm SPEED @MK4S 0.5.json" + }, + { + "name": "0.25mm SPEED @MK4S 0.6", + "sub_path": "process/0.25mm SPEED @MK4S 0.6.json" + }, + { + "name": "0.25mm SPEED @MK4S HF0.4", + "sub_path": "process/0.25mm SPEED @MK4S HF0.4.json" + }, + { + "name": "0.25mm SPEED @MK4S HF0.5", + "sub_path": "process/0.25mm SPEED @MK4S HF0.5.json" + }, + { + "name": "0.25mm SPEED @MK4S HF0.6", + "sub_path": "process/0.25mm SPEED @MK4S HF0.6.json" + }, + { + "name": "0.25mm STRUCTURAL @MK4S 0.5", + "sub_path": "process/0.25mm STRUCTURAL @MK4S 0.5.json" + }, + { + "name": "0.25mm STRUCTURAL @MK4S 0.6", + "sub_path": "process/0.25mm STRUCTURAL @MK4S 0.6.json" + }, + { + "name": "0.25mm STRUCTURAL @MK4S HF0.4", + "sub_path": "process/0.25mm STRUCTURAL @MK4S HF0.4.json" + }, + { + "name": "0.28mm DRAFT @MK4S HF0.4", + "sub_path": "process/0.28mm DRAFT @MK4S HF0.4.json" + }, + { + "name": "0.30mm DETAIL @MK4S 0.8", + "sub_path": "process/0.30mm DETAIL @MK4S 0.8.json" + }, + { + "name": "0.30mm SPEED @MK4S HF0.8", + "sub_path": "process/0.30mm SPEED @MK4S HF0.8.json" + }, + { + "name": "0.30mm STRUCTURAL @MK4S HF0.8", + "sub_path": "process/0.30mm STRUCTURAL @MK4S HF0.8.json" + }, + { + "name": "0.32mm SPEED @MK4S 0.6", + "sub_path": "process/0.32mm SPEED @MK4S 0.6.json" + }, + { + "name": "0.32mm SPEED @MK4S HF0.5", + "sub_path": "process/0.32mm SPEED @MK4S HF0.5.json" + }, + { + "name": "0.32mm SPEED @MK4S HF0.6", + "sub_path": "process/0.32mm SPEED @MK4S HF0.6.json" + }, + { + "name": "0.32mm STRUCTURAL @MK4S 0.6", + "sub_path": "process/0.32mm STRUCTURAL @MK4S 0.6.json" + }, + { + "name": "0.32mm STRUCTURAL @MK4S HF0.5", + "sub_path": "process/0.32mm STRUCTURAL @MK4S HF0.5.json" + }, + { + "name": "0.32mm STRUCTURAL @MK4S HF0.6", + "sub_path": "process/0.32mm STRUCTURAL @MK4S HF0.6.json" + }, + { + "name": "0.40mm QUALITY @MK4S 0.8", + "sub_path": "process/0.40mm QUALITY @MK4S 0.8.json" + }, + { + "name": "0.40mm SPEED @MK4S HF0.6", + "sub_path": "process/0.40mm SPEED @MK4S HF0.6.json" + }, + { + "name": "0.40mm SPEED @MK4S HF0.8", + "sub_path": "process/0.40mm SPEED @MK4S HF0.8.json" + }, + { + "name": "0.40mm STRUCTURAL @MK4S HF0.6", + "sub_path": "process/0.40mm STRUCTURAL @MK4S HF0.6.json" + }, + { + "name": "0.40mm STRUCTURAL @MK4S HF0.8", + "sub_path": "process/0.40mm STRUCTURAL @MK4S HF0.8.json" + }, + { + "name": "0.55mm DRAFT @MK4S 0.8", + "sub_path": "process/0.55mm DRAFT @MK4S 0.8.json" + }, + { + "name": "0.55mm SPEED @MK4S HF0.8", + "sub_path": "process/0.55mm SPEED @MK4S HF0.8.json" + }, + { + "name": "0.55mm STRUCTURAL @MK4S HF0.8", + "sub_path": "process/0.55mm STRUCTURAL @MK4S HF0.8.json" } + ], "filament_list": [ { @@ -872,7 +1097,6 @@ "name": "Prusa Generic PA-CF @MINIIS 0.8", "sub_path": "filament/Prusa Generic PA-CF @MINIIS 0.8.json" }, - { "name": "Prusa Generic PLA @XL", "sub_path": "filament/Prusa Generic PLA @XL.json" @@ -1108,6 +1332,142 @@ { "name": "Prusa Generic PA-CF @MK3.5 0.8", "sub_path": "filament/Prusa Generic PA-CF @MK3.5 0.8.json" + }, + { + "name": "Prusa Generic ABS @MK4S", + "sub_path": "filament/Prusa Generic ABS @MK4S.json" + }, + { + "name": "Prusa Generic ABS @MK4S 0.6", + "sub_path": "filament/Prusa Generic ABS @MK4S 0.6.json" + }, + { + "name": "Prusa Generic ABS @MK4S 0.8", + "sub_path": "filament/Prusa Generic ABS @MK4S 0.8.json" + }, + { + "name": "Prusa Generic ABS @MK4S HF0.4", + "sub_path": "filament/Prusa Generic ABS @MK4S HF0.4.json" + }, + { + "name": "Prusa Generic ABS @MK4S HF0.5", + "sub_path": "filament/Prusa Generic ABS @MK4S HF0.5.json" + }, + { + "name": "Prusa Generic ABS @MK4S HF0.6", + "sub_path": "filament/Prusa Generic ABS @MK4S HF0.6.json" + }, + { + "name": "Prusa Generic ABS @MK4S HF0.8", + "sub_path": "filament/Prusa Generic ABS @MK4S HF0.8.json" + }, + { + "name": "Prusa Generic ASA @MK4S", + "sub_path": "filament/Prusa Generic ASA @MK4S.json" + }, + { + "name": "Prusa Generic ASA @MK4S 0.6", + "sub_path": "filament/Prusa Generic ASA @MK4S 0.6.json" + }, + { + "name": "Prusa Generic ASA @MK4S 0.8", + "sub_path": "filament/Prusa Generic ASA @MK4S 0.8.json" + }, + { + "name": "Prusa Generic ASA @MK4S HF0.4", + "sub_path": "filament/Prusa Generic ASA @MK4S HF0.4.json" + }, + { + "name": "Prusa Generic ASA @MK4S HF0.5", + "sub_path": "filament/Prusa Generic ASA @MK4S HF0.5.json" + }, + { + "name": "Prusa Generic ASA @MK4S HF0.6", + "sub_path": "filament/Prusa Generic ASA @MK4S HF0.6.json" + }, + { + "name": "Prusa Generic ASA @MK4S HF0.8", + "sub_path": "filament/Prusa Generic ASA @MK4S HF0.8.json" + }, + { + "name": "Prusa Generic TPU @MK4S", + "sub_path": "filament/Prusa Generic TPU @MK4S.json" + }, + { + "name": "Prusa Generic TPU @MK4S 0.6", + "sub_path": "filament/Prusa Generic TPU @MK4S 0.6.json" + }, + { + "name": "Prusa Generic TPU @MK4S 0.8", + "sub_path": "filament/Prusa Generic TPU @MK4S 0.8.json" + }, + { + "name": "Prusa Generic PETG @MK4S", + "sub_path": "filament/Prusa Generic PETG @MK4S.json" + }, + { + "name": "Prusa Generic PETG @MK4S 0.6", + "sub_path": "filament/Prusa Generic PETG @MK4S 0.6.json" + }, + { + "name": "Prusa Generic PETG @MK4S 0.8", + "sub_path": "filament/Prusa Generic PETG @MK4S 0.8.json" + }, + { + "name": "Prusa Generic PETG @MK4S HF0.4", + "sub_path": "filament/Prusa Generic PETG @MK4S HF0.4.json" + }, + { + "name": "Prusa Generic PETG @MK4S HF0.5", + "sub_path": "filament/Prusa Generic PETG @MK4S HF0.5.json" + }, + { + "name": "Prusa Generic PETG @MK4S HF0.6", + "sub_path": "filament/Prusa Generic PETG @MK4S HF0.6.json" + }, + { + "name": "Prusa Generic PETG @MK4S HF0.8", + "sub_path": "filament/Prusa Generic PETG @MK4S HF0.8.json" + }, + { + "name": "Prusa Generic PLA @MK4S", + "sub_path": "filament/Prusa Generic PLA @MK4S.json" + }, + { + "name": "Prusa Generic PLA @MK4S 0.6", + "sub_path": "filament/Prusa Generic PLA @MK4S 0.6.json" + }, + { + "name": "Prusa Generic PLA @MK4S 0.8", + "sub_path": "filament/Prusa Generic PLA @MK4S 0.8.json" + }, + { + "name": "Prusa Generic PLA @MK4S HF0.4", + "sub_path": "filament/Prusa Generic PLA @MK4S HF0.4.json" + }, + { + "name": "Prusa Generic PLA @MK4S HF0.5", + "sub_path": "filament/Prusa Generic PLA @MK4S HF0.5.json" + }, + { + "name": "Prusa Generic PLA @MK4S HF0.6", + "sub_path": "filament/Prusa Generic PLA @MK4S HF0.6.json" + }, + { + "name": "Prusa Generic PLA @MK4S HF0.8", + "sub_path": "filament/Prusa Generic PLA @MK4S HF0.8.json" + }, + { + "name": "Prusa Generic PLA Silk @MK4S", + "sub_path": "filament/Prusa Generic PLA Silk @MK4S.json" + }, + { + "name": "Prusa Generic PLA Silk @MK4S 0.6", + "sub_path": "filament/Prusa Generic PLA Silk @MK4S 0.6.json" + }, + { + "name": "Prusa Generic PLA Silk @MK4S 0.8", + "sub_path": "filament/Prusa Generic PLA Silk @MK4S 0.8.json" } ], "machine_list": [ @@ -1123,7 +1483,11 @@ "name": "fdm_machine_common_xl_5t", "sub_path": "machine/fdm_machine_common_xl_5t.json" }, - { + { + "name": "fdm_machine_common_mk4s", + "sub_path": "machine/fdm_machine_common_mk4s.json" + }, + { "name": "Prusa MK3S 0.25 nozzle", "sub_path": "machine/Prusa MK3S 0.25 nozzle.json" }, @@ -1131,14 +1495,14 @@ "name": "Prusa MK3S 0.4 nozzle", "sub_path": "machine/Prusa MK3S 0.4 nozzle.json" }, - { + { "name": "Prusa MK3S 0.6 nozzle", "sub_path": "machine/Prusa MK3S 0.6 nozzle.json" - }, - { + }, + { "name": "Prusa MK3S 0.8 nozzle", "sub_path": "machine/Prusa MK3S 0.8 nozzle.json" - }, + }, { "name": "Prusa MK4 0.25 nozzle", "sub_path": "machine/Prusa MK4 0.25 nozzle.json" @@ -1250,6 +1614,46 @@ { "name": "Prusa XL 5T 0.8 nozzle", "sub_path": "machine/Prusa XL 5T 0.8 nozzle.json" + }, + { + "name": "Prusa MK4S 0.4 nozzle", + "sub_path": "machine/Prusa MK4S 0.4 nozzle.json" + }, + { + "name": "Prusa MK4S HF0.4 nozzle", + "sub_path": "machine/Prusa MK4S 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.5 nozzle", + "sub_path": "machine/Prusa MK4S HF0.5 nozzle.json" + }, + { + "name": "Prusa MK4S HF0.6 nozzle", + "sub_path": "machine/Prusa MK4S HF0.6 nozzle.json" + }, + { + "name": "Prusa MK4S HF0.8 nozzle", + "sub_path": "machine/Prusa MK4S HF0.8 nozzle.json" } ] } diff --git a/resources/profiles/Prusa/MK3.5_cover.png b/resources/profiles/Prusa/MK3.5_cover.png index de98d53183..cf9455c163 100644 Binary files a/resources/profiles/Prusa/MK3.5_cover.png and b/resources/profiles/Prusa/MK3.5_cover.png differ diff --git a/resources/profiles/Prusa/MK4IS_cover.png b/resources/profiles/Prusa/MK4IS_cover.png index de98d53183..cf9455c163 100644 Binary files a/resources/profiles/Prusa/MK4IS_cover.png and b/resources/profiles/Prusa/MK4IS_cover.png differ diff --git a/resources/profiles/Prusa/MK4S HF_cover.png b/resources/profiles/Prusa/MK4S HF_cover.png new file mode 100644 index 0000000000..334a0abe16 Binary files /dev/null and b/resources/profiles/Prusa/MK4S HF_cover.png differ diff --git a/resources/profiles/Prusa/MK4S_cover.png b/resources/profiles/Prusa/MK4S_cover.png new file mode 100644 index 0000000000..334a0abe16 Binary files /dev/null and b/resources/profiles/Prusa/MK4S_cover.png differ diff --git a/resources/profiles/Prusa/Prusa XL 5T_cover.png b/resources/profiles/Prusa/Prusa XL 5T_cover.png index 2a302857e6..6d3654c1b4 100644 Binary files a/resources/profiles/Prusa/Prusa XL 5T_cover.png and b/resources/profiles/Prusa/Prusa XL 5T_cover.png differ diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S 0.6.json b/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S 0.6.json new file mode 100644 index 0000000000..aa0b8811d6 --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S 0.6.json @@ -0,0 +1,12 @@ +{ + "compatible_printers": [ + "Prusa MK4S 0.6 nozzle" + ], + "filament_id": "Generic ABS @MK4S 0.6", + "from": "system", + "inherits": "Prusa Generic ABS @MK4S", + "instantiation": "true", + "name": "Prusa Generic ABS @MK4S 0.6", + "setting_id": "GFSA04", + "type": "filament" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S 0.8.json b/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S 0.8.json new file mode 100644 index 0000000000..b5e16d7fc1 --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S 0.8.json @@ -0,0 +1,12 @@ +{ + "compatible_printers": [ + "Prusa MK4S 0.8 nozzle" + ], + "filament_id": "Generic ABS @MK4S 0.8", + "from": "system", + "inherits": "Prusa Generic ABS @MK4S", + "instantiation": "true", + "name": "Prusa Generic ABS @MK4S 0.8", + "setting_id": "GFSA04", + "type": "filament" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S HF0.4.json b/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S HF0.4.json new file mode 100644 index 0000000000..4a57166b17 --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S HF0.4.json @@ -0,0 +1,17 @@ +{ + "compatible_printers": [ + "Prusa MK4S HF0.4 nozzle" + ], + "fan_max_speed": "15", + "filament_id": "Generic ABS @MK4S HF0.4", + "filament_max_volumetric_speed": "26", + "filament_start_gcode": [ + "M572 S{if nozzle_diameter[0]==0.4}0.02{elsif nozzle_diameter[0]==0.5}0.018{elsif nozzle_diameter[0]==0.6}0.015{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\nM142 S40 ; set heatbreak target temp" + ], + "from": "system", + "inherits": "Prusa Generic ABS @MK4S", + "instantiation": "true", + "name": "Prusa Generic ABS @MK4S HF0.4", + "setting_id": "GFSA04", + "type": "filament" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S HF0.5.json b/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S HF0.5.json new file mode 100644 index 0000000000..4efb066182 --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S HF0.5.json @@ -0,0 +1,13 @@ +{ + "compatible_printers": [ + "Prusa MK4S HF0.5 nozzle" + ], + "filament_id": "Generic ABS @MK4S HF0.5", + "filament_max_volumetric_speed": "27", + "from": "system", + "inherits": "Prusa Generic ABS @MK4S HF0.4", + "instantiation": "true", + "name": "Prusa Generic ABS @MK4S HF0.5", + "setting_id": "GFSA04", + "type": "filament" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S HF0.6.json b/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S HF0.6.json new file mode 100644 index 0000000000..9ded6ce740 --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S HF0.6.json @@ -0,0 +1,13 @@ +{ + "compatible_printers": [ + "Prusa MK4S HF0.6 nozzle" + ], + "filament_id": "Generic ABS @MK4S HF0.6", + "filament_max_volumetric_speed": "34", + "from": "system", + "inherits": "Prusa Generic ABS @MK4S HF0.4", + "instantiation": "true", + "name": "Prusa Generic ABS @MK4S HF0.6", + "setting_id": "GFSA04", + "type": "filament" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S HF0.8.json b/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S HF0.8.json new file mode 100644 index 0000000000..d0f3f450da --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S HF0.8.json @@ -0,0 +1,15 @@ +{ + "compatible_printers": [ + "Prusa MK4S HF0.8 nozzle" + ], + "fan_min_speed": "15", + "filament_id": "Generic ABS @MK4S HF0.8", + "filament_max_volumetric_speed": "36", + "from": "system", + "inherits": "Prusa Generic ABS @MK4S HF0.4", + "instantiation": "true", + "name": "Prusa Generic ABS @MK4S HF0.8", + "setting_id": "GFSA04", + "slow_down_layer_time": "25", + "type": "filament" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S.json b/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S.json new file mode 100644 index 0000000000..fdbfd006d0 --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S.json @@ -0,0 +1,36 @@ +{ + "close_fan_the_first_x_layers": "4", + "compatible_printers": [ + "Prusa MK4S 0.25 nozzle", + "Prusa MK4S 0.3 nozzle", + "Prusa MK4S 0.4 nozzle", + "Prusa MK4S 0.5 nozzle" + ], + "default_filament_colour": "#FFF2EC", + "fan_max_speed": "10", + "filament_cost": "27.82", + "filament_end_gcode": [ + "; Filament-specific end gcode" + ], + "filament_id": "Generic ABS @MK4S", + "filament_max_volumetric_speed": "15", + "filament_minimal_purge_on_wipe_tower": "35", + "filament_notes": [ + "" + ], + "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).*/}\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" + ], + "from": "system", + "hot_plate_temp": "110", + "hot_plate_temp_initial_layer": "100", + "inherits": "fdm_filament_abs", + "instantiation": "true", + "name": "Prusa Generic ABS @MK4S", + "overhang_fan_speed": "20", + "reduce_fan_stop_start_freq": "0", + "setting_id": "GFSA04", + "slow_down_layer_time": "20", + "slow_down_min_speed": "15", + "type": "filament" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S 0.6.json b/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S 0.6.json new file mode 100644 index 0000000000..c0b160131e --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S 0.6.json @@ -0,0 +1,14 @@ +{ + "compatible_printers": [ + "Prusa MK4S 0.6 nozzle" + ], + "filament_id": "Prusament ASA @MK4S 0.6", + "from": "system", + "inherits": "Prusa Generic ASA @MK4S", + "instantiation": "true", + "name": "Prusa Generic ASA @MK4S 0.6", + "nozzle_temperature": "255", + "setting_id": "GFSA04", + "slow_down_layer_time": "15", + "type": "filament" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S 0.8.json b/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S 0.8.json new file mode 100644 index 0000000000..d9935d6529 --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S 0.8.json @@ -0,0 +1,15 @@ +{ + "compatible_printers": [ + "Prusa MK4S 0.8 nozzle" + ], + "fan_max_speed": "15", + "fan_min_speed": "15", + "filament_id": "Prusament ASA @MK4S 0.8", + "from": "system", + "inherits": "Prusa Generic ASA @MK4S", + "instantiation": "true", + "name": "Prusa Generic ASA @MK4S 0.8", + "setting_id": "GFSA04", + "slow_down_layer_time": "18", + "type": "filament" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S HF0.4.json b/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S HF0.4.json new file mode 100644 index 0000000000..246d03cad9 --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S HF0.4.json @@ -0,0 +1,19 @@ +{ + "compatible_printers": [ + "Prusa MK4S HF0.4 nozzle" + ], + "filament_id": "Prusament ASA @MK4S HF0.4", + "filament_max_volumetric_speed": "26", + "filament_start_gcode": [ + "M572 S{if nozzle_diameter[0]==0.4}0.02{elsif nozzle_diameter[0]==0.5}0.018{elsif nozzle_diameter[0]==0.6}0.015{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\nM142 S40 ; set heatbreak target temp" + ], + "from": "system", + "inherits": "Prusa Generic ASA @MK4S", + "instantiation": "true", + "name": "Prusa Generic ASA @MK4S HF0.4", + "nozzle_temperature": "265", + "nozzle_temperature_initial_layer": "265", + "setting_id": "GFSA04", + "slow_down_layer_time": "15", + "type": "filament" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S HF0.5.json b/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S HF0.5.json new file mode 100644 index 0000000000..e1fedfa8e2 --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S HF0.5.json @@ -0,0 +1,13 @@ +{ + "compatible_printers": [ + "Prusa MK4S HF0.5 nozzle" + ], + "filament_id": "Prusament ASA @MK4S HF0.5", + "filament_max_volumetric_speed": "27", + "from": "system", + "inherits": "Prusa Generic ASA @MK4S HF0.4", + "instantiation": "true", + "name": "Prusa Generic ASA @MK4S HF0.5", + "setting_id": "GFSA04", + "type": "filament" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S HF0.6.json b/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S HF0.6.json new file mode 100644 index 0000000000..3a86b9b858 --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S HF0.6.json @@ -0,0 +1,15 @@ +{ + "compatible_printers": [ + "Prusa MK4S HF0.6 nozzle" + ], + "fan_max_speed": "15", + "fan_min_speed": "15", + "filament_id": "Prusament ASA @MK4S HF0.6", + "filament_max_volumetric_speed": "34", + "from": "system", + "inherits": "Prusa Generic ASA @MK4S HF0.4", + "instantiation": "true", + "name": "Prusa Generic ASA @MK4S HF0.6", + "setting_id": "GFSA04", + "type": "filament" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S HF0.8.json b/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S HF0.8.json new file mode 100644 index 0000000000..f3949c9e89 --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S HF0.8.json @@ -0,0 +1,18 @@ +{ + "compatible_printers": [ + "Prusa MK4S HF0.8 nozzle" + ], + "fan_max_speed": "15", + "fan_min_speed": "15", + "filament_id": "Prusament ASA @MK4S HF0.8", + "filament_max_volumetric_speed": "36", + "from": "system", + "inherits": "Prusa Generic ASA @MK4S HF0.4", + "instantiation": "true", + "name": "Prusa Generic ASA @MK4S HF0.8", + "nozzle_temperature": "270", + "nozzle_temperature_initial_layer": "270", + "setting_id": "GFSA04", + "slow_down_layer_time": "20", + "type": "filament" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S.json b/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S.json new file mode 100644 index 0000000000..fa15f19a2b --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S.json @@ -0,0 +1,37 @@ +{ + "close_fan_the_first_x_layers": "4", + "compatible_printers": [ + "Prusa MK4S 0.25 nozzle", + "Prusa MK4S 0.3 nozzle", + "Prusa MK4S 0.4 nozzle", + "Prusa MK4S 0.5 nozzle" + ], + "default_filament_colour": "#FFF2EC", + "fan_cooling_layer_time": "20", + "fan_max_speed": "12", + "fan_min_speed": "12", + "filament_cost": "35.28", + "filament_density": "1.07", + "filament_end_gcode": [ + "; Filament-specific end gcode" + ], + "filament_id": "Prusament ASA @MK4S", + "filament_max_volumetric_speed": "15", + "filament_minimal_purge_on_wipe_tower": "35", + "filament_notes": [ + "" + ], + "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).*/}\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" + ], + "from": "system", + "hot_plate_temp": "110", + "inherits": "fdm_filament_asa", + "instantiation": "true", + "name": "Prusa Generic ASA @MK4S", + "overhang_fan_speed": "20", + "setting_id": "GFSA04", + "slow_down_layer_time": "10", + "slow_down_min_speed": "15", + "type": "filament" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S 0.6.json b/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S 0.6.json new file mode 100644 index 0000000000..4bf693bff1 --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S 0.6.json @@ -0,0 +1,16 @@ +{ + "compatible_printers": [ + "Prusa MK4S 0.6 nozzle" + ], + "fan_cooling_layer_time": "22", + "filament_id": "Generic PETG @MK4S 0.6", + "filament_max_volumetric_speed": "17", + "from": "system", + "inherits": "Prusa Generic PETG @MK4S", + "instantiation": "true", + "name": "Prusa Generic PETG @MK4S 0.6", + "overhang_fan_speed": "45", + "setting_id": "GFSA04", + "slow_down_layer_time": "10", + "type": "filament" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S 0.8.json b/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S 0.8.json new file mode 100644 index 0000000000..a2a712f406 --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S 0.8.json @@ -0,0 +1,21 @@ +{ + "compatible_printers": [ + "Prusa MK4S 0.8 nozzle" + ], + "fan_cooling_layer_time": "25", + "fan_max_speed": "45", + "fan_min_speed": "25", + "filament_id": "Generic PETG @MK4S 0.8", + "filament_max_volumetric_speed": "22", + "filament_retract_before_wipe": "50", + "from": "system", + "inherits": "Prusa Generic PETG @MK4S", + "instantiation": "true", + "name": "Prusa Generic PETG @MK4S 0.8", + "nozzle_temperature": "245", + "nozzle_temperature_initial_layer": "240", + "overhang_fan_speed": "45", + "setting_id": "GFSA04", + "slow_down_layer_time": "18", + "type": "filament" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S HF0.4.json b/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S HF0.4.json new file mode 100644 index 0000000000..4e5af2f62c --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S HF0.4.json @@ -0,0 +1,18 @@ +{ + "compatible_printers": [ + "Prusa MK4S HF0.4 nozzle" + ], + "filament_id": "Generic PETG @MK4S HF0.4", + "filament_max_volumetric_speed": "24", + "filament_start_gcode": [ + "M572 S{if nozzle_diameter[0]==0.4}0.05{elsif nozzle_diameter[0]==0.5}0.044{elsif nozzle_diameter[0]==0.6}0.035{elsif nozzle_diameter[0]==0.8}0.022{elsif nozzle_diameter[0]==0.25}0.18{elsif nozzle_diameter[0]==0.3}0.1{else}0{endif} ; Filament gcode\n\nM142 S36 ; set heatbreak target temp" + ], + "from": "system", + "inherits": "Prusa Generic PETG @MK4S", + "instantiation": "true", + "name": "Prusa Generic PETG @MK4S HF0.4", + "nozzle_temperature": "245", + "nozzle_temperature_initial_layer": "235", + "setting_id": "GFSA04", + "type": "filament" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S HF0.5.json b/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S HF0.5.json new file mode 100644 index 0000000000..5fdf8ddb55 --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S HF0.5.json @@ -0,0 +1,13 @@ +{ + "compatible_printers": [ + "Prusa MK4S HF0.5 nozzle" + ], + "filament_id": "Generic PETG @MK4S HF0.5", + "filament_max_volumetric_speed": "29", + "from": "system", + "inherits": "Prusa Generic PETG @MK4S HF0.4", + "instantiation": "true", + "name": "Prusa Generic PETG @MK4S HF0.5", + "setting_id": "GFSA04", + "type": "filament" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S HF0.6.json b/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S HF0.6.json new file mode 100644 index 0000000000..822a838253 --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S HF0.6.json @@ -0,0 +1,18 @@ +{ + "compatible_printers": [ + "Prusa MK4S HF0.6 nozzle" + ], + "fan_cooling_layer_time": "22", + "filament_id": "Generic PETG @MK4S HF0.6", + "filament_max_volumetric_speed": "33", + "from": "system", + "inherits": "Prusa Generic PETG @MK4S HF0.4", + "instantiation": "true", + "name": "Prusa Generic PETG @MK4S HF0.6", + "nozzle_temperature": "240", + "nozzle_temperature_initial_layer": "230", + "overhang_fan_speed": "45", + "setting_id": "GFSA04", + "slow_down_layer_time": "10", + "type": "filament" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S HF0.8.json b/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S HF0.8.json new file mode 100644 index 0000000000..28bae283be --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S HF0.8.json @@ -0,0 +1,19 @@ +{ + "compatible_printers": [ + "Prusa MK4S HF0.8 nozzle" + ], + "fan_cooling_layer_time": "25", + "fan_max_speed": "45", + "filament_id": "Generic PETG @MK4S HF0.8", + "filament_max_volumetric_speed": "37", + "filament_retract_before_wipe": "50", + "from": "system", + "inherits": "Prusa Generic PETG @MK4S HF0.4", + "instantiation": "true", + "name": "Prusa Generic PETG @MK4S HF0.8", + "nozzle_temperature_initial_layer": "240", + "overhang_fan_speed": "45", + "setting_id": "GFSA04", + "slow_down_layer_time": "18", + "type": "filament" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S.json b/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S.json new file mode 100644 index 0000000000..84ed882fea --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S.json @@ -0,0 +1,41 @@ +{ + "compatible_printers": [ + "Prusa MK4S 0.25 nozzle", + "Prusa MK4S 0.3 nozzle", + "Prusa MK4S 0.4 nozzle", + "Prusa MK4S 0.5 nozzle" + ], + "default_filament_colour": "#FF8000", + "fan_max_speed": "40", + "filament_cost": "27.82", + "filament_end_gcode": [ + "; Filament-specific end gcode" + ], + "filament_id": "Generic PETG @MK4S", + "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_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).*/}\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_wipe": "1", + "filament_z_hop": "0.15", + "from": "system", + "full_fan_speed_layer": "5", + "hot_plate_temp": "90", + "hot_plate_temp_initial_layer": "85", + "inherits": "fdm_filament_pet", + "instantiation": "true", + "name": "Prusa Generic PETG @MK4S", + "nozzle_temperature": "240", + "nozzle_temperature_initial_layer": "230", + "overhang_fan_speed": "40", + "setting_id": "GFSA04", + "slow_down_layer_time": "7", + "slow_down_min_speed": "15", + "type": "filament" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S 0.6.json b/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S 0.6.json new file mode 100644 index 0000000000..9dfe93f6fb --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S 0.6.json @@ -0,0 +1,15 @@ +{ + "compatible_printers": [ + "Prusa MK4S 0.6 nozzle" + ], + "fan_cooling_layer_time": "22", + "filament_id": "Generic PLA @MK4S 0.6", + "from": "system", + "inherits": "Prusa Generic PLA @MK4S", + "instantiation": "true", + "name": "Prusa Generic PLA @MK4S 0.6", + "nozzle_temperature": "210", + "setting_id": "GFSA04", + "slow_down_layer_time": "10", + "type": "filament" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S 0.8.json b/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S 0.8.json new file mode 100644 index 0000000000..2aa98c26b8 --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S 0.8.json @@ -0,0 +1,17 @@ +{ + "compatible_printers": [ + "Prusa MK4S 0.8 nozzle" + ], + "fan_cooling_layer_time": "25", + "fan_min_speed": "80", + "filament_id": "Generic PLA @MK4S 0.8", + "filament_max_volumetric_speed": "19", + "from": "system", + "inherits": "Prusa Generic PLA @MK4S", + "instantiation": "true", + "name": "Prusa Generic PLA @MK4S 0.8", + "nozzle_temperature": "225", + "setting_id": "GFSA04", + "slow_down_layer_time": "15", + "type": "filament" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S HF0.4.json b/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S HF0.4.json new file mode 100644 index 0000000000..8510abbfd9 --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S HF0.4.json @@ -0,0 +1,17 @@ +{ + "compatible_printers": [ + "Prusa MK4S HF0.4 nozzle" + ], + "filament_id": "Generic PLA @MK4S HF0.4", + "filament_max_volumetric_speed": "22", + "filament_start_gcode": [ + "M572 S{if nozzle_diameter[0]==0.4}0.036{elsif nozzle_diameter[0]==0.5}0.026{elsif nozzle_diameter[0]==0.6}0.02{elsif nozzle_diameter[0]==0.8}0.015{elsif nozzle_diameter[0]==0.25}0.12{elsif nozzle_diameter[0]==0.3}0.08{else}0{endif} ; Filament gcode\n\nM142 S36 ; set heatbreak target temp" + ], + "from": "system", + "inherits": "Prusa Generic PLA @MK4S", + "instantiation": "true", + "name": "Prusa Generic PLA @MK4S HF0.4", + "nozzle_temperature": "225", + "setting_id": "GFSA04", + "type": "filament" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S HF0.5.json b/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S HF0.5.json new file mode 100644 index 0000000000..e27631f1af --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S HF0.5.json @@ -0,0 +1,15 @@ +{ + "compatible_printers": [ + "Prusa MK4S HF0.5 nozzle" + ], + "fan_cooling_layer_time": "20", + "filament_id": "Generic PLA @MK4S HF0.5", + "filament_max_volumetric_speed": "24", + "from": "system", + "inherits": "Prusa Generic PLA @MK4S HF0.4", + "instantiation": "true", + "name": "Prusa Generic PLA @MK4S HF0.5", + "setting_id": "GFSA04", + "slow_down_layer_time": "8", + "type": "filament" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S HF0.6.json b/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S HF0.6.json new file mode 100644 index 0000000000..7907449407 --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S HF0.6.json @@ -0,0 +1,16 @@ +{ + "compatible_printers": [ + "Prusa MK4S HF0.6 nozzle" + ], + "fan_cooling_layer_time": "22", + "filament_id": "Generic PLA @MK4S HF0.6", + "filament_max_volumetric_speed": "30", + "from": "system", + "inherits": "Prusa Generic PLA @MK4S HF0.4", + "instantiation": "true", + "name": "Prusa Generic PLA @MK4S HF0.6", + "setting_id": "GFSA04", + "slow_down_layer_time": "10", + "slow_down_min_speed": "15", + "type": "filament" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S HF0.8.json b/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S HF0.8.json new file mode 100644 index 0000000000..eed54bdeaa --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S HF0.8.json @@ -0,0 +1,17 @@ +{ + "compatible_printers": [ + "Prusa MK4S HF0.8 nozzle" + ], + "fan_cooling_layer_time": "25", + "fan_min_speed": "80", + "filament_id": "Generic PLA @MK4S HF0.8", + "filament_max_volumetric_speed": "35", + "from": "system", + "inherits": "Prusa Generic PLA @MK4S HF0.4", + "instantiation": "true", + "name": "Prusa Generic PLA @MK4S HF0.8", + "setting_id": "GFSA04", + "slow_down_layer_time": "15", + "slow_down_min_speed": "15", + "type": "filament" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S.json b/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S.json new file mode 100644 index 0000000000..6034816191 --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S.json @@ -0,0 +1,33 @@ +{ + "compatible_printers": [ + "Prusa MK4S 0.25 nozzle", + "Prusa MK4S 0.3 nozzle", + "Prusa MK4S 0.4 nozzle", + "Prusa MK4S 0.5 nozzle" + ], + "default_filament_colour": "#FF8000", + "fan_cooling_layer_time": "17", + "fan_min_speed": "70", + "filament_cost": "25.4", + "filament_end_gcode": [ + "; Filament-specific end gcode" + ], + "filament_id": "Generic PLA @MK4S", + "filament_max_volumetric_speed": "15", + "filament_notes": [ + "" + ], + "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).*/}\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.02{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" + ], + "from": "system", + "full_fan_speed_layer": "3", + "inherits": "fdm_filament_pla", + "instantiation": "true", + "name": "Prusa Generic PLA @MK4S", + "nozzle_temperature_initial_layer": "230", + "setting_id": "GFSA04", + "slow_down_layer_time": "6", + "slow_down_min_speed": "20", + "type": "filament" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA Silk @MK4S 0.6.json b/resources/profiles/Prusa/filament/Prusa Generic PLA Silk @MK4S 0.6.json new file mode 100644 index 0000000000..b67267267f --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA Silk @MK4S 0.6.json @@ -0,0 +1,17 @@ +{ + "compatible_printers": [ + "Prusa MK4S 0.6 nozzle", + "Prusa MK4S HF0.6 nozzle" + ], + "fan_cooling_layer_time": "22", + "filament_id": "Generic PLA Silk @MK4S 0.6", + "filament_max_volumetric_speed": "9", + "from": "system", + "inherits": "Prusa Generic PLA Silk @MK4S", + "instantiation": "true", + "name": "Prusa Generic PLA Silk @MK4S 0.6", + "nozzle_temperature": "215", + "setting_id": "GFSA04", + "slow_down_layer_time": "10", + "type": "filament" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA Silk @MK4S 0.8.json b/resources/profiles/Prusa/filament/Prusa Generic PLA Silk @MK4S 0.8.json new file mode 100644 index 0000000000..bddcba4963 --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA Silk @MK4S 0.8.json @@ -0,0 +1,17 @@ +{ + "compatible_printers": [ + "Prusa MK4S 0.8 nozzle", + "Prusa MK4S HF0.8 nozzle" + ], + "fan_cooling_layer_time": "25", + "fan_min_speed": "80", + "filament_id": "Generic PLA Silk @MK4S 0.8", + "filament_max_volumetric_speed": "12", + "from": "system", + "inherits": "Prusa Generic PLA Silk @MK4S", + "instantiation": "true", + "name": "Prusa Generic PLA Silk @MK4S 0.8", + "setting_id": "GFSA04", + "slow_down_layer_time": "15", + "type": "filament" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA Silk @MK4S.json b/resources/profiles/Prusa/filament/Prusa Generic PLA Silk @MK4S.json new file mode 100644 index 0000000000..febbb7a50f --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA Silk @MK4S.json @@ -0,0 +1,24 @@ +{ + "compatible_printers": [ + "Prusa MK4S 0.25 nozzle", + "Prusa MK4S 0.3 nozzle", + "Prusa MK4S 0.4 nozzle", + "Prusa MK4S 0.5 nozzle", + "Prusa MK4S HF0.25 nozzle", + "Prusa MK4S HF0.3 nozzle", + "Prusa MK4S HF0.4 nozzle", + "Prusa MK4S HF0.5 nozzle" + ], + "filament_id": "Generic PLA Silk @MK4S", + "filament_max_volumetric_speed": "7", + "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).*/}\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" + ], + "from": "system", + "inherits": "Prusa Generic PLA @MK4S", + "instantiation": "true", + "name": "Prusa Generic PLA Silk @MK4S", + "nozzle_temperature": "225", + "setting_id": "GFSA04", + "type": "filament" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/filament/Prusa Generic TPU @MK4S 0.6.json b/resources/profiles/Prusa/filament/Prusa Generic TPU @MK4S 0.6.json new file mode 100644 index 0000000000..6d6ac13900 --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusa Generic TPU @MK4S 0.6.json @@ -0,0 +1,14 @@ +{ + "compatible_printers": [ + "Prusa MK4S 0.6 nozzle", + "Prusa MK4S HF0.6 nozzle" + ], + "filament_id": "Generic FLEX @MK4S 0.6", + "filament_max_volumetric_speed": "6", + "from": "system", + "inherits": "Prusa Generic TPU @MK4S", + "instantiation": "true", + "name": "Prusa Generic TPU @MK4S 0.6", + "setting_id": "GFSA04", + "type": "filament" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/filament/Prusa Generic TPU @MK4S 0.8.json b/resources/profiles/Prusa/filament/Prusa Generic TPU @MK4S 0.8.json new file mode 100644 index 0000000000..7656ab0c6c --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusa Generic TPU @MK4S 0.8.json @@ -0,0 +1,14 @@ +{ + "compatible_printers": [ + "Prusa MK4S 0.8 nozzle", + "Prusa MK4S HF0.8 nozzle" + ], + "filament_id": "Generic FLEX @MK4S 0.8", + "filament_max_volumetric_speed": "9", + "from": "system", + "inherits": "Prusa Generic TPU @MK4S", + "instantiation": "true", + "name": "Prusa Generic TPU @MK4S 0.8", + "setting_id": "GFSA04", + "type": "filament" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/filament/Prusa Generic TPU @MK4S.json b/resources/profiles/Prusa/filament/Prusa Generic TPU @MK4S.json new file mode 100644 index 0000000000..a818a58910 --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusa Generic TPU @MK4S.json @@ -0,0 +1,49 @@ +{ + "close_fan_the_first_x_layers": "3", + "compatible_printers": [ + "Prusa MK4S 0.3 nozzle", + "Prusa MK4S 0.4 nozzle", + "Prusa MK4S 0.5 nozzle", + "Prusa MK4S HF0.4 nozzle", + "Prusa MK4S HF0.5 nozzle" + ], + "default_filament_colour": "#008000", + "fan_max_speed": "50", + "fan_min_speed": "30", + "filament_cost": "82", + "filament_density": "1.22", + "filament_deretraction_speed": "20", + "filament_end_gcode": [ + "; Filament-specific end gcode" + ], + "filament_flow_ratio": "1.08", + "filament_id": "Generic FLEX @MK4S", + "filament_max_volumetric_speed": "3", + "filament_notes": [ + "" + ], + "filament_retraction_length": "2.5", + "filament_retraction_minimum_travel": "2", + "filament_retraction_speed": "60", + "filament_start_gcode": [ + "M900 K0 ; Filament gcode\n\nM142 S36 ; set heatbreak target temp" + ], + "filament_type": [ + "FLEX" + ], + "filament_wipe": "0", + "filament_z_hop": "0", + "from": "system", + "hot_plate_temp": "50", + "hot_plate_temp_initial_layer": "50", + "inherits": "fdm_filament_tpu", + "instantiation": "true", + "name": "Prusa Generic TPU @MK4S", + "nozzle_temperature": "230", + "nozzle_temperature_initial_layer": "230", + "overhang_fan_speed": "70", + "setting_id": "GFSA04", + "slow_down_layer_time": "10", + "slow_down_min_speed": "15", + "type": "filament" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/machine/Prusa MK4S 0.25 nozzle.json b/resources/profiles/Prusa/machine/Prusa MK4S 0.25 nozzle.json new file mode 100644 index 0000000000..5345dc0e60 --- /dev/null +++ b/resources/profiles/Prusa/machine/Prusa MK4S 0.25 nozzle.json @@ -0,0 +1,21 @@ +{ + "default_print_profile": "0.12mm STRUCTURAL @MK4S 0.25", + "from": "system", + "inherits": "Prusa MK4S 0.4 nozzle", + "instantiation": "true", + "machine_max_acceleration_travel": [ + "2500", + "2500" + ], + "max_layer_height": "0.15", + "min_layer_height": "0.05", + "name": "Prusa MK4S 0.25 nozzle", + "nozzle_diameter": [ + "0.25" + ], + "printer_model": "MK4S", + "printer_variant": "0.25", + "retraction_length": "0.8", + "type": "machine", + "z_hop": "0.15" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/machine/Prusa MK4S 0.3 nozzle.json b/resources/profiles/Prusa/machine/Prusa MK4S 0.3 nozzle.json new file mode 100644 index 0000000000..de576ab714 --- /dev/null +++ b/resources/profiles/Prusa/machine/Prusa MK4S 0.3 nozzle.json @@ -0,0 +1,15 @@ +{ + "default_print_profile": "0.16mm STRUCTURAL @MK4S 0.3", + "from": "system", + "inherits": "Prusa MK4S 0.4 nozzle", + "instantiation": "true", + "max_layer_height": "0.22", + "min_layer_height": "0.05", + "name": "Prusa MK4S 0.3 nozzle", + "nozzle_diameter": [ + "0.3" + ], + "printer_model": "MK4S", + "printer_variant": "0.3", + "type": "machine" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/machine/Prusa MK4S 0.4 nozzle.json b/resources/profiles/Prusa/machine/Prusa MK4S 0.4 nozzle.json new file mode 100644 index 0000000000..7e4eb97553 --- /dev/null +++ b/resources/profiles/Prusa/machine/Prusa MK4S 0.4 nozzle.json @@ -0,0 +1,13 @@ +{ + "default_filament_profile": "Prusament PLA @MK4S", + "default_print_profile": "0.20mm SPEED @MK4S 0.4", + "from": "system", + "inherits": "fdm_machine_common_mk4s", + "instantiation": "true", + "name": "Prusa MK4S 0.4 nozzle", + "nozzle_diameter": [ + "0.4" + ], + "printer_model": "MK4S", + "type": "machine" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/machine/Prusa MK4S 0.5 nozzle.json b/resources/profiles/Prusa/machine/Prusa MK4S 0.5 nozzle.json new file mode 100644 index 0000000000..900ff99a0f --- /dev/null +++ b/resources/profiles/Prusa/machine/Prusa MK4S 0.5 nozzle.json @@ -0,0 +1,15 @@ +{ + "default_print_profile": "0.20mm SPEED @MK4S 0.5", + "from": "system", + "inherits": "Prusa MK4S 0.4 nozzle", + "instantiation": "true", + "max_layer_height": "0.32", + "name": "Prusa MK4S 0.5 nozzle", + "nozzle_diameter": [ + "0.5" + ], + "printer_model": "MK4S", + "printer_variant": "0.5", + "type": "machine", + "wipe": "1" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/machine/Prusa MK4S 0.6 nozzle.json b/resources/profiles/Prusa/machine/Prusa MK4S 0.6 nozzle.json new file mode 100644 index 0000000000..327807c5eb --- /dev/null +++ b/resources/profiles/Prusa/machine/Prusa MK4S 0.6 nozzle.json @@ -0,0 +1,17 @@ +{ + "default_filament_profile": "Prusament PLA @MK4S 0.6", + "default_print_profile": "0.25mm SPEED @MK4S 0.6", + "from": "system", + "inherits": "Prusa MK4S 0.4 nozzle", + "instantiation": "true", + "max_layer_height": "0.40", + "min_layer_height": "0.15", + "name": "Prusa MK4S 0.6 nozzle", + "nozzle_diameter": [ + "0.6" + ], + "printer_model": "MK4S", + "printer_variant": "0.6", + "type": "machine", + "wipe": "1" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/machine/Prusa MK4S 0.8 nozzle.json b/resources/profiles/Prusa/machine/Prusa MK4S 0.8 nozzle.json new file mode 100644 index 0000000000..cb50b1464e --- /dev/null +++ b/resources/profiles/Prusa/machine/Prusa MK4S 0.8 nozzle.json @@ -0,0 +1,22 @@ +{ + "default_filament_profile": "Prusament PLA @MK4S 0.8", + "default_print_profile": "0.40mm QUALITY @MK4S 0.8", + "deretraction_speed": "15", + "from": "system", + "inherits": "Prusa MK4S 0.4 nozzle", + "instantiation": "true", + "max_layer_height": "0.6", + "min_layer_height": "0.2", + "name": "Prusa MK4S 0.8 nozzle", + "nozzle_diameter": [ + "0.8" + ], + "printer_model": "MK4S", + "printer_variant": "0.8", + "retract_before_wipe": "50%", + "retraction_length": "0.6", + "retraction_speed": "25", + "type": "machine", + "wipe": "1", + "z_hop": "0.25" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/machine/Prusa MK4S HF.json b/resources/profiles/Prusa/machine/Prusa MK4S HF.json new file mode 100644 index 0000000000..422f4806d6 --- /dev/null +++ b/resources/profiles/Prusa/machine/Prusa MK4S HF.json @@ -0,0 +1,12 @@ +{ + "bed_model": "mk4_bed.stl", + "bed_texture": "mk4s.svg", + "default_materials": "Prusa Generic ABS @MK4S;Prusa Generic ASA @MK4S;Prusa Generic PETG @MK4S;Prusa Generic PLA @MK4S;Prusa Generic PLA Silk @MK4S;Prusa Generic TPU @MK4S", + "family": "Prusa", + "hotend_model": "", + "machine_tech": "FFF", + "model_id": "MK4S HF", + "name": "Prusa MK4S HF", + "nozzle_diameter": "0.4;0.5;0.6;0.8", + "type": "machine_model" +} diff --git a/resources/profiles/Prusa/machine/Prusa MK4S HF0.4 nozzle.json b/resources/profiles/Prusa/machine/Prusa MK4S HF0.4 nozzle.json new file mode 100644 index 0000000000..24aa1db4dd --- /dev/null +++ b/resources/profiles/Prusa/machine/Prusa MK4S HF0.4 nozzle.json @@ -0,0 +1,20 @@ +{ + "default_filament_profile": "Prusament PLA @HF0.4", + "default_print_profile": "0.20mm SPEED @MK4S HF0.4", + "from": "system", + "inherits": "Prusa MK4S 0.4 nozzle", + "instantiation": "true", + "machine_start_gcode": [ + "M17 ; enable steppers\nM862.1 P[nozzle_diameter] ; nozzle check\nM862.3 P \"MK4S\" ; printer model check\nM862.5 P2 ; g-code level check\nM862.6 P\"Input shaper\" ; FW feature check\nM115 U6.1.3+7898\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 T0 S{((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 : (filament_type[0]=~/.*PET.*/) ? 175 : 170)} ; set extruder temp for bed leveling\nM109 T0 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 : (filament_type[0]=~/.*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 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\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 W50 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{first_layer_temperature[0]}\nG0 X0 Y-4 Z15 F4800 ; move away and ready for the purge\nM109 S{first_layer_temperature[0]}\n\nG92 E0\nM569 S0 E ; set spreadcycle mode for extruder\n\n;\n; Extrude purge line\n;\nG92 E0 ; reset extruder position\nG1 E{(filament_type[0] == \"FLEX\" ? 4 : 2)} F2400 ; deretraction after the initial one before nozzle cleaning\nG0 E7 X15 Z0.2 F500 ; purge\nG0 X25 E4 F500 ; purge\nG0 X35 E4 F650 ; purge\nG0 X45 E4 F800 ; purge\nG0 X48 Z0.05 F8000 ; wipe, move close to the bed\nG0 X51 Z0.2 F8000 ; wipe, move quickly away from the bed\n\nG92 E0\nM221 S100 ; set flow to 100%" + ], + "name": "Prusa MK4S HF0.4 nozzle", + "nozzle_diameter": [ + "0.4" + ], + "printer_model": "MK4S HF", + "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_MK4S\nPG\nHF_NOZZLE\nNO_TEMPLATES" + ], + "printer_variant": "0.4", + "type": "machine" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/machine/Prusa MK4S HF0.5 nozzle.json b/resources/profiles/Prusa/machine/Prusa MK4S HF0.5 nozzle.json new file mode 100644 index 0000000000..e0860cd982 --- /dev/null +++ b/resources/profiles/Prusa/machine/Prusa MK4S HF0.5 nozzle.json @@ -0,0 +1,15 @@ +{ + "default_print_profile": "0.20mm SPEED @MK4S HF0.5", + "from": "system", + "inherits": "Prusa MK4S HF0.4 nozzle", + "instantiation": "true", + "max_layer_height": "0.32", + "name": "Prusa MK4S HF0.5 nozzle", + "nozzle_diameter": [ + "0.5" + ], + "printer_model": "MK4S HF", + "printer_variant": "0.5", + "type": "machine", + "wipe": "1" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/machine/Prusa MK4S HF0.6 nozzle.json b/resources/profiles/Prusa/machine/Prusa MK4S HF0.6 nozzle.json new file mode 100644 index 0000000000..f894d0bb9d --- /dev/null +++ b/resources/profiles/Prusa/machine/Prusa MK4S HF0.6 nozzle.json @@ -0,0 +1,16 @@ +{ + "default_print_profile": "0.32mm SPEED @MK4S HF0.6", + "from": "system", + "inherits": "Prusa MK4S HF0.4 nozzle", + "instantiation": "true", + "max_layer_height": "0.40", + "min_layer_height": "0.15", + "name": "Prusa MK4S HF0.6 nozzle", + "nozzle_diameter": [ + "0.6" + ], + "printer_model": "MK4S HF", + "printer_variant": "0.6", + "type": "machine", + "wipe": "1" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/machine/Prusa MK4S HF0.8 nozzle.json b/resources/profiles/Prusa/machine/Prusa MK4S HF0.8 nozzle.json new file mode 100644 index 0000000000..29ce071ddb --- /dev/null +++ b/resources/profiles/Prusa/machine/Prusa MK4S HF0.8 nozzle.json @@ -0,0 +1,22 @@ +{ + "default_filament_profile": "Prusament PLA @HF0.8", + "default_print_profile": "0.40mm STRUCTURAL @MK4S HF0.8", + "deretraction_speed": "15", + "from": "system", + "inherits": "Prusa MK4S HF0.4 nozzle", + "instantiation": "true", + "max_layer_height": "0.6", + "min_layer_height": "0.2", + "name": "Prusa MK4S HF0.8 nozzle", + "nozzle_diameter": [ + "0.8" + ], + "printer_model": "MK4S HF", + "printer_variant": "0.8", + "retract_before_wipe": "50%", + "retraction_length": "0.6", + "retraction_speed": "25", + "type": "machine", + "wipe": "1", + "z_hop": "0.25" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/machine/Prusa MK4S.json b/resources/profiles/Prusa/machine/Prusa MK4S.json new file mode 100644 index 0000000000..b4d4e85f3d --- /dev/null +++ b/resources/profiles/Prusa/machine/Prusa MK4S.json @@ -0,0 +1,12 @@ +{ + "bed_model": "mk4_bed.stl", + "bed_texture": "mk4s.svg", + "default_materials": "Prusa Generic ABS @MK4S;Prusa Generic ASA @MK4S;Prusa Generic PETG @MK4S;Prusa Generic PLA @MK4S;Prusa Generic PLA Silk @MK4S;Prusa Generic TPU @MK4S", + "family": "Prusa", + "hotend_model": "", + "machine_tech": "FFF", + "model_id": "MK4S", + "name": "Prusa MK4S", + "nozzle_diameter": "0.25;0.3;0.4;0.5;0.6;0.8", + "type": "machine_model" +} diff --git a/resources/profiles/Prusa/machine/fdm_machine_common_mk4s.json b/resources/profiles/Prusa/machine/fdm_machine_common_mk4s.json new file mode 100644 index 0000000000..1d4d32613a --- /dev/null +++ b/resources/profiles/Prusa/machine/fdm_machine_common_mk4s.json @@ -0,0 +1,129 @@ +{ + "before_layer_change_gcode": [ + ";BEFORE_LAYER_CHANGE\nG92 E0.0\n;[layer_z]\nM201 X{interpolate_table(extruded_weight_total, (0,4000), (1400,2500), (10000,2500))} Y{interpolate_table(extruded_weight_total, (0,4000), (1400,2500), (10000,2500))}\n" + ], + "change_filament_gcode": [ + "" + ], + "default_filament_profile": "Prusament PLA @PGIS", + "default_print_profile": "0.20mm SPEED @MK4IS 0.4", + "deretraction_speed": "25", + "extruder_clearance_height_to_lid": "220", + "extruder_clearance_height_to_rod": "14", + "extruder_clearance_radius": "45", + "from": "system", + "gcode_flavor": "marlin2", + "host_type": "prusalink", + "inherits": "fdm_machine_common", + "instantiation": "false", + "layer_change_gcode": [ + ";AFTER_LAYER_CHANGE\n;[layer_z]\n{if ! spiral_mode}M74 W[extruded_weight_total]{endif}\n" + ], + "machine_end_gcode": [ + "{if layer_z < max_print_height}G1 Z{z_offset+min(layer_z+1, max_print_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 < max_print_height}G1 Z{z_offset+min(layer_z+23, max_print_height)} F300 ; Move print head up{endif}\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]" + ], + "machine_max_acceleration_e": [ + "2500", + "2500" + ], + "machine_max_acceleration_extruding": [ + "4000", + "2500" + ], + "machine_max_acceleration_retracting": [ + "1200", + "1200" + ], + "machine_max_acceleration_travel": [ + "4000", + "2500" + ], + "machine_max_acceleration_x": [ + "4000", + "2500" + ], + "machine_max_acceleration_y": [ + "4000", + "2500" + ], + "machine_max_acceleration_z": [ + "200", + "200" + ], + "machine_max_jerk_e": [ + "10", + "10" + ], + "machine_max_jerk_x": [ + "8", + "8" + ], + "machine_max_jerk_y": [ + "8", + "8" + ], + "machine_max_jerk_z": [ + "2", + "2" + ], + "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_start_gcode": [ + "M17 ; enable steppers\nM862.1 P[nozzle_diameter] ; nozzle check\nM862.3 P \"[printer_model]\" ; printer model check\nM862.5 P2 ; g-code level check\nM862.6 P\"Input shaper\" ; FW feature check\nM115 U6.1.3+7898\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 T0 S{((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 : (filament_type[0]=~/.*PET.*/) ? 175 : 170)} ; set extruder temp for bed leveling\nM109 T0 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 : (filament_type[0]=~/.*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 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\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 W50 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{first_layer_temperature[0]}\nG0 X0 Y-4 Z15 F4800 ; move away and ready for the purge\nM109 S{first_layer_temperature[0]}\n\nG92 E0\nM569 S0 E ; set spreadcycle mode for extruder\n\n;\n; Extrude purge line\n;\nG92 E0 ; reset extruder position\nG1 E{(filament_type[0] == \"FLEX\" ? 4 : 2)} F2400 ; deretraction after the initial one before nozzle cleaning\nG0 E7 X15 Z0.2 F500 ; purge\nG0 X25 E4 F500 ; purge\nG0 X35 E4 F650 ; purge\nG0 X45 E4 F800 ; purge\nG0 X48 Z0.05 F8000 ; wipe, move close to the bed\nG0 X51 Z0.2 F8000 ; wipe, move quickly away from the bed\n\nG92 E0\nM221 S100 ; set flow to 100%" + ], + "max_layer_height": "0.30", + "min_layer_height": "0.07", + "name": "fdm_machine_common_mk4s", + "nozzle_diameter": [ + "0.4" + ], + "printable_area": [ + "0x0", + "250x0", + "250x210", + "0x210" + ], + "printable_height": "220", + "printer_model": "MK4S", + "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_MK4S\nPG\nNO_TEMPLATES" + ], + "retract_before_wipe": "80", + "retract_length_toolchange": "0", + "retract_lift_above": "0", + "retract_lift_below": "219", + "retract_when_changing_layer": "0", + "retraction_length": "0.7", + "retraction_minimum_travel": "1.5", + "retraction_speed": "35", + "silent_mode": "1", + "single_extruder_multi_material": "0", + "thumbnails": [ + "16x16/QOI", + "313x173/QOI", + "440x240/QOI", + "480x240/QOI", + "640x480/PNG" + ], + "travel_slope": "1", + "type": "machine", + "use_firmware_retraction": "0", + "use_relative_e_distances": "1", + "wipe": "0", + "z_hop": "0.2", + "z_hop_types": "Slope Lift" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/mk4s.svg b/resources/profiles/Prusa/mk4s.svg new file mode 100644 index 0000000000..983affe860 --- /dev/null +++ b/resources/profiles/Prusa/mk4s.svg @@ -0,0 +1,614 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/profiles/Prusa/process/0.05mm DETAIL @MK4S 0.25.json b/resources/profiles/Prusa/process/0.05mm DETAIL @MK4S 0.25.json new file mode 100644 index 0000000000..e0dbe4589d --- /dev/null +++ b/resources/profiles/Prusa/process/0.05mm DETAIL @MK4S 0.25.json @@ -0,0 +1,11 @@ +{ + "bottom_shell_layers": "10", + "bridge_speed": "25", + "from": "system", + "inherits": "0.07mm DETAIL @MK4S 0.25", + "instantiation": "true", + "layer_height": "0.05", + "name": "0.05mm DETAIL @MK4S 0.25", + "top_shell_layers": "13", + "type": "process" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.07mm DETAIL @MK4S 0.25.json b/resources/profiles/Prusa/process/0.07mm DETAIL @MK4S 0.25.json new file mode 100644 index 0000000000..1161069a74 --- /dev/null +++ b/resources/profiles/Prusa/process/0.07mm DETAIL @MK4S 0.25.json @@ -0,0 +1,46 @@ +{ + "bottom_shell_layers": "9", + "bridge_acceleration": "1000", + "bridge_speed": "30", + "brim_object_gap": "0", + "compatible_printers_condition": "printer_notes=~/.*MK4S.*/ and nozzle_diameter[0]==0.25", + "default_acceleration": "1500", + "elefant_foot_compensation": "0", + "from": "system", + "gap_infill_speed": "40", + "infill_anchor": "1", + "inherits": "process_common_mk4s", + "initial_layer_line_width": "0.32", + "inner_wall_acceleration": "1200", + "inner_wall_line_width": "0.25", + "inner_wall_speed": "60", + "instantiation": "true", + "internal_solid_infill_acceleration": "2000", + "internal_solid_infill_line_width": "0.25", + "internal_solid_infill_speed": "140", + "layer_height": "0.07", + "line_width": "0.27", + "name": "0.07mm DETAIL @MK4S 0.25", + "outer_wall_acceleration": "800", + "outer_wall_line_width": "0.25", + "outer_wall_speed": "40", + "raft_contact_distance": "0.1", + "raft_first_layer_density": "95%", + "small_perimeter_speed": "40", + "sparse_infill_acceleration": "2500", + "sparse_infill_line_width": "0.25", + "sparse_infill_speed": "100", + "support_base_pattern_spacing": "1", + "support_interface_speed": "52.5", + "support_line_width": "0.25", + "support_object_xy_distance": "0.405", + "support_speed": "60", + "support_top_z_distance": "0.1", + "top_shell_layers": "11", + "top_surface_acceleration": "1000", + "top_surface_line_width": "0.27", + "top_surface_speed": "60", + "travel_acceleration": "3000", + "type": "process", + "wall_loops": "3" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.10mm FAST DETAIL @MK4S 0.4.json b/resources/profiles/Prusa/process/0.10mm FAST DETAIL @MK4S 0.4.json new file mode 100644 index 0000000000..a2b5f67d25 --- /dev/null +++ b/resources/profiles/Prusa/process/0.10mm FAST DETAIL @MK4S 0.4.json @@ -0,0 +1,20 @@ +{ + "bottom_shell_layers": "7", + "bridge_speed": "40", + "compatible_printers_condition": "printer_notes=~/.*MK4S.*/ and nozzle_diameter[0]==0.4", + "from": "system", + "inherits": "0.15mm SPEED @MK4S 0.4", + "inner_wall_acceleration": "2500", + "inner_wall_speed": "140", + "instantiation": "true", + "layer_height": "0.1", + "name": "0.10mm FAST DETAIL @MK4S 0.4", + "outer_wall_acceleration": "2000", + "outer_wall_speed": "140", + "small_perimeter_speed": "140", + "sparse_infill_speed": "140", + "top_shell_layers": "8", + "top_surface_line_width": "0.4", + "type": "process", + "wall_loops": "3" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.10mm STRUCTURAL @MK4S 0.5.json b/resources/profiles/Prusa/process/0.10mm STRUCTURAL @MK4S 0.5.json new file mode 100644 index 0000000000..c8221d3e9b --- /dev/null +++ b/resources/profiles/Prusa/process/0.10mm STRUCTURAL @MK4S 0.5.json @@ -0,0 +1,37 @@ +{ + "bottom_shell_layers": "7", + "bridge_acceleration": "1000", + "bridge_speed": "30", + "compatible_printers_condition": "printer_notes=~/.*MK4S.*/ and nozzle_diameter[0]==0.5", + "default_acceleration": "2000", + "from": "system", + "gap_infill_speed": "40", + "infill_anchor_max": "15", + "inherits": "process_common_mk4s", + "initial_layer_line_width": "0.55", + "inner_wall_acceleration": "2000", + "inner_wall_line_width": "0.5", + "inner_wall_speed": "70", + "instantiation": "true", + "internal_solid_infill_acceleration": "2500", + "internal_solid_infill_line_width": "0.5", + "layer_height": "0.1", + "line_width": "0.55", + "name": "0.10mm STRUCTURAL @MK4S 0.5", + "outer_wall_acceleration": "1500", + "outer_wall_line_width": "0.5", + "outer_wall_speed": "40", + "raft_contact_distance": "0.25", + "small_perimeter_speed": "40", + "sparse_infill_acceleration": "3000", + "sparse_infill_line_width": "0.5", + "support_interface_spacing": "0.22", + "support_line_width": "0.4", + "support_object_xy_distance": "0.44", + "support_speed": "80", + "top_shell_layers": "8", + "top_surface_acceleration": "1000", + "top_surface_line_width": "0.45", + "top_surface_speed": "70", + "type": "process" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.12mm SPEED @MK4S 0.25.json b/resources/profiles/Prusa/process/0.12mm SPEED @MK4S 0.25.json new file mode 100644 index 0000000000..6a2e77489f --- /dev/null +++ b/resources/profiles/Prusa/process/0.12mm SPEED @MK4S 0.25.json @@ -0,0 +1,45 @@ +{ + "bottom_shell_layers": "6", + "bridge_speed": "30", + "brim_object_gap": "0", + "compatible_printers_condition": "printer_notes=~/.*MK4S.*/ and nozzle_diameter[0]==0.25", + "default_acceleration": "2000", + "elefant_foot_compensation": "0", + "from": "system", + "gap_infill_speed": "50", + "infill_anchor": "1", + "inherits": "process_common_mk4s", + "initial_layer_line_width": "0.32", + "inner_wall_acceleration": "2000", + "inner_wall_line_width": "0.27", + "inner_wall_speed": "120", + "instantiation": "true", + "internal_solid_infill_acceleration": "2500", + "internal_solid_infill_line_width": "0.27", + "internal_solid_infill_speed": "140", + "layer_height": "0.12", + "line_width": "0.27", + "name": "0.12mm SPEED @MK4S 0.25", + "outer_wall_acceleration": "1500", + "outer_wall_line_width": "0.27", + "outer_wall_speed": "120", + "raft_contact_distance": "0.08", + "raft_first_layer_density": "95%", + "small_perimeter_speed": "120", + "sparse_infill_acceleration": "3000", + "sparse_infill_line_width": "0.27", + "sparse_infill_speed": "100", + "support_base_pattern_spacing": "1", + "support_interface_speed": "52.5", + "support_line_width": "0.25", + "support_object_xy_distance": "0.405", + "support_speed": "70", + "support_top_z_distance": "0.09", + "top_shell_layers": "9", + "top_surface_acceleration": "1000", + "top_surface_line_width": "0.27", + "top_surface_speed": "60", + "travel_acceleration": "3000", + "type": "process", + "wall_loops": "3" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.12mm STRUCTURAL @MK4S 0.25.json b/resources/profiles/Prusa/process/0.12mm STRUCTURAL @MK4S 0.25.json new file mode 100644 index 0000000000..d6d0d25468 --- /dev/null +++ b/resources/profiles/Prusa/process/0.12mm STRUCTURAL @MK4S 0.25.json @@ -0,0 +1,14 @@ +{ + "from": "system", + "inherits": "0.12mm SPEED @MK4S 0.25", + "inner_wall_acceleration": "1500", + "inner_wall_speed": "70", + "instantiation": "true", + "internal_solid_infill_acceleration": "2000", + "name": "0.12mm STRUCTURAL @MK4S 0.25", + "outer_wall_acceleration": "1000", + "outer_wall_speed": "40", + "small_perimeter_speed": "40", + "sparse_infill_acceleration": "2500", + "type": "process" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.12mm STRUCTURAL @MK4S 0.3.json b/resources/profiles/Prusa/process/0.12mm STRUCTURAL @MK4S 0.3.json new file mode 100644 index 0000000000..569f09e5d7 --- /dev/null +++ b/resources/profiles/Prusa/process/0.12mm STRUCTURAL @MK4S 0.3.json @@ -0,0 +1,44 @@ +{ + "bottom_shell_layers": "6", + "bridge_acceleration": "1000", + "bridge_speed": "30", + "brim_object_gap": "0", + "compatible_printers_condition": "printer_notes=~/.*MK4S.*/ and nozzle_diameter[0]==0.3", + "default_acceleration": "1500", + "elefant_foot_compensation": "0", + "from": "system", + "gap_infill_speed": "50", + "infill_anchor": "1", + "inherits": "process_common_mk4s", + "initial_layer_line_width": "0.4", + "inner_wall_acceleration": "1500", + "inner_wall_line_width": "0.34", + "inner_wall_speed": "80", + "instantiation": "true", + "internal_solid_infill_acceleration": "2500", + "internal_solid_infill_line_width": "0.34", + "layer_height": "0.12", + "line_width": "0.34", + "name": "0.12mm STRUCTURAL @MK4S 0.3", + "outer_wall_acceleration": "1200", + "outer_wall_line_width": "0.34", + "outer_wall_speed": "40", + "raft_contact_distance": "0.12", + "raft_first_layer_density": "90%", + "small_perimeter_speed": "40", + "sparse_infill_acceleration": "3000", + "sparse_infill_line_width": "0.34", + "sparse_infill_speed": "100", + "support_base_pattern_spacing": "1", + "support_interface_speed": "52.5", + "support_line_width": "0.3", + "support_object_xy_distance": "0.34", + "support_speed": "70", + "support_top_z_distance": "0.12", + "top_shell_layers": "7", + "top_surface_acceleration": "1000", + "top_surface_line_width": "0.3", + "top_surface_speed": "40", + "type": "process", + "wall_loops": "3" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.15mm SPEED @MK4S 0.25.json b/resources/profiles/Prusa/process/0.15mm SPEED @MK4S 0.25.json new file mode 100644 index 0000000000..e129d04cba --- /dev/null +++ b/resources/profiles/Prusa/process/0.15mm SPEED @MK4S 0.25.json @@ -0,0 +1,10 @@ +{ + "bottom_shell_layers": "7", + "from": "system", + "inherits": "0.12mm SPEED @MK4S 0.25", + "instantiation": "true", + "layer_height": "0.15", + "name": "0.15mm SPEED @MK4S 0.25", + "top_shell_layers": "6", + "type": "process" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.15mm SPEED @MK4S 0.4.json b/resources/profiles/Prusa/process/0.15mm SPEED @MK4S 0.4.json new file mode 100644 index 0000000000..9f8475c290 --- /dev/null +++ b/resources/profiles/Prusa/process/0.15mm SPEED @MK4S 0.4.json @@ -0,0 +1,18 @@ +{ + "bridge_speed": "45", + "compatible_printers_condition": "printer_notes=~/.*MK4S.*/ and nozzle_diameter[0]==0.4 and printer_notes!~/.*HF_NOZZLE.*/", + "default_acceleration": "3000", + "from": "system", + "inherits": "process_common_mk4s", + "inner_wall_acceleration": "3500", + "instantiation": "true", + "internal_solid_infill_acceleration": "3500", + "layer_height": "0.15", + "name": "0.15mm SPEED @MK4S 0.4", + "outer_wall_acceleration": "2500", + "support_interface_speed": "50", + "support_top_z_distance": "0.17", + "top_shell_layers": "6", + "top_surface_acceleration": "1500", + "type": "process" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.15mm SPEED @MK4S HF0.4.json b/resources/profiles/Prusa/process/0.15mm SPEED @MK4S HF0.4.json new file mode 100644 index 0000000000..dae600c6ce --- /dev/null +++ b/resources/profiles/Prusa/process/0.15mm SPEED @MK4S HF0.4.json @@ -0,0 +1,13 @@ +{ + "compatible_printers_condition": "printer_notes=~/.*MK4S.*/ and nozzle_diameter[0]==0.4 and printer_notes=~/.*HF_NOZZLE.*/", + "from": "system", + "inherits": "0.15mm SPEED @MK4S 0.4", + "inner_wall_speed": "250", + "instantiation": "true", + "internal_solid_infill_speed": "250", + "name": "0.15mm SPEED @MK4S HF0.4", + "outer_wall_speed": "200", + "sparse_infill_speed": "250", + "top_surface_acceleration": "2000", + "type": "process" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.15mm STRUCTURAL @MK4S 0.25.json b/resources/profiles/Prusa/process/0.15mm STRUCTURAL @MK4S 0.25.json new file mode 100644 index 0000000000..b0c0ab31c2 --- /dev/null +++ b/resources/profiles/Prusa/process/0.15mm STRUCTURAL @MK4S 0.25.json @@ -0,0 +1,12 @@ +{ + "from": "system", + "inherits": "0.15mm SPEED @MK4S 0.25", + "inner_wall_acceleration": "1500", + "inner_wall_speed": "70", + "instantiation": "true", + "name": "0.15mm STRUCTURAL @MK4S 0.25", + "outer_wall_acceleration": "1000", + "outer_wall_speed": "40", + "small_perimeter_speed": "40", + "type": "process" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.15mm STRUCTURAL @MK4S 0.4.json b/resources/profiles/Prusa/process/0.15mm STRUCTURAL @MK4S 0.4.json new file mode 100644 index 0000000000..bbc8ca9b34 --- /dev/null +++ b/resources/profiles/Prusa/process/0.15mm STRUCTURAL @MK4S 0.4.json @@ -0,0 +1,13 @@ +{ + "bottom_shell_layers": "5", + "bridge_speed": "45", + "from": "system", + "inherits": "0.20mm STRUCTURAL @MK4S 0.4", + "instantiation": "true", + "layer_height": "0.15", + "name": "0.15mm STRUCTURAL @MK4S 0.4", + "sparse_infill_speed": "110", + "support_top_z_distance": "0.17", + "top_shell_layers": "6", + "type": "process" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.15mm STRUCTURAL @MK4S 0.5.json b/resources/profiles/Prusa/process/0.15mm STRUCTURAL @MK4S 0.5.json new file mode 100644 index 0000000000..f6e6058617 --- /dev/null +++ b/resources/profiles/Prusa/process/0.15mm STRUCTURAL @MK4S 0.5.json @@ -0,0 +1,36 @@ +{ + "bottom_shell_layers": "5", + "bridge_acceleration": "1000", + "bridge_speed": "40", + "compatible_printers_condition": "printer_notes=~/.*MK4S.*/ and nozzle_diameter[0]==0.5", + "default_acceleration": "2000", + "from": "system", + "gap_infill_speed": "50", + "infill_anchor_max": "15", + "inherits": "process_common_mk4s", + "initial_layer_line_width": "0.55", + "inner_wall_acceleration": "2000", + "inner_wall_line_width": "0.55", + "inner_wall_speed": "80", + "instantiation": "true", + "internal_solid_infill_acceleration": "2500", + "internal_solid_infill_line_width": "0.55", + "internal_solid_infill_speed": "180", + "layer_height": "0.15", + "line_width": "0.55", + "name": "0.15mm STRUCTURAL @MK4S 0.5", + "outer_wall_acceleration": "1500", + "outer_wall_line_width": "0.55", + "outer_wall_speed": "45", + "raft_contact_distance": "0.25", + "small_perimeter_speed": "45", + "sparse_infill_line_width": "0.55", + "support_interface_spacing": "0.22", + "support_line_width": "0.4", + "support_object_xy_distance": "0.44", + "support_speed": "80", + "top_shell_layers": "6", + "top_surface_line_width": "0.5", + "top_surface_speed": "70", + "type": "process" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.15mm STRUCTURAL @MK4S 0.6.json b/resources/profiles/Prusa/process/0.15mm STRUCTURAL @MK4S 0.6.json new file mode 100644 index 0000000000..8e6d8e63b7 --- /dev/null +++ b/resources/profiles/Prusa/process/0.15mm STRUCTURAL @MK4S 0.6.json @@ -0,0 +1,43 @@ +{ + "bottom_shell_layers": "5", + "bottom_shell_thickness": "0.6", + "bridge_speed": "30", + "compatible_printers_condition": "printer_notes=~/.*MK4S.*/ and nozzle_diameter[0]==0.6", + "default_acceleration": "2500", + "from": "system", + "gap_infill_speed": "80", + "infill_anchor": "2.5", + "infill_anchor_max": "20", + "inherits": "process_common_mk4s", + "initial_layer_line_width": "0.68", + "inner_wall_acceleration": "2500", + "inner_wall_line_width": "0.6", + "inner_wall_speed": "70", + "instantiation": "true", + "internal_solid_infill_acceleration": "2500", + "internal_solid_infill_line_width": "0.6", + "internal_solid_infill_speed": "160", + "layer_height": "0.15", + "line_width": "0.68", + "name": "0.15mm STRUCTURAL @MK4S 0.6", + "outer_wall_acceleration": "1500", + "outer_wall_line_width": "0.6", + "outer_wall_speed": "45", + "raft_contact_distance": "0.25", + "small_perimeter_speed": "45", + "sparse_infill_density": "20%", + "sparse_infill_line_width": "0.6", + "sparse_infill_speed": "100", + "support_interface_spacing": "0.25", + "support_interface_speed": "67.5", + "support_line_width": "0.5", + "support_object_xy_distance": "0.544", + "support_speed": "90", + "support_top_z_distance": "0.22", + "top_shell_layers": "6", + "top_shell_thickness": "0.9", + "top_surface_acceleration": "1500", + "top_surface_line_width": "0.5", + "top_surface_speed": "70", + "type": "process" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.16mm SPEED @MK4S 0.3.json b/resources/profiles/Prusa/process/0.16mm SPEED @MK4S 0.3.json new file mode 100644 index 0000000000..d15f2bee46 --- /dev/null +++ b/resources/profiles/Prusa/process/0.16mm SPEED @MK4S 0.3.json @@ -0,0 +1,15 @@ +{ + "from": "system", + "inherits": "0.16mm STRUCTURAL @MK4S 0.3", + "inner_wall_acceleration": "2500", + "inner_wall_speed": "140", + "instantiation": "true", + "internal_solid_infill_acceleration": "3000", + "name": "0.16mm SPEED @MK4S 0.3", + "outer_wall_acceleration": "2500", + "outer_wall_speed": "120", + "small_perimeter_speed": "120", + "support_interface_speed": "45", + "support_speed": "100", + "type": "process" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.16mm STRUCTURAL @MK4S 0.3.json b/resources/profiles/Prusa/process/0.16mm STRUCTURAL @MK4S 0.3.json new file mode 100644 index 0000000000..342a120344 --- /dev/null +++ b/resources/profiles/Prusa/process/0.16mm STRUCTURAL @MK4S 0.3.json @@ -0,0 +1,18 @@ +{ + "bottom_shell_layers": "5", + "default_acceleration": "2000", + "from": "system", + "inherits": "0.12mm STRUCTURAL @MK4S 0.3", + "inner_wall_acceleration": "2000", + "instantiation": "true", + "layer_height": "0.16", + "name": "0.16mm STRUCTURAL @MK4S 0.3", + "outer_wall_acceleration": "1500", + "raft_contact_distance": "0.16", + "small_perimeter_speed": "45", + "sparse_infill_acceleration": "4000", + "sparse_infill_speed": "120", + "support_top_z_distance": "0.16", + "top_shell_layers": "6", + "type": "process" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.20mm Detail @MK3S 0.6.json b/resources/profiles/Prusa/process/0.20mm Detail @MK3S 0.6.json index 6fb6eb99be..37cb00ae79 100644 --- a/resources/profiles/Prusa/process/0.20mm Detail @MK3S 0.6.json +++ b/resources/profiles/Prusa/process/0.20mm Detail @MK3S 0.6.json @@ -3,7 +3,6 @@ "print_settings_id": "0.20mm Detail @MK3S 0.6", "name": "0.20mm Detail @MK3S 0.6", "from": "system", - "renamed_from":"0.20mm Standard @MK3S", "instantiation": "true", "inherits": "process_common_mk3", "bottom_shell_layers": "4", diff --git a/resources/profiles/Prusa/process/0.20mm SOLUBLE FULL @MK4S 0.4.json b/resources/profiles/Prusa/process/0.20mm SOLUBLE FULL @MK4S 0.4.json new file mode 100644 index 0000000000..8d8c38611d --- /dev/null +++ b/resources/profiles/Prusa/process/0.20mm SOLUBLE FULL @MK4S 0.4.json @@ -0,0 +1,31 @@ +{ + "compatible_printers_condition": "printer_notes=~/.*MK4S.*/ and nozzle_diameter[0]==0.4 and single_extruder_multi_material", + "default_acceleration": "2500", + "enable_support": "1", + "from": "system", + "gap_infill_speed": "60", + "inherits": "process_common_mk4s", + "inner_wall_acceleration": "2500", + "inner_wall_speed": "80", + "instantiation": "true", + "internal_solid_infill_acceleration": "3000", + "internal_solid_infill_speed": "140", + "name": "0.20mm SOLUBLE FULL @MK4S 0.4", + "outer_wall_acceleration": "1500", + "outer_wall_speed": "45", + "raft_first_layer_density": "90%", + "small_perimeter_speed": "45", + "sparse_infill_speed": "120", + "support_filament": "5", + "support_interface_bottom_layers": "-1", + "support_interface_filament": "5", + "support_interface_spacing": "0.1", + "support_interface_speed": "40", + "support_line_width": "0.4", + "support_object_xy_distance": "0.4", + "support_speed": "80", + "support_threshold_angle": "60", + "support_top_z_distance": "0", + "top_surface_speed": "80", + "type": "process" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.20mm SOLUBLE INTERFACE @MK4S 0.4.json b/resources/profiles/Prusa/process/0.20mm SOLUBLE INTERFACE @MK4S 0.4.json new file mode 100644 index 0000000000..ae2ee735a1 --- /dev/null +++ b/resources/profiles/Prusa/process/0.20mm SOLUBLE INTERFACE @MK4S 0.4.json @@ -0,0 +1,31 @@ +{ + "compatible_printers_condition": "printer_notes=~/.*MK4S.*/ and nozzle_diameter[0]==0.4 and single_extruder_multi_material", + "default_acceleration": "2500", + "enable_support": "1", + "from": "system", + "gap_infill_speed": "60", + "inherits": "process_common_mk4s", + "inner_wall_acceleration": "2500", + "inner_wall_speed": "80", + "instantiation": "true", + "internal_solid_infill_acceleration": "3000", + "internal_solid_infill_speed": "140", + "name": "0.20mm SOLUBLE INTERFACE @MK4S 0.4", + "outer_wall_acceleration": "1500", + "outer_wall_speed": "45", + "raft_first_layer_density": "90%", + "small_perimeter_speed": "45", + "sparse_infill_speed": "120", + "support_interface_bottom_layers": "-1", + "support_interface_filament": "5", + "support_interface_spacing": "0.1", + "support_interface_speed": "40", + "support_interface_top_layers": "3", + "support_line_width": "0.4", + "support_object_xy_distance": "0.4", + "support_speed": "80", + "support_threshold_angle": "60", + "support_top_z_distance": "0", + "top_surface_speed": "80", + "type": "process" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.20mm SPEED @MK4S 0.3.json b/resources/profiles/Prusa/process/0.20mm SPEED @MK4S 0.3.json new file mode 100644 index 0000000000..ba3cc28398 --- /dev/null +++ b/resources/profiles/Prusa/process/0.20mm SPEED @MK4S 0.3.json @@ -0,0 +1,12 @@ +{ + "bottom_shell_layers": "3", + "from": "system", + "inherits": "0.16mm SPEED @MK4S 0.3", + "instantiation": "true", + "layer_height": "0.2", + "name": "0.20mm SPEED @MK4S 0.3", + "raft_contact_distance": "0.18", + "support_top_z_distance": "0.2", + "top_shell_layers": "5", + "type": "process" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.20mm SPEED @MK4S 0.4.json b/resources/profiles/Prusa/process/0.20mm SPEED @MK4S 0.4.json new file mode 100644 index 0000000000..32ca4f3aba --- /dev/null +++ b/resources/profiles/Prusa/process/0.20mm SPEED @MK4S 0.4.json @@ -0,0 +1,10 @@ +{ + "bottom_shell_layers": "3", + "compatible_printers_condition": "printer_notes=~/.*MK4S.*/ and nozzle_diameter[0]==0.4 and printer_notes!~/.*HF_NOZZLE.*/", + "from": "system", + "inherits": "process_common_mk4s", + "instantiation": "true", + "name": "0.20mm SPEED @MK4S 0.4", + "top_surface_acceleration": "1500", + "type": "process" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.20mm SPEED @MK4S 0.5.json b/resources/profiles/Prusa/process/0.20mm SPEED @MK4S 0.5.json new file mode 100644 index 0000000000..b5e31b3d7b --- /dev/null +++ b/resources/profiles/Prusa/process/0.20mm SPEED @MK4S 0.5.json @@ -0,0 +1,34 @@ +{ + "bridge_acceleration": "1000", + "bridge_speed": "40", + "compatible_printers_condition": "printer_notes=~/.*MK4S.*/ and nozzle_diameter[0]==0.5 and printer_notes!~/.*HF_NOZZLE.*/", + "default_acceleration": "2500", + "from": "system", + "gap_infill_speed": "70", + "infill_anchor_max": "15", + "inherits": "process_common_mk4s", + "initial_layer_line_width": "0.55", + "inner_wall_acceleration": "3500", + "inner_wall_line_width": "0.55", + "inner_wall_speed": "140", + "instantiation": "true", + "internal_solid_infill_acceleration": "3000", + "internal_solid_infill_line_width": "0.55", + "internal_solid_infill_speed": "135", + "layer_height": "0.20", + "line_width": "0.55", + "name": "0.20mm SPEED @MK4S 0.5", + "outer_wall_acceleration": "2500", + "outer_wall_line_width": "0.55", + "outer_wall_speed": "140", + "raft_contact_distance": "0.25", + "small_perimeter_speed": "140", + "sparse_infill_line_width": "0.55", + "support_interface_spacing": "0.22", + "support_line_width": "0.4", + "support_object_xy_distance": "0.44", + "top_surface_acceleration": "1000", + "top_surface_line_width": "0.5", + "top_surface_speed": "70", + "type": "process" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.20mm SPEED @MK4S 0.6.json b/resources/profiles/Prusa/process/0.20mm SPEED @MK4S 0.6.json new file mode 100644 index 0000000000..28786abc3d --- /dev/null +++ b/resources/profiles/Prusa/process/0.20mm SPEED @MK4S 0.6.json @@ -0,0 +1,40 @@ +{ + "bottom_shell_thickness": "0.6", + "bridge_speed": "40", + "compatible_printers_condition": "printer_notes=~/.*MK4S.*/ and nozzle_diameter[0]==0.6 and printer_notes!~/.*HF_NOZZLE.*/", + "default_acceleration": "2500", + "from": "system", + "gap_infill_speed": "80", + "infill_anchor": "2.5", + "infill_anchor_max": "20", + "inherits": "process_common_mk4s", + "initial_layer_line_width": "0.68", + "inner_wall_acceleration": "3000", + "inner_wall_line_width": "0.62", + "inner_wall_speed": "125", + "instantiation": "true", + "internal_solid_infill_acceleration": "3000", + "internal_solid_infill_line_width": "0.65", + "internal_solid_infill_speed": "110", + "line_width": "0.68", + "name": "0.20mm SPEED @MK4S 0.6", + "outer_wall_acceleration": "2500", + "outer_wall_line_width": "0.62", + "outer_wall_speed": "125", + "raft_contact_distance": "0.25", + "small_perimeter_speed": "125", + "sparse_infill_density": "20%", + "sparse_infill_line_width": "0.65", + "sparse_infill_speed": "110", + "support_interface_spacing": "0.25", + "support_interface_speed": "67.5", + "support_line_width": "0.5", + "support_object_xy_distance": "0.544", + "support_speed": "90", + "support_top_z_distance": "0.22", + "top_shell_thickness": "0.9", + "top_surface_acceleration": "1500", + "top_surface_line_width": "0.5", + "top_surface_speed": "70", + "type": "process" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.20mm SPEED @MK4S HF0.4.json b/resources/profiles/Prusa/process/0.20mm SPEED @MK4S HF0.4.json new file mode 100644 index 0000000000..7e926b2616 --- /dev/null +++ b/resources/profiles/Prusa/process/0.20mm SPEED @MK4S HF0.4.json @@ -0,0 +1,14 @@ +{ + "bottom_shell_layers": "3", + "compatible_printers_condition": "printer_notes=~/.*MK4S.*/ and nozzle_diameter[0]==0.4 and printer_notes=~/.*HF_NOZZLE.*/", + "from": "system", + "inherits": "process_common_mk4s", + "inner_wall_speed": "250", + "instantiation": "true", + "internal_solid_infill_speed": "250", + "name": "0.20mm SPEED @MK4S HF0.4", + "outer_wall_speed": "200", + "sparse_infill_speed": "250", + "top_surface_acceleration": "2000", + "type": "process" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.20mm SPEED @MK4S HF0.5.json b/resources/profiles/Prusa/process/0.20mm SPEED @MK4S HF0.5.json new file mode 100644 index 0000000000..8021c0c878 --- /dev/null +++ b/resources/profiles/Prusa/process/0.20mm SPEED @MK4S HF0.5.json @@ -0,0 +1,17 @@ +{ + "bottom_shell_layers": "3", + "compatible_printers_condition": "printer_notes=~/.*MK4S.*/ and nozzle_diameter[0]==0.5 and printer_notes=~/.*HF_NOZZLE.*/", + "from": "system", + "inherits": "0.20mm SPEED @MK4S 0.5", + "inner_wall_acceleration": "4000", + "inner_wall_speed": "200", + "instantiation": "true", + "internal_solid_infill_speed": "220", + "name": "0.20mm SPEED @MK4S HF0.5", + "outer_wall_acceleration": "4000", + "outer_wall_speed": "200", + "small_perimeter_speed": "170", + "sparse_infill_speed": "220", + "top_surface_acceleration": "2000", + "type": "process" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.20mm SPEED @MK4S HF0.6.json b/resources/profiles/Prusa/process/0.20mm SPEED @MK4S HF0.6.json new file mode 100644 index 0000000000..b7be0b8bd2 --- /dev/null +++ b/resources/profiles/Prusa/process/0.20mm SPEED @MK4S HF0.6.json @@ -0,0 +1,18 @@ +{ + "bottom_shell_layers": "3", + "compatible_printers_condition": "printer_notes=~/.*MK4S.*/ and nozzle_diameter[0]==0.6 and printer_notes=~/.*HF_NOZZLE.*/", + "from": "system", + "inherits": "0.20mm SPEED @MK4S 0.6", + "inner_wall_acceleration": "4000", + "inner_wall_speed": "200", + "instantiation": "true", + "internal_solid_infill_speed": "200", + "name": "0.20mm SPEED @MK4S HF0.6", + "outer_wall_acceleration": "4000", + "outer_wall_speed": "200", + "small_perimeter_speed": "170", + "sparse_infill_speed": "200", + "support_interface_speed": "55", + "support_speed": "110", + "type": "process" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.20mm STRUCTURAL @MK4S 0.3.json b/resources/profiles/Prusa/process/0.20mm STRUCTURAL @MK4S 0.3.json new file mode 100644 index 0000000000..66f1476b66 --- /dev/null +++ b/resources/profiles/Prusa/process/0.20mm STRUCTURAL @MK4S 0.3.json @@ -0,0 +1,12 @@ +{ + "bottom_shell_layers": "4", + "from": "system", + "inherits": "0.16mm STRUCTURAL @MK4S 0.3", + "instantiation": "true", + "layer_height": "0.2", + "name": "0.20mm STRUCTURAL @MK4S 0.3", + "raft_contact_distance": "0.18", + "support_top_z_distance": "0.2", + "top_shell_layers": "5", + "type": "process" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.20mm STRUCTURAL @MK4S 0.4.json b/resources/profiles/Prusa/process/0.20mm STRUCTURAL @MK4S 0.4.json new file mode 100644 index 0000000000..56a16894f2 --- /dev/null +++ b/resources/profiles/Prusa/process/0.20mm STRUCTURAL @MK4S 0.4.json @@ -0,0 +1,20 @@ +{ + "compatible_printers_condition": "printer_notes=~/.*MK4S.*/ and nozzle_diameter[0]==0.4", + "default_acceleration": "2500", + "from": "system", + "gap_infill_speed": "60", + "inherits": "process_common_mk4s", + "inner_wall_acceleration": "2500", + "inner_wall_speed": "80", + "instantiation": "true", + "internal_solid_infill_acceleration": "3000", + "internal_solid_infill_speed": "140", + "name": "0.20mm STRUCTURAL @MK4S 0.4", + "outer_wall_acceleration": "1500", + "outer_wall_speed": "45", + "small_perimeter_speed": "45", + "sparse_infill_speed": "120", + "support_interface_speed": "50", + "top_surface_speed": "80", + "type": "process" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.20mm STRUCTURAL @MK4S 0.5.json b/resources/profiles/Prusa/process/0.20mm STRUCTURAL @MK4S 0.5.json new file mode 100644 index 0000000000..9f1eb2d7da --- /dev/null +++ b/resources/profiles/Prusa/process/0.20mm STRUCTURAL @MK4S 0.5.json @@ -0,0 +1,16 @@ +{ + "compatible_printers_condition": "printer_notes=~/.*MK4S.*/ and nozzle_diameter[0]==0.5", + "from": "system", + "inherits": "0.20mm SPEED @MK4S 0.5", + "inner_wall_acceleration": "2000", + "inner_wall_speed": "80", + "instantiation": "true", + "internal_solid_infill_acceleration": "2500", + "internal_solid_infill_speed": "120", + "name": "0.20mm STRUCTURAL @MK4S 0.5", + "outer_wall_acceleration": "1500", + "outer_wall_speed": "45", + "small_perimeter_speed": "45", + "support_speed": "80", + "type": "process" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.20mm STRUCTURAL @MK4S 0.6.json b/resources/profiles/Prusa/process/0.20mm STRUCTURAL @MK4S 0.6.json new file mode 100644 index 0000000000..766d17c03d --- /dev/null +++ b/resources/profiles/Prusa/process/0.20mm STRUCTURAL @MK4S 0.6.json @@ -0,0 +1,16 @@ +{ + "bridge_speed": "30", + "compatible_printers_condition": "printer_notes=~/.*MK4S.*/ and nozzle_diameter[0]==0.6", + "from": "system", + "inherits": "0.20mm SPEED @MK4S 0.6", + "inner_wall_acceleration": "2000", + "inner_wall_speed": "80", + "instantiation": "true", + "internal_solid_infill_acceleration": "2500", + "name": "0.20mm STRUCTURAL @MK4S 0.6", + "outer_wall_acceleration": "1500", + "outer_wall_speed": "45", + "small_perimeter_speed": "45", + "sparse_infill_speed": "100", + "type": "process" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.20mm Speed @MK3S 0.4.json b/resources/profiles/Prusa/process/0.20mm Speed @MK3S 0.4.json index 73355f53c2..7ae485dfef 100644 --- a/resources/profiles/Prusa/process/0.20mm Speed @MK3S 0.4.json +++ b/resources/profiles/Prusa/process/0.20mm Speed @MK3S 0.4.json @@ -3,7 +3,6 @@ "print_settings_id": "0.20mm Speed @MK3S 0.4", "name": "0.20mm Speed @MK3S 0.4", "from": "system", - "renamed_from":"0.20mm Standard @MK3S", "instantiation": "true", "inherits": "process_common_mk3", "bottom_shell_layers": "4", diff --git a/resources/profiles/Prusa/process/0.20mm Speed @MK3S.json b/resources/profiles/Prusa/process/0.20mm Speed @MK3S.json index f3fbbe4cb1..89f73c7a54 100644 --- a/resources/profiles/Prusa/process/0.20mm Speed @MK3S.json +++ b/resources/profiles/Prusa/process/0.20mm Speed @MK3S.json @@ -3,7 +3,6 @@ "print_settings_id": "0.20mm Speed @MK3S", "name": "0.20mm Speed @MK3S", "from": "system", - "renamed_from":"0.20mm Standard @MK3S", "instantiation": "true", "inherits": "process_common_mk3", "bottom_shell_layers": "4", diff --git a/resources/profiles/Prusa/process/0.25mm SPEED @MK4S 0.5.json b/resources/profiles/Prusa/process/0.25mm SPEED @MK4S 0.5.json new file mode 100644 index 0000000000..6c54d914ce --- /dev/null +++ b/resources/profiles/Prusa/process/0.25mm SPEED @MK4S 0.5.json @@ -0,0 +1,11 @@ +{ + "bottom_shell_layers": "3", + "from": "system", + "inherits": "0.20mm SPEED @MK4S 0.5", + "instantiation": "true", + "layer_height": "0.25", + "name": "0.25mm SPEED @MK4S 0.5", + "support_top_z_distance": "0.25", + "top_shell_layers": "4", + "type": "process" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.25mm SPEED @MK4S 0.6.json b/resources/profiles/Prusa/process/0.25mm SPEED @MK4S 0.6.json new file mode 100644 index 0000000000..a4a805a365 --- /dev/null +++ b/resources/profiles/Prusa/process/0.25mm SPEED @MK4S 0.6.json @@ -0,0 +1,43 @@ +{ + "bottom_shell_layers": "3", + "bottom_shell_thickness": "0.6", + "bridge_speed": "40", + "compatible_printers_condition": "printer_notes=~/.*MK4S.*/ and nozzle_diameter[0]==0.6 and printer_notes!~/.*HF_NOZZLE.*/", + "default_acceleration": "2500", + "from": "system", + "gap_infill_speed": "70", + "infill_anchor": "2.5", + "infill_anchor_max": "20", + "inherits": "process_common_mk4s", + "initial_layer_line_width": "0.68", + "inner_wall_acceleration": "3000", + "inner_wall_line_width": "0.68", + "inner_wall_speed": "90", + "instantiation": "true", + "internal_solid_infill_acceleration": "3000", + "internal_solid_infill_line_width": "0.68", + "internal_solid_infill_speed": "90", + "layer_height": "0.25", + "line_width": "0.68", + "name": "0.25mm SPEED @MK4S 0.6", + "outer_wall_acceleration": "2000", + "outer_wall_line_width": "0.68", + "outer_wall_speed": "80", + "raft_contact_distance": "0.25", + "small_perimeter_speed": "80", + "sparse_infill_density": "20%", + "sparse_infill_line_width": "0.68", + "sparse_infill_speed": "100", + "support_interface_spacing": "0.25", + "support_interface_speed": "67.5", + "support_line_width": "0.5", + "support_object_xy_distance": "0.544", + "support_speed": "80", + "support_top_z_distance": "0.25", + "top_shell_layers": "4", + "top_shell_thickness": "0.9", + "top_surface_acceleration": "1500", + "top_surface_line_width": "0.55", + "top_surface_speed": "60", + "type": "process" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.25mm SPEED @MK4S HF0.4.json b/resources/profiles/Prusa/process/0.25mm SPEED @MK4S HF0.4.json new file mode 100644 index 0000000000..320e287d85 --- /dev/null +++ b/resources/profiles/Prusa/process/0.25mm SPEED @MK4S HF0.4.json @@ -0,0 +1,22 @@ +{ + "bottom_shell_layers": "3", + "compatible_printers_condition": "printer_notes=~/.*MK4S.*/ and nozzle_diameter[0]==0.4 and printer_notes=~/.*HF_NOZZLE.*/", + "from": "system", + "inherits": "process_common_mk4s", + "inner_wall_line_width": "0.5", + "inner_wall_speed": "220", + "instantiation": "true", + "internal_solid_infill_line_width": "0.5", + "internal_solid_infill_speed": "240", + "layer_height": "0.25", + "name": "0.25mm SPEED @MK4S HF0.4", + "outer_wall_line_width": "0.5", + "outer_wall_speed": "200", + "sparse_infill_line_width": "0.5", + "sparse_infill_speed": "240", + "support_interface_top_layers": "3", + "support_top_z_distance": "0.25", + "top_shell_layers": "4", + "top_surface_acceleration": "2000", + "type": "process" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.25mm SPEED @MK4S HF0.5.json b/resources/profiles/Prusa/process/0.25mm SPEED @MK4S HF0.5.json new file mode 100644 index 0000000000..bb67c0164b --- /dev/null +++ b/resources/profiles/Prusa/process/0.25mm SPEED @MK4S HF0.5.json @@ -0,0 +1,14 @@ +{ + "compatible_printers_condition": "printer_notes=~/.*MK4S.*/ and nozzle_diameter[0]==0.5 and printer_notes=~/.*HF_NOZZLE.*/", + "from": "system", + "inherits": "0.25mm SPEED @MK4S 0.5", + "inner_wall_acceleration": "4000", + "inner_wall_speed": "200", + "instantiation": "true", + "name": "0.25mm SPEED @MK4S HF0.5", + "outer_wall_acceleration": "4000", + "outer_wall_speed": "200", + "small_perimeter_speed": "170", + "top_surface_acceleration": "2000", + "type": "process" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.25mm SPEED @MK4S HF0.6.json b/resources/profiles/Prusa/process/0.25mm SPEED @MK4S HF0.6.json new file mode 100644 index 0000000000..82b71111db --- /dev/null +++ b/resources/profiles/Prusa/process/0.25mm SPEED @MK4S HF0.6.json @@ -0,0 +1,18 @@ +{ + "compatible_printers_condition": "printer_notes=~/.*MK4S.*/ and nozzle_diameter[0]==0.6 and printer_notes=~/.*HF_NOZZLE.*/", + "from": "system", + "inherits": "0.25mm SPEED @MK4S 0.6", + "inner_wall_acceleration": "4000", + "inner_wall_speed": "180", + "instantiation": "true", + "internal_solid_infill_speed": "190", + "name": "0.25mm SPEED @MK4S HF0.6", + "outer_wall_acceleration": "4000", + "outer_wall_speed": "180", + "small_perimeter_speed": "170", + "sparse_infill_speed": "190", + "support_interface_speed": "55", + "support_speed": "110", + "top_surface_acceleration": "2000", + "type": "process" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.25mm STRUCTURAL @MK4S 0.5.json b/resources/profiles/Prusa/process/0.25mm STRUCTURAL @MK4S 0.5.json new file mode 100644 index 0000000000..f706e4a9ff --- /dev/null +++ b/resources/profiles/Prusa/process/0.25mm STRUCTURAL @MK4S 0.5.json @@ -0,0 +1,11 @@ +{ + "bottom_shell_layers": "3", + "from": "system", + "inherits": "0.20mm STRUCTURAL @MK4S 0.5", + "instantiation": "true", + "layer_height": "0.25", + "name": "0.25mm STRUCTURAL @MK4S 0.5", + "support_top_z_distance": "0.25", + "top_shell_layers": "4", + "type": "process" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.25mm STRUCTURAL @MK4S 0.6.json b/resources/profiles/Prusa/process/0.25mm STRUCTURAL @MK4S 0.6.json new file mode 100644 index 0000000000..e01a95666e --- /dev/null +++ b/resources/profiles/Prusa/process/0.25mm STRUCTURAL @MK4S 0.6.json @@ -0,0 +1,14 @@ +{ + "bridge_speed": "30", + "compatible_printers_condition": "printer_notes=~/.*MK4S.*/ and nozzle_diameter[0]==0.6", + "from": "system", + "inherits": "0.25mm SPEED @MK4S 0.6", + "inner_wall_acceleration": "2500", + "inner_wall_speed": "80", + "instantiation": "true", + "name": "0.25mm STRUCTURAL @MK4S 0.6", + "outer_wall_acceleration": "1500", + "outer_wall_speed": "45", + "small_perimeter_speed": "45", + "type": "process" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.25mm STRUCTURAL @MK4S HF0.4.json b/resources/profiles/Prusa/process/0.25mm STRUCTURAL @MK4S HF0.4.json new file mode 100644 index 0000000000..6d8687bdcf --- /dev/null +++ b/resources/profiles/Prusa/process/0.25mm STRUCTURAL @MK4S HF0.4.json @@ -0,0 +1,16 @@ +{ + "bottom_shell_layers": "3", + "compatible_printers_condition": "printer_notes=~/.*MK4S.*/ and nozzle_diameter[0]==0.4 and printer_notes=~/.*HF_NOZZLE.*/", + "from": "system", + "inherits": "0.20mm STRUCTURAL @MK4S 0.4", + "inner_wall_line_width": "0.5", + "instantiation": "true", + "internal_solid_infill_line_width": "0.5", + "layer_height": "0.25", + "name": "0.25mm STRUCTURAL @MK4S HF0.4", + "outer_wall_line_width": "0.5", + "sparse_infill_line_width": "0.5", + "support_top_z_distance": "0.25", + "top_shell_layers": "4", + "type": "process" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.28mm DRAFT @MK4S HF0.4.json b/resources/profiles/Prusa/process/0.28mm DRAFT @MK4S HF0.4.json new file mode 100644 index 0000000000..de4db8c72c --- /dev/null +++ b/resources/profiles/Prusa/process/0.28mm DRAFT @MK4S HF0.4.json @@ -0,0 +1,24 @@ +{ + "bottom_shell_layers": "3", + "compatible_printers_condition": "printer_notes=~/.*MK4S.*/ and nozzle_diameter[0]==0.4 and printer_notes=~/.*HF_NOZZLE.*/", + "from": "system", + "inherits": "process_common_mk4s", + "initial_layer_line_width": "0.55", + "inner_wall_line_width": "0.55", + "inner_wall_speed": "200", + "instantiation": "true", + "internal_solid_infill_line_width": "0.55", + "layer_height": "0.28", + "name": "0.28mm DRAFT @MK4S HF0.4", + "outer_wall_line_width": "0.55", + "outer_wall_speed": "180", + "small_perimeter_speed": "200", + "sparse_infill_line_width": "0.55", + "support_interface_top_layers": "3", + "support_threshold_angle": "35", + "support_top_z_distance": "0.28", + "top_shell_layers": "4", + "top_surface_acceleration": "2000", + "top_surface_line_width": "0.45", + "type": "process" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.30mm DETAIL @MK4S 0.8.json b/resources/profiles/Prusa/process/0.30mm DETAIL @MK4S 0.8.json new file mode 100644 index 0000000000..4ee23ef660 --- /dev/null +++ b/resources/profiles/Prusa/process/0.30mm DETAIL @MK4S 0.8.json @@ -0,0 +1,45 @@ +{ + "bottom_shell_layers": "3", + "bottom_shell_thickness": "0.8", + "bridge_acceleration": "1000", + "bridge_speed": "22", + "compatible_printers_condition": "printer_notes=~/.*MK4S.*/ and nozzle_diameter[0]==0.8 and printer_notes!~/.*HF_NOZZLE.*/", + "default_acceleration": "2000", + "from": "system", + "gap_infill_speed": "40", + "infill_anchor": "2.5", + "infill_anchor_max": "20", + "inherits": "process_common_mk4s", + "initial_layer_line_width": "1", + "inner_wall_acceleration": "2000", + "inner_wall_line_width": "0.9", + "inner_wall_speed": "70", + "instantiation": "true", + "internal_solid_infill_acceleration": "3000", + "internal_solid_infill_line_width": "0.9", + "internal_solid_infill_speed": "50", + "layer_height": "0.30", + "line_width": "0.9", + "name": "0.30mm DETAIL @MK4S 0.8", + "outer_wall_acceleration": "1500", + "outer_wall_line_width": "0.9", + "outer_wall_speed": "45", + "raft_contact_distance": "0.2", + "seam_position": "nearest", + "small_perimeter_speed": "45", + "sparse_infill_line_width": "0.9", + "sparse_infill_pattern": "zig-zag", + "sparse_infill_speed": "100", + "support_interface_spacing": "0.35", + "support_line_width": "0.65", + "support_object_xy_distance": "0.72", + "support_speed": "60", + "support_top_z_distance": "0.25", + "thick_bridges": "1", + "top_shell_layers": "4", + "top_shell_thickness": "1.2", + "top_surface_acceleration": "1000", + "top_surface_line_width": "0.7", + "top_surface_speed": "35", + "type": "process" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.30mm SPEED @MK4S HF0.8.json b/resources/profiles/Prusa/process/0.30mm SPEED @MK4S HF0.8.json new file mode 100644 index 0000000000..2058fe3bae --- /dev/null +++ b/resources/profiles/Prusa/process/0.30mm SPEED @MK4S HF0.8.json @@ -0,0 +1,19 @@ +{ + "compatible_printers_condition": "printer_notes=~/.*MK4S.*/ and nozzle_diameter[0]==0.8 and printer_notes=~/.*HF_NOZZLE.*/", + "from": "system", + "gap_infill_speed": "80", + "inherits": "0.30mm DETAIL @MK4S 0.8", + "inner_wall_acceleration": "3000", + "inner_wall_speed": "125", + "instantiation": "true", + "internal_solid_infill_speed": "125", + "name": "0.30mm SPEED @MK4S HF0.8", + "outer_wall_acceleration": "2500", + "outer_wall_speed": "125", + "small_perimeter_speed": "125", + "sparse_infill_speed": "130", + "support_speed": "110", + "top_surface_acceleration": "1500", + "top_surface_speed": "80", + "type": "process" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.30mm STRUCTURAL @MK4S HF0.8.json b/resources/profiles/Prusa/process/0.30mm STRUCTURAL @MK4S HF0.8.json new file mode 100644 index 0000000000..2650e9fd04 --- /dev/null +++ b/resources/profiles/Prusa/process/0.30mm STRUCTURAL @MK4S HF0.8.json @@ -0,0 +1,15 @@ +{ + "compatible_printers_condition": "printer_notes=~/.*MK4S.*/ and nozzle_diameter[0]==0.8 and printer_notes=~/.*HF_NOZZLE.*/", + "from": "system", + "gap_infill_speed": "60", + "inherits": "0.30mm DETAIL @MK4S 0.8", + "inner_wall_speed": "80", + "instantiation": "true", + "internal_solid_infill_speed": "120", + "name": "0.30mm STRUCTURAL @MK4S HF0.8", + "sparse_infill_speed": "120", + "support_speed": "80", + "top_surface_acceleration": "1200", + "top_surface_speed": "60", + "type": "process" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.32mm SPEED @MK4S 0.6.json b/resources/profiles/Prusa/process/0.32mm SPEED @MK4S 0.6.json new file mode 100644 index 0000000000..3df0518560 --- /dev/null +++ b/resources/profiles/Prusa/process/0.32mm SPEED @MK4S 0.6.json @@ -0,0 +1,43 @@ +{ + "bottom_shell_layers": "3", + "bottom_shell_thickness": "0.6", + "bridge_speed": "40", + "compatible_printers_condition": "printer_notes=~/.*MK4S.*/ and nozzle_diameter[0]==0.6 and printer_notes!~/.*HF_NOZZLE.*/", + "default_acceleration": "2500", + "from": "system", + "gap_infill_speed": "60", + "infill_anchor": "2.5", + "infill_anchor_max": "20", + "inherits": "process_common_mk4s", + "initial_layer_line_width": "0.68", + "inner_wall_acceleration": "2500", + "inner_wall_line_width": "0.68", + "inner_wall_speed": "70", + "instantiation": "true", + "internal_solid_infill_acceleration": "3000", + "internal_solid_infill_line_width": "0.68", + "internal_solid_infill_speed": "70", + "layer_height": "0.32", + "line_width": "0.68", + "name": "0.32mm SPEED @MK4S 0.6", + "outer_wall_acceleration": "2000", + "outer_wall_line_width": "0.68", + "outer_wall_speed": "70", + "raft_contact_distance": "0.25", + "small_perimeter_speed": "70", + "sparse_infill_density": "20%", + "sparse_infill_line_width": "0.68", + "sparse_infill_speed": "100", + "support_interface_spacing": "0.25", + "support_interface_speed": "67.5", + "support_line_width": "0.5", + "support_object_xy_distance": "0.544", + "support_speed": "70", + "support_top_z_distance": "0.25", + "top_shell_layers": "4", + "top_shell_thickness": "0.9", + "top_surface_acceleration": "1500", + "top_surface_line_width": "0.55", + "top_surface_speed": "60", + "type": "process" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.32mm SPEED @MK4S HF0.5.json b/resources/profiles/Prusa/process/0.32mm SPEED @MK4S HF0.5.json new file mode 100644 index 0000000000..3ce10e2d67 --- /dev/null +++ b/resources/profiles/Prusa/process/0.32mm SPEED @MK4S HF0.5.json @@ -0,0 +1,11 @@ +{ + "from": "system", + "inherits": "0.25mm SPEED @MK4S HF0.5", + "inner_wall_speed": "160", + "instantiation": "true", + "layer_height": "0.32", + "name": "0.32mm SPEED @MK4S HF0.5", + "outer_wall_speed": "160", + "small_perimeter_speed": "160", + "type": "process" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.32mm SPEED @MK4S HF0.6.json b/resources/profiles/Prusa/process/0.32mm SPEED @MK4S HF0.6.json new file mode 100644 index 0000000000..ffc93ea7ee --- /dev/null +++ b/resources/profiles/Prusa/process/0.32mm SPEED @MK4S HF0.6.json @@ -0,0 +1,18 @@ +{ + "compatible_printers_condition": "printer_notes=~/.*MK4S.*/ and nozzle_diameter[0]==0.6 and printer_notes=~/.*HF_NOZZLE.*/", + "from": "system", + "inherits": "0.32mm SPEED @MK4S 0.6", + "inner_wall_acceleration": "4000", + "inner_wall_speed": "145", + "instantiation": "true", + "internal_solid_infill_speed": "140", + "name": "0.32mm SPEED @MK4S HF0.6", + "outer_wall_acceleration": "4000", + "outer_wall_speed": "145", + "small_perimeter_speed": "145", + "sparse_infill_speed": "145", + "support_interface_speed": "55", + "support_speed": "110", + "top_surface_acceleration": "2000", + "type": "process" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.32mm STRUCTURAL @MK4S 0.6.json b/resources/profiles/Prusa/process/0.32mm STRUCTURAL @MK4S 0.6.json new file mode 100644 index 0000000000..9da9511b25 --- /dev/null +++ b/resources/profiles/Prusa/process/0.32mm STRUCTURAL @MK4S 0.6.json @@ -0,0 +1,15 @@ +{ + "bottom_shell_layers": "4", + "bridge_speed": "30", + "from": "system", + "inherits": "0.32mm SPEED @MK4S 0.6", + "inner_wall_acceleration": "2000", + "instantiation": "true", + "name": "0.32mm STRUCTURAL @MK4S 0.6", + "outer_wall_acceleration": "1500", + "outer_wall_speed": "45", + "small_perimeter_speed": "45", + "sparse_infill_speed": "70", + "top_shell_layers": "5", + "type": "process" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.32mm STRUCTURAL @MK4S HF0.5.json b/resources/profiles/Prusa/process/0.32mm STRUCTURAL @MK4S HF0.5.json new file mode 100644 index 0000000000..6c6bea3d0f --- /dev/null +++ b/resources/profiles/Prusa/process/0.32mm STRUCTURAL @MK4S HF0.5.json @@ -0,0 +1,9 @@ +{ + "compatible_printers_condition": "printer_notes=~/.*MK4S.*/ and nozzle_diameter[0]==0.5 and printer_notes=~/.*HF_NOZZLE.*/", + "from": "system", + "inherits": "0.25mm STRUCTURAL @MK4S 0.5", + "instantiation": "true", + "layer_height": "0.32", + "name": "0.32mm STRUCTURAL @MK4S HF0.5", + "type": "process" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.32mm STRUCTURAL @MK4S HF0.6.json b/resources/profiles/Prusa/process/0.32mm STRUCTURAL @MK4S HF0.6.json new file mode 100644 index 0000000000..eb5936ad90 --- /dev/null +++ b/resources/profiles/Prusa/process/0.32mm STRUCTURAL @MK4S HF0.6.json @@ -0,0 +1,15 @@ +{ + "bottom_shell_layers": "4", + "compatible_printers_condition": "printer_notes=~/.*MK4S.*/ and nozzle_diameter[0]==0.6 and printer_notes=~/.*HF_NOZZLE.*/", + "from": "system", + "inherits": "0.32mm SPEED @MK4S 0.6", + "inner_wall_speed": "80", + "instantiation": "true", + "name": "0.32mm STRUCTURAL @MK4S HF0.6", + "outer_wall_acceleration": "1500", + "outer_wall_speed": "45", + "small_perimeter_speed": "45", + "sparse_infill_speed": "120", + "top_shell_layers": "5", + "type": "process" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.40mm QUALITY @MK4S 0.8.json b/resources/profiles/Prusa/process/0.40mm QUALITY @MK4S 0.8.json new file mode 100644 index 0000000000..6c894bf8cd --- /dev/null +++ b/resources/profiles/Prusa/process/0.40mm QUALITY @MK4S 0.8.json @@ -0,0 +1,45 @@ +{ + "bottom_shell_layers": "3", + "bottom_shell_thickness": "0.8", + "bridge_acceleration": "1000", + "bridge_speed": "22", + "compatible_printers_condition": "printer_notes=~/.*MK4S.*/ and nozzle_diameter[0]==0.8 and printer_notes!~/.*HF_NOZZLE.*/", + "default_acceleration": "2000", + "from": "system", + "gap_infill_speed": "35", + "infill_anchor": "2.5", + "infill_anchor_max": "20", + "inherits": "process_common_mk4s", + "initial_layer_line_width": "1", + "inner_wall_acceleration": "2000", + "inner_wall_line_width": "0.9", + "inner_wall_speed": "50", + "instantiation": "true", + "internal_solid_infill_acceleration": "3000", + "internal_solid_infill_line_width": "0.9", + "internal_solid_infill_speed": "45", + "layer_height": "0.4", + "line_width": "0.9", + "name": "0.40mm QUALITY @MK4S 0.8", + "outer_wall_acceleration": "1500", + "outer_wall_line_width": "0.9", + "outer_wall_speed": "45", + "raft_contact_distance": "0.2", + "seam_position": "nearest", + "small_perimeter_speed": "45", + "sparse_infill_line_width": "0.9", + "sparse_infill_pattern": "zig-zag", + "sparse_infill_speed": "90", + "support_interface_spacing": "0.35", + "support_line_width": "0.65", + "support_object_xy_distance": "0.72", + "support_speed": "50", + "support_top_z_distance": "0.25", + "thick_bridges": "1", + "top_shell_layers": "4", + "top_shell_thickness": "1.2", + "top_surface_acceleration": "1000", + "top_surface_line_width": "0.75", + "top_surface_speed": "35", + "type": "process" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.40mm SPEED @MK4S HF0.6.json b/resources/profiles/Prusa/process/0.40mm SPEED @MK4S HF0.6.json new file mode 100644 index 0000000000..f4f1eb13f1 --- /dev/null +++ b/resources/profiles/Prusa/process/0.40mm SPEED @MK4S HF0.6.json @@ -0,0 +1,42 @@ +{ + "bottom_shell_layers": "3", + "bottom_shell_thickness": "0.6", + "bridge_speed": "40", + "compatible_printers_condition": "printer_notes=~/.*MK4S.*/ and nozzle_diameter[0]==0.6 and printer_notes=~/.*HF_NOZZLE.*/", + "default_acceleration": "2000", + "from": "system", + "gap_infill_speed": "60", + "infill_anchor": "2.5", + "infill_anchor_max": "20", + "inherits": "process_common_mk4s", + "initial_layer_line_width": "0.68", + "inner_wall_line_width": "0.68", + "inner_wall_speed": "120", + "instantiation": "true", + "internal_solid_infill_acceleration": "3000", + "internal_solid_infill_line_width": "0.68", + "internal_solid_infill_speed": "120", + "layer_height": "0.4", + "line_width": "0.68", + "name": "0.40mm SPEED @MK4S HF0.6", + "outer_wall_acceleration": "3000", + "outer_wall_line_width": "0.68", + "outer_wall_speed": "115", + "raft_contact_distance": "0.25", + "small_perimeter_speed": "115", + "sparse_infill_density": "20%", + "sparse_infill_line_width": "0.68", + "sparse_infill_speed": "130", + "support_interface_spacing": "0.25", + "support_interface_speed": "55", + "support_line_width": "0.5", + "support_object_xy_distance": "0.544", + "support_speed": "110", + "support_top_z_distance": "0.25", + "top_shell_layers": "4", + "top_shell_thickness": "0.9", + "top_surface_acceleration": "2000", + "top_surface_line_width": "0.55", + "top_surface_speed": "60", + "type": "process" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.40mm SPEED @MK4S HF0.8.json b/resources/profiles/Prusa/process/0.40mm SPEED @MK4S HF0.8.json new file mode 100644 index 0000000000..016b73a17f --- /dev/null +++ b/resources/profiles/Prusa/process/0.40mm SPEED @MK4S HF0.8.json @@ -0,0 +1,19 @@ +{ + "compatible_printers_condition": "printer_notes=~/.*MK4S.*/ and nozzle_diameter[0]==0.8 and printer_notes=~/.*HF_NOZZLE.*/", + "from": "system", + "gap_infill_speed": "65", + "inherits": "0.40mm QUALITY @MK4S 0.8", + "inner_wall_acceleration": "3000", + "inner_wall_speed": "100", + "instantiation": "true", + "internal_solid_infill_speed": "100", + "name": "0.40mm SPEED @MK4S HF0.8", + "outer_wall_acceleration": "2500", + "outer_wall_speed": "90", + "small_perimeter_speed": "90", + "sparse_infill_speed": "105", + "support_speed": "90", + "top_surface_acceleration": "1500", + "top_surface_speed": "75", + "type": "process" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.40mm STRUCTURAL @MK4S HF0.6.json b/resources/profiles/Prusa/process/0.40mm STRUCTURAL @MK4S HF0.6.json new file mode 100644 index 0000000000..810b78b8dc --- /dev/null +++ b/resources/profiles/Prusa/process/0.40mm STRUCTURAL @MK4S HF0.6.json @@ -0,0 +1,18 @@ +{ + "bridge_speed": "30", + "from": "system", + "inherits": "0.40mm SPEED @MK4S HF0.6", + "inner_wall_acceleration": "2000", + "inner_wall_speed": "80", + "instantiation": "true", + "internal_solid_infill_acceleration": "2500", + "internal_solid_infill_speed": "100", + "name": "0.40mm STRUCTURAL @MK4S HF0.6", + "outer_wall_acceleration": "1500", + "outer_wall_speed": "45", + "small_perimeter_speed": "45", + "sparse_infill_acceleration": "3000", + "sparse_infill_speed": "100", + "top_surface_acceleration": "1500", + "type": "process" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.40mm STRUCTURAL @MK4S HF0.8.json b/resources/profiles/Prusa/process/0.40mm STRUCTURAL @MK4S HF0.8.json new file mode 100644 index 0000000000..44af002c16 --- /dev/null +++ b/resources/profiles/Prusa/process/0.40mm STRUCTURAL @MK4S HF0.8.json @@ -0,0 +1,15 @@ +{ + "compatible_printers_condition": "printer_notes=~/.*MK4S.*/ and nozzle_diameter[0]==0.8 and printer_notes=~/.*HF_NOZZLE.*/", + "from": "system", + "gap_infill_speed": "65", + "inherits": "0.40mm QUALITY @MK4S 0.8", + "inner_wall_speed": "80", + "instantiation": "true", + "internal_solid_infill_speed": "100", + "name": "0.40mm STRUCTURAL @MK4S HF0.8", + "sparse_infill_speed": "100", + "support_speed": "80", + "top_surface_acceleration": "1200", + "top_surface_speed": "65", + "type": "process" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.55mm DRAFT @MK4S 0.8.json b/resources/profiles/Prusa/process/0.55mm DRAFT @MK4S 0.8.json new file mode 100644 index 0000000000..4f20ddc28b --- /dev/null +++ b/resources/profiles/Prusa/process/0.55mm DRAFT @MK4S 0.8.json @@ -0,0 +1,45 @@ +{ + "bottom_shell_layers": "3", + "bottom_shell_thickness": "0.8", + "bridge_acceleration": "1000", + "bridge_speed": "22", + "compatible_printers_condition": "printer_notes=~/.*MK4S.*/ and nozzle_diameter[0]==0.8 and printer_notes!~/.*HF_NOZZLE.*/", + "default_acceleration": "2000", + "from": "system", + "gap_infill_speed": "30", + "infill_anchor": "2.5", + "infill_anchor_max": "20", + "inherits": "process_common_mk4s", + "initial_layer_line_width": "1", + "inner_wall_acceleration": "2000", + "inner_wall_line_width": "1", + "inner_wall_speed": "40", + "instantiation": "true", + "internal_solid_infill_acceleration": "3000", + "internal_solid_infill_line_width": "0.9", + "internal_solid_infill_speed": "35", + "layer_height": "0.55", + "line_width": "0.9", + "name": "0.55mm DRAFT @MK4S 0.8", + "outer_wall_acceleration": "1500", + "outer_wall_line_width": "1", + "outer_wall_speed": "35", + "raft_contact_distance": "0.2", + "seam_position": "nearest", + "small_perimeter_speed": "35", + "sparse_infill_line_width": "0.9", + "sparse_infill_pattern": "zig-zag", + "sparse_infill_speed": "60", + "support_interface_spacing": "0.35", + "support_line_width": "0.65", + "support_object_xy_distance": "0.72", + "support_speed": "35", + "support_top_z_distance": "0.25", + "thick_bridges": "1", + "top_shell_layers": "4", + "top_shell_thickness": "1.2", + "top_surface_acceleration": "1000", + "top_surface_line_width": "0.75", + "top_surface_speed": "30", + "type": "process" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.55mm SPEED @MK4S HF0.8.json b/resources/profiles/Prusa/process/0.55mm SPEED @MK4S HF0.8.json new file mode 100644 index 0000000000..e71a11de8d --- /dev/null +++ b/resources/profiles/Prusa/process/0.55mm SPEED @MK4S HF0.8.json @@ -0,0 +1,19 @@ +{ + "compatible_printers_condition": "printer_notes=~/.*MK4S.*/ and nozzle_diameter[0]==0.8 and printer_notes=~/.*HF_NOZZLE.*/", + "from": "system", + "gap_infill_speed": "60", + "inherits": "0.55mm DRAFT @MK4S 0.8", + "inner_wall_acceleration": "3000", + "inner_wall_speed": "75", + "instantiation": "true", + "internal_solid_infill_speed": "70", + "name": "0.55mm SPEED @MK4S HF0.8", + "outer_wall_acceleration": "2500", + "outer_wall_speed": "70", + "small_perimeter_speed": "70", + "sparse_infill_speed": "80", + "support_speed": "80", + "top_surface_acceleration": "1500", + "top_surface_speed": "60", + "type": "process" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.55mm STRUCTURAL @MK4S HF0.8.json b/resources/profiles/Prusa/process/0.55mm STRUCTURAL @MK4S HF0.8.json new file mode 100644 index 0000000000..ade77f6d83 --- /dev/null +++ b/resources/profiles/Prusa/process/0.55mm STRUCTURAL @MK4S HF0.8.json @@ -0,0 +1,17 @@ +{ + "compatible_printers_condition": "printer_notes=~/.*MK4S.*/ and nozzle_diameter[0]==0.8 and printer_notes=~/.*HF_NOZZLE.*/", + "from": "system", + "gap_infill_speed": "60", + "inherits": "0.55mm DRAFT @MK4S 0.8", + "inner_wall_speed": "75", + "instantiation": "true", + "internal_solid_infill_speed": "65", + "name": "0.55mm STRUCTURAL @MK4S HF0.8", + "outer_wall_speed": "45", + "small_perimeter_speed": "45", + "sparse_infill_speed": "75", + "support_speed": "65", + "top_surface_acceleration": "1200", + "top_surface_speed": "45", + "type": "process" +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/process_common_mk4s.json b/resources/profiles/Prusa/process/process_common_mk4s.json new file mode 100644 index 0000000000..d15802643a --- /dev/null +++ b/resources/profiles/Prusa/process/process_common_mk4s.json @@ -0,0 +1,90 @@ +{ + "bottom_shell_layers": "4", + "bottom_shell_thickness": "0.5", + "bridge_acceleration": "1500", + "compatible_printers_condition": "printer_notes=~/.*MK4IS.*/ and nozzle_diameter[0]==0.4", + "default_acceleration": "4000", + "elefant_foot_compensation": "0.2", + "enable_arc_fitting": "1", + "enable_overhang_speed": "1", + "enable_prime_tower": "1", + "enforce_support_layers": "0", + "filename_format": "{input_filename_base}_{nozzle_diameter[0]}n_{layer_height}mm_{filament_type[0]}_{printer_model}_{print_time}.gcode", + "from": "system", + "gap_infill_speed": "120", + "gcode_comments": "0", + "gcode_label_objects": "1", + "infill_anchor": "2", + "infill_anchor_max": "12", + "infill_wall_overlap": "15%", + "inherits": "fdm_process_common", + "initial_layer_line_width": "0.5", + "initial_layer_speed": "40", + "inner_wall_acceleration": "4000", + "inner_wall_line_width": "0.45", + "inner_wall_speed": "170", + "instantiation": "false", + "internal_solid_infill_acceleration": "4000", + "internal_solid_infill_line_width": "0.45", + "internal_solid_infill_speed": "200", + "line_width": "0.45", + "min_bead_width": "85%", + "min_feature_size": "25%", + "minimum_sparse_infill_area": "0", + "name": "process_common_mk4s", + "ooze_prevention": "0", + "outer_wall_acceleration": "4000", + "outer_wall_line_width": "0.45", + "outer_wall_speed": "170", + "overhang_1_4_speed": "80%", + "overhang_2_4_speed": "30", + "overhang_3_4_speed": "25", + "overhang_4_4_speed": "15", + "raft_contact_distance": "0.15", + "raft_expansion": "1.5", + "raft_first_layer_density": "80%", + "raft_first_layer_expansion": "3.5", + "reduce_infill_retraction": "0", + "resolution": "0", + "slice_closing_radius": "0.049", + "small_perimeter_speed": "170", + "solid_infill_filament": "1", + "sparse_infill_acceleration": "4000", + "sparse_infill_filament": "1", + "sparse_infill_line_width": "0.45", + "sparse_infill_pattern": "grid", + "sparse_infill_speed": "200", + "support_angle": "0", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2", + "support_interface_bottom_layers": "0", + "support_interface_pattern": "auto", + "support_interface_spacing": "0.2", + "support_interface_speed": "60", + "support_interface_top_layers": "5", + "support_line_width": "0.36", + "support_object_xy_distance": "0.36", + "support_speed": "120", + "support_style": "snug", + "support_threshold_angle": "40", + "thick_bridges": "0", + "top_shell_layers": "5", + "top_shell_thickness": "0.7", + "top_surface_acceleration": "1200", + "top_surface_line_width": "0.42", + "top_surface_speed": "100", + "travel_acceleration": "4000", + "travel_speed": "300", + "travel_speed_z": "12", + "tree_support_angle_slow": "25", + "tree_support_branch_angle": "40", + "tree_support_branch_diameter": "2", + "tree_support_branch_diameter_angle": "5", + "tree_support_branch_diameter_double_wall": "3", + "tree_support_tip_diameter": "0.8", + "tree_support_top_rate": "30%", + "type": "process", + "wall_filament": "1", + "wall_generator": "arachne", + "wall_loops": "2" +} \ No newline at end of file diff --git a/resources/profiles/Qidi.json b/resources/profiles/Qidi.json index fb4ed61f38..345d86a731 100644 --- a/resources/profiles/Qidi.json +++ b/resources/profiles/Qidi.json @@ -1,6 +1,6 @@ { "name": "Qidi", - "version": "02.02.00.04", + "version": "02.02.00.05", "force_update": "0", "description": "Qidi configurations", "machine_model_list": [ @@ -15,7 +15,7 @@ { "name": "Qidi X-Max 3", "sub_path": "machine/Qidi X-Max 3.json" - }, + }, { "name": "Qidi X-Plus 3", "sub_path": "machine/Qidi X-Plus 3.json" @@ -24,15 +24,15 @@ "name": "Qidi X-Smart 3", "sub_path": "machine/Qidi X-Smart 3.json" }, - { + { "name": "Qidi X-Plus", "sub_path": "machine/Qidi X-Plus.json" }, - { + { "name": "Qidi X-Max", "sub_path": "machine/Qidi X-Max.json" }, - { + { "name": "Qidi X-CF Pro", "sub_path": "machine/Qidi X-CF Pro.json" } @@ -113,16 +113,16 @@ { "name": "0.12mm Fine @Qidi X3", "sub_path": "process/0.12mm Fine @Qidi X3.json" - }, - { + }, + { "name": "0.12mm Fine @Qidi XMPlus", "sub_path": "process/0.12mm Fine @Qidi XPlus.json" }, - { + { "name": "0.12mm Fine @Qidi XMax", "sub_path": "process/0.12mm Fine @Qidi XMax.json" }, - { + { "name": "0.12mm Fine @Qidi XCFPro", "sub_path": "process/0.12mm Fine @Qidi XCFPro.json" }, @@ -137,7 +137,7 @@ { "name": "0.12mm Fine @Qidi XMax3", "sub_path": "process/0.12mm Fine @Qidi XMax3.json" - }, + }, { "name": "0.12mm Fine @Qidi Q1 Pro", "sub_path": "process/0.12mm Fine @Qidi Q1 Pro.json" @@ -149,16 +149,16 @@ { "name": "0.16mm Optimal @Qidi X3", "sub_path": "process/0.16mm Optimal @Qidi X3.json" - }, - { + }, + { "name": "0.16mm Optimal @Qidi XPlus", "sub_path": "process/0.16mm Optimal @Qidi XPlus.json" }, - { + { "name": "0.16mm Optimal @Qidi XMax", "sub_path": "process/0.16mm Optimal @Qidi XMax.json" }, - { + { "name": "0.16mm Optimal @Qidi XCFPro", "sub_path": "process/0.16mm Optimal @Qidi XCFPro.json" }, @@ -186,15 +186,15 @@ "name": "0.20mm Standard @Qidi X3", "sub_path": "process/0.20mm Standard @Qidi X3.json" }, - { + { "name": "0.20mm Standard @Qidi XPlus", "sub_path": "process/0.20mm Standard @Qidi XPlus.json" }, - { + { "name": "0.20mm Standard @Qidi XMax", "sub_path": "process/0.20mm Standard @Qidi XMax.json" }, - { + { "name": "0.20mm Standard @Qidi XCFPro", "sub_path": "process/0.20mm Standard @Qidi XCFPro.json" }, @@ -222,15 +222,15 @@ "name": "0.24mm Draft @Qidi X3", "sub_path": "process/0.24mm Draft @Qidi X3.json" }, - { + { "name": "0.25mm Draft @Qidi XPlus", "sub_path": "process/0.25mm Draft @Qidi XPlus.json" }, - { + { "name": "0.25mm Draft @Qidi XMax", "sub_path": "process/0.25mm Draft @Qidi XMax.json" }, - { + { "name": "0.25mm Draft @Qidi XCFPro", "sub_path": "process/0.25mm Draft @Qidi XCFPro.json" }, @@ -258,15 +258,15 @@ "name": "0.28mm Extra Draft @Qidi X3", "sub_path": "process/0.28mm Extra Draft @Qidi X3.json" }, - { + { "name": "0.30mm Extra Draft @Qidi XPlus", "sub_path": "process/0.30mm Extra Draft @Qidi XPlus.json" }, - { + { "name": "0.30mm Extra Draft @Qidi XMax", "sub_path": "process/0.30mm Extra Draft @Qidi XMax.json" }, - { + { "name": "0.30mm Extra Draft @Qidi XCFPro", "sub_path": "process/0.30mm Extra Draft @Qidi XCFPro.json" }, @@ -608,7 +608,7 @@ "name": "fdm_filament_pa", "sub_path": "filament/fdm_filament_pa.json" }, - { + { "name": "fdm_filament_pc", "sub_path": "filament/fdm_filament_pc.json" }, @@ -616,11 +616,11 @@ "name": "fdm_filament_pet", "sub_path": "filament/fdm_filament_pet.json" }, - { + { "name": "fdm_filament_pla", "sub_path": "filament/fdm_filament_pla.json" }, - { + { "name": "fdm_filament_pva", "sub_path": "filament/fdm_filament_pva.json" }, @@ -629,196 +629,392 @@ "sub_path": "filament/fdm_filament_tpu.json" }, { - "name": "Qidi Generic ABS", - "sub_path": "filament/Qidi Generic ABS.json" + "name": "Bambu ABS", + "sub_path": "filament/Bambu ABS.json" }, { - "name": "Qidi Generic ABS @Qidi X-Plus 4 0.2 nozzle", - "sub_path": "filament/Qidi Generic ABS @Qidi X-Plus 4 0.2 nozzle.json" + "name": "HATCHBOX ABS @Qidi", + "sub_path": "filament/HATCHBOX ABS @Qidi.json" }, { - "name": "Qidi Generic ABS @Qidi X-Plus 4 0.4 nozzle", - "sub_path": "filament/Qidi Generic ABS @Qidi X-Plus 4 0.4 nozzle.json" + "name": "Overture ABS @Qidi", + "sub_path": "filament/Overture ABS @Qidi.json" }, { - "name": "Qidi Generic ABS @Qidi X-Plus 4 0.6 nozzle", - "sub_path": "filament/Qidi Generic ABS @Qidi X-Plus 4 0.6 nozzle.json" - }, - { - "name": "Qidi Generic ABS @Qidi X-Plus 4 0.8 nozzle", - "sub_path": "filament/Qidi Generic ABS @Qidi X-Plus 4 0.8 nozzle.json" - }, - { - "name": "Qidi Generic ABS @Qidi Q1 Pro 0.2 nozzle", - "sub_path": "filament/Qidi Generic ABS @Qidi Q1 Pro 0.2 nozzle.json" - }, - { - "name": "Qidi Generic ABS @Qidi Q1 Pro 0.4 nozzle", - "sub_path": "filament/Qidi Generic ABS @Qidi Q1 Pro 0.4 nozzle.json" - }, - { - "name": "Qidi Generic ABS @Qidi Q1 Pro 0.6 nozzle", - "sub_path": "filament/Qidi Generic ABS @Qidi Q1 Pro 0.6 nozzle.json" - }, - { - "name": "Qidi Generic ABS @Qidi Q1 Pro 0.8 nozzle", - "sub_path": "filament/Qidi Generic ABS @Qidi Q1 Pro 0.8 nozzle.json" - }, - { - "name": "Qidi Generic ABS @Qidi X-Max 3 0.2 nozzle", - "sub_path": "filament/Qidi Generic ABS @Qidi X-Max 3 0.2 nozzle.json" - }, - { - "name": "Qidi Generic ABS @Qidi X-Plus 3 0.2 nozzle", - "sub_path": "filament/Qidi Generic ABS @Qidi X-Plus 3 0.2 nozzle.json" - }, - { - "name": "Qidi Generic ABS @Qidi X-Smart 3 0.2 nozzle", - "sub_path": "filament/Qidi Generic ABS @Qidi X-Smart 3 0.2 nozzle.json" - }, - { - "name": "Qidi Generic PETG", - "sub_path": "filament/Qidi Generic PETG.json" - }, - { - "name": "Qidi Generic PETG @Qidi X-Plus 4 0.2 nozzle", - "sub_path": "filament/Qidi Generic PETG @Qidi X-Plus 4 0.2 nozzle.json" - }, - { - "name": "Qidi Generic PETG @Qidi X-Plus 4 0.4 nozzle", - "sub_path": "filament/Qidi Generic PETG @Qidi X-Plus 4 0.4 nozzle.json" - }, - { - "name": "Qidi Generic PETG @Qidi X-Plus 4 0.6 nozzle", - "sub_path": "filament/Qidi Generic PETG @Qidi X-Plus 4 0.6 nozzle.json" - }, - { - "name": "Qidi Generic PETG @Qidi X-Plus 4 0.8 nozzle", - "sub_path": "filament/Qidi Generic PETG @Qidi X-Plus 4 0.8 nozzle.json" - }, - { - "name": "Qidi Generic PETG @Qidi Q1 Pro 0.2 nozzle", - "sub_path": "filament/Qidi Generic PETG @Qidi Q1 Pro 0.2 nozzle.json" - }, - { - "name": "Qidi Generic PETG @Qidi Q1 Pro 0.4 nozzle", - "sub_path": "filament/Qidi Generic PETG @Qidi Q1 Pro 0.4 nozzle.json" - }, - { - "name": "Qidi Generic PETG @Qidi Q1 Pro 0.6 nozzle", - "sub_path": "filament/Qidi Generic PETG @Qidi Q1 Pro 0.6 nozzle.json" - }, - { - "name": "Qidi Generic PETG @Qidi Q1 Pro 0.8 nozzle", - "sub_path": "filament/Qidi Generic PETG @Qidi Q1 Pro 0.8 nozzle.json" - }, - { - "name": "Qidi Generic PETG @Qidi X-Max 3 0.2 nozzle", - "sub_path": "filament/Qidi Generic PETG @Qidi X-Max 3 0.2 nozzle.json" - }, - { - "name": "Qidi Generic PETG @Qidi X-Plus 3 0.2 nozzle", - "sub_path": "filament/Qidi Generic PETG @Qidi X-Plus 3 0.2 nozzle.json" - }, - { - "name": "Qidi Generic PETG @Qidi X-Smart 3 0.2 nozzle", - "sub_path": "filament/Qidi Generic PETG @Qidi X-Smart 3 0.2 nozzle.json" - }, - { - "name": "Qidi Generic PLA", - "sub_path": "filament/Qidi Generic PLA.json" - }, - { - "name": "Qidi Generic PLA @Qidi X-Plus 4 0.2 nozzle", - "sub_path": "filament/Qidi Generic PLA @Qidi X-Plus 4 0.2 nozzle.json" - }, - { - "name": "Qidi Generic PLA @Qidi X-Plus 4 0.4 nozzle", - "sub_path": "filament/Qidi Generic PLA @Qidi X-Plus 4 0.4 nozzle.json" - }, - { - "name": "Qidi Generic PLA @Qidi X-Plus 4 0.6 nozzle", - "sub_path": "filament/Qidi Generic PLA @Qidi X-Plus 4 0.6 nozzle.json" - }, - { - "name": "Qidi Generic PLA @Qidi X-Plus 4 0.8 nozzle", - "sub_path": "filament/Qidi Generic PLA @Qidi X-Plus 4 0.8 nozzle.json" - }, - { - "name": "Qidi Generic PLA @Qidi Q1 Pro 0.2 nozzle", - "sub_path": "filament/Qidi Generic PLA @Qidi Q1 Pro 0.2 nozzle.json" - }, - { - "name": "Qidi Generic PLA @Qidi Q1 Pro 0.4 nozzle", - "sub_path": "filament/Qidi Generic PLA @Qidi Q1 Pro 0.4 nozzle.json" - }, - { - "name": "Qidi Generic PLA @Qidi Q1 Pro 0.6 nozzle", - "sub_path": "filament/Qidi Generic PLA @Qidi Q1 Pro 0.6 nozzle.json" - }, - { - "name": "Qidi Generic PLA @Qidi Q1 Pro 0.8 nozzle", - "sub_path": "filament/Qidi Generic PLA @Qidi Q1 Pro 0.8 nozzle.json" - }, - { - "name": "Qidi Generic PLA @Qidi X-Max 3 0.2 nozzle", - "sub_path": "filament/Qidi Generic PLA @Qidi X-Max 3 0.2 nozzle.json" - }, - { - "name": "Qidi Generic PLA @Qidi X-Plus 3 0.2 nozzle", - "sub_path": "filament/Qidi Generic PLA @Qidi X-Plus 3 0.2 nozzle.json" - }, - { - "name": "Qidi Generic PLA @Qidi X-Smart 3 0.2 nozzle", - "sub_path": "filament/Qidi Generic PLA @Qidi X-Smart 3 0.2 nozzle.json" - }, - { - "name": "Qidi Generic PLA High Speed @Qidi X-Plus 4 0.2 nozzle", - "sub_path": "filament/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.2 nozzle.json" - }, - { - "name": "Qidi Generic PLA High Speed @Qidi X-Plus 4 0.4 nozzle", - "sub_path": "filament/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.4 nozzle.json" - }, - { - "name": "Qidi Generic PLA High Speed @Qidi X-Plus 4 0.6 nozzle", - "sub_path": "filament/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.6 nozzle.json" - }, - { - "name": "Qidi Generic PLA High Speed @Qidi X-Plus 4 0.8 nozzle", - "sub_path": "filament/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.8 nozzle.json" - }, - { - "name": "Qidi Generic TPU 95A", - "sub_path": "filament/Qidi Generic TPU 95A.json" - }, - { - "name": "Qidi Generic TPU 95A @Qidi X-Plus 4 0.8 nozzle", - "sub_path": "filament/Qidi Generic TPU 95A @Qidi X-Plus 4 0.8 nozzle.json" - }, - { - "name": "Qidi Generic TPU 95A @Qidi Q1 Pro 0.8 nozzle", - "sub_path": "filament/Qidi Generic TPU 95A @Qidi Q1 Pro 0.8 nozzle.json" + "name": "PolyLite ABS @Qidi", + "sub_path": "filament/PolyLite ABS @Qidi.json" }, { "name": "QIDI ABS Odorless", "sub_path": "filament/QIDI ABS Odorless.json" }, { - "name": "QIDI ABS Odorless @Qidi X-Plus 4 0.2 nozzle", - "sub_path": "filament/QIDI ABS Odorless @Qidi X-Plus 4 0.2 nozzle.json" + "name": "QIDI ABS Rapido", + "sub_path": "filament/QIDI ABS Rapido.json" }, { - "name": "QIDI ABS Odorless @Qidi X-Plus 4 0.4 nozzle", - "sub_path": "filament/QIDI ABS Odorless @Qidi X-Plus 4 0.4 nozzle.json" + "name": "QIDI ABS Rapido Metal", + "sub_path": "filament/QIDI ABS Rapido Metal.json" }, { - "name": "QIDI ABS Odorless @Qidi X-Plus 4 0.6 nozzle", - "sub_path": "filament/QIDI ABS Odorless @Qidi X-Plus 4 0.6 nozzle.json" + "name": "QIDI ABS-GF", + "sub_path": "filament/QIDI ABS-GF.json" }, { - "name": "QIDI ABS Odorless @Qidi X-Plus 4 0.8 nozzle", - "sub_path": "filament/QIDI ABS Odorless @Qidi X-Plus 4 0.8 nozzle.json" + "name": "QIDI ABS-GF10", + "sub_path": "filament/QIDI ABS-GF10.json" + }, + { + "name": "QIDI ABS-GF25", + "sub_path": "filament/QIDI ABS-GF25.json" + }, + { + "name": "Qidi Generic ABS", + "sub_path": "filament/Qidi Generic ABS.json" + }, + { + "name": "Qidi PC-ABS-FR", + "sub_path": "filament/Qidi PC-ABS-FR.json" + }, + { + "name": "QIDI ASA", + "sub_path": "filament/QIDI ASA.json" + }, + { + "name": "Qidi ASA-Aero", + "sub_path": "filament/Qidi ASA-Aero.json" + }, + { + "name": "Qidi Generic ASA", + "sub_path": "filament/Qidi Generic ASA.json" + }, + { + "name": "QIDI PA-Ultra", + "sub_path": "filament/QIDI PA-Ultra.json" + }, + { + "name": "QIDI PA12-CF", + "sub_path": "filament/QIDI PA12-CF.json" + }, + { + "name": "QIDI PAHT-CF", + "sub_path": "filament/QIDI PAHT-CF.json" + }, + { + "name": "QIDI PAHT-GF", + "sub_path": "filament/QIDI PAHT-GF.json" + }, + { + "name": "QIDI PET-CF", + "sub_path": "filament/QIDI PET-CF.json" + }, + { + "name": "QIDI PET-GF", + "sub_path": "filament/QIDI PET-GF.json" + }, + { + "name": "QIDI PPS-CF", + "sub_path": "filament/QIDI PPS-CF.json" + }, + { + "name": "QIDI UltraPA-CF25", + "sub_path": "filament/QIDI UltraPA-CF25.json" + }, + { + "name": "Qidi Generic PA", + "sub_path": "filament/Qidi Generic PA.json" + }, + { + "name": "Qidi Generic PA-CF", + "sub_path": "filament/Qidi Generic PA-CF.json" + }, + { + "name": "Qidi Generic PC", + "sub_path": "filament/Qidi Generic PC.json" + }, + { + "name": "Bambu PETG", + "sub_path": "filament/Bambu PETG.json" + }, + { + "name": "HATCHBOX PETG @Qidi", + "sub_path": "filament/HATCHBOX PETG @Qidi.json" + }, + { + "name": "QIDI PETG Tough", + "sub_path": "filament/QIDI PETG Tough.json" + }, + { + "name": "Qidi Generic PETG", + "sub_path": "filament/Qidi Generic PETG.json" + }, + { + "name": "Qidi Generic PETG-CF", + "sub_path": "filament/Qidi Generic PETG-CF.json" + }, + { + "name": "Tinmorry PETG-ECO", + "sub_path": "filament/Tinmorry PETG-ECO.json" + }, + { + "name": "Bambu PLA", + "sub_path": "filament/Bambu PLA.json" + }, + { + "name": "HATCHBOX PLA @Qidi", + "sub_path": "filament/HATCHBOX PLA @Qidi.json" + }, + { + "name": "Overture PLA @Qidi", + "sub_path": "filament/Overture PLA @Qidi.json" + }, + { + "name": "PolyLite PLA @Qidi", + "sub_path": "filament/PolyLite PLA @Qidi.json" + }, + { + "name": "QIDI PLA Rapido", + "sub_path": "filament/QIDI PLA Rapido.json" + }, + { + "name": "QIDI PLA Rapido Matte", + "sub_path": "filament/QIDI PLA Rapido Matte.json" + }, + { + "name": "QIDI PLA Rapido Metal", + "sub_path": "filament/QIDI PLA Rapido Metal.json" + }, + { + "name": "QIDI PLA Rapido Silk", + "sub_path": "filament/QIDI PLA Rapido Silk.json" + }, + { + "name": "QIDI WOOD Rapido", + "sub_path": "filament/QIDI WOOD Rapido.json" + }, + { + "name": "Qidi Generic PLA", + "sub_path": "filament/Qidi Generic PLA.json" + }, + { + "name": "Qidi Generic PLA Silk", + "sub_path": "filament/Qidi Generic PLA Silk.json" + }, + { + "name": "Qidi Generic PLA+", + "sub_path": "filament/Qidi Generic PLA+.json" + }, + { + "name": "Qidi Generic PLA-CF", + "sub_path": "filament/Qidi Generic PLA-CF.json" + }, + { + "name": "Qidi PLA-CF", + "sub_path": "filament/Qidi PLA-CF.json" + }, + { + "name": "Qidi Generic PVA", + "sub_path": "filament/Qidi Generic PVA.json" + }, + { + "name": "Qidi Generic TPU", + "sub_path": "filament/Qidi Generic TPU.json" + }, + { + "name": "Qidi Generic TPU 95A", + "sub_path": "filament/Qidi Generic TPU 95A.json" + }, + { + "name": "Qidi TPU 95A-HF", + "sub_path": "filament/Qidi TPU 95A-HF.json" + }, + { + "name": "Bambu ABS @0.2 nozzle", + "sub_path": "filament/Bambu ABS @0.2 nozzle.json" + }, + { + "name": "Bambu ABS @0.6 nozzle", + "sub_path": "filament/Bambu ABS @0.6 nozzle.json" + }, + { + "name": "Bambu ABS @0.8 nozzle", + "sub_path": "filament/Bambu ABS @0.8 nozzle.json" + }, + { + "name": "Bambu ABS @Qidi Q1 Pro 0.2 nozzle", + "sub_path": "filament/Bambu ABS @Qidi Q1 Pro 0.2 nozzle.json" + }, + { + "name": "Bambu ABS @Qidi Q1 Pro 0.4 nozzle", + "sub_path": "filament/Bambu ABS @Qidi Q1 Pro 0.4 nozzle.json" + }, + { + "name": "Bambu ABS @Qidi Q1 Pro 0.6 nozzle", + "sub_path": "filament/Bambu ABS @Qidi Q1 Pro 0.6 nozzle.json" + }, + { + "name": "Bambu ABS @Qidi Q1 Pro 0.8 nozzle", + "sub_path": "filament/Bambu ABS @Qidi Q1 Pro 0.8 nozzle.json" + }, + { + "name": "Bambu ABS @Qidi X-Plus 4 0.2 nozzle", + "sub_path": "filament/Bambu ABS @Qidi X-Plus 4 0.2 nozzle.json" + }, + { + "name": "Bambu ABS @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/Bambu ABS @Qidi X-Plus 4 0.4 nozzle.json" + }, + { + "name": "Bambu ABS @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/Bambu ABS @Qidi X-Plus 4 0.6 nozzle.json" + }, + { + "name": "Bambu ABS @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/Bambu ABS @Qidi X-Plus 4 0.8 nozzle.json" + }, + { + "name": "HATCHBOX ABS @Qidi 0.2 nozzle", + "sub_path": "filament/HATCHBOX ABS @Qidi 0.2 nozzle.json" + }, + { + "name": "HATCHBOX ABS @Qidi 0.6 nozzle", + "sub_path": "filament/HATCHBOX ABS @Qidi 0.6 nozzle.json" + }, + { + "name": "HATCHBOX ABS @Qidi 0.8 nozzle", + "sub_path": "filament/HATCHBOX ABS @Qidi 0.8 nozzle.json" + }, + { + "name": "HATCHBOX ABS @Qidi Q1 Pro 0.2 nozzle", + "sub_path": "filament/HATCHBOX ABS @Qidi Q1 Pro 0.2 nozzle.json" + }, + { + "name": "HATCHBOX ABS @Qidi Q1 Pro 0.4 nozzle", + "sub_path": "filament/HATCHBOX ABS @Qidi Q1 Pro 0.4 nozzle.json" + }, + { + "name": "HATCHBOX ABS @Qidi Q1 Pro 0.6 nozzle", + "sub_path": "filament/HATCHBOX ABS @Qidi Q1 Pro 0.6 nozzle.json" + }, + { + "name": "HATCHBOX ABS @Qidi Q1 Pro 0.8 nozzle", + "sub_path": "filament/HATCHBOX ABS @Qidi Q1 Pro 0.8 nozzle.json" + }, + { + "name": "HATCHBOX ABS @Qidi X-Plus 4 0.2 nozzle", + "sub_path": "filament/HATCHBOX ABS @Qidi X-Plus 4 0.2 nozzle.json" + }, + { + "name": "HATCHBOX ABS @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/HATCHBOX ABS @Qidi X-Plus 4 0.4 nozzle.json" + }, + { + "name": "HATCHBOX ABS @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/HATCHBOX ABS @Qidi X-Plus 4 0.6 nozzle.json" + }, + { + "name": "HATCHBOX ABS @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/HATCHBOX ABS @Qidi X-Plus 4 0.8 nozzle.json" + }, + { + "name": "Overture ABS @Qidi 0.2 nozzle", + "sub_path": "filament/Overture ABS @Qidi 0.2 nozzle.json" + }, + { + "name": "Overture ABS @Qidi 0.6 nozzle", + "sub_path": "filament/Overture ABS @Qidi 0.6 nozzle.json" + }, + { + "name": "Overture ABS @Qidi 0.8 nozzle", + "sub_path": "filament/Overture ABS @Qidi 0.8 nozzle.json" + }, + { + "name": "Overture ABS @Qidi Q1 Pro 0.2 nozzle", + "sub_path": "filament/Overture ABS @Qidi Q1 Pro 0.2 nozzle.json" + }, + { + "name": "Overture ABS @Qidi Q1 Pro 0.4 nozzle", + "sub_path": "filament/Overture ABS @Qidi Q1 Pro 0.4 nozzle.json" + }, + { + "name": "Overture ABS @Qidi Q1 Pro 0.6 nozzle", + "sub_path": "filament/Overture ABS @Qidi Q1 Pro 0.6 nozzle.json" + }, + { + "name": "Overture ABS @Qidi Q1 Pro 0.8 nozzle", + "sub_path": "filament/Overture ABS @Qidi Q1 Pro 0.8 nozzle.json" + }, + { + "name": "Overture ABS @Qidi X-Plus 4 0.2 nozzle", + "sub_path": "filament/Overture ABS @Qidi X-Plus 4 0.2 nozzle.json" + }, + { + "name": "Overture ABS @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/Overture ABS @Qidi X-Plus 4 0.4 nozzle.json" + }, + { + "name": "Overture ABS @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/Overture ABS @Qidi X-Plus 4 0.6 nozzle.json" + }, + { + "name": "Overture ABS @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/Overture ABS @Qidi X-Plus 4 0.8 nozzle.json" + }, + { + "name": "PolyLite ABS @Qidi 0.2 nozzle", + "sub_path": "filament/PolyLite ABS @Qidi 0.2 nozzle.json" + }, + { + "name": "PolyLite ABS @Qidi 0.6 nozzle", + "sub_path": "filament/PolyLite ABS @Qidi 0.6 nozzle.json" + }, + { + "name": "PolyLite ABS @Qidi 0.8 nozzle", + "sub_path": "filament/PolyLite ABS @Qidi 0.8 nozzle.json" + }, + { + "name": "PolyLite ABS @Qidi Q1 Pro 0.2 nozzle", + "sub_path": "filament/PolyLite ABS @Qidi Q1 Pro 0.2 nozzle.json" + }, + { + "name": "PolyLite ABS @Qidi Q1 Pro 0.4 nozzle", + "sub_path": "filament/PolyLite ABS @Qidi Q1 Pro 0.4 nozzle.json" + }, + { + "name": "PolyLite ABS @Qidi Q1 Pro 0.6 nozzle", + "sub_path": "filament/PolyLite ABS @Qidi Q1 Pro 0.6 nozzle.json" + }, + { + "name": "PolyLite ABS @Qidi Q1 Pro 0.8 nozzle", + "sub_path": "filament/PolyLite ABS @Qidi Q1 Pro 0.8 nozzle.json" + }, + { + "name": "PolyLite ABS @Qidi X-Plus 4 0.2 nozzle", + "sub_path": "filament/PolyLite ABS @Qidi X-Plus 4 0.2 nozzle.json" + }, + { + "name": "PolyLite ABS @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/PolyLite ABS @Qidi X-Plus 4 0.4 nozzle.json" + }, + { + "name": "PolyLite ABS @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/PolyLite ABS @Qidi X-Plus 4 0.6 nozzle.json" + }, + { + "name": "PolyLite ABS @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/PolyLite ABS @Qidi X-Plus 4 0.8 nozzle.json" + }, + { + "name": "QIDI ABS Odorless @0.2 nozzle", + "sub_path": "filament/QIDI ABS Odorless @0.2 nozzle.json" + }, + { + "name": "QIDI ABS Odorless @0.6 nozzle", + "sub_path": "filament/QIDI ABS Odorless @0.6 nozzle.json" + }, + { + "name": "QIDI ABS Odorless @0.8 nozzle", + "sub_path": "filament/QIDI ABS Odorless @0.8 nozzle.json" }, { "name": "QIDI ABS Odorless @Qidi Q1 Pro 0.2 nozzle", @@ -837,36 +1033,32 @@ "sub_path": "filament/QIDI ABS Odorless @Qidi Q1 Pro 0.8 nozzle.json" }, { - "name": "QIDI ABS Odorless @0.2 nozzle", - "sub_path": "filament/QIDI ABS Odorless @0.2 nozzle.json" + "name": "QIDI ABS Odorless @Qidi X-Plus 4 0.2 nozzle", + "sub_path": "filament/QIDI ABS Odorless @Qidi X-Plus 4 0.2 nozzle.json" }, { - "name": "QIDI ABS Odorless @0.6 nozzle", - "sub_path": "filament/QIDI ABS Odorless @0.6 nozzle.json" + "name": "QIDI ABS Odorless @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/QIDI ABS Odorless @Qidi X-Plus 4 0.4 nozzle.json" }, { - "name": "QIDI ABS Odorless @0.8 nozzle", - "sub_path": "filament/QIDI ABS Odorless @0.8 nozzle.json" + "name": "QIDI ABS Odorless @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/QIDI ABS Odorless @Qidi X-Plus 4 0.6 nozzle.json" }, { - "name": "QIDI ABS Rapido", - "sub_path": "filament/QIDI ABS Rapido.json" + "name": "QIDI ABS Odorless @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/QIDI ABS Odorless @Qidi X-Plus 4 0.8 nozzle.json" }, { - "name": "QIDI ABS Rapido @Qidi X-Plus 4 0.2 nozzle", - "sub_path": "filament/QIDI ABS Rapido @Qidi X-Plus 4 0.2 nozzle.json" + "name": "QIDI ABS Rapido 0.2 nozzle", + "sub_path": "filament/QIDI ABS Rapido 0.2 nozzle.json" }, { - "name": "QIDI ABS Rapido @Qidi X-Plus 4 0.4 nozzle", - "sub_path": "filament/QIDI ABS Rapido @Qidi X-Plus 4 0.4 nozzle.json" + "name": "QIDI ABS Rapido 0.6 nozzle", + "sub_path": "filament/QIDI ABS Rapido 0.6 nozzle.json" }, { - "name": "QIDI ABS Rapido @Qidi X-Plus 4 0.6 nozzle", - "sub_path": "filament/QIDI ABS Rapido @Qidi X-Plus 4 0.6 nozzle.json" - }, - { - "name": "QIDI ABS Rapido @Qidi X-Plus 4 0.8 nozzle", - "sub_path": "filament/QIDI ABS Rapido @Qidi X-Plus 4 0.8 nozzle.json" + "name": "QIDI ABS Rapido 0.8 nozzle", + "sub_path": "filament/QIDI ABS Rapido 0.8 nozzle.json" }, { "name": "QIDI ABS Rapido @Qidi Q1 Pro 0.2 nozzle", @@ -885,640 +1077,20 @@ "sub_path": "filament/QIDI ABS Rapido @Qidi Q1 Pro 0.8 nozzle.json" }, { - "name": "QIDI ABS Rapido 0.2 nozzle", - "sub_path": "filament/QIDI ABS Rapido 0.2 nozzle.json" + "name": "QIDI ABS Rapido @Qidi X-Plus 4 0.2 nozzle", + "sub_path": "filament/QIDI ABS Rapido @Qidi X-Plus 4 0.2 nozzle.json" }, { - "name": "QIDI ABS Rapido 0.6 nozzle", - "sub_path": "filament/QIDI ABS Rapido 0.6 nozzle.json" + "name": "QIDI ABS Rapido @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/QIDI ABS Rapido @Qidi X-Plus 4 0.4 nozzle.json" }, { - "name": "QIDI ABS Rapido 0.8 nozzle", - "sub_path": "filament/QIDI ABS Rapido 0.8 nozzle.json" + "name": "QIDI ABS Rapido @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/QIDI ABS Rapido @Qidi X-Plus 4 0.6 nozzle.json" }, { - "name": "QIDI ABS-GF25", - "sub_path": "filament/QIDI ABS-GF25.json" - }, - { - "name": "QIDI ABS-GF25 @Qidi X-Plus 4 0.4 nozzle", - "sub_path": "filament/QIDI ABS-GF25 @Qidi X-Plus 4 0.4 nozzle.json" - }, - { - "name": "QIDI ABS-GF25 @Qidi X-Plus 4 0.6 nozzle", - "sub_path": "filament/QIDI ABS-GF25 @Qidi X-Plus 4 0.6 nozzle.json" - }, - { - "name": "QIDI ABS-GF25 @Qidi X-Plus 4 0.8 nozzle", - "sub_path": "filament/QIDI ABS-GF25 @Qidi X-Plus 4 0.8 nozzle.json" - }, - { - "name": "QIDI ABS-GF25 @Qidi Q1 Pro 0.4 nozzle", - "sub_path": "filament/QIDI ABS-GF25 @Qidi Q1 Pro 0.4 nozzle.json" - }, - { - "name": "QIDI ABS-GF25 @Qidi Q1 Pro 0.6 nozzle", - "sub_path": "filament/QIDI ABS-GF25 @Qidi Q1 Pro 0.6 nozzle.json" - }, - { - "name": "QIDI ABS-GF25 @Qidi Q1 Pro 0.8 nozzle", - "sub_path": "filament/QIDI ABS-GF25 @Qidi Q1 Pro 0.8 nozzle.json" - }, - { - "name": "QIDI ASA", - "sub_path": "filament/QIDI ASA.json" - }, - { - "name": "QIDI ASA @Qidi X-Plus 4 0.2 nozzle", - "sub_path": "filament/QIDI ASA @Qidi X-Plus 4 0.2 nozzle.json" - }, - { - "name": "QIDI ASA @Qidi X-Plus 4 0.4 nozzle", - "sub_path": "filament/QIDI ASA @Qidi X-Plus 4 0.4 nozzle.json" - }, - { - "name": "QIDI ASA @Qidi X-Plus 4 0.6 nozzle", - "sub_path": "filament/QIDI ASA @Qidi X-Plus 4 0.6 nozzle.json" - }, - { - "name": "QIDI ASA @Qidi X-Plus 4 0.8 nozzle", - "sub_path": "filament/QIDI ASA @Qidi X-Plus 4 0.8 nozzle.json" - }, - { - "name": "QIDI ASA @Qidi Q1 Pro 0.2 nozzle", - "sub_path": "filament/QIDI ASA @Qidi Q1 Pro 0.2 nozzle.json" - }, - { - "name": "QIDI ASA @Qidi Q1 Pro 0.4 nozzle", - "sub_path": "filament/QIDI ASA @Qidi Q1 Pro 0.4 nozzle.json" - }, - { - "name": "QIDI ASA @Qidi Q1 Pro 0.6 nozzle", - "sub_path": "filament/QIDI ASA @Qidi Q1 Pro 0.6 nozzle.json" - }, - { - "name": "QIDI ASA @Qidi Q1 Pro 0.8 nozzle", - "sub_path": "filament/QIDI ASA @Qidi Q1 Pro 0.8 nozzle.json" - }, - { - "name": "QIDI ASA @Qidi X-Max 3 0.2 nozzle", - "sub_path": "filament/QIDI ASA @Qidi X-Max 3 0.2 nozzle.json" - }, - { - "name": "QIDI ASA @Qidi X-Plus 3 0.2 nozzle", - "sub_path": "filament/QIDI ASA @Qidi X-Plus 3 0.2 nozzle.json" - }, - { - "name": "QIDI ASA @Qidi X-Smart 3 0.2 nozzle", - "sub_path": "filament/QIDI ASA @Qidi X-Smart 3 0.2 nozzle.json" - }, - { - "name": "Qidi ASA-Aero", - "sub_path": "filament/Qidi ASA-Aero.json" - }, - { - "name": "Qidi ASA-Aero @Qidi X-Plus 4 0.4 nozzle", - "sub_path": "filament/Qidi ASA-Aero @Qidi X-Plus 4 0.4 nozzle.json" - }, - { - "name": "Qidi ASA-Aero @Qidi Q1 Pro 0.4 nozzle", - "sub_path": "filament/Qidi ASA-Aero @Qidi Q1 Pro 0.4 nozzle.json" - }, - { - "name": "QIDI PA12-CF", - "sub_path": "filament/QIDI PA12-CF.json" - }, - { - "name": "QIDI PA12-CF @Qidi X-Plus 4 0.4 nozzle", - "sub_path": "filament/QIDI PA12-CF @Qidi X-Plus 4 0.4 nozzle.json" - }, - { - "name": "QIDI PA12-CF @Qidi X-Plus 4 0.6 nozzle", - "sub_path": "filament/QIDI PA12-CF @Qidi X-Plus 4 0.6 nozzle.json" - }, - { - "name": "QIDI PA12-CF @Qidi X-Plus 4 0.8 nozzle", - "sub_path": "filament/QIDI PA12-CF @Qidi X-Plus 4 0.8 nozzle.json" - }, - { - "name": "QIDI PA12-CF @Qidi Q1 Pro 0.4 nozzle", - "sub_path": "filament/QIDI PA12-CF @Qidi Q1 Pro 0.4 nozzle.json" - }, - { - "name": "QIDI PA12-CF @Qidi Q1 Pro 0.6 nozzle", - "sub_path": "filament/QIDI PA12-CF @Qidi Q1 Pro 0.6 nozzle.json" - }, - { - "name": "QIDI PA12-CF @Qidi Q1 Pro 0.8 nozzle", - "sub_path": "filament/QIDI PA12-CF @Qidi Q1 Pro 0.8 nozzle.json" - }, - { - "name": "QIDI PAHT-CF", - "sub_path": "filament/QIDI PAHT-CF.json" - }, - { - "name": "QIDI PAHT-CF @Qidi X-Plus 4 0.4 nozzle", - "sub_path": "filament/QIDI PAHT-CF @Qidi X-Plus 4 0.4 nozzle.json" - }, - { - "name": "QIDI PAHT-CF @Qidi X-Plus 4 0.6 nozzle", - "sub_path": "filament/QIDI PAHT-CF @Qidi X-Plus 4 0.6 nozzle.json" - }, - { - "name": "QIDI PAHT-CF @Qidi X-Plus 4 0.8 nozzle", - "sub_path": "filament/QIDI PAHT-CF @Qidi X-Plus 4 0.8 nozzle.json" - }, - { - "name": "QIDI PAHT-CF @Qidi Q1 Pro 0.4 nozzle", - "sub_path": "filament/QIDI PAHT-CF @Qidi Q1 Pro 0.4 nozzle.json" - }, - { - "name": "QIDI PAHT-CF @Qidi Q1 Pro 0.6 nozzle", - "sub_path": "filament/QIDI PAHT-CF @Qidi Q1 Pro 0.6 nozzle.json" - }, - { - "name": "QIDI PAHT-CF @Qidi Q1 Pro 0.8 nozzle", - "sub_path": "filament/QIDI PAHT-CF @Qidi Q1 Pro 0.8 nozzle.json" - }, - { - "name": "Qidi PC-ABS-FR", - "sub_path": "filament/Qidi PC-ABS-FR.json" - }, - { - "name": "Qidi PC-ABS-FR @Qidi X-Plus 4 0.4 nozzle", - "sub_path": "filament/Qidi PC-ABS-FR @Qidi X-Plus 4 0.4 nozzle.json" - }, - { - "name": "Qidi PC-ABS-FR @Qidi X-Plus 4 0.6 nozzle", - "sub_path": "filament/Qidi PC-ABS-FR @Qidi X-Plus 4 0.6 nozzle.json" - }, - { - "name": "Qidi PC-ABS-FR @Qidi X-Plus 4 0.8 nozzle", - "sub_path": "filament/Qidi PC-ABS-FR @Qidi X-Plus 4 0.8 nozzle.json" - }, - { - "name": "Qidi PC-ABS-FR @Qidi Q1 Pro 0.4 nozzle", - "sub_path": "filament/Qidi PC-ABS-FR @Qidi Q1 Pro 0.4 nozzle.json" - }, - { - "name": "Qidi PC-ABS-FR @Qidi Q1 Pro 0.6 nozzle", - "sub_path": "filament/Qidi PC-ABS-FR @Qidi Q1 Pro 0.6 nozzle.json" - }, - { - "name": "Qidi PC-ABS-FR @Qidi Q1 Pro 0.8 nozzle", - "sub_path": "filament/Qidi PC-ABS-FR @Qidi Q1 Pro 0.8 nozzle.json" - }, - { - "name": "QIDI PET-CF", - "sub_path": "filament/QIDI PET-CF.json" - }, - { - "name": "QIDI PET-CF @Qidi X-Plus 4 0.4 nozzle", - "sub_path": "filament/QIDI PET-CF @Qidi X-Plus 4 0.4 nozzle.json" - }, - { - "name": "QIDI PET-CF @Qidi X-Plus 4 0.6 nozzle", - "sub_path": "filament/QIDI PET-CF @Qidi X-Plus 4 0.6 nozzle.json" - }, - { - "name": "QIDI PET-CF @Qidi X-Plus 4 0.8 nozzle", - "sub_path": "filament/QIDI PET-CF @Qidi X-Plus 4 0.8 nozzle.json" - }, - { - "name": "QIDI PET-CF @Qidi Q1 Pro 0.4 nozzle", - "sub_path": "filament/QIDI PET-CF @Qidi Q1 Pro 0.4 nozzle.json" - }, - { - "name": "QIDI PET-CF @Qidi Q1 Pro 0.6 nozzle", - "sub_path": "filament/QIDI PET-CF @Qidi Q1 Pro 0.6 nozzle.json" - }, - { - "name": "QIDI PET-CF @Qidi Q1 Pro 0.8 nozzle", - "sub_path": "filament/QIDI PET-CF @Qidi Q1 Pro 0.8 nozzle.json" - }, - { - "name": "QIDI PETG Tough", - "sub_path": "filament/QIDI PETG Tough.json" - }, - { - "name": "QIDI PETG Tough @Qidi X-Plus 4 0.2 nozzle", - "sub_path": "filament/QIDI PETG Tough @Qidi X-Plus 4 0.2 nozzle.json" - }, - { - "name": "QIDI PETG Tough @Qidi X-Plus 4 0.4 nozzle", - "sub_path": "filament/QIDI PETG Tough @Qidi X-Plus 4 0.4 nozzle.json" - }, - { - "name": "QIDI PETG Tough @Qidi X-Plus 4 0.6 nozzle", - "sub_path": "filament/QIDI PETG Tough @Qidi X-Plus 4 0.6 nozzle.json" - }, - { - "name": "QIDI PETG Tough @Qidi X-Plus 4 0.8 nozzle", - "sub_path": "filament/QIDI PETG Tough @Qidi X-Plus 4 0.8 nozzle.json" - }, - { - "name": "QIDI PETG Tough @Qidi Q1 Pro 0.2 nozzle", - "sub_path": "filament/QIDI PETG Tough @Qidi Q1 Pro 0.2 nozzle.json" - }, - { - "name": "QIDI PETG Tough @Qidi Q1 Pro 0.4 nozzle", - "sub_path": "filament/QIDI PETG Tough @Qidi Q1 Pro 0.4 nozzle.json" - }, - { - "name": "QIDI PETG Tough @Qidi Q1 Pro 0.6 nozzle", - "sub_path": "filament/QIDI PETG Tough @Qidi Q1 Pro 0.6 nozzle.json" - }, - { - "name": "QIDI PETG Tough @Qidi Q1 Pro 0.8 nozzle", - "sub_path": "filament/QIDI PETG Tough @Qidi Q1 Pro 0.8 nozzle.json" - }, - { - "name": "QIDI PETG Tough 0.2 nozzle", - "sub_path": "filament/QIDI PETG Tough 0.2 nozzle.json" - }, - { - "name": "QIDI PETG Tough 0.6 nozzle", - "sub_path": "filament/QIDI PETG Tough 0.6 nozzle.json" - }, - { - "name": "QIDI PETG Tough 0.8 nozzle", - "sub_path": "filament/QIDI PETG Tough 0.8 nozzle.json" - }, - { - "name": "QIDI PLA Rapido", - "sub_path": "filament/QIDI PLA Rapido.json" - }, - { - "name": "QIDI PLA Rapido @Qidi X-Plus 4 0.2 nozzle", - "sub_path": "filament/QIDI PLA Rapido @Qidi X-Plus 4 0.2 nozzle.json" - }, - { - "name": "QIDI PLA Rapido @Qidi X-Plus 4 0.4 nozzle", - "sub_path": "filament/QIDI PLA Rapido @Qidi X-Plus 4 0.4 nozzle.json" - }, - { - "name": "QIDI PLA Rapido @Qidi X-Plus 4 0.6 nozzle", - "sub_path": "filament/QIDI PLA Rapido @Qidi X-Plus 4 0.6 nozzle.json" - }, - { - "name": "QIDI PLA Rapido @Qidi X-Plus 4 0.8 nozzle", - "sub_path": "filament/QIDI PLA Rapido @Qidi X-Plus 4 0.8 nozzle.json" - }, - { - "name": "QIDI PLA Rapido @Qidi Q1 Pro 0.2 nozzle", - "sub_path": "filament/QIDI PLA Rapido @Qidi Q1 Pro 0.2 nozzle.json" - }, - { - "name": "QIDI PLA Rapido @Qidi Q1 Pro 0.4 nozzle", - "sub_path": "filament/QIDI PLA Rapido @Qidi Q1 Pro 0.4 nozzle.json" - }, - { - "name": "QIDI PLA Rapido @Qidi Q1 Pro 0.6 nozzle", - "sub_path": "filament/QIDI PLA Rapido @Qidi Q1 Pro 0.6 nozzle.json" - }, - { - "name": "QIDI PLA Rapido @Qidi Q1 Pro 0.8 nozzle", - "sub_path": "filament/QIDI PLA Rapido @Qidi Q1 Pro 0.8 nozzle.json" - }, - { - "name": "QIDI PLA Rapido 0.2 nozzle", - "sub_path": "filament/QIDI PLA Rapido 0.2 nozzle.json" - }, - { - "name": "QIDI PLA Rapido @0.6 nozzle", - "sub_path": "filament/QIDI PLA Rapido @0.6 nozzle.json" - }, - { - "name": "QIDI PLA Rapido 0.8 nozzle", - "sub_path": "filament/QIDI PLA Rapido 0.8 nozzle.json" - }, - { - "name": "QIDI PLA Rapido Matte", - "sub_path": "filament/QIDI PLA Rapido Matte.json" - }, - { - "name": "QIDI PLA Rapido Matte @Qidi X-Plus 4 0.2 nozzle", - "sub_path": "filament/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.2 nozzle.json" - }, - { - "name": "QIDI PLA Rapido Matte @Qidi X-Plus 4 0.4 nozzle", - "sub_path": "filament/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.4 nozzle.json" - }, - { - "name": "QIDI PLA Rapido Matte @Qidi X-Plus 4 0.6 nozzle", - "sub_path": "filament/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.6 nozzle.json" - }, - { - "name": "QIDI PLA Rapido Matte @Qidi X-Plus 4 0.8 nozzle", - "sub_path": "filament/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.8 nozzle.json" - }, - { - "name": "QIDI PLA Rapido Matte @Qidi Q1 Pro 0.2 nozzle", - "sub_path": "filament/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.2 nozzle.json" - }, - { - "name": "QIDI PLA Rapido Matte @Qidi Q1 Pro 0.4 nozzle", - "sub_path": "filament/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.4 nozzle.json" - }, - { - "name": "QIDI PLA Rapido Matte @Qidi Q1 Pro 0.6 nozzle", - "sub_path": "filament/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.6 nozzle.json" - }, - { - "name": "QIDI PLA Rapido Matte @Qidi Q1 Pro 0.8 nozzle", - "sub_path": "filament/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.8 nozzle.json" - }, - { - "name": "QIDI PLA Rapido Matte @0.2 nozzle", - "sub_path": "filament/QIDI PLA Rapido Matte @0.2 nozzle.json" - }, - { - "name": "QIDI PLA Rapido Matte @0.6 nozzle", - "sub_path": "filament/QIDI PLA Rapido Matte @0.6 nozzle.json" - }, - { - "name": "QIDI PLA Rapido Matte @0.8 nozzle", - "sub_path": "filament/QIDI PLA Rapido Matte @0.8 nozzle.json" - }, - { - "name": "Qidi PLA-CF", - "sub_path": "filament/Qidi PLA-CF.json" - }, - { - "name": "QIDI PLA-CF @Qidi X-Plus 4 0.4 nozzle", - "sub_path": "filament/QIDI PLA-CF @Qidi X-Plus 4 0.4 nozzle.json" - }, - { - "name": "QIDI PLA-CF @Qidi X-Plus 4 0.6 nozzle", - "sub_path": "filament/QIDI PLA-CF @Qidi X-Plus 4 0.6 nozzle.json" - }, - { - "name": "QIDI PLA-CF @Qidi X-Plus 4 0.8 nozzle", - "sub_path": "filament/QIDI PLA-CF @Qidi X-Plus 4 0.8 nozzle.json" - }, - { - "name": "QIDI PLA-CF @Qidi Q1 Pro 0.4 nozzle", - "sub_path": "filament/QIDI PLA-CF @Qidi Q1 Pro 0.4 nozzle.json" - }, - { - "name": "QIDI PLA-CF @Qidi Q1 Pro 0.6 nozzle", - "sub_path": "filament/QIDI PLA-CF @Qidi Q1 Pro 0.6 nozzle.json" - }, - { - "name": "QIDI PLA-CF @Qidi Q1 Pro 0.8 nozzle", - "sub_path": "filament/QIDI PLA-CF @Qidi Q1 Pro 0.8 nozzle.json" - }, - { - "name": "QIDI PLA-CF @0.6 nozzle", - "sub_path": "filament/QIDI PLA-CF @0.6 nozzle.json" - }, - { - "name": "QIDI PLA-CF @0.8 nozzle", - "sub_path": "filament/QIDI PLA-CF @0.8 nozzle.json" - }, - { - "name": "QIDI PA-Ultra", - "sub_path": "filament/QIDI PA-Ultra.json" - }, - { - "name": "QIDI PA-Ultra @Qidi X-Plus 4 0.4 nozzle", - "sub_path": "filament/QIDI PA-Ultra @Qidi X-Plus 4 0.4 nozzle.json" - }, - { - "name": "QIDI PA-Ultra @Qidi X-Plus 4 0.6 nozzle", - "sub_path": "filament/QIDI PA-Ultra @Qidi X-Plus 4 0.6 nozzle.json" - }, - { - "name": "QIDI PA-Ultra @Qidi X-Plus 4 0.8 nozzle", - "sub_path": "filament/QIDI PA-Ultra @Qidi X-Plus 4 0.8 nozzle.json" - }, - { - "name": "QIDI PA-Ultra @Qidi Q1 Pro 0.4 nozzle", - "sub_path": "filament/QIDI PA-Ultra @Qidi Q1 Pro 0.4 nozzle.json" - }, - { - "name": "QIDI PA-Ultra @Qidi Q1 Pro 0.6 nozzle", - "sub_path": "filament/QIDI PA-Ultra @Qidi Q1 Pro 0.6 nozzle.json" - }, - { - "name": "QIDI PA-Ultra @Qidi Q1 Pro 0.8 nozzle", - "sub_path": "filament/QIDI PA-Ultra @Qidi Q1 Pro 0.8 nozzle.json" - }, - { - "name": "QIDI ABS-GF10", - "sub_path": "filament/QIDI ABS-GF10.json" - }, - { - "name": "QIDI ABS-GF10 @Qidi X-Plus 4 0.4 nozzle", - "sub_path": "filament/QIDI ABS-GF10 @Qidi X-Plus 4 0.4 nozzle.json" - }, - { - "name": "QIDI ABS-GF10 @Qidi X-Plus 4 0.6 nozzle", - "sub_path": "filament/QIDI ABS-GF10 @Qidi X-Plus 4 0.6 nozzle.json" - }, - { - "name": "QIDI ABS-GF10 @Qidi X-Plus 4 0.8 nozzle", - "sub_path": "filament/QIDI ABS-GF10 @Qidi X-Plus 4 0.8 nozzle.json" - }, - { - "name": "QIDI ABS-GF10 @Qidi Q1 Pro 0.4 nozzle", - "sub_path": "filament/QIDI ABS-GF10 @Qidi Q1 Pro 0.4 nozzle.json" - }, - { - "name": "QIDI ABS-GF10 @Qidi Q1 Pro 0.6 nozzle", - "sub_path": "filament/QIDI ABS-GF10 @Qidi Q1 Pro 0.6 nozzle.json" - }, - { - "name": "QIDI ABS-GF10 @Qidi Q1 Pro 0.8 nozzle", - "sub_path": "filament/QIDI ABS-GF10 @Qidi Q1 Pro 0.8 nozzle.json" - }, - { - "name": "Tinmorry PETG-ECO", - "sub_path": "filament/Tinmorry PETG-ECO.json" - }, - { - "name": "Qidi Generic TPU", - "sub_path": "filament/Qidi Generic TPU.json" - }, - { - "name": "Qidi Generic TPU @Qidi X-Plus 4 0.4 nozzle", - "sub_path": "filament/Qidi Generic TPU @Qidi X-Plus 4 0.4 nozzle.json" - }, - { - "name": "Qidi Generic TPU @Qidi Q1 Pro 0.4 nozzle", - "sub_path": "filament/Qidi Generic TPU @Qidi Q1 Pro 0.4 nozzle.json" - }, - { - "name": "Qidi Generic ASA", - "sub_path": "filament/Qidi Generic ASA.json" - }, - { - "name": "Qidi Generic ASA @Qidi X-Plus 4 0.2 nozzle", - "sub_path": "filament/Qidi Generic ASA @Qidi X-Plus 4 0.2 nozzle.json" - }, - { - "name": "Qidi Generic ASA @Qidi X-Plus 4 0.4 nozzle", - "sub_path": "filament/Qidi Generic ASA @Qidi X-Plus 4 0.4 nozzle.json" - }, - { - "name": "Qidi Generic ASA @Qidi X-Plus 4 0.6 nozzle", - "sub_path": "filament/Qidi Generic ASA @Qidi X-Plus 4 0.6 nozzle.json" - }, - { - "name": "Qidi Generic ASA @Qidi X-Plus 4 0.8 nozzle", - "sub_path": "filament/Qidi Generic ASA @Qidi X-Plus 4 0.8 nozzle.json" - }, - { - "name": "Qidi Generic ASA @Qidi Q1 Pro 0.2 nozzle", - "sub_path": "filament/Qidi Generic ASA @Qidi Q1 Pro 0.2 nozzle.json" - }, - { - "name": "Qidi Generic ASA @Qidi Q1 Pro 0.4 nozzle", - "sub_path": "filament/Qidi Generic ASA @Qidi Q1 Pro 0.4 nozzle.json" - }, - { - "name": "Qidi Generic ASA @Qidi Q1 Pro 0.6 nozzle", - "sub_path": "filament/Qidi Generic ASA @Qidi Q1 Pro 0.6 nozzle.json" - }, - { - "name": "Qidi Generic ASA @Qidi Q1 Pro 0.8 nozzle", - "sub_path": "filament/Qidi Generic ASA @Qidi Q1 Pro 0.8 nozzle.json" - }, - { - "name": "Qidi Generic ASA @Qidi X-Max 3 0.2 nozzle", - "sub_path": "filament/Qidi Generic ASA @Qidi X-Max 3 0.2 nozzle.json" - }, - { - "name": "Qidi Generic ASA @Qidi X-Plus 3 0.2 nozzle", - "sub_path": "filament/Qidi Generic ASA @Qidi X-Plus 3 0.2 nozzle.json" - }, - { - "name": "Qidi Generic ASA @Qidi X-Smart 3 0.2 nozzle", - "sub_path": "filament/Qidi Generic ASA @Qidi X-Smart 3 0.2 nozzle.json" - }, - { - "name": "Qidi Generic PA", - "sub_path": "filament/Qidi Generic PA.json" - }, - { - "name": "Qidi Generic PA-CF", - "sub_path": "filament/Qidi Generic PA-CF.json" - }, - { - "name": "Qidi Generic PC", - "sub_path": "filament/Qidi Generic PC.json" - }, - { - "name": "Qidi Generic PETG-CF", - "sub_path": "filament/Qidi Generic PETG-CF.json" - }, - { - "name": "Qidi Generic PLA Silk", - "sub_path": "filament/Qidi Generic PLA Silk.json" - }, - { - "name": "Qidi Generic PLA Silk @Qidi X-Plus 4 0.4 nozzle", - "sub_path": "filament/Qidi Generic PLA Silk @Qidi X-Plus 4 0.4 nozzle.json" - }, - { - "name": "Qidi Generic PLA Silk @Qidi Q1 Pro 0.4 nozzle", - "sub_path": "filament/Qidi Generic PLA Silk @Qidi Q1 Pro 0.4 nozzle.json" - }, - { - "name": "Qidi Generic PVA", - "sub_path": "filament/Qidi Generic PVA.json" - }, - { - "name": "QIDI ABS-GF", - "sub_path": "filament/QIDI ABS-GF.json" - }, - { - "name": "QIDI ABS-GF @Qidi X-Plus 4 0.4 nozzle", - "sub_path": "filament/QIDI ABS-GF @Qidi X-Plus 4 0.4 nozzle.json" - }, - { - "name": "QIDI ABS-GF @Qidi X-Plus 4 0.6 nozzle", - "sub_path": "filament/QIDI ABS-GF @Qidi X-Plus 4 0.6 nozzle.json" - }, - { - "name": "QIDI ABS-GF @Qidi X-Plus 4 0.8 nozzle", - "sub_path": "filament/QIDI ABS-GF @Qidi X-Plus 4 0.8 nozzle.json" - }, - { - "name": "QIDI ABS-GF @Qidi Q1 Pro 0.4 nozzle", - "sub_path": "filament/QIDI ABS-GF @Qidi Q1 Pro 0.4 nozzle.json" - }, - { - "name": "QIDI ABS-GF @Qidi Q1 Pro 0.6 nozzle", - "sub_path": "filament/QIDI ABS-GF @Qidi Q1 Pro 0.6 nozzle.json" - }, - { - "name": "QIDI ABS-GF @Qidi Q1 Pro 0.8 nozzle", - "sub_path": "filament/QIDI ABS-GF @Qidi Q1 Pro 0.8 nozzle.json" - }, - { - "name": "Qidi Generic PLA-CF", - "sub_path": "filament/Qidi Generic PLA-CF.json" - }, - { - "name": "Qidi TPU 95A-HF", - "sub_path": "filament/Qidi TPU 95A-HF.json" - }, - { - "name": "Qidi TPU 95A-HF @Qidi X-Plus 4 0.4 nozzle", - "sub_path": "filament/Qidi TPU 95A-HF @Qidi X-Plus 4 0.4 nozzle.json" - }, - { - "name": "Qidi TPU 95A-HF @Qidi X-Plus 4 0.8 nozzle", - "sub_path": "filament/Qidi TPU 95A-HF @Qidi X-Plus 4 0.8 nozzle.json" - }, - { - "name": "Qidi TPU 95A-HF @Qidi Q1 Pro 0.4 nozzle", - "sub_path": "filament/Qidi TPU 95A-HF @Qidi Q1 Pro 0.4 nozzle.json" - }, - { - "name": "Qidi TPU 95A-HF @Qidi Q1 Pro 0.8 nozzle", - "sub_path": "filament/Qidi TPU 95A-HF @Qidi Q1 Pro 0.8 nozzle.json" - }, - { - "name": "QIDI PPS-CF", - "sub_path": "filament/QIDI PPS-CF.json" - }, - { - "name": "QIDI PPS-CF @0.6 nozzle", - "sub_path": "filament/QIDI PPS-CF @0.6 nozzle.json" - }, - { - "name": "QIDI PPS-CF @0.8 nozzle", - "sub_path": "filament/QIDI PPS-CF @0.8 nozzle.json" - }, - { - "name": "QIDI PPS-CF @Qidi X-Plus 4 0.4 nozzle", - "sub_path": "filament/QIDI PPS-CF @Qidi X-Plus 4 0.4 nozzle.json" - }, - { - "name": "QIDI PPS-CF @Qidi X-Plus 4 0.6 nozzle", - "sub_path": "filament/QIDI PPS-CF @Qidi X-Plus 4 0.6 nozzle.json" - }, - { - "name": "QIDI PPS-CF @Qidi X-Plus 4 0.8 nozzle", - "sub_path": "filament/QIDI PPS-CF @Qidi X-Plus 4 0.8 nozzle.json" - }, - { - "name": "QIDI PPS-CF @Qidi Q1 Pro 0.4 nozzle", - "sub_path": "filament/QIDI PPS-CF @Qidi Q1 Pro 0.4 nozzle.json" - }, - { - "name": "QIDI PPS-CF @Qidi Q1 Pro 0.6 nozzle", - "sub_path": "filament/QIDI PPS-CF @Qidi Q1 Pro 0.6 nozzle.json" - }, - { - "name": "QIDI PPS-CF @Qidi Q1 Pro 0.8 nozzle", - "sub_path": "filament/QIDI PPS-CF @Qidi Q1 Pro 0.8 nozzle.json" - }, - { - "name": "QIDI ABS Rapido Metal", - "sub_path": "filament/QIDI ABS Rapido Metal.json" + "name": "QIDI ABS Rapido @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/QIDI ABS Rapido @Qidi X-Plus 4 0.8 nozzle.json" }, { "name": "QIDI ABS Rapido Metal @0.2 nozzle", @@ -1565,24 +1137,948 @@ "sub_path": "filament/QIDI ABS Rapido Metal @Qidi X-Plus 4 0.8 nozzle.json" }, { - "name": "QIDI PLA Rapido Metal", - "sub_path": "filament/QIDI PLA Rapido Metal.json" + "name": "QIDI ABS-GF @Qidi Q1 Pro 0.4 nozzle", + "sub_path": "filament/QIDI ABS-GF @Qidi Q1 Pro 0.4 nozzle.json" }, { - "name": "QIDI PLA Rapido Metal @Qidi X-Plus 4 0.2 nozzle", - "sub_path": "filament/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.2 nozzle.json" + "name": "QIDI ABS-GF @Qidi Q1 Pro 0.6 nozzle", + "sub_path": "filament/QIDI ABS-GF @Qidi Q1 Pro 0.6 nozzle.json" }, { - "name": "QIDI PLA Rapido Metal @Qidi X-Plus 4 0.4 nozzle", - "sub_path": "filament/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.4 nozzle.json" + "name": "QIDI ABS-GF @Qidi Q1 Pro 0.8 nozzle", + "sub_path": "filament/QIDI ABS-GF @Qidi Q1 Pro 0.8 nozzle.json" }, { - "name": "QIDI PLA Rapido Metal @Qidi X-Plus 4 0.6 nozzle", - "sub_path": "filament/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.6 nozzle.json" + "name": "QIDI ABS-GF @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/QIDI ABS-GF @Qidi X-Plus 4 0.4 nozzle.json" }, { - "name": "QIDI PLA Rapido Metal @Qidi X-Plus 4 0.8 nozzle", - "sub_path": "filament/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.8 nozzle.json" + "name": "QIDI ABS-GF @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/QIDI ABS-GF @Qidi X-Plus 4 0.6 nozzle.json" + }, + { + "name": "QIDI ABS-GF @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/QIDI ABS-GF @Qidi X-Plus 4 0.8 nozzle.json" + }, + { + "name": "QIDI ABS-GF10 @Qidi Q1 Pro 0.4 nozzle", + "sub_path": "filament/QIDI ABS-GF10 @Qidi Q1 Pro 0.4 nozzle.json" + }, + { + "name": "QIDI ABS-GF10 @Qidi Q1 Pro 0.6 nozzle", + "sub_path": "filament/QIDI ABS-GF10 @Qidi Q1 Pro 0.6 nozzle.json" + }, + { + "name": "QIDI ABS-GF10 @Qidi Q1 Pro 0.8 nozzle", + "sub_path": "filament/QIDI ABS-GF10 @Qidi Q1 Pro 0.8 nozzle.json" + }, + { + "name": "QIDI ABS-GF10 @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/QIDI ABS-GF10 @Qidi X-Plus 4 0.4 nozzle.json" + }, + { + "name": "QIDI ABS-GF10 @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/QIDI ABS-GF10 @Qidi X-Plus 4 0.6 nozzle.json" + }, + { + "name": "QIDI ABS-GF10 @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/QIDI ABS-GF10 @Qidi X-Plus 4 0.8 nozzle.json" + }, + { + "name": "QIDI ABS-GF25 @Qidi Q1 Pro 0.4 nozzle", + "sub_path": "filament/QIDI ABS-GF25 @Qidi Q1 Pro 0.4 nozzle.json" + }, + { + "name": "QIDI ABS-GF25 @Qidi Q1 Pro 0.6 nozzle", + "sub_path": "filament/QIDI ABS-GF25 @Qidi Q1 Pro 0.6 nozzle.json" + }, + { + "name": "QIDI ABS-GF25 @Qidi Q1 Pro 0.8 nozzle", + "sub_path": "filament/QIDI ABS-GF25 @Qidi Q1 Pro 0.8 nozzle.json" + }, + { + "name": "QIDI ABS-GF25 @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/QIDI ABS-GF25 @Qidi X-Plus 4 0.4 nozzle.json" + }, + { + "name": "QIDI ABS-GF25 @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/QIDI ABS-GF25 @Qidi X-Plus 4 0.6 nozzle.json" + }, + { + "name": "QIDI ABS-GF25 @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/QIDI ABS-GF25 @Qidi X-Plus 4 0.8 nozzle.json" + }, + { + "name": "Qidi Generic ABS @Qidi Q1 Pro 0.2 nozzle", + "sub_path": "filament/Qidi Generic ABS @Qidi Q1 Pro 0.2 nozzle.json" + }, + { + "name": "Qidi Generic ABS @Qidi Q1 Pro 0.4 nozzle", + "sub_path": "filament/Qidi Generic ABS @Qidi Q1 Pro 0.4 nozzle.json" + }, + { + "name": "Qidi Generic ABS @Qidi Q1 Pro 0.6 nozzle", + "sub_path": "filament/Qidi Generic ABS @Qidi Q1 Pro 0.6 nozzle.json" + }, + { + "name": "Qidi Generic ABS @Qidi Q1 Pro 0.8 nozzle", + "sub_path": "filament/Qidi Generic ABS @Qidi Q1 Pro 0.8 nozzle.json" + }, + { + "name": "Qidi Generic ABS @Qidi X-Max 3 0.2 nozzle", + "sub_path": "filament/Qidi Generic ABS @Qidi X-Max 3 0.2 nozzle.json" + }, + { + "name": "Qidi Generic ABS @Qidi X-Plus 3 0.2 nozzle", + "sub_path": "filament/Qidi Generic ABS @Qidi X-Plus 3 0.2 nozzle.json" + }, + { + "name": "Qidi Generic ABS @Qidi X-Plus 4 0.2 nozzle", + "sub_path": "filament/Qidi Generic ABS @Qidi X-Plus 4 0.2 nozzle.json" + }, + { + "name": "Qidi Generic ABS @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/Qidi Generic ABS @Qidi X-Plus 4 0.4 nozzle.json" + }, + { + "name": "Qidi Generic ABS @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/Qidi Generic ABS @Qidi X-Plus 4 0.6 nozzle.json" + }, + { + "name": "Qidi Generic ABS @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/Qidi Generic ABS @Qidi X-Plus 4 0.8 nozzle.json" + }, + { + "name": "Qidi Generic ABS @Qidi X-Smart 3 0.2 nozzle", + "sub_path": "filament/Qidi Generic ABS @Qidi X-Smart 3 0.2 nozzle.json" + }, + { + "name": "Qidi PC-ABS-FR @Qidi Q1 Pro 0.4 nozzle", + "sub_path": "filament/Qidi PC-ABS-FR @Qidi Q1 Pro 0.4 nozzle.json" + }, + { + "name": "Qidi PC-ABS-FR @Qidi Q1 Pro 0.6 nozzle", + "sub_path": "filament/Qidi PC-ABS-FR @Qidi Q1 Pro 0.6 nozzle.json" + }, + { + "name": "Qidi PC-ABS-FR @Qidi Q1 Pro 0.8 nozzle", + "sub_path": "filament/Qidi PC-ABS-FR @Qidi Q1 Pro 0.8 nozzle.json" + }, + { + "name": "Qidi PC-ABS-FR @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/Qidi PC-ABS-FR @Qidi X-Plus 4 0.4 nozzle.json" + }, + { + "name": "Qidi PC-ABS-FR @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/Qidi PC-ABS-FR @Qidi X-Plus 4 0.6 nozzle.json" + }, + { + "name": "Qidi PC-ABS-FR @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/Qidi PC-ABS-FR @Qidi X-Plus 4 0.8 nozzle.json" + }, + { + "name": "QIDI ASA @Qidi Q1 Pro 0.2 nozzle", + "sub_path": "filament/QIDI ASA @Qidi Q1 Pro 0.2 nozzle.json" + }, + { + "name": "QIDI ASA @Qidi Q1 Pro 0.4 nozzle", + "sub_path": "filament/QIDI ASA @Qidi Q1 Pro 0.4 nozzle.json" + }, + { + "name": "QIDI ASA @Qidi Q1 Pro 0.6 nozzle", + "sub_path": "filament/QIDI ASA @Qidi Q1 Pro 0.6 nozzle.json" + }, + { + "name": "QIDI ASA @Qidi Q1 Pro 0.8 nozzle", + "sub_path": "filament/QIDI ASA @Qidi Q1 Pro 0.8 nozzle.json" + }, + { + "name": "QIDI ASA @Qidi X-Max 3 0.2 nozzle", + "sub_path": "filament/QIDI ASA @Qidi X-Max 3 0.2 nozzle.json" + }, + { + "name": "QIDI ASA @Qidi X-Plus 3 0.2 nozzle", + "sub_path": "filament/QIDI ASA @Qidi X-Plus 3 0.2 nozzle.json" + }, + { + "name": "QIDI ASA @Qidi X-Plus 4 0.2 nozzle", + "sub_path": "filament/QIDI ASA @Qidi X-Plus 4 0.2 nozzle.json" + }, + { + "name": "QIDI ASA @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/QIDI ASA @Qidi X-Plus 4 0.4 nozzle.json" + }, + { + "name": "QIDI ASA @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/QIDI ASA @Qidi X-Plus 4 0.6 nozzle.json" + }, + { + "name": "QIDI ASA @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/QIDI ASA @Qidi X-Plus 4 0.8 nozzle.json" + }, + { + "name": "QIDI ASA @Qidi X-Smart 3 0.2 nozzle", + "sub_path": "filament/QIDI ASA @Qidi X-Smart 3 0.2 nozzle.json" + }, + { + "name": "Qidi ASA-Aero @Qidi Q1 Pro 0.4 nozzle", + "sub_path": "filament/Qidi ASA-Aero @Qidi Q1 Pro 0.4 nozzle.json" + }, + { + "name": "Qidi ASA-Aero @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/Qidi ASA-Aero @Qidi X-Plus 4 0.4 nozzle.json" + }, + { + "name": "Qidi Generic ASA @Qidi Q1 Pro 0.2 nozzle", + "sub_path": "filament/Qidi Generic ASA @Qidi Q1 Pro 0.2 nozzle.json" + }, + { + "name": "Qidi Generic ASA @Qidi Q1 Pro 0.4 nozzle", + "sub_path": "filament/Qidi Generic ASA @Qidi Q1 Pro 0.4 nozzle.json" + }, + { + "name": "Qidi Generic ASA @Qidi Q1 Pro 0.6 nozzle", + "sub_path": "filament/Qidi Generic ASA @Qidi Q1 Pro 0.6 nozzle.json" + }, + { + "name": "Qidi Generic ASA @Qidi Q1 Pro 0.8 nozzle", + "sub_path": "filament/Qidi Generic ASA @Qidi Q1 Pro 0.8 nozzle.json" + }, + { + "name": "Qidi Generic ASA @Qidi X-Max 3 0.2 nozzle", + "sub_path": "filament/Qidi Generic ASA @Qidi X-Max 3 0.2 nozzle.json" + }, + { + "name": "Qidi Generic ASA @Qidi X-Plus 3 0.2 nozzle", + "sub_path": "filament/Qidi Generic ASA @Qidi X-Plus 3 0.2 nozzle.json" + }, + { + "name": "Qidi Generic ASA @Qidi X-Plus 4 0.2 nozzle", + "sub_path": "filament/Qidi Generic ASA @Qidi X-Plus 4 0.2 nozzle.json" + }, + { + "name": "Qidi Generic ASA @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/Qidi Generic ASA @Qidi X-Plus 4 0.4 nozzle.json" + }, + { + "name": "Qidi Generic ASA @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/Qidi Generic ASA @Qidi X-Plus 4 0.6 nozzle.json" + }, + { + "name": "Qidi Generic ASA @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/Qidi Generic ASA @Qidi X-Plus 4 0.8 nozzle.json" + }, + { + "name": "Qidi Generic ASA @Qidi X-Smart 3 0.2 nozzle", + "sub_path": "filament/Qidi Generic ASA @Qidi X-Smart 3 0.2 nozzle.json" + }, + { + "name": "QIDI PA-Ultra @Qidi Q1 Pro 0.4 nozzle", + "sub_path": "filament/QIDI PA-Ultra @Qidi Q1 Pro 0.4 nozzle.json" + }, + { + "name": "QIDI PA-Ultra @Qidi Q1 Pro 0.6 nozzle", + "sub_path": "filament/QIDI PA-Ultra @Qidi Q1 Pro 0.6 nozzle.json" + }, + { + "name": "QIDI PA-Ultra @Qidi Q1 Pro 0.8 nozzle", + "sub_path": "filament/QIDI PA-Ultra @Qidi Q1 Pro 0.8 nozzle.json" + }, + { + "name": "QIDI PA-Ultra @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/QIDI PA-Ultra @Qidi X-Plus 4 0.4 nozzle.json" + }, + { + "name": "QIDI PA-Ultra @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/QIDI PA-Ultra @Qidi X-Plus 4 0.6 nozzle.json" + }, + { + "name": "QIDI PA-Ultra @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/QIDI PA-Ultra @Qidi X-Plus 4 0.8 nozzle.json" + }, + { + "name": "QIDI PA12-CF @Qidi Q1 Pro 0.4 nozzle", + "sub_path": "filament/QIDI PA12-CF @Qidi Q1 Pro 0.4 nozzle.json" + }, + { + "name": "QIDI PA12-CF @Qidi Q1 Pro 0.6 nozzle", + "sub_path": "filament/QIDI PA12-CF @Qidi Q1 Pro 0.6 nozzle.json" + }, + { + "name": "QIDI PA12-CF @Qidi Q1 Pro 0.8 nozzle", + "sub_path": "filament/QIDI PA12-CF @Qidi Q1 Pro 0.8 nozzle.json" + }, + { + "name": "QIDI PA12-CF @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/QIDI PA12-CF @Qidi X-Plus 4 0.4 nozzle.json" + }, + { + "name": "QIDI PA12-CF @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/QIDI PA12-CF @Qidi X-Plus 4 0.6 nozzle.json" + }, + { + "name": "QIDI PA12-CF @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/QIDI PA12-CF @Qidi X-Plus 4 0.8 nozzle.json" + }, + { + "name": "QIDI PAHT-CF @Qidi Q1 Pro 0.4 nozzle", + "sub_path": "filament/QIDI PAHT-CF @Qidi Q1 Pro 0.4 nozzle.json" + }, + { + "name": "QIDI PAHT-CF @Qidi Q1 Pro 0.6 nozzle", + "sub_path": "filament/QIDI PAHT-CF @Qidi Q1 Pro 0.6 nozzle.json" + }, + { + "name": "QIDI PAHT-CF @Qidi Q1 Pro 0.8 nozzle", + "sub_path": "filament/QIDI PAHT-CF @Qidi Q1 Pro 0.8 nozzle.json" + }, + { + "name": "QIDI PAHT-CF @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/QIDI PAHT-CF @Qidi X-Plus 4 0.4 nozzle.json" + }, + { + "name": "QIDI PAHT-CF @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/QIDI PAHT-CF @Qidi X-Plus 4 0.6 nozzle.json" + }, + { + "name": "QIDI PAHT-CF @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/QIDI PAHT-CF @Qidi X-Plus 4 0.8 nozzle.json" + }, + { + "name": "QIDI PAHT-GF @0.6 nozzle", + "sub_path": "filament/QIDI PAHT-GF @0.6 nozzle.json" + }, + { + "name": "QIDI PAHT-GF @0.8 nozzle", + "sub_path": "filament/QIDI PAHT-GF @0.8 nozzle.json" + }, + { + "name": "QIDI PAHT-GF @Qidi Q1 Pro 0.4 nozzle", + "sub_path": "filament/QIDI PAHT-GF @Qidi Q1 Pro 0.4 nozzle.json" + }, + { + "name": "QIDI PAHT-GF @Qidi Q1 Pro 0.6 nozzle", + "sub_path": "filament/QIDI PAHT-GF @Qidi Q1 Pro 0.6 nozzle.json" + }, + { + "name": "QIDI PAHT-GF @Qidi Q1 Pro 0.8 nozzle", + "sub_path": "filament/QIDI PAHT-GF @Qidi Q1 Pro 0.8 nozzle.json" + }, + { + "name": "QIDI PAHT-GF @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/QIDI PAHT-GF @Qidi X-Plus 4 0.4 nozzle.json" + }, + { + "name": "QIDI PAHT-GF @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/QIDI PAHT-GF @Qidi X-Plus 4 0.6 nozzle.json" + }, + { + "name": "QIDI PAHT-GF @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/QIDI PAHT-GF @Qidi X-Plus 4 0.8 nozzle.json" + }, + { + "name": "QIDI PET-CF @Qidi Q1 Pro 0.4 nozzle", + "sub_path": "filament/QIDI PET-CF @Qidi Q1 Pro 0.4 nozzle.json" + }, + { + "name": "QIDI PET-CF @Qidi Q1 Pro 0.6 nozzle", + "sub_path": "filament/QIDI PET-CF @Qidi Q1 Pro 0.6 nozzle.json" + }, + { + "name": "QIDI PET-CF @Qidi Q1 Pro 0.8 nozzle", + "sub_path": "filament/QIDI PET-CF @Qidi Q1 Pro 0.8 nozzle.json" + }, + { + "name": "QIDI PET-CF @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/QIDI PET-CF @Qidi X-Plus 4 0.4 nozzle.json" + }, + { + "name": "QIDI PET-CF @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/QIDI PET-CF @Qidi X-Plus 4 0.6 nozzle.json" + }, + { + "name": "QIDI PET-CF @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/QIDI PET-CF @Qidi X-Plus 4 0.8 nozzle.json" + }, + { + "name": "QIDI PET-GF @0.6 nozzle", + "sub_path": "filament/QIDI PET-GF @0.6 nozzle.json" + }, + { + "name": "QIDI PET-GF @0.8 nozzle", + "sub_path": "filament/QIDI PET-GF @0.8 nozzle.json" + }, + { + "name": "QIDI PET-GF @Qidi Q1 Pro 0.4 nozzle", + "sub_path": "filament/QIDI PET-GF @Qidi Q1 Pro 0.4 nozzle.json" + }, + { + "name": "QIDI PET-GF @Qidi Q1 Pro 0.6 nozzle", + "sub_path": "filament/QIDI PET-GF @Qidi Q1 Pro 0.6 nozzle.json" + }, + { + "name": "QIDI PET-GF @Qidi Q1 Pro 0.8 nozzle", + "sub_path": "filament/QIDI PET-GF @Qidi Q1 Pro 0.8 nozzle.json" + }, + { + "name": "QIDI PET-GF @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/QIDI PET-GF @Qidi X-Plus 4 0.4 nozzle.json" + }, + { + "name": "QIDI PET-GF @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/QIDI PET-GF @Qidi X-Plus 4 0.6 nozzle.json" + }, + { + "name": "QIDI PET-GF @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/QIDI PET-GF @Qidi X-Plus 4 0.8 nozzle.json" + }, + { + "name": "QIDI PPS-CF @0.6 nozzle", + "sub_path": "filament/QIDI PPS-CF @0.6 nozzle.json" + }, + { + "name": "QIDI PPS-CF @0.8 nozzle", + "sub_path": "filament/QIDI PPS-CF @0.8 nozzle.json" + }, + { + "name": "QIDI PPS-CF @Qidi Q1 Pro 0.4 nozzle", + "sub_path": "filament/QIDI PPS-CF @Qidi Q1 Pro 0.4 nozzle.json" + }, + { + "name": "QIDI PPS-CF @Qidi Q1 Pro 0.6 nozzle", + "sub_path": "filament/QIDI PPS-CF @Qidi Q1 Pro 0.6 nozzle.json" + }, + { + "name": "QIDI PPS-CF @Qidi Q1 Pro 0.8 nozzle", + "sub_path": "filament/QIDI PPS-CF @Qidi Q1 Pro 0.8 nozzle.json" + }, + { + "name": "QIDI PPS-CF @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/QIDI PPS-CF @Qidi X-Plus 4 0.4 nozzle.json" + }, + { + "name": "QIDI PPS-CF @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/QIDI PPS-CF @Qidi X-Plus 4 0.6 nozzle.json" + }, + { + "name": "QIDI PPS-CF @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/QIDI PPS-CF @Qidi X-Plus 4 0.8 nozzle.json" + }, + { + "name": "QIDI UltraPA-CF25 @Qidi Q1 Pro 0.4 nozzle", + "sub_path": "filament/QIDI UltraPA-CF25 @Qidi Q1 Pro 0.4 nozzle.json" + }, + { + "name": "QIDI UltraPA-CF25 @Qidi Q1 Pro 0.6 nozzle", + "sub_path": "filament/QIDI UltraPA-CF25 @Qidi Q1 Pro 0.6 nozzle.json" + }, + { + "name": "QIDI UltraPA-CF25 @Qidi Q1 Pro 0.8 nozzle", + "sub_path": "filament/QIDI UltraPA-CF25 @Qidi Q1 Pro 0.8 nozzle.json" + }, + { + "name": "QIDI UltraPA-CF25 @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/QIDI UltraPA-CF25 @Qidi X-Plus 4 0.4 nozzle.json" + }, + { + "name": "QIDI UltraPA-CF25 @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/QIDI UltraPA-CF25 @Qidi X-Plus 4 0.6 nozzle.json" + }, + { + "name": "QIDI UltraPA-CF25 @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/QIDI UltraPA-CF25 @Qidi X-Plus 4 0.8 nozzle.json" + }, + { + "name": "Qidi Generic PC @0.2 nozzle", + "sub_path": "filament/Qidi Generic PC @0.2 nozzle.json" + }, + { + "name": "Qidi Generic PC @0.8 nozzle", + "sub_path": "filament/Qidi Generic PC @0.8 nozzle.json" + }, + { + "name": "Qidi Generic PC @Qidi Q1 Pro 0.2 nozzle", + "sub_path": "filament/Qidi Generic PC @Qidi Q1 Pro 0.2 nozzle.json" + }, + { + "name": "Qidi Generic PC @Qidi Q1 Pro 0.4 nozzle", + "sub_path": "filament/Qidi Generic PC @Qidi Q1 Pro 0.4 nozzle.json" + }, + { + "name": "Qidi Generic PC @Qidi Q1 Pro 0.6 nozzle", + "sub_path": "filament/Qidi Generic PC @Qidi Q1 Pro 0.6 nozzle.json" + }, + { + "name": "Qidi Generic PC @Qidi Q1 Pro 0.8 nozzle", + "sub_path": "filament/Qidi Generic PC @Qidi Q1 Pro 0.8 nozzle.json" + }, + { + "name": "Qidi Generic PC @Qidi X-Plus 4 0.2 nozzle", + "sub_path": "filament/Qidi Generic PC @Qidi X-Plus 4 0.2 nozzle.json" + }, + { + "name": "Qidi Generic PC @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/Qidi Generic PC @Qidi X-Plus 4 0.4 nozzle.json" + }, + { + "name": "Qidi Generic PC @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/Qidi Generic PC @Qidi X-Plus 4 0.6 nozzle.json" + }, + { + "name": "Qidi Generic PC @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/Qidi Generic PC @Qidi X-Plus 4 0.8 nozzle.json" + }, + { + "name": "Bambu PETG @0.2 nozzle", + "sub_path": "filament/Bambu PETG @0.2 nozzle.json" + }, + { + "name": "Bambu PETG @0.6 nozzle", + "sub_path": "filament/Bambu PETG @0.6 nozzle.json" + }, + { + "name": "Bambu PETG @0.8 nozzle", + "sub_path": "filament/Bambu PETG @0.8 nozzle.json" + }, + { + "name": "Bambu PETG @Qidi Q1 Pro 0.2 nozzle", + "sub_path": "filament/Bambu PETG @Qidi Q1 Pro 0.2 nozzle.json" + }, + { + "name": "Bambu PETG @Qidi Q1 Pro 0.4 nozzle", + "sub_path": "filament/Bambu PETG @Qidi Q1 Pro 0.4 nozzle.json" + }, + { + "name": "Bambu PETG @Qidi Q1 Pro 0.6 nozzle", + "sub_path": "filament/Bambu PETG @Qidi Q1 Pro 0.6 nozzle.json" + }, + { + "name": "Bambu PETG @Qidi Q1 Pro 0.8 nozzle", + "sub_path": "filament/Bambu PETG @Qidi Q1 Pro 0.8 nozzle.json" + }, + { + "name": "Bambu PETG @Qidi X-Plus 4 0.2 nozzle", + "sub_path": "filament/Bambu PETG @Qidi X-Plus 4 0.2 nozzle.json" + }, + { + "name": "Bambu PETG @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/Bambu PETG @Qidi X-Plus 4 0.4 nozzle.json" + }, + { + "name": "Bambu PETG @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/Bambu PETG @Qidi X-Plus 4 0.6 nozzle.json" + }, + { + "name": "Bambu PETG @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/Bambu PETG @Qidi X-Plus 4 0.8 nozzle.json" + }, + { + "name": "HATCHBOX PETG @0.2 nozzle", + "sub_path": "filament/HATCHBOX PETG @Qidi 0.2 nozzle.json" + }, + { + "name": "HATCHBOX PETG @0.6 nozzle", + "sub_path": "filament/HATCHBOX PETG @Qidi 0.6 nozzle.json" + }, + { + "name": "HATCHBOX PETG @0.8 nozzle", + "sub_path": "filament/HATCHBOX PETG @Qidi 0.8 nozzle.json" + }, + { + "name": "HATCHBOX PETG @Qidi Q1 Pro 0.2 nozzle", + "sub_path": "filament/HATCHBOX PETG @Qidi Q1 Pro 0.2 nozzle.json" + }, + { + "name": "HATCHBOX PETG @Qidi Q1 Pro 0.4 nozzle", + "sub_path": "filament/HATCHBOX PETG @Qidi Q1 Pro 0.4 nozzle.json" + }, + { + "name": "HATCHBOX PETG @Qidi Q1 Pro 0.6 nozzle", + "sub_path": "filament/HATCHBOX PETG @Qidi Q1 Pro 0.6 nozzle.json" + }, + { + "name": "HATCHBOX PETG @Qidi Q1 Pro 0.8 nozzle", + "sub_path": "filament/HATCHBOX PETG @Qidi Q1 Pro 0.8 nozzle.json" + }, + { + "name": "HATCHBOX PETG @Qidi X-Plus 4 0.2 nozzle", + "sub_path": "filament/HATCHBOX PETG @Qidi X-Plus 4 0.2 nozzle.json" + }, + { + "name": "HATCHBOX PETG @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/HATCHBOX PETG @Qidi X-Plus 4 0.4 nozzle.json" + }, + { + "name": "HATCHBOX PETG @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/HATCHBOX PETG @Qidi X-Plus 4 0.6 nozzle.json" + }, + { + "name": "HATCHBOX PETG @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/HATCHBOX PETG @Qidi X-Plus 4 0.8 nozzle.json" + }, + { + "name": "QIDI PETG Tough 0.2 nozzle", + "sub_path": "filament/QIDI PETG Tough 0.2 nozzle.json" + }, + { + "name": "QIDI PETG Tough 0.6 nozzle", + "sub_path": "filament/QIDI PETG Tough 0.6 nozzle.json" + }, + { + "name": "QIDI PETG Tough 0.8 nozzle", + "sub_path": "filament/QIDI PETG Tough 0.8 nozzle.json" + }, + { + "name": "QIDI PETG Tough @Qidi Q1 Pro 0.2 nozzle", + "sub_path": "filament/QIDI PETG Tough @Qidi Q1 Pro 0.2 nozzle.json" + }, + { + "name": "QIDI PETG Tough @Qidi Q1 Pro 0.4 nozzle", + "sub_path": "filament/QIDI PETG Tough @Qidi Q1 Pro 0.4 nozzle.json" + }, + { + "name": "QIDI PETG Tough @Qidi Q1 Pro 0.6 nozzle", + "sub_path": "filament/QIDI PETG Tough @Qidi Q1 Pro 0.6 nozzle.json" + }, + { + "name": "QIDI PETG Tough @Qidi Q1 Pro 0.8 nozzle", + "sub_path": "filament/QIDI PETG Tough @Qidi Q1 Pro 0.8 nozzle.json" + }, + { + "name": "QIDI PETG Tough @Qidi X-Plus 4 0.2 nozzle", + "sub_path": "filament/QIDI PETG Tough @Qidi X-Plus 4 0.2 nozzle.json" + }, + { + "name": "QIDI PETG Tough @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/QIDI PETG Tough @Qidi X-Plus 4 0.4 nozzle.json" + }, + { + "name": "QIDI PETG Tough @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/QIDI PETG Tough @Qidi X-Plus 4 0.6 nozzle.json" + }, + { + "name": "QIDI PETG Tough @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/QIDI PETG Tough @Qidi X-Plus 4 0.8 nozzle.json" + }, + { + "name": "Qidi Generic PETG @Qidi Q1 Pro 0.2 nozzle", + "sub_path": "filament/Qidi Generic PETG @Qidi Q1 Pro 0.2 nozzle.json" + }, + { + "name": "Qidi Generic PETG @Qidi Q1 Pro 0.4 nozzle", + "sub_path": "filament/Qidi Generic PETG @Qidi Q1 Pro 0.4 nozzle.json" + }, + { + "name": "Qidi Generic PETG @Qidi Q1 Pro 0.6 nozzle", + "sub_path": "filament/Qidi Generic PETG @Qidi Q1 Pro 0.6 nozzle.json" + }, + { + "name": "Qidi Generic PETG @Qidi Q1 Pro 0.8 nozzle", + "sub_path": "filament/Qidi Generic PETG @Qidi Q1 Pro 0.8 nozzle.json" + }, + { + "name": "Qidi Generic PETG @Qidi X-Max 3 0.2 nozzle", + "sub_path": "filament/Qidi Generic PETG @Qidi X-Max 3 0.2 nozzle.json" + }, + { + "name": "Qidi Generic PETG @Qidi X-Plus 3 0.2 nozzle", + "sub_path": "filament/Qidi Generic PETG @Qidi X-Plus 3 0.2 nozzle.json" + }, + { + "name": "Qidi Generic PETG @Qidi X-Plus 4 0.2 nozzle", + "sub_path": "filament/Qidi Generic PETG @Qidi X-Plus 4 0.2 nozzle.json" + }, + { + "name": "Qidi Generic PETG @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/Qidi Generic PETG @Qidi X-Plus 4 0.4 nozzle.json" + }, + { + "name": "Qidi Generic PETG @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/Qidi Generic PETG @Qidi X-Plus 4 0.6 nozzle.json" + }, + { + "name": "Qidi Generic PETG @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/Qidi Generic PETG @Qidi X-Plus 4 0.8 nozzle.json" + }, + { + "name": "Qidi Generic PETG @Qidi X-Smart 3 0.2 nozzle", + "sub_path": "filament/Qidi Generic PETG @Qidi X-Smart 3 0.2 nozzle.json" + }, + { + "name": "Bambu PLA @0.2 nozzle", + "sub_path": "filament/Bambu PLA @0.2 nozzle.json" + }, + { + "name": "Bambu PLA @0.6 nozzle", + "sub_path": "filament/Bambu PLA @0.6 nozzle.json" + }, + { + "name": "Bambu PLA @0.8 nozzle", + "sub_path": "filament/Bambu PLA @0.8 nozzle.json" + }, + { + "name": "Bambu PLA @Qidi Q1 Pro 0.2 nozzle", + "sub_path": "filament/Bambu PLA @Qidi Q1 Pro 0.2 nozzle.json" + }, + { + "name": "Bambu PLA @Qidi Q1 Pro 0.4 nozzle", + "sub_path": "filament/Bambu PLA @Qidi Q1 Pro 0.4 nozzle.json" + }, + { + "name": "Bambu PLA @Qidi Q1 Pro 0.6 nozzle", + "sub_path": "filament/Bambu PLA @Qidi Q1 Pro 0.6 nozzle.json" + }, + { + "name": "Bambu PLA @Qidi Q1 Pro 0.8 nozzle", + "sub_path": "filament/Bambu PLA @Qidi Q1 Pro 0.8 nozzle.json" + }, + { + "name": "Bambu PLA @Qidi X-Plus 4 0.2 nozzle", + "sub_path": "filament/Bambu PLA @Qidi X-Plus 4 0.2 nozzle.json" + }, + { + "name": "Bambu PLA @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/Bambu PLA @Qidi X-Plus 4 0.4 nozzle.json" + }, + { + "name": "Bambu PLA @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/Bambu PLA @Qidi X-Plus 4 0.6 nozzle.json" + }, + { + "name": "Bambu PLA @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/Bambu PLA @Qidi X-Plus 4 0.8 nozzle.json" + }, + { + "name": "HATCHBOX PLA @0.2 nozzle", + "sub_path": "filament/HATCHBOX PLA @Qidi 0.2 nozzle.json" + }, + { + "name": "HATCHBOX PLA @0.6 nozzle", + "sub_path": "filament/HATCHBOX PLA @Qidi 0.6 nozzle.json" + }, + { + "name": "HATCHBOX PLA @0.8 nozzle", + "sub_path": "filament/HATCHBOX PLA @Qidi 0.8 nozzle.json" + }, + { + "name": "HATCHBOX PLA @Qidi Q1 Pro 0.2 nozzle", + "sub_path": "filament/HATCHBOX PLA @Qidi Q1 Pro 0.2 nozzle.json" + }, + { + "name": "HATCHBOX PLA @Qidi Q1 Pro 0.4 nozzle", + "sub_path": "filament/HATCHBOX PLA @Qidi Q1 Pro 0.4 nozzle.json" + }, + { + "name": "HATCHBOX PLA @Qidi Q1 Pro 0.6 nozzle", + "sub_path": "filament/HATCHBOX PLA @Qidi Q1 Pro 0.6 nozzle.json" + }, + { + "name": "HATCHBOX PLA @Qidi Q1 Pro 0.8 nozzle", + "sub_path": "filament/HATCHBOX PLA @Qidi Q1 Pro 0.8 nozzle.json" + }, + { + "name": "HATCHBOX PLA @Qidi X-Plus 4 0.2 nozzle", + "sub_path": "filament/HATCHBOX PLA @Qidi X-Plus 4 0.2 nozzle.json" + }, + { + "name": "HATCHBOX PLA @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/HATCHBOX PLA @Qidi X-Plus 4 0.4 nozzle.json" + }, + { + "name": "HATCHBOX PLA @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/HATCHBOX PLA @Qidi X-Plus 4 0.6 nozzle.json" + }, + { + "name": "HATCHBOX PLA @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/HATCHBOX PLA @Qidi X-Plus 4 0.8 nozzle.json" + }, + { + "name": "Overture PLA @Qidi 0.2 nozzle", + "sub_path": "filament/Overture PLA @Qidi 0.2 nozzle.json" + }, + { + "name": "Overture PLA @Qidi 0.6 nozzle", + "sub_path": "filament/Overture PLA @Qidi 0.6 nozzle.json" + }, + { + "name": "Overture PLA @Qidi 0.8 nozzle", + "sub_path": "filament/Overture PLA @Qidi 0.8 nozzle.json" + }, + { + "name": "Overture PLA @Qidi Q1 Pro 0.2 nozzle", + "sub_path": "filament/Overture PLA @Qidi Q1 Pro 0.2 nozzle.json" + }, + { + "name": "Overture PLA @Qidi Q1 Pro 0.4 nozzle", + "sub_path": "filament/Overture PLA @Qidi Q1 Pro 0.4 nozzle.json" + }, + { + "name": "Overture PLA @Qidi Q1 Pro 0.6 nozzle", + "sub_path": "filament/Overture PLA @Qidi Q1 Pro 0.6 nozzle.json" + }, + { + "name": "Overture PLA @Qidi Q1 Pro 0.8 nozzle", + "sub_path": "filament/Overture PLA @Qidi Q1 Pro 0.8 nozzle.json" + }, + { + "name": "Overture PLA @Qidi X-Plus 4 0.2 nozzle", + "sub_path": "filament/Overture PLA @Qidi X-Plus 4 0.2 nozzle.json" + }, + { + "name": "Overture PLA @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/Overture PLA @Qidi X-Plus 4 0.4 nozzle.json" + }, + { + "name": "Overture PLA @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/Overture PLA @Qidi X-Plus 4 0.6 nozzle.json" + }, + { + "name": "Overture PLA @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/Overture PLA @Qidi X-Plus 4 0.8 nozzle.json" + }, + { + "name": "PolyLite PLA @Qidi 0.2 nozzle", + "sub_path": "filament/PolyLite PLA @Qidi 0.2 nozzle.json" + }, + { + "name": "PolyLite PLA @Qidi 0.6 nozzle", + "sub_path": "filament/PolyLite PLA @Qidi 0.6 nozzle.json" + }, + { + "name": "PolyLite PLA @Qidi 0.8 nozzle", + "sub_path": "filament/PolyLite PLA @Qidi 0.8 nozzle.json" + }, + { + "name": "PolyLite PLA @Qidi Q1 Pro 0.2 nozzle", + "sub_path": "filament/PolyLite PLA @Qidi Q1 Pro 0.2 nozzle.json" + }, + { + "name": "PolyLite PLA @Qidi Q1 Pro 0.4 nozzle", + "sub_path": "filament/PolyLite PLA @Qidi Q1 Pro 0.4 nozzle.json" + }, + { + "name": "PolyLite PLA @Qidi Q1 Pro 0.6 nozzle", + "sub_path": "filament/PolyLite PLA @Qidi Q1 Pro 0.6 nozzle.json" + }, + { + "name": "PolyLite PLA @Qidi Q1 Pro 0.8 nozzle", + "sub_path": "filament/PolyLite PLA @Qidi Q1 Pro 0.8 nozzle.json" + }, + { + "name": "PolyLite PLA @Qidi X-Plus 4 0.2 nozzle", + "sub_path": "filament/PolyLite PLA @Qidi X-Plus 4 0.2 nozzle.json" + }, + { + "name": "PolyLite PLA @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/PolyLite PLA @Qidi X-Plus 4 0.4 nozzle.json" + }, + { + "name": "PolyLite PLA @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/PolyLite PLA @Qidi X-Plus 4 0.6 nozzle.json" + }, + { + "name": "PolyLite PLA @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/PolyLite PLA @Qidi X-Plus 4 0.8 nozzle.json" + }, + { + "name": "QIDI PLA Rapido 0.2 nozzle", + "sub_path": "filament/QIDI PLA Rapido 0.2 nozzle.json" + }, + { + "name": "QIDI PLA Rapido 0.8 nozzle", + "sub_path": "filament/QIDI PLA Rapido 0.8 nozzle.json" + }, + { + "name": "QIDI PLA Rapido @0.6 nozzle", + "sub_path": "filament/QIDI PLA Rapido @0.6 nozzle.json" + }, + { + "name": "QIDI PLA Rapido @Qidi Q1 Pro 0.2 nozzle", + "sub_path": "filament/QIDI PLA Rapido @Qidi Q1 Pro 0.2 nozzle.json" + }, + { + "name": "QIDI PLA Rapido @Qidi Q1 Pro 0.4 nozzle", + "sub_path": "filament/QIDI PLA Rapido @Qidi Q1 Pro 0.4 nozzle.json" + }, + { + "name": "QIDI PLA Rapido @Qidi Q1 Pro 0.6 nozzle", + "sub_path": "filament/QIDI PLA Rapido @Qidi Q1 Pro 0.6 nozzle.json" + }, + { + "name": "QIDI PLA Rapido @Qidi Q1 Pro 0.8 nozzle", + "sub_path": "filament/QIDI PLA Rapido @Qidi Q1 Pro 0.8 nozzle.json" + }, + { + "name": "QIDI PLA Rapido @Qidi X-Plus 4 0.2 nozzle", + "sub_path": "filament/QIDI PLA Rapido @Qidi X-Plus 4 0.2 nozzle.json" + }, + { + "name": "QIDI PLA Rapido @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/QIDI PLA Rapido @Qidi X-Plus 4 0.4 nozzle.json" + }, + { + "name": "QIDI PLA Rapido @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/QIDI PLA Rapido @Qidi X-Plus 4 0.6 nozzle.json" + }, + { + "name": "QIDI PLA Rapido @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/QIDI PLA Rapido @Qidi X-Plus 4 0.8 nozzle.json" + }, + { + "name": "QIDI PLA Rapido Matte @0.2 nozzle", + "sub_path": "filament/QIDI PLA Rapido Matte @0.2 nozzle.json" + }, + { + "name": "QIDI PLA Rapido Matte @0.6 nozzle", + "sub_path": "filament/QIDI PLA Rapido Matte @0.6 nozzle.json" + }, + { + "name": "QIDI PLA Rapido Matte @0.8 nozzle", + "sub_path": "filament/QIDI PLA Rapido Matte @0.8 nozzle.json" + }, + { + "name": "QIDI PLA Rapido Matte @Qidi Q1 Pro 0.2 nozzle", + "sub_path": "filament/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.2 nozzle.json" + }, + { + "name": "QIDI PLA Rapido Matte @Qidi Q1 Pro 0.4 nozzle", + "sub_path": "filament/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.4 nozzle.json" + }, + { + "name": "QIDI PLA Rapido Matte @Qidi Q1 Pro 0.6 nozzle", + "sub_path": "filament/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.6 nozzle.json" + }, + { + "name": "QIDI PLA Rapido Matte @Qidi Q1 Pro 0.8 nozzle", + "sub_path": "filament/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.8 nozzle.json" + }, + { + "name": "QIDI PLA Rapido Matte @Qidi X-Plus 4 0.2 nozzle", + "sub_path": "filament/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.2 nozzle.json" + }, + { + "name": "QIDI PLA Rapido Matte @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.4 nozzle.json" + }, + { + "name": "QIDI PLA Rapido Matte @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.6 nozzle.json" + }, + { + "name": "QIDI PLA Rapido Matte @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.8 nozzle.json" + }, + { + "name": "QIDI PLA Rapido Metal @0.2 nozzle", + "sub_path": "filament/QIDI PLA Rapido Metal @0.2 nozzle.json" + }, + { + "name": "QIDI PLA Rapido Metal @0.6 nozzle", + "sub_path": "filament/QIDI PLA Rapido Metal @0.6 nozzle.json" + }, + { + "name": "QIDI PLA Rapido Metal @0.8 nozzle", + "sub_path": "filament/QIDI PLA Rapido Metal @0.8 nozzle.json" }, { "name": "QIDI PLA Rapido Metal @Qidi Q1 Pro 0.2 nozzle", @@ -1601,20 +2097,20 @@ "sub_path": "filament/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.8 nozzle.json" }, { - "name": "QIDI PLA Rapido Metal @0.2 nozzle", - "sub_path": "filament/QIDI PLA Rapido Metal @0.2 nozzle.json" + "name": "QIDI PLA Rapido Metal @Qidi X-Plus 4 0.2 nozzle", + "sub_path": "filament/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.2 nozzle.json" }, { - "name": "QIDI PLA Rapido Metal @0.6 nozzle", - "sub_path": "filament/QIDI PLA Rapido Metal @0.6 nozzle.json" + "name": "QIDI PLA Rapido Metal @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.4 nozzle.json" }, { - "name": "QIDI PLA Rapido Metal @0.8 nozzle", - "sub_path": "filament/QIDI PLA Rapido Metal @0.8 nozzle.json" + "name": "QIDI PLA Rapido Metal @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.6 nozzle.json" }, { - "name": "QIDI PLA Rapido Silk", - "sub_path": "filament/QIDI PLA Rapido Silk.json" + "name": "QIDI PLA Rapido Metal @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.8 nozzle.json" }, { "name": "QIDI PLA Rapido Silk @0.6 nozzle", @@ -1635,6 +2131,262 @@ { "name": "QIDI PLA Rapido Silk @Qidi X-Plus 4 0.6 nozzle", "sub_path": "filament/QIDI PLA Rapido Silk @Qidi X-Plus 4 0.6 nozzle.json" + }, + { + "name": "QIDI WOOD Rapido @0.6 nozzle", + "sub_path": "filament/QIDI WOOD Rapido @0.6 nozzle.json" + }, + { + "name": "QIDI WOOD Rapido @0.8 nozzle", + "sub_path": "filament/QIDI WOOD Rapido @0.8 nozzle.json" + }, + { + "name": "QIDI WOOD Rapido @Qidi Q1 Pro 0.4 nozzle", + "sub_path": "filament/QIDI WOOD Rapido @Qidi Q1 Pro 0.4 nozzle.json" + }, + { + "name": "QIDI WOOD Rapido @Qidi Q1 Pro 0.6 nozzle", + "sub_path": "filament/QIDI WOOD Rapido @Qidi Q1 Pro 0.6 nozzle.json" + }, + { + "name": "QIDI WOOD Rapido @Qidi Q1 Pro 0.8 nozzle", + "sub_path": "filament/QIDI WOOD Rapido @Qidi Q1 Pro 0.8 nozzle.json" + }, + { + "name": "QIDI WOOD Rapido @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/QIDI WOOD Rapido @Qidi X-Plus 4 0.4 nozzle.json" + }, + { + "name": "QIDI WOOD Rapido @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/QIDI WOOD Rapido @Qidi X-Plus 4 0.6 nozzle.json" + }, + { + "name": "QIDI WOOD Rapido @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/QIDI WOOD Rapido @Qidi X-Plus 4 0.8 nozzle.json" + }, + { + "name": "Qidi Generic PLA @Qidi Q1 Pro 0.2 nozzle", + "sub_path": "filament/Qidi Generic PLA @Qidi Q1 Pro 0.2 nozzle.json" + }, + { + "name": "Qidi Generic PLA @Qidi Q1 Pro 0.4 nozzle", + "sub_path": "filament/Qidi Generic PLA @Qidi Q1 Pro 0.4 nozzle.json" + }, + { + "name": "Qidi Generic PLA @Qidi Q1 Pro 0.6 nozzle", + "sub_path": "filament/Qidi Generic PLA @Qidi Q1 Pro 0.6 nozzle.json" + }, + { + "name": "Qidi Generic PLA @Qidi Q1 Pro 0.8 nozzle", + "sub_path": "filament/Qidi Generic PLA @Qidi Q1 Pro 0.8 nozzle.json" + }, + { + "name": "Qidi Generic PLA @Qidi X-Max 3 0.2 nozzle", + "sub_path": "filament/Qidi Generic PLA @Qidi X-Max 3 0.2 nozzle.json" + }, + { + "name": "Qidi Generic PLA @Qidi X-Max 3 0.6 nozzle", + "sub_path": "filament/Qidi Generic PLA @Qidi X-Max 3 0.6 nozzle.json" + }, + { + "name": "Qidi Generic PLA @Qidi X-Max 3 0.8 nozzle", + "sub_path": "filament/Qidi Generic PLA @Qidi X-Max 3 0.8 nozzle.json" + }, + { + "name": "Qidi Generic PLA @Qidi X-Plus 3 0.2 nozzle", + "sub_path": "filament/Qidi Generic PLA @Qidi X-Plus 3 0.2 nozzle.json" + }, + { + "name": "Qidi Generic PLA @Qidi X-Plus 3 0.6 nozzle", + "sub_path": "filament/Qidi Generic PLA @Qidi X-Plus 3 0.6 nozzle.json" + }, + { + "name": "Qidi Generic PLA @Qidi X-Plus 3 0.8 nozzle", + "sub_path": "filament/Qidi Generic PLA @Qidi X-Plus 3 0.8 nozzle.json" + }, + { + "name": "Qidi Generic PLA @Qidi X-Plus 4 0.2 nozzle", + "sub_path": "filament/Qidi Generic PLA @Qidi X-Plus 4 0.2 nozzle.json" + }, + { + "name": "Qidi Generic PLA @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/Qidi Generic PLA @Qidi X-Plus 4 0.4 nozzle.json" + }, + { + "name": "Qidi Generic PLA @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/Qidi Generic PLA @Qidi X-Plus 4 0.6 nozzle.json" + }, + { + "name": "Qidi Generic PLA @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/Qidi Generic PLA @Qidi X-Plus 4 0.8 nozzle.json" + }, + { + "name": "Qidi Generic PLA @Qidi X-Smart 3 0.2 nozzle", + "sub_path": "filament/Qidi Generic PLA @Qidi X-Smart 3 0.2 nozzle.json" + }, + { + "name": "Qidi Generic PLA @Qidi X-Smart 3 0.6 nozzle", + "sub_path": "filament/Qidi Generic PLA @Qidi X-Smart 3 0.6 nozzle.json" + }, + { + "name": "Qidi Generic PLA @Qidi X-Smart 3 0.8 nozzle", + "sub_path": "filament/Qidi Generic PLA @Qidi X-Smart 3 0.8 nozzle.json" + }, + { + "name": "Qidi Generic PLA Silk @Qidi Q1 Pro 0.4 nozzle", + "sub_path": "filament/Qidi Generic PLA Silk @Qidi Q1 Pro 0.4 nozzle.json" + }, + { + "name": "Qidi Generic PLA Silk @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/Qidi Generic PLA Silk @Qidi X-Plus 4 0.4 nozzle.json" + }, + { + "name": "Qidi Generic PLA+ @Qidi Q1 Pro 0.2 nozzle", + "sub_path": "filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.2 nozzle.json" + }, + { + "name": "Qidi Generic PLA+ @Qidi Q1 Pro 0.4 nozzle", + "sub_path": "filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.4 nozzle.json" + }, + { + "name": "Qidi Generic PLA+ @Qidi Q1 Pro 0.6 nozzle", + "sub_path": "filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.6 nozzle.json" + }, + { + "name": "Qidi Generic PLA+ @Qidi Q1 Pro 0.8 nozzle", + "sub_path": "filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.8 nozzle.json" + }, + { + "name": "Qidi Generic PLA+ @Qidi X-Max 3 0.2 nozzle", + "sub_path": "filament/Qidi Generic PLA+ @Qidi X-Max 3 0.2 nozzle.json" + }, + { + "name": "Qidi Generic PLA+ @Qidi X-Max 3 0.6 nozzle", + "sub_path": "filament/Qidi Generic PLA+ @Qidi X-Max 3 0.6 nozzle.json" + }, + { + "name": "Qidi Generic PLA+ @Qidi X-Max 3 0.8 nozzle", + "sub_path": "filament/Qidi Generic PLA+ @Qidi X-Max 3 0.8 nozzle.json" + }, + { + "name": "Qidi Generic PLA+ @Qidi X-Plus 3 0.2 nozzle", + "sub_path": "filament/Qidi Generic PLA+ @Qidi X-Plus 3 0.2 nozzle.json" + }, + { + "name": "Qidi Generic PLA+ @Qidi X-Plus 3 0.6 nozzle", + "sub_path": "filament/Qidi Generic PLA+ @Qidi X-Plus 3 0.6 nozzle.json" + }, + { + "name": "Qidi Generic PLA+ @Qidi X-Plus 3 0.8 nozzle", + "sub_path": "filament/Qidi Generic PLA+ @Qidi X-Plus 3 0.8 nozzle.json" + }, + { + "name": "Qidi Generic PLA+ @Qidi X-Plus 4 0.2 nozzle", + "sub_path": "filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.2 nozzle.json" + }, + { + "name": "Qidi Generic PLA+ @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.4 nozzle.json" + }, + { + "name": "Qidi Generic PLA+ @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.6 nozzle.json" + }, + { + "name": "Qidi Generic PLA+ @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.8 nozzle.json" + }, + { + "name": "Qidi Generic PLA+ @Qidi X-Smart 3 0.2 nozzle", + "sub_path": "filament/Qidi Generic PLA+ @Qidi X-Smart 3 0.2 nozzle.json" + }, + { + "name": "Qidi Generic PLA+ @Qidi X-Smart 3 0.6 nozzle", + "sub_path": "filament/Qidi Generic PLA+ @Qidi X-Smart 3 0.6 nozzle.json" + }, + { + "name": "Qidi Generic PLA+ @Qidi X-Smart 3 0.8 nozzle", + "sub_path": "filament/Qidi Generic PLA+ @Qidi X-Smart 3 0.8 nozzle.json" + }, + { + "name": "QIDI PLA-CF @0.6 nozzle", + "sub_path": "filament/QIDI PLA-CF @0.6 nozzle.json" + }, + { + "name": "QIDI PLA-CF @0.8 nozzle", + "sub_path": "filament/QIDI PLA-CF @0.8 nozzle.json" + }, + { + "name": "QIDI PLA-CF @Qidi Q1 Pro 0.4 nozzle", + "sub_path": "filament/QIDI PLA-CF @Qidi Q1 Pro 0.4 nozzle.json" + }, + { + "name": "QIDI PLA-CF @Qidi Q1 Pro 0.6 nozzle", + "sub_path": "filament/QIDI PLA-CF @Qidi Q1 Pro 0.6 nozzle.json" + }, + { + "name": "QIDI PLA-CF @Qidi Q1 Pro 0.8 nozzle", + "sub_path": "filament/QIDI PLA-CF @Qidi Q1 Pro 0.8 nozzle.json" + }, + { + "name": "QIDI PLA-CF @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/QIDI PLA-CF @Qidi X-Plus 4 0.4 nozzle.json" + }, + { + "name": "QIDI PLA-CF @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/QIDI PLA-CF @Qidi X-Plus 4 0.6 nozzle.json" + }, + { + "name": "QIDI PLA-CF @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/QIDI PLA-CF @Qidi X-Plus 4 0.8 nozzle.json" + }, + { + "name": "Qidi Generic TPU @Qidi Q1 Pro 0.4 nozzle", + "sub_path": "filament/Qidi Generic TPU @Qidi Q1 Pro 0.4 nozzle.json" + }, + { + "name": "Qidi Generic TPU @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/Qidi Generic TPU @Qidi X-Plus 4 0.4 nozzle.json" + }, + { + "name": "Qidi Generic TPU 95A @Qidi Q1 Pro 0.8 nozzle", + "sub_path": "filament/Qidi Generic TPU 95A @Qidi Q1 Pro 0.8 nozzle.json" + }, + { + "name": "Qidi Generic TPU 95A @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/Qidi Generic TPU 95A @Qidi X-Plus 4 0.8 nozzle.json" + }, + { + "name": "Qidi TPU 95A-HF @Qidi Q1 Pro 0.4 nozzle", + "sub_path": "filament/Qidi TPU 95A-HF @Qidi Q1 Pro 0.4 nozzle.json" + }, + { + "name": "Qidi TPU 95A-HF @Qidi Q1 Pro 0.8 nozzle", + "sub_path": "filament/Qidi TPU 95A-HF @Qidi Q1 Pro 0.8 nozzle.json" + }, + { + "name": "Qidi TPU 95A-HF @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/Qidi TPU 95A-HF @Qidi X-Plus 4 0.4 nozzle.json" + }, + { + "name": "Qidi TPU 95A-HF @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/Qidi TPU 95A-HF @Qidi X-Plus 4 0.8 nozzle.json" + }, + { + "name": "Qidi Generic PLA High Speed @Qidi X-Plus 4 0.2 nozzle", + "sub_path": "filament/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.2 nozzle.json" + }, + { + "name": "Qidi Generic PLA High Speed @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.4 nozzle.json" + }, + { + "name": "Qidi Generic PLA High Speed @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.6 nozzle.json" + }, + { + "name": "Qidi Generic PLA High Speed @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.8 nozzle.json" } ], "machine_list": [ @@ -1650,15 +2402,15 @@ "name": "fdm_qidi_x3_common", "sub_path": "machine/fdm_qidi_x3_common.json" }, - { + { "name": "Qidi X-Plus 0.4 nozzle", "sub_path": "machine/Qidi X-Plus 0.4 nozzle.json" }, - { + { "name": "Qidi X-Max 0.4 nozzle", "sub_path": "machine/Qidi X-Max 0.4 nozzle.json" }, - { + { "name": "Qidi X-CF Pro 0.4 nozzle", "sub_path": "machine/Qidi X-CF Pro 0.4 nozzle.json" }, @@ -1743,4 +2495,4 @@ "sub_path": "machine/Qidi X-Plus 4 0.2 nozzle.json" } ] -} +} \ No newline at end of file diff --git a/resources/profiles/Qidi/filament/Bambu ABS @0.2 nozzle.json b/resources/profiles/Qidi/filament/Bambu ABS @0.2 nozzle.json new file mode 100644 index 0000000000..b1ea63fd95 --- /dev/null +++ b/resources/profiles/Qidi/filament/Bambu ABS @0.2 nozzle.json @@ -0,0 +1,29 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "setting_id": "GFSA04", + "name": "Bambu ABS @0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Bambu ABS", + "filament_flow_ratio": [ + "0.95" + ], + "enable_pressure_advance": [ + "1" + ], + "pressure_advance": [ + "0.021" + ], + "filament_max_volumetric_speed": [ + "2" + ], + "compatible_printers": [ + "Qidi X-Plus 0.2 nozzle", + "Qidi X-Max 0.2 nozzle", + "Qidi X-CF Pro 0.2 nozzle", + "Qidi X-Smart 3 0.2 nozzle", + "Qidi X-Plus 3 0.2 nozzle", + "Qidi X-Max 3 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Bambu ABS @0.6 nozzle.json b/resources/profiles/Qidi/filament/Bambu ABS @0.6 nozzle.json new file mode 100644 index 0000000000..d4290592c9 --- /dev/null +++ b/resources/profiles/Qidi/filament/Bambu ABS @0.6 nozzle.json @@ -0,0 +1,23 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "setting_id": "GFSA04", + "name": "Bambu ABS @0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Bambu ABS", + "enable_pressure_advance": [ + "1" + ], + "pressure_advance": [ + "0.014" + ], + "compatible_printers": [ + "Qidi X-Plus 0.6 nozzle", + "Qidi X-Max 0.6 nozzle", + "Qidi X-CF Pro 0.6 nozzle", + "Qidi X-Smart 3 0.6 nozzle", + "Qidi X-Plus 3 0.6 nozzle", + "Qidi X-Max 3 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Bambu ABS @0.8 nozzle.json b/resources/profiles/Qidi/filament/Bambu ABS @0.8 nozzle.json new file mode 100644 index 0000000000..d255c30f6d --- /dev/null +++ b/resources/profiles/Qidi/filament/Bambu ABS @0.8 nozzle.json @@ -0,0 +1,35 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "setting_id": "GFSA04", + "name": "Bambu ABS @0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Bambu ABS", + "filament_flow_ratio": [ + "0.95" + ], + "enable_pressure_advance": [ + "1" + ], + "pressure_advance": [ + "0.011" + ], + "filament_max_volumetric_speed": [ + "22" + ], + "nozzle_temperature": [ + "260" + ], + "slow_down_min_speed": [ + "10" + ], + "compatible_printers": [ + "Qidi X-Plus 0.8 nozzle", + "Qidi X-Max 0.8 nozzle", + "Qidi X-CF Pro 0.8 nozzle", + "Qidi X-Smart 3 0.8 nozzle", + "Qidi X-Plus 3 0.8 nozzle", + "Qidi X-Max 3 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Bambu ABS @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/Bambu ABS @Qidi Q1 Pro 0.2 nozzle.json new file mode 100644 index 0000000000..9eaf38147d --- /dev/null +++ b/resources/profiles/Qidi/filament/Bambu ABS @Qidi Q1 Pro 0.2 nozzle.json @@ -0,0 +1,52 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "setting_id": "GFSA04", + "instantiation": "true", + "filament_flow_ratio": [ + "0.95" + ], + "enable_pressure_advance": [ + "1" + ], + "activate_chamber_temp_control": [ + "0" + ], + "chamber_temperature": [ + "0" + ], + "fan_max_speed": [ + "80" + ], + "filament_max_volumetric_speed": [ + "2" + ], + "from": "system", + "hot_plate_temp_initial_layer": [ + "90" + ], + "inherits": "Bambu ABS", + "is_custom_defined": "0", + "name": "Bambu ABS @Qidi Q1 Pro 0.2 nozzle", + "nozzle_temperature": [ + "260" + ], + "overhang_fan_speed": [ + "80" + ], + "pressure_advance": [ + "0.021" + ], + "slow_down_min_speed": [ + "20" + ], + "activate_air_filtration":[ + "1" + ], + "during_print_exhaust_fan_speed":[ + "0" + ], + "compatible_printers": [ +"Qidi Q1 Pro 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Bambu ABS @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/Bambu ABS @Qidi Q1 Pro 0.4 nozzle.json new file mode 100644 index 0000000000..cdd757b5d8 --- /dev/null +++ b/resources/profiles/Qidi/filament/Bambu ABS @Qidi Q1 Pro 0.4 nozzle.json @@ -0,0 +1,52 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "setting_id": "GFSA04", + "instantiation": "true", + "activate_air_filtration":[ + "0" + ], + "during_print_exhaust_fan_speed":[ + "0" + ], + "filament_flow_ratio": [ + "0.95" + ], + "enable_pressure_advance": [ + "1" + ], + "activate_chamber_temp_control": [ + "0" + ], + "chamber_temperature": [ + "55" + ], + "fan_max_speed": [ + "80" + ], + "filament_max_volumetric_speed": [ + "24.5" + ], + "from": "system", + "hot_plate_temp_initial_layer": [ + "90" + ], + "inherits": "Bambu ABS", + "is_custom_defined": "0", + "name": "Bambu ABS @Qidi Q1 Pro 0.4 nozzle", + "nozzle_temperature": [ + "260" + ], + "overhang_fan_speed": [ + "80" + ], + "pressure_advance": [ + "0.035" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ +"Qidi Q1 Pro 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Bambu ABS @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/Bambu ABS @Qidi Q1 Pro 0.6 nozzle.json new file mode 100644 index 0000000000..6dd6b2b660 --- /dev/null +++ b/resources/profiles/Qidi/filament/Bambu ABS @Qidi Q1 Pro 0.6 nozzle.json @@ -0,0 +1,52 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "setting_id": "GFSA04", + "instantiation": "true", + "filament_flow_ratio": [ + "0.95" + ], + "enable_pressure_advance": [ + "1" + ], + "activate_chamber_temp_control": [ + "0" + ], + "chamber_temperature": [ + "55" + ], + "fan_max_speed": [ + "80" + ], + "filament_max_volumetric_speed": [ + "24.5" + ], + "from": "system", + "hot_plate_temp_initial_layer": [ + "90" + ], + "inherits": "Bambu ABS", + "is_custom_defined": "0", + "name": "Bambu ABS @Qidi Q1 Pro 0.6 nozzle", + "nozzle_temperature": [ + "250" + ], + "overhang_fan_speed": [ + "80" + ], + "pressure_advance": [ + "0.014" + ], + "slow_down_min_speed": [ + "20" + ], + "activate_air_filtration":[ + "1" + ], + "during_print_exhaust_fan_speed":[ + "0" + ], + "compatible_printers": [ +"Qidi Q1 Pro 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Bambu ABS @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/Bambu ABS @Qidi Q1 Pro 0.8 nozzle.json new file mode 100644 index 0000000000..1ab1c173a2 --- /dev/null +++ b/resources/profiles/Qidi/filament/Bambu ABS @Qidi Q1 Pro 0.8 nozzle.json @@ -0,0 +1,52 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "setting_id": "GFSA04", + "instantiation": "true", + "filament_flow_ratio": [ + "0.95" + ], + "enable_pressure_advance": [ + "1" + ], + "activate_chamber_temp_control": [ + "0" + ], + "chamber_temperature": [ + "55" + ], + "fan_max_speed": [ + "80" + ], + "filament_max_volumetric_speed": [ + "24.5" + ], + "from": "system", + "hot_plate_temp_initial_layer": [ + "90" + ], + "inherits": "Bambu ABS", + "is_custom_defined": "0", + "name": "Bambu ABS @Qidi Q1 Pro 0.8 nozzle", + "nozzle_temperature": [ + "250" + ], + "overhang_fan_speed": [ + "100" + ], + "pressure_advance": [ + "0.011" + ], + "slow_down_min_speed": [ + "10" + ], + "activate_air_filtration":[ + "1" + ], + "during_print_exhaust_fan_speed":[ + "0" + ], + "compatible_printers": [ +"Qidi Q1 Pro 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Bambu ABS @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/Bambu ABS @Qidi X-Plus 4 0.2 nozzle.json new file mode 100644 index 0000000000..6e89cd57f1 --- /dev/null +++ b/resources/profiles/Qidi/filament/Bambu ABS @Qidi X-Plus 4 0.2 nozzle.json @@ -0,0 +1,52 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "setting_id": "GFSA04", + "instantiation": "true", + "filament_flow_ratio": [ + "0.95" + ], + "enable_pressure_advance": [ + "1" + ], + "activate_chamber_temp_control": [ + "0" + ], + "chamber_temperature": [ + "0" + ], + "fan_max_speed": [ + "80" + ], + "filament_max_volumetric_speed": [ + "2" + ], + "from": "system", + "hot_plate_temp_initial_layer": [ + "90" + ], + "inherits": "Bambu ABS", + "is_custom_defined": "0", + "name": "Bambu ABS @Qidi X-Plus 4 0.2 nozzle", + "nozzle_temperature": [ + "260" + ], + "overhang_fan_speed": [ + "80" + ], + "pressure_advance": [ + "0.03" + ], + "slow_down_min_speed": [ + "20" + ], + "activate_air_filtration":[ + "1" + ], + "during_print_exhaust_fan_speed":[ + "0" + ], + "compatible_printers": [ +"Qidi X-Plus 4 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Bambu ABS @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/Bambu ABS @Qidi X-Plus 4 0.4 nozzle.json new file mode 100644 index 0000000000..9cd199c458 --- /dev/null +++ b/resources/profiles/Qidi/filament/Bambu ABS @Qidi X-Plus 4 0.4 nozzle.json @@ -0,0 +1,52 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "setting_id": "GFSA04", + "instantiation": "true", + "filament_flow_ratio": [ + "0.95" + ], + "enable_pressure_advance": [ + "1" + ], + "activate_chamber_temp_control": [ + "0" + ], + "chamber_temperature": [ + "55" + ], + "fan_max_speed": [ + "80" + ], + "filament_max_volumetric_speed": [ + "24.5" + ], + "from": "system", + "hot_plate_temp_initial_layer": [ + "90" + ], + "inherits": "Bambu ABS", + "is_custom_defined": "0", + "name": "Bambu ABS @Qidi X-Plus 4 0.4 nozzle", + "nozzle_temperature": [ + "260" + ], + "overhang_fan_speed": [ + "80" + ], + "pressure_advance": [ + "0.03" + ], + "slow_down_min_speed": [ + "20" + ], + "activate_air_filtration":[ + "1" + ], + "during_print_exhaust_fan_speed":[ + "0" + ], + "compatible_printers": [ +"Qidi X-Plus 4 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Bambu ABS @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/Bambu ABS @Qidi X-Plus 4 0.6 nozzle.json new file mode 100644 index 0000000000..75438059c1 --- /dev/null +++ b/resources/profiles/Qidi/filament/Bambu ABS @Qidi X-Plus 4 0.6 nozzle.json @@ -0,0 +1,52 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "setting_id": "GFSA04", + "instantiation": "true", + "filament_flow_ratio": [ + "0.95" + ], + "enable_pressure_advance": [ + "1" + ], + "activate_chamber_temp_control": [ + "0" + ], + "chamber_temperature": [ + "55" + ], + "fan_max_speed": [ + "80" + ], + "filament_max_volumetric_speed": [ + "24.5" + ], + "from": "system", + "hot_plate_temp_initial_layer": [ + "90" + ], + "inherits": "Bambu ABS", + "is_custom_defined": "0", + "name": "Bambu ABS @Qidi X-Plus 4 0.6 nozzle", + "nozzle_temperature": [ + "250" + ], + "overhang_fan_speed": [ + "80" + ], + "pressure_advance": [ + "0.014" + ], + "slow_down_min_speed": [ + "20" + ], + "activate_air_filtration":[ + "1" + ], + "during_print_exhaust_fan_speed":[ + "0" + ], + "compatible_printers": [ +"Qidi X-Plus 4 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Bambu ABS @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/Bambu ABS @Qidi X-Plus 4 0.8 nozzle.json new file mode 100644 index 0000000000..0307600ffc --- /dev/null +++ b/resources/profiles/Qidi/filament/Bambu ABS @Qidi X-Plus 4 0.8 nozzle.json @@ -0,0 +1,52 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "setting_id": "GFSA04", + "instantiation": "true", + "filament_flow_ratio": [ + "0.95" + ], + "enable_pressure_advance": [ + "1" + ], + "activate_chamber_temp_control": [ + "0" + ], + "chamber_temperature": [ + "55" + ], + "fan_max_speed": [ + "80" + ], + "filament_max_volumetric_speed": [ + "24.5" + ], + "from": "system", + "hot_plate_temp_initial_layer": [ + "90" + ], + "inherits": "Bambu ABS", + "is_custom_defined": "0", + "name": "Bambu ABS @Qidi X-Plus 4 0.8 nozzle", + "nozzle_temperature": [ + "250" + ], + "overhang_fan_speed": [ + "80" + ], + "pressure_advance": [ + "0.011" + ], + "slow_down_min_speed": [ + "10" + ], + "activate_air_filtration":[ + "1" + ], + "during_print_exhaust_fan_speed":[ + "0" + ], + "compatible_printers": [ +"Qidi X-Plus 4 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Bambu ABS.json b/resources/profiles/Qidi/filament/Bambu ABS.json new file mode 100644 index 0000000000..4e195285d1 --- /dev/null +++ b/resources/profiles/Qidi/filament/Bambu ABS.json @@ -0,0 +1,54 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "setting_id": "GFSA04", + "name": "Bambu ABS", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_abs", + "filament_flow_ratio": [ + "0.95" + ], + "filament_max_volumetric_speed": [ + "22" + ], + "enable_pressure_advance": [ + "1" + ], + "pressure_advance": [ + "0.021" + ], + "fan_max_speed":[ + "80" + ], + "fan_min_speed":[ + "20" + ], + "overhang_fan_speed": [ + "80" + ], + "filament_density":[ + "1.05" + ], + "chamber_temperature": [ + "55" + ], + "fan_cooling_layer_time": [ + "60" + ], + "slow_down_min_speed": [ + "20" + ], + "filament_vendor": [ + "Bambu Lab" + ], + "compatible_printers": [ + "Qidi X-Plus 0.4 nozzle", + "Qidi X-Max 0.4 nozzle", + "Qidi X-CF Pro 0.4 nozzle", + "Qidi X-Smart 3 0.4 nozzle", + "Qidi X-Plus 3 0.4 nozzle", + "Qidi X-Max 3 0.4 nozzle" + + ] +} diff --git a/resources/profiles/UltiMaker/filament/UltiMaker Generic PETG.json b/resources/profiles/Qidi/filament/Bambu PETG @0.2 nozzle.json similarity index 59% rename from resources/profiles/UltiMaker/filament/UltiMaker Generic PETG.json rename to resources/profiles/Qidi/filament/Bambu PETG @0.2 nozzle.json index 4f41a702f9..6006598465 100644 --- a/resources/profiles/UltiMaker/filament/UltiMaker Generic PETG.json +++ b/resources/profiles/Qidi/filament/Bambu PETG @0.2 nozzle.json @@ -2,10 +2,10 @@ "type": "filament", "filament_id": "GFG99", "setting_id": "GFSG99", - "name": "UltiMaker Generic PETG", + "name": "Bambu PETG @0.2 nozzle", "from": "system", "instantiation": "true", - "inherits": "fdm_filament_pet", + "inherits": "Bambu PETG", "reduce_fan_stop_start_freq": [ "1" ], @@ -18,14 +18,17 @@ "overhang_fan_speed": [ "90" ], + "overhang_fan_threshold": [ + "10%" + ], "fan_max_speed": [ "40" ], "fan_min_speed": [ - "20" + "10" ], "slow_down_min_speed": [ - "10" + "20" ], "slow_down_layer_time": [ "8" @@ -33,13 +36,22 @@ "filament_flow_ratio": [ "0.95" ], - "filament_max_volumetric_speed": [ - "2" + "enable_pressure_advance": [ + "1" ], - "filament_start_gcode": [ - "; filament start gcode\n" + "pressure_advance": [ + "0.04" + ], + "filament_max_volumetric_speed": [ + "1" ], "compatible_printers": [ - "UltiMaker 2 0.4 nozzle" + "Qidi X-Plus 0.2 nozzle", + "Qidi X-Max 0.2 nozzle", + "Qidi X-CF Pro 0.2 nozzle", + "Qidi X-Smart 3 0.2 nozzle", + "Qidi X-Plus 3 0.2 nozzle", + "Qidi X-Max 3 0.2 nozzle", + "Qidi Q1 Pro 0.2 nozzle" ] } diff --git a/resources/profiles/TwoTrees/filament/TwoTrees Generic PETG @SK1.json b/resources/profiles/Qidi/filament/Bambu PETG @0.6 nozzle.json similarity index 65% rename from resources/profiles/TwoTrees/filament/TwoTrees Generic PETG @SK1.json rename to resources/profiles/Qidi/filament/Bambu PETG @0.6 nozzle.json index cb6dc255c3..0f2f435544 100644 --- a/resources/profiles/TwoTrees/filament/TwoTrees Generic PETG @SK1.json +++ b/resources/profiles/Qidi/filament/Bambu PETG @0.6 nozzle.json @@ -1,11 +1,11 @@ { "type": "filament", - "filament_id": "GFG99", + "filament_id": "GFG99", "setting_id": "GFSG99", - "name": "TwoTrees Generic PETG @SK1", + "name": "Bambu PETG @0.6 nozzle", "from": "system", "instantiation": "true", - "inherits": "fdm_filament_pet", + "inherits": "Bambu PETG", "reduce_fan_stop_start_freq": [ "1" ], @@ -19,16 +19,10 @@ "90" ], "overhang_fan_threshold": [ - "25%" - ], - "fan_max_speed": [ - "90" - ], - "fan_min_speed": [ - "40" + "10%" ], "slow_down_min_speed": [ - "10" + "20" ], "slow_down_layer_time": [ "8" @@ -36,16 +30,27 @@ "filament_flow_ratio": [ "0.95" ], - "filament_max_volumetric_speed": [ - "13" - ], "enable_pressure_advance": [ "1" ], "pressure_advance": [ - "0.05" + "0.04" ], - "compatible_printers": [ - "TwoTrees SK1 0.4 nozzle" - ] -} \ No newline at end of file + "filament_max_volumetric_speed": [ + "16" + ], + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "10" + ], + "compatible_printers": [ + "Qidi X-Plus 0.6 nozzle", + "Qidi X-Max 0.6 nozzle", + "Qidi X-CF Pro 0.6 nozzle", + "Qidi X-Smart 3 0.6 nozzle", + "Qidi X-Plus 3 0.6 nozzle", + "Qidi X-Max 3 0.6 nozzle" + ] +} diff --git a/resources/profiles/BIQU/filament/BIQU Generic PETG.json b/resources/profiles/Qidi/filament/Bambu PETG @0.8 nozzle.json similarity index 61% rename from resources/profiles/BIQU/filament/BIQU Generic PETG.json rename to resources/profiles/Qidi/filament/Bambu PETG @0.8 nozzle.json index 0a358a7580..bc75b7ca7b 100644 --- a/resources/profiles/BIQU/filament/BIQU Generic PETG.json +++ b/resources/profiles/Qidi/filament/Bambu PETG @0.8 nozzle.json @@ -2,10 +2,10 @@ "type": "filament", "filament_id": "GFG99", "setting_id": "GFSG99", - "name": "BIQU Generic PETG", + "name": "Bambu PETG @0.8 nozzle", "from": "system", "instantiation": "true", - "inherits": "fdm_filament_pet", + "inherits": "Bambu PETG", "reduce_fan_stop_start_freq": [ "1" ], @@ -19,13 +19,7 @@ "90" ], "overhang_fan_threshold": [ - "25%" - ], - "fan_max_speed": [ - "90" - ], - "fan_min_speed": [ - "40" + "10%" ], "slow_down_min_speed": [ "10" @@ -36,15 +30,27 @@ "filament_flow_ratio": [ "0.95" ], + "enable_pressure_advance": [ + "1" + ], + "pressure_advance": [ + "0.04" + ], "filament_max_volumetric_speed": [ + "16" + ], + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ "10" ], - "filament_start_gcode": [ - "; filament start gcode\n" - ], - "compatible_printers": [ - "BIQU BX (0.4 nozzle)", - "BIQU B1 (0.4 nozzle)", - "BIQU Hurakan (0.4 nozzle)" - ] + "compatible_printers": [ + "Qidi X-Plus 0.8 nozzle", + "Qidi X-Max 0.8 nozzle", + "Qidi X-CF Pro 0.8 nozzle", + "Qidi X-Smart 3 0.8 nozzle", + "Qidi X-Plus 3 0.8 nozzle", + "Qidi X-Max 3 0.8 nozzle" + ] } diff --git a/resources/profiles/Qidi/filament/Bambu PETG @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/Bambu PETG @Qidi Q1 Pro 0.2 nozzle.json new file mode 100644 index 0000000000..7efc41c2a6 --- /dev/null +++ b/resources/profiles/Qidi/filament/Bambu PETG @Qidi Q1 Pro 0.2 nozzle.json @@ -0,0 +1,33 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "10" + ], + "filament_max_volumetric_speed": [ + "1" + ], + "filament_settings_id": [ + "Bambu PETG @Qidi Q1 Pro 0.2 nozzle" + ], + "from": "system", + "hot_plate_temp_initial_layer": [ + "80" + ], + "inherits": "Bambu PETG", + "is_custom_defined": "0", + "name": "Bambu PETG @Qidi Q1 Pro 0.2 nozzle", + "overhang_fan_speed": [ + "90" + ], + "pressure_advance": [ + "0.04" + ], + "compatible_printers": [ + "Qidi Q1 Pro 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Bambu PETG @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/Bambu PETG @Qidi Q1 Pro 0.4 nozzle.json new file mode 100644 index 0000000000..29c1884484 --- /dev/null +++ b/resources/profiles/Qidi/filament/Bambu PETG @Qidi Q1 Pro 0.4 nozzle.json @@ -0,0 +1,33 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "10" + ], + "filament_max_volumetric_speed": [ + "13" + ], + "filament_settings_id": [ + "Bambu PETG @Qidi Q1 Pro 0.4 nozzle" + ], + "from": "system", + "hot_plate_temp_initial_layer": [ + "80" + ], + "inherits": "Bambu PETG", + "is_custom_defined": "0", + "name": "Bambu PETG @Qidi Q1 Pro 0.4 nozzle", + "overhang_fan_speed": [ + "90" + ], + "pressure_advance": [ + "0.042" + ], + "compatible_printers": [ + "Qidi Q1 Pro 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Bambu PETG @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/Bambu PETG @Qidi Q1 Pro 0.6 nozzle.json new file mode 100644 index 0000000000..68b0f457fe --- /dev/null +++ b/resources/profiles/Qidi/filament/Bambu PETG @Qidi Q1 Pro 0.6 nozzle.json @@ -0,0 +1,33 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "10" + ], + "filament_max_volumetric_speed": [ + "13" + ], + "filament_settings_id": [ + "Bambu PETG @Qidi Q1 Pro 0.6 nozzle" + ], + "from": "system", + "hot_plate_temp_initial_layer": [ + "80" + ], + "inherits": "Bambu PETG", + "is_custom_defined": "0", + "name": "Bambu PETG @Qidi Q1 Pro 0.6 nozzle", + "overhang_fan_speed": [ + "90" + ], + "pressure_advance": [ + "0.032" + ], + "compatible_printers": [ + "Qidi Q1 Pro 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Bambu PETG @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/Bambu PETG @Qidi Q1 Pro 0.8 nozzle.json new file mode 100644 index 0000000000..05f5b33ae0 --- /dev/null +++ b/resources/profiles/Qidi/filament/Bambu PETG @Qidi Q1 Pro 0.8 nozzle.json @@ -0,0 +1,33 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "10" + ], + "filament_max_volumetric_speed": [ + "13" + ], + "filament_settings_id": [ + "Bambu PETG @Qidi Q1 Pro 0.8 nozzle" + ], + "from": "system", + "hot_plate_temp_initial_layer": [ + "80" + ], + "inherits": "Bambu PETG", + "is_custom_defined": "0", + "name": "Bambu PETG @Qidi Q1 Pro 0.8 nozzle", + "overhang_fan_speed": [ + "90" + ], + "pressure_advance": [ + "0.024" + ], + "compatible_printers": [ + "Qidi Q1 Pro 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Bambu PETG @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/Bambu PETG @Qidi X-Plus 4 0.2 nozzle.json new file mode 100644 index 0000000000..beb82dfcc7 --- /dev/null +++ b/resources/profiles/Qidi/filament/Bambu PETG @Qidi X-Plus 4 0.2 nozzle.json @@ -0,0 +1,33 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "10" + ], + "filament_max_volumetric_speed": [ + "1" + ], + "filament_settings_id": [ + "Bambu PETG @Qidi X-Plus 4 0.2 nozzle" + ], + "from": "system", + "hot_plate_temp_initial_layer": [ + "80" + ], + "inherits": "Bambu PETG", + "is_custom_defined": "0", + "name": "Bambu PETG @Qidi X-Plus 4 0.2 nozzle", + "overhang_fan_speed": [ + "90" + ], + "pressure_advance": [ + "0.056" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Bambu PETG @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/Bambu PETG @Qidi X-Plus 4 0.4 nozzle.json new file mode 100644 index 0000000000..8c1f919cf2 --- /dev/null +++ b/resources/profiles/Qidi/filament/Bambu PETG @Qidi X-Plus 4 0.4 nozzle.json @@ -0,0 +1,33 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "10" + ], + "filament_max_volumetric_speed": [ + "13" + ], + "filament_settings_id": [ + "Bambu PETG @Qidi X-Plus 4 0.4 nozzle" + ], + "from": "system", + "hot_plate_temp_initial_layer": [ + "80" + ], + "inherits": "Bambu PETG", + "is_custom_defined": "0", + "name": "Bambu PETG @Qidi X-Plus 4 0.4 nozzle", + "overhang_fan_speed": [ + "90" + ], + "pressure_advance": [ + "0.056" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Bambu PETG @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/Bambu PETG @Qidi X-Plus 4 0.6 nozzle.json new file mode 100644 index 0000000000..fe36b8457d --- /dev/null +++ b/resources/profiles/Qidi/filament/Bambu PETG @Qidi X-Plus 4 0.6 nozzle.json @@ -0,0 +1,30 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "10" + ], + "filament_max_volumetric_speed": [ + "13" + ], + "filament_settings_id": [ + "Bambu PETG @Qidi X-Plus 4 0.6 nozzle" + ], + "from": "system", + "hot_plate_temp_initial_layer": [ + "80" + ], + "inherits": "Bambu PETG", + "is_custom_defined": "0", + "name": "Bambu PETG @Qidi X-Plus 4 0.6 nozzle", + "overhang_fan_speed": [ + "90" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Bambu PETG @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/Bambu PETG @Qidi X-Plus 4 0.8 nozzle.json new file mode 100644 index 0000000000..ed500c377b --- /dev/null +++ b/resources/profiles/Qidi/filament/Bambu PETG @Qidi X-Plus 4 0.8 nozzle.json @@ -0,0 +1,33 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "10" + ], + "filament_max_volumetric_speed": [ + "13" + ], + "filament_settings_id": [ + "Bambu PETG @Qidi X-Plus 4 0.8 nozzle" + ], + "from": "system", + "hot_plate_temp_initial_layer": [ + "80" + ], + "inherits": "Bambu PETG", + "is_custom_defined": "0", + "name": "Bambu PETG @Qidi X-Plus 4 0.8 nozzle", + "overhang_fan_speed": [ + "90" + ], + "pressure_advance": [ + "0.04" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Bambu PETG.json b/resources/profiles/Qidi/filament/Bambu PETG.json new file mode 100644 index 0000000000..f01f13c66c --- /dev/null +++ b/resources/profiles/Qidi/filament/Bambu PETG.json @@ -0,0 +1,68 @@ +{ + "type": "filament", + "filament_id": "GFG99", + "setting_id": "GFSG99", + "name": "Bambu PETG", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_pet", + "reduce_fan_stop_start_freq": [ + "1" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "fan_cooling_layer_time": [ + "30" + ], + "overhang_fan_speed": [ + "90" + ], + "overhang_fan_threshold": [ + "10%" + ], + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "10" + ], + "slow_down_min_speed": [ + "20" + ], + "slow_down_layer_time": [ + "8" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_max_volumetric_speed": [ + "16" + ], + "enable_pressure_advance": [ + "1" + ], + "pressure_advance": [ + "0.04" + ], + "hot_plate_temp_initial_layer" : [ + "80" + ], + "hot_plate_temp" : [ + "80" + ], + "filament_density":[ + "1.24" + ], + "filament_vendor": [ + "Bambu Lab" + ], + "compatible_printers": [ + "Qidi X-Plus 0.4 nozzle", + "Qidi X-Max 0.4 nozzle", + "Qidi X-CF Pro 0.4 nozzle", + "Qidi X-Smart 3 0.4 nozzle", + "Qidi X-Plus 3 0.4 nozzle", + "Qidi X-Max 3 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Bambu PLA @0.2 nozzle.json b/resources/profiles/Qidi/filament/Bambu PLA @0.2 nozzle.json new file mode 100644 index 0000000000..b8dc9ba53f --- /dev/null +++ b/resources/profiles/Qidi/filament/Bambu PLA @0.2 nozzle.json @@ -0,0 +1,29 @@ +{ + "type": "filament", + "filament_id": "GFL99", + "setting_id": "GFSL99", + "name": "Bambu PLA @0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Bambu PLA", + "filament_flow_ratio": [ + "0.98" + ], + "slow_down_layer_time": [ + "8" + ], + "enable_pressure_advance": [ + "1" + ], + "filament_max_volumetric_speed": [ + "2" + ], + "compatible_printers": [ + "Qidi X-Plus 0.2 nozzle", + "Qidi X-Max 0.2 nozzle", + "Qidi X-CF Pro 0.2 nozzle", + "Qidi X-Smart 3 0.2 nozzle", + "Qidi X-Plus 3 0.2 nozzle", + "Qidi X-Max 3 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Bambu PLA @0.6 nozzle.json b/resources/profiles/Qidi/filament/Bambu PLA @0.6 nozzle.json new file mode 100644 index 0000000000..0138a0b16a --- /dev/null +++ b/resources/profiles/Qidi/filament/Bambu PLA @0.6 nozzle.json @@ -0,0 +1,32 @@ +{ + "type": "filament", + "filament_id": "GFL99", + "setting_id": "GFSL99", + "name": "Bambu PLA @0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Bambu PLA", + "filament_flow_ratio": [ + "0.98" + ], + "slow_down_layer_time": [ + "8" + ], + "enable_pressure_advance": [ + "1" + ], + "pressure_advance": [ + "0.016" + ], + "filament_max_volumetric_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 0.6 nozzle", + "Qidi X-Max 0.6 nozzle", + "Qidi X-CF Pro 0.6 nozzle", + "Qidi X-Smart 3 0.6 nozzle", + "Qidi X-Plus 3 0.6 nozzle", + "Qidi X-Max 3 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Bambu PLA @0.8 nozzle.json b/resources/profiles/Qidi/filament/Bambu PLA @0.8 nozzle.json new file mode 100644 index 0000000000..a805e65db0 --- /dev/null +++ b/resources/profiles/Qidi/filament/Bambu PLA @0.8 nozzle.json @@ -0,0 +1,32 @@ +{ + "type": "filament", + "filament_id": "GFL99", + "setting_id": "GFSL99", + "name": "Bambu PLA @0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Bambu PLA", + "filament_flow_ratio": [ + "0.98" + ], + "slow_down_layer_time": [ + "8" + ], + "enable_pressure_advance": [ + "1" + ], + "pressure_advance": [ + "0.008" + ], + "filament_max_volumetric_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 0.8 nozzle", + "Qidi X-Max 0.8 nozzle", + "Qidi X-CF Pro 0.8 nozzle", + "Qidi X-Smart 3 0.8 nozzle", + "Qidi X-Plus 3 0.8 nozzle", + "Qidi X-Max 3 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Bambu PLA @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/Bambu PLA @Qidi Q1 Pro 0.2 nozzle.json new file mode 100644 index 0000000000..bf1f7ff79d --- /dev/null +++ b/resources/profiles/Qidi/filament/Bambu PLA @Qidi Q1 Pro 0.2 nozzle.json @@ -0,0 +1,48 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "activate_air_filtration": [ + "1" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "during_print_exhaust_fan_speed": [ + "100" + ], + "fan_cooling_layer_time": [ + "60" + ], + "filament_max_volumetric_speed": [ + "2" + ], + "filament_settings_id": [ + "Bambu PLA @Qidi Q1 Pro 0.2 nozzle" + ], + "from": "system", + "full_fan_speed_layer": [ + "3" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "inherits": "Bambu PLA", + "is_custom_defined": "0", + "name": "Bambu PLA @Qidi Q1 Pro 0.2 nozzle", + "nozzle_temperature": [ + "210" + ], + "pressure_advance": [ + "0.042" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi Q1 Pro 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Bambu PLA @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/Bambu PLA @Qidi Q1 Pro 0.4 nozzle.json new file mode 100644 index 0000000000..3cc2731c1b --- /dev/null +++ b/resources/profiles/Qidi/filament/Bambu PLA @Qidi Q1 Pro 0.4 nozzle.json @@ -0,0 +1,48 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "activate_air_filtration": [ + "1" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "during_print_exhaust_fan_speed": [ + "100" + ], + "fan_cooling_layer_time": [ + "60" + ], + "filament_max_volumetric_speed": [ + "24.5" + ], + "filament_settings_id": [ + "Bambu PLA @Qidi Q1 Pro 0.4 nozzle" + ], + "from": "system", + "full_fan_speed_layer": [ + "3" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "inherits": "Bambu PLA", + "is_custom_defined": "0", + "name": "Bambu PLA @Qidi Q1 Pro 0.4 nozzle", + "nozzle_temperature": [ + "210" + ], + "pressure_advance": [ + "0.042" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi Q1 Pro 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Bambu PLA @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/Bambu PLA @Qidi Q1 Pro 0.6 nozzle.json new file mode 100644 index 0000000000..1e6d4a9fcf --- /dev/null +++ b/resources/profiles/Qidi/filament/Bambu PLA @Qidi Q1 Pro 0.6 nozzle.json @@ -0,0 +1,48 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "activate_air_filtration": [ + "1" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "during_print_exhaust_fan_speed": [ + "100" + ], + "fan_cooling_layer_time": [ + "60" + ], + "filament_max_volumetric_speed": [ + "24.5" + ], + "filament_settings_id": [ + "Bambu PLA @Qidi Q1 Pro 0.6 nozzle" + ], + "from": "system", + "full_fan_speed_layer": [ + "3" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "inherits": "Bambu PLA", + "is_custom_defined": "0", + "name": "Bambu PLA @Qidi Q1 Pro 0.6 nozzle", + "nozzle_temperature": [ + "210" + ], + "pressure_advance": [ + "0.016" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi Q1 Pro 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Bambu PLA @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/Bambu PLA @Qidi Q1 Pro 0.8 nozzle.json new file mode 100644 index 0000000000..9e476a7e74 --- /dev/null +++ b/resources/profiles/Qidi/filament/Bambu PLA @Qidi Q1 Pro 0.8 nozzle.json @@ -0,0 +1,48 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "activate_air_filtration": [ + "1" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "during_print_exhaust_fan_speed": [ + "100" + ], + "fan_cooling_layer_time": [ + "60" + ], + "filament_max_volumetric_speed": [ + "24.5" + ], + "filament_settings_id": [ + "Bambu PLA @Qidi Q1 Pro 0.8 nozzle" + ], + "from": "system", + "full_fan_speed_layer": [ + "3" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "inherits": "Bambu PLA", + "is_custom_defined": "0", + "name": "Bambu PLA @Qidi Q1 Pro 0.8 nozzle", + "nozzle_temperature": [ + "210" + ], + "pressure_advance": [ + "0.008" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi Q1 Pro 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Bambu PLA @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/Bambu PLA @Qidi X-Plus 4 0.2 nozzle.json new file mode 100644 index 0000000000..1b445bf8f5 --- /dev/null +++ b/resources/profiles/Qidi/filament/Bambu PLA @Qidi X-Plus 4 0.2 nozzle.json @@ -0,0 +1,48 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "activate_air_filtration": [ + "1" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "during_print_exhaust_fan_speed": [ + "100" + ], + "fan_cooling_layer_time": [ + "60" + ], + "filament_max_volumetric_speed": [ + "2" + ], + "filament_settings_id": [ + "Bambu PLA @Qidi X-Plus 4 0.2 nozzle" + ], + "from": "system", + "full_fan_speed_layer": [ + "3" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "inherits": "Bambu PLA", + "is_custom_defined": "0", + "name": "Bambu PLA @Qidi X-Plus 4 0.2 nozzle", + "nozzle_temperature": [ + "210" + ], + "pressure_advance": [ + "0.034" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Bambu PLA @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/Bambu PLA @Qidi X-Plus 4 0.4 nozzle.json new file mode 100644 index 0000000000..9ca83a91ff --- /dev/null +++ b/resources/profiles/Qidi/filament/Bambu PLA @Qidi X-Plus 4 0.4 nozzle.json @@ -0,0 +1,51 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "activate_air_filtration": [ + "1" + ], + "additional_cooling_fan_speed": [ + "100" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "during_print_exhaust_fan_speed": [ + "100" + ], + "fan_cooling_layer_time": [ + "60" + ], + "filament_max_volumetric_speed": [ + "24.5" + ], + "filament_settings_id": [ + "Bambu PLA @Qidi X-Plus 4 0.4 nozzle" + ], + "from": "system", + "full_fan_speed_layer": [ + "3" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "inherits": "Bambu PLA", + "is_custom_defined": "0", + "name": "Bambu PLA @Qidi X-Plus 4 0.4 nozzle", + "nozzle_temperature": [ + "210" + ], + "pressure_advance": [ + "0.034" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Bambu PLA @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/Bambu PLA @Qidi X-Plus 4 0.6 nozzle.json new file mode 100644 index 0000000000..cb8ad0f3df --- /dev/null +++ b/resources/profiles/Qidi/filament/Bambu PLA @Qidi X-Plus 4 0.6 nozzle.json @@ -0,0 +1,48 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "activate_air_filtration": [ + "1" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "during_print_exhaust_fan_speed": [ + "100" + ], + "fan_cooling_layer_time": [ + "60" + ], + "filament_max_volumetric_speed": [ + "24.5" + ], + "filament_settings_id": [ + "Bambu PLA @Qidi X-Plus 4 0.6 nozzle" + ], + "from": "system", + "full_fan_speed_layer": [ + "3" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "inherits": "Bambu PLA", + "is_custom_defined": "0", + "name": "Bambu PLA @Qidi X-Plus 4 0.6 nozzle", + "nozzle_temperature": [ + "210" + ], + "pressure_advance": [ + "0.016" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Bambu PLA @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/Bambu PLA @Qidi X-Plus 4 0.8 nozzle.json new file mode 100644 index 0000000000..0b1ffda296 --- /dev/null +++ b/resources/profiles/Qidi/filament/Bambu PLA @Qidi X-Plus 4 0.8 nozzle.json @@ -0,0 +1,48 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "activate_air_filtration": [ + "1" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "during_print_exhaust_fan_speed": [ + "100" + ], + "fan_cooling_layer_time": [ + "60" + ], + "filament_max_volumetric_speed": [ + "24.5" + ], + "filament_settings_id": [ + "Bambu PLA @Qidi X-Plus 4 0.8 nozzle" + ], + "from": "system", + "full_fan_speed_layer": [ + "3" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "inherits": "Bambu PLA", + "is_custom_defined": "0", + "name": "Bambu PLA @Qidi X-Plus 4 0.8 nozzle", + "nozzle_temperature": [ + "210" + ], + "pressure_advance": [ + "0.008" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Bambu PLA.json b/resources/profiles/Qidi/filament/Bambu PLA.json new file mode 100644 index 0000000000..13158ba9b2 --- /dev/null +++ b/resources/profiles/Qidi/filament/Bambu PLA.json @@ -0,0 +1,38 @@ +{ + "type": "filament", + "filament_id": "GFL99", + "setting_id": "GFSL99", + "name": "Bambu PLA", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_pla", + "filament_flow_ratio": [ + "0.98" + ], + "filament_max_volumetric_speed": [ + "20" + ], + "slow_down_layer_time": [ + "8" + ], + "enable_pressure_advance": [ + "1" + ], + "pressure_advance": [ + "0.031" + ], + "additional_cooling_fan_speed": [ + "100" + ], + "filament_vendor": [ + "Bambu Lab" + ], + "compatible_printers": [ + "Qidi X-Plus 0.4 nozzle", + "Qidi X-Max 0.4 nozzle", + "Qidi X-CF Pro 0.4 nozzle", + "Qidi X-Smart 3 0.4 nozzle", + "Qidi X-Plus 3 0.4 nozzle", + "Qidi X-Max 3 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi 0.2 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi 0.2 nozzle.json new file mode 100644 index 0000000000..1e129497ad --- /dev/null +++ b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi 0.2 nozzle.json @@ -0,0 +1,29 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "setting_id": "GFSA04", + "name": "HATCHBOX ABS @Qidi 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "HATCHBOX ABS @Qidi", + "filament_flow_ratio": [ + "0.95" + ], + "enable_pressure_advance": [ + "1" + ], + "pressure_advance": [ + "0.021" + ], + "filament_max_volumetric_speed": [ + "2" + ], + "compatible_printers": [ + "Qidi X-Plus 0.2 nozzle", + "Qidi X-Max 0.2 nozzle", + "Qidi X-CF Pro 0.2 nozzle", + "Qidi X-Smart 3 0.2 nozzle", + "Qidi X-Plus 3 0.2 nozzle", + "Qidi X-Max 3 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi 0.6 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi 0.6 nozzle.json new file mode 100644 index 0000000000..324b39c862 --- /dev/null +++ b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi 0.6 nozzle.json @@ -0,0 +1,23 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "setting_id": "GFSA04", + "name": "HATCHBOX ABS @Qidi 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "HATCHBOX ABS @Qidi", + "enable_pressure_advance": [ + "1" + ], + "pressure_advance": [ + "0.014" + ], + "compatible_printers": [ + "Qidi X-Plus 0.6 nozzle", + "Qidi X-Max 0.6 nozzle", + "Qidi X-CF Pro 0.6 nozzle", + "Qidi X-Smart 3 0.6 nozzle", + "Qidi X-Plus 3 0.6 nozzle", + "Qidi X-Max 3 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi 0.8 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi 0.8 nozzle.json new file mode 100644 index 0000000000..7b409ef765 --- /dev/null +++ b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi 0.8 nozzle.json @@ -0,0 +1,35 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "setting_id": "GFSA04", + "name": "HATCHBOX ABS @Qidi 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "HATCHBOX ABS @Qidi", + "filament_flow_ratio": [ + "0.95" + ], + "enable_pressure_advance": [ + "1" + ], + "pressure_advance": [ + "0.011" + ], + "filament_max_volumetric_speed": [ + "22" + ], + "nozzle_temperature": [ + "260" + ], + "slow_down_min_speed": [ + "10" + ], + "compatible_printers": [ + "Qidi X-Plus 0.8 nozzle", + "Qidi X-Max 0.8 nozzle", + "Qidi X-CF Pro 0.8 nozzle", + "Qidi X-Smart 3 0.8 nozzle", + "Qidi X-Plus 3 0.8 nozzle", + "Qidi X-Max 3 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi Q1 Pro 0.2 nozzle.json new file mode 100644 index 0000000000..3ab8a33a46 --- /dev/null +++ b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi Q1 Pro 0.2 nozzle.json @@ -0,0 +1,52 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "setting_id": "GFSA04", + "instantiation": "true", + "filament_flow_ratio": [ + "0.95" + ], + "enable_pressure_advance": [ + "1" + ], + "activate_chamber_temp_control": [ + "0" + ], + "chamber_temperature": [ + "0" + ], + "fan_max_speed": [ + "80" + ], + "filament_max_volumetric_speed": [ + "2" + ], + "from": "system", + "hot_plate_temp_initial_layer": [ + "90" + ], + "inherits": "HATCHBOX ABS @Qidi", + "is_custom_defined": "0", + "name": "HATCHBOX ABS @Qidi Q1 Pro 0.2 nozzle", + "nozzle_temperature": [ + "260" + ], + "overhang_fan_speed": [ + "80" + ], + "pressure_advance": [ + "0.021" + ], + "slow_down_min_speed": [ + "20" + ], + "activate_air_filtration":[ + "1" + ], + "during_print_exhaust_fan_speed":[ + "0" + ], + "compatible_printers": [ +"Qidi Q1 Pro 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi Q1 Pro 0.4 nozzle.json new file mode 100644 index 0000000000..edb6824dfa --- /dev/null +++ b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi Q1 Pro 0.4 nozzle.json @@ -0,0 +1,52 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "setting_id": "GFSA04", + "instantiation": "true", + "activate_air_filtration":[ + "0" + ], + "during_print_exhaust_fan_speed":[ + "0" + ], + "filament_flow_ratio": [ + "0.95" + ], + "enable_pressure_advance": [ + "1" + ], + "activate_chamber_temp_control": [ + "0" + ], + "chamber_temperature": [ + "55" + ], + "fan_max_speed": [ + "80" + ], + "filament_max_volumetric_speed": [ + "24.5" + ], + "from": "system", + "hot_plate_temp_initial_layer": [ + "90" + ], + "inherits": "HATCHBOX ABS @Qidi", + "is_custom_defined": "0", + "name": "HATCHBOX ABS @Qidi Q1 Pro 0.4 nozzle", + "nozzle_temperature": [ + "260" + ], + "overhang_fan_speed": [ + "80" + ], + "pressure_advance": [ + "0.035" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ +"Qidi Q1 Pro 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi Q1 Pro 0.6 nozzle.json new file mode 100644 index 0000000000..dcc38fc155 --- /dev/null +++ b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi Q1 Pro 0.6 nozzle.json @@ -0,0 +1,52 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "setting_id": "GFSA04", + "instantiation": "true", + "filament_flow_ratio": [ + "0.95" + ], + "enable_pressure_advance": [ + "1" + ], + "activate_chamber_temp_control": [ + "0" + ], + "chamber_temperature": [ + "55" + ], + "fan_max_speed": [ + "80" + ], + "filament_max_volumetric_speed": [ + "24.5" + ], + "from": "system", + "hot_plate_temp_initial_layer": [ + "90" + ], + "inherits": "HATCHBOX ABS @Qidi", + "is_custom_defined": "0", + "name": "HATCHBOX ABS @Qidi Q1 Pro 0.6 nozzle", + "nozzle_temperature": [ + "250" + ], + "overhang_fan_speed": [ + "80" + ], + "pressure_advance": [ + "0.014" + ], + "slow_down_min_speed": [ + "20" + ], + "activate_air_filtration":[ + "1" + ], + "during_print_exhaust_fan_speed":[ + "0" + ], + "compatible_printers": [ +"Qidi Q1 Pro 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi Q1 Pro 0.8 nozzle.json new file mode 100644 index 0000000000..8fbfc16b6e --- /dev/null +++ b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi Q1 Pro 0.8 nozzle.json @@ -0,0 +1,52 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "setting_id": "GFSA04", + "instantiation": "true", + "filament_flow_ratio": [ + "0.95" + ], + "enable_pressure_advance": [ + "1" + ], + "activate_chamber_temp_control": [ + "0" + ], + "chamber_temperature": [ + "55" + ], + "fan_max_speed": [ + "80" + ], + "filament_max_volumetric_speed": [ + "24.5" + ], + "from": "system", + "hot_plate_temp_initial_layer": [ + "90" + ], + "inherits": "HATCHBOX ABS @Qidi", + "is_custom_defined": "0", + "name": "HATCHBOX ABS @Qidi Q1 Pro 0.8 nozzle", + "nozzle_temperature": [ + "250" + ], + "overhang_fan_speed": [ + "100" + ], + "pressure_advance": [ + "0.011" + ], + "slow_down_min_speed": [ + "10" + ], + "activate_air_filtration":[ + "1" + ], + "during_print_exhaust_fan_speed":[ + "0" + ], + "compatible_printers": [ +"Qidi Q1 Pro 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi X-Plus 4 0.2 nozzle.json new file mode 100644 index 0000000000..96e22af780 --- /dev/null +++ b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi X-Plus 4 0.2 nozzle.json @@ -0,0 +1,52 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "setting_id": "GFSA04", + "instantiation": "true", + "filament_flow_ratio": [ + "0.95" + ], + "enable_pressure_advance": [ + "1" + ], + "activate_chamber_temp_control": [ + "0" + ], + "chamber_temperature": [ + "0" + ], + "fan_max_speed": [ + "80" + ], + "filament_max_volumetric_speed": [ + "2" + ], + "from": "system", + "hot_plate_temp_initial_layer": [ + "90" + ], + "inherits": "HATCHBOX ABS @Qidi", + "is_custom_defined": "0", + "name": "HATCHBOX ABS @Qidi X-Plus 4 0.2 nozzle", + "nozzle_temperature": [ + "260" + ], + "overhang_fan_speed": [ + "80" + ], + "pressure_advance": [ + "0.03" + ], + "slow_down_min_speed": [ + "20" + ], + "activate_air_filtration":[ + "1" + ], + "during_print_exhaust_fan_speed":[ + "0" + ], + "compatible_printers": [ +"Qidi X-Plus 4 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi X-Plus 4 0.4 nozzle.json new file mode 100644 index 0000000000..505ba5dd93 --- /dev/null +++ b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi X-Plus 4 0.4 nozzle.json @@ -0,0 +1,52 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "setting_id": "GFSA04", + "instantiation": "true", + "filament_flow_ratio": [ + "0.95" + ], + "enable_pressure_advance": [ + "1" + ], + "activate_chamber_temp_control": [ + "0" + ], + "chamber_temperature": [ + "55" + ], + "fan_max_speed": [ + "80" + ], + "filament_max_volumetric_speed": [ + "24.5" + ], + "from": "system", + "hot_plate_temp_initial_layer": [ + "90" + ], + "inherits": "HATCHBOX ABS @Qidi", + "is_custom_defined": "0", + "name": "HATCHBOX ABS @Qidi X-Plus 4 0.4 nozzle", + "nozzle_temperature": [ + "260" + ], + "overhang_fan_speed": [ + "80" + ], + "pressure_advance": [ + "0.03" + ], + "slow_down_min_speed": [ + "20" + ], + "activate_air_filtration":[ + "1" + ], + "during_print_exhaust_fan_speed":[ + "0" + ], + "compatible_printers": [ +"Qidi X-Plus 4 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi X-Plus 4 0.6 nozzle.json new file mode 100644 index 0000000000..d9a16d0677 --- /dev/null +++ b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi X-Plus 4 0.6 nozzle.json @@ -0,0 +1,52 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "setting_id": "GFSA04", + "instantiation": "true", + "filament_flow_ratio": [ + "0.95" + ], + "enable_pressure_advance": [ + "1" + ], + "activate_chamber_temp_control": [ + "0" + ], + "chamber_temperature": [ + "55" + ], + "fan_max_speed": [ + "80" + ], + "filament_max_volumetric_speed": [ + "24.5" + ], + "from": "system", + "hot_plate_temp_initial_layer": [ + "90" + ], + "inherits": "HATCHBOX ABS @Qidi", + "is_custom_defined": "0", + "name": "HATCHBOX ABS @Qidi X-Plus 4 0.6 nozzle", + "nozzle_temperature": [ + "250" + ], + "overhang_fan_speed": [ + "80" + ], + "pressure_advance": [ + "0.014" + ], + "slow_down_min_speed": [ + "20" + ], + "activate_air_filtration":[ + "1" + ], + "during_print_exhaust_fan_speed":[ + "0" + ], + "compatible_printers": [ +"Qidi X-Plus 4 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi X-Plus 4 0.8 nozzle.json new file mode 100644 index 0000000000..f70f6806ce --- /dev/null +++ b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi X-Plus 4 0.8 nozzle.json @@ -0,0 +1,52 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "setting_id": "GFSA04", + "instantiation": "true", + "filament_flow_ratio": [ + "0.95" + ], + "enable_pressure_advance": [ + "1" + ], + "activate_chamber_temp_control": [ + "0" + ], + "chamber_temperature": [ + "55" + ], + "fan_max_speed": [ + "80" + ], + "filament_max_volumetric_speed": [ + "24.5" + ], + "from": "system", + "hot_plate_temp_initial_layer": [ + "90" + ], + "inherits": "HATCHBOX ABS @Qidi", + "is_custom_defined": "0", + "name": "HATCHBOX ABS @Qidi X-Plus 4 0.8 nozzle", + "nozzle_temperature": [ + "250" + ], + "overhang_fan_speed": [ + "80" + ], + "pressure_advance": [ + "0.011" + ], + "slow_down_min_speed": [ + "10" + ], + "activate_air_filtration":[ + "1" + ], + "during_print_exhaust_fan_speed":[ + "0" + ], + "compatible_printers": [ +"Qidi X-Plus 4 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi.json b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi.json new file mode 100644 index 0000000000..715f7f4a0d --- /dev/null +++ b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi.json @@ -0,0 +1,54 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "setting_id": "GFSA04", + "name": "HATCHBOX ABS @Qidi", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_abs", + "filament_flow_ratio": [ + "0.95" + ], + "filament_max_volumetric_speed": [ + "22" + ], + "enable_pressure_advance": [ + "1" + ], + "pressure_advance": [ + "0.021" + ], + "fan_max_speed":[ + "80" + ], + "fan_min_speed":[ + "20" + ], + "overhang_fan_speed": [ + "80" + ], + "filament_density":[ + "1.05" + ], + "chamber_temperature": [ + "55" + ], + "fan_cooling_layer_time": [ + "60" + ], + "slow_down_min_speed": [ + "20" + ], + "filament_vendor": [ + "HATCHBOX" + ], + "compatible_printers": [ + "Qidi X-Plus 0.4 nozzle", + "Qidi X-Max 0.4 nozzle", + "Qidi X-CF Pro 0.4 nozzle", + "Qidi X-Smart 3 0.4 nozzle", + "Qidi X-Plus 3 0.4 nozzle", + "Qidi X-Max 3 0.4 nozzle" + + ] +} diff --git a/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi 0.2 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi 0.2 nozzle.json new file mode 100644 index 0000000000..952088c6f3 --- /dev/null +++ b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi 0.2 nozzle.json @@ -0,0 +1,57 @@ +{ + "type": "filament", + "filament_id": "GFG99", + "setting_id": "GFSG99", + "name": "HATCHBOX PETG @0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "HATCHBOX PETG @Qidi", + "reduce_fan_stop_start_freq": [ + "1" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "fan_cooling_layer_time": [ + "30" + ], + "overhang_fan_speed": [ + "90" + ], + "overhang_fan_threshold": [ + "10%" + ], + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "10" + ], + "slow_down_min_speed": [ + "20" + ], + "slow_down_layer_time": [ + "8" + ], + "filament_flow_ratio": [ + "0.95" + ], + "enable_pressure_advance": [ + "1" + ], + "pressure_advance": [ + "0.04" + ], + "filament_max_volumetric_speed": [ + "1" + ], + "compatible_printers": [ + "Qidi X-Plus 0.2 nozzle", + "Qidi X-Max 0.2 nozzle", + "Qidi X-CF Pro 0.2 nozzle", + "Qidi X-Smart 3 0.2 nozzle", + "Qidi X-Plus 3 0.2 nozzle", + "Qidi X-Max 3 0.2 nozzle", + "Qidi Q1 Pro 0.2 nozzle" + ] +} diff --git a/resources/profiles/Voxelab/filament/Voxelab Generic PETG.json b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi 0.6 nozzle.json similarity index 60% rename from resources/profiles/Voxelab/filament/Voxelab Generic PETG.json rename to resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi 0.6 nozzle.json index 9b54afa219..c739adae2d 100644 --- a/resources/profiles/Voxelab/filament/Voxelab Generic PETG.json +++ b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi 0.6 nozzle.json @@ -2,10 +2,10 @@ "type": "filament", "filament_id": "GFG99", "setting_id": "GFSG99", - "name": "Voxelab Generic PETG", + "name": "HATCHBOX PETG @0.6 nozzle", "from": "system", "instantiation": "true", - "inherits": "fdm_filament_pet", + "inherits": "HATCHBOX PETG @Qidi", "reduce_fan_stop_start_freq": [ "1" ], @@ -18,14 +18,11 @@ "overhang_fan_speed": [ "90" ], - "fan_max_speed": [ - "40" - ], - "fan_min_speed": [ - "20" + "overhang_fan_threshold": [ + "10%" ], "slow_down_min_speed": [ - "10" + "20" ], "slow_down_layer_time": [ "8" @@ -33,13 +30,27 @@ "filament_flow_ratio": [ "0.95" ], - "filament_max_volumetric_speed": [ - "15" + "enable_pressure_advance": [ + "1" ], - "filament_start_gcode": [ - "; filament start gcode\n" + "pressure_advance": [ + "0.04" + ], + "filament_max_volumetric_speed": [ + "16" + ], + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "10" ], "compatible_printers": [ - "Voxelab Aquila X2 0.4 nozzle" + "Qidi X-Plus 0.6 nozzle", + "Qidi X-Max 0.6 nozzle", + "Qidi X-CF Pro 0.6 nozzle", + "Qidi X-Smart 3 0.6 nozzle", + "Qidi X-Plus 3 0.6 nozzle", + "Qidi X-Max 3 0.6 nozzle" ] } diff --git a/resources/profiles/Wanhao/filament/Wanhao Generic PETG.json b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi 0.8 nozzle.json similarity index 61% rename from resources/profiles/Wanhao/filament/Wanhao Generic PETG.json rename to resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi 0.8 nozzle.json index 745c1933af..929c06c538 100644 --- a/resources/profiles/Wanhao/filament/Wanhao Generic PETG.json +++ b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi 0.8 nozzle.json @@ -2,10 +2,10 @@ "type": "filament", "filament_id": "GFG99", "setting_id": "GFSG99", - "name": "Wanhao Generic PETG", + "name": "HATCHBOX PETG @0.8 nozzle", "from": "system", "instantiation": "true", - "inherits": "fdm_filament_pet", + "inherits": "HATCHBOX PETG @Qidi", "reduce_fan_stop_start_freq": [ "1" ], @@ -19,13 +19,7 @@ "90" ], "overhang_fan_threshold": [ - "25%" - ], - "fan_max_speed": [ - "90" - ], - "fan_min_speed": [ - "40" + "10%" ], "slow_down_min_speed": [ "10" @@ -36,13 +30,27 @@ "filament_flow_ratio": [ "0.95" ], + "enable_pressure_advance": [ + "1" + ], + "pressure_advance": [ + "0.04" + ], "filament_max_volumetric_speed": [ + "16" + ], + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ "10" ], - "filament_start_gcode": [ - "; filament start gcode\n" - ], - "compatible_printers": [ - "Wanhao D12-300 0.4 nozzle" - ] + "compatible_printers": [ + "Qidi X-Plus 0.8 nozzle", + "Qidi X-Max 0.8 nozzle", + "Qidi X-CF Pro 0.8 nozzle", + "Qidi X-Smart 3 0.8 nozzle", + "Qidi X-Plus 3 0.8 nozzle", + "Qidi X-Max 3 0.8 nozzle" + ] } diff --git a/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi Q1 Pro 0.2 nozzle.json new file mode 100644 index 0000000000..491b50a160 --- /dev/null +++ b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi Q1 Pro 0.2 nozzle.json @@ -0,0 +1,33 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "10" + ], + "filament_max_volumetric_speed": [ + "1" + ], + "filament_settings_id": [ + "HATCHBOX PETG @Qidi Q1 Pro 0.2 nozzle" + ], + "from": "system", + "hot_plate_temp_initial_layer": [ + "80" + ], + "inherits": "HATCHBOX PETG @Qidi", + "is_custom_defined": "0", + "name": "HATCHBOX PETG @Qidi Q1 Pro 0.2 nozzle", + "overhang_fan_speed": [ + "90" + ], + "pressure_advance": [ + "0.04" + ], + "compatible_printers": [ + "Qidi Q1 Pro 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi Q1 Pro 0.4 nozzle.json new file mode 100644 index 0000000000..3b95e47e87 --- /dev/null +++ b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi Q1 Pro 0.4 nozzle.json @@ -0,0 +1,33 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "10" + ], + "filament_max_volumetric_speed": [ + "13" + ], + "filament_settings_id": [ + "HATCHBOX PETG @Qidi Q1 Pro 0.4 nozzle" + ], + "from": "system", + "hot_plate_temp_initial_layer": [ + "80" + ], + "inherits": "HATCHBOX PETG @Qidi", + "is_custom_defined": "0", + "name": "HATCHBOX PETG @Qidi Q1 Pro 0.4 nozzle", + "overhang_fan_speed": [ + "90" + ], + "pressure_advance": [ + "0.042" + ], + "compatible_printers": [ + "Qidi Q1 Pro 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi Q1 Pro 0.6 nozzle.json new file mode 100644 index 0000000000..2f25341f60 --- /dev/null +++ b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi Q1 Pro 0.6 nozzle.json @@ -0,0 +1,33 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "10" + ], + "filament_max_volumetric_speed": [ + "13" + ], + "filament_settings_id": [ + "HATCHBOX PETG @Qidi Q1 Pro 0.6 nozzle" + ], + "from": "system", + "hot_plate_temp_initial_layer": [ + "80" + ], + "inherits": "HATCHBOX PETG @Qidi", + "is_custom_defined": "0", + "name": "HATCHBOX PETG @Qidi Q1 Pro 0.6 nozzle", + "overhang_fan_speed": [ + "90" + ], + "pressure_advance": [ + "0.032" + ], + "compatible_printers": [ + "Qidi Q1 Pro 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi Q1 Pro 0.8 nozzle.json new file mode 100644 index 0000000000..694f055ea3 --- /dev/null +++ b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi Q1 Pro 0.8 nozzle.json @@ -0,0 +1,33 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "10" + ], + "filament_max_volumetric_speed": [ + "13" + ], + "filament_settings_id": [ + "HATCHBOX PETG @Qidi Q1 Pro 0.8 nozzle" + ], + "from": "system", + "hot_plate_temp_initial_layer": [ + "80" + ], + "inherits": "HATCHBOX PETG @Qidi", + "is_custom_defined": "0", + "name": "HATCHBOX PETG @Qidi Q1 Pro 0.8 nozzle", + "overhang_fan_speed": [ + "90" + ], + "pressure_advance": [ + "0.024" + ], + "compatible_printers": [ + "Qidi Q1 Pro 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi X-Plus 4 0.2 nozzle.json new file mode 100644 index 0000000000..746a34c436 --- /dev/null +++ b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi X-Plus 4 0.2 nozzle.json @@ -0,0 +1,33 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "10" + ], + "filament_max_volumetric_speed": [ + "1" + ], + "filament_settings_id": [ + "HATCHBOX PETG @Qidi X-Plus 4 0.2 nozzle" + ], + "from": "system", + "hot_plate_temp_initial_layer": [ + "80" + ], + "inherits": "HATCHBOX PETG @Qidi", + "is_custom_defined": "0", + "name": "HATCHBOX PETG @Qidi X-Plus 4 0.2 nozzle", + "overhang_fan_speed": [ + "90" + ], + "pressure_advance": [ + "0.056" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi X-Plus 4 0.4 nozzle.json new file mode 100644 index 0000000000..a16c596184 --- /dev/null +++ b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi X-Plus 4 0.4 nozzle.json @@ -0,0 +1,33 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "10" + ], + "filament_max_volumetric_speed": [ + "13" + ], + "filament_settings_id": [ + "HATCHBOX PETG @Qidi X-Plus 4 0.4 nozzle" + ], + "from": "system", + "hot_plate_temp_initial_layer": [ + "80" + ], + "inherits": "HATCHBOX PETG @Qidi", + "is_custom_defined": "0", + "name": "HATCHBOX PETG @Qidi X-Plus 4 0.4 nozzle", + "overhang_fan_speed": [ + "90" + ], + "pressure_advance": [ + "0.056" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi X-Plus 4 0.6 nozzle.json new file mode 100644 index 0000000000..b0a298fa53 --- /dev/null +++ b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi X-Plus 4 0.6 nozzle.json @@ -0,0 +1,30 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "10" + ], + "filament_max_volumetric_speed": [ + "13" + ], + "filament_settings_id": [ + "HATCHBOX PETG @Qidi X-Plus 4 0.6 nozzle" + ], + "from": "system", + "hot_plate_temp_initial_layer": [ + "80" + ], + "inherits": "HATCHBOX PETG @Qidi", + "is_custom_defined": "0", + "name": "HATCHBOX PETG @Qidi X-Plus 4 0.6 nozzle", + "overhang_fan_speed": [ + "90" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi X-Plus 4 0.8 nozzle.json new file mode 100644 index 0000000000..4c08ea2cad --- /dev/null +++ b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi X-Plus 4 0.8 nozzle.json @@ -0,0 +1,33 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "10" + ], + "filament_max_volumetric_speed": [ + "13" + ], + "filament_settings_id": [ + "HATCHBOX PETG @Qidi X-Plus 4 0.8 nozzle" + ], + "from": "system", + "hot_plate_temp_initial_layer": [ + "80" + ], + "inherits": "HATCHBOX PETG @Qidi", + "is_custom_defined": "0", + "name": "HATCHBOX PETG @Qidi X-Plus 4 0.8 nozzle", + "overhang_fan_speed": [ + "90" + ], + "pressure_advance": [ + "0.04" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi.json b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi.json new file mode 100644 index 0000000000..f355011091 --- /dev/null +++ b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi.json @@ -0,0 +1,68 @@ +{ + "type": "filament", + "filament_id": "GFG99", + "setting_id": "GFSG99", + "name": "HATCHBOX PETG @Qidi", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_pet", + "reduce_fan_stop_start_freq": [ + "1" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "fan_cooling_layer_time": [ + "30" + ], + "overhang_fan_speed": [ + "90" + ], + "overhang_fan_threshold": [ + "10%" + ], + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "10" + ], + "slow_down_min_speed": [ + "20" + ], + "slow_down_layer_time": [ + "8" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_max_volumetric_speed": [ + "16" + ], + "enable_pressure_advance": [ + "1" + ], + "pressure_advance": [ + "0.04" + ], + "hot_plate_temp_initial_layer" : [ + "80" + ], + "hot_plate_temp" : [ + "80" + ], + "filament_density":[ + "1.24" + ], + "filament_vendor": [ + "HATCHBOX" + ], + "compatible_printers": [ + "Qidi X-Plus 0.4 nozzle", + "Qidi X-Max 0.4 nozzle", + "Qidi X-CF Pro 0.4 nozzle", + "Qidi X-Smart 3 0.4 nozzle", + "Qidi X-Plus 3 0.4 nozzle", + "Qidi X-Max 3 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi 0.2 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi 0.2 nozzle.json new file mode 100644 index 0000000000..c4d2c038fc --- /dev/null +++ b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi 0.2 nozzle.json @@ -0,0 +1,29 @@ +{ + "type": "filament", + "filament_id": "GFL99", + "setting_id": "GFSL99", + "name": "HATCHBOX PLA @0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "HATCHBOX PLA @Qidi", + "filament_flow_ratio": [ + "0.98" + ], + "slow_down_layer_time": [ + "8" + ], + "enable_pressure_advance": [ + "1" + ], + "filament_max_volumetric_speed": [ + "2" + ], + "compatible_printers": [ + "Qidi X-Plus 0.2 nozzle", + "Qidi X-Max 0.2 nozzle", + "Qidi X-CF Pro 0.2 nozzle", + "Qidi X-Smart 3 0.2 nozzle", + "Qidi X-Plus 3 0.2 nozzle", + "Qidi X-Max 3 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi 0.6 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi 0.6 nozzle.json new file mode 100644 index 0000000000..d17f87ba13 --- /dev/null +++ b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi 0.6 nozzle.json @@ -0,0 +1,32 @@ +{ + "type": "filament", + "filament_id": "GFL99", + "setting_id": "GFSL99", + "name": "HATCHBOX PLA @0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "HATCHBOX PLA @Qidi", + "filament_flow_ratio": [ + "0.98" + ], + "slow_down_layer_time": [ + "8" + ], + "enable_pressure_advance": [ + "1" + ], + "pressure_advance": [ + "0.016" + ], + "filament_max_volumetric_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 0.6 nozzle", + "Qidi X-Max 0.6 nozzle", + "Qidi X-CF Pro 0.6 nozzle", + "Qidi X-Smart 3 0.6 nozzle", + "Qidi X-Plus 3 0.6 nozzle", + "Qidi X-Max 3 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi 0.8 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi 0.8 nozzle.json new file mode 100644 index 0000000000..a439ca0f86 --- /dev/null +++ b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi 0.8 nozzle.json @@ -0,0 +1,32 @@ +{ + "type": "filament", + "filament_id": "GFL99", + "setting_id": "GFSL99", + "name": "HATCHBOX PLA @0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "HATCHBOX PLA @Qidi", + "filament_flow_ratio": [ + "0.98" + ], + "slow_down_layer_time": [ + "8" + ], + "enable_pressure_advance": [ + "1" + ], + "pressure_advance": [ + "0.008" + ], + "filament_max_volumetric_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 0.8 nozzle", + "Qidi X-Max 0.8 nozzle", + "Qidi X-CF Pro 0.8 nozzle", + "Qidi X-Smart 3 0.8 nozzle", + "Qidi X-Plus 3 0.8 nozzle", + "Qidi X-Max 3 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi Q1 Pro 0.2 nozzle.json new file mode 100644 index 0000000000..8e9334aa57 --- /dev/null +++ b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi Q1 Pro 0.2 nozzle.json @@ -0,0 +1,48 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "activate_air_filtration": [ + "1" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "during_print_exhaust_fan_speed": [ + "100" + ], + "fan_cooling_layer_time": [ + "60" + ], + "filament_max_volumetric_speed": [ + "2" + ], + "filament_settings_id": [ + "HATCHBOX PLA @Qidi Q1 Pro 0.2 nozzle" + ], + "from": "system", + "full_fan_speed_layer": [ + "3" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "inherits": "HATCHBOX PLA @Qidi", + "is_custom_defined": "0", + "name": "HATCHBOX PLA @Qidi Q1 Pro 0.2 nozzle", + "nozzle_temperature": [ + "210" + ], + "pressure_advance": [ + "0.042" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi Q1 Pro 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi Q1 Pro 0.4 nozzle.json new file mode 100644 index 0000000000..f324f1f301 --- /dev/null +++ b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi Q1 Pro 0.4 nozzle.json @@ -0,0 +1,48 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "activate_air_filtration": [ + "1" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "during_print_exhaust_fan_speed": [ + "100" + ], + "fan_cooling_layer_time": [ + "60" + ], + "filament_max_volumetric_speed": [ + "24.5" + ], + "filament_settings_id": [ + "HATCHBOX PLA @Qidi Q1 Pro 0.4 nozzle" + ], + "from": "system", + "full_fan_speed_layer": [ + "3" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "inherits": "HATCHBOX PLA @Qidi", + "is_custom_defined": "0", + "name": "HATCHBOX PLA @Qidi Q1 Pro 0.4 nozzle", + "nozzle_temperature": [ + "210" + ], + "pressure_advance": [ + "0.042" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi Q1 Pro 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi Q1 Pro 0.6 nozzle.json new file mode 100644 index 0000000000..43ba580fe9 --- /dev/null +++ b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi Q1 Pro 0.6 nozzle.json @@ -0,0 +1,48 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "activate_air_filtration": [ + "1" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "during_print_exhaust_fan_speed": [ + "100" + ], + "fan_cooling_layer_time": [ + "60" + ], + "filament_max_volumetric_speed": [ + "24.5" + ], + "filament_settings_id": [ + "HATCHBOX PLA @Qidi Q1 Pro 0.6 nozzle" + ], + "from": "system", + "full_fan_speed_layer": [ + "3" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "inherits": "HATCHBOX PLA @Qidi", + "is_custom_defined": "0", + "name": "HATCHBOX PLA @Qidi Q1 Pro 0.6 nozzle", + "nozzle_temperature": [ + "210" + ], + "pressure_advance": [ + "0.016" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi Q1 Pro 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi Q1 Pro 0.8 nozzle.json new file mode 100644 index 0000000000..5b9432fc2f --- /dev/null +++ b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi Q1 Pro 0.8 nozzle.json @@ -0,0 +1,48 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "activate_air_filtration": [ + "1" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "during_print_exhaust_fan_speed": [ + "100" + ], + "fan_cooling_layer_time": [ + "60" + ], + "filament_max_volumetric_speed": [ + "24.5" + ], + "filament_settings_id": [ + "HATCHBOX PLA @Qidi Q1 Pro 0.8 nozzle" + ], + "from": "system", + "full_fan_speed_layer": [ + "3" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "inherits": "HATCHBOX PLA @Qidi", + "is_custom_defined": "0", + "name": "HATCHBOX PLA @Qidi Q1 Pro 0.8 nozzle", + "nozzle_temperature": [ + "210" + ], + "pressure_advance": [ + "0.008" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi Q1 Pro 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi X-Plus 4 0.2 nozzle.json new file mode 100644 index 0000000000..a8116f6a19 --- /dev/null +++ b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi X-Plus 4 0.2 nozzle.json @@ -0,0 +1,48 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "activate_air_filtration": [ + "1" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "during_print_exhaust_fan_speed": [ + "100" + ], + "fan_cooling_layer_time": [ + "60" + ], + "filament_max_volumetric_speed": [ + "2" + ], + "filament_settings_id": [ + "HATCHBOX PLA @Qidi X-Plus 4 0.2 nozzle" + ], + "from": "system", + "full_fan_speed_layer": [ + "3" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "inherits": "HATCHBOX PLA @Qidi", + "is_custom_defined": "0", + "name": "HATCHBOX PLA @Qidi X-Plus 4 0.2 nozzle", + "nozzle_temperature": [ + "210" + ], + "pressure_advance": [ + "0.034" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi X-Plus 4 0.4 nozzle.json new file mode 100644 index 0000000000..f31162a976 --- /dev/null +++ b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi X-Plus 4 0.4 nozzle.json @@ -0,0 +1,51 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "activate_air_filtration": [ + "1" + ], + "additional_cooling_fan_speed": [ + "100" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "during_print_exhaust_fan_speed": [ + "100" + ], + "fan_cooling_layer_time": [ + "60" + ], + "filament_max_volumetric_speed": [ + "24.5" + ], + "filament_settings_id": [ + "HATCHBOX PLA @Qidi X-Plus 4 0.4 nozzle" + ], + "from": "system", + "full_fan_speed_layer": [ + "3" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "inherits": "HATCHBOX PLA @Qidi", + "is_custom_defined": "0", + "name": "HATCHBOX PLA @Qidi X-Plus 4 0.4 nozzle", + "nozzle_temperature": [ + "210" + ], + "pressure_advance": [ + "0.034" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi X-Plus 4 0.6 nozzle.json new file mode 100644 index 0000000000..13d922deed --- /dev/null +++ b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi X-Plus 4 0.6 nozzle.json @@ -0,0 +1,48 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "activate_air_filtration": [ + "1" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "during_print_exhaust_fan_speed": [ + "100" + ], + "fan_cooling_layer_time": [ + "60" + ], + "filament_max_volumetric_speed": [ + "24.5" + ], + "filament_settings_id": [ + "HATCHBOX PLA @Qidi X-Plus 4 0.6 nozzle" + ], + "from": "system", + "full_fan_speed_layer": [ + "3" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "inherits": "HATCHBOX PLA @Qidi", + "is_custom_defined": "0", + "name": "HATCHBOX PLA @Qidi X-Plus 4 0.6 nozzle", + "nozzle_temperature": [ + "210" + ], + "pressure_advance": [ + "0.016" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi X-Plus 4 0.8 nozzle.json new file mode 100644 index 0000000000..3373551b8e --- /dev/null +++ b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi X-Plus 4 0.8 nozzle.json @@ -0,0 +1,48 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "activate_air_filtration": [ + "1" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "during_print_exhaust_fan_speed": [ + "100" + ], + "fan_cooling_layer_time": [ + "60" + ], + "filament_max_volumetric_speed": [ + "24.5" + ], + "filament_settings_id": [ + "HATCHBOX PLA @Qidi X-Plus 4 0.8 nozzle" + ], + "from": "system", + "full_fan_speed_layer": [ + "3" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "inherits": "HATCHBOX PLA @Qidi", + "is_custom_defined": "0", + "name": "HATCHBOX PLA @Qidi X-Plus 4 0.8 nozzle", + "nozzle_temperature": [ + "210" + ], + "pressure_advance": [ + "0.008" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi.json b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi.json new file mode 100644 index 0000000000..1f61f5155f --- /dev/null +++ b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi.json @@ -0,0 +1,38 @@ +{ + "type": "filament", + "filament_id": "GFL99", + "setting_id": "GFSL99", + "name": "HATCHBOX PLA @Qidi", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_pla", + "filament_flow_ratio": [ + "0.98" + ], + "filament_max_volumetric_speed": [ + "20" + ], + "slow_down_layer_time": [ + "8" + ], + "enable_pressure_advance": [ + "1" + ], + "pressure_advance": [ + "0.031" + ], + "additional_cooling_fan_speed": [ + "100" + ], + "filament_vendor": [ + "HATCHBOX" + ], + "compatible_printers": [ + "Qidi X-Plus 0.4 nozzle", + "Qidi X-Max 0.4 nozzle", + "Qidi X-CF Pro 0.4 nozzle", + "Qidi X-Smart 3 0.4 nozzle", + "Qidi X-Plus 3 0.4 nozzle", + "Qidi X-Max 3 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Overture ABS @Qidi 0.2 nozzle.json b/resources/profiles/Qidi/filament/Overture ABS @Qidi 0.2 nozzle.json new file mode 100644 index 0000000000..f13d435887 --- /dev/null +++ b/resources/profiles/Qidi/filament/Overture ABS @Qidi 0.2 nozzle.json @@ -0,0 +1,26 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "setting_id": "GFSA04", + "name": "Overture ABS @Qidi 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Overture ABS @Qidi", + "enable_pressure_advance": [ + "1" + ], + "pressure_advance": [ + "0.052" + ], + "filament_max_volumetric_speed": [ + "2" + ], + "compatible_printers": [ + "Qidi X-Plus 0.2 nozzle", + "Qidi X-Max 0.2 nozzle", + "Qidi X-CF Pro 0.2 nozzle", + "Qidi X-Smart 3 0.2 nozzle", + "Qidi X-Plus 3 0.2 nozzle", + "Qidi X-Max 3 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Overture ABS @Qidi 0.6 nozzle.json b/resources/profiles/Qidi/filament/Overture ABS @Qidi 0.6 nozzle.json new file mode 100644 index 0000000000..664a8e603e --- /dev/null +++ b/resources/profiles/Qidi/filament/Overture ABS @Qidi 0.6 nozzle.json @@ -0,0 +1,23 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "setting_id": "GFSA04", + "name": "Overture ABS @Qidi 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Overture ABS @Qidi", + "enable_pressure_advance": [ + "1" + ], + "pressure_advance": [ + "0.018" + ], + "compatible_printers": [ + "Qidi X-Plus 0.6 nozzle", + "Qidi X-Max 0.6 nozzle", + "Qidi X-CF Pro 0.6 nozzle", + "Qidi X-Smart 3 0.6 nozzle", + "Qidi X-Plus 3 0.6 nozzle", + "Qidi X-Max 3 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Overture ABS @Qidi 0.8 nozzle.json b/resources/profiles/Qidi/filament/Overture ABS @Qidi 0.8 nozzle.json new file mode 100644 index 0000000000..6604ad9df9 --- /dev/null +++ b/resources/profiles/Qidi/filament/Overture ABS @Qidi 0.8 nozzle.json @@ -0,0 +1,26 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "setting_id": "GFSA04", + "name": "Overture ABS @Qidi 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Overture ABS @Qidi", + "enable_pressure_advance": [ + "1" + ], + "pressure_advance": [ + "0.01" + ], + "slow_down_min_speed": [ + "10" + ], + "compatible_printers": [ + "Qidi X-Plus 0.8 nozzle", + "Qidi X-Max 0.8 nozzle", + "Qidi X-CF Pro 0.8 nozzle", + "Qidi X-Smart 3 0.8 nozzle", + "Qidi X-Plus 3 0.8 nozzle", + "Qidi X-Max 3 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Overture ABS @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/Overture ABS @Qidi Q1 Pro 0.2 nozzle.json new file mode 100644 index 0000000000..a5474eebdd --- /dev/null +++ b/resources/profiles/Qidi/filament/Overture ABS @Qidi Q1 Pro 0.2 nozzle.json @@ -0,0 +1,55 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "setting_id": "GFSA04", + "instantiation": "true", + "filament_flow_ratio": [ + "0.95" + ], + "enable_pressure_advance": [ + "1" + ], + "activate_chamber_temp_control": [ + "0" + ], + "chamber_temperature": [ + "0" + ], + "fan_max_speed": [ + "80" + ], + "filament_max_volumetric_speed": [ + "2" + ], + "from": "system", + "hot_plate_temp_initial_layer": [ + "90" + ], + "inherits": "Overture ABS @Qidi", + "is_custom_defined": "0", + "name": "Overture ABS @Qidi Q1 Pro 0.2 nozzle", + "nozzle_temperature": [ + "255" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "overhang_fan_speed": [ + "80" + ], + "pressure_advance": [ + "0.021" + ], + "slow_down_min_speed": [ + "20" + ], + "activate_air_filtration":[ + "1" + ], + "during_print_exhaust_fan_speed":[ + "0" + ], + "compatible_printers": [ +"Qidi Q1 Pro 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Overture ABS @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/Overture ABS @Qidi Q1 Pro 0.4 nozzle.json new file mode 100644 index 0000000000..695a6617ca --- /dev/null +++ b/resources/profiles/Qidi/filament/Overture ABS @Qidi Q1 Pro 0.4 nozzle.json @@ -0,0 +1,52 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "setting_id": "GFSA04", + "instantiation": "true", + "activate_air_filtration":[ + "0" + ], + "during_print_exhaust_fan_speed":[ + "0" + ], + "filament_flow_ratio": [ + "0.95" + ], + "enable_pressure_advance": [ + "1" + ], + "activate_chamber_temp_control": [ + "0" + ], + "chamber_temperature": [ + "60" + ], + "fan_max_speed": [ + "80" + ], + "from": "system", + "hot_plate_temp_initial_layer": [ + "90" + ], + "inherits": "Overture ABS @Qidi", + "is_custom_defined": "0", + "name": "Overture ABS @Qidi Q1 Pro 0.4 nozzle", + "nozzle_temperature": [ + "255" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "overhang_fan_speed": [ + "80" + ], + "pressure_advance": [ + "0.032" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ +"Qidi Q1 Pro 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Overture ABS @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/Overture ABS @Qidi Q1 Pro 0.6 nozzle.json new file mode 100644 index 0000000000..dd0ee6f571 --- /dev/null +++ b/resources/profiles/Qidi/filament/Overture ABS @Qidi Q1 Pro 0.6 nozzle.json @@ -0,0 +1,52 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "setting_id": "GFSA04", + "instantiation": "true", + "filament_flow_ratio": [ + "0.95" + ], + "enable_pressure_advance": [ + "1" + ], + "activate_chamber_temp_control": [ + "0" + ], + "chamber_temperature": [ + "60" + ], + "fan_max_speed": [ + "80" + ], + "from": "system", + "hot_plate_temp_initial_layer": [ + "90" + ], + "inherits": "Overture ABS @Qidi", + "is_custom_defined": "0", + "name": "Overture ABS @Qidi Q1 Pro 0.6 nozzle", + "nozzle_temperature": [ + "250" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "overhang_fan_speed": [ + "80" + ], + "pressure_advance": [ + "0.012" + ], + "slow_down_min_speed": [ + "20" + ], + "activate_air_filtration":[ + "1" + ], + "during_print_exhaust_fan_speed":[ + "0" + ], + "compatible_printers": [ +"Qidi Q1 Pro 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Overture ABS @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/Overture ABS @Qidi Q1 Pro 0.8 nozzle.json new file mode 100644 index 0000000000..97140f73d2 --- /dev/null +++ b/resources/profiles/Qidi/filament/Overture ABS @Qidi Q1 Pro 0.8 nozzle.json @@ -0,0 +1,52 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "setting_id": "GFSA04", + "instantiation": "true", + "filament_flow_ratio": [ + "0.95" + ], + "enable_pressure_advance": [ + "1" + ], + "activate_chamber_temp_control": [ + "0" + ], + "chamber_temperature": [ + "60" + ], + "fan_max_speed": [ + "80" + ], + "from": "system", + "hot_plate_temp_initial_layer": [ + "90" + ], + "inherits": "Overture ABS @Qidi", + "is_custom_defined": "0", + "name": "Overture ABS @Qidi Q1 Pro 0.8 nozzle", + "nozzle_temperature": [ + "255" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "overhang_fan_speed": [ + "100" + ], + "pressure_advance": [ + "0.01" + ], + "slow_down_min_speed": [ + "10" + ], + "activate_air_filtration":[ + "1" + ], + "during_print_exhaust_fan_speed":[ + "0" + ], + "compatible_printers": [ +"Qidi Q1 Pro 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Overture ABS @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/Overture ABS @Qidi X-Plus 4 0.2 nozzle.json new file mode 100644 index 0000000000..6cd2fe0c3a --- /dev/null +++ b/resources/profiles/Qidi/filament/Overture ABS @Qidi X-Plus 4 0.2 nozzle.json @@ -0,0 +1,52 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "setting_id": "GFSA04", + "instantiation": "true", + "enable_pressure_advance": [ + "1" + ], + "activate_chamber_temp_control": [ + "0" + ], + "chamber_temperature": [ + "0" + ], + "fan_max_speed": [ + "80" + ], + "filament_max_volumetric_speed": [ + "2" + ], + "from": "system", + "hot_plate_temp_initial_layer": [ + "90" + ], + "inherits": "Overture ABS @Qidi", + "is_custom_defined": "0", + "name": "Overture ABS @Qidi X-Plus 4 0.2 nozzle", + "nozzle_temperature": [ + "255" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "overhang_fan_speed": [ + "80" + ], + "pressure_advance": [ + "0.054" + ], + "slow_down_min_speed": [ + "20" + ], + "activate_air_filtration":[ + "1" + ], + "during_print_exhaust_fan_speed":[ + "0" + ], + "compatible_printers": [ +"Qidi X-Plus 4 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Overture ABS @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/Overture ABS @Qidi X-Plus 4 0.4 nozzle.json new file mode 100644 index 0000000000..af8349e9e3 --- /dev/null +++ b/resources/profiles/Qidi/filament/Overture ABS @Qidi X-Plus 4 0.4 nozzle.json @@ -0,0 +1,49 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "setting_id": "GFSA04", + "instantiation": "true", + "enable_pressure_advance": [ + "1" + ], + "activate_chamber_temp_control": [ + "0" + ], + "chamber_temperature": [ + "60" + ], + "fan_max_speed": [ + "80" + ], + "from": "system", + "hot_plate_temp_initial_layer": [ + "90" + ], + "inherits": "Overture ABS @Qidi", + "is_custom_defined": "0", + "name": "Overture ABS @Qidi X-Plus 4 0.4 nozzle", + "nozzle_temperature": [ + "255" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "overhang_fan_speed": [ + "80" + ], + "pressure_advance": [ + "0.033" + ], + "slow_down_min_speed": [ + "20" + ], + "activate_air_filtration":[ + "1" + ], + "during_print_exhaust_fan_speed":[ + "0" + ], + "compatible_printers": [ +"Qidi X-Plus 4 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Overture ABS @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/Overture ABS @Qidi X-Plus 4 0.6 nozzle.json new file mode 100644 index 0000000000..5ef732d7c2 --- /dev/null +++ b/resources/profiles/Qidi/filament/Overture ABS @Qidi X-Plus 4 0.6 nozzle.json @@ -0,0 +1,49 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "setting_id": "GFSA04", + "instantiation": "true", + "enable_pressure_advance": [ + "1" + ], + "activate_chamber_temp_control": [ + "0" + ], + "chamber_temperature": [ + "60" + ], + "fan_max_speed": [ + "80" + ], + "from": "system", + "hot_plate_temp_initial_layer": [ + "90" + ], + "inherits": "Overture ABS @Qidi", + "is_custom_defined": "0", + "name": "Overture ABS @Qidi X-Plus 4 0.6 nozzle", + "nozzle_temperature": [ + "255" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "overhang_fan_speed": [ + "80" + ], + "pressure_advance": [ + "0.02" + ], + "slow_down_min_speed": [ + "20" + ], + "activate_air_filtration":[ + "1" + ], + "during_print_exhaust_fan_speed":[ + "0" + ], + "compatible_printers": [ +"Qidi X-Plus 4 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Overture ABS @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/Overture ABS @Qidi X-Plus 4 0.8 nozzle.json new file mode 100644 index 0000000000..c98f99a71c --- /dev/null +++ b/resources/profiles/Qidi/filament/Overture ABS @Qidi X-Plus 4 0.8 nozzle.json @@ -0,0 +1,49 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "setting_id": "GFSA04", + "instantiation": "true", + "enable_pressure_advance": [ + "1" + ], + "activate_chamber_temp_control": [ + "0" + ], + "chamber_temperature": [ + "60" + ], + "fan_max_speed": [ + "80" + ], + "from": "system", + "hot_plate_temp_initial_layer": [ + "90" + ], + "inherits": "Overture ABS @Qidi", + "is_custom_defined": "0", + "name": "Overture ABS @Qidi X-Plus 4 0.8 nozzle", + "nozzle_temperature": [ + "255" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "overhang_fan_speed": [ + "80" + ], + "pressure_advance": [ + "0.01" + ], + "slow_down_min_speed": [ + "10" + ], + "activate_air_filtration":[ + "1" + ], + "during_print_exhaust_fan_speed":[ + "0" + ], + "compatible_printers": [ +"Qidi X-Plus 4 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Overture ABS @Qidi.json b/resources/profiles/Qidi/filament/Overture ABS @Qidi.json new file mode 100644 index 0000000000..d1a46c3fca --- /dev/null +++ b/resources/profiles/Qidi/filament/Overture ABS @Qidi.json @@ -0,0 +1,63 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "setting_id": "GFSA04", + "name": "Overture ABS @Qidi", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_abs", + "filament_flow_ratio": [ + "0.96" + ], + "filament_max_volumetric_speed": [ + "17" + ], + "enable_pressure_advance": [ + "1" + ], + "nozzle_temperature_initial_layer": [ + "260" + ], + "nozzle_temperature": [ + "265" + ], + "slow_down_layer_time": [ + "6" + ], + "pressure_advance": [ + "0.025" + ], + "fan_max_speed":[ + "80" + ], + "fan_min_speed":[ + "20" + ], + "overhang_fan_speed": [ + "80" + ], + "filament_density":[ + "1.05" + ], + "chamber_temperature": [ + "60" + ], + "fan_cooling_layer_time": [ + "60" + ], + "slow_down_min_speed": [ + "20" + ], + "filament_vendor": [ + "Overture" + ], + "compatible_printers": [ + "Qidi X-Plus 0.4 nozzle", + "Qidi X-Max 0.4 nozzle", + "Qidi X-CF Pro 0.4 nozzle", + "Qidi X-Smart 3 0.4 nozzle", + "Qidi X-Plus 3 0.4 nozzle", + "Qidi X-Max 3 0.4 nozzle" + + ] +} diff --git a/resources/profiles/Qidi/filament/Overture PLA @Qidi 0.2 nozzle.json b/resources/profiles/Qidi/filament/Overture PLA @Qidi 0.2 nozzle.json new file mode 100644 index 0000000000..a3400d0bbc --- /dev/null +++ b/resources/profiles/Qidi/filament/Overture PLA @Qidi 0.2 nozzle.json @@ -0,0 +1,26 @@ +{ + "type": "filament", + "filament_id": "GFL99", + "setting_id": "GFSL99", + "name": "Overture PLA @Qidi 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Overture PLA @Qidi", + "pressure_advance": [ + "0.057" + ], + "enable_pressure_advance": [ + "1" + ], + "filament_max_volumetric_speed": [ + "2" + ], + "compatible_printers": [ + "Qidi X-Plus 0.2 nozzle", + "Qidi X-Max 0.2 nozzle", + "Qidi X-CF Pro 0.2 nozzle", + "Qidi X-Smart 3 0.2 nozzle", + "Qidi X-Plus 3 0.2 nozzle", + "Qidi X-Max 3 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Overture PLA @Qidi 0.6 nozzle.json b/resources/profiles/Qidi/filament/Overture PLA @Qidi 0.6 nozzle.json new file mode 100644 index 0000000000..fec468ff13 --- /dev/null +++ b/resources/profiles/Qidi/filament/Overture PLA @Qidi 0.6 nozzle.json @@ -0,0 +1,23 @@ +{ + "type": "filament", + "filament_id": "GFL99", + "setting_id": "GFSL99", + "name": "Overture PLA @Qidi 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Overture PLA @Qidi", + "enable_pressure_advance": [ + "1" + ], + "pressure_advance": [ + "0.017" + ], + "compatible_printers": [ + "Qidi X-Plus 0.6 nozzle", + "Qidi X-Max 0.6 nozzle", + "Qidi X-CF Pro 0.6 nozzle", + "Qidi X-Smart 3 0.6 nozzle", + "Qidi X-Plus 3 0.6 nozzle", + "Qidi X-Max 3 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Overture PLA @Qidi 0.8 nozzle.json b/resources/profiles/Qidi/filament/Overture PLA @Qidi 0.8 nozzle.json new file mode 100644 index 0000000000..61223a56be --- /dev/null +++ b/resources/profiles/Qidi/filament/Overture PLA @Qidi 0.8 nozzle.json @@ -0,0 +1,23 @@ +{ + "type": "filament", + "filament_id": "GFL99", + "setting_id": "GFSL99", + "name": "Overture PLA @Qidi 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Overture PLA @Qidi", + "enable_pressure_advance": [ + "1" + ], + "pressure_advance": [ + "0.009" + ], + "compatible_printers": [ + "Qidi X-Plus 0.8 nozzle", + "Qidi X-Max 0.8 nozzle", + "Qidi X-CF Pro 0.8 nozzle", + "Qidi X-Smart 3 0.8 nozzle", + "Qidi X-Plus 3 0.8 nozzle", + "Qidi X-Max 3 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Overture PLA @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/Overture PLA @Qidi Q1 Pro 0.2 nozzle.json new file mode 100644 index 0000000000..0c5a00f072 --- /dev/null +++ b/resources/profiles/Qidi/filament/Overture PLA @Qidi Q1 Pro 0.2 nozzle.json @@ -0,0 +1,51 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "activate_air_filtration": [ + "1" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "during_print_exhaust_fan_speed": [ + "100" + ], + "fan_cooling_layer_time": [ + "60" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_max_volumetric_speed": [ + "2" + ], + "filament_settings_id": [ + "Overture PLA @Qidi Q1 Pro 0.2 nozzle" + ], + "from": "system", + "full_fan_speed_layer": [ + "3" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "inherits": "Overture PLA @Qidi", + "is_custom_defined": "0", + "name": "Overture PLA @Qidi Q1 Pro 0.2 nozzle", + "nozzle_temperature": [ + "210" + ], + "pressure_advance": [ + "0.047" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi Q1 Pro 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Overture PLA @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/Overture PLA @Qidi Q1 Pro 0.4 nozzle.json new file mode 100644 index 0000000000..c3bbf0e93a --- /dev/null +++ b/resources/profiles/Qidi/filament/Overture PLA @Qidi Q1 Pro 0.4 nozzle.json @@ -0,0 +1,48 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "activate_air_filtration": [ + "1" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "filament_flow_ratio": [ + "0.98" + ], + "during_print_exhaust_fan_speed": [ + "100" + ], + "fan_cooling_layer_time": [ + "60" + ], + "filament_settings_id": [ + "Overture PLA @Qidi Q1 Pro 0.4 nozzle" + ], + "from": "system", + "full_fan_speed_layer": [ + "3" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "inherits": "Overture PLA @Qidi", + "is_custom_defined": "0", + "name": "Overture PLA @Qidi Q1 Pro 0.4 nozzle", + "nozzle_temperature": [ + "210" + ], + "pressure_advance": [ + "0.028" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi Q1 Pro 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Overture PLA @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/Overture PLA @Qidi Q1 Pro 0.6 nozzle.json new file mode 100644 index 0000000000..899435108c --- /dev/null +++ b/resources/profiles/Qidi/filament/Overture PLA @Qidi Q1 Pro 0.6 nozzle.json @@ -0,0 +1,48 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "activate_air_filtration": [ + "1" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "during_print_exhaust_fan_speed": [ + "100" + ], + "fan_cooling_layer_time": [ + "60" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_settings_id": [ + "Overture PLA @Qidi Q1 Pro 0.6 nozzle" + ], + "from": "system", + "full_fan_speed_layer": [ + "3" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "inherits": "Overture PLA @Qidi", + "is_custom_defined": "0", + "name": "Overture PLA @Qidi Q1 Pro 0.6 nozzle", + "nozzle_temperature": [ + "210" + ], + "pressure_advance": [ + "0.012" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi Q1 Pro 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Overture PLA @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/Overture PLA @Qidi Q1 Pro 0.8 nozzle.json new file mode 100644 index 0000000000..57e23aa6cf --- /dev/null +++ b/resources/profiles/Qidi/filament/Overture PLA @Qidi Q1 Pro 0.8 nozzle.json @@ -0,0 +1,48 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "activate_air_filtration": [ + "1" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "during_print_exhaust_fan_speed": [ + "100" + ], + "fan_cooling_layer_time": [ + "60" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_settings_id": [ + "Overture PLA @Qidi Q1 Pro 0.8 nozzle" + ], + "from": "system", + "full_fan_speed_layer": [ + "3" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "inherits": "Overture PLA @Qidi", + "is_custom_defined": "0", + "name": "Overture PLA @Qidi Q1 Pro 0.8 nozzle", + "nozzle_temperature": [ + "210" + ], + "pressure_advance": [ + "0.007" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi Q1 Pro 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Overture PLA @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/Overture PLA @Qidi X-Plus 4 0.2 nozzle.json new file mode 100644 index 0000000000..f8df246f9e --- /dev/null +++ b/resources/profiles/Qidi/filament/Overture PLA @Qidi X-Plus 4 0.2 nozzle.json @@ -0,0 +1,51 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "activate_air_filtration": [ + "1" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "during_print_exhaust_fan_speed": [ + "100" + ], + "fan_cooling_layer_time": [ + "60" + ], + "filament_flow_ratio": [ + "1" + ], + "filament_max_volumetric_speed": [ + "2" + ], + "filament_settings_id": [ + "Overture PLA @Qidi X-Plus 4 0.2 nozzle" + ], + "from": "system", + "full_fan_speed_layer": [ + "3" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "inherits": "Overture PLA @Qidi", + "is_custom_defined": "0", + "name": "Overture PLA @Qidi X-Plus 4 0.2 nozzle", + "nozzle_temperature": [ + "210" + ], + "pressure_advance": [ + "0.062" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Overture PLA @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/Overture PLA @Qidi X-Plus 4 0.4 nozzle.json new file mode 100644 index 0000000000..8153e2947b --- /dev/null +++ b/resources/profiles/Qidi/filament/Overture PLA @Qidi X-Plus 4 0.4 nozzle.json @@ -0,0 +1,51 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "activate_air_filtration": [ + "1" + ], + "additional_cooling_fan_speed": [ + "100" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "during_print_exhaust_fan_speed": [ + "100" + ], + "filament_flow_ratio": [ + "1" + ], + "fan_cooling_layer_time": [ + "60" + ], + "filament_settings_id": [ + "Overture PLA @Qidi X-Plus 4 0.4 nozzle" + ], + "from": "system", + "full_fan_speed_layer": [ + "3" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "inherits": "Overture PLA @Qidi", + "is_custom_defined": "0", + "name": "Overture PLA @Qidi X-Plus 4 0.4 nozzle", + "nozzle_temperature": [ + "210" + ], + "pressure_advance": [ + "0.037" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Overture PLA @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/Overture PLA @Qidi X-Plus 4 0.6 nozzle.json new file mode 100644 index 0000000000..48670f6199 --- /dev/null +++ b/resources/profiles/Qidi/filament/Overture PLA @Qidi X-Plus 4 0.6 nozzle.json @@ -0,0 +1,48 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "activate_air_filtration": [ + "1" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "during_print_exhaust_fan_speed": [ + "100" + ], + "fan_cooling_layer_time": [ + "60" + ], + "filament_flow_ratio": [ + "1" + ], + "filament_settings_id": [ + "Overture PLA @Qidi X-Plus 4 0.6 nozzle" + ], + "from": "system", + "full_fan_speed_layer": [ + "3" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "inherits": "Overture PLA @Qidi", + "is_custom_defined": "0", + "name": "Overture PLA @Qidi X-Plus 4 0.6 nozzle", + "nozzle_temperature": [ + "210" + ], + "pressure_advance": [ + "0.019" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Overture PLA @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/Overture PLA @Qidi X-Plus 4 0.8 nozzle.json new file mode 100644 index 0000000000..31f0b20f80 --- /dev/null +++ b/resources/profiles/Qidi/filament/Overture PLA @Qidi X-Plus 4 0.8 nozzle.json @@ -0,0 +1,48 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "activate_air_filtration": [ + "1" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "during_print_exhaust_fan_speed": [ + "100" + ], + "fan_cooling_layer_time": [ + "60" + ], + "filament_flow_ratio": [ + "1" + ], + "filament_settings_id": [ + "Overture PLA @Qidi X-Plus 4 0.8 nozzle" + ], + "from": "system", + "full_fan_speed_layer": [ + "3" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "inherits": "Overture PLA @Qidi", + "is_custom_defined": "0", + "name": "Overture PLA @Qidi X-Plus 4 0.8 nozzle", + "nozzle_temperature": [ + "210" + ], + "pressure_advance": [ + "0.012" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Overture PLA @Qidi.json b/resources/profiles/Qidi/filament/Overture PLA @Qidi.json new file mode 100644 index 0000000000..f51731503b --- /dev/null +++ b/resources/profiles/Qidi/filament/Overture PLA @Qidi.json @@ -0,0 +1,38 @@ +{ + "type": "filament", + "filament_id": "GFL99", + "setting_id": "GFSL99", + "name": "Overture PLA @Qidi", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_pla", + "filament_flow_ratio": [ + "0.99" + ], + "filament_max_volumetric_speed": [ + "11" + ], + "slow_down_layer_time": [ + "10" + ], + "enable_pressure_advance": [ + "1" + ], + "pressure_advance": [ + "0.036" + ], + "additional_cooling_fan_speed": [ + "100" + ], + "filament_vendor": [ + "Overture" + ], + "compatible_printers": [ + "Qidi X-Plus 0.4 nozzle", + "Qidi X-Max 0.4 nozzle", + "Qidi X-CF Pro 0.4 nozzle", + "Qidi X-Smart 3 0.4 nozzle", + "Qidi X-Plus 3 0.4 nozzle", + "Qidi X-Max 3 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/PolyLite ABS @Qidi 0.2 nozzle.json b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi 0.2 nozzle.json new file mode 100644 index 0000000000..69222ed1c7 --- /dev/null +++ b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi 0.2 nozzle.json @@ -0,0 +1,26 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "setting_id": "GFSA04", + "name": "PolyLite ABS @Qidi 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "PolyLite ABS @Qidi", + "enable_pressure_advance": [ + "1" + ], + "pressure_advance": [ + "0.052" + ], + "filament_max_volumetric_speed": [ + "2" + ], + "compatible_printers": [ + "Qidi X-Plus 0.2 nozzle", + "Qidi X-Max 0.2 nozzle", + "Qidi X-CF Pro 0.2 nozzle", + "Qidi X-Smart 3 0.2 nozzle", + "Qidi X-Plus 3 0.2 nozzle", + "Qidi X-Max 3 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/PolyLite ABS @Qidi 0.6 nozzle.json b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi 0.6 nozzle.json new file mode 100644 index 0000000000..ae59ccb766 --- /dev/null +++ b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi 0.6 nozzle.json @@ -0,0 +1,23 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "setting_id": "GFSA04", + "name": "PolyLite ABS @Qidi 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "PolyLite ABS @Qidi", + "enable_pressure_advance": [ + "1" + ], + "pressure_advance": [ + "0.018" + ], + "compatible_printers": [ + "Qidi X-Plus 0.6 nozzle", + "Qidi X-Max 0.6 nozzle", + "Qidi X-CF Pro 0.6 nozzle", + "Qidi X-Smart 3 0.6 nozzle", + "Qidi X-Plus 3 0.6 nozzle", + "Qidi X-Max 3 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/PolyLite ABS @Qidi 0.8 nozzle.json b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi 0.8 nozzle.json new file mode 100644 index 0000000000..1dd7c0635b --- /dev/null +++ b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi 0.8 nozzle.json @@ -0,0 +1,26 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "setting_id": "GFSA04", + "name": "PolyLite ABS @Qidi 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "PolyLite ABS @Qidi", + "enable_pressure_advance": [ + "1" + ], + "pressure_advance": [ + "0.01" + ], + "slow_down_min_speed": [ + "10" + ], + "compatible_printers": [ + "Qidi X-Plus 0.8 nozzle", + "Qidi X-Max 0.8 nozzle", + "Qidi X-CF Pro 0.8 nozzle", + "Qidi X-Smart 3 0.8 nozzle", + "Qidi X-Plus 3 0.8 nozzle", + "Qidi X-Max 3 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/PolyLite ABS @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi Q1 Pro 0.2 nozzle.json new file mode 100644 index 0000000000..0dcc51f6e4 --- /dev/null +++ b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi Q1 Pro 0.2 nozzle.json @@ -0,0 +1,55 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "setting_id": "GFSA04", + "instantiation": "true", + "filament_flow_ratio": [ + "0.95" + ], + "enable_pressure_advance": [ + "1" + ], + "activate_chamber_temp_control": [ + "0" + ], + "chamber_temperature": [ + "0" + ], + "fan_max_speed": [ + "80" + ], + "filament_max_volumetric_speed": [ + "2" + ], + "from": "system", + "hot_plate_temp_initial_layer": [ + "90" + ], + "inherits": "PolyLite ABS @Qidi", + "is_custom_defined": "0", + "name": "PolyLite ABS @Qidi Q1 Pro 0.2 nozzle", + "nozzle_temperature": [ + "255" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "overhang_fan_speed": [ + "80" + ], + "pressure_advance": [ + "0.021" + ], + "slow_down_min_speed": [ + "20" + ], + "activate_air_filtration":[ + "1" + ], + "during_print_exhaust_fan_speed":[ + "0" + ], + "compatible_printers": [ +"Qidi Q1 Pro 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/PolyLite ABS @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi Q1 Pro 0.4 nozzle.json new file mode 100644 index 0000000000..d089e29c1f --- /dev/null +++ b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi Q1 Pro 0.4 nozzle.json @@ -0,0 +1,52 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "setting_id": "GFSA04", + "instantiation": "true", + "activate_air_filtration":[ + "0" + ], + "during_print_exhaust_fan_speed":[ + "0" + ], + "filament_flow_ratio": [ + "0.95" + ], + "enable_pressure_advance": [ + "1" + ], + "activate_chamber_temp_control": [ + "0" + ], + "chamber_temperature": [ + "60" + ], + "fan_max_speed": [ + "80" + ], + "from": "system", + "hot_plate_temp_initial_layer": [ + "90" + ], + "inherits": "PolyLite ABS @Qidi", + "is_custom_defined": "0", + "name": "PolyLite ABS @Qidi Q1 Pro 0.4 nozzle", + "nozzle_temperature": [ + "255" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "overhang_fan_speed": [ + "80" + ], + "pressure_advance": [ + "0.032" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ +"Qidi Q1 Pro 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/PolyLite ABS @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi Q1 Pro 0.6 nozzle.json new file mode 100644 index 0000000000..a552e08dc2 --- /dev/null +++ b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi Q1 Pro 0.6 nozzle.json @@ -0,0 +1,52 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "setting_id": "GFSA04", + "instantiation": "true", + "filament_flow_ratio": [ + "0.95" + ], + "enable_pressure_advance": [ + "1" + ], + "activate_chamber_temp_control": [ + "0" + ], + "chamber_temperature": [ + "60" + ], + "fan_max_speed": [ + "80" + ], + "from": "system", + "hot_plate_temp_initial_layer": [ + "90" + ], + "inherits": "PolyLite ABS @Qidi", + "is_custom_defined": "0", + "name": "PolyLite ABS @Qidi Q1 Pro 0.6 nozzle", + "nozzle_temperature": [ + "250" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "overhang_fan_speed": [ + "80" + ], + "pressure_advance": [ + "0.012" + ], + "slow_down_min_speed": [ + "20" + ], + "activate_air_filtration":[ + "1" + ], + "during_print_exhaust_fan_speed":[ + "0" + ], + "compatible_printers": [ +"Qidi Q1 Pro 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/PolyLite ABS @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi Q1 Pro 0.8 nozzle.json new file mode 100644 index 0000000000..615db32b3e --- /dev/null +++ b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi Q1 Pro 0.8 nozzle.json @@ -0,0 +1,52 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "setting_id": "GFSA04", + "instantiation": "true", + "filament_flow_ratio": [ + "0.95" + ], + "enable_pressure_advance": [ + "1" + ], + "activate_chamber_temp_control": [ + "0" + ], + "chamber_temperature": [ + "60" + ], + "fan_max_speed": [ + "80" + ], + "from": "system", + "hot_plate_temp_initial_layer": [ + "90" + ], + "inherits": "PolyLite ABS @Qidi", + "is_custom_defined": "0", + "name": "PolyLite ABS @Qidi Q1 Pro 0.8 nozzle", + "nozzle_temperature": [ + "255" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "overhang_fan_speed": [ + "100" + ], + "pressure_advance": [ + "0.01" + ], + "slow_down_min_speed": [ + "10" + ], + "activate_air_filtration":[ + "1" + ], + "during_print_exhaust_fan_speed":[ + "0" + ], + "compatible_printers": [ +"Qidi Q1 Pro 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/PolyLite ABS @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi X-Plus 4 0.2 nozzle.json new file mode 100644 index 0000000000..64619cd15f --- /dev/null +++ b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi X-Plus 4 0.2 nozzle.json @@ -0,0 +1,52 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "setting_id": "GFSA04", + "instantiation": "true", + "enable_pressure_advance": [ + "1" + ], + "activate_chamber_temp_control": [ + "0" + ], + "chamber_temperature": [ + "0" + ], + "fan_max_speed": [ + "80" + ], + "filament_max_volumetric_speed": [ + "2" + ], + "from": "system", + "hot_plate_temp_initial_layer": [ + "90" + ], + "inherits": "PolyLite ABS @Qidi", + "is_custom_defined": "0", + "name": "PolyLite ABS @Qidi X-Plus 4 0.2 nozzle", + "nozzle_temperature": [ + "255" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "overhang_fan_speed": [ + "80" + ], + "pressure_advance": [ + "0.054" + ], + "slow_down_min_speed": [ + "20" + ], + "activate_air_filtration":[ + "1" + ], + "during_print_exhaust_fan_speed":[ + "0" + ], + "compatible_printers": [ +"Qidi X-Plus 4 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/PolyLite ABS @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi X-Plus 4 0.4 nozzle.json new file mode 100644 index 0000000000..0d3acf0457 --- /dev/null +++ b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi X-Plus 4 0.4 nozzle.json @@ -0,0 +1,49 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "setting_id": "GFSA04", + "instantiation": "true", + "enable_pressure_advance": [ + "1" + ], + "activate_chamber_temp_control": [ + "0" + ], + "chamber_temperature": [ + "60" + ], + "fan_max_speed": [ + "80" + ], + "from": "system", + "hot_plate_temp_initial_layer": [ + "90" + ], + "inherits": "PolyLite ABS @Qidi", + "is_custom_defined": "0", + "name": "PolyLite ABS @Qidi X-Plus 4 0.4 nozzle", + "nozzle_temperature": [ + "255" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "overhang_fan_speed": [ + "80" + ], + "pressure_advance": [ + "0.033" + ], + "slow_down_min_speed": [ + "20" + ], + "activate_air_filtration":[ + "1" + ], + "during_print_exhaust_fan_speed":[ + "0" + ], + "compatible_printers": [ +"Qidi X-Plus 4 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/PolyLite ABS @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi X-Plus 4 0.6 nozzle.json new file mode 100644 index 0000000000..6e363b2859 --- /dev/null +++ b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi X-Plus 4 0.6 nozzle.json @@ -0,0 +1,49 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "setting_id": "GFSA04", + "instantiation": "true", + "enable_pressure_advance": [ + "1" + ], + "activate_chamber_temp_control": [ + "0" + ], + "chamber_temperature": [ + "60" + ], + "fan_max_speed": [ + "80" + ], + "from": "system", + "hot_plate_temp_initial_layer": [ + "90" + ], + "inherits": "PolyLite ABS @Qidi", + "is_custom_defined": "0", + "name": "PolyLite ABS @Qidi X-Plus 4 0.6 nozzle", + "nozzle_temperature": [ + "255" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "overhang_fan_speed": [ + "80" + ], + "pressure_advance": [ + "0.02" + ], + "slow_down_min_speed": [ + "20" + ], + "activate_air_filtration":[ + "1" + ], + "during_print_exhaust_fan_speed":[ + "0" + ], + "compatible_printers": [ +"Qidi X-Plus 4 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/PolyLite ABS @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi X-Plus 4 0.8 nozzle.json new file mode 100644 index 0000000000..f263aa35af --- /dev/null +++ b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi X-Plus 4 0.8 nozzle.json @@ -0,0 +1,49 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "setting_id": "GFSA04", + "instantiation": "true", + "enable_pressure_advance": [ + "1" + ], + "activate_chamber_temp_control": [ + "0" + ], + "chamber_temperature": [ + "60" + ], + "fan_max_speed": [ + "80" + ], + "from": "system", + "hot_plate_temp_initial_layer": [ + "90" + ], + "inherits": "PolyLite ABS @Qidi", + "is_custom_defined": "0", + "name": "PolyLite ABS @Qidi X-Plus 4 0.8 nozzle", + "nozzle_temperature": [ + "255" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "overhang_fan_speed": [ + "80" + ], + "pressure_advance": [ + "0.01" + ], + "slow_down_min_speed": [ + "10" + ], + "activate_air_filtration":[ + "1" + ], + "during_print_exhaust_fan_speed":[ + "0" + ], + "compatible_printers": [ +"Qidi X-Plus 4 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/PolyLite ABS @Qidi.json b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi.json new file mode 100644 index 0000000000..784c4cbb4d --- /dev/null +++ b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi.json @@ -0,0 +1,63 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "setting_id": "GFSA04", + "name": "PolyLite ABS @Qidi", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_abs", + "filament_flow_ratio": [ + "0.96" + ], + "filament_max_volumetric_speed": [ + "17" + ], + "enable_pressure_advance": [ + "1" + ], + "nozzle_temperature_initial_layer": [ + "260" + ], + "nozzle_temperature": [ + "265" + ], + "slow_down_layer_time": [ + "6" + ], + "pressure_advance": [ + "0.025" + ], + "fan_max_speed":[ + "80" + ], + "fan_min_speed":[ + "20" + ], + "overhang_fan_speed": [ + "80" + ], + "filament_density":[ + "1.05" + ], + "chamber_temperature": [ + "60" + ], + "fan_cooling_layer_time": [ + "60" + ], + "slow_down_min_speed": [ + "20" + ], + "filament_vendor": [ + "Polymaker" + ], + "compatible_printers": [ + "Qidi X-Plus 0.4 nozzle", + "Qidi X-Max 0.4 nozzle", + "Qidi X-CF Pro 0.4 nozzle", + "Qidi X-Smart 3 0.4 nozzle", + "Qidi X-Plus 3 0.4 nozzle", + "Qidi X-Max 3 0.4 nozzle" + + ] +} diff --git a/resources/profiles/Qidi/filament/PolyLite PLA @Qidi 0.2 nozzle.json b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi 0.2 nozzle.json new file mode 100644 index 0000000000..30293e6be8 --- /dev/null +++ b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi 0.2 nozzle.json @@ -0,0 +1,26 @@ +{ + "type": "filament", + "filament_id": "GFL99", + "setting_id": "GFSL99", + "name": "PolyLite PLA @Qidi 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "PolyLite PLA @Qidi", + "pressure_advance": [ + "0.057" + ], + "enable_pressure_advance": [ + "1" + ], + "filament_max_volumetric_speed": [ + "2" + ], + "compatible_printers": [ + "Qidi X-Plus 0.2 nozzle", + "Qidi X-Max 0.2 nozzle", + "Qidi X-CF Pro 0.2 nozzle", + "Qidi X-Smart 3 0.2 nozzle", + "Qidi X-Plus 3 0.2 nozzle", + "Qidi X-Max 3 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/PolyLite PLA @Qidi 0.6 nozzle.json b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi 0.6 nozzle.json new file mode 100644 index 0000000000..6a4829a41d --- /dev/null +++ b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi 0.6 nozzle.json @@ -0,0 +1,23 @@ +{ + "type": "filament", + "filament_id": "GFL99", + "setting_id": "GFSL99", + "name": "PolyLite PLA @Qidi 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "PolyLite PLA @Qidi", + "enable_pressure_advance": [ + "1" + ], + "pressure_advance": [ + "0.017" + ], + "compatible_printers": [ + "Qidi X-Plus 0.6 nozzle", + "Qidi X-Max 0.6 nozzle", + "Qidi X-CF Pro 0.6 nozzle", + "Qidi X-Smart 3 0.6 nozzle", + "Qidi X-Plus 3 0.6 nozzle", + "Qidi X-Max 3 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/PolyLite PLA @Qidi 0.8 nozzle.json b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi 0.8 nozzle.json new file mode 100644 index 0000000000..6b0d7dd6fd --- /dev/null +++ b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi 0.8 nozzle.json @@ -0,0 +1,23 @@ +{ + "type": "filament", + "filament_id": "GFL99", + "setting_id": "GFSL99", + "name": "PolyLite PLA @Qidi 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "PolyLite PLA @Qidi", + "enable_pressure_advance": [ + "1" + ], + "pressure_advance": [ + "0.009" + ], + "compatible_printers": [ + "Qidi X-Plus 0.8 nozzle", + "Qidi X-Max 0.8 nozzle", + "Qidi X-CF Pro 0.8 nozzle", + "Qidi X-Smart 3 0.8 nozzle", + "Qidi X-Plus 3 0.8 nozzle", + "Qidi X-Max 3 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/PolyLite PLA @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi Q1 Pro 0.2 nozzle.json new file mode 100644 index 0000000000..2ddbc38ce8 --- /dev/null +++ b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi Q1 Pro 0.2 nozzle.json @@ -0,0 +1,51 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "activate_air_filtration": [ + "1" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "during_print_exhaust_fan_speed": [ + "100" + ], + "fan_cooling_layer_time": [ + "60" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_max_volumetric_speed": [ + "2" + ], + "filament_settings_id": [ + "PolyLite PLA @Qidi Q1 Pro 0.2 nozzle" + ], + "from": "system", + "full_fan_speed_layer": [ + "3" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "inherits": "PolyLite PLA @Qidi", + "is_custom_defined": "0", + "name": "PolyLite PLA @Qidi Q1 Pro 0.2 nozzle", + "nozzle_temperature": [ + "210" + ], + "pressure_advance": [ + "0.047" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi Q1 Pro 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/PolyLite PLA @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi Q1 Pro 0.4 nozzle.json new file mode 100644 index 0000000000..a8cbd7a245 --- /dev/null +++ b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi Q1 Pro 0.4 nozzle.json @@ -0,0 +1,48 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "activate_air_filtration": [ + "1" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "filament_flow_ratio": [ + "0.98" + ], + "during_print_exhaust_fan_speed": [ + "100" + ], + "fan_cooling_layer_time": [ + "60" + ], + "filament_settings_id": [ + "PolyLite PLA @Qidi Q1 Pro 0.4 nozzle" + ], + "from": "system", + "full_fan_speed_layer": [ + "3" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "inherits": "PolyLite PLA @Qidi", + "is_custom_defined": "0", + "name": "PolyLite PLA @Qidi Q1 Pro 0.4 nozzle", + "nozzle_temperature": [ + "210" + ], + "pressure_advance": [ + "0.028" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi Q1 Pro 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/PolyLite PLA @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi Q1 Pro 0.6 nozzle.json new file mode 100644 index 0000000000..ecbed8cbb8 --- /dev/null +++ b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi Q1 Pro 0.6 nozzle.json @@ -0,0 +1,48 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "activate_air_filtration": [ + "1" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "during_print_exhaust_fan_speed": [ + "100" + ], + "fan_cooling_layer_time": [ + "60" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_settings_id": [ + "PolyLite PLA @Qidi Q1 Pro 0.6 nozzle" + ], + "from": "system", + "full_fan_speed_layer": [ + "3" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "inherits": "PolyLite PLA @Qidi", + "is_custom_defined": "0", + "name": "PolyLite PLA @Qidi Q1 Pro 0.6 nozzle", + "nozzle_temperature": [ + "210" + ], + "pressure_advance": [ + "0.012" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi Q1 Pro 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/PolyLite PLA @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi Q1 Pro 0.8 nozzle.json new file mode 100644 index 0000000000..cf131bc7aa --- /dev/null +++ b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi Q1 Pro 0.8 nozzle.json @@ -0,0 +1,48 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "activate_air_filtration": [ + "1" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "during_print_exhaust_fan_speed": [ + "100" + ], + "fan_cooling_layer_time": [ + "60" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_settings_id": [ + "PolyLite PLA @Qidi Q1 Pro 0.8 nozzle" + ], + "from": "system", + "full_fan_speed_layer": [ + "3" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "inherits": "PolyLite PLA @Qidi", + "is_custom_defined": "0", + "name": "PolyLite PLA @Qidi Q1 Pro 0.8 nozzle", + "nozzle_temperature": [ + "210" + ], + "pressure_advance": [ + "0.007" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi Q1 Pro 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/PolyLite PLA @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi X-Plus 4 0.2 nozzle.json new file mode 100644 index 0000000000..3819735f38 --- /dev/null +++ b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi X-Plus 4 0.2 nozzle.json @@ -0,0 +1,51 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "activate_air_filtration": [ + "1" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "during_print_exhaust_fan_speed": [ + "100" + ], + "fan_cooling_layer_time": [ + "60" + ], + "filament_flow_ratio": [ + "1" + ], + "filament_max_volumetric_speed": [ + "2" + ], + "filament_settings_id": [ + "PolyLite PLA @Qidi X-Plus 4 0.2 nozzle" + ], + "from": "system", + "full_fan_speed_layer": [ + "3" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "inherits": "PolyLite PLA @Qidi", + "is_custom_defined": "0", + "name": "PolyLite PLA @Qidi X-Plus 4 0.2 nozzle", + "nozzle_temperature": [ + "210" + ], + "pressure_advance": [ + "0.062" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/PolyLite PLA @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi X-Plus 4 0.4 nozzle.json new file mode 100644 index 0000000000..70a0616e8f --- /dev/null +++ b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi X-Plus 4 0.4 nozzle.json @@ -0,0 +1,51 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "activate_air_filtration": [ + "1" + ], + "additional_cooling_fan_speed": [ + "100" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "during_print_exhaust_fan_speed": [ + "100" + ], + "filament_flow_ratio": [ + "1" + ], + "fan_cooling_layer_time": [ + "60" + ], + "filament_settings_id": [ + "PolyLite PLA @Qidi X-Plus 4 0.4 nozzle" + ], + "from": "system", + "full_fan_speed_layer": [ + "3" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "inherits": "PolyLite PLA @Qidi", + "is_custom_defined": "0", + "name": "PolyLite PLA @Qidi X-Plus 4 0.4 nozzle", + "nozzle_temperature": [ + "210" + ], + "pressure_advance": [ + "0.037" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/PolyLite PLA @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi X-Plus 4 0.6 nozzle.json new file mode 100644 index 0000000000..3f17fa9ad2 --- /dev/null +++ b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi X-Plus 4 0.6 nozzle.json @@ -0,0 +1,48 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "activate_air_filtration": [ + "1" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "during_print_exhaust_fan_speed": [ + "100" + ], + "fan_cooling_layer_time": [ + "60" + ], + "filament_flow_ratio": [ + "1" + ], + "filament_settings_id": [ + "PolyLite PLA @Qidi X-Plus 4 0.6 nozzle" + ], + "from": "system", + "full_fan_speed_layer": [ + "3" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "inherits": "PolyLite PLA @Qidi", + "is_custom_defined": "0", + "name": "PolyLite PLA @Qidi X-Plus 4 0.6 nozzle", + "nozzle_temperature": [ + "210" + ], + "pressure_advance": [ + "0.019" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/PolyLite PLA @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi X-Plus 4 0.8 nozzle.json new file mode 100644 index 0000000000..55f465a7c2 --- /dev/null +++ b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi X-Plus 4 0.8 nozzle.json @@ -0,0 +1,48 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "activate_air_filtration": [ + "1" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "during_print_exhaust_fan_speed": [ + "100" + ], + "fan_cooling_layer_time": [ + "60" + ], + "filament_flow_ratio": [ + "1" + ], + "filament_settings_id": [ + "PolyLite PLA @Qidi X-Plus 4 0.8 nozzle" + ], + "from": "system", + "full_fan_speed_layer": [ + "3" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "inherits": "PolyLite PLA @Qidi", + "is_custom_defined": "0", + "name": "PolyLite PLA @Qidi X-Plus 4 0.8 nozzle", + "nozzle_temperature": [ + "210" + ], + "pressure_advance": [ + "0.012" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/PolyLite PLA @Qidi.json b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi.json new file mode 100644 index 0000000000..ab0805f6dd --- /dev/null +++ b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi.json @@ -0,0 +1,38 @@ +{ + "type": "filament", + "filament_id": "GFL99", + "setting_id": "GFSL99", + "name": "PolyLite PLA @Qidi", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_pla", + "filament_flow_ratio": [ + "0.99" + ], + "filament_max_volumetric_speed": [ + "11" + ], + "slow_down_layer_time": [ + "10" + ], + "enable_pressure_advance": [ + "1" + ], + "pressure_advance": [ + "0.036" + ], + "additional_cooling_fan_speed": [ + "100" + ], + "filament_vendor": [ + "Polymaker" + ], + "compatible_printers": [ + "Qidi X-Plus 0.4 nozzle", + "Qidi X-Max 0.4 nozzle", + "Qidi X-CF Pro 0.4 nozzle", + "Qidi X-Smart 3 0.4 nozzle", + "Qidi X-Plus 3 0.4 nozzle", + "Qidi X-Max 3 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PAHT-CF.json b/resources/profiles/Qidi/filament/QIDI PAHT-CF.json index 582a3a2c45..ef2e33a28a 100644 --- a/resources/profiles/Qidi/filament/QIDI PAHT-CF.json +++ b/resources/profiles/Qidi/filament/QIDI PAHT-CF.json @@ -28,7 +28,7 @@ "0%" ], "overhang_fan_speed": [ - "50" + "40" ], "fan_cooling_layer_time": [ "10" diff --git a/resources/profiles/Qidi/filament/QIDI PAHT-GF @0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PAHT-GF @0.6 nozzle.json new file mode 100644 index 0000000000..6a652d9104 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PAHT-GF @0.6 nozzle.json @@ -0,0 +1,20 @@ +{ + "type": "filament", + "filament_id": "GFL98", + "setting_id": "GFSL98", + "name": "QIDI PAHT-GF @0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PAHT-GF", + "pressure_advance": [ + "0.016" + ], + "compatible_printers": [ + "Qidi X-Plus 0.6 nozzle", + "Qidi X-Max 0.6 nozzle", + "Qidi X-CF Pro 0.6 nozzle", + "Qidi X-Smart 3 0.6 nozzle", + "Qidi X-Plus 3 0.6 nozzle", + "Qidi X-Max 3 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PAHT-GF @0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PAHT-GF @0.8 nozzle.json new file mode 100644 index 0000000000..07c63028e0 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PAHT-GF @0.8 nozzle.json @@ -0,0 +1,20 @@ +{ + "type": "filament", + "filament_id": "GFL98", + "setting_id": "GFSL98", + "name": "QIDI PAHT-GF @0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PAHT-GF", + "pressure_advance": [ + "0.023" + ], + "compatible_printers": [ + "Qidi X-Plus 0.8 nozzle", + "Qidi X-Max 0.8 nozzle", + "Qidi X-CF Pro 0.8 nozzle", + "Qidi X-Smart 3 0.8 nozzle", + "Qidi X-Plus 3 0.8 nozzle", + "Qidi X-Max 3 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PAHT-GF @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PAHT-GF @Qidi Q1 Pro 0.4 nozzle.json new file mode 100644 index 0000000000..e196561a95 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PAHT-GF @Qidi Q1 Pro 0.4 nozzle.json @@ -0,0 +1,39 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "fan_cooling_layer_time": [ + "10" + ], + "filament_max_volumetric_speed": [ + "14" + ], + "filament_settings_id": [ + "QIDI PAHT-GF @Qidi Q1 Pro 0.4 nozzle" + ], + "from": "system", + "inherits": "QIDI PAHT-GF", + "is_custom_defined": "0", + "name": "QIDI PAHT-GF @Qidi Q1 Pro 0.4 nozzle", + "nozzle_temperature": [ + "300" + ], + "nozzle_temperature_initial_layer": [ + "300" + ], + "overhang_fan_speed": [ + "40" + ], + "pressure_advance": [ + "0.027" + ], + "slow_down_layer_time": [ + "8" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi Q1 Pro 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PAHT-GF @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PAHT-GF @Qidi Q1 Pro 0.6 nozzle.json new file mode 100644 index 0000000000..45e0f2b560 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PAHT-GF @Qidi Q1 Pro 0.6 nozzle.json @@ -0,0 +1,39 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "fan_cooling_layer_time": [ + "10" + ], + "filament_max_volumetric_speed": [ + "14" + ], + "filament_settings_id": [ + "QIDI PAHT-GF @Qidi Q1 Pro 0.6 nozzle" + ], + "from": "system", + "inherits": "QIDI PAHT-GF", + "is_custom_defined": "0", + "name": "QIDI PAHT-GF @Qidi Q1 Pro 0.6 nozzle", + "nozzle_temperature": [ + "300" + ], + "nozzle_temperature_initial_layer": [ + "300" + ], + "overhang_fan_speed": [ + "40" + ], + "pressure_advance": [ + "0.017" + ], + "slow_down_layer_time": [ + "8" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi Q1 Pro 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PAHT-GF @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PAHT-GF @Qidi Q1 Pro 0.8 nozzle.json new file mode 100644 index 0000000000..17a1c0df56 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PAHT-GF @Qidi Q1 Pro 0.8 nozzle.json @@ -0,0 +1,39 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "fan_cooling_layer_time": [ + "10" + ], + "filament_max_volumetric_speed": [ + "14" + ], + "filament_settings_id": [ + "QIDI PAHT-GF @Qidi Q1 Pro 0.8 nozzle" + ], + "from": "system", + "inherits": "QIDI PAHT-GF", + "is_custom_defined": "0", + "name": "QIDI PAHT-GF @Qidi Q1 Pro 0.8 nozzle", + "nozzle_temperature": [ + "300" + ], + "nozzle_temperature_initial_layer": [ + "300" + ], + "overhang_fan_speed": [ + "40" + ], + "pressure_advance": [ + "0.01" + ], + "slow_down_layer_time": [ + "8" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi Q1 Pro 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PAHT-GF @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PAHT-GF @Qidi X-Plus 4 0.4 nozzle.json new file mode 100644 index 0000000000..04ed1f4443 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PAHT-GF @Qidi X-Plus 4 0.4 nozzle.json @@ -0,0 +1,39 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "fan_cooling_layer_time": [ + "10" + ], + "filament_max_volumetric_speed": [ + "14" + ], + "filament_settings_id": [ + "QIDI PAHT-GF @Qidi X-Plus 4 0.4 nozzle" + ], + "from": "system", + "inherits": "QIDI PAHT-GF", + "is_custom_defined": "0", + "name": "QIDI PAHT-GF @Qidi X-Plus 4 0.4 nozzle", + "nozzle_temperature": [ + "300" + ], + "nozzle_temperature_initial_layer": [ + "300" + ], + "overhang_fan_speed": [ + "40" + ], + "pressure_advance": [ + "0.027" + ], + "slow_down_layer_time": [ + "5" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PAHT-GF @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PAHT-GF @Qidi X-Plus 4 0.6 nozzle.json new file mode 100644 index 0000000000..77c6cab233 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PAHT-GF @Qidi X-Plus 4 0.6 nozzle.json @@ -0,0 +1,39 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "fan_cooling_layer_time": [ + "10" + ], + "filament_max_volumetric_speed": [ + "14" + ], + "filament_settings_id": [ + "QIDI PAHT-GF @Qidi X-Plus 4 0.6 nozzle" + ], + "from": "system", + "inherits": "QIDI PAHT-GF", + "is_custom_defined": "0", + "name": "QIDI PAHT-GF @Qidi X-Plus 4 0.6 nozzle", + "nozzle_temperature": [ + "300" + ], + "nozzle_temperature_initial_layer": [ + "300" + ], + "overhang_fan_speed": [ + "40" + ], + "pressure_advance": [ + "0.015" + ], + "slow_down_layer_time": [ + "5" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PAHT-GF @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PAHT-GF @Qidi X-Plus 4 0.8 nozzle.json new file mode 100644 index 0000000000..66f36fa28f --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PAHT-GF @Qidi X-Plus 4 0.8 nozzle.json @@ -0,0 +1,39 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "fan_cooling_layer_time": [ + "10" + ], + "filament_max_volumetric_speed": [ + "14" + ], + "filament_settings_id": [ + "QIDI PAHT-GF @Qidi X-Plus 4 0.8 nozzle" + ], + "from": "system", + "inherits": "QIDI PAHT-GF", + "is_custom_defined": "0", + "name": "QIDI PAHT-GF @Qidi X-Plus 4 0.8 nozzle", + "nozzle_temperature": [ + "300" + ], + "nozzle_temperature_initial_layer": [ + "300" + ], + "overhang_fan_speed": [ + "40" + ], + "pressure_advance": [ + "0.01" + ], + "slow_down_layer_time": [ + "5" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PAHT-GF.json b/resources/profiles/Qidi/filament/QIDI PAHT-GF.json new file mode 100644 index 0000000000..c3cedea04f --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PAHT-GF.json @@ -0,0 +1,74 @@ +{ + "type": "filament", + "filament_id": "GFN98", + "setting_id": "GFSN99", + "name": "QIDI PAHT-GF", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_pa", + "filament_type": [ + "PA-GF" + ], + "nozzle_temperature_initial_layer": [ + "310" + ], + "nozzle_temperature": [ + "310" + ], + "filament_max_volumetric_speed": [ + "14" + ], + "fan_max_speed": [ + "20" + ], + "fan_min_speed": [ + "20" + ], + "overhang_fan_threshold": [ + "0%" + ], + "overhang_fan_speed": [ + "40" + ], + "fan_cooling_layer_time": [ + "10" + ], + "full_fan_speed_layer": [ + "0" + ], + "enable_pressure_advance": [ + "1" + ], + "pressure_advance": [ + "0.023" + ], + "hot_plate_temp_initial_layer" : [ + "80" +], +"hot_plate_temp" : [ + "80" +], +"slow_down_layer_time": [ + "8" +], +"filament_density":[ + "1.20" +], +"temperature_vitrification": [ + "180" + ], +"filament_flow_ratio": [ + "0.96" +], +"slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 0.4 nozzle", + "Qidi X-Max 0.4 nozzle", + "Qidi X-CF Pro 0.4 nozzle", + "Qidi X-Smart 3 0.4 nozzle", + "Qidi X-Plus 3 0.4 nozzle", + "Qidi X-Max 3 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PET-GF @0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PET-GF @0.6 nozzle.json new file mode 100644 index 0000000000..2883ae55f6 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PET-GF @0.6 nozzle.json @@ -0,0 +1,22 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "filament_settings_id": [ + "QIDI PET-GF @0.6 nozzle" + ], + "from": "system", + "inherits": "QIDI PET-GF", + "is_custom_defined": "0", + "name": "QIDI PET-GF @0.6 nozzle", + "pressure_advance": [ + "0.014" + ], + "compatible_printers": [ + "Qidi X-Max 0.6 nozzle", + "Qidi X-CF Pro 0.6 nozzle", + "Qidi X-Smart 3 0.6 nozzle", + "Qidi X-Plus 3 0.6 nozzle", + "Qidi X-Max 3 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PET-GF @0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PET-GF @0.8 nozzle.json new file mode 100644 index 0000000000..cac8d7356c --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PET-GF @0.8 nozzle.json @@ -0,0 +1,22 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "filament_settings_id": [ + "QIDI PET-GF @0.8 nozzle" + ], + "from": "system", + "inherits": "QIDI PET-GF", + "is_custom_defined": "0", + "name": "QIDI PET-GF @0.8 nozzle", + "pressure_advance": [ + "0.01" + ], + "compatible_printers": [ + "Qidi X-Max 0.8 nozzle", + "Qidi X-CF Pro 0.8 nozzle", + "Qidi X-Smart 3 0.8 nozzle", + "Qidi X-Plus 3 0.8 nozzle", + "Qidi X-Max 3 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PET-GF @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PET-GF @Qidi Q1 Pro 0.4 nozzle.json new file mode 100644 index 0000000000..4f2606905c --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PET-GF @Qidi Q1 Pro 0.4 nozzle.json @@ -0,0 +1,39 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "fan_cooling_layer_time": [ + "10" + ], + "filament_settings_id": [ + "QIDI PET-GF @Qidi Q1 Pro 0.4 nozzle" + ], + "from": "system", + "inherits": "QIDI PET-GF", + "is_custom_defined": "0", + "name": "QIDI PET-GF @Qidi Q1 Pro 0.4 nozzle", + "nozzle_temperature": [ + "300" + ], + "nozzle_temperature_initial_layer": [ + "300" + ], + "overhang_fan_speed": [ + "40" + ], + "pressure_advance": [ + "0.028" + ], + "slow_down_layer_time": [ + "8" + ], + "slow_down_min_speed": [ + "20" + ], + "filament_max_volumetric_speed": [ + "15" + ], + "compatible_printers": [ + "Qidi Q1 Pro 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PET-GF @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PET-GF @Qidi Q1 Pro 0.6 nozzle.json new file mode 100644 index 0000000000..a3f7cfaa74 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PET-GF @Qidi Q1 Pro 0.6 nozzle.json @@ -0,0 +1,39 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "fan_cooling_layer_time": [ + "10" + ], + "filament_settings_id": [ + "QIDI PET-GF @Qidi Q1 Pro 0.6 nozzle" + ], + "from": "system", + "inherits": "QIDI PET-GF", + "is_custom_defined": "0", + "name": "QIDI PET-GF @Qidi Q1 Pro 0.6 nozzle", + "nozzle_temperature": [ + "300" + ], + "nozzle_temperature_initial_layer": [ + "300" + ], + "overhang_fan_speed": [ + "40" + ], + "pressure_advance": [ + "0.015" + ], + "slow_down_layer_time": [ + "8" + ], + "slow_down_min_speed": [ + "20" + ], + "filament_max_volumetric_speed": [ + "15" + ], + "compatible_printers": [ + "Qidi Q1 Pro 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PET-GF @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PET-GF @Qidi Q1 Pro 0.8 nozzle.json new file mode 100644 index 0000000000..ef5f53bbbb --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PET-GF @Qidi Q1 Pro 0.8 nozzle.json @@ -0,0 +1,39 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "fan_cooling_layer_time": [ + "10" + ], + "filament_settings_id": [ + "QIDI PET-GF @Qidi Q1 Pro 0.8 nozzle" + ], + "from": "system", + "inherits": "QIDI PET-GF", + "is_custom_defined": "0", + "name": "QIDI PET-GF @Qidi Q1 Pro 0.8 nozzle", + "nozzle_temperature": [ + "300" + ], + "nozzle_temperature_initial_layer": [ + "300" + ], + "overhang_fan_speed": [ + "40" + ], + "pressure_advance": [ + "0.01" + ], + "slow_down_layer_time": [ + "8" + ], + "slow_down_min_speed": [ + "20" + ], + "filament_max_volumetric_speed": [ + "15" + ], + "compatible_printers": [ + "Qidi Q1 Pro 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PET-GF @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PET-GF @Qidi X-Plus 4 0.4 nozzle.json new file mode 100644 index 0000000000..2763f0eea6 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PET-GF @Qidi X-Plus 4 0.4 nozzle.json @@ -0,0 +1,39 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "fan_cooling_layer_time": [ + "10" + ], + "filament_settings_id": [ + "QIDI PET-GF @Qidi X-Plus 4 0.4 nozzle" + ], + "from": "system", + "inherits": "QIDI PET-GF", + "is_custom_defined": "0", + "name": "QIDI PET-GF @Qidi X-Plus 4 0.4 nozzle", + "nozzle_temperature": [ + "300" + ], + "nozzle_temperature_initial_layer": [ + "300" + ], + "overhang_fan_speed": [ + "40" + ], + "pressure_advance": [ + "0.022" + ], + "slow_down_layer_time": [ + "5" + ], + "slow_down_min_speed": [ + "20" + ], + "filament_max_volumetric_speed": [ + "15" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PET-GF @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PET-GF @Qidi X-Plus 4 0.6 nozzle.json new file mode 100644 index 0000000000..acfe1120ef --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PET-GF @Qidi X-Plus 4 0.6 nozzle.json @@ -0,0 +1,39 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "fan_cooling_layer_time": [ + "10" + ], + "filament_settings_id": [ + "QIDI PET-GF @Qidi X-Plus 4 0.6 nozzle" + ], + "from": "system", + "inherits": "QIDI PET-GF", + "is_custom_defined": "0", + "name": "QIDI PET-GF @Qidi X-Plus 4 0.6 nozzle", + "nozzle_temperature": [ + "300" + ], + "nozzle_temperature_initial_layer": [ + "300" + ], + "overhang_fan_speed": [ + "40" + ], + "pressure_advance": [ + "0.014" + ], + "slow_down_layer_time": [ + "5" + ], + "slow_down_min_speed": [ + "20" + ], + "filament_max_volumetric_speed": [ + "15" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PET-GF @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PET-GF @Qidi X-Plus 4 0.8 nozzle.json new file mode 100644 index 0000000000..c9bb3240b3 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PET-GF @Qidi X-Plus 4 0.8 nozzle.json @@ -0,0 +1,39 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "fan_cooling_layer_time": [ + "10" + ], + "filament_settings_id": [ + "QIDI PET-GF @Qidi X-Plus 4 0.8 nozzle" + ], + "from": "system", + "inherits": "QIDI PET-GF", + "is_custom_defined": "0", + "name": "QIDI PET-GF @Qidi X-Plus 4 0.8 nozzle", + "nozzle_temperature": [ + "300" + ], + "nozzle_temperature_initial_layer": [ + "300" + ], + "overhang_fan_speed": [ + "40" + ], + "pressure_advance": [ + "0.01" + ], + "slow_down_layer_time": [ + "5" + ], + "slow_down_min_speed": [ + "20" + ], + "filament_max_volumetric_speed": [ + "15" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PET-GF.json b/resources/profiles/Qidi/filament/QIDI PET-GF.json new file mode 100644 index 0000000000..df0a72a98f --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PET-GF.json @@ -0,0 +1,68 @@ +{ + "type": "filament", + "filament_id": "GFN98", + "setting_id": "GFSN99", + "name": "QIDI PET-GF", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_pa", + "nozzle_temperature_initial_layer": [ + "310" + ], + "nozzle_temperature": [ + "310" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "fan_max_speed": [ + "20" + ], + "fan_min_speed": [ + "20" + ], + "overhang_fan_threshold": [ + "0%" + ], + "overhang_fan_speed": [ + "40" + ], + "fan_cooling_layer_time": [ + "10" + ], + "full_fan_speed_layer": [ + "0" + ], + "enable_pressure_advance": [ + "1" + ], + "pressure_advance": [ + "0.023" + ], + "hot_plate_temp_initial_layer" : [ + "80" +], +"hot_plate_temp" : [ + "80" +], +"slow_down_layer_time": [ + "8" +], +"filament_density":[ + "1.38" +], +"filament_flow_ratio": [ + "0.97" +], +"slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 0.4 nozzle", + "Qidi X-Max 0.4 nozzle", + "Qidi X-CF Pro 0.4 nozzle", + "Qidi X-Smart 3 0.4 nozzle", + "Qidi X-Plus 3 0.4 nozzle", + "Qidi X-Max 3 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi Q1 Pro 0.4 nozzle.json index cc7f52319f..ec82564fa5 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi Q1 Pro 0.4 nozzle.json @@ -22,7 +22,7 @@ "is_custom_defined": "0", "name": "QIDI PETG Tough @Qidi Q1 Pro 0.4 nozzle", "overhang_fan_speed": [ - "100" + "90" ], "pressure_advance": [ "0.042" diff --git a/resources/profiles/Qidi/filament/QIDI UltraPA-CF25 @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI UltraPA-CF25 @Qidi Q1 Pro 0.4 nozzle.json new file mode 100644 index 0000000000..9d9ec71193 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI UltraPA-CF25 @Qidi Q1 Pro 0.4 nozzle.json @@ -0,0 +1,36 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "20" + ], + "filament_settings_id": [ + "QIDI UltraPA-CF25 @Qidi Q1 Pro 0.4 nozzle" + ], + "from": "system", + "inherits": "QIDI UltraPA-CF25", + "is_custom_defined": "0", + "name": "QIDI UltraPA-CF25 @Qidi Q1 Pro 0.4 nozzle", + "nozzle_temperature": [ + "300" + ], + "nozzle_temperature_initial_layer": [ + "300" + ], + "overhang_fan_speed": [ + "40" + ], + "pressure_advance": [ + "0.026" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi Q1 Pro 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI UltraPA-CF25 @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI UltraPA-CF25 @Qidi Q1 Pro 0.6 nozzle.json new file mode 100644 index 0000000000..dbe8755a73 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI UltraPA-CF25 @Qidi Q1 Pro 0.6 nozzle.json @@ -0,0 +1,36 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "20" + ], + "filament_settings_id": [ + "QIDI UltraPA-CF25 @Qidi Q1 Pro 0.6 nozzle" + ], + "from": "system", + "inherits": "QIDI UltraPA-CF25", + "is_custom_defined": "0", + "name": "QIDI UltraPA-CF25 @Qidi Q1 Pro 0.6 nozzle", + "nozzle_temperature": [ + "300" + ], + "nozzle_temperature_initial_layer": [ + "300" + ], + "overhang_fan_speed": [ + "40" + ], + "pressure_advance": [ + "0.022" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi Q1 Pro 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI UltraPA-CF25 @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI UltraPA-CF25 @Qidi Q1 Pro 0.8 nozzle.json new file mode 100644 index 0000000000..b59b52ff56 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI UltraPA-CF25 @Qidi Q1 Pro 0.8 nozzle.json @@ -0,0 +1,36 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "20" + ], + "filament_settings_id": [ + "QIDI UltraPA-CF25 @Qidi Q1 Pro 0.8 nozzle" + ], + "from": "system", + "inherits": "QIDI UltraPA-CF25", + "is_custom_defined": "0", + "name": "QIDI UltraPA-CF25 @Qidi Q1 Pro 0.8 nozzle", + "nozzle_temperature": [ + "300" + ], + "nozzle_temperature_initial_layer": [ + "300" + ], + "overhang_fan_speed": [ + "40" + ], + "pressure_advance": [ + "0.02" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi Q1 Pro 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI UltraPA-CF25 @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI UltraPA-CF25 @Qidi X-Plus 4 0.4 nozzle.json new file mode 100644 index 0000000000..88c0dde569 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI UltraPA-CF25 @Qidi X-Plus 4 0.4 nozzle.json @@ -0,0 +1,36 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "20" + ], + "filament_settings_id": [ + "QIDI UltraPA-CF25 @Qidi X-Plus 4 0.4 nozzle" + ], + "from": "system", + "inherits": "QIDI UltraPA-CF25", + "is_custom_defined": "0", + "name": "QIDI UltraPA-CF25 @Qidi X-Plus 4 0.4 nozzle", + "nozzle_temperature": [ + "300" + ], + "nozzle_temperature_initial_layer": [ + "300" + ], + "overhang_fan_speed": [ + "40" + ], + "pressure_advance": [ + "0.026" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI UltraPA-CF25 @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI UltraPA-CF25 @Qidi X-Plus 4 0.6 nozzle.json new file mode 100644 index 0000000000..2f2e4fe286 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI UltraPA-CF25 @Qidi X-Plus 4 0.6 nozzle.json @@ -0,0 +1,36 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "20" + ], + "filament_settings_id": [ + "QIDI UltraPA-CF25 @Qidi X-Plus 4 0.6 nozzle" + ], + "from": "system", + "inherits": "QIDI UltraPA-CF25", + "is_custom_defined": "0", + "name": "QIDI UltraPA-CF25 @Qidi X-Plus 4 0.6 nozzle", + "nozzle_temperature": [ + "300" + ], + "nozzle_temperature_initial_layer": [ + "300" + ], + "overhang_fan_speed": [ + "40" + ], + "pressure_advance": [ + "0.022" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI UltraPA-CF25 @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI UltraPA-CF25 @Qidi X-Plus 4 0.8 nozzle.json new file mode 100644 index 0000000000..94456da31e --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI UltraPA-CF25 @Qidi X-Plus 4 0.8 nozzle.json @@ -0,0 +1,36 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "20" + ], + "filament_settings_id": [ + "QIDI UltraPA-CF25 @Qidi X-Plus 4 0.8 nozzle" + ], + "from": "system", + "inherits": "QIDI UltraPA-CF25", + "is_custom_defined": "0", + "name": "QIDI UltraPA-CF25 @Qidi X-Plus 4 0.8 nozzle", + "nozzle_temperature": [ + "300" + ], + "nozzle_temperature_initial_layer": [ + "300" + ], + "overhang_fan_speed": [ + "40" + ], + "pressure_advance": [ + "0.02" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI UltraPA-CF25.json b/resources/profiles/Qidi/filament/QIDI UltraPA-CF25.json new file mode 100644 index 0000000000..2145c975fe --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI UltraPA-CF25.json @@ -0,0 +1,85 @@ +{ + "type": "filament", + "filament_id": "GFN98", + "setting_id": "GFSN99", + "name": "QIDI UltraPA-CF25", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_pa", + "filament_type": [ + "PA-CF" + ], + "nozzle_temperature_initial_layer": [ + "300" + ], + "nozzle_temperature": [ + "300" + ], + "filament_max_volumetric_speed": [ + "8" + ], + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "20" + ], + "overhang_fan_threshold": [ + "0%" + ], + "overhang_fan_speed": [ + "40" + ], + "fan_cooling_layer_time": [ + "5" + ], + "full_fan_speed_layer": [ + "0" + ], + "enable_pressure_advance": [ + "1" + ], + "pressure_advance": [ + "0.015" + ], + "hot_plate_temp_initial_layer" : [ + "80" +], +"hot_plate_temp" : [ + "80" +], +"slow_down_layer_time": [ + "2" +], +"filament_density":[ + "1.20" +], +"temperature_vitrification": [ + "180" + ], +"filament_flow_ratio": [ + "0.94" +], +"slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 0.4 nozzle", + "Qidi X-Max 0.4 nozzle", + "Qidi X-CF Pro 0.4 nozzle", + "Qidi X-Smart 3 0.4 nozzle", + "Qidi X-Plus 3 0.4 nozzle", + "Qidi X-Max 3 0.4 nozzle", + "Qidi X-Max 0.6 nozzle", + "Qidi X-CF Pro 0.6 nozzle", + "Qidi X-Smart 3 0.6 nozzle", + "Qidi X-Plus 3 0.6 nozzle", + "Qidi X-Max 3 0.6 nozzle", + "Qidi X-Plus 0.8 nozzle", + "Qidi X-Max 0.8 nozzle", + "Qidi X-CF Pro 0.8 nozzle", +"Qidi X-Smart 3 0.8 nozzle", +"Qidi X-Plus 3 0.8 nozzle", +"Qidi X-Max 3 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI WOOD Rapido @0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI WOOD Rapido @0.6 nozzle.json new file mode 100644 index 0000000000..78a126ef27 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI WOOD Rapido @0.6 nozzle.json @@ -0,0 +1,26 @@ +{ + "type": "filament", + "filament_id": "GFL99", + "setting_id": "GFSL99", + "name": "QIDI WOOD Rapido @0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI WOOD Rapido", + "slow_down_layer_time": [ + "8" + ], + "enable_pressure_advance": [ + "1" + ], + "pressure_advance": [ + "0.02" + ], + "compatible_printers": [ + "Qidi X-Plus 0.6 nozzle", + "Qidi X-Max 0.6 nozzle", + "Qidi X-CF Pro 0.6 nozzle", + "Qidi X-Smart 3 0.6 nozzle", + "Qidi X-Plus 3 0.6 nozzle", + "Qidi X-Max 3 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI WOOD Rapido @0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI WOOD Rapido @0.8 nozzle.json new file mode 100644 index 0000000000..5cce071fde --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI WOOD Rapido @0.8 nozzle.json @@ -0,0 +1,26 @@ +{ + "type": "filament", + "filament_id": "GFL99", + "setting_id": "GFSL99", + "name": "QIDI WOOD Rapido @0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI WOOD Rapido", + "slow_down_layer_time": [ + "8" + ], + "enable_pressure_advance": [ + "1" + ], + "pressure_advance": [ + "0.01" + ], + "compatible_printers": [ + "Qidi X-Plus 0.8 nozzle", + "Qidi X-Max 0.8 nozzle", + "Qidi X-CF Pro 0.8 nozzle", + "Qidi X-Smart 3 0.8 nozzle", + "Qidi X-Plus 3 0.8 nozzle", + "Qidi X-Max 3 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI WOOD Rapido @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI WOOD Rapido @Qidi Q1 Pro 0.4 nozzle.json new file mode 100644 index 0000000000..e5c6e3bfe9 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI WOOD Rapido @Qidi Q1 Pro 0.4 nozzle.json @@ -0,0 +1,48 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "activate_air_filtration": [ + "1" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "during_print_exhaust_fan_speed": [ + "100" + ], + "fan_cooling_layer_time": [ + "60" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "filament_settings_id": [ + "QIDI WOOD Rapido @Qidi Q1 Pro 0.4 nozzle" + ], + "from": "system", + "full_fan_speed_layer": [ + "3" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "inherits": "QIDI WOOD Rapido", + "is_custom_defined": "0", + "name": "QIDI WOOD Rapido @Qidi Q1 Pro 0.4 nozzle", + "nozzle_temperature": [ + "210" + ], + "pressure_advance": [ + "0.04" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi Q1 Pro 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI WOOD Rapido @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI WOOD Rapido @Qidi Q1 Pro 0.6 nozzle.json new file mode 100644 index 0000000000..4dd7a253bc --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI WOOD Rapido @Qidi Q1 Pro 0.6 nozzle.json @@ -0,0 +1,48 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "activate_air_filtration": [ + "1" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "during_print_exhaust_fan_speed": [ + "100" + ], + "fan_cooling_layer_time": [ + "60" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "filament_settings_id": [ + "QIDI WOOD Rapido @Qidi Q1 Pro 0.6 nozzle" + ], + "from": "system", + "full_fan_speed_layer": [ + "3" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "inherits": "QIDI WOOD Rapido", + "is_custom_defined": "0", + "name": "QIDI WOOD Rapido @Qidi Q1 Pro 0.6 nozzle", + "nozzle_temperature": [ + "210" + ], + "pressure_advance": [ + "0.02" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi Q1 Pro 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI WOOD Rapido @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI WOOD Rapido @Qidi Q1 Pro 0.8 nozzle.json new file mode 100644 index 0000000000..1d5df01c9f --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI WOOD Rapido @Qidi Q1 Pro 0.8 nozzle.json @@ -0,0 +1,48 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "activate_air_filtration": [ + "1" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "during_print_exhaust_fan_speed": [ + "100" + ], + "fan_cooling_layer_time": [ + "60" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "filament_settings_id": [ + "QIDI WOOD Rapido @Qidi Q1 Pro 0.8 nozzle" + ], + "from": "system", + "full_fan_speed_layer": [ + "3" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "inherits": "QIDI WOOD Rapido", + "is_custom_defined": "0", + "name": "QIDI WOOD Rapido @Qidi Q1 Pro 0.8 nozzle", + "nozzle_temperature": [ + "210" + ], + "pressure_advance": [ + "0.012" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi Q1 Pro 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI WOOD Rapido @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI WOOD Rapido @Qidi X-Plus 4 0.4 nozzle.json new file mode 100644 index 0000000000..43ceb194f2 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI WOOD Rapido @Qidi X-Plus 4 0.4 nozzle.json @@ -0,0 +1,51 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "activate_air_filtration": [ + "1" + ], + "additional_cooling_fan_speed": [ + "100" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "during_print_exhaust_fan_speed": [ + "100" + ], + "fan_cooling_layer_time": [ + "60" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "filament_settings_id": [ + "QIDI WOOD Rapido @Qidi X-Plus 4 0.4 nozzle" + ], + "from": "system", + "full_fan_speed_layer": [ + "3" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "inherits": "QIDI WOOD Rapido", + "is_custom_defined": "0", + "name": "QIDI WOOD Rapido @Qidi X-Plus 4 0.4 nozzle", + "nozzle_temperature": [ + "210" + ], + "pressure_advance": [ + "0.044" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI WOOD Rapido @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI WOOD Rapido @Qidi X-Plus 4 0.6 nozzle.json new file mode 100644 index 0000000000..a7b082fee7 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI WOOD Rapido @Qidi X-Plus 4 0.6 nozzle.json @@ -0,0 +1,48 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "activate_air_filtration": [ + "1" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "during_print_exhaust_fan_speed": [ + "100" + ], + "fan_cooling_layer_time": [ + "60" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "filament_settings_id": [ + "QIDI WOOD Rapido @Qidi X-Plus 4 0.6 nozzle" + ], + "from": "system", + "full_fan_speed_layer": [ + "3" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "inherits": "QIDI WOOD Rapido", + "is_custom_defined": "0", + "name": "QIDI WOOD Rapido @Qidi X-Plus 4 0.6 nozzle", + "nozzle_temperature": [ + "210" + ], + "pressure_advance": [ + "0.024" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI WOOD Rapido @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI WOOD Rapido @Qidi X-Plus 4 0.8 nozzle.json new file mode 100644 index 0000000000..6077fb555f --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI WOOD Rapido @Qidi X-Plus 4 0.8 nozzle.json @@ -0,0 +1,48 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "activate_air_filtration": [ + "1" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "during_print_exhaust_fan_speed": [ + "100" + ], + "fan_cooling_layer_time": [ + "60" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "filament_settings_id": [ + "QIDI WOOD Rapido @Qidi X-Plus 4 0.8 nozzle" + ], + "from": "system", + "full_fan_speed_layer": [ + "3" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "inherits": "QIDI WOOD Rapido", + "is_custom_defined": "0", + "name": "QIDI WOOD Rapido @Qidi X-Plus 4 0.8 nozzle", + "nozzle_temperature": [ + "210" + ], + "pressure_advance": [ + "0.012" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI WOOD Rapido.json b/resources/profiles/Qidi/filament/QIDI WOOD Rapido.json new file mode 100644 index 0000000000..1313514fe8 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI WOOD Rapido.json @@ -0,0 +1,35 @@ +{ + "type": "filament", + "filament_id": "GFL99", + "setting_id": "GFSL99", + "name": "QIDI WOOD Rapido", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_pla", + "filament_flow_ratio": [ + "0.95" + ], + "filament_max_volumetric_speed": [ + "16" + ], + "slow_down_layer_time": [ + "8" + ], + "enable_pressure_advance": [ + "1" + ], + "pressure_advance": [ + "0.03" + ], + "additional_cooling_fan_speed": [ + "100" + ], + "compatible_printers": [ + "Qidi X-Plus 0.4 nozzle", + "Qidi X-Max 0.4 nozzle", + "Qidi X-CF Pro 0.4 nozzle", + "Qidi X-Smart 3 0.4 nozzle", + "Qidi X-Plus 3 0.4 nozzle", + "Qidi X-Max 3 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Qidi Generic ABS.json b/resources/profiles/Qidi/filament/Qidi Generic ABS.json index 22f114ebd5..46154ffd9f 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ABS.json +++ b/resources/profiles/Qidi/filament/Qidi Generic ABS.json @@ -6,9 +6,6 @@ "from": "system", "instantiation": "true", "inherits": "fdm_filament_abs", - "activate_chamber_temp_control": [ - "0" - ], "filament_flow_ratio": [ "0.95" ], @@ -47,6 +44,9 @@ ], "nozzle_temperature": [ "260" + ], + "filament_vendor": [ + "Generic" ], "compatible_printers": [ "Qidi X-Plus 0.2 nozzle", diff --git a/resources/profiles/Qidi/filament/Qidi Generic ASA.json b/resources/profiles/Qidi/filament/Qidi Generic ASA.json index 53544c6931..b49a665d2d 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ASA.json +++ b/resources/profiles/Qidi/filament/Qidi Generic ASA.json @@ -32,6 +32,9 @@ ], "activate_chamber_temp_control": [ "0" + ], + "filament_vendor": [ + "Generic" ], "compatible_printers": [ "Qidi X-Plus 0.2 nozzle", diff --git a/resources/profiles/Qidi/filament/Qidi Generic PA-CF.json b/resources/profiles/Qidi/filament/Qidi Generic PA-CF.json index a4ebdc97de..6aa4c611cf 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PA-CF.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PA-CF.json @@ -42,6 +42,9 @@ "pressure_advance": [ "0.01" ], + "filament_vendor": [ + "Generic" + ], "compatible_printers": [ "Qidi X-Plus 0.4 nozzle", "Qidi X-Max 0.4 nozzle", diff --git a/resources/profiles/Qidi/filament/Qidi Generic PA.json b/resources/profiles/Qidi/filament/Qidi Generic PA.json index f8d989e699..227f3891f7 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PA.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PA.json @@ -24,6 +24,9 @@ "pressure_advance": [ "0.01" ], + "filament_vendor": [ + "Generic" + ], "compatible_printers": [ "Qidi X-Plus 0.4 nozzle", "Qidi X-Max 0.4 nozzle", diff --git a/resources/profiles/Qidi/filament/Qidi Generic PC @0.2 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PC @0.2 nozzle.json new file mode 100644 index 0000000000..77616fba8b --- /dev/null +++ b/resources/profiles/Qidi/filament/Qidi Generic PC @0.2 nozzle.json @@ -0,0 +1,23 @@ +{ + "type": "filament", + "filament_id": "GFC99", + "setting_id": "GFSC99", + "name": "Qidi Generic PC @0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Qidi Generic PC", + "pressure_advance": [ + "0.04" + ], + "filament_max_volumetric_speed": [ + "1" + ], + "compatible_printers": [ + "Qidi X-Plus 0.2 nozzle", + "Qidi X-Max 0.2 nozzle", + "Qidi X-CF Pro 0.2 nozzle", + "Qidi X-Smart 3 0.2 nozzle", + "Qidi X-Plus 3 0.2 nozzle", + "Qidi X-Max 3 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Qidi Generic PC @0.8 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PC @0.8 nozzle.json new file mode 100644 index 0000000000..3966411739 --- /dev/null +++ b/resources/profiles/Qidi/filament/Qidi Generic PC @0.8 nozzle.json @@ -0,0 +1,20 @@ +{ + "type": "filament", + "filament_id": "GFC99", + "setting_id": "GFSC99", + "name": "Qidi Generic PC @0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Qidi Generic PC", + "pressure_advance": [ + "0.008" + ], + "compatible_printers": [ + "Qidi X-Plus 0.8 nozzle", + "Qidi X-Max 0.8 nozzle", + "Qidi X-CF Pro 0.8 nozzle", + "Qidi X-Smart 3 0.8 nozzle", + "Qidi X-Plus 3 0.8 nozzle", + "Qidi X-Max 3 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi Q1 Pro 0.2 nozzle.json new file mode 100644 index 0000000000..19c8b7e231 --- /dev/null +++ b/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi Q1 Pro 0.2 nozzle.json @@ -0,0 +1,21 @@ +{ + "type": "filament", + "filament_id": "GFC99", + "setting_id": "GFSC99", + "name": "Qidi Generic PC @Qidi Q1 Pro 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Qidi Generic PC", + "filament_flow_ratio": [ + "0.95" + ], + "pressure_advance": [ + "0.04" + ], + "filament_max_volumetric_speed": [ + "1" + ], + "compatible_printers": [ + "Qidi Q1 Pro 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi Q1 Pro 0.4 nozzle.json new file mode 100644 index 0000000000..a4af09f88d --- /dev/null +++ b/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi Q1 Pro 0.4 nozzle.json @@ -0,0 +1,21 @@ +{ + "type": "filament", + "filament_id": "GFC99", + "setting_id": "GFSC99", + "name": "Qidi Generic PC @Qidi Q1 Pro 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Qidi Generic PC", + "filament_flow_ratio": [ + "0.95" + ], + "pressure_advance": [ + "0.058" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "compatible_printers": [ + "Qidi Q1 Pro 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi Q1 Pro 0.6 nozzle.json new file mode 100644 index 0000000000..1308d69959 --- /dev/null +++ b/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi Q1 Pro 0.6 nozzle.json @@ -0,0 +1,21 @@ +{ + "type": "filament", + "filament_id": "GFC99", + "setting_id": "GFSC99", + "name": "Qidi Generic PC @Qidi Q1 Pro 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Qidi Generic PC", + "filament_flow_ratio": [ + "0.95" + ], + "pressure_advance": [ + "0.025" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "compatible_printers": [ + "Qidi Q1 Pro 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi Q1 Pro 0.8 nozzle.json new file mode 100644 index 0000000000..f5ffa6f480 --- /dev/null +++ b/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi Q1 Pro 0.8 nozzle.json @@ -0,0 +1,21 @@ +{ + "type": "filament", + "filament_id": "GFC99", + "setting_id": "GFSC99", + "name": "Qidi Generic PC @Qidi Q1 Pro 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Qidi Generic PC", + "filament_flow_ratio": [ + "0.95" + ], + "pressure_advance": [ + "0.008" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "compatible_printers": [ + "Qidi Q1 Pro 0.8 nozzle" + ] +} diff --git a/resources/profiles/Mellow/filament/Generic PC @M1.json b/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi X-Plus 4 0.2 nozzle.json similarity index 50% rename from resources/profiles/Mellow/filament/Generic PC @M1.json rename to resources/profiles/Qidi/filament/Qidi Generic PC @Qidi X-Plus 4 0.2 nozzle.json index e1db0ea533..949b16b209 100644 --- a/resources/profiles/Mellow/filament/Generic PC @M1.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi X-Plus 4 0.2 nozzle.json @@ -1,21 +1,21 @@ -{ +{ "type": "filament", "filament_id": "GFC99", - "setting_id": "GFC99_m1_0", - "name": "Generic PC @M1", + "setting_id": "GFSC99", + "name": "Qidi Generic PC @Qidi X-Plus 4 0.2 nozzle", "from": "system", "instantiation": "true", - "inherits": "fdm_filament_pc", - "filament_max_volumetric_speed": [ - "12" - ], + "inherits": "Qidi Generic PC", "filament_flow_ratio": [ "0.94" ], + "pressure_advance": [ + "0.04" + ], + "filament_max_volumetric_speed": [ + "1" + ], "compatible_printers": [ - "M1 0.4 nozzle", - "M1 0.2 nozzle", - "M1 0.6 nozzle", - "M1 0.8 nozzle" - ] -} \ No newline at end of file + "Qidi X-Plus 4 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi X-Plus 4 0.4 nozzle.json new file mode 100644 index 0000000000..3a06ae9c79 --- /dev/null +++ b/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi X-Plus 4 0.4 nozzle.json @@ -0,0 +1,21 @@ +{ + "type": "filament", + "filament_id": "GFC99", + "setting_id": "GFSC99", + "name": "Qidi Generic PC @Qidi X-Plus 4 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Qidi Generic PC", + "filament_flow_ratio": [ + "0.95" + ], + "pressure_advance": [ + "0.04" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi X-Plus 4 0.6 nozzle.json new file mode 100644 index 0000000000..3cf835b0e2 --- /dev/null +++ b/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi X-Plus 4 0.6 nozzle.json @@ -0,0 +1,21 @@ +{ + "type": "filament", + "filament_id": "GFC99", + "setting_id": "GFSC99", + "name": "Qidi Generic PC @Qidi X-Plus 4 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Qidi Generic PC", + "filament_flow_ratio": [ + "0.95" + ], + "pressure_advance": [ + "0.03" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi X-Plus 4 0.8 nozzle.json new file mode 100644 index 0000000000..6e3edd5d17 --- /dev/null +++ b/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi X-Plus 4 0.8 nozzle.json @@ -0,0 +1,21 @@ +{ + "type": "filament", + "filament_id": "GFC99", + "setting_id": "GFSC99", + "name": "Qidi Generic PC @Qidi X-Plus 4 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Qidi Generic PC", + "filament_flow_ratio": [ + "0.95" + ], + "pressure_advance": [ + "0.008" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Qidi Generic PC.json b/resources/profiles/Qidi/filament/Qidi Generic PC.json index ed3cbe5b30..0a8c094730 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PC.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PC.json @@ -10,20 +10,41 @@ "8" ], "filament_flow_ratio": [ - "0.92" + "0.94" ], "enable_pressure_advance": [ "1" ], "pressure_advance": [ - "0.04" + "0.03" ], "activate_air_filtration":[ - "0" + "1" ], "during_print_exhaust_fan_speed":[ "0" ], + "nozzle_temperature_initial_layer": [ + "270" + ], + "nozzle_temperature": [ + "280" + ], + "hot_plate_temp_initial_layer" : [ + "110" + ], + "hot_plate_temp" : [ + "110" + ], + "slow_down_min_speed": [ + "20" + ], + "overhang_fan_speed": [ + "60" + ], + "filament_vendor": [ + "Generic" + ], "compatible_printers": [ "Qidi X-Plus 0.4 nozzle", "Qidi X-Max 0.4 nozzle", @@ -35,18 +56,6 @@ "Qidi X-CF Pro 0.6 nozzle", "Qidi X-Smart 3 0.6 nozzle", "Qidi X-Plus 3 0.6 nozzle", - "Qidi X-Max 3 0.6 nozzle", - "Qidi X-Plus 0.8 nozzle", - "Qidi X-Max 0.8 nozzle", - "Qidi X-CF Pro 0.8 nozzle", - "Qidi X-Smart 3 0.8 nozzle", - "Qidi X-Plus 3 0.8 nozzle", - "Qidi X-Max 3 0.8 nozzle", - "Qidi Q1 Pro 0.4 nozzle", - "Qidi Q1 Pro 0.6 nozzle", - "Qidi Q1 Pro 0.8 nozzle", - "Qidi X-Plus 4 0.4 nozzle", - "Qidi X-Plus 4 0.6 nozzle", - "Qidi X-Plus 4 0.8 nozzle" + "Qidi X-Max 3 0.6 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/Qidi/filament/Qidi Generic PETG-CF.json b/resources/profiles/Qidi/filament/Qidi Generic PETG-CF.json index f083c1c4ba..84c8b5945c 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PETG-CF.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PETG-CF.json @@ -42,9 +42,6 @@ "required_nozzle_HRC": [ "40" ], - "filament_vendor": [ - "Other brand" - ], "filament_type": [ "PETG-CF" ], @@ -90,6 +87,9 @@ "pressure_advance": [ "0.05" ], + "filament_vendor": [ + "Generic" + ], "compatible_printers": [ "Qidi X-Plus 0.2 nozzle", "Qidi X-Max 0.2 nozzle", diff --git a/resources/profiles/Qidi/filament/Qidi Generic PETG.json b/resources/profiles/Qidi/filament/Qidi Generic PETG.json index 25c51af0bd..a3906fecfa 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PETG.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PETG.json @@ -47,6 +47,9 @@ ], "filament_density":[ "1.27" + ], + "filament_vendor": [ + "Generic" ], "compatible_printers": [ "Qidi X-Plus 0.2 nozzle", diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Max 3 0.6 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Max 3 0.6 nozzle.json new file mode 100644 index 0000000000..ea531ba057 --- /dev/null +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Max 3 0.6 nozzle.json @@ -0,0 +1,15 @@ +{ + "type": "filament", + "filament_id": "GFL99", + "setting_id": "GFSL99", + "name": "Qidi Generic PLA @Qidi X-Max 3 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Qidi Generic PLA", + "pressure_advance": [ + "0.016" + ], + "compatible_printers": [ + "Qidi X-Max 3 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Max 3 0.8 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Max 3 0.8 nozzle.json new file mode 100644 index 0000000000..98125d7d8a --- /dev/null +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Max 3 0.8 nozzle.json @@ -0,0 +1,15 @@ +{ + "type": "filament", + "filament_id": "GFL99", + "setting_id": "GFSL99", + "name": "Qidi Generic PLA @Qidi X-Max 3 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Qidi Generic PLA", + "pressure_advance": [ + "0.008" + ], + "compatible_printers": [ + "Qidi X-Max 3 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 3 0.6 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 3 0.6 nozzle.json new file mode 100644 index 0000000000..125d5cccbc --- /dev/null +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 3 0.6 nozzle.json @@ -0,0 +1,15 @@ +{ + "type": "filament", + "filament_id": "GFL99", + "setting_id": "GFSL99", + "name": "Qidi Generic PLA @Qidi X-Plus 3 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Qidi Generic PLA", + "pressure_advance": [ + "0.016" + ], + "compatible_printers": [ + "Qidi X-Plus 3 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 3 0.8 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 3 0.8 nozzle.json new file mode 100644 index 0000000000..3dc38d612e --- /dev/null +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 3 0.8 nozzle.json @@ -0,0 +1,15 @@ +{ + "type": "filament", + "filament_id": "GFL99", + "setting_id": "GFSL99", + "name": "Qidi Generic PLA @Qidi X-Plus 3 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Qidi Generic PLA", + "pressure_advance": [ + "0.008" + ], + "compatible_printers": [ + "Qidi X-Plus 3 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Smart 3 0.6 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Smart 3 0.6 nozzle.json new file mode 100644 index 0000000000..686698e103 --- /dev/null +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Smart 3 0.6 nozzle.json @@ -0,0 +1,15 @@ +{ + "type": "filament", + "filament_id": "GFL99", + "setting_id": "GFSL99", + "name": "Qidi Generic PLA @Qidi X-Smart 3 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Qidi Generic PLA", + "pressure_advance": [ + "0.016" + ], + "compatible_printers": [ + "Qidi X-Smart 3 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Smart 3 0.8 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Smart 3 0.8 nozzle.json new file mode 100644 index 0000000000..c3d6912b62 --- /dev/null +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Smart 3 0.8 nozzle.json @@ -0,0 +1,15 @@ +{ + "type": "filament", + "filament_id": "GFL99", + "setting_id": "GFSL99", + "name": "Qidi Generic PLA @Qidi X-Smart 3 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Qidi Generic PLA", + "pressure_advance": [ + "0.008" + ], + "compatible_printers": [ + "Qidi X-Smart 3 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA Silk.json b/resources/profiles/Qidi/filament/Qidi Generic PLA Silk.json index e448c680aa..f39aa201e4 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA Silk.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA Silk.json @@ -31,6 +31,9 @@ ], "hot_plate_temp" : [ "55" + ], + "filament_vendor": [ + "Generic" ], "compatible_printers": [ "Qidi X-Plus 0.4 nozzle", diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.2 nozzle.json new file mode 100644 index 0000000000..b786065365 --- /dev/null +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.2 nozzle.json @@ -0,0 +1,27 @@ +{ + "type": "filament", + "filament_id": "GFL99", + "setting_id": "GFSL99", + "name": "Qidi Generic PLA+ @Qidi Q1 Pro 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Qidi Generic PLA+", + "filament_flow_ratio": [ + "0.98" + ], + "slow_down_layer_time": [ + "8" + ], + "enable_pressure_advance": [ + "1" + ], + "pressure_advance": [ + "0.042" + ], + "nozzle_temperature": [ + "220" + ], + "compatible_printers": [ + "Qidi Q1 Pro 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.4 nozzle.json new file mode 100644 index 0000000000..d6dfa3176d --- /dev/null +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.4 nozzle.json @@ -0,0 +1,33 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "filament_settings_id": [ + "Qidi Generic PLA+ @Qidi Q1 Pro 0.4 nozzle" + ], + "from": "system", + "full_fan_speed_layer": [ + "3" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "inherits": "Qidi Generic PLA+", + "is_custom_defined": "0", + "name": "Qidi Generic PLA+ @Qidi Q1 Pro 0.4 nozzle", + "nozzle_temperature": [ + "220" + ], + "slow_down_min_speed": [ + "20" + ], + "pressure_advance": [ + "0.042" + ], + "compatible_printers": [ + "Qidi Q1 Pro 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.6 nozzle.json new file mode 100644 index 0000000000..02c2980dde --- /dev/null +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.6 nozzle.json @@ -0,0 +1,27 @@ +{ + "type": "filament", + "filament_id": "GFL99", + "setting_id": "GFSL99", + "name": "Qidi Generic PLA+ @Qidi Q1 Pro 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Qidi Generic PLA+", + "filament_flow_ratio": [ + "0.98" + ], + "slow_down_layer_time": [ + "8" + ], + "enable_pressure_advance": [ + "1" + ], + "pressure_advance": [ + "0.016" + ], + "nozzle_temperature": [ + "220" + ], + "compatible_printers": [ + "Qidi Q1 Pro 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.8 nozzle.json new file mode 100644 index 0000000000..56ae73aea9 --- /dev/null +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.8 nozzle.json @@ -0,0 +1,27 @@ +{ + "type": "filament", + "filament_id": "GFL99", + "setting_id": "GFSL99", + "name": "Qidi Generic PLA+ @Qidi Q1 Pro 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Qidi Generic PLA+", + "filament_flow_ratio": [ + "0.98" + ], + "slow_down_layer_time": [ + "8" + ], + "enable_pressure_advance": [ + "1" + ], + "pressure_advance": [ + "0.008" + ], + "nozzle_temperature": [ + "220" + ], + "compatible_printers": [ + "Qidi Q1 Pro 0.8 nozzle" + ] +} diff --git a/resources/profiles/Voxelab/filament/Voxelab Generic PLA.json b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Max 3 0.2 nozzle.json similarity index 56% rename from resources/profiles/Voxelab/filament/Voxelab Generic PLA.json rename to resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Max 3 0.2 nozzle.json index bab844c481..bf9522b5ce 100644 --- a/resources/profiles/Voxelab/filament/Voxelab Generic PLA.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Max 3 0.2 nozzle.json @@ -2,20 +2,26 @@ "type": "filament", "filament_id": "GFL99", "setting_id": "GFSL99", - "name": "Voxelab Generic PLA", + "name": "Qidi Generic PLA+ @Qidi X-Max 3 0.2 nozzle", "from": "system", "instantiation": "true", - "inherits": "fdm_filament_pla", + "inherits": "Qidi Generic PLA+", "filament_flow_ratio": [ "0.98" ], - "filament_max_volumetric_speed": [ - "15" - ], "slow_down_layer_time": [ "8" + ], + "enable_pressure_advance": [ + "1" + ], + "pressure_advance": [ + "0.031" + ], + "filament_max_volumetric_speed": [ + "2" ], "compatible_printers": [ - "Voxelab Aquila X2 0.4 nozzle" + "Qidi X-Max 3 0.2 nozzle" ] } diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Max 3 0.6 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Max 3 0.6 nozzle.json new file mode 100644 index 0000000000..721519fb96 --- /dev/null +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Max 3 0.6 nozzle.json @@ -0,0 +1,15 @@ +{ + "type": "filament", + "filament_id": "GFL99", + "setting_id": "GFSL99", + "name": "Qidi Generic PLA+ @Qidi X-Max 3 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Qidi Generic PLA+", + "pressure_advance": [ + "0.016" + ], + "compatible_printers": [ + "Qidi X-Max 3 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Max 3 0.8 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Max 3 0.8 nozzle.json new file mode 100644 index 0000000000..2c4729b266 --- /dev/null +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Max 3 0.8 nozzle.json @@ -0,0 +1,15 @@ +{ + "type": "filament", + "filament_id": "GFL99", + "setting_id": "GFSL99", + "name": "Qidi Generic PLA+ @Qidi X-Max 3 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Qidi Generic PLA+", + "pressure_advance": [ + "0.008" + ], + "compatible_printers": [ + "Qidi X-Max 3 0.8 nozzle" + ] +} diff --git a/resources/profiles/Wanhao/filament/Wanhao Generic PLA.json b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 3 0.2 nozzle.json similarity index 50% rename from resources/profiles/Wanhao/filament/Wanhao Generic PLA.json rename to resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 3 0.2 nozzle.json index ad2e28fe74..4e0ee30fc0 100644 --- a/resources/profiles/Wanhao/filament/Wanhao Generic PLA.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 3 0.2 nozzle.json @@ -2,20 +2,26 @@ "type": "filament", "filament_id": "GFL99", "setting_id": "GFSL99", - "name": "Wanhao Generic PLA", + "name": "Qidi Generic PLA+ @Qidi X-Plus 3 0.2 nozzle", "from": "system", "instantiation": "true", - "inherits": "fdm_filament_pla", + "inherits": "Qidi Generic PLA+", "filament_flow_ratio": [ "0.98" ], - "filament_max_volumetric_speed": [ - "12" - ], "slow_down_layer_time": [ "8" ], - "compatible_printers": [ - "Wanhao D12-300 0.4 nozzle" - ] + "enable_pressure_advance": [ + "1" + ], + "pressure_advance": [ + "0.031" + ], + "filament_max_volumetric_speed": [ + "2" + ], + "compatible_printers": [ + "Qidi X-Plus 3 0.2 nozzle" + ] } diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 3 0.6 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 3 0.6 nozzle.json new file mode 100644 index 0000000000..d0e151cc66 --- /dev/null +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 3 0.6 nozzle.json @@ -0,0 +1,15 @@ +{ + "type": "filament", + "filament_id": "GFL99", + "setting_id": "GFSL99", + "name": "Qidi Generic PLA+ @Qidi X-Plus 3 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Qidi Generic PLA+", + "pressure_advance": [ + "0.016" + ], + "compatible_printers": [ + "Qidi X-Plus 3 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 3 0.8 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 3 0.8 nozzle.json new file mode 100644 index 0000000000..42c8eae68e --- /dev/null +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 3 0.8 nozzle.json @@ -0,0 +1,15 @@ +{ + "type": "filament", + "filament_id": "GFL99", + "setting_id": "GFSL99", + "name": "Qidi Generic PLA+ @Qidi X-Plus 3 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Qidi Generic PLA+", + "pressure_advance": [ + "0.008" + ], + "compatible_printers": [ + "Qidi X-Plus 3 0.8 nozzle" + ] +} diff --git a/resources/profiles/UltiMaker/filament/UltiMaker Generic PLA.json b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.2 nozzle.json similarity index 58% rename from resources/profiles/UltiMaker/filament/UltiMaker Generic PLA.json rename to resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.2 nozzle.json index f14c642978..6326781d4e 100644 --- a/resources/profiles/UltiMaker/filament/UltiMaker Generic PLA.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.2 nozzle.json @@ -2,29 +2,29 @@ "type": "filament", "filament_id": "GFL99", "setting_id": "GFSL99", - "name": "UltiMaker Generic PLA", + "name": "Qidi Generic PLA+ @Qidi X-Plus 4 0.2 nozzle", "from": "system", "instantiation": "true", - "inherits": "fdm_filament_pla", + "inherits": "Qidi Generic PLA+", "filament_flow_ratio": [ - "0.987" - ], - "filament_max_volumetric_speed": [ - "5" + "0.98" ], "slow_down_layer_time": [ "8" ], - "hot_plate_temp_initial_layer": [ - "60" + "enable_pressure_advance": [ + "1" ], - "nozzle_temperature": [ - "205" + "pressure_advance": [ + "0.034" + ], + "filament_max_volumetric_speed": [ + "2" ], "nozzle_temperature_initial_layer": [ - "200" + "230" ], "compatible_printers": [ - "UltiMaker 2 0.4 nozzle" + "Qidi X-Plus 4 0.2 nozzle" ] } diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.4 nozzle.json new file mode 100644 index 0000000000..3ee249e5a1 --- /dev/null +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.4 nozzle.json @@ -0,0 +1,33 @@ +{"type": "filament", +"filament_id": "GFB99", +"setting_id": "GFSA04", +"instantiation": "true", + "pressure_advance": [ + "0.034" + ], + "filament_settings_id": [ + "Qidi Generic PLA+ @Qidi X-Plus 4 0.4 nozzle" + ], + "from": "system", + "full_fan_speed_layer": [ + "3" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "inherits": "Qidi Generic PLA+", + "is_custom_defined": "0", + "name": "Qidi Generic PLA+ @Qidi X-Plus 4 0.4 nozzle", + "nozzle_temperature_initial_layer": [ + "230" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.6 nozzle.json new file mode 100644 index 0000000000..1b359f557f --- /dev/null +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.6 nozzle.json @@ -0,0 +1,27 @@ +{ + "type": "filament", + "filament_id": "GFL99", + "setting_id": "GFSL99", + "name": "Qidi Generic PLA+ @Qidi X-Plus 4 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Qidi Generic PLA+", + "filament_flow_ratio": [ + "0.98" + ], + "slow_down_layer_time": [ + "8" + ], + "enable_pressure_advance": [ + "1" + ], + "pressure_advance": [ + "0.016" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.8 nozzle.json new file mode 100644 index 0000000000..71b9bdb177 --- /dev/null +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.8 nozzle.json @@ -0,0 +1,27 @@ +{ + "type": "filament", + "filament_id": "GFL99", + "setting_id": "GFSL99", + "name": "Qidi Generic PLA+ @Qidi X-Plus 4 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Qidi Generic PLA+", + "filament_flow_ratio": [ + "0.98" + ], + "slow_down_layer_time": [ + "8" + ], + "enable_pressure_advance": [ + "1" + ], + "pressure_advance": [ + "0.008" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.8 nozzle" + ] +} diff --git a/resources/profiles/BIQU/filament/BIQU Generic PLA.json b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Smart 3 0.2 nozzle.json similarity index 50% rename from resources/profiles/BIQU/filament/BIQU Generic PLA.json rename to resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Smart 3 0.2 nozzle.json index fd2c5ba4c7..e3c31148de 100644 --- a/resources/profiles/BIQU/filament/BIQU Generic PLA.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Smart 3 0.2 nozzle.json @@ -2,22 +2,26 @@ "type": "filament", "filament_id": "GFL99", "setting_id": "GFSL99", - "name": "BIQU Generic PLA", + "name": "Qidi Generic PLA+ @Qidi X-Smart 3 0.2 nozzle", "from": "system", "instantiation": "true", - "inherits": "fdm_filament_pla", + "inherits": "Qidi Generic PLA+", "filament_flow_ratio": [ "0.98" ], - "filament_max_volumetric_speed": [ - "12" - ], "slow_down_layer_time": [ "8" ], - "compatible_printers": [ - "BIQU BX (0.4 nozzle)", - "BIQU B1 (0.4 nozzle)", - "BIQU Hurakan (0.4 nozzle)" - ] + "enable_pressure_advance": [ + "1" + ], + "pressure_advance": [ + "0.031" + ], + "filament_max_volumetric_speed": [ + "2" + ], + "compatible_printers": [ + "Qidi X-Smart 3 0.2 nozzle" + ] } diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Smart 3 0.6 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Smart 3 0.6 nozzle.json new file mode 100644 index 0000000000..170fea4e69 --- /dev/null +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Smart 3 0.6 nozzle.json @@ -0,0 +1,15 @@ +{ + "type": "filament", + "filament_id": "GFL99", + "setting_id": "GFSL99", + "name": "Qidi Generic PLA+ @Qidi X-Smart 3 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Qidi Generic PLA+", + "pressure_advance": [ + "0.016" + ], + "compatible_printers": [ + "Qidi X-Smart 3 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Smart 3 0.8 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Smart 3 0.8 nozzle.json new file mode 100644 index 0000000000..e1e6de545b --- /dev/null +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Smart 3 0.8 nozzle.json @@ -0,0 +1,15 @@ +{ + "type": "filament", + "filament_id": "GFL99", + "setting_id": "GFSL99", + "name": "Qidi Generic PLA+ @Qidi X-Smart 3 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Qidi Generic PLA+", + "pressure_advance": [ + "0.008" + ], + "compatible_printers": [ + "Qidi X-Smart 3 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+.json b/resources/profiles/Qidi/filament/Qidi Generic PLA+.json new file mode 100644 index 0000000000..77316adc2d --- /dev/null +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA+.json @@ -0,0 +1,50 @@ +{ + "type": "filament", + "filament_id": "GFL99", + "setting_id": "GFSL99", + "name": "Qidi Generic PLA+", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_pla", + "filament_flow_ratio": [ + "0.98" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "slow_down_layer_time": [ + "8" + ], + "enable_pressure_advance": [ + "1" + ], + "pressure_advance": [ + "0.031" + ], + "filament_vendor": [ + "Generic" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "220" + ], + "compatible_printers": [ + "Qidi X-Plus 0.2 nozzle", + "Qidi X-Max 0.2 nozzle", + "Qidi X-CF Pro 0.2 nozzle", + "Qidi X-Plus 0.4 nozzle", + "Qidi X-Max 0.4 nozzle", + "Qidi X-CF Pro 0.4 nozzle", + "Qidi X-Smart 3 0.4 nozzle", + "Qidi X-Plus 3 0.4 nozzle", + "Qidi X-Max 3 0.4 nozzle", + "Qidi X-Plus 0.6 nozzle", + "Qidi X-Max 0.6 nozzle", + "Qidi X-CF Pro 0.6 nozzle", + "Qidi X-Plus 0.8 nozzle", + "Qidi X-Max 0.8 nozzle", + "Qidi X-CF Pro 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA-CF.json b/resources/profiles/Qidi/filament/Qidi Generic PLA-CF.json index 31b85396e0..13814b5c7a 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA-CF.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA-CF.json @@ -33,6 +33,9 @@ "nozzle_temperature_range_high": [ "240" ], + "filament_vendor": [ + "Generic" + ], "compatible_printers": [ "Qidi X-Plus 0.2 nozzle", "Qidi X-Max 0.2 nozzle", diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA.json b/resources/profiles/Qidi/filament/Qidi Generic PLA.json index ebcf828405..3e223e94da 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA.json @@ -20,6 +20,9 @@ ], "pressure_advance": [ "0.031" + ], + "filament_vendor": [ + "Generic" ], "compatible_printers": [ "Qidi X-Plus 0.2 nozzle", @@ -34,14 +37,8 @@ "Qidi X-Plus 0.6 nozzle", "Qidi X-Max 0.6 nozzle", "Qidi X-CF Pro 0.6 nozzle", - "Qidi X-Smart 3 0.6 nozzle", - "Qidi X-Plus 3 0.6 nozzle", - "Qidi X-Max 3 0.6 nozzle", "Qidi X-Plus 0.8 nozzle", "Qidi X-Max 0.8 nozzle", - "Qidi X-CF Pro 0.8 nozzle", - "Qidi X-Smart 3 0.8 nozzle", - "Qidi X-Plus 3 0.8 nozzle", - "Qidi X-Max 3 0.8 nozzle" + "Qidi X-CF Pro 0.8 nozzle" ] } diff --git a/resources/profiles/Qidi/filament/Qidi Generic PVA.json b/resources/profiles/Qidi/filament/Qidi Generic PVA.json index 31d7fcbbb1..95ac4fd493 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PVA.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PVA.json @@ -18,6 +18,9 @@ "slow_down_min_speed": [ "10" ], + "filament_vendor": [ + "Generic" + ], "compatible_printers": [ "Qidi X-Plus 0.2 nozzle", "Qidi X-Max 0.2 nozzle", diff --git a/resources/profiles/Qidi/filament/Qidi Generic TPU 95A.json b/resources/profiles/Qidi/filament/Qidi Generic TPU 95A.json index 42c608ac6e..f327fc0435 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic TPU 95A.json +++ b/resources/profiles/Qidi/filament/Qidi Generic TPU 95A.json @@ -26,6 +26,9 @@ ], "filament_flow_ratio": [ "1" + ], + "filament_vendor": [ + "Generic" ], "compatible_printers": [ "Qidi X-Plus 0.4 nozzle", diff --git a/resources/profiles/Qidi/filament/Qidi Generic TPU.json b/resources/profiles/Qidi/filament/Qidi Generic TPU.json index 0b9b7a7ea4..1cd3d90ce8 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic TPU.json +++ b/resources/profiles/Qidi/filament/Qidi Generic TPU.json @@ -21,6 +21,9 @@ "nozzle_temperature": [ "230" ], + "filament_vendor": [ + "Generic" + ], "compatible_printers": [ "Qidi X-Plus 0.4 nozzle", "Qidi X-Max 0.4 nozzle", diff --git a/resources/profiles/Qidi/filament/Tinmorry PETG-ECO.json b/resources/profiles/Qidi/filament/Tinmorry PETG-ECO.json index eec1840d6e..8ecb89f378 100644 --- a/resources/profiles/Qidi/filament/Tinmorry PETG-ECO.json +++ b/resources/profiles/Qidi/filament/Tinmorry PETG-ECO.json @@ -74,6 +74,9 @@ ], "textured_plate_temp_initial_layer" : [ "70" + ], + "filament_vendor": [ + "Generic" ], "compatible_printers": [ "Qidi X-Plus 0.4 nozzle", diff --git a/resources/profiles/Qidi/filament/fdm_filament_common.json b/resources/profiles/Qidi/filament/fdm_filament_common.json index 717c04d5f0..fb0c5ad901 100644 --- a/resources/profiles/Qidi/filament/fdm_filament_common.json +++ b/resources/profiles/Qidi/filament/fdm_filament_common.json @@ -151,7 +151,7 @@ "0" ], "dont_slow_down_outer_wall": [ - "1" + "0" ], "compatible_printers": [] } diff --git a/resources/profiles/Qidi/filament/fdm_filament_pla.json b/resources/profiles/Qidi/filament/fdm_filament_pla.json index 0af3ed6f03..c23bba63cb 100644 --- a/resources/profiles/Qidi/filament/fdm_filament_pla.json +++ b/resources/profiles/Qidi/filament/fdm_filament_pla.json @@ -92,7 +92,7 @@ "0" ], "dont_slow_down_outer_wall": [ - "1" + "0" ], "enable_overhang_bridge_fan": [ "0" diff --git a/resources/profiles/Qidi/machine/Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/machine/Qidi X-Plus 4 0.4 nozzle.json index 6304343f9e..230ff54cfa 100644 --- a/resources/profiles/Qidi/machine/Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/machine/Qidi X-Plus 4 0.4 nozzle.json @@ -83,12 +83,14 @@ "machine_max_speed_z": [ "20" ], + "retract_lift_below":["279"], "extruder_clearance_radius": "72", "extruder_clearance_height_to_rod": "32", "extruder_clearance_height_to_lid": "135", "layer_change_gcode": "G92 E0\nSET_PRINT_STATS_INFO CURRENT_LAYER={layer_num + 1}", "machine_end_gcode": "M141 S0\nM104 S0\nM140 S0\nG1 E-3 F1800\nG0 Z{min(max_print_height, max_layer_z + 3)} F600\nG0 X0 Y0 F12000\n{if max_layer_z < max_print_height / 2}G1 Z{max_print_height / 2 + 10} F600{else}G1 Z{min(max_print_height, max_layer_z + 3)}{endif}", - "machine_start_gcode": "PRINT_START BED=[hot_plate_temp_initial_layer] HOTEND=[nozzle_temperature_initial_layer] CHAMBER=[chamber_temperature]\nSET_PRINT_STATS_INFO TOTAL_LAYER=[total_layer_count]\nM83\nM140 S[hot_plate_temp_initial_layer]\nM104 S[nozzle_temperature_initial_layer]\nM141 S[chamber_temperature]\nG4 P3000\nG0 X{max((min(print_bed_max[0] - 12, first_layer_print_min[0] + 80) - 85), 0)} Y{max((min(print_bed_max[1] - 3, first_layer_print_min[1] + 80) - 85), 0)} Z5 F6000\nG0 Z[initial_layer_print_height] F600\nG1 E3 F1800\nG1 X{(min(print_bed_max[0] - 12, first_layer_print_min[0] + 80))} E{85 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 Y{max((min(print_bed_max[1] - 3, first_layer_print_min[1] + 80) - 85), 0) + 2} E{2 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0] - 12, first_layer_print_min[0] + 80) - 85), 0)} E{85 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 Y{max((min(print_bed_max[1] - 3, first_layer_print_min[1] + 80) - 85), 0) + 85} E{83 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0] - 12, first_layer_print_min[0] + 80) - 85), 0) + 2} E{2 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 Y{max((min(print_bed_max[1] - 3, first_layer_print_min[1] + 80) - 85), 0) + 3} E{82 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0] - 12, first_layer_print_min[0] + 80) - 85), 0) + 3} Z0\nG1 X{max((min(print_bed_max[0] - 12, first_layer_print_min[0] + 80) - 85), 0) + 6}\nG1 Z1 F600\nSET_PRINT_STATS_INFO CURRENT_LAYER=1\n", + "time_lapse_gcode": "{if timelapse_type == 1} ; timelapse with wipe tower\nG92 E0\nG1 E-[retraction_length] F1800\nG2 Z{layer_z + 0.4} I0.86 J0.86 P1 F20000 ; spiral lift a little\nG1 Y304 F20000\nG1 X95 F20000\nG92 E0\nM400\nTIMELAPSE_TAKE_FRAME\nG1 Y324 F5000\nG1 E[retraction_length] F300\nG1 X65 F5000\nG1 Y290 F20000\n{elsif timelapse_type == 0} ; timelapse without wipe tower\nTIMELAPSE_TAKE_FRAME\n{endif}", + "machine_start_gcode": "PRINT_START BED=[bed_temperature_initial_layer_single] HOTEND=[nozzle_temperature_initial_layer] CHAMBER=[chamber_temperature]\nSET_PRINT_STATS_INFO TOTAL_LAYER=[total_layer_count]\nM83\nM140 S[bed_temperature_initial_layer_single]\nM104 S[nozzle_temperature_initial_layer]\nM141 S[chamber_temperature]\nG4 P3000\nG0 X{max((min(print_bed_max[0] - 12, first_layer_print_min[0] + 80) - 85), 0)} Y{max((min(print_bed_max[1] - 3, first_layer_print_min[1] + 80) - 85), 0)} Z5 F6000\nG0 Z[initial_layer_print_height] F600\nG1 E3 F1800\nG1 X{(min(print_bed_max[0] - 12, first_layer_print_min[0] + 80))} E{85 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 Y{max((min(print_bed_max[1] - 3, first_layer_print_min[1] + 80) - 85), 0) + 2} E{2 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0] - 12, first_layer_print_min[0] + 80) - 85), 0)} E{85 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 Y{max((min(print_bed_max[1] - 3, first_layer_print_min[1] + 80) - 85), 0) + 85} E{83 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0] - 12, first_layer_print_min[0] + 80) - 85), 0) + 2} E{2 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 Y{max((min(print_bed_max[1] - 3, first_layer_print_min[1] + 80) - 85), 0) + 3} E{82 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0] - 12, first_layer_print_min[0] + 80) - 85), 0) + 3} Z0\nG1 X{max((min(print_bed_max[0] - 12, first_layer_print_min[0] + 80) - 85), 0) + 6}\nG1 Z1 F600\nSET_PRINT_STATS_INFO CURRENT_LAYER=1\n", "thumbnails_format": "PNG", "default_filament_profile": [ "Qidi Generic PLA @Qidi X-Plus 4 0.4 nozzle" diff --git a/resources/profiles/Qidi/machine/fdm_qidi_x3_common.json b/resources/profiles/Qidi/machine/fdm_qidi_x3_common.json index c280908ba7..38c89799ac 100644 --- a/resources/profiles/Qidi/machine/fdm_qidi_x3_common.json +++ b/resources/profiles/Qidi/machine/fdm_qidi_x3_common.json @@ -23,7 +23,7 @@ "210x210/COLPIC", "110x110/PNG" ], - "machine_start_gcode": "PRINT_START\nG28\nM141 S0\nG0 Z50 F600\nM190 S[hot_plate_temp_initial_layer]\nG28 Z\nG29; mesh bed leveling ,comment this code to close it\nG0 X0 Y0 Z50 F6000\nM191 S{overall_chamber_temperature}\nM109 S[nozzle_temperature_initial_layer]\nM106 P3 S255\nM83\nG4 P3000\nG0 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0)} Y{max((min(print_bed_max[1], first_layer_print_min[1] + 80) - 85),0)} Z5 F6000\nG0 Z[initial_layer_print_height] F600\nG1 E3 F1800\nG1 X{(min(print_bed_max[0], first_layer_print_min[0] + 80))} E{85 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 Y{max((min(print_bed_max[1], first_layer_print_min[1] + 80) - 85),0) + 2} E{2 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0)} E{85 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 Y{max((min(print_bed_max[1], first_layer_print_min[1] + 80) - 85),0) + 85} E{83 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0) + 2} E{2 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 Y{max((min(print_bed_max[1], first_layer_print_min[1] + 80) - 85),0) + 3} E{82 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0) + 12} E{-10 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 E{10 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\n", + "machine_start_gcode": "PRINT_START\nG28\nM141 S0\nG0 Z50 F600\nM190 S[hot_plate_temp_initial_layer]\nG28 Z\nG29; mesh bed leveling ,comment this code to close it\nG0 X0 Y0 Z50 F6000\nM141 S{overall_chamber_temperature}\nM109 S[nozzle_temperature_initial_layer]\nM106 P3 S255\nM83\nG4 P3000\nG0 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0)} Y{max((min(print_bed_max[1], first_layer_print_min[1] + 80) - 85),0)} Z5 F6000\nG0 Z[initial_layer_print_height] F600\nG1 E3 F1800\nG1 X{(min(print_bed_max[0], first_layer_print_min[0] + 80))} E{85 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 Y{max((min(print_bed_max[1], first_layer_print_min[1] + 80) - 85),0) + 2} E{2 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0)} E{85 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 Y{max((min(print_bed_max[1], first_layer_print_min[1] + 80) - 85),0) + 85} E{83 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0) + 2} E{2 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 Y{max((min(print_bed_max[1], first_layer_print_min[1] + 80) - 85),0) + 3} E{82 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0) + 12} E{-10 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 E{10 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\n", "machine_end_gcode": "M141 S0\nM104 S0\nM140 S0\nG1 E-3 F1800\nG0 Z{min(max_print_height, max_layer_z + 3)} F600\nG0 X0 Y0 F12000\n{if max_layer_z < max_print_height / 2}G1 Z{max_print_height / 2 + 10} F600{else}G1 Z{min(max_print_height, max_layer_z + 3)}{endif}", "scan_first_layer": "0" } diff --git a/resources/profiles/Qidi/process/0.12mm Fine @Qidi X3.json b/resources/profiles/Qidi/process/0.12mm Fine @Qidi X3.json index e9d30df753..d9b7635067 100644 --- a/resources/profiles/Qidi/process/0.12mm Fine @Qidi X3.json +++ b/resources/profiles/Qidi/process/0.12mm Fine @Qidi X3.json @@ -20,12 +20,12 @@ "bridge_no_support": "0", "draft_shield": "disabled", "elefant_foot_compensation": "0.15", - "outer_wall_line_width": "0.4", + "outer_wall_line_width": "0.42", "wall_infill_order": "inner wall/outer wall/infill", "line_width": "0.42", "infill_direction": "45", "sparse_infill_density": "15%", - "sparse_infill_pattern": "crosshatch", + "sparse_infill_pattern": "grid", "initial_layer_line_width": "0.5", "initial_layer_print_height": "0.2", "infill_combination": "0", @@ -46,7 +46,7 @@ "skirt_distance": "2", "skirt_height": "1", "skirt_loops": "2", - "internal_solid_infill_line_width": "0.45", + "internal_solid_infill_line_width": "0.42", "spiral_mode": "0", "standby_temperature_delta": "-5", "enable_support": "0", @@ -70,7 +70,7 @@ "tree_support_wall_count": "0", "detect_thin_wall": "1", "top_surface_pattern": "monotonicline", - "top_surface_line_width": "0.4", + "top_surface_line_width": "0.42", "enable_prime_tower": "0", "wipe_tower_no_sparse_layers": "0", "prime_tower_width": "60", @@ -89,6 +89,6 @@ "overhang_2_4_speed": "30", "overhang_3_4_speed": "10", "sparse_infill_speed": "430", - "top_shell_layers": "7", - "top_shell_thickness": "1" + "top_shell_layers": "5", + "top_shell_thickness": "0.6" } \ No newline at end of file diff --git a/resources/profiles/Qidi/process/0.16mm Optimal @Qidi X3.json b/resources/profiles/Qidi/process/0.16mm Optimal @Qidi X3.json index ef007adb47..57d250ef9c 100644 --- a/resources/profiles/Qidi/process/0.16mm Optimal @Qidi X3.json +++ b/resources/profiles/Qidi/process/0.16mm Optimal @Qidi X3.json @@ -18,12 +18,12 @@ "print_sequence": "by layer", "bridge_no_support": "0", "draft_shield": "disabled", - "outer_wall_line_width": "0.4", + "outer_wall_line_width": "0.42", "wall_infill_order": "inner wall/outer wall/infill", "line_width": "0.42", "infill_direction": "45", "sparse_infill_density": "15%", - "sparse_infill_pattern": "crosshatch", + "sparse_infill_pattern": "grid", "initial_layer_line_width": "0.5", "infill_combination": "0", "sparse_infill_line_width": "0.45", @@ -67,7 +67,7 @@ "tree_support_wall_count": "0", "detect_thin_wall": "1", "top_surface_pattern": "monotonicline", - "top_surface_line_width": "0.4", + "top_surface_line_width": "0.42", "enable_prime_tower": "0", "wipe_tower_no_sparse_layers": "0", "prime_tower_width": "60", @@ -90,7 +90,7 @@ "overhang_3_4_speed": "10", "seam_gap": "15%", "sparse_infill_speed": "330", - "top_shell_layers": "5", + "top_shell_layers": "6", "top_shell_thickness": "1", "wall_generator": "classic" } \ No newline at end of file diff --git a/resources/profiles/Qidi/process/0.24mm Draft @Qidi X3.json b/resources/profiles/Qidi/process/0.24mm Draft @Qidi X3.json index aef70fc864..d9a612a29f 100644 --- a/resources/profiles/Qidi/process/0.24mm Draft @Qidi X3.json +++ b/resources/profiles/Qidi/process/0.24mm Draft @Qidi X3.json @@ -21,7 +21,7 @@ "line_width": "0.42", "infill_direction": "45", "sparse_infill_density": "15%", - "sparse_infill_pattern": "crosshatch", + "sparse_infill_pattern": "grid", "initial_layer_line_width": "0.5", "infill_combination": "0", "sparse_infill_line_width": "0.45", @@ -87,7 +87,7 @@ "outer_wall_speed": "200", "seam_gap": "15%", "sparse_infill_speed": "230", - "top_shell_layers": "3", - "top_shell_thickness": "0.72", + "top_shell_layers": "4", + "top_shell_thickness": "1", "wall_generator": "classic" } \ No newline at end of file diff --git a/resources/profiles/Qidi/process/0.28mm Extra Draft @Qidi X3.json b/resources/profiles/Qidi/process/0.28mm Extra Draft @Qidi X3.json index 1673b7fa58..3116ffa834 100644 --- a/resources/profiles/Qidi/process/0.28mm Extra Draft @Qidi X3.json +++ b/resources/profiles/Qidi/process/0.28mm Extra Draft @Qidi X3.json @@ -21,7 +21,7 @@ "line_width": "0.42", "infill_direction": "45", "sparse_infill_density": "15%", - "sparse_infill_pattern": "crosshatch", + "sparse_infill_pattern": "grid", "initial_layer_line_width": "0.5", "infill_combination": "0", "sparse_infill_line_width": "0.45", @@ -41,7 +41,7 @@ "skirt_distance": "2", "skirt_height": "1", "skirt_loops": "2", - "internal_solid_infill_line_width": "0", + "internal_solid_infill_line_width": "0.42", "spiral_mode": "0", "standby_temperature_delta": "-5", "enable_support": "0", @@ -88,7 +88,7 @@ "outer_wall_speed": "200", "seam_gap": "15%", "sparse_infill_speed": "200", - "top_shell_layers": "3", - "top_shell_thickness": "0.84", + "top_shell_layers": "4", + "top_shell_thickness": "1", "wall_generator": "classic" } \ No newline at end of file diff --git a/resources/profiles/Qidi/process/fdm_process_common.json b/resources/profiles/Qidi/process/fdm_process_common.json index 244d5f6613..42558a5d19 100644 --- a/resources/profiles/Qidi/process/fdm_process_common.json +++ b/resources/profiles/Qidi/process/fdm_process_common.json @@ -18,7 +18,7 @@ "line_width": "0.45", "infill_direction": "45", "sparse_infill_density": "15%", - "sparse_infill_pattern": "crosshatch", + "sparse_infill_pattern": "grid", "initial_layer_line_width": "0.42", "initial_layer_print_height": "0.2", "initial_layer_speed": "20", diff --git a/resources/profiles/Qidi/process/fdm_process_qidi_common.json b/resources/profiles/Qidi/process/fdm_process_qidi_common.json index 041b21dd00..d776fe2bd1 100644 --- a/resources/profiles/Qidi/process/fdm_process_qidi_common.json +++ b/resources/profiles/Qidi/process/fdm_process_qidi_common.json @@ -27,7 +27,7 @@ "line_width": "0.4", "infill_direction": "45", "sparse_infill_density": "15%", - "sparse_infill_pattern": "crosshatch", + "sparse_infill_pattern": "grid", "initial_layer_acceleration": "500", "travel_acceleration": "700", "inner_wall_acceleration": "500", @@ -89,7 +89,6 @@ "initial_layer_speed": "15", "initial_layer_infill_speed": "20", "outer_wall_speed": "25", - "precise_outer_wall": "1", "inner_wall_speed": "40", "internal_solid_infill_speed": "40", "top_surface_speed": "30", diff --git a/resources/profiles/Raise3D.json b/resources/profiles/Raise3D.json index a839001a32..ccf9d5ba4e 100644 --- a/resources/profiles/Raise3D.json +++ b/resources/profiles/Raise3D.json @@ -44,52 +44,7 @@ "sub_path": "process/0.25mm Draft @Raise3D Pro3Plus.json" } ], - "filament_list": [ - { - "name": "fdm_filament_common", - "sub_path": "filament/fdm_filament_common.json" - }, - { - "name": "fdm_filament_asa", - "sub_path": "filament/fdm_filament_asa.json" - }, - { - "name": "fdm_filament_pet", - "sub_path": "filament/fdm_filament_pet.json" - }, - { - "name": "fdm_filament_pla", - "sub_path": "filament/fdm_filament_pla.json" - }, - { - "name": "fdm_filament_pva", - "sub_path": "filament/fdm_filament_pva.json" - }, - { - "name": "fdm_filament_tpu", - "sub_path": "filament/fdm_filament_tpu.json" - }, - { - "name": "Raise3D Generic ASA", - "sub_path": "filament/Raise3D Generic ASA.json" - }, - { - "name": "Raise3D Generic PETG", - "sub_path": "filament/Raise3D Generic PETG.json" - }, - { - "name": "Raise3D Generic PLA", - "sub_path": "filament/Raise3D Generic PLA.json" - }, - { - "name": "Raise3D Generic PVA", - "sub_path": "filament/Raise3D Generic PVA.json" - }, - { - "name": "Raise3D Generic TPU", - "sub_path": "filament/Raise3D Generic TPU.json" - } - ], + "filament_list": [], "machine_list": [ { "name": "fdm_machine_common", @@ -120,4 +75,4 @@ "sub_path": "machine/Raise3D Pro3 Plus 0.4 nozzle (Right).json" } ] -} +} \ No newline at end of file diff --git a/resources/profiles/Raise3D/filament/Raise3D Generic ASA.json b/resources/profiles/Raise3D/filament/Raise3D Generic ASA.json deleted file mode 100644 index 68d7b0dcf2..0000000000 --- a/resources/profiles/Raise3D/filament/Raise3D Generic ASA.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFB98", - "setting_id": "GFSA04", - "name": "Raise3D Generic ASA", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_asa", - "filament_flow_ratio": [ - "0.93" - ], - "filament_max_volumetric_speed": [ - "14" - ], - "compatible_printers": [ - "Raise3D Pro3 0.4 nozzle (Dual)", - "Raise3D Pro3 0.4 nozzle (Left)", - "Raise3D Pro3 0.4 nozzle (Right)", - "Raise3D Pro3 Plus 0.4 nozzle (Dual)", - "Raise3D Pro3 Plus 0.4 nozzle (Left)", - "Raise3D Pro3 Plus 0.4 nozzle (Right)" - ] -} diff --git a/resources/profiles/Raise3D/filament/Raise3D Generic PETG.json b/resources/profiles/Raise3D/filament/Raise3D Generic PETG.json deleted file mode 100644 index 4ac874b616..0000000000 --- a/resources/profiles/Raise3D/filament/Raise3D Generic PETG.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFG99", - "setting_id": "GFSA04", - "name": "Raise3D Generic PETG", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pet", - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_cooling_layer_time": [ - "30" - ], - "overhang_fan_speed": [ - "90" - ], - "overhang_fan_threshold": [ - "25%" - ], - "fan_max_speed": [ - "50" - ], - "fan_min_speed": [ - "30" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "8" - ], - "filament_flow_ratio": [ - "0.95" - ], - "filament_max_volumetric_speed": [ - "10" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ], - "compatible_printers": [ - "Raise3D Pro3 0.4 nozzle (Dual)", - "Raise3D Pro3 0.4 nozzle (Left)", - "Raise3D Pro3 0.4 nozzle (Right)", - "Raise3D Pro3 Plus 0.4 nozzle (Dual)", - "Raise3D Pro3 Plus 0.4 nozzle (Left)", - "Raise3D Pro3 Plus 0.4 nozzle (Right)" - ] -} diff --git a/resources/profiles/Raise3D/filament/Raise3D Generic PLA.json b/resources/profiles/Raise3D/filament/Raise3D Generic PLA.json deleted file mode 100644 index 0239b4be55..0000000000 --- a/resources/profiles/Raise3D/filament/Raise3D Generic PLA.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFL99", - "setting_id": "GFSA04", - "name": "Raise3D Generic PLA", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pla", - "filament_flow_ratio": [ - "0.98" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "slow_down_layer_time": [ - "8" - ], - "compatible_printers": [ - "Raise3D Pro3 0.4 nozzle (Dual)", - "Raise3D Pro3 0.4 nozzle (Left)", - "Raise3D Pro3 0.4 nozzle (Right)", - "Raise3D Pro3 Plus 0.4 nozzle (Dual)", - "Raise3D Pro3 Plus 0.4 nozzle (Left)", - "Raise3D Pro3 Plus 0.4 nozzle (Right)" - ] -} diff --git a/resources/profiles/Raise3D/filament/Raise3D Generic PVA.json b/resources/profiles/Raise3D/filament/Raise3D Generic PVA.json deleted file mode 100644 index 432722c34c..0000000000 --- a/resources/profiles/Raise3D/filament/Raise3D Generic PVA.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFS99", - "setting_id": "GFSA04", - "name": "Raise3D Generic PVA", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pva", - "filament_flow_ratio": [ - "0.95" - ], - "filament_max_volumetric_speed": [ - "4" - ], - "slow_down_layer_time": [ - "7" - ], - "slow_down_min_speed": [ - "10" - ], - "compatible_printers": [ - "Raise3D Pro3 0.4 nozzle (Dual)", - "Raise3D Pro3 0.4 nozzle (Left)", - "Raise3D Pro3 0.4 nozzle (Right)", - "Raise3D Pro3 Plus 0.4 nozzle (Dual)", - "Raise3D Pro3 Plus 0.4 nozzle (Left)", - "Raise3D Pro3 Plus 0.4 nozzle (Right)" - ] -} diff --git a/resources/profiles/Raise3D/filament/Raise3D Generic TPU.json b/resources/profiles/Raise3D/filament/Raise3D Generic TPU.json deleted file mode 100644 index 884e9c6ea1..0000000000 --- a/resources/profiles/Raise3D/filament/Raise3D Generic TPU.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFU99", - "setting_id": "GFSA04", - "name": "Raise3D Generic TPU", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_tpu", - "filament_max_volumetric_speed": [ - "2.5" - ], - "compatible_printers": [ - "Raise3D Pro3 0.4 nozzle (Dual)", - "Raise3D Pro3 0.4 nozzle (Left)", - "Raise3D Pro3 0.4 nozzle (Right)", - "Raise3D Pro3 Plus 0.4 nozzle (Dual)", - "Raise3D Pro3 Plus 0.4 nozzle (Left)", - "Raise3D Pro3 Plus 0.4 nozzle (Right)" - ] -} diff --git a/resources/profiles/Raise3D/filament/fdm_filament_asa.json b/resources/profiles/Raise3D/filament/fdm_filament_asa.json deleted file mode 100644 index d76436a372..0000000000 --- a/resources/profiles/Raise3D/filament/fdm_filament_asa.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_asa", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "105" - ], - "eng_plate_temp" : [ - "105" - ], - "hot_plate_temp" : [ - "105" - ], - "cool_plate_temp_initial_layer" : [ - "105" - ], - "eng_plate_temp_initial_layer" : [ - "105" - ], - "hot_plate_temp_initial_layer" : [ - "105" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "35" - ], - "filament_max_volumetric_speed": [ - "28.6" - ], - "filament_type": [ - "ASA" - ], - "filament_density": [ - "1.04" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "260" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "fan_max_speed": [ - "20" - ], - "fan_min_speed": [ - "10" - ], - "overhang_fan_threshold": [ - "25%" - ], - "overhang_fan_speed": [ - "80" - ], - "nozzle_temperature": [ - "230" - ], - "temperature_vitrification": [ - "110" - ], - "nozzle_temperature_range_low": [ - "240" - ], - "nozzle_temperature_range_high": [ - "270" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "3" - ] -} diff --git a/resources/profiles/Raise3D/filament/fdm_filament_common.json b/resources/profiles/Raise3D/filament/fdm_filament_common.json deleted file mode 100644 index f1e09f49dc..0000000000 --- a/resources/profiles/Raise3D/filament/fdm_filament_common.json +++ /dev/null @@ -1,138 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_common", - "from": "system", - "instantiation": "false", - "cool_plate_temp" : [ - "60" - ], - "eng_plate_temp" : [ - "60" - ], - "hot_plate_temp" : [ - "60" - ], - "cool_plate_temp_initial_layer" : [ - "60" - ], - "eng_plate_temp_initial_layer" : [ - "60" - ], - "hot_plate_temp_initial_layer" : [ - "60" - ], - "overhang_fan_threshold": [ - "95%" - ], - "overhang_fan_speed": [ - "100" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "filament_end_gcode": [ - "; filament end gcode \n" - ], - "filament_flow_ratio": [ - "1" - ], - "reduce_fan_stop_start_freq": [ - "0" - ], - "fan_cooling_layer_time": [ - "60" - ], - "filament_cost": [ - "0" - ], - "filament_density": [ - "0" - ], - "filament_deretraction_speed": [ - "nil" - ], - "filament_diameter": [ - "1.75" - ], - "filament_max_volumetric_speed": [ - "0" - ], - "filament_minimal_purge_on_wipe_tower": [ - "15" - ], - "filament_retraction_minimum_travel": [ - "nil" - ], - "filament_retract_before_wipe": [ - "nil" - ], - "filament_retract_when_changing_layer": [ - "nil" - ], - "filament_retraction_length": [ - "nil" - ], - "filament_z_hop": [ - "nil" - ], - "filament_z_hop_types": [ - "nil" - ], - "filament_retract_restart_extra": [ - "nil" - ], - "filament_retraction_speed": [ - "nil" - ], - "filament_settings_id": [ - "" - ], - "filament_soluble": [ - "0" - ], - "filament_type": [ - "PLA" - ], - "filament_vendor": [ - "Generic" - ], - "filament_wipe": [ - "nil" - ], - "filament_wipe_distance": [ - "nil" - ], - "bed_type": [ - "Cool Plate" - ], - "nozzle_temperature_initial_layer": [ - "200" - ], - "full_fan_speed_layer": [ - "0" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "35" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "8" - ], - "filament_start_gcode": [ - "; Filament gcode\n" - ], - "nozzle_temperature": [ - "200" - ], - "temperature_vitrification": [ - "100" - ] -} diff --git a/resources/profiles/Raise3D/filament/fdm_filament_pva.json b/resources/profiles/Raise3D/filament/fdm_filament_pva.json deleted file mode 100644 index f529bb39af..0000000000 --- a/resources/profiles/Raise3D/filament/fdm_filament_pva.json +++ /dev/null @@ -1,94 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pva", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "35" - ], - "eng_plate_temp" : [ - "0" - ], - "hot_plate_temp" : [ - "45" - ], - "cool_plate_temp_initial_layer" : [ - "35" - ], - "eng_plate_temp_initial_layer" : [ - "0" - ], - "hot_plate_temp_initial_layer" : [ - "45" - ], - "fan_cooling_layer_time": [ - "100" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "filament_soluble": [ - "1" - ], - "filament_is_support": [ - "1" - ], - "filament_type": [ - "PVA" - ], - "filament_density": [ - "1.24" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "220" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "overhang_fan_speed": [ - "100" - ], - "overhang_fan_threshold": [ - "50%" - ], - "close_fan_the_first_x_layers": [ - "1" - ], - "nozzle_temperature": [ - "220" - ], - "temperature_vitrification": [ - "50" - ], - "nozzle_temperature_range_low": [ - "190" - ], - "nozzle_temperature_range_high": [ - "250" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "4" - ], - "additional_cooling_fan_speed": [ - "70" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ] -} diff --git a/resources/profiles/Raise3D/filament/fdm_filament_tpu.json b/resources/profiles/Raise3D/filament/fdm_filament_tpu.json deleted file mode 100644 index d5cc57fbcc..0000000000 --- a/resources/profiles/Raise3D/filament/fdm_filament_tpu.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_tpu", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "30" - ], - "eng_plate_temp" : [ - "30" - ], - "hot_plate_temp" : [ - "35" - ], - "cool_plate_temp_initial_layer" : [ - "30" - ], - "eng_plate_temp_initial_layer" : [ - "30" - ], - "hot_plate_temp_initial_layer" : [ - "35" - ], - "fan_cooling_layer_time": [ - "100" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "filament_type": [ - "TPU" - ], - "filament_density": [ - "1.24" - ], - "filament_cost": [ - "20" - ], - "filament_retraction_length": [ - "0.4" - ], - "nozzle_temperature_initial_layer": [ - "240" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "overhang_fan_speed": [ - "100" - ], - "additional_cooling_fan_speed": [ - "70" - ], - "close_fan_the_first_x_layers": [ - "1" - ], - "nozzle_temperature": [ - "240" - ], - "temperature_vitrification": [ - "60" - ], - "nozzle_temperature_range_low": [ - "200" - ], - "nozzle_temperature_range_high": [ - "250" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ] -} diff --git a/resources/profiles/Raise3D/machine/fdm_machine_common.json b/resources/profiles/Raise3D/machine/fdm_machine_common.json index f537b78c6f..79ef68b7cf 100644 --- a/resources/profiles/Raise3D/machine/fdm_machine_common.json +++ b/resources/profiles/Raise3D/machine/fdm_machine_common.json @@ -88,7 +88,7 @@ "1" ], "retraction_length": [ - "5" + "1" ], "retract_length_toolchange": [ "1" diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 500 0.4 nozzle.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 500 0.4 nozzle.json index 6bdb9d9cd2..b170418fcb 100644 --- a/resources/profiles/Ratrig/machine/RatRig V-Core 4 500 0.4 nozzle.json +++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 500 0.4 nozzle.json @@ -49,7 +49,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "PAUSE", "printing_by_object_gcode": ";BETWEEN_OBJECTS\nG92 E0", - "printable_height": "300", + "printable_height": "500", "thumbnails": [ "64x64/PNG", "400x300/PNG" diff --git a/resources/profiles/Ratrig/machine/fdm_machine_common.json b/resources/profiles/Ratrig/machine/fdm_machine_common.json index 4000536183..ed1f0d27b2 100644 --- a/resources/profiles/Ratrig/machine/fdm_machine_common.json +++ b/resources/profiles/Ratrig/machine/fdm_machine_common.json @@ -88,7 +88,7 @@ "1" ], "retraction_length": [ - "5" + "1" ], "retract_length_toolchange": [ "1" diff --git a/resources/profiles/Ratrig/ratrig-vminion-bed.stl b/resources/profiles/Ratrig/ratrig-vminion-bed.stl index 1bfbd6a41c..83f5e82931 100644 Binary files a/resources/profiles/Ratrig/ratrig-vminion-bed.stl and b/resources/profiles/Ratrig/ratrig-vminion-bed.stl differ diff --git a/resources/profiles/RolohaunDesign.json b/resources/profiles/RolohaunDesign.json index 233583cceb..77858da5f3 100644 --- a/resources/profiles/RolohaunDesign.json +++ b/resources/profiles/RolohaunDesign.json @@ -55,84 +55,7 @@ "sub_path": "process/0.56mm Extra Draft @Rook MK1 LDO.json" } ], - "filament_list": [ - { - "name": "fdm_filament_common", - "sub_path": "filament/fdm_filament_common.json" - }, - { - "name": "fdm_filament_pla", - "sub_path": "filament/fdm_filament_pla.json" - }, - { - "name": "fdm_filament_tpu", - "sub_path": "filament/fdm_filament_tpu.json" - }, - { - "name": "fdm_filament_pet", - "sub_path": "filament/fdm_filament_pet.json" - }, - { - "name": "fdm_filament_abs", - "sub_path": "filament/fdm_filament_abs.json" - }, - { - "name": "fdm_filament_pc", - "sub_path": "filament/fdm_filament_pc.json" - }, - { - "name": "fdm_filament_asa", - "sub_path": "filament/fdm_filament_asa.json" - }, - { - "name": "fdm_filament_pva", - "sub_path": "filament/fdm_filament_pva.json" - }, - { - "name": "fdm_filament_pa", - "sub_path": "filament/fdm_filament_pa.json" - }, - { - "name": "Generic PLA @Rook MK1 LDO", - "sub_path": "filament/Generic PLA @Rook MK1 LDO.json" - }, - { - "name": "Generic PLA-CF @Rook MK1 LDO", - "sub_path": "filament/Generic PLA-CF @Rook MK1 LDO.json" - }, - { - "name": "Generic PETG @Rook MK1 LDO", - "sub_path": "filament/Generic PETG @Rook MK1 LDO.json" - }, - { - "name": "Generic ABS @Rook MK1 LDO", - "sub_path": "filament/Generic ABS @Rook MK1 LDO.json" - }, - { - "name": "Generic TPU @Rook MK1 LDO", - "sub_path": "filament/Generic TPU @Rook MK1 LDO.json" - }, - { - "name": "Generic ASA @Rook MK1 LDO", - "sub_path": "filament/Generic ASA @Rook MK1 LDO.json" - }, - { - "name": "Generic PC @Rook MK1 LDO", - "sub_path": "filament/Generic PC @Rook MK1 LDO.json" - }, - { - "name": "Generic PVA @Rook MK1 LDO", - "sub_path": "filament/Generic PVA @Rook MK1 LDO.json" - }, - { - "name": "Generic PA @Rook MK1 LDO", - "sub_path": "filament/Generic PA @Rook MK1 LDO.json" - }, - { - "name": "Generic PA-CF @Rook MK1 LDO", - "sub_path": "filament/Generic PA-CF @Rook MK1 LDO.json" - } - ], + "filament_list": [], "machine_list": [ { "name": "fdm_machine_common", @@ -159,4 +82,4 @@ "sub_path": "machine/Rook MK1 LDO 0.8 nozzle.json" } ] -} +} \ No newline at end of file diff --git a/resources/profiles/RolohaunDesign/bedtexture-rook-green-120.png b/resources/profiles/RolohaunDesign/bedtexture-rook-green-120.png index c0c3ef3696..7f3c389a09 100644 Binary files a/resources/profiles/RolohaunDesign/bedtexture-rook-green-120.png and b/resources/profiles/RolohaunDesign/bedtexture-rook-green-120.png differ diff --git a/resources/profiles/RolohaunDesign/filament/Generic ABS @Rook MK1 LDO.json b/resources/profiles/RolohaunDesign/filament/Generic ABS @Rook MK1 LDO.json deleted file mode 100644 index a03f3c183a..0000000000 --- a/resources/profiles/RolohaunDesign/filament/Generic ABS @Rook MK1 LDO.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFB99", - "setting_id": "GFB99_RKMK1_0", - "name": "Generic ABS @Rook MK1 LDO", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_abs", - "filament_flow_ratio": [ - "0.926" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "compatible_printers": [ - "Rook MK1 LDO 0.4 nozzle", - "Rook MK1 LDO 0.2 nozzle", - "Rook MK1 LDO 0.6 nozzle", - "Rook MK1 LDO 0.8 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/RolohaunDesign/filament/Generic ASA @Rook MK1 LDO.json b/resources/profiles/RolohaunDesign/filament/Generic ASA @Rook MK1 LDO.json deleted file mode 100644 index a956261915..0000000000 --- a/resources/profiles/RolohaunDesign/filament/Generic ASA @Rook MK1 LDO.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFB98", - "setting_id": "GFB98_RKMK1_0", - "name": "Generic ASA @Rook MK1 LDO", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_asa", - "filament_flow_ratio": [ - "0.93" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "compatible_printers": [ - "Rook MK1 LDO 0.4 nozzle", - "Rook MK1 LDO 0.2 nozzle", - "Rook MK1 LDO 0.6 nozzle", - "Rook MK1 LDO 0.8 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/RolohaunDesign/filament/Generic PA @Rook MK1 LDO.json b/resources/profiles/RolohaunDesign/filament/Generic PA @Rook MK1 LDO.json deleted file mode 100644 index d6d242c40c..0000000000 --- a/resources/profiles/RolohaunDesign/filament/Generic PA @Rook MK1 LDO.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFN99", - "setting_id": "GFN99_RKMK1_0", - "name": "Generic PA @Rook MK1 LDO", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pa", - "nozzle_temperature_initial_layer": [ - "280" - ], - "nozzle_temperature": [ - "280" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "compatible_printers": [ - "Rook MK1 LDO 0.4 nozzle", - "Rook MK1 LDO 0.2 nozzle", - "Rook MK1 LDO 0.6 nozzle", - "Rook MK1 LDO 0.8 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/RolohaunDesign/filament/Generic PA-CF @Rook MK1 LDO.json b/resources/profiles/RolohaunDesign/filament/Generic PA-CF @Rook MK1 LDO.json deleted file mode 100644 index 0c0a00dbed..0000000000 --- a/resources/profiles/RolohaunDesign/filament/Generic PA-CF @Rook MK1 LDO.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFN98", - "setting_id": "GFN98_RKMK1_0", - "name": "Generic PA-CF @Rook MK1 LDO", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pa", - "filament_type": [ - "PA-CF" - ], - "nozzle_temperature_initial_layer": [ - "280" - ], - "nozzle_temperature": [ - "280" - ], - "filament_max_volumetric_speed": [ - "8" - ], - "compatible_printers": [ - "Rook MK1 LDO 0.4 nozzle", - "Rook MK1 LDO 0.2 nozzle", - "Rook MK1 LDO 0.6 nozzle", - "Rook MK1 LDO 0.8 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/RolohaunDesign/filament/Generic PC @Rook MK1 LDO.json b/resources/profiles/RolohaunDesign/filament/Generic PC @Rook MK1 LDO.json deleted file mode 100644 index fc30c52175..0000000000 --- a/resources/profiles/RolohaunDesign/filament/Generic PC @Rook MK1 LDO.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFC99", - "setting_id": "GFC99_RKMK1_0", - "name": "Generic PC @Rook MK1 LDO", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pc", - "filament_max_volumetric_speed": [ - "12" - ], - "filament_flow_ratio": [ - "0.94" - ], - "compatible_printers": [ - "Rook MK1 LDO 0.4 nozzle", - "Rook MK1 LDO 0.2 nozzle", - "Rook MK1 LDO 0.6 nozzle", - "Rook MK1 LDO 0.8 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/RolohaunDesign/filament/Generic PETG @Rook MK1 LDO.json b/resources/profiles/RolohaunDesign/filament/Generic PETG @Rook MK1 LDO.json deleted file mode 100644 index db692e1323..0000000000 --- a/resources/profiles/RolohaunDesign/filament/Generic PETG @Rook MK1 LDO.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFG99", - "setting_id": "GFG99_RKMK1_0", - "name": "Generic PETG @Rook MK1 LDO", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pet", - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_cooling_layer_time": [ - "30" - ], - "overhang_fan_speed": [ - "90" - ], - "overhang_fan_threshold": [ - "25%" - ], - "fan_max_speed": [ - "90" - ], - "fan_min_speed": [ - "40" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "8" - ], - "filament_flow_ratio": [ - "0.95" - ], - "filament_max_volumetric_speed": [ - "10" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ], - "compatible_printers": [ - "Rook MK1 LDO 0.4 nozzle", - "Rook MK1 LDO 0.2 nozzle", - "Rook MK1 LDO 0.6 nozzle", - "Rook MK1 LDO 0.8 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/RolohaunDesign/filament/Generic PLA @Rook MK1 LDO.json b/resources/profiles/RolohaunDesign/filament/Generic PLA @Rook MK1 LDO.json deleted file mode 100644 index 289e969711..0000000000 --- a/resources/profiles/RolohaunDesign/filament/Generic PLA @Rook MK1 LDO.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFL99", - "setting_id": "GFL99_RKMK1_0", - "name": "Generic PLA @Rook MK1 LDO", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pla", - "filament_flow_ratio": [ - "0.98" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "slow_down_layer_time": [ - "8" - ], - "compatible_printers": [ - "Rook MK1 LDO 0.4 nozzle", - "Rook MK1 LDO 0.2 nozzle", - "Rook MK1 LDO 0.6 nozzle", - "Rook MK1 LDO 0.8 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/RolohaunDesign/filament/Generic PLA-CF @Rook MK1 LDO.json b/resources/profiles/RolohaunDesign/filament/Generic PLA-CF @Rook MK1 LDO.json deleted file mode 100644 index 0b120c78ad..0000000000 --- a/resources/profiles/RolohaunDesign/filament/Generic PLA-CF @Rook MK1 LDO.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFL98", - "setting_id": "GFL98_RKMK1_0", - "name": "Generic PLA-CF @Rook MK1 LDO", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pla", - "filament_flow_ratio": [ - "0.95" - ], - "filament_type": [ - "PLA-CF" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "slow_down_layer_time": [ - "7" - ], - "compatible_printers": [ - "Rook MK1 LDO 0.4 nozzle", - "Rook MK1 LDO 0.2 nozzle", - "Rook MK1 LDO 0.6 nozzle", - "Rook MK1 LDO 0.8 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/RolohaunDesign/filament/Generic PVA @Rook MK1 LDO.json b/resources/profiles/RolohaunDesign/filament/Generic PVA @Rook MK1 LDO.json deleted file mode 100644 index f4c7362587..0000000000 --- a/resources/profiles/RolohaunDesign/filament/Generic PVA @Rook MK1 LDO.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFS99", - "setting_id": "GFS99_RKMK1_0", - "name": "Generic PVA @Rook MK1 LDO", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pva", - "filament_flow_ratio": [ - "0.95" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "slow_down_layer_time": [ - "7" - ], - "slow_down_min_speed": [ - "10" - ], - "compatible_printers": [ - "Rook MK1 LDO 0.4 nozzle", - "Rook MK1 LDO 0.2 nozzle", - "Rook MK1 LDO 0.6 nozzle", - "Rook MK1 LDO 0.8 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/RolohaunDesign/filament/Generic TPU @Rook MK1 LDO.json b/resources/profiles/RolohaunDesign/filament/Generic TPU @Rook MK1 LDO.json deleted file mode 100644 index 56c45b8959..0000000000 --- a/resources/profiles/RolohaunDesign/filament/Generic TPU @Rook MK1 LDO.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFU99", - "setting_id": "GFU99_RKMK1_0", - "name": "Generic TPU @Rook MK1 LDO", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_tpu", - "filament_max_volumetric_speed": [ - "3.2" - ], - "compatible_printers": [ - "Rook MK1 LDO 0.4 nozzle", - "Rook MK1 LDO 0.2 nozzle", - "Rook MK1 LDO 0.6 nozzle", - "Rook MK1 LDO 0.8 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/RolohaunDesign/filament/fdm_filament_abs.json b/resources/profiles/RolohaunDesign/filament/fdm_filament_abs.json deleted file mode 100644 index b9d4eeda31..0000000000 --- a/resources/profiles/RolohaunDesign/filament/fdm_filament_abs.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_abs", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "105" - ], - "eng_plate_temp" : [ - "105" - ], - "hot_plate_temp" : [ - "105" - ], - "textured_plate_temp" : [ - "105" - ], - "cool_plate_temp_initial_layer" : [ - "105" - ], - "eng_plate_temp_initial_layer" : [ - "105" - ], - "hot_plate_temp_initial_layer" : [ - "105" - ], - "textured_plate_temp_initial_layer" : [ - "105" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "30" - ], - "filament_max_volumetric_speed": [ - "28.6" - ], - "filament_type": [ - "ABS" - ], - "filament_density": [ - "1.04" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "260" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "fan_max_speed": [ - "80" - ], - "fan_min_speed": [ - "10" - ], - "overhang_fan_threshold": [ - "25%" - ], - "overhang_fan_speed": [ - "80" - ], - "nozzle_temperature": [ - "260" - ], - "temperature_vitrification": [ - "110" - ], - "nozzle_temperature_range_low": [ - "240" - ], - "nozzle_temperature_range_high": [ - "270" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "3" - ] -} diff --git a/resources/profiles/RolohaunDesign/filament/fdm_filament_asa.json b/resources/profiles/RolohaunDesign/filament/fdm_filament_asa.json deleted file mode 100644 index 262c561bda..0000000000 --- a/resources/profiles/RolohaunDesign/filament/fdm_filament_asa.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_asa", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "105" - ], - "eng_plate_temp" : [ - "105" - ], - "hot_plate_temp" : [ - "105" - ], - "textured_plate_temp" : [ - "105" - ], - "cool_plate_temp_initial_layer" : [ - "105" - ], - "eng_plate_temp_initial_layer" : [ - "105" - ], - "hot_plate_temp_initial_layer" : [ - "105" - ], - "textured_plate_temp_initial_layer" : [ - "105" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "35" - ], - "filament_max_volumetric_speed": [ - "28.6" - ], - "filament_type": [ - "ASA" - ], - "filament_density": [ - "1.04" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "260" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "fan_max_speed": [ - "80" - ], - "fan_min_speed": [ - "10" - ], - "overhang_fan_threshold": [ - "25%" - ], - "overhang_fan_speed": [ - "80" - ], - "nozzle_temperature": [ - "260" - ], - "temperature_vitrification": [ - "110" - ], - "nozzle_temperature_range_low": [ - "240" - ], - "nozzle_temperature_range_high": [ - "270" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "3" - ] -} diff --git a/resources/profiles/RolohaunDesign/filament/fdm_filament_common.json b/resources/profiles/RolohaunDesign/filament/fdm_filament_common.json deleted file mode 100644 index 9f77975119..0000000000 --- a/resources/profiles/RolohaunDesign/filament/fdm_filament_common.json +++ /dev/null @@ -1,144 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_common", - "from": "system", - "instantiation": "false", - "cool_plate_temp" : [ - "60" - ], - "eng_plate_temp" : [ - "60" - ], - "hot_plate_temp" : [ - "60" - ], - "textured_plate_temp" : [ - "60" - ], - "cool_plate_temp_initial_layer" : [ - "60" - ], - "eng_plate_temp_initial_layer" : [ - "60" - ], - "hot_plate_temp_initial_layer" : [ - "60" - ], - "textured_plate_temp_initial_layer" : [ - "60" - ], - "overhang_fan_threshold": [ - "95%" - ], - "overhang_fan_speed": [ - "100" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "filament_end_gcode": [ - "; filament end gcode \n" - ], - "filament_flow_ratio": [ - "1" - ], - "reduce_fan_stop_start_freq": [ - "0" - ], - "fan_cooling_layer_time": [ - "60" - ], - "filament_cost": [ - "0" - ], - "filament_density": [ - "0" - ], - "filament_deretraction_speed": [ - "nil" - ], - "filament_diameter": [ - "1.75" - ], - "filament_max_volumetric_speed": [ - "0" - ], - "filament_minimal_purge_on_wipe_tower": [ - "15" - ], - "filament_retraction_minimum_travel": [ - "nil" - ], - "filament_retract_before_wipe": [ - "nil" - ], - "filament_retract_when_changing_layer": [ - "nil" - ], - "filament_retraction_length": [ - "nil" - ], - "filament_z_hop": [ - "nil" - ], - "filament_z_hop_types": [ - "nil" - ], - "filament_retract_restart_extra": [ - "nil" - ], - "filament_retraction_speed": [ - "nil" - ], - "filament_settings_id": [ - "" - ], - "filament_soluble": [ - "0" - ], - "filament_type": [ - "PLA" - ], - "filament_vendor": [ - "Generic" - ], - "filament_wipe": [ - "nil" - ], - "filament_wipe_distance": [ - "nil" - ], - "bed_type": [ - "Cool Plate" - ], - "nozzle_temperature_initial_layer": [ - "200" - ], - "full_fan_speed_layer": [ - "0" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "35" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "8" - ], - "filament_start_gcode": [ - "; Filament gcode\n" - ], - "nozzle_temperature": [ - "200" - ], - "temperature_vitrification": [ - "100" - ] -} diff --git a/resources/profiles/RolohaunDesign/filament/fdm_filament_pa.json b/resources/profiles/RolohaunDesign/filament/fdm_filament_pa.json deleted file mode 100644 index 58f53cd451..0000000000 --- a/resources/profiles/RolohaunDesign/filament/fdm_filament_pa.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pa", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "0" - ], - "eng_plate_temp" : [ - "100" - ], - "hot_plate_temp" : [ - "100" - ], - "textured_plate_temp" : [ - "100" - ], - "cool_plate_temp_initial_layer" : [ - "0" - ], - "eng_plate_temp_initial_layer" : [ - "100" - ], - "hot_plate_temp_initial_layer" : [ - "100" - ], - "textured_plate_temp_initial_layer" : [ - "100" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "4" - ], - "filament_max_volumetric_speed": [ - "8" - ], - "filament_type": [ - "PA" - ], - "filament_density": [ - "1.04" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "290" - ], - "reduce_fan_stop_start_freq": [ - "0" - ], - "fan_max_speed": [ - "60" - ], - "fan_min_speed": [ - "0" - ], - "overhang_fan_speed": [ - "30" - ], - "nozzle_temperature": [ - "290" - ], - "temperature_vitrification": [ - "108" - ], - "nozzle_temperature_range_low": [ - "270" - ], - "nozzle_temperature_range_high": [ - "300" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "2" - ] -} diff --git a/resources/profiles/RolohaunDesign/filament/fdm_filament_pc.json b/resources/profiles/RolohaunDesign/filament/fdm_filament_pc.json deleted file mode 100644 index cec8b89a38..0000000000 --- a/resources/profiles/RolohaunDesign/filament/fdm_filament_pc.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pc", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "0" - ], - "eng_plate_temp" : [ - "110" - ], - "hot_plate_temp" : [ - "110" - ], - "textured_plate_temp" : [ - "110" - ], - "cool_plate_temp_initial_layer" : [ - "0" - ], - "eng_plate_temp_initial_layer" : [ - "110" - ], - "hot_plate_temp_initial_layer" : [ - "110" - ], - "textured_plate_temp_initial_layer" : [ - "110" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "30" - ], - "filament_max_volumetric_speed": [ - "23.2" - ], - "filament_type": [ - "PC" - ], - "filament_density": [ - "1.04" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "270" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "fan_max_speed": [ - "60" - ], - "fan_min_speed": [ - "10" - ], - "overhang_fan_threshold": [ - "25%" - ], - "overhang_fan_speed": [ - "60" - ], - "nozzle_temperature": [ - "280" - ], - "temperature_vitrification": [ - "140" - ], - "nozzle_temperature_range_low": [ - "260" - ], - "nozzle_temperature_range_high": [ - "280" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "2" - ] -} diff --git a/resources/profiles/RolohaunDesign/filament/fdm_filament_pet.json b/resources/profiles/RolohaunDesign/filament/fdm_filament_pet.json deleted file mode 100644 index bb2323e9c1..0000000000 --- a/resources/profiles/RolohaunDesign/filament/fdm_filament_pet.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pet", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "60" - ], - "eng_plate_temp" : [ - "0" - ], - "hot_plate_temp" : [ - "80" - ], - "textured_plate_temp" : [ - "80" - ], - "cool_plate_temp_initial_layer" : [ - "60" - ], - "eng_plate_temp_initial_layer" : [ - "0" - ], - "hot_plate_temp_initial_layer" : [ - "80" - ], - "textured_plate_temp_initial_layer" : [ - "80" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "20" - ], - "filament_max_volumetric_speed": [ - "25" - ], - "filament_type": [ - "PETG" - ], - "filament_density": [ - "1.27" - ], - "filament_cost": [ - "30" - ], - "nozzle_temperature_initial_layer": [ - "255" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "20" - ], - "overhang_fan_speed": [ - "100" - ], - "nozzle_temperature": [ - "255" - ], - "temperature_vitrification": [ - "80" - ], - "nozzle_temperature_range_low": [ - "220" - ], - "nozzle_temperature_range_high": [ - "260" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ] -} diff --git a/resources/profiles/RolohaunDesign/filament/fdm_filament_pla.json b/resources/profiles/RolohaunDesign/filament/fdm_filament_pla.json deleted file mode 100644 index 82c6772f35..0000000000 --- a/resources/profiles/RolohaunDesign/filament/fdm_filament_pla.json +++ /dev/null @@ -1,94 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pla", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "fan_cooling_layer_time": [ - "100" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "filament_type": [ - "PLA" - ], - "filament_density": [ - "1.24" - ], - "filament_cost": [ - "20" - ], - "cool_plate_temp" : [ - "60" - ], - "eng_plate_temp" : [ - "60" - ], - "hot_plate_temp" : [ - "60" - ], - "textured_plate_temp" : [ - "60" - ], - "cool_plate_temp_initial_layer" : [ - "60" - ], - "eng_plate_temp_initial_layer" : [ - "60" - ], - "hot_plate_temp_initial_layer" : [ - "60" - ], - "textured_plate_temp_initial_layer" : [ - "60" - ], - "nozzle_temperature_initial_layer": [ - "220" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "overhang_fan_speed": [ - "100" - ], - "overhang_fan_threshold": [ - "50%" - ], - "close_fan_the_first_x_layers": [ - "1" - ], - "nozzle_temperature": [ - "220" - ], - "temperature_vitrification": [ - "60" - ], - "nozzle_temperature_range_low": [ - "190" - ], - "nozzle_temperature_range_high": [ - "230" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "4" - ], - "additional_cooling_fan_speed": [ - "70" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ] -} diff --git a/resources/profiles/RolohaunDesign/filament/fdm_filament_pva.json b/resources/profiles/RolohaunDesign/filament/fdm_filament_pva.json deleted file mode 100644 index ebf25aa3ae..0000000000 --- a/resources/profiles/RolohaunDesign/filament/fdm_filament_pva.json +++ /dev/null @@ -1,100 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pva", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "35" - ], - "eng_plate_temp" : [ - "0" - ], - "hot_plate_temp" : [ - "45" - ], - "textured_plate_temp" : [ - "45" - ], - "cool_plate_temp_initial_layer" : [ - "35" - ], - "eng_plate_temp_initial_layer" : [ - "0" - ], - "hot_plate_temp_initial_layer" : [ - "45" - ], - "textured_plate_temp_initial_layer" : [ - "45" - ], - "fan_cooling_layer_time": [ - "100" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "filament_soluble": [ - "1" - ], - "filament_is_support": [ - "1" - ], - "filament_type": [ - "PVA" - ], - "filament_density": [ - "1.24" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "220" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "overhang_fan_speed": [ - "100" - ], - "overhang_fan_threshold": [ - "50%" - ], - "close_fan_the_first_x_layers": [ - "1" - ], - "nozzle_temperature": [ - "220" - ], - "temperature_vitrification": [ - "50" - ], - "nozzle_temperature_range_low": [ - "190" - ], - "nozzle_temperature_range_high": [ - "250" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "4" - ], - "additional_cooling_fan_speed": [ - "70" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ] -} diff --git a/resources/profiles/RolohaunDesign/filament/fdm_filament_tpu.json b/resources/profiles/RolohaunDesign/filament/fdm_filament_tpu.json deleted file mode 100644 index d00b7dbcab..0000000000 --- a/resources/profiles/RolohaunDesign/filament/fdm_filament_tpu.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_tpu", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "30" - ], - "eng_plate_temp" : [ - "30" - ], - "hot_plate_temp" : [ - "35" - ], - "textured_plate_temp" : [ - "35" - ], - "cool_plate_temp_initial_layer" : [ - "30" - ], - "eng_plate_temp_initial_layer" : [ - "30" - ], - "hot_plate_temp_initial_layer" : [ - "35" - ], - "textured_plate_temp_initial_layer" : [ - "35" - ], - "fan_cooling_layer_time": [ - "100" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "filament_type": [ - "TPU" - ], - "filament_density": [ - "1.24" - ], - "filament_cost": [ - "20" - ], - "filament_retraction_length": [ - "0.4" - ], - "nozzle_temperature_initial_layer": [ - "240" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "overhang_fan_speed": [ - "100" - ], - "additional_cooling_fan_speed": [ - "70" - ], - "close_fan_the_first_x_layers": [ - "1" - ], - "nozzle_temperature": [ - "240" - ], - "temperature_vitrification": [ - "60" - ], - "nozzle_temperature_range_low": [ - "200" - ], - "nozzle_temperature_range_high": [ - "250" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ] -} diff --git a/resources/profiles/RolohaunDesign/machine/fdm_common_Rook MK1 LDO.json b/resources/profiles/RolohaunDesign/machine/fdm_common_Rook MK1 LDO.json index 2639c409f3..6246e9e8a8 100644 --- a/resources/profiles/RolohaunDesign/machine/fdm_common_Rook MK1 LDO.json +++ b/resources/profiles/RolohaunDesign/machine/fdm_common_Rook MK1 LDO.json @@ -34,7 +34,7 @@ "retraction_minimum_travel": ["1"], "retract_before_wipe": ["70%"], "retract_when_changing_layer": ["1"], - "retraction_length": ["2.9"], + "retraction_length": ["0.8"], "retract_length_toolchange": ["2"], "z_hop": ["0.4"], "retract_restart_extra": ["0"], diff --git a/resources/profiles/RolohaunDesign/machine/fdm_machine_common.json b/resources/profiles/RolohaunDesign/machine/fdm_machine_common.json index bfb6b23e1a..1d35eb33bf 100644 --- a/resources/profiles/RolohaunDesign/machine/fdm_machine_common.json +++ b/resources/profiles/RolohaunDesign/machine/fdm_machine_common.json @@ -88,7 +88,7 @@ "1" ], "retraction_length": [ - "5" + "1" ], "retract_length_toolchange": [ "1" diff --git a/resources/profiles/Snapmaker.json b/resources/profiles/Snapmaker.json index 4d73c98a3c..dfa8452566 100644 --- a/resources/profiles/Snapmaker.json +++ b/resources/profiles/Snapmaker.json @@ -1,1342 +1,1322 @@ { - "name": "Snapmaker", - "version": "02.02.00.04", - "force_update": "0", - "description": "Snapmaker configurations", - "machine_model_list": [ - { - "name": "Snapmaker J1", - "sub_path": "machine/Snapmaker J1.json" - }, - { - "name": "Snapmaker A250", - "sub_path": "machine/Snapmaker A250.json" - }, - { - "name": "Snapmaker A350", - "sub_path": "machine/Snapmaker A350.json" - }, - { - "name": "Snapmaker A250 Dual", - "sub_path": "machine/Snapmaker A250 Dual.json" - }, - { - "name": "Snapmaker A350 Dual", - "sub_path": "machine/Snapmaker A350 Dual.json" - }, - { - "name": "Snapmaker A250 QSKit", - "sub_path": "machine/Snapmaker A250 QSKit.json" - }, - { - "name": "Snapmaker A350 QSKit", - "sub_path": "machine/Snapmaker A350 QSKit.json" - }, - { - "name": "Snapmaker A250 BKit", - "sub_path": "machine/Snapmaker A250 BKit.json" - }, - { - "name": "Snapmaker A350 BKit", - "sub_path": "machine/Snapmaker A350 BKit.json" - }, - { - "name": "Snapmaker A250 QS+B Kit", - "sub_path": "machine/Snapmaker A250 QS+B Kit.json" - }, - { - "name": "Snapmaker A350 QS+B Kit", - "sub_path": "machine/Snapmaker A350 QS+B Kit.json" - }, - { - "name": "Snapmaker A250 Dual QSKit", - "sub_path": "machine/Snapmaker A250 Dual QSKit.json" - }, - { - "name": "Snapmaker A350 Dual QSKit", - "sub_path": "machine/Snapmaker A350 Dual QSKit.json" - }, - { - "name": "Snapmaker A250 Dual BKit", - "sub_path": "machine/Snapmaker A250 Dual BKit.json" - }, - { - "name": "Snapmaker A350 Dual BKit", - "sub_path": "machine/Snapmaker A350 Dual BKit.json" - }, - { - "name": "Snapmaker A250 Dual QS+B Kit", - "sub_path": "machine/Snapmaker A250 Dual QS+B Kit.json" - }, - { - "name": "Snapmaker A350 Dual QS+B Kit", - "sub_path": "machine/Snapmaker A350 Dual QS+B Kit.json" - }, - { - "name": "Snapmaker Artisan", - "sub_path": "machine/Snapmaker Artisan.json" - } - ], - "process_list": [ - { - "name": "fdm_process_common", - "sub_path": "process/fdm_process_common.json" - }, - { - "name": "fdm_process_idex", - "sub_path": "process/fdm_process_idex.json" - }, - { - "name": "fdm_process_a400", - "sub_path": "process/fdm_process_a400.json" - }, - { - "name": "0.06 Standard @Snapmaker (0.2 nozzle)", - "sub_path": "process/0.06 Standard @Snapmaker (0.2 nozzle).json" - }, - { - "name": "0.06 Standard @Snapmaker J1 (0.2 nozzle)", - "sub_path": "process/0.06 Standard @Snapmaker J1 (0.2 nozzle).json" - }, - { - "name": "0.06 Standard @Snapmaker Artisan (0.2 nozzle)", - "sub_path": "process/0.06 Standard @Snapmaker Artisan (0.2 nozzle).json" - }, - { - "name": "0.08 Extra Fine @Snapmaker (0.4 nozzle)", - "sub_path": "process/0.08 Extra Fine @Snapmaker (0.4 nozzle).json" - }, - { - "name": "0.08 Extra Fine @Snapmaker J1 (0.4 nozzle)", - "sub_path": "process/0.08 Extra Fine @Snapmaker J1 (0.4 nozzle).json" - }, - { - "name": "0.08 Extra Fine @Snapmaker Artisan (0.4 nozzle)", - "sub_path": "process/0.08 Extra Fine @Snapmaker Artisan (0.4 nozzle).json" - }, - { - "name": "0.10 Standard @Snapmaker (0.2 nozzle)", - "sub_path": "process/0.10 Standard @Snapmaker (0.2 nozzle).json" - }, - { - "name": "0.10 Standard @Snapmaker J1 (0.2 nozzle)", - "sub_path": "process/0.10 Standard @Snapmaker J1 (0.2 nozzle).json" - }, - { - "name": "0.10 Standard @Snapmaker Artisan (0.2 nozzle)", - "sub_path": "process/0.10 Standard @Snapmaker Artisan (0.2 nozzle).json" - }, - { - "name": "0.12 Fine @Snapmaker (0.4 nozzle)", - "sub_path": "process/0.12 Fine @Snapmaker (0.4 nozzle).json" - }, - { - "name": "0.12 Fine @Snapmaker J1 (0.4 nozzle)", - "sub_path": "process/0.12 Fine @Snapmaker J1 (0.4 nozzle).json" - }, - { - "name": "0.12 Fine @Snapmaker Artisan (0.4 nozzle)", - "sub_path": "process/0.12 Fine @Snapmaker Artisan (0.4 nozzle).json" - }, - { - "name": "0.14 Standard @Snapmaker (0.2 nozzle)", - "sub_path": "process/0.14 Standard @Snapmaker (0.2 nozzle).json" - }, - { - "name": "0.14 Standard @Snapmaker J1 (0.2 nozzle)", - "sub_path": "process/0.14 Standard @Snapmaker J1 (0.2 nozzle).json" - }, - { - "name": "0.14 Standard @Snapmaker Artisan (0.2 nozzle)", - "sub_path": "process/0.14 Standard @Snapmaker Artisan (0.2 nozzle).json" - }, - { - "name": "0.16 Optimal @Snapmaker (0.4 nozzle)", - "sub_path": "process/0.16 Optimal @Snapmaker (0.4 nozzle).json" - }, - { - "name": "0.16 Optimal @Snapmaker J1 (0.4 nozzle)", - "sub_path": "process/0.16 Optimal @Snapmaker J1 (0.4 nozzle).json" - }, - { - "name": "0.16 Optimal @Snapmaker Artisan (0.4 nozzle)", - "sub_path": "process/0.16 Optimal @Snapmaker Artisan (0.4 nozzle).json" - }, - { - "name": "0.18 Standard @Snapmaker (0.6 nozzle)", - "sub_path": "process/0.18 Standard @Snapmaker (0.6 nozzle).json" - }, - { - "name": "0.18 Standard @Snapmaker J1 (0.6 nozzle)", - "sub_path": "process/0.18 Standard @Snapmaker J1 (0.6 nozzle).json" - }, - { - "name": "0.18 Standard @Snapmaker Artisan (0.6 nozzle)", - "sub_path": "process/0.18 Standard @Snapmaker Artisan (0.6 nozzle).json" - }, - { - "name": "0.20 Standard @Snapmaker (0.4 nozzle)", - "sub_path": "process/0.20 Standard @Snapmaker (0.4 nozzle).json" - }, - { - "name": "0.20 Standard @Snapmaker J1 (0.4 nozzle)", - "sub_path": "process/0.20 Standard @Snapmaker J1 (0.4 nozzle).json" - }, - { - "name": "0.20 Standard @Snapmaker Artisan (0.4 nozzle)", - "sub_path": "process/0.20 Standard @Snapmaker Artisan (0.4 nozzle).json" - }, - { - "name": "0.20 Strength @Snapmaker (0.4 nozzle)", - "sub_path": "process/0.20 Strength @Snapmaker (0.4 nozzle).json" - }, - { - "name": "0.20 Strength @Snapmaker J1 (0.4 nozzle)", - "sub_path": "process/0.20 Strength @Snapmaker J1 (0.4 nozzle).json" - }, - { - "name": "0.20 Strength @Snapmaker Artisan (0.4 nozzle)", - "sub_path": "process/0.20 Strength @Snapmaker Artisan (0.4 nozzle).json" - }, - { - "name": "0.24 Draft @Snapmaker (0.4 nozzle)", - "sub_path": "process/0.24 Draft @Snapmaker (0.4 nozzle).json" - }, - { - "name": "0.24 Draft @Snapmaker J1 (0.4 nozzle)", - "sub_path": "process/0.24 Draft @Snapmaker J1 (0.4 nozzle).json" - }, - { - "name": "0.24 Draft @Snapmaker Artisan (0.4 nozzle)", - "sub_path": "process/0.24 Draft @Snapmaker Artisan (0.4 nozzle).json" - }, - { - "name": "0.25 Benchy @Snapmaker J1 (0.4 nozzle)", - "sub_path": "process/0.25 Benchy @Snapmaker J1 (0.4 nozzle).json" - }, - { - "name": "0.25 Benchy @Snapmaker Artisan (0.4 nozzle)", - "sub_path": "process/0.25 Benchy @Snapmaker Artisan (0.4 nozzle).json" - }, - { - "name": "0.24 Standard @Snapmaker (0.6 nozzle)", - "sub_path": "process/0.24 Standard @Snapmaker (0.6 nozzle).json" - }, - { - "name": "0.24 Standard @Snapmaker J1 (0.6 nozzle)", - "sub_path": "process/0.24 Standard @Snapmaker J1 (0.6 nozzle).json" - }, - { - "name": "0.24 Standard @Snapmaker Artisan (0.6 nozzle)", - "sub_path": "process/0.24 Standard @Snapmaker Artisan (0.6 nozzle).json" - }, - { - "name": "0.24 Standard @Snapmaker (0.8 nozzle)", - "sub_path": "process/0.24 Standard @Snapmaker (0.8 nozzle).json" - }, - { - "name": "0.24 Standard @Snapmaker J1 (0.8 nozzle)", - "sub_path": "process/0.24 Standard @Snapmaker J1 (0.8 nozzle).json" - }, - { - "name": "0.24 Standard @Snapmaker Artisan (0.8 nozzle)", - "sub_path": "process/0.24 Standard @Snapmaker Artisan (0.8 nozzle).json" - }, - { - "name": "0.28 Extra Draft @Snapmaker (0.4 nozzle)", - "sub_path": "process/0.28 Extra Draft @Snapmaker (0.4 nozzle).json" - }, - { - "name": "0.28 Extra Draft @Snapmaker J1 (0.4 nozzle)", - "sub_path": "process/0.28 Extra Draft @Snapmaker J1 (0.4 nozzle).json" - }, - { - "name": "0.28 Extra Draft @Snapmaker Artisan (0.4 nozzle)", - "sub_path": "process/0.28 Extra Draft @Snapmaker Artisan (0.4 nozzle).json" - }, - { - "name": "0.30 Standard @Snapmaker (0.6 nozzle)", - "sub_path": "process/0.30 Standard @Snapmaker (0.6 nozzle).json" - }, - { - "name": "0.30 Standard @Snapmaker J1 (0.6 nozzle)", - "sub_path": "process/0.30 Standard @Snapmaker J1 (0.6 nozzle).json" - }, - { - "name": "0.30 Standard @Snapmaker Artisan (0.6 nozzle)", - "sub_path": "process/0.30 Standard @Snapmaker Artisan (0.6 nozzle).json" - }, - { - "name": "0.30 Strength @Snapmaker (0.6 nozzle)", - "sub_path": "process/0.30 Strength @Snapmaker (0.6 nozzle).json" - }, - { - "name": "0.30 Strength @Snapmaker J1 (0.6 nozzle)", - "sub_path": "process/0.30 Strength @Snapmaker J1 (0.6 nozzle).json" - }, - { - "name": "0.30 Strength @Snapmaker Artisan (0.6 nozzle)", - "sub_path": "process/0.30 Strength @Snapmaker Artisan (0.6 nozzle).json" - }, - { - "name": "0.32 Standard @Snapmaker (0.8 nozzle)", - "sub_path": "process/0.32 Standard @Snapmaker (0.8 nozzle).json" - }, - { - "name": "0.32 Standard @Snapmaker J1 (0.8 nozzle)", - "sub_path": "process/0.32 Standard @Snapmaker J1 (0.8 nozzle).json" - }, - { - "name": "0.32 Standard @Snapmaker Artisan (0.8 nozzle)", - "sub_path": "process/0.32 Standard @Snapmaker Artisan (0.8 nozzle).json" - }, - { - "name": "0.34 Standard @Snapmaker (0.6 nozzle)", - "sub_path": "process/0.34 Standard @Snapmaker (0.6 nozzle).json" - }, - { - "name": "0.34 Standard @Snapmaker J1 (0.6 nozzle)", - "sub_path": "process/0.34 Standard @Snapmaker J1 (0.6 nozzle).json" - }, - { - "name": "0.34 Standard @Snapmaker Artisan (0.6 nozzle)", - "sub_path": "process/0.34 Standard @Snapmaker Artisan (0.6 nozzle).json" - }, - { - "name": "0.36 Standard @Snapmaker (0.8 nozzle)", - "sub_path": "process/0.36 Standard @Snapmaker (0.8 nozzle).json" - }, - { - "name": "0.36 Standard @Snapmaker J1 (0.8 nozzle)", - "sub_path": "process/0.36 Standard @Snapmaker J1 (0.8 nozzle).json" - }, - { - "name": "0.36 Standard @Snapmaker Artisan (0.8 nozzle)", - "sub_path": "process/0.36 Standard @Snapmaker Artisan (0.8 nozzle).json" - }, - { - "name": "0.38 Standard @Snapmaker (0.6 nozzle)", - "sub_path": "process/0.38 Standard @Snapmaker (0.6 nozzle).json" - }, - { - "name": "0.38 Standard @Snapmaker J1 (0.6 nozzle)", - "sub_path": "process/0.38 Standard @Snapmaker J1 (0.6 nozzle).json" - }, - { - "name": "0.38 Standard @Snapmaker Artisan (0.6 nozzle)", - "sub_path": "process/0.38 Standard @Snapmaker Artisan (0.6 nozzle).json" - }, - { - "name": "0.40 Standard @Snapmaker (0.8 nozzle)", - "sub_path": "process/0.40 Standard @Snapmaker (0.8 nozzle).json" - }, - { - "name": "0.40 Standard @Snapmaker J1 (0.8 nozzle)", - "sub_path": "process/0.40 Standard @Snapmaker J1 (0.8 nozzle).json" - }, - { - "name": "0.40 Standard @Snapmaker Artisan (0.8 nozzle)", - "sub_path": "process/0.40 Standard @Snapmaker Artisan (0.8 nozzle).json" - }, - { - "name": "0.42 Draft @Snapmaker (0.6 nozzle)", - "sub_path": "process/0.42 Draft @Snapmaker (0.6 nozzle).json" - }, - { - "name": "0.42 Draft @Snapmaker J1 (0.6 nozzle)", - "sub_path": "process/0.42 Draft @Snapmaker J1 (0.6 nozzle).json" - }, - { - "name": "0.42 Draft @Snapmaker Artisan (0.6 nozzle)", - "sub_path": "process/0.42 Draft @Snapmaker Artisan (0.6 nozzle).json" - }, - { - "name": "0.48 Draft @Snapmaker (0.8 nozzle)", - "sub_path": "process/0.48 Draft @Snapmaker (0.8 nozzle).json" - }, - { - "name": "0.48 Draft @Snapmaker J1 (0.8 nozzle)", - "sub_path": "process/0.48 Draft @Snapmaker J1 (0.8 nozzle).json" - }, - { - "name": "0.48 Draft @Snapmaker Artisan (0.8 nozzle)", - "sub_path": "process/0.48 Draft @Snapmaker Artisan (0.8 nozzle).json" - } - ], - "filament_list": [ - { - "name": "fdm_filament_common", - "sub_path": "filament/fdm_filament_common.json" - }, - { - "name": "fdm_filament_abs", - "sub_path": "filament/fdm_filament_abs.json" - }, - { - "name": "fdm_filament_asa", - "sub_path": "filament/fdm_filament_asa.json" - }, - { - "name": "fdm_filament_pa", - "sub_path": "filament/fdm_filament_pa.json" - }, - { - "name": "fdm_filament_petg", - "sub_path": "filament/fdm_filament_petg.json" - }, - { - "name": "fdm_filament_pet", - "sub_path": "filament/fdm_filament_pet.json" - }, - { - "name": "fdm_filament_pla", - "sub_path": "filament/fdm_filament_pla.json" - }, - { - "name": "fdm_filament_pla_eco", - "sub_path": "filament/fdm_filament_pla_eco.json" - }, - { - "name": "fdm_filament_pva", - "sub_path": "filament/fdm_filament_pva.json" - }, - { - "name": "fdm_filament_breakaway", - "sub_path": "filament/fdm_filament_breakaway.json" - }, - { - "name": "fdm_filament_tpu", - "sub_path": "filament/fdm_filament_tpu.json" - }, - { - "name": "Snapmaker ABS @base", - "sub_path": "filament/Snapmaker ABS @base.json" - }, - { - "name": "Snapmaker ABS", - "sub_path": "filament/Snapmaker ABS.json" - }, - { - "name": "Snapmaker ABS @0.2 nozzle", - "sub_path": "filament/Snapmaker ABS @0.2 nozzle.json" - }, - { - "name": "Snapmaker ASA @base", - "sub_path": "filament/Snapmaker ASA @base.json" - }, - { - "name": "Snapmaker ASA", - "sub_path": "filament/Snapmaker ASA.json" - }, - { - "name": "Snapmaker ASA @0.2 nozzle", - "sub_path": "filament/Snapmaker ASA @0.2 nozzle.json" - }, - { - "name": "Snapmaker PA-CF @base", - "sub_path": "filament/Snapmaker PA-CF @base.json" - }, - { - "name": "Snapmaker PA-CF", - "sub_path": "filament/Snapmaker PA-CF.json" - }, - { - "name": "Snapmaker PETG @base", - "sub_path": "filament/Snapmaker PETG @base.json" - }, - { - "name": "Snapmaker PETG", - "sub_path": "filament/Snapmaker PETG.json" - }, - { - "name": "Snapmaker PETG @0.2 nozzle", - "sub_path": "filament/Snapmaker PETG @0.2 nozzle.json" - }, - { - "name": "Snapmaker PET @base", - "sub_path": "filament/Snapmaker PET @base.json" - }, - { - "name": "Snapmaker PET", - "sub_path": "filament/Snapmaker PET.json" - }, - { - "name": "Snapmaker PETG-CF @base", - "sub_path": "filament/Snapmaker PETG-CF @base.json" - }, - { - "name": "Snapmaker PETG-CF", - "sub_path": "filament/Snapmaker PETG-CF.json" - }, - { - "name": "Snapmaker PLA Eco @base", - "sub_path": "filament/Snapmaker PLA Eco @base.json" - }, - { - "name": "Snapmaker PLA Eco", - "sub_path": "filament/Snapmaker PLA Eco.json" - }, - { - "name": "Snapmaker PLA @base", - "sub_path": "filament/Snapmaker PLA @base.json" - }, - { - "name": "Snapmaker PLA", - "sub_path": "filament/Snapmaker PLA.json" - }, - { - "name": "Snapmaker PLA-CF @base", - "sub_path": "filament/Snapmaker PLA-CF @base.json" - }, - { - "name": "Snapmaker PLA-CF", - "sub_path": "filament/Snapmaker PLA-CF.json" - }, - { - "name": "Snapmaker PLA Silk @base", - "sub_path": "filament/Snapmaker PLA Silk @base.json" - }, - { - "name": "Snapmaker PLA Silk", - "sub_path": "filament/Snapmaker PLA Silk.json" - }, - { - "name": "Snapmaker PLA Silk @0.2 nozzle", - "sub_path": "filament/Snapmaker PLA Silk @0.2 nozzle.json" - }, - { - "name": "PolyLite PLA @base", - "sub_path": "filament/PolyLite PLA @base.json" - }, - { - "name": "PolyLite PLA", - "sub_path": "filament/PolyLite PLA.json" - }, - { - "name": "PolyLite PLA @0.2 nozzle", - "sub_path": "filament/PolyLite PLA @0.2 nozzle.json" - }, - { - "name": "PolyTerra PLA @base", - "sub_path": "filament/PolyTerra PLA @base.json" - }, - { - "name": "PolyTerra PLA", - "sub_path": "filament/PolyTerra PLA.json" - }, - { - "name": "PolyTerra PLA @0.2 nozzle", - "sub_path": "filament/PolyTerra PLA @0.2 nozzle.json" - }, - { - "name": "Snapmaker PVA @base", - "sub_path": "filament/Snapmaker PVA @base.json" - }, - { - "name": "Snapmaker PVA", - "sub_path": "filament/Snapmaker PVA.json" - }, - { - "name": "Snapmaker PVA @0.2 nozzle", - "sub_path": "filament/Snapmaker PVA @0.2 nozzle.json" - }, - { - "name": "Snapmaker TPU @base", - "sub_path": "filament/Snapmaker TPU @base.json" - }, - { - "name": "Snapmaker TPU", - "sub_path": "filament/Snapmaker TPU.json" - }, - { - "name": "Snapmaker TPE", - "sub_path": "filament/Snapmaker TPE.json" - }, - { - "name": "Snapmaker J1 ABS @base", - "sub_path": "filament/Snapmaker J1 ABS @base.json" - }, - { - "name": "Snapmaker J1 ABS", - "sub_path": "filament/Snapmaker J1 ABS.json" - }, - { - "name": "Snapmaker J1 ABS @0.2 nozzle", - "sub_path": "filament/Snapmaker J1 ABS @0.2 nozzle.json" - }, - { - "name": "Snapmaker J1 ABS @0.8 nozzle", - "sub_path": "filament/Snapmaker J1 ABS @0.8 nozzle.json" - }, - { - "name": "Snapmaker J1 ABS Benchy", - "sub_path": "filament/Snapmaker J1 ABS Benchy.json" - }, - { - "name": "Snapmaker J1 ASA @base", - "sub_path": "filament/Snapmaker J1 ASA @base.json" - }, - { - "name": "Snapmaker J1 ASA", - "sub_path": "filament/Snapmaker J1 ASA.json" - }, - { - "name": "Snapmaker J1 ASA @0.2 nozzle", - "sub_path": "filament/Snapmaker J1 ASA @0.2 nozzle.json" - }, - { - "name": "Snapmaker J1 PA-CF @base", - "sub_path": "filament/Snapmaker J1 PA-CF @base.json" - }, - { - "name": "Snapmaker J1 PA-CF", - "sub_path": "filament/Snapmaker J1 PA-CF.json" - }, - { - "name": "Snapmaker J1 PETG @base", - "sub_path": "filament/Snapmaker J1 PETG @base.json" - }, - { - "name": "Snapmaker J1 PETG", - "sub_path": "filament/Snapmaker J1 PETG.json" - }, - { - "name": "Snapmaker J1 PETG @0.2 nozzle", - "sub_path": "filament/Snapmaker J1 PETG @0.2 nozzle.json" - }, - { - "name": "Snapmaker J1 PETG @0.8 nozzle", - "sub_path": "filament/Snapmaker J1 PETG @0.8 nozzle.json" - }, - { - "name": "Snapmaker J1 PET @base", - "sub_path": "filament/Snapmaker J1 PET @base.json" - }, - { - "name": "Snapmaker J1 PET", - "sub_path": "filament/Snapmaker J1 PET.json" - }, - { - "name": "Snapmaker J1 PETG-CF @base", - "sub_path": "filament/Snapmaker J1 PETG-CF @base.json" - }, - { - "name": "Snapmaker J1 PETG-CF", - "sub_path": "filament/Snapmaker J1 PETG-CF.json" - }, - { - "name": "Snapmaker J1 PLA Eco @base", - "sub_path": "filament/Snapmaker J1 PLA Eco @base.json" - }, - { - "name": "Snapmaker J1 PLA Eco", - "sub_path": "filament/Snapmaker J1 PLA Eco.json" - }, - { - "name": "Snapmaker J1 PLA Eco @0.2 nozzle", - "sub_path": "filament/Snapmaker J1 PLA Eco @0.2 nozzle.json" - }, - { - "name": "Snapmaker J1 PLA Eco @0.8 nozzle", - "sub_path": "filament/Snapmaker J1 PLA Eco @0.8 nozzle.json" - }, - { - "name": "Snapmaker J1 PLA @base", - "sub_path": "filament/Snapmaker J1 PLA @base.json" - }, - { - "name": "Snapmaker J1 PLA", - "sub_path": "filament/Snapmaker J1 PLA.json" - }, - { - "name": "Snapmaker J1 PLA Matte @base", - "sub_path": "filament/Snapmaker J1 PLA Matte @base.json" - }, - { - "name": "Snapmaker J1 PLA Matte", - "sub_path": "filament/Snapmaker J1 PLA Matte.json" - }, - { - "name": "Snapmaker J1 PLA Matte @0.2 nozzle", - "sub_path": "filament/Snapmaker J1 PLA Matte @0.2 nozzle.json" - }, - { - "name": "Snapmaker J1 PLA Matte @0.8 nozzle", - "sub_path": "filament/Snapmaker J1 PLA Matte @0.8 nozzle.json" - }, - { - "name": "Snapmaker J1 PLA Metal @base", - "sub_path": "filament/Snapmaker J1 PLA Metal @base.json" - }, - { - "name": "Snapmaker J1 PLA Metal", - "sub_path": "filament/Snapmaker J1 PLA Metal.json" - }, - { - "name": "Snapmaker J1 PLA Metal @0.2 nozzle", - "sub_path": "filament/Snapmaker J1 PLA Metal @0.2 nozzle.json" - }, - { - "name": "Snapmaker J1 PLA-CF @base", - "sub_path": "filament/Snapmaker J1 PLA-CF @base.json" - }, - { - "name": "Snapmaker J1 PLA-CF", - "sub_path": "filament/Snapmaker J1 PLA-CF.json" - }, - { - "name": "Snapmaker J1 PLA-CF @0.8 nozzle", - "sub_path": "filament/Snapmaker J1 PLA-CF @0.8 nozzle.json" - }, - { - "name": "Snapmaker J1 PLA Silk @base", - "sub_path": "filament/Snapmaker J1 PLA Silk @base.json" - }, - { - "name": "Snapmaker J1 PLA Silk", - "sub_path": "filament/Snapmaker J1 PLA Silk.json" - }, - { - "name": "Snapmaker J1 PLA Silk @0.2 nozzle", - "sub_path": "filament/Snapmaker J1 PLA Silk @0.2 nozzle.json" - }, - { - "name": "PolyLite J1 PLA", - "sub_path": "filament/PolyLite J1 PLA.json" - }, - { - "name": "PolyLite J1 PLA @0.2 nozzle", - "sub_path": "filament/PolyLite J1 PLA @0.2 nozzle.json" - }, - { - "name": "PolyTerra J1 PLA", - "sub_path": "filament/PolyTerra J1 PLA.json" - }, - { - "name": "PolyTerra J1 PLA @0.2 nozzle", - "sub_path": "filament/PolyTerra J1 PLA @0.2 nozzle.json" - }, - { - "name": "Snapmaker J1 PVA @base", - "sub_path": "filament/Snapmaker J1 PVA @base.json" - }, - { - "name": "Snapmaker J1 PVA", - "sub_path": "filament/Snapmaker J1 PVA.json" - }, - { - "name": "Snapmaker J1 PVA @0.2 nozzle", - "sub_path": "filament/Snapmaker J1 PVA @0.2 nozzle.json" - }, - { - "name": "Snapmaker J1 Breakaway @base", - "sub_path": "filament/Snapmaker J1 Breakaway @base.json" - }, - { - "name": "Snapmaker J1 Breakaway", - "sub_path": "filament/Snapmaker J1 Breakaway.json" - }, - { - "name": "Snapmaker J1 Breakaway @0.2 nozzle", - "sub_path": "filament/Snapmaker J1 Breakaway @0.2 nozzle.json" - }, - { - "name": "Snapmaker J1 TPU @base", - "sub_path": "filament/Snapmaker J1 TPU @base.json" - }, - { - "name": "Snapmaker J1 TPU", - "sub_path": "filament/Snapmaker J1 TPU.json" - }, - { - "name": "Snapmaker J1 TPU High-Flow", - "sub_path": "filament/Snapmaker J1 TPU High-Flow.json" - }, - { - "name": "Snapmaker J1 TPE", - "sub_path": "filament/Snapmaker J1 TPE.json" - }, - { - "name": "Snapmaker Dual ABS @base", - "sub_path": "filament/Snapmaker Dual ABS @base.json" - }, - { - "name": "Snapmaker Dual ABS", - "sub_path": "filament/Snapmaker Dual ABS.json" - }, - { - "name": "Snapmaker Dual ABS @0.2 nozzle", - "sub_path": "filament/Snapmaker Dual ABS @0.2 nozzle.json" - }, - { - "name": "Snapmaker Dual ABS @0.8 nozzle", - "sub_path": "filament/Snapmaker Dual ABS @0.8 nozzle.json" - }, - { - "name": "Snapmaker Dual ABS Benchy", - "sub_path": "filament/Snapmaker Dual ABS Benchy.json" - }, - { - "name": "Snapmaker Dual ASA @base", - "sub_path": "filament/Snapmaker Dual ASA @base.json" - }, - { - "name": "Snapmaker Dual ASA", - "sub_path": "filament/Snapmaker Dual ASA.json" - }, - { - "name": "Snapmaker Dual ASA @0.2 nozzle", - "sub_path": "filament/Snapmaker Dual ASA @0.2 nozzle.json" - }, - { - "name": "Snapmaker Dual PA-CF @base", - "sub_path": "filament/Snapmaker Dual PA-CF @base.json" - }, - { - "name": "Snapmaker Dual PA-CF", - "sub_path": "filament/Snapmaker Dual PA-CF.json" - }, - { - "name": "Snapmaker Dual PETG @base", - "sub_path": "filament/Snapmaker Dual PETG @base.json" - }, - { - "name": "Snapmaker Dual PETG", - "sub_path": "filament/Snapmaker Dual PETG.json" - }, - { - "name": "Snapmaker Dual PETG @0.2 nozzle", - "sub_path": "filament/Snapmaker Dual PETG @0.2 nozzle.json" - }, - { - "name": "Snapmaker Dual PETG @0.8 nozzle", - "sub_path": "filament/Snapmaker Dual PETG @0.8 nozzle.json" - }, - { - "name": "Snapmaker Dual PET @base", - "sub_path": "filament/Snapmaker Dual PET @base.json" - }, - { - "name": "Snapmaker PET @Dual", - "sub_path": "filament/Snapmaker PET @Dual.json" - }, - { - "name": "Snapmaker Dual PET", - "sub_path": "filament/Snapmaker Dual PET.json" - }, - { - "name": "Snapmaker Dual PETG-CF @base", - "sub_path": "filament/Snapmaker Dual PETG-CF @base.json" - }, - { - "name": "Snapmaker Dual PETG-CF", - "sub_path": "filament/Snapmaker Dual PETG-CF.json" - }, - { - "name": "Snapmaker Dual PLA Eco @base", - "sub_path": "filament/Snapmaker Dual PLA Eco @base.json" - }, - { - "name": "Snapmaker Dual PLA Eco", - "sub_path": "filament/Snapmaker Dual PLA Eco.json" - }, - { - "name": "Snapmaker Dual PLA Eco @0.2 nozzle", - "sub_path": "filament/Snapmaker Dual PLA Eco @0.2 nozzle.json" - }, - { - "name": "Snapmaker Dual PLA Eco @0.8 nozzle", - "sub_path": "filament/Snapmaker Dual PLA Eco @0.8 nozzle.json" - }, - { - "name": "Snapmaker Dual PLA @base", - "sub_path": "filament/Snapmaker Dual PLA @base.json" - }, - { - "name": "Snapmaker Dual PLA", - "sub_path": "filament/Snapmaker Dual PLA.json" - }, - { - "name": "Snapmaker Dual PLA Matte @base", - "sub_path": "filament/Snapmaker Dual PLA Matte @base.json" - }, - { - "name": "Snapmaker Dual PLA Matte", - "sub_path": "filament/Snapmaker Dual PLA Matte.json" - }, - { - "name": "Snapmaker Dual PLA Matte @0.2 nozzle", - "sub_path": "filament/Snapmaker Dual PLA Matte @0.2 nozzle.json" - }, - { - "name": "Snapmaker Dual PLA Matte @0.8 nozzle", - "sub_path": "filament/Snapmaker Dual PLA Matte @0.8 nozzle.json" - }, - { - "name": "Snapmaker Dual PLA Metal @base", - "sub_path": "filament/Snapmaker Dual PLA Metal @base.json" - }, - { - "name": "Snapmaker Dual PLA Metal", - "sub_path": "filament/Snapmaker Dual PLA Metal.json" - }, - { - "name": "Snapmaker Dual PLA Metal @0.2 nozzle", - "sub_path": "filament/Snapmaker Dual PLA Metal @0.2 nozzle.json" - }, - { - "name": "Snapmaker Dual PLA-CF @base", - "sub_path": "filament/Snapmaker Dual PLA-CF @base.json" - }, - { - "name": "Snapmaker Dual PLA-CF", - "sub_path": "filament/Snapmaker Dual PLA-CF.json" - }, - { - "name": "Snapmaker Dual PLA-CF @0.8 nozzle", - "sub_path": "filament/Snapmaker Dual PLA-CF @0.8 nozzle.json" - }, - { - "name": "Snapmaker Dual PLA Silk @base", - "sub_path": "filament/Snapmaker Dual PLA Silk @base.json" - }, - { - "name": "Snapmaker Dual PLA Silk", - "sub_path": "filament/Snapmaker Dual PLA Silk.json" - }, - { - "name": "Snapmaker Dual PLA Silk @0.2 nozzle", - "sub_path": "filament/Snapmaker Dual PLA Silk @0.2 nozzle.json" - }, - { - "name": "PolyLite Dual PLA", - "sub_path": "filament/PolyLite Dual PLA.json" - }, - { - "name": "PolyLite Dual PLA @0.2 nozzle", - "sub_path": "filament/PolyLite Dual PLA @0.2 nozzle.json" - }, - { - "name": "PolyTerra Dual PLA", - "sub_path": "filament/PolyTerra Dual PLA.json" - }, - { - "name": "PolyTerra Dual PLA @0.2 nozzle", - "sub_path": "filament/PolyTerra Dual PLA @0.2 nozzle.json" - }, - { - "name": "Snapmaker Dual PVA @base", - "sub_path": "filament/Snapmaker Dual PVA @base.json" - }, - { - "name": "Snapmaker Dual PVA", - "sub_path": "filament/Snapmaker Dual PVA.json" - }, - { - "name": "Snapmaker Dual PVA @0.2 nozzle", - "sub_path": "filament/Snapmaker Dual PVA @0.2 nozzle.json" - }, - { - "name": "Snapmaker Dual Breakaway @base", - "sub_path": "filament/Snapmaker Dual Breakaway @base.json" - }, - { - "name": "Snapmaker Dual Breakaway", - "sub_path": "filament/Snapmaker Dual Breakaway.json" - }, - { - "name": "Snapmaker Dual Breakaway @0.2 nozzle", - "sub_path": "filament/Snapmaker Dual Breakaway @0.2 nozzle.json" - }, - { - "name": "Snapmaker Dual TPU @base", - "sub_path": "filament/Snapmaker Dual TPU @base.json" - }, - { - "name": "Snapmaker Dual TPU", - "sub_path": "filament/Snapmaker Dual TPU.json" - }, - { - "name": "Snapmaker Dual TPU High-Flow", - "sub_path": "filament/Snapmaker Dual TPU High-Flow.json" - }, - { - "name": "Snapmaker Dual TPE", - "sub_path": "filament/Snapmaker Dual TPE.json" - } - ], - "machine_list": [ - { - "name": "fdm_common", - "sub_path": "machine/fdm_common.json" - }, - { - "name": "fdm_linear2", - "sub_path": "machine/fdm_linear2.json" - }, - { - "name": "fdm_linear2_dual", - "sub_path": "machine/fdm_linear2_dual.json" - }, - { - "name": "fdm_idex", - "sub_path": "machine/fdm_idex.json" - }, - { - "name": "fdm_a250", - "sub_path": "machine/fdm_a250.json" - }, - { - "name": "fdm_a350", - "sub_path": "machine/fdm_a350.json" - }, - { - "name": "fdm_a250_dual", - "sub_path": "machine/fdm_a250_dual.json" - }, - { - "name": "fdm_a350_dual", - "sub_path": "machine/fdm_a350_dual.json" - }, - { - "name": "fdm_a250_qs", - "sub_path": "machine/fdm_a250_qs.json" - }, - { - "name": "fdm_a350_qs", - "sub_path": "machine/fdm_a350_qs.json" - }, - { - "name": "fdm_a250_bk", - "sub_path": "machine/fdm_a250_bk.json" - }, - { - "name": "fdm_a350_bk", - "sub_path": "machine/fdm_a350_bk.json" - }, - { - "name": "fdm_a250_qs_bk", - "sub_path": "machine/fdm_a250_qs_bk.json" - }, - { - "name": "fdm_a350_qs_bk", - "sub_path": "machine/fdm_a350_qs_bk.json" - }, - { - "name": "fdm_a250_dual_qs", - "sub_path": "machine/fdm_a250_dual_qs.json" - }, - { - "name": "fdm_a350_dual_qs", - "sub_path": "machine/fdm_a350_dual_qs.json" - }, - { - "name": "fdm_a250_dual_bk", - "sub_path": "machine/fdm_a250_dual_bk.json" - }, - { - "name": "fdm_a350_dual_bk", - "sub_path": "machine/fdm_a350_dual_bk.json" - }, - { - "name": "fdm_a250_dual_qs_bk", - "sub_path": "machine/fdm_a250_dual_qs_bk.json" - }, - { - "name": "fdm_a350_dual_qs_bk", - "sub_path": "machine/fdm_a350_dual_qs_bk.json" - }, - { - "name": "fdm_a400", - "sub_path": "machine/fdm_a400.json" - }, - { - "name": "Snapmaker J1 (0.2 nozzle)", - "sub_path": "machine/Snapmaker J1 (0.2 nozzle).json" - }, - { - "name": "Snapmaker J1 (0.4 nozzle)", - "sub_path": "machine/Snapmaker J1 (0.4 nozzle).json" - }, - { - "name": "Snapmaker J1 (0.6 nozzle)", - "sub_path": "machine/Snapmaker J1 (0.6 nozzle).json" - }, - { - "name": "Snapmaker J1 (0.8 nozzle)", - "sub_path": "machine/Snapmaker J1 (0.8 nozzle).json" - }, - { - "name": "Snapmaker A250 (0.2 nozzle)", - "sub_path": "machine/Snapmaker A250 (0.2 nozzle).json" - }, - { - "name": "Snapmaker A250 (0.4 nozzle)", - "sub_path": "machine/Snapmaker A250 (0.4 nozzle).json" - }, - { - "name": "Snapmaker A250 (0.6 nozzle)", - "sub_path": "machine/Snapmaker A250 (0.6 nozzle).json" - }, - { - "name": "Snapmaker A250 (0.8 nozzle)", - "sub_path": "machine/Snapmaker A250 (0.8 nozzle).json" - }, - { - "name": "Snapmaker A350 (0.2 nozzle)", - "sub_path": "machine/Snapmaker A350 (0.2 nozzle).json" - }, - { - "name": "Snapmaker A350 (0.4 nozzle)", - "sub_path": "machine/Snapmaker A350 (0.4 nozzle).json" - }, - { - "name": "Snapmaker A350 (0.6 nozzle)", - "sub_path": "machine/Snapmaker A350 (0.6 nozzle).json" - }, - { - "name": "Snapmaker A350 (0.8 nozzle)", - "sub_path": "machine/Snapmaker A350 (0.8 nozzle).json" - }, - { - "name": "Snapmaker A250 Dual (0.2 nozzle)", - "sub_path": "machine/Snapmaker A250 Dual (0.2 nozzle).json" - }, - { - "name": "Snapmaker A250 Dual (0.4 nozzle)", - "sub_path": "machine/Snapmaker A250 Dual (0.4 nozzle).json" - }, - { - "name": "Snapmaker A250 Dual (0.6 nozzle)", - "sub_path": "machine/Snapmaker A250 Dual (0.6 nozzle).json" - }, - { - "name": "Snapmaker A250 Dual (0.8 nozzle)", - "sub_path": "machine/Snapmaker A250 Dual (0.8 nozzle).json" - }, - { - "name": "Snapmaker A350 Dual (0.2 nozzle)", - "sub_path": "machine/Snapmaker A350 Dual (0.2 nozzle).json" - }, - { - "name": "Snapmaker A350 Dual (0.4 nozzle)", - "sub_path": "machine/Snapmaker A350 Dual (0.4 nozzle).json" - }, - { - "name": "Snapmaker A350 Dual (0.6 nozzle)", - "sub_path": "machine/Snapmaker A350 Dual (0.6 nozzle).json" - }, - { - "name": "Snapmaker A350 Dual (0.8 nozzle)", - "sub_path": "machine/Snapmaker A350 Dual (0.8 nozzle).json" - }, - { - "name": "Snapmaker A250 QSKit (0.2 nozzle)", - "sub_path": "machine/Snapmaker A250 QSKit (0.2 nozzle).json" - }, - { - "name": "Snapmaker A250 QSKit (0.4 nozzle)", - "sub_path": "machine/Snapmaker A250 QSKit (0.4 nozzle).json" - }, - { - "name": "Snapmaker A250 QSKit (0.6 nozzle)", - "sub_path": "machine/Snapmaker A250 QSKit (0.6 nozzle).json" - }, - { - "name": "Snapmaker A250 QSKit (0.8 nozzle)", - "sub_path": "machine/Snapmaker A250 QSKit (0.8 nozzle).json" - }, - { - "name": "Snapmaker A350 QSKit (0.2 nozzle)", - "sub_path": "machine/Snapmaker A350 QSKit (0.2 nozzle).json" - }, - { - "name": "Snapmaker A350 QSKit (0.4 nozzle)", - "sub_path": "machine/Snapmaker A350 QSKit (0.4 nozzle).json" - }, - { - "name": "Snapmaker A350 QSKit (0.6 nozzle)", - "sub_path": "machine/Snapmaker A350 QSKit (0.6 nozzle).json" - }, - { - "name": "Snapmaker A350 QSKit (0.8 nozzle)", - "sub_path": "machine/Snapmaker A350 QSKit (0.8 nozzle).json" - }, - { - "name": "Snapmaker A250 BKit (0.2 nozzle)", - "sub_path": "machine/Snapmaker A250 BKit (0.2 nozzle).json" - }, - { - "name": "Snapmaker A250 BKit (0.4 nozzle)", - "sub_path": "machine/Snapmaker A250 BKit (0.4 nozzle).json" - }, - { - "name": "Snapmaker A250 BKit (0.6 nozzle)", - "sub_path": "machine/Snapmaker A250 BKit (0.6 nozzle).json" - }, - { - "name": "Snapmaker A250 BKit (0.8 nozzle)", - "sub_path": "machine/Snapmaker A250 BKit (0.8 nozzle).json" - }, - { - "name": "Snapmaker A350 BKit (0.2 nozzle)", - "sub_path": "machine/Snapmaker A350 BKit (0.2 nozzle).json" - }, - { - "name": "Snapmaker A350 BKit (0.4 nozzle)", - "sub_path": "machine/Snapmaker A350 BKit (0.4 nozzle).json" - }, - { - "name": "Snapmaker A350 BKit (0.6 nozzle)", - "sub_path": "machine/Snapmaker A350 BKit (0.6 nozzle).json" - }, - { - "name": "Snapmaker A350 BKit (0.8 nozzle)", - "sub_path": "machine/Snapmaker A350 BKit (0.8 nozzle).json" - }, - { - "name": "Snapmaker A250 QS+B Kit (0.2 nozzle)", - "sub_path": "machine/Snapmaker A250 QS+B Kit (0.2 nozzle).json" - }, - { - "name": "Snapmaker A250 QS+B Kit (0.4 nozzle)", - "sub_path": "machine/Snapmaker A250 QS+B Kit (0.4 nozzle).json" - }, - { - "name": "Snapmaker A250 QS+B Kit (0.6 nozzle)", - "sub_path": "machine/Snapmaker A250 QS+B Kit (0.6 nozzle).json" - }, - { - "name": "Snapmaker A250 QS+B Kit (0.8 nozzle)", - "sub_path": "machine/Snapmaker A250 QS+B Kit (0.8 nozzle).json" - }, - { - "name": "Snapmaker A350 QS+B Kit (0.2 nozzle)", - "sub_path": "machine/Snapmaker A350 QS+B Kit (0.2 nozzle).json" - }, - { - "name": "Snapmaker A350 QS+B Kit (0.4 nozzle)", - "sub_path": "machine/Snapmaker A350 QS+B Kit (0.4 nozzle).json" - }, - { - "name": "Snapmaker A350 QS+B Kit (0.6 nozzle)", - "sub_path": "machine/Snapmaker A350 QS+B Kit (0.6 nozzle).json" - }, - { - "name": "Snapmaker A350 QS+B Kit (0.8 nozzle)", - "sub_path": "machine/Snapmaker A350 QS+B Kit (0.8 nozzle).json" - }, - { - "name": "Snapmaker A250 Dual QSKit (0.2 nozzle)", - "sub_path": "machine/Snapmaker A250 Dual QSKit (0.2 nozzle).json" - }, - { - "name": "Snapmaker A250 Dual QSKit (0.4 nozzle)", - "sub_path": "machine/Snapmaker A250 Dual QSKit (0.4 nozzle).json" - }, - { - "name": "Snapmaker A250 Dual QSKit (0.6 nozzle)", - "sub_path": "machine/Snapmaker A250 Dual QSKit (0.6 nozzle).json" - }, - { - "name": "Snapmaker A250 Dual QSKit (0.8 nozzle)", - "sub_path": "machine/Snapmaker A250 Dual QSKit (0.8 nozzle).json" - }, - { - "name": "Snapmaker A350 Dual QSKit (0.2 nozzle)", - "sub_path": "machine/Snapmaker A350 Dual QSKit (0.2 nozzle).json" - }, - { - "name": "Snapmaker A350 Dual QSKit (0.4 nozzle)", - "sub_path": "machine/Snapmaker A350 Dual QSKit (0.4 nozzle).json" - }, - { - "name": "Snapmaker A350 Dual QSKit (0.6 nozzle)", - "sub_path": "machine/Snapmaker A350 Dual QSKit (0.6 nozzle).json" - }, - { - "name": "Snapmaker A350 Dual QSKit (0.8 nozzle)", - "sub_path": "machine/Snapmaker A350 Dual QSKit (0.8 nozzle).json" - }, - { - "name": "Snapmaker A250 Dual BKit (0.2 nozzle)", - "sub_path": "machine/Snapmaker A250 Dual BKit (0.2 nozzle).json" - }, - { - "name": "Snapmaker A250 Dual BKit (0.4 nozzle)", - "sub_path": "machine/Snapmaker A250 Dual BKit (0.4 nozzle).json" - }, - { - "name": "Snapmaker A250 Dual BKit (0.6 nozzle)", - "sub_path": "machine/Snapmaker A250 Dual BKit (0.6 nozzle).json" - }, - { - "name": "Snapmaker A250 Dual BKit (0.8 nozzle)", - "sub_path": "machine/Snapmaker A250 Dual BKit (0.8 nozzle).json" - }, - { - "name": "Snapmaker A350 Dual BKit (0.2 nozzle)", - "sub_path": "machine/Snapmaker A350 Dual BKit (0.2 nozzle).json" - }, - { - "name": "Snapmaker A350 Dual BKit (0.4 nozzle)", - "sub_path": "machine/Snapmaker A350 Dual BKit (0.4 nozzle).json" - }, - { - "name": "Snapmaker A350 Dual BKit (0.6 nozzle)", - "sub_path": "machine/Snapmaker A350 Dual BKit (0.6 nozzle).json" - }, - { - "name": "Snapmaker A350 Dual BKit (0.8 nozzle)", - "sub_path": "machine/Snapmaker A350 Dual BKit (0.8 nozzle).json" - }, - { - "name": "Snapmaker A250 Dual QS+B Kit (0.2 nozzle)", - "sub_path": "machine/Snapmaker A250 Dual QS+B Kit (0.2 nozzle).json" - }, - { - "name": "Snapmaker A250 Dual QS+B Kit (0.4 nozzle)", - "sub_path": "machine/Snapmaker A250 Dual QS+B Kit (0.4 nozzle).json" - }, - { - "name": "Snapmaker A250 Dual QS+B Kit (0.6 nozzle)", - "sub_path": "machine/Snapmaker A250 Dual QS+B Kit (0.6 nozzle).json" - }, - { - "name": "Snapmaker A250 Dual QS+B Kit (0.8 nozzle)", - "sub_path": "machine/Snapmaker A250 Dual QS+B Kit (0.8 nozzle).json" - }, - { - "name": "Snapmaker A350 Dual QS+B Kit (0.2 nozzle)", - "sub_path": "machine/Snapmaker A350 Dual QS+B Kit (0.2 nozzle).json" - }, - { - "name": "Snapmaker A350 Dual QS+B Kit (0.4 nozzle)", - "sub_path": "machine/Snapmaker A350 Dual QS+B Kit (0.4 nozzle).json" - }, - { - "name": "Snapmaker A350 Dual QS+B Kit (0.6 nozzle)", - "sub_path": "machine/Snapmaker A350 Dual QS+B Kit (0.6 nozzle).json" - }, - { - "name": "Snapmaker A350 Dual QS+B Kit (0.8 nozzle)", - "sub_path": "machine/Snapmaker A350 Dual QS+B Kit (0.8 nozzle).json" - }, - { - "name": "Snapmaker Artisan (0.2 nozzle)", - "sub_path": "machine/Snapmaker Artisan (0.2 nozzle).json" - }, - { - "name": "Snapmaker Artisan (0.4 nozzle)", - "sub_path": "machine/Snapmaker Artisan (0.4 nozzle).json" - }, - { - "name": "Snapmaker Artisan (0.6 nozzle)", - "sub_path": "machine/Snapmaker Artisan (0.6 nozzle).json" - }, - { - "name": "Snapmaker Artisan (0.8 nozzle)", - "sub_path": "machine/Snapmaker Artisan (0.8 nozzle).json" - } - ] + "name": "Snapmaker", + "version": "02.02.00.04", + "force_update": "0", + "description": "Snapmaker configurations", + "machine_model_list": [ + { + "name": "Snapmaker J1", + "sub_path": "machine/Snapmaker J1.json" + }, + { + "name": "Snapmaker A250", + "sub_path": "machine/Snapmaker A250.json" + }, + { + "name": "Snapmaker A350", + "sub_path": "machine/Snapmaker A350.json" + }, + { + "name": "Snapmaker A250 Dual", + "sub_path": "machine/Snapmaker A250 Dual.json" + }, + { + "name": "Snapmaker A350 Dual", + "sub_path": "machine/Snapmaker A350 Dual.json" + }, + { + "name": "Snapmaker A250 QSKit", + "sub_path": "machine/Snapmaker A250 QSKit.json" + }, + { + "name": "Snapmaker A350 QSKit", + "sub_path": "machine/Snapmaker A350 QSKit.json" + }, + { + "name": "Snapmaker A250 BKit", + "sub_path": "machine/Snapmaker A250 BKit.json" + }, + { + "name": "Snapmaker A350 BKit", + "sub_path": "machine/Snapmaker A350 BKit.json" + }, + { + "name": "Snapmaker A250 QS+B Kit", + "sub_path": "machine/Snapmaker A250 QS+B Kit.json" + }, + { + "name": "Snapmaker A350 QS+B Kit", + "sub_path": "machine/Snapmaker A350 QS+B Kit.json" + }, + { + "name": "Snapmaker A250 Dual QSKit", + "sub_path": "machine/Snapmaker A250 Dual QSKit.json" + }, + { + "name": "Snapmaker A350 Dual QSKit", + "sub_path": "machine/Snapmaker A350 Dual QSKit.json" + }, + { + "name": "Snapmaker A250 Dual BKit", + "sub_path": "machine/Snapmaker A250 Dual BKit.json" + }, + { + "name": "Snapmaker A350 Dual BKit", + "sub_path": "machine/Snapmaker A350 Dual BKit.json" + }, + { + "name": "Snapmaker A250 Dual QS+B Kit", + "sub_path": "machine/Snapmaker A250 Dual QS+B Kit.json" + }, + { + "name": "Snapmaker A350 Dual QS+B Kit", + "sub_path": "machine/Snapmaker A350 Dual QS+B Kit.json" + }, + { + "name": "Snapmaker Artisan", + "sub_path": "machine/Snapmaker Artisan.json" + } + ], + "process_list": [ + { + "name": "fdm_process_common", + "sub_path": "process/fdm_process_common.json" + }, + { + "name": "fdm_process_idex", + "sub_path": "process/fdm_process_idex.json" + }, + { + "name": "fdm_process_a400", + "sub_path": "process/fdm_process_a400.json" + }, + { + "name": "0.06 Standard @Snapmaker (0.2 nozzle)", + "sub_path": "process/0.06 Standard @Snapmaker (0.2 nozzle).json" + }, + { + "name": "0.06 Standard @Snapmaker J1 (0.2 nozzle)", + "sub_path": "process/0.06 Standard @Snapmaker J1 (0.2 nozzle).json" + }, + { + "name": "0.06 Standard @Snapmaker Artisan (0.2 nozzle)", + "sub_path": "process/0.06 Standard @Snapmaker Artisan (0.2 nozzle).json" + }, + { + "name": "0.08 Extra Fine @Snapmaker (0.4 nozzle)", + "sub_path": "process/0.08 Extra Fine @Snapmaker (0.4 nozzle).json" + }, + { + "name": "0.08 Extra Fine @Snapmaker J1 (0.4 nozzle)", + "sub_path": "process/0.08 Extra Fine @Snapmaker J1 (0.4 nozzle).json" + }, + { + "name": "0.08 Extra Fine @Snapmaker Artisan (0.4 nozzle)", + "sub_path": "process/0.08 Extra Fine @Snapmaker Artisan (0.4 nozzle).json" + }, + { + "name": "0.10 Standard @Snapmaker (0.2 nozzle)", + "sub_path": "process/0.10 Standard @Snapmaker (0.2 nozzle).json" + }, + { + "name": "0.10 Standard @Snapmaker J1 (0.2 nozzle)", + "sub_path": "process/0.10 Standard @Snapmaker J1 (0.2 nozzle).json" + }, + { + "name": "0.10 Standard @Snapmaker Artisan (0.2 nozzle)", + "sub_path": "process/0.10 Standard @Snapmaker Artisan (0.2 nozzle).json" + }, + { + "name": "0.12 Fine @Snapmaker (0.4 nozzle)", + "sub_path": "process/0.12 Fine @Snapmaker (0.4 nozzle).json" + }, + { + "name": "0.12 Fine @Snapmaker J1 (0.4 nozzle)", + "sub_path": "process/0.12 Fine @Snapmaker J1 (0.4 nozzle).json" + }, + { + "name": "0.12 Fine @Snapmaker Artisan (0.4 nozzle)", + "sub_path": "process/0.12 Fine @Snapmaker Artisan (0.4 nozzle).json" + }, + { + "name": "0.14 Standard @Snapmaker (0.2 nozzle)", + "sub_path": "process/0.14 Standard @Snapmaker (0.2 nozzle).json" + }, + { + "name": "0.14 Standard @Snapmaker J1 (0.2 nozzle)", + "sub_path": "process/0.14 Standard @Snapmaker J1 (0.2 nozzle).json" + }, + { + "name": "0.14 Standard @Snapmaker Artisan (0.2 nozzle)", + "sub_path": "process/0.14 Standard @Snapmaker Artisan (0.2 nozzle).json" + }, + { + "name": "0.16 Optimal @Snapmaker (0.4 nozzle)", + "sub_path": "process/0.16 Optimal @Snapmaker (0.4 nozzle).json" + }, + { + "name": "0.16 Optimal @Snapmaker J1 (0.4 nozzle)", + "sub_path": "process/0.16 Optimal @Snapmaker J1 (0.4 nozzle).json" + }, + { + "name": "0.16 Optimal @Snapmaker Artisan (0.4 nozzle)", + "sub_path": "process/0.16 Optimal @Snapmaker Artisan (0.4 nozzle).json" + }, + { + "name": "0.18 Standard @Snapmaker (0.6 nozzle)", + "sub_path": "process/0.18 Standard @Snapmaker (0.6 nozzle).json" + }, + { + "name": "0.18 Standard @Snapmaker J1 (0.6 nozzle)", + "sub_path": "process/0.18 Standard @Snapmaker J1 (0.6 nozzle).json" + }, + { + "name": "0.18 Standard @Snapmaker Artisan (0.6 nozzle)", + "sub_path": "process/0.18 Standard @Snapmaker Artisan (0.6 nozzle).json" + }, + { + "name": "0.20 Standard @Snapmaker (0.4 nozzle)", + "sub_path": "process/0.20 Standard @Snapmaker (0.4 nozzle).json" + }, + { + "name": "0.20 Standard @Snapmaker J1 (0.4 nozzle)", + "sub_path": "process/0.20 Standard @Snapmaker J1 (0.4 nozzle).json" + }, + { + "name": "0.20 Standard @Snapmaker Artisan (0.4 nozzle)", + "sub_path": "process/0.20 Standard @Snapmaker Artisan (0.4 nozzle).json" + }, + { + "name": "0.20 Strength @Snapmaker (0.4 nozzle)", + "sub_path": "process/0.20 Strength @Snapmaker (0.4 nozzle).json" + }, + { + "name": "0.20 Strength @Snapmaker J1 (0.4 nozzle)", + "sub_path": "process/0.20 Strength @Snapmaker J1 (0.4 nozzle).json" + }, + { + "name": "0.20 Strength @Snapmaker Artisan (0.4 nozzle)", + "sub_path": "process/0.20 Strength @Snapmaker Artisan (0.4 nozzle).json" + }, + { + "name": "0.24 Draft @Snapmaker (0.4 nozzle)", + "sub_path": "process/0.24 Draft @Snapmaker (0.4 nozzle).json" + }, + { + "name": "0.24 Draft @Snapmaker J1 (0.4 nozzle)", + "sub_path": "process/0.24 Draft @Snapmaker J1 (0.4 nozzle).json" + }, + { + "name": "0.24 Draft @Snapmaker Artisan (0.4 nozzle)", + "sub_path": "process/0.24 Draft @Snapmaker Artisan (0.4 nozzle).json" + }, + { + "name": "0.25 Benchy @Snapmaker J1 (0.4 nozzle)", + "sub_path": "process/0.25 Benchy @Snapmaker J1 (0.4 nozzle).json" + }, + { + "name": "0.25 Benchy @Snapmaker Artisan (0.4 nozzle)", + "sub_path": "process/0.25 Benchy @Snapmaker Artisan (0.4 nozzle).json" + }, + { + "name": "0.24 Standard @Snapmaker (0.6 nozzle)", + "sub_path": "process/0.24 Standard @Snapmaker (0.6 nozzle).json" + }, + { + "name": "0.24 Standard @Snapmaker J1 (0.6 nozzle)", + "sub_path": "process/0.24 Standard @Snapmaker J1 (0.6 nozzle).json" + }, + { + "name": "0.24 Standard @Snapmaker Artisan (0.6 nozzle)", + "sub_path": "process/0.24 Standard @Snapmaker Artisan (0.6 nozzle).json" + }, + { + "name": "0.24 Standard @Snapmaker (0.8 nozzle)", + "sub_path": "process/0.24 Standard @Snapmaker (0.8 nozzle).json" + }, + { + "name": "0.24 Standard @Snapmaker J1 (0.8 nozzle)", + "sub_path": "process/0.24 Standard @Snapmaker J1 (0.8 nozzle).json" + }, + { + "name": "0.24 Standard @Snapmaker Artisan (0.8 nozzle)", + "sub_path": "process/0.24 Standard @Snapmaker Artisan (0.8 nozzle).json" + }, + { + "name": "0.28 Extra Draft @Snapmaker (0.4 nozzle)", + "sub_path": "process/0.28 Extra Draft @Snapmaker (0.4 nozzle).json" + }, + { + "name": "0.28 Extra Draft @Snapmaker J1 (0.4 nozzle)", + "sub_path": "process/0.28 Extra Draft @Snapmaker J1 (0.4 nozzle).json" + }, + { + "name": "0.28 Extra Draft @Snapmaker Artisan (0.4 nozzle)", + "sub_path": "process/0.28 Extra Draft @Snapmaker Artisan (0.4 nozzle).json" + }, + { + "name": "0.30 Standard @Snapmaker (0.6 nozzle)", + "sub_path": "process/0.30 Standard @Snapmaker (0.6 nozzle).json" + }, + { + "name": "0.30 Standard @Snapmaker J1 (0.6 nozzle)", + "sub_path": "process/0.30 Standard @Snapmaker J1 (0.6 nozzle).json" + }, + { + "name": "0.30 Standard @Snapmaker Artisan (0.6 nozzle)", + "sub_path": "process/0.30 Standard @Snapmaker Artisan (0.6 nozzle).json" + }, + { + "name": "0.30 Strength @Snapmaker (0.6 nozzle)", + "sub_path": "process/0.30 Strength @Snapmaker (0.6 nozzle).json" + }, + { + "name": "0.30 Strength @Snapmaker J1 (0.6 nozzle)", + "sub_path": "process/0.30 Strength @Snapmaker J1 (0.6 nozzle).json" + }, + { + "name": "0.30 Strength @Snapmaker Artisan (0.6 nozzle)", + "sub_path": "process/0.30 Strength @Snapmaker Artisan (0.6 nozzle).json" + }, + { + "name": "0.32 Standard @Snapmaker (0.8 nozzle)", + "sub_path": "process/0.32 Standard @Snapmaker (0.8 nozzle).json" + }, + { + "name": "0.32 Standard @Snapmaker J1 (0.8 nozzle)", + "sub_path": "process/0.32 Standard @Snapmaker J1 (0.8 nozzle).json" + }, + { + "name": "0.32 Standard @Snapmaker Artisan (0.8 nozzle)", + "sub_path": "process/0.32 Standard @Snapmaker Artisan (0.8 nozzle).json" + }, + { + "name": "0.34 Standard @Snapmaker (0.6 nozzle)", + "sub_path": "process/0.34 Standard @Snapmaker (0.6 nozzle).json" + }, + { + "name": "0.34 Standard @Snapmaker J1 (0.6 nozzle)", + "sub_path": "process/0.34 Standard @Snapmaker J1 (0.6 nozzle).json" + }, + { + "name": "0.34 Standard @Snapmaker Artisan (0.6 nozzle)", + "sub_path": "process/0.34 Standard @Snapmaker Artisan (0.6 nozzle).json" + }, + { + "name": "0.36 Standard @Snapmaker (0.8 nozzle)", + "sub_path": "process/0.36 Standard @Snapmaker (0.8 nozzle).json" + }, + { + "name": "0.36 Standard @Snapmaker J1 (0.8 nozzle)", + "sub_path": "process/0.36 Standard @Snapmaker J1 (0.8 nozzle).json" + }, + { + "name": "0.36 Standard @Snapmaker Artisan (0.8 nozzle)", + "sub_path": "process/0.36 Standard @Snapmaker Artisan (0.8 nozzle).json" + }, + { + "name": "0.38 Standard @Snapmaker (0.6 nozzle)", + "sub_path": "process/0.38 Standard @Snapmaker (0.6 nozzle).json" + }, + { + "name": "0.38 Standard @Snapmaker J1 (0.6 nozzle)", + "sub_path": "process/0.38 Standard @Snapmaker J1 (0.6 nozzle).json" + }, + { + "name": "0.38 Standard @Snapmaker Artisan (0.6 nozzle)", + "sub_path": "process/0.38 Standard @Snapmaker Artisan (0.6 nozzle).json" + }, + { + "name": "0.40 Standard @Snapmaker (0.8 nozzle)", + "sub_path": "process/0.40 Standard @Snapmaker (0.8 nozzle).json" + }, + { + "name": "0.40 Standard @Snapmaker J1 (0.8 nozzle)", + "sub_path": "process/0.40 Standard @Snapmaker J1 (0.8 nozzle).json" + }, + { + "name": "0.40 Standard @Snapmaker Artisan (0.8 nozzle)", + "sub_path": "process/0.40 Standard @Snapmaker Artisan (0.8 nozzle).json" + }, + { + "name": "0.42 Draft @Snapmaker (0.6 nozzle)", + "sub_path": "process/0.42 Draft @Snapmaker (0.6 nozzle).json" + }, + { + "name": "0.42 Draft @Snapmaker J1 (0.6 nozzle)", + "sub_path": "process/0.42 Draft @Snapmaker J1 (0.6 nozzle).json" + }, + { + "name": "0.42 Draft @Snapmaker Artisan (0.6 nozzle)", + "sub_path": "process/0.42 Draft @Snapmaker Artisan (0.6 nozzle).json" + }, + { + "name": "0.48 Draft @Snapmaker (0.8 nozzle)", + "sub_path": "process/0.48 Draft @Snapmaker (0.8 nozzle).json" + }, + { + "name": "0.48 Draft @Snapmaker J1 (0.8 nozzle)", + "sub_path": "process/0.48 Draft @Snapmaker J1 (0.8 nozzle).json" + }, + { + "name": "0.48 Draft @Snapmaker Artisan (0.8 nozzle)", + "sub_path": "process/0.48 Draft @Snapmaker Artisan (0.8 nozzle).json" + } + ], + "filament_list": [ + { + "name": "PolyTerra PLA @0.2 nozzle", + "sub_path": "filament/PolyTerra PLA @0.2 nozzle.json" + }, + { + "name": "fdm_filament_common", + "sub_path": "filament/fdm_filament_common.json" + }, + { + "name": "PolyTerra Dual PLA @0.2 nozzle", + "sub_path": "filament/PolyTerra Dual PLA @0.2 nozzle.json" + }, + { + "name": "PolyTerra J1 PLA @0.2 nozzle", + "sub_path": "filament/PolyTerra J1 PLA @0.2 nozzle.json" + }, + { + "name": "fdm_filament_abs", + "sub_path": "filament/fdm_filament_abs.json" + }, + { + "name": "fdm_filament_asa", + "sub_path": "filament/fdm_filament_asa.json" + }, + { + "name": "fdm_filament_breakaway", + "sub_path": "filament/fdm_filament_breakaway.json" + }, + { + "name": "fdm_filament_pa", + "sub_path": "filament/fdm_filament_pa.json" + }, + { + "name": "fdm_filament_pet", + "sub_path": "filament/fdm_filament_pet.json" + }, + { + "name": "fdm_filament_petg", + "sub_path": "filament/fdm_filament_petg.json" + }, + { + "name": "fdm_filament_pla", + "sub_path": "filament/fdm_filament_pla.json" + }, + { + "name": "fdm_filament_pva", + "sub_path": "filament/fdm_filament_pva.json" + }, + { + "name": "fdm_filament_tpu", + "sub_path": "filament/fdm_filament_tpu.json" + }, + { + "name": "Snapmaker ABS @base", + "sub_path": "filament/Snapmaker ABS @base.json" + }, + { + "name": "Snapmaker Dual ABS @base", + "sub_path": "filament/Snapmaker Dual ABS @base.json" + }, + { + "name": "Snapmaker J1 ABS @base", + "sub_path": "filament/Snapmaker J1 ABS @base.json" + }, + { + "name": "Snapmaker ASA @base", + "sub_path": "filament/Snapmaker ASA @base.json" + }, + { + "name": "Snapmaker Dual ASA @base", + "sub_path": "filament/Snapmaker Dual ASA @base.json" + }, + { + "name": "Snapmaker J1 ASA @base", + "sub_path": "filament/Snapmaker J1 ASA @base.json" + }, + { + "name": "Snapmaker Dual Breakaway @base", + "sub_path": "filament/Snapmaker Dual Breakaway @base.json" + }, + { + "name": "Snapmaker J1 Breakaway @base", + "sub_path": "filament/Snapmaker J1 Breakaway @base.json" + }, + { + "name": "Snapmaker Dual PA-CF @base", + "sub_path": "filament/Snapmaker Dual PA-CF @base.json" + }, + { + "name": "Snapmaker J1 PA-CF @base", + "sub_path": "filament/Snapmaker J1 PA-CF @base.json" + }, + { + "name": "Snapmaker PA-CF @base", + "sub_path": "filament/Snapmaker PA-CF @base.json" + }, + { + "name": "Snapmaker Dual PET @base", + "sub_path": "filament/Snapmaker Dual PET @base.json" + }, + { + "name": "Snapmaker J1 PET @base", + "sub_path": "filament/Snapmaker J1 PET @base.json" + }, + { + "name": "Snapmaker PET @base", + "sub_path": "filament/Snapmaker PET @base.json" + }, + { + "name": "Snapmaker Dual PETG @base", + "sub_path": "filament/Snapmaker Dual PETG @base.json" + }, + { + "name": "Snapmaker Dual PETG-CF @base", + "sub_path": "filament/Snapmaker Dual PETG-CF @base.json" + }, + { + "name": "Snapmaker J1 PETG @base", + "sub_path": "filament/Snapmaker J1 PETG @base.json" + }, + { + "name": "Snapmaker J1 PETG-CF @base", + "sub_path": "filament/Snapmaker J1 PETG-CF @base.json" + }, + { + "name": "Snapmaker PETG @base", + "sub_path": "filament/Snapmaker PETG @base.json" + }, + { + "name": "Snapmaker PETG-CF @base", + "sub_path": "filament/Snapmaker PETG-CF @base.json" + }, + { + "name": "PolyLite PLA @base", + "sub_path": "filament/PolyLite PLA @base.json" + }, + { + "name": "Snapmaker Dual PLA @base", + "sub_path": "filament/Snapmaker Dual PLA @base.json" + }, + { + "name": "Snapmaker Dual PLA Matte @base", + "sub_path": "filament/Snapmaker Dual PLA Matte @base.json" + }, + { + "name": "Snapmaker Dual PLA Metal @base", + "sub_path": "filament/Snapmaker Dual PLA Metal @base.json" + }, + { + "name": "Snapmaker Dual PLA Silk @base", + "sub_path": "filament/Snapmaker Dual PLA Silk @base.json" + }, + { + "name": "Snapmaker Dual PLA-CF @base", + "sub_path": "filament/Snapmaker Dual PLA-CF @base.json" + }, + { + "name": "Snapmaker J1 PLA @base", + "sub_path": "filament/Snapmaker J1 PLA @base.json" + }, + { + "name": "Snapmaker J1 PLA Matte @base", + "sub_path": "filament/Snapmaker J1 PLA Matte @base.json" + }, + { + "name": "Snapmaker J1 PLA Metal @base", + "sub_path": "filament/Snapmaker J1 PLA Metal @base.json" + }, + { + "name": "Snapmaker J1 PLA Silk @base", + "sub_path": "filament/Snapmaker J1 PLA Silk @base.json" + }, + { + "name": "Snapmaker J1 PLA-CF @base", + "sub_path": "filament/Snapmaker J1 PLA-CF @base.json" + }, + { + "name": "Snapmaker PLA @base", + "sub_path": "filament/Snapmaker PLA @base.json" + }, + { + "name": "Snapmaker PLA Silk @base", + "sub_path": "filament/Snapmaker PLA Silk @base.json" + }, + { + "name": "Snapmaker PLA-CF @base", + "sub_path": "filament/Snapmaker PLA-CF @base.json" + }, + { + "name": "fdm_filament_pla_eco", + "sub_path": "filament/fdm_filament_pla_eco.json" + }, + { + "name": "Snapmaker Dual PVA @base", + "sub_path": "filament/Snapmaker Dual PVA @base.json" + }, + { + "name": "Snapmaker J1 PVA @base", + "sub_path": "filament/Snapmaker J1 PVA @base.json" + }, + { + "name": "Snapmaker PVA @base", + "sub_path": "filament/Snapmaker PVA @base.json" + }, + { + "name": "Snapmaker Dual TPU @base", + "sub_path": "filament/Snapmaker Dual TPU @base.json" + }, + { + "name": "Snapmaker J1 TPU @base", + "sub_path": "filament/Snapmaker J1 TPU @base.json" + }, + { + "name": "Snapmaker TPU @base", + "sub_path": "filament/Snapmaker TPU @base.json" + }, + { + "name": "Snapmaker ABS", + "sub_path": "filament/Snapmaker ABS.json" + }, + { + "name": "Snapmaker ABS @0.2 nozzle", + "sub_path": "filament/Snapmaker ABS @0.2 nozzle.json" + }, + { + "name": "Snapmaker Dual ABS", + "sub_path": "filament/Snapmaker Dual ABS.json" + }, + { + "name": "Snapmaker Dual ABS @0.2 nozzle", + "sub_path": "filament/Snapmaker Dual ABS @0.2 nozzle.json" + }, + { + "name": "Snapmaker Dual ABS @0.8 nozzle", + "sub_path": "filament/Snapmaker Dual ABS @0.8 nozzle.json" + }, + { + "name": "Snapmaker Dual ABS Benchy", + "sub_path": "filament/Snapmaker Dual ABS Benchy.json" + }, + { + "name": "Snapmaker J1 ABS", + "sub_path": "filament/Snapmaker J1 ABS.json" + }, + { + "name": "Snapmaker J1 ABS @0.2 nozzle", + "sub_path": "filament/Snapmaker J1 ABS @0.2 nozzle.json" + }, + { + "name": "Snapmaker J1 ABS @0.8 nozzle", + "sub_path": "filament/Snapmaker J1 ABS @0.8 nozzle.json" + }, + { + "name": "Snapmaker J1 ABS Benchy", + "sub_path": "filament/Snapmaker J1 ABS Benchy.json" + }, + { + "name": "Snapmaker ASA", + "sub_path": "filament/Snapmaker ASA.json" + }, + { + "name": "Snapmaker ASA @0.2 nozzle", + "sub_path": "filament/Snapmaker ASA @0.2 nozzle.json" + }, + { + "name": "Snapmaker Dual ASA", + "sub_path": "filament/Snapmaker Dual ASA.json" + }, + { + "name": "Snapmaker Dual ASA @0.2 nozzle", + "sub_path": "filament/Snapmaker Dual ASA @0.2 nozzle.json" + }, + { + "name": "Snapmaker J1 ASA", + "sub_path": "filament/Snapmaker J1 ASA.json" + }, + { + "name": "Snapmaker J1 ASA @0.2 nozzle", + "sub_path": "filament/Snapmaker J1 ASA @0.2 nozzle.json" + }, + { + "name": "Snapmaker Dual Breakaway", + "sub_path": "filament/Snapmaker Dual Breakaway.json" + }, + { + "name": "Snapmaker Dual Breakaway @0.2 nozzle", + "sub_path": "filament/Snapmaker Dual Breakaway @0.2 nozzle.json" + }, + { + "name": "Snapmaker J1 Breakaway", + "sub_path": "filament/Snapmaker J1 Breakaway.json" + }, + { + "name": "Snapmaker J1 Breakaway @0.2 nozzle", + "sub_path": "filament/Snapmaker J1 Breakaway @0.2 nozzle.json" + }, + { + "name": "Snapmaker Dual PA-CF", + "sub_path": "filament/Snapmaker Dual PA-CF.json" + }, + { + "name": "Snapmaker J1 PA-CF", + "sub_path": "filament/Snapmaker J1 PA-CF.json" + }, + { + "name": "Snapmaker PA-CF", + "sub_path": "filament/Snapmaker PA-CF.json" + }, + { + "name": "Snapmaker Dual PET", + "sub_path": "filament/Snapmaker Dual PET.json" + }, + { + "name": "Snapmaker PET @Dual", + "sub_path": "filament/Snapmaker PET @Dual.json" + }, + { + "name": "Snapmaker J1 PET", + "sub_path": "filament/Snapmaker J1 PET.json" + }, + { + "name": "Snapmaker PET", + "sub_path": "filament/Snapmaker PET.json" + }, + { + "name": "Snapmaker Dual PETG", + "sub_path": "filament/Snapmaker Dual PETG.json" + }, + { + "name": "Snapmaker Dual PETG @0.2 nozzle", + "sub_path": "filament/Snapmaker Dual PETG @0.2 nozzle.json" + }, + { + "name": "Snapmaker Dual PETG @0.8 nozzle", + "sub_path": "filament/Snapmaker Dual PETG @0.8 nozzle.json" + }, + { + "name": "Snapmaker Dual PETG-CF", + "sub_path": "filament/Snapmaker Dual PETG-CF.json" + }, + { + "name": "Snapmaker J1 PETG", + "sub_path": "filament/Snapmaker J1 PETG.json" + }, + { + "name": "Snapmaker J1 PETG @0.2 nozzle", + "sub_path": "filament/Snapmaker J1 PETG @0.2 nozzle.json" + }, + { + "name": "Snapmaker J1 PETG @0.8 nozzle", + "sub_path": "filament/Snapmaker J1 PETG @0.8 nozzle.json" + }, + { + "name": "Snapmaker J1 PETG-CF", + "sub_path": "filament/Snapmaker J1 PETG-CF.json" + }, + { + "name": "Snapmaker PETG", + "sub_path": "filament/Snapmaker PETG.json" + }, + { + "name": "Snapmaker PETG @0.2 nozzle", + "sub_path": "filament/Snapmaker PETG @0.2 nozzle.json" + }, + { + "name": "Snapmaker PETG-CF", + "sub_path": "filament/Snapmaker PETG-CF.json" + }, + { + "name": "PolyLite J1 PLA", + "sub_path": "filament/PolyLite J1 PLA.json" + }, + { + "name": "PolyLite PLA @0.2 nozzle", + "sub_path": "filament/PolyLite PLA @0.2 nozzle.json" + }, + { + "name": "Snapmaker Dual PLA", + "sub_path": "filament/Snapmaker Dual PLA.json" + }, + { + "name": "Snapmaker Dual PLA Matte", + "sub_path": "filament/Snapmaker Dual PLA Matte.json" + }, + { + "name": "Snapmaker Dual PLA Matte @0.2 nozzle", + "sub_path": "filament/Snapmaker Dual PLA Matte @0.2 nozzle.json" + }, + { + "name": "Snapmaker Dual PLA Matte @0.8 nozzle", + "sub_path": "filament/Snapmaker Dual PLA Matte @0.8 nozzle.json" + }, + { + "name": "Snapmaker Dual PLA Metal", + "sub_path": "filament/Snapmaker Dual PLA Metal.json" + }, + { + "name": "Snapmaker Dual PLA Metal @0.2 nozzle", + "sub_path": "filament/Snapmaker Dual PLA Metal @0.2 nozzle.json" + }, + { + "name": "Snapmaker Dual PLA Silk", + "sub_path": "filament/Snapmaker Dual PLA Silk.json" + }, + { + "name": "Snapmaker Dual PLA Silk @0.2 nozzle", + "sub_path": "filament/Snapmaker Dual PLA Silk @0.2 nozzle.json" + }, + { + "name": "Snapmaker Dual PLA-CF", + "sub_path": "filament/Snapmaker Dual PLA-CF.json" + }, + { + "name": "Snapmaker Dual PLA-CF @0.8 nozzle", + "sub_path": "filament/Snapmaker Dual PLA-CF @0.8 nozzle.json" + }, + { + "name": "Snapmaker J1 PLA", + "sub_path": "filament/Snapmaker J1 PLA.json" + }, + { + "name": "Snapmaker J1 PLA Matte", + "sub_path": "filament/Snapmaker J1 PLA Matte.json" + }, + { + "name": "Snapmaker J1 PLA Matte @0.2 nozzle", + "sub_path": "filament/Snapmaker J1 PLA Matte @0.2 nozzle.json" + }, + { + "name": "Snapmaker J1 PLA Matte @0.8 nozzle", + "sub_path": "filament/Snapmaker J1 PLA Matte @0.8 nozzle.json" + }, + { + "name": "Snapmaker J1 PLA Metal", + "sub_path": "filament/Snapmaker J1 PLA Metal.json" + }, + { + "name": "Snapmaker J1 PLA Metal @0.2 nozzle", + "sub_path": "filament/Snapmaker J1 PLA Metal @0.2 nozzle.json" + }, + { + "name": "Snapmaker J1 PLA Silk", + "sub_path": "filament/Snapmaker J1 PLA Silk.json" + }, + { + "name": "Snapmaker J1 PLA Silk @0.2 nozzle", + "sub_path": "filament/Snapmaker J1 PLA Silk @0.2 nozzle.json" + }, + { + "name": "Snapmaker J1 PLA-CF", + "sub_path": "filament/Snapmaker J1 PLA-CF.json" + }, + { + "name": "Snapmaker J1 PLA-CF @0.8 nozzle", + "sub_path": "filament/Snapmaker J1 PLA-CF @0.8 nozzle.json" + }, + { + "name": "Snapmaker PLA", + "sub_path": "filament/Snapmaker PLA.json" + }, + { + "name": "Snapmaker PLA Silk", + "sub_path": "filament/Snapmaker PLA Silk.json" + }, + { + "name": "Snapmaker PLA Silk @0.2 nozzle", + "sub_path": "filament/Snapmaker PLA Silk @0.2 nozzle.json" + }, + { + "name": "Snapmaker PLA-CF", + "sub_path": "filament/Snapmaker PLA-CF.json" + }, + { + "name": "Snapmaker Dual PLA Eco @base", + "sub_path": "filament/Snapmaker Dual PLA Eco @base.json" + }, + { + "name": "Snapmaker J1 PLA Eco @base", + "sub_path": "filament/Snapmaker J1 PLA Eco @base.json" + }, + { + "name": "Snapmaker PLA Eco @base", + "sub_path": "filament/Snapmaker PLA Eco @base.json" + }, + { + "name": "Snapmaker Dual PVA", + "sub_path": "filament/Snapmaker Dual PVA.json" + }, + { + "name": "Snapmaker Dual PVA @0.2 nozzle", + "sub_path": "filament/Snapmaker Dual PVA @0.2 nozzle.json" + }, + { + "name": "Snapmaker J1 PVA", + "sub_path": "filament/Snapmaker J1 PVA.json" + }, + { + "name": "Snapmaker J1 PVA @0.2 nozzle", + "sub_path": "filament/Snapmaker J1 PVA @0.2 nozzle.json" + }, + { + "name": "Snapmaker PVA", + "sub_path": "filament/Snapmaker PVA.json" + }, + { + "name": "Snapmaker PVA @0.2 nozzle", + "sub_path": "filament/Snapmaker PVA @0.2 nozzle.json" + }, + { + "name": "Snapmaker Dual TPE", + "sub_path": "filament/Snapmaker Dual TPE.json" + }, + { + "name": "Snapmaker Dual TPU", + "sub_path": "filament/Snapmaker Dual TPU.json" + }, + { + "name": "Snapmaker Dual TPU High-Flow", + "sub_path": "filament/Snapmaker Dual TPU High-Flow.json" + }, + { + "name": "Snapmaker J1 TPE", + "sub_path": "filament/Snapmaker J1 TPE.json" + }, + { + "name": "Snapmaker J1 TPU", + "sub_path": "filament/Snapmaker J1 TPU.json" + }, + { + "name": "Snapmaker J1 TPU High-Flow", + "sub_path": "filament/Snapmaker J1 TPU High-Flow.json" + }, + { + "name": "Snapmaker TPE", + "sub_path": "filament/Snapmaker TPE.json" + }, + { + "name": "Snapmaker TPU", + "sub_path": "filament/Snapmaker TPU.json" + }, + { + "name": "PolyLite Dual PLA @0.2 nozzle", + "sub_path": "filament/PolyLite Dual PLA @0.2 nozzle.json" + }, + { + "name": "PolyLite J1 PLA @0.2 nozzle", + "sub_path": "filament/PolyLite J1 PLA @0.2 nozzle.json" + }, + { + "name": "Snapmaker Dual PLA Eco", + "sub_path": "filament/Snapmaker Dual PLA Eco.json" + }, + { + "name": "Snapmaker Dual PLA Eco @0.2 nozzle", + "sub_path": "filament/Snapmaker Dual PLA Eco @0.2 nozzle.json" + }, + { + "name": "Snapmaker Dual PLA Eco @0.8 nozzle", + "sub_path": "filament/Snapmaker Dual PLA Eco @0.8 nozzle.json" + }, + { + "name": "Snapmaker J1 PLA Eco", + "sub_path": "filament/Snapmaker J1 PLA Eco.json" + }, + { + "name": "Snapmaker J1 PLA Eco @0.2 nozzle", + "sub_path": "filament/Snapmaker J1 PLA Eco @0.2 nozzle.json" + }, + { + "name": "Snapmaker J1 PLA Eco @0.8 nozzle", + "sub_path": "filament/Snapmaker J1 PLA Eco @0.8 nozzle.json" + }, + { + "name": "Snapmaker PLA Eco", + "sub_path": "filament/Snapmaker PLA Eco.json" + }, + { + "name": "PolyTerra J1 PLA", + "sub_path": "filament/PolyTerra J1 PLA.json" + } + ], + "machine_list": [ + { + "name": "fdm_common", + "sub_path": "machine/fdm_common.json" + }, + { + "name": "fdm_linear2", + "sub_path": "machine/fdm_linear2.json" + }, + { + "name": "fdm_linear2_dual", + "sub_path": "machine/fdm_linear2_dual.json" + }, + { + "name": "fdm_idex", + "sub_path": "machine/fdm_idex.json" + }, + { + "name": "fdm_a250", + "sub_path": "machine/fdm_a250.json" + }, + { + "name": "fdm_a350", + "sub_path": "machine/fdm_a350.json" + }, + { + "name": "fdm_a250_dual", + "sub_path": "machine/fdm_a250_dual.json" + }, + { + "name": "fdm_a350_dual", + "sub_path": "machine/fdm_a350_dual.json" + }, + { + "name": "fdm_a250_qs", + "sub_path": "machine/fdm_a250_qs.json" + }, + { + "name": "fdm_a350_qs", + "sub_path": "machine/fdm_a350_qs.json" + }, + { + "name": "fdm_a250_bk", + "sub_path": "machine/fdm_a250_bk.json" + }, + { + "name": "fdm_a350_bk", + "sub_path": "machine/fdm_a350_bk.json" + }, + { + "name": "fdm_a250_qs_bk", + "sub_path": "machine/fdm_a250_qs_bk.json" + }, + { + "name": "fdm_a350_qs_bk", + "sub_path": "machine/fdm_a350_qs_bk.json" + }, + { + "name": "fdm_a250_dual_qs", + "sub_path": "machine/fdm_a250_dual_qs.json" + }, + { + "name": "fdm_a350_dual_qs", + "sub_path": "machine/fdm_a350_dual_qs.json" + }, + { + "name": "fdm_a250_dual_bk", + "sub_path": "machine/fdm_a250_dual_bk.json" + }, + { + "name": "fdm_a350_dual_bk", + "sub_path": "machine/fdm_a350_dual_bk.json" + }, + { + "name": "fdm_a250_dual_qs_bk", + "sub_path": "machine/fdm_a250_dual_qs_bk.json" + }, + { + "name": "fdm_a350_dual_qs_bk", + "sub_path": "machine/fdm_a350_dual_qs_bk.json" + }, + { + "name": "fdm_a400", + "sub_path": "machine/fdm_a400.json" + }, + { + "name": "Snapmaker J1 (0.2 nozzle)", + "sub_path": "machine/Snapmaker J1 (0.2 nozzle).json" + }, + { + "name": "Snapmaker J1 (0.4 nozzle)", + "sub_path": "machine/Snapmaker J1 (0.4 nozzle).json" + }, + { + "name": "Snapmaker J1 (0.6 nozzle)", + "sub_path": "machine/Snapmaker J1 (0.6 nozzle).json" + }, + { + "name": "Snapmaker J1 (0.8 nozzle)", + "sub_path": "machine/Snapmaker J1 (0.8 nozzle).json" + }, + { + "name": "Snapmaker A250 (0.2 nozzle)", + "sub_path": "machine/Snapmaker A250 (0.2 nozzle).json" + }, + { + "name": "Snapmaker A250 (0.4 nozzle)", + "sub_path": "machine/Snapmaker A250 (0.4 nozzle).json" + }, + { + "name": "Snapmaker A250 (0.6 nozzle)", + "sub_path": "machine/Snapmaker A250 (0.6 nozzle).json" + }, + { + "name": "Snapmaker A250 (0.8 nozzle)", + "sub_path": "machine/Snapmaker A250 (0.8 nozzle).json" + }, + { + "name": "Snapmaker A350 (0.2 nozzle)", + "sub_path": "machine/Snapmaker A350 (0.2 nozzle).json" + }, + { + "name": "Snapmaker A350 (0.4 nozzle)", + "sub_path": "machine/Snapmaker A350 (0.4 nozzle).json" + }, + { + "name": "Snapmaker A350 (0.6 nozzle)", + "sub_path": "machine/Snapmaker A350 (0.6 nozzle).json" + }, + { + "name": "Snapmaker A350 (0.8 nozzle)", + "sub_path": "machine/Snapmaker A350 (0.8 nozzle).json" + }, + { + "name": "Snapmaker A250 Dual (0.2 nozzle)", + "sub_path": "machine/Snapmaker A250 Dual (0.2 nozzle).json" + }, + { + "name": "Snapmaker A250 Dual (0.4 nozzle)", + "sub_path": "machine/Snapmaker A250 Dual (0.4 nozzle).json" + }, + { + "name": "Snapmaker A250 Dual (0.6 nozzle)", + "sub_path": "machine/Snapmaker A250 Dual (0.6 nozzle).json" + }, + { + "name": "Snapmaker A250 Dual (0.8 nozzle)", + "sub_path": "machine/Snapmaker A250 Dual (0.8 nozzle).json" + }, + { + "name": "Snapmaker A350 Dual (0.2 nozzle)", + "sub_path": "machine/Snapmaker A350 Dual (0.2 nozzle).json" + }, + { + "name": "Snapmaker A350 Dual (0.4 nozzle)", + "sub_path": "machine/Snapmaker A350 Dual (0.4 nozzle).json" + }, + { + "name": "Snapmaker A350 Dual (0.6 nozzle)", + "sub_path": "machine/Snapmaker A350 Dual (0.6 nozzle).json" + }, + { + "name": "Snapmaker A350 Dual (0.8 nozzle)", + "sub_path": "machine/Snapmaker A350 Dual (0.8 nozzle).json" + }, + { + "name": "Snapmaker A250 QSKit (0.2 nozzle)", + "sub_path": "machine/Snapmaker A250 QSKit (0.2 nozzle).json" + }, + { + "name": "Snapmaker A250 QSKit (0.4 nozzle)", + "sub_path": "machine/Snapmaker A250 QSKit (0.4 nozzle).json" + }, + { + "name": "Snapmaker A250 QSKit (0.6 nozzle)", + "sub_path": "machine/Snapmaker A250 QSKit (0.6 nozzle).json" + }, + { + "name": "Snapmaker A250 QSKit (0.8 nozzle)", + "sub_path": "machine/Snapmaker A250 QSKit (0.8 nozzle).json" + }, + { + "name": "Snapmaker A350 QSKit (0.2 nozzle)", + "sub_path": "machine/Snapmaker A350 QSKit (0.2 nozzle).json" + }, + { + "name": "Snapmaker A350 QSKit (0.4 nozzle)", + "sub_path": "machine/Snapmaker A350 QSKit (0.4 nozzle).json" + }, + { + "name": "Snapmaker A350 QSKit (0.6 nozzle)", + "sub_path": "machine/Snapmaker A350 QSKit (0.6 nozzle).json" + }, + { + "name": "Snapmaker A350 QSKit (0.8 nozzle)", + "sub_path": "machine/Snapmaker A350 QSKit (0.8 nozzle).json" + }, + { + "name": "Snapmaker A250 BKit (0.2 nozzle)", + "sub_path": "machine/Snapmaker A250 BKit (0.2 nozzle).json" + }, + { + "name": "Snapmaker A250 BKit (0.4 nozzle)", + "sub_path": "machine/Snapmaker A250 BKit (0.4 nozzle).json" + }, + { + "name": "Snapmaker A250 BKit (0.6 nozzle)", + "sub_path": "machine/Snapmaker A250 BKit (0.6 nozzle).json" + }, + { + "name": "Snapmaker A250 BKit (0.8 nozzle)", + "sub_path": "machine/Snapmaker A250 BKit (0.8 nozzle).json" + }, + { + "name": "Snapmaker A350 BKit (0.2 nozzle)", + "sub_path": "machine/Snapmaker A350 BKit (0.2 nozzle).json" + }, + { + "name": "Snapmaker A350 BKit (0.4 nozzle)", + "sub_path": "machine/Snapmaker A350 BKit (0.4 nozzle).json" + }, + { + "name": "Snapmaker A350 BKit (0.6 nozzle)", + "sub_path": "machine/Snapmaker A350 BKit (0.6 nozzle).json" + }, + { + "name": "Snapmaker A350 BKit (0.8 nozzle)", + "sub_path": "machine/Snapmaker A350 BKit (0.8 nozzle).json" + }, + { + "name": "Snapmaker A250 QS+B Kit (0.2 nozzle)", + "sub_path": "machine/Snapmaker A250 QS+B Kit (0.2 nozzle).json" + }, + { + "name": "Snapmaker A250 QS+B Kit (0.4 nozzle)", + "sub_path": "machine/Snapmaker A250 QS+B Kit (0.4 nozzle).json" + }, + { + "name": "Snapmaker A250 QS+B Kit (0.6 nozzle)", + "sub_path": "machine/Snapmaker A250 QS+B Kit (0.6 nozzle).json" + }, + { + "name": "Snapmaker A250 QS+B Kit (0.8 nozzle)", + "sub_path": "machine/Snapmaker A250 QS+B Kit (0.8 nozzle).json" + }, + { + "name": "Snapmaker A350 QS+B Kit (0.2 nozzle)", + "sub_path": "machine/Snapmaker A350 QS+B Kit (0.2 nozzle).json" + }, + { + "name": "Snapmaker A350 QS+B Kit (0.4 nozzle)", + "sub_path": "machine/Snapmaker A350 QS+B Kit (0.4 nozzle).json" + }, + { + "name": "Snapmaker A350 QS+B Kit (0.6 nozzle)", + "sub_path": "machine/Snapmaker A350 QS+B Kit (0.6 nozzle).json" + }, + { + "name": "Snapmaker A350 QS+B Kit (0.8 nozzle)", + "sub_path": "machine/Snapmaker A350 QS+B Kit (0.8 nozzle).json" + }, + { + "name": "Snapmaker A250 Dual QSKit (0.2 nozzle)", + "sub_path": "machine/Snapmaker A250 Dual QSKit (0.2 nozzle).json" + }, + { + "name": "Snapmaker A250 Dual QSKit (0.4 nozzle)", + "sub_path": "machine/Snapmaker A250 Dual QSKit (0.4 nozzle).json" + }, + { + "name": "Snapmaker A250 Dual QSKit (0.6 nozzle)", + "sub_path": "machine/Snapmaker A250 Dual QSKit (0.6 nozzle).json" + }, + { + "name": "Snapmaker A250 Dual QSKit (0.8 nozzle)", + "sub_path": "machine/Snapmaker A250 Dual QSKit (0.8 nozzle).json" + }, + { + "name": "Snapmaker A350 Dual QSKit (0.2 nozzle)", + "sub_path": "machine/Snapmaker A350 Dual QSKit (0.2 nozzle).json" + }, + { + "name": "Snapmaker A350 Dual QSKit (0.4 nozzle)", + "sub_path": "machine/Snapmaker A350 Dual QSKit (0.4 nozzle).json" + }, + { + "name": "Snapmaker A350 Dual QSKit (0.6 nozzle)", + "sub_path": "machine/Snapmaker A350 Dual QSKit (0.6 nozzle).json" + }, + { + "name": "Snapmaker A350 Dual QSKit (0.8 nozzle)", + "sub_path": "machine/Snapmaker A350 Dual QSKit (0.8 nozzle).json" + }, + { + "name": "Snapmaker A250 Dual BKit (0.2 nozzle)", + "sub_path": "machine/Snapmaker A250 Dual BKit (0.2 nozzle).json" + }, + { + "name": "Snapmaker A250 Dual BKit (0.4 nozzle)", + "sub_path": "machine/Snapmaker A250 Dual BKit (0.4 nozzle).json" + }, + { + "name": "Snapmaker A250 Dual BKit (0.6 nozzle)", + "sub_path": "machine/Snapmaker A250 Dual BKit (0.6 nozzle).json" + }, + { + "name": "Snapmaker A250 Dual BKit (0.8 nozzle)", + "sub_path": "machine/Snapmaker A250 Dual BKit (0.8 nozzle).json" + }, + { + "name": "Snapmaker A350 Dual BKit (0.2 nozzle)", + "sub_path": "machine/Snapmaker A350 Dual BKit (0.2 nozzle).json" + }, + { + "name": "Snapmaker A350 Dual BKit (0.4 nozzle)", + "sub_path": "machine/Snapmaker A350 Dual BKit (0.4 nozzle).json" + }, + { + "name": "Snapmaker A350 Dual BKit (0.6 nozzle)", + "sub_path": "machine/Snapmaker A350 Dual BKit (0.6 nozzle).json" + }, + { + "name": "Snapmaker A350 Dual BKit (0.8 nozzle)", + "sub_path": "machine/Snapmaker A350 Dual BKit (0.8 nozzle).json" + }, + { + "name": "Snapmaker A250 Dual QS+B Kit (0.2 nozzle)", + "sub_path": "machine/Snapmaker A250 Dual QS+B Kit (0.2 nozzle).json" + }, + { + "name": "Snapmaker A250 Dual QS+B Kit (0.4 nozzle)", + "sub_path": "machine/Snapmaker A250 Dual QS+B Kit (0.4 nozzle).json" + }, + { + "name": "Snapmaker A250 Dual QS+B Kit (0.6 nozzle)", + "sub_path": "machine/Snapmaker A250 Dual QS+B Kit (0.6 nozzle).json" + }, + { + "name": "Snapmaker A250 Dual QS+B Kit (0.8 nozzle)", + "sub_path": "machine/Snapmaker A250 Dual QS+B Kit (0.8 nozzle).json" + }, + { + "name": "Snapmaker A350 Dual QS+B Kit (0.2 nozzle)", + "sub_path": "machine/Snapmaker A350 Dual QS+B Kit (0.2 nozzle).json" + }, + { + "name": "Snapmaker A350 Dual QS+B Kit (0.4 nozzle)", + "sub_path": "machine/Snapmaker A350 Dual QS+B Kit (0.4 nozzle).json" + }, + { + "name": "Snapmaker A350 Dual QS+B Kit (0.6 nozzle)", + "sub_path": "machine/Snapmaker A350 Dual QS+B Kit (0.6 nozzle).json" + }, + { + "name": "Snapmaker A350 Dual QS+B Kit (0.8 nozzle)", + "sub_path": "machine/Snapmaker A350 Dual QS+B Kit (0.8 nozzle).json" + }, + { + "name": "Snapmaker Artisan (0.2 nozzle)", + "sub_path": "machine/Snapmaker Artisan (0.2 nozzle).json" + }, + { + "name": "Snapmaker Artisan (0.4 nozzle)", + "sub_path": "machine/Snapmaker Artisan (0.4 nozzle).json" + }, + { + "name": "Snapmaker Artisan (0.6 nozzle)", + "sub_path": "machine/Snapmaker Artisan (0.6 nozzle).json" + }, + { + "name": "Snapmaker Artisan (0.8 nozzle)", + "sub_path": "machine/Snapmaker Artisan (0.8 nozzle).json" + } + ] } \ No newline at end of file diff --git a/resources/profiles/Snapmaker/filament/PolyLite Dual PLA.json b/resources/profiles/Snapmaker/filament/PolyLite Dual PLA.json deleted file mode 100644 index e6ab1a1496..0000000000 --- a/resources/profiles/Snapmaker/filament/PolyLite Dual PLA.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "type": "filament", - "from": "system", - "instantiation": "true", - "name": "PolyLite Dual PLA", - "setting_id": "64868365", - "inherits": "PolyLite PLA @base", - "compatible_printers": [ - "Snapmaker A250 Dual (0.4 nozzle)", - "Snapmaker A250 Dual (0.6 nozzle)", - "Snapmaker A250 Dual (0.8 nozzle)", - "Snapmaker A250 Dual BKit (0.4 nozzle)", - "Snapmaker A250 Dual BKit (0.6 nozzle)", - "Snapmaker A250 Dual BKit (0.8 nozzle)", - "Snapmaker A250 Dual QS+B Kit (0.4 nozzle)", - "Snapmaker A250 Dual QS+B Kit (0.6 nozzle)", - "Snapmaker A250 Dual QS+B Kit (0.8 nozzle)", - "Snapmaker A250 Dual QSKit (0.4 nozzle)", - "Snapmaker A250 Dual QSKit (0.6 nozzle)", - "Snapmaker A250 Dual QSKit (0.8 nozzle)", - "Snapmaker A350 Dual (0.4 nozzle)", - "Snapmaker A350 Dual (0.6 nozzle)", - "Snapmaker A350 Dual (0.8 nozzle)", - "Snapmaker A350 Dual BKit (0.4 nozzle)", - "Snapmaker A350 Dual BKit (0.6 nozzle)", - "Snapmaker A350 Dual BKit (0.8 nozzle)", - "Snapmaker A350 Dual QS+B Kit (0.4 nozzle)", - "Snapmaker A350 Dual QS+B Kit (0.6 nozzle)", - "Snapmaker A350 Dual QS+B Kit (0.8 nozzle)", - "Snapmaker A350 Dual QSKit (0.4 nozzle)", - "Snapmaker A350 Dual QSKit (0.6 nozzle)", - "Snapmaker A350 Dual QSKit (0.8 nozzle)", - "Snapmaker Artisan (0.4 nozzle)", - "Snapmaker Artisan (0.6 nozzle)", - "Snapmaker Artisan (0.8 nozzle)" - ] -} \ No newline at end of file diff --git a/resources/profiles/Snapmaker/filament/PolyLite PLA.json b/resources/profiles/Snapmaker/filament/PolyLite PLA.json deleted file mode 100644 index aa38602aa8..0000000000 --- a/resources/profiles/Snapmaker/filament/PolyLite PLA.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "type": "filament", - "from": "system", - "instantiation": "true", - "name": "PolyLite PLA", - "setting_id": "599651858", - "inherits": "PolyLite PLA @base", - "compatible_printers": [ - "Snapmaker A250 (0.4 nozzle)", - "Snapmaker A250 (0.6 nozzle)", - "Snapmaker A250 (0.8 nozzle)", - "Snapmaker A250 BKit (0.4 nozzle)", - "Snapmaker A250 BKit (0.6 nozzle)", - "Snapmaker A250 BKit (0.8 nozzle)", - "Snapmaker A250 QS+B Kit (0.4 nozzle)", - "Snapmaker A250 QS+B Kit (0.6 nozzle)", - "Snapmaker A250 QS+B Kit (0.8 nozzle)", - "Snapmaker A250 QSKit (0.4 nozzle)", - "Snapmaker A250 QSKit (0.6 nozzle)", - "Snapmaker A250 QSKit (0.8 nozzle)", - "Snapmaker A350 (0.4 nozzle)", - "Snapmaker A350 (0.6 nozzle)", - "Snapmaker A350 (0.8 nozzle)", - "Snapmaker A350 BKit (0.4 nozzle)", - "Snapmaker A350 BKit (0.6 nozzle)", - "Snapmaker A350 BKit (0.8 nozzle)", - "Snapmaker A350 QS+B Kit (0.4 nozzle)", - "Snapmaker A350 QS+B Kit (0.6 nozzle)", - "Snapmaker A350 QS+B Kit (0.8 nozzle)", - "Snapmaker A350 QSKit (0.4 nozzle)", - "Snapmaker A350 QSKit (0.6 nozzle)", - "Snapmaker A350 QSKit (0.8 nozzle)" - ] -} \ No newline at end of file diff --git a/resources/profiles/Snapmaker/filament/PolyTerra Dual PLA.json b/resources/profiles/Snapmaker/filament/PolyTerra Dual PLA.json deleted file mode 100644 index 8b13924b72..0000000000 --- a/resources/profiles/Snapmaker/filament/PolyTerra Dual PLA.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "type": "filament", - "from": "system", - "instantiation": "true", - "name": "PolyTerra Dual PLA", - "setting_id": "1258005940", - "inherits": "PolyTerra PLA @base", - "compatible_printers": [ - "Snapmaker A250 Dual (0.4 nozzle)", - "Snapmaker A250 Dual (0.6 nozzle)", - "Snapmaker A250 Dual (0.8 nozzle)", - "Snapmaker A250 Dual BKit (0.4 nozzle)", - "Snapmaker A250 Dual BKit (0.6 nozzle)", - "Snapmaker A250 Dual BKit (0.8 nozzle)", - "Snapmaker A250 Dual QS+B Kit (0.4 nozzle)", - "Snapmaker A250 Dual QS+B Kit (0.6 nozzle)", - "Snapmaker A250 Dual QS+B Kit (0.8 nozzle)", - "Snapmaker A250 Dual QSKit (0.4 nozzle)", - "Snapmaker A250 Dual QSKit (0.6 nozzle)", - "Snapmaker A250 Dual QSKit (0.8 nozzle)", - "Snapmaker A350 Dual (0.4 nozzle)", - "Snapmaker A350 Dual (0.6 nozzle)", - "Snapmaker A350 Dual (0.8 nozzle)", - "Snapmaker A350 Dual BKit (0.4 nozzle)", - "Snapmaker A350 Dual BKit (0.6 nozzle)", - "Snapmaker A350 Dual BKit (0.8 nozzle)", - "Snapmaker A350 Dual QS+B Kit (0.4 nozzle)", - "Snapmaker A350 Dual QS+B Kit (0.6 nozzle)", - "Snapmaker A350 Dual QS+B Kit (0.8 nozzle)", - "Snapmaker A350 Dual QSKit (0.4 nozzle)", - "Snapmaker A350 Dual QSKit (0.6 nozzle)", - "Snapmaker A350 Dual QSKit (0.8 nozzle)", - "Snapmaker Artisan (0.4 nozzle)", - "Snapmaker Artisan (0.6 nozzle)", - "Snapmaker Artisan (0.8 nozzle)" - ] -} \ No newline at end of file diff --git a/resources/profiles/Snapmaker/filament/PolyTerra PLA @base.json b/resources/profiles/Snapmaker/filament/PolyTerra PLA @base.json deleted file mode 100644 index fdd96cf6f9..0000000000 --- a/resources/profiles/Snapmaker/filament/PolyTerra PLA @base.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "filament", - "from": "system", - "instantiation": "false", - "name": "PolyTerra PLA @base", - "filament_id": "3789592687", - "inherits": "fdm_filament_pla", - "filament_cost": [ - "80" - ], - "filament_density": [ - "1.31" - ], - "filament_max_volumetric_speed": [ - "14.4" - ], - "default_filament_colour": [ - "#73CEC8" - ] -} \ No newline at end of file diff --git a/resources/profiles/Snapmaker/filament/PolyTerra PLA.json b/resources/profiles/Snapmaker/filament/PolyTerra PLA.json deleted file mode 100644 index 644b87e1ab..0000000000 --- a/resources/profiles/Snapmaker/filament/PolyTerra PLA.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "type": "filament", - "from": "system", - "instantiation": "true", - "name": "PolyTerra PLA", - "setting_id": "3016316214", - "inherits": "PolyTerra PLA @base", - "compatible_printers": [ - "Snapmaker A250 (0.4 nozzle)", - "Snapmaker A250 (0.6 nozzle)", - "Snapmaker A250 (0.8 nozzle)", - "Snapmaker A250 BKit (0.4 nozzle)", - "Snapmaker A250 BKit (0.6 nozzle)", - "Snapmaker A250 BKit (0.8 nozzle)", - "Snapmaker A250 QS+B Kit (0.4 nozzle)", - "Snapmaker A250 QS+B Kit (0.6 nozzle)", - "Snapmaker A250 QS+B Kit (0.8 nozzle)", - "Snapmaker A250 QSKit (0.4 nozzle)", - "Snapmaker A250 QSKit (0.6 nozzle)", - "Snapmaker A250 QSKit (0.8 nozzle)", - "Snapmaker A350 (0.4 nozzle)", - "Snapmaker A350 (0.6 nozzle)", - "Snapmaker A350 (0.8 nozzle)", - "Snapmaker A350 BKit (0.4 nozzle)", - "Snapmaker A350 BKit (0.6 nozzle)", - "Snapmaker A350 BKit (0.8 nozzle)", - "Snapmaker A350 QS+B Kit (0.4 nozzle)", - "Snapmaker A350 QS+B Kit (0.6 nozzle)", - "Snapmaker A350 QS+B Kit (0.8 nozzle)", - "Snapmaker A350 QSKit (0.4 nozzle)", - "Snapmaker A350 QSKit (0.6 nozzle)", - "Snapmaker A350 QSKit (0.8 nozzle)" - ] -} \ No newline at end of file diff --git a/resources/profiles/Sovol.json b/resources/profiles/Sovol.json index c3bea8bf19..76db1e18e0 100644 --- a/resources/profiles/Sovol.json +++ b/resources/profiles/Sovol.json @@ -1,291 +1,327 @@ -{ - "name": "Sovol", - "url": "", - "version": "02.02.00.04", - "force_update": "0", - "description": "Sovol configurations", - "machine_model_list": [ - { - "name": "Sovol SV01 Pro", - "sub_path": "machine/Sovol SV01 Pro.json" - }, - { - "name": "Sovol SV02", - "sub_path": "machine/Sovol SV02.json" - }, - { - "name": "Sovol SV05", - "sub_path": "machine/Sovol SV05.json" - }, - { - "name": "Sovol SV06", - "sub_path": "machine/Sovol SV06.json" - }, - { - "name": "Sovol SV06 Plus", - "sub_path": "machine/Sovol SV06 Plus.json" - }, - { - "name": "Sovol SV06 ACE", - "sub_path": "machine/Sovol SV06 ACE.json" - }, - { - "name": "Sovol SV06 Plus ACE", - "sub_path": "machine/Sovol SV06 Plus ACE.json" - }, - { - "name": "Sovol SV07", - "sub_path": "machine/Sovol SV07.json" - }, - { - "name": "Sovol SV07 Plus", - "sub_path": "machine/Sovol SV07 Plus.json" - }, - { - "name": "Sovol SV08", - "sub_path": "machine/Sovol SV08.json" - } - ], - "process_list": [ - { - "name": "fdm_process_common", - "sub_path": "process/fdm_process_common.json" - }, - { - "name": "0.18mm Optimal @Sovol SV01Pro", - "sub_path": "process/0.18mm Optimal @Sovol SV01Pro.json" - }, - { - "name": "0.18mm Optimal @Sovol SV02", - "sub_path": "process/0.18mm Optimal @Sovol SV02.json" - }, - { - "name": "0.18mm Optimal @Sovol SV05", - "sub_path": "process/0.18mm Optimal @Sovol SV05.json" - }, - { - "name": "0.18mm Optimal @Sovol SV06", - "sub_path": "process/0.18mm Optimal @Sovol SV06.json" - }, - { - "name": "0.18mm Optimal @Sovol SV06Plus", - "sub_path": "process/0.18mm Optimal @Sovol SV06Plus.json" - }, - { - "name": "0.18mm Optimal @Sovol SV07", - "sub_path": "process/0.18mm Optimal @Sovol SV07.json" - }, - { - "name": "0.18mm Optimal @Sovol SV07 Plus", - "sub_path": "process/0.18mm Optimal @Sovol SV07Plus.json" - }, - { - "name": "0.20mm Standard @Sovol SV01Pro", - "sub_path": "process/0.20mm Standard @Sovol SV01Pro.json" - }, - { - "name": "0.20mm Standard @Sovol SV02", - "sub_path": "process/0.20mm Standard @Sovol SV02.json" - }, - { - "name": "0.20mm Standard @Sovol SV05", - "sub_path": "process/0.20mm Standard @Sovol SV05.json" - }, - { - "name": "0.20mm Standard @Sovol SV06", - "sub_path": "process/0.20mm Standard @Sovol SV06.json" - }, - { - "name": "0.20mm Standard @Sovol SV06Plus", - "sub_path": "process/0.20mm Standard @Sovol SV06Plus.json" - }, - { - "name": "0.20mm Standard @Sovol SV06 ACE - official", - "sub_path": "process/0.20mm Standard @Sovol SV06 ACE - official.json" - }, - { - "name": "0.20mm Standard @Sovol SV06 Plus ACE - official", - "sub_path": "process/0.20mm Standard @Sovol SV06 Plus ACE - official.json" - }, - { - "name": "0.20mm Standard @Sovol SV07", - "sub_path": "process/0.20mm Standard @Sovol SV07.json" - }, - { - "name": "0.20mm Standard @Sovol SV07 Plus", - "sub_path": "process/0.20mm Standard @Sovol SV07Plus.json" - }, - { - "name": "0.10mm Standard @Sovol SV08 0.2 nozzle", - "sub_path": "process/0.10mm Standard @Sovol SV08 0.2 nozzle.json" - }, - { - "name": "0.20mm Standard @Sovol SV08 0.4 nozzle", - "sub_path": "process/0.20mm Standard @Sovol SV08 0.4 nozzle.json" - }, - { - "name": "0.30mm Standard @Sovol SV08 0.6 nozzle", - "sub_path": "process/0.30mm Standard @Sovol SV08 0.6 nozzle.json" - }, - { - "name": "0.40mm Standard @Sovol SV08 0.8 nozzle", - "sub_path": "process/0.40mm Standard @Sovol SV08 0.8 nozzle.json" - }, - { - "name": "0.20mm High-Speed @Sovol SV06", - "sub_path": "process/0.20mm High-Speed @Sovol SV06.json" - } - ], - "filament_list": [ - { - "name": "fdm_filament_common", - "sub_path": "filament/fdm_filament_common.json" - }, - { - "name": "fdm_filament_abs", - "sub_path": "filament/fdm_filament_abs.json" - }, - { - "name": "fdm_filament_pet", - "sub_path": "filament/fdm_filament_pet.json" - }, - { - "name": "fdm_filament_pla", - "sub_path": "filament/fdm_filament_pla.json" - }, - { - "name": "fdm_filament_tpu", - "sub_path": "filament/fdm_filament_tpu.json" - }, - { - "name": "Sovol Generic ABS", - "sub_path": "filament/Sovol Generic ABS.json" - }, - { - "name": "Sovol Generic PETG", - "sub_path": "filament/Sovol Generic PETG.json" - }, - { - "name": "Sovol Generic PLA", - "sub_path": "filament/Sovol Generic PLA.json" - }, - { - "name": "Sovol Generic TPU", - "sub_path": "filament/Sovol Generic TPU.json" - }, - { - "name": "Sovol SV06 ACE PLA", - "sub_path": "filament/Sovol SV06 ACE PLA.json" - }, - { - "name": "Sovol SV06 ACE ABS", - "sub_path": "filament/Sovol SV06 ACE ABS.json" - }, - { - "name": "Sovol SV06 ACE PETG", - "sub_path": "filament/Sovol SV06 ACE PETG.json" - }, - { - "name": "Sovol SV06 ACE TPU", - "sub_path": "filament/Sovol SV06 ACE TPU.json" - }, - { - "name": "Sovol SV06 Plus ACE PLA", - "sub_path": "filament/Sovol SV06 Plus ACE PLA.json" - }, - { - "name": "Sovol SV06 Plus ACE ABS", - "sub_path": "filament/Sovol SV06 Plus ACE ABS.json" - }, - { - "name": "Sovol SV06 Plus ACE PETG", - "sub_path": "filament/Sovol SV06 Plus ACE PETG.json" - }, - { - "name": "Sovol SV06 Plus ACE TPU", - "sub_path": "filament/Sovol SV06 Plus ACE TPU.json" - }, - { - "name": "Sovol SV07 PLA", - "sub_path": "filament/Sovol SV07 PLA.json" - }, - { - "name": "Sovol SV08 PLA", - "sub_path": "filament/Sovol SV08 PLA.json" - }, - { - "name": "Sovol SV08 PLA @SV08 0.2 nozzle", - "sub_path": "filament/Sovol SV08 PLA @SV08 0.2 nozzle.json" - }, - { - "name": "Sovol SV08 ABS", - "sub_path": "filament/Sovol SV08 ABS.json" - }, - { - "name": "Sovol SV08 PETG", - "sub_path": "filament/Sovol SV08 PETG.json" - }, - { - "name": "Sovol SV08 TPU", - "sub_path": "filament/Sovol SV08 TPU.json" - } - ], - "machine_list": [ - { - "name": "fdm_machine_common", - "sub_path": "machine/fdm_machine_common.json" - }, - { - "name": "Sovol SV01 Pro 0.4 nozzle", - "sub_path": "machine/Sovol SV01 Pro 0.4 nozzle.json" - }, - { - "name": "Sovol SV02 0.4 nozzle", - "sub_path": "machine/Sovol SV02 0.4 nozzle.json" - }, - { - "name": "Sovol SV05 0.4 nozzle", - "sub_path": "machine/Sovol SV05 0.4 nozzle.json" - }, - { - "name": "Sovol SV06 0.4 nozzle", - "sub_path": "machine/Sovol SV06 0.4 nozzle.json" - }, - { - "name": "Sovol SV06 Plus 0.4 nozzle", - "sub_path": "machine/Sovol SV06 Plus 0.4 nozzle.json" - }, - { - "name": "Sovol SV06 ACE 0.4 nozzle", - "sub_path": "machine/Sovol SV06 ACE 0.4 nozzle.json" - }, - { - "name": "Sovol SV06 Plus ACE 0.4 nozzle", - "sub_path": "machine/Sovol SV06 Plus ACE 0.4 nozzle.json" - }, - { - "name": "Sovol SV07 0.4 nozzle", - "sub_path": "machine/Sovol SV07 0.4 nozzle.json" - }, - { - "name": "Sovol SV07 Plus 0.4 nozzle", - "sub_path": "machine/Sovol SV07 Plus 0.4 nozzle.json" - }, - { - "name": "Sovol SV08 0.2 nozzle", - "sub_path": "machine/Sovol SV08 0.2 nozzle.json" - }, - { - "name": "Sovol SV08 0.4 nozzle", - "sub_path": "machine/Sovol SV08 0.4 nozzle.json" - }, - { - "name": "Sovol SV08 0.6 nozzle", - "sub_path": "machine/Sovol SV08 0.6 nozzle.json" - }, - { - "name": "Sovol SV08 0.8 nozzle", - "sub_path": "machine/Sovol SV08 0.8 nozzle.json" - } - ] -} +{ + "name": "Sovol", + "url": "", + "version": "02.02.00.04", + "force_update": "0", + "description": "Sovol configurations", + "machine_model_list": [ + { + "name": "Sovol SV01 Pro", + "sub_path": "machine/Sovol SV01 Pro.json" + }, + { + "name": "Sovol SV02", + "sub_path": "machine/Sovol SV02.json" + }, + { + "name": "Sovol SV05", + "sub_path": "machine/Sovol SV05.json" + }, + { + "name": "Sovol SV06", + "sub_path": "machine/Sovol SV06.json" + }, + { + "name": "Sovol SV06 Plus", + "sub_path": "machine/Sovol SV06 Plus.json" + }, + { + "name": "Sovol SV06 ACE", + "sub_path": "machine/Sovol SV06 ACE.json" + }, + { + "name": "Sovol SV06 Plus ACE", + "sub_path": "machine/Sovol SV06 Plus ACE.json" + }, + { + "name": "Sovol SV07", + "sub_path": "machine/Sovol SV07.json" + }, + { + "name": "Sovol SV07 Plus", + "sub_path": "machine/Sovol SV07 Plus.json" + }, + { + "name": "Sovol SV08", + "sub_path": "machine/Sovol SV08.json" + } + ], + "process_list": [ + { + "name": "fdm_process_common", + "sub_path": "process/fdm_process_common.json" + }, + { + "name": "0.18mm Optimal @Sovol SV01Pro", + "sub_path": "process/0.18mm Optimal @Sovol SV01Pro.json" + }, + { + "name": "0.18mm Optimal @Sovol SV02", + "sub_path": "process/0.18mm Optimal @Sovol SV02.json" + }, + { + "name": "0.18mm Optimal @Sovol SV05", + "sub_path": "process/0.18mm Optimal @Sovol SV05.json" + }, + { + "name": "0.18mm Optimal @Sovol SV06", + "sub_path": "process/0.18mm Optimal @Sovol SV06.json" + }, + { + "name": "0.18mm Optimal @Sovol SV06Plus", + "sub_path": "process/0.18mm Optimal @Sovol SV06Plus.json" + }, + { + "name": "0.18mm Optimal @Sovol SV07", + "sub_path": "process/0.18mm Optimal @Sovol SV07.json" + }, + { + "name": "0.18mm Optimal @Sovol SV07 Plus", + "sub_path": "process/0.18mm Optimal @Sovol SV07Plus.json" + }, + { + "name": "0.20mm Standard @Sovol SV01Pro", + "sub_path": "process/0.20mm Standard @Sovol SV01Pro.json" + }, + { + "name": "0.20mm Standard @Sovol SV02", + "sub_path": "process/0.20mm Standard @Sovol SV02.json" + }, + { + "name": "0.20mm Standard @Sovol SV05", + "sub_path": "process/0.20mm Standard @Sovol SV05.json" + }, + { + "name": "0.20mm Standard @Sovol SV06", + "sub_path": "process/0.20mm Standard @Sovol SV06.json" + }, + { + "name": "0.20mm Standard @Sovol SV06Plus", + "sub_path": "process/0.20mm Standard @Sovol SV06Plus.json" + }, + { + "name": "0.12mm Standard @Sovol SV06 ACE 0.2 nozzle", + "sub_path": "process/0.12mm Standard @Sovol SV06 ACE 0.2 nozzle.json" + }, + { + "name": "0.08mm High Quality @Sovol SV06 ACE 0.4 nozzle", + "sub_path": "process/0.08mm High Quality @Sovol SV06 ACE 0.4 nozzle.json" + }, + { + "name": "0.12mm Quality @Sovol SV06 ACE 0.4 nozzle", + "sub_path": "process/0.12mm Quality @Sovol SV06 ACE 0.4 nozzle.json" + }, + { + "name": "0.20mm Standard @Sovol SV06 ACE", + "sub_path": "process/0.20mm Standard @Sovol SV06 ACE.json" + }, + { + "name": "0.28mm Fast @Sovol SV06 ACE 0.4 nozzle", + "sub_path": "process/0.28mm Fast @Sovol SV06 ACE 0.4 nozzle.json" + }, + { + "name": "0.40mm Standard @Sovol SV06 ACE 0.8 nozzle", + "sub_path": "process/0.40mm Standard @Sovol SV06 ACE 0.8 nozzle.json" + }, + { + "name": "0.30mm Standard @Sovol SV06 ACE 0.6 nozzle", + "sub_path": "process/0.30mm Standard @Sovol SV06 ACE 0.6 nozzle.json" + }, + { + "name": "0.20mm Standard @Sovol SV06 Plus ACE", + "sub_path": "process/0.20mm Standard @Sovol SV06 Plus ACE.json" + }, + { + "name": "0.20mm Standard @Sovol SV07", + "sub_path": "process/0.20mm Standard @Sovol SV07.json" + }, + { + "name": "0.20mm Standard @Sovol SV07 Plus", + "sub_path": "process/0.20mm Standard @Sovol SV07Plus.json" + }, + { + "name": "0.10mm Standard @Sovol SV08 0.2 nozzle", + "sub_path": "process/0.10mm Standard @Sovol SV08 0.2 nozzle.json" + }, + { + "name": "0.20mm Standard @Sovol SV08 0.4 nozzle", + "sub_path": "process/0.20mm Standard @Sovol SV08 0.4 nozzle.json" + }, + { + "name": "0.30mm Standard @Sovol SV08 0.6 nozzle", + "sub_path": "process/0.30mm Standard @Sovol SV08 0.6 nozzle.json" + }, + { + "name": "0.40mm Standard @Sovol SV08 0.8 nozzle", + "sub_path": "process/0.40mm Standard @Sovol SV08 0.8 nozzle.json" + }, + { + "name": "0.20mm High-Speed @Sovol SV06", + "sub_path": "process/0.20mm High-Speed @Sovol SV06.json" + } + ], + "filament_list": [ + { + "name": "fdm_filament_common", + "sub_path": "filament/fdm_filament_common.json" + }, + { + "name": "fdm_filament_abs", + "sub_path": "filament/fdm_filament_abs.json" + }, + { + "name": "fdm_filament_pet", + "sub_path": "filament/fdm_filament_pet.json" + }, + { + "name": "fdm_filament_pla", + "sub_path": "filament/fdm_filament_pla.json" + }, + { + "name": "fdm_filament_tpu", + "sub_path": "filament/fdm_filament_tpu.json" + }, + { + "name": "Sovol Generic ABS", + "sub_path": "filament/Sovol Generic ABS.json" + }, + { + "name": "Sovol Generic PETG", + "sub_path": "filament/Sovol Generic PETG.json" + }, + { + "name": "Sovol Generic PLA", + "sub_path": "filament/Sovol Generic PLA.json" + }, + { + "name": "Sovol Generic TPU", + "sub_path": "filament/Sovol Generic TPU.json" + }, + { + "name": "Sovol SV06 ACE PLA", + "sub_path": "filament/Sovol SV06 ACE PLA.json" + }, + { + "name": "Sovol SV06 ACE ABS", + "sub_path": "filament/Sovol SV06 ACE ABS.json" + }, + { + "name": "Sovol SV06 ACE PETG", + "sub_path": "filament/Sovol SV06 ACE PETG.json" + }, + { + "name": "Sovol SV06 ACE TPU", + "sub_path": "filament/Sovol SV06 ACE TPU.json" + }, + { + "name": "Sovol SV06 Plus ACE PLA", + "sub_path": "filament/Sovol SV06 Plus ACE PLA.json" + }, + { + "name": "Sovol SV06 Plus ACE ABS", + "sub_path": "filament/Sovol SV06 Plus ACE ABS.json" + }, + { + "name": "Sovol SV06 Plus ACE PETG", + "sub_path": "filament/Sovol SV06 Plus ACE PETG.json" + }, + { + "name": "Sovol SV06 Plus ACE TPU", + "sub_path": "filament/Sovol SV06 Plus ACE TPU.json" + }, + { + "name": "Sovol SV07 PLA", + "sub_path": "filament/Sovol SV07 PLA.json" + }, + { + "name": "Sovol SV08 PLA", + "sub_path": "filament/Sovol SV08 PLA.json" + }, + { + "name": "Sovol SV08 PLA @SV08 0.2 nozzle", + "sub_path": "filament/Sovol SV08 PLA @SV08 0.2 nozzle.json" + }, + { + "name": "Sovol SV08 ABS", + "sub_path": "filament/Sovol SV08 ABS.json" + }, + { + "name": "Sovol SV08 PETG", + "sub_path": "filament/Sovol SV08 PETG.json" + }, + { + "name": "Sovol SV08 TPU", + "sub_path": "filament/Sovol SV08 TPU.json" + } + ], + "machine_list": [ + { + "name": "fdm_machine_common", + "sub_path": "machine/fdm_machine_common.json" + }, + { + "name": "Sovol SV01 Pro 0.4 nozzle", + "sub_path": "machine/Sovol SV01 Pro 0.4 nozzle.json" + }, + { + "name": "Sovol SV02 0.4 nozzle", + "sub_path": "machine/Sovol SV02 0.4 nozzle.json" + }, + { + "name": "Sovol SV05 0.4 nozzle", + "sub_path": "machine/Sovol SV05 0.4 nozzle.json" + }, + { + "name": "Sovol SV06 0.4 nozzle", + "sub_path": "machine/Sovol SV06 0.4 nozzle.json" + }, + { + "name": "Sovol SV06 Plus 0.4 nozzle", + "sub_path": "machine/Sovol SV06 Plus 0.4 nozzle.json" + }, + { + "name": "Sovol SV06 ACE 0.2 nozzle", + "sub_path": "machine/Sovol SV06 ACE 0.2 nozzle.json" + }, + { + "name": "Sovol SV06 ACE 0.6 nozzle", + "sub_path": "machine/Sovol SV06 ACE 0.6 nozzle.json" + }, + { + "name": "Sovol SV06 ACE 0.4 nozzle", + "sub_path": "machine/Sovol SV06 ACE 0.4 nozzle.json" + }, + { + "name": "Sovol SV06 ACE 0.8 nozzle", + "sub_path": "machine/Sovol SV06 ACE 0.8 nozzle.json" + }, + { + "name": "Sovol SV06 Plus ACE 0.4 nozzle", + "sub_path": "machine/Sovol SV06 Plus ACE 0.4 nozzle.json" + }, + { + "name": "Sovol SV07 0.4 nozzle", + "sub_path": "machine/Sovol SV07 0.4 nozzle.json" + }, + { + "name": "Sovol SV07 Plus 0.4 nozzle", + "sub_path": "machine/Sovol SV07 Plus 0.4 nozzle.json" + }, + { + "name": "Sovol SV08 0.2 nozzle", + "sub_path": "machine/Sovol SV08 0.2 nozzle.json" + }, + { + "name": "Sovol SV08 0.4 nozzle", + "sub_path": "machine/Sovol SV08 0.4 nozzle.json" + }, + { + "name": "Sovol SV08 0.6 nozzle", + "sub_path": "machine/Sovol SV08 0.6 nozzle.json" + }, + { + "name": "Sovol SV08 0.8 nozzle", + "sub_path": "machine/Sovol SV08 0.8 nozzle.json" + } + ] +} diff --git a/resources/profiles/Sovol/filament/Sovol SV06 ACE ABS.json b/resources/profiles/Sovol/filament/Sovol SV06 ACE ABS.json index 93d30e325c..e7e6b637b9 100644 --- a/resources/profiles/Sovol/filament/Sovol SV06 ACE ABS.json +++ b/resources/profiles/Sovol/filament/Sovol SV06 ACE ABS.json @@ -12,7 +12,10 @@ "3" ], "compatible_printers": [ - "Sovol SV06 ACE 0.4 nozzle" + "Sovol SV06 ACE 0.2 nozzle", + "Sovol SV06 ACE 0.4 nozzle", + "Sovol SV06 ACE 0.6 nozzle", + "Sovol SV06 ACE 0.8 nozzle" ], "fan_min_speed": [ "30" diff --git a/resources/profiles/Sovol/filament/Sovol SV06 ACE PETG.json b/resources/profiles/Sovol/filament/Sovol SV06 ACE PETG.json index 27284f6f72..ddf4172297 100644 --- a/resources/profiles/Sovol/filament/Sovol SV06 ACE PETG.json +++ b/resources/profiles/Sovol/filament/Sovol SV06 ACE PETG.json @@ -12,7 +12,10 @@ "3" ], "compatible_printers": [ - "Sovol SV06 ACE 0.4 nozzle" + "Sovol SV06 ACE 0.2 nozzle", + "Sovol SV06 ACE 0.4 nozzle", + "Sovol SV06 ACE 0.6 nozzle", + "Sovol SV06 ACE 0.8 nozzle" ], "fan_min_speed": [ "30" diff --git a/resources/profiles/Sovol/filament/Sovol SV06 ACE PLA.json b/resources/profiles/Sovol/filament/Sovol SV06 ACE PLA.json index 27ab175790..d9c1cdf709 100644 --- a/resources/profiles/Sovol/filament/Sovol SV06 ACE PLA.json +++ b/resources/profiles/Sovol/filament/Sovol SV06 ACE PLA.json @@ -12,7 +12,9 @@ "3" ], "compatible_printers": [ - "Sovol SV06 ACE 0.4 nozzle" + "Sovol SV06 ACE 0.4 nozzle", + "Sovol SV06 ACE 0.6 nozzle", + "Sovol SV06 ACE 0.8 nozzle" ], "fan_min_speed": [ "50" diff --git a/resources/profiles/Sovol/filament/Sovol SV06 ACE TPU.json b/resources/profiles/Sovol/filament/Sovol SV06 ACE TPU.json index 3379e27463..0582b407e8 100644 --- a/resources/profiles/Sovol/filament/Sovol SV06 ACE TPU.json +++ b/resources/profiles/Sovol/filament/Sovol SV06 ACE TPU.json @@ -12,7 +12,10 @@ "3" ], "compatible_printers": [ - "Sovol SV06 ACE 0.4 nozzle" + "Sovol SV06 ACE 0.2 nozzle", + "Sovol SV06 ACE 0.4 nozzle", + "Sovol SV06 ACE 0.6 nozzle", + "Sovol SV06 ACE 0.8 nozzle" ], "fan_min_speed": [ "100" diff --git a/resources/profiles/Sovol/machine/Sovol SV06 ACE 0.2 nozzle.json b/resources/profiles/Sovol/machine/Sovol SV06 ACE 0.2 nozzle.json new file mode 100644 index 0000000000..a32b02de25 --- /dev/null +++ b/resources/profiles/Sovol/machine/Sovol SV06 ACE 0.2 nozzle.json @@ -0,0 +1,131 @@ +{ + "type": "machine", + "setting_id": "GM001", + "name": "Sovol SV06 ACE 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_machine_common", + "printer_model": "Sovol SV06 ACE", + "default_print_profile": "0.12mm Standard @Sovol SV06 ACE 0.2 nozzle", + "printer_variant": "0.2", + "nozzle_diameter": [ + "0.2" + ], + "printable_area": [ + "0x0", + "220x0", + "220x220", + "0x220" + ], + "printable_height": "250", + "thumbnails": [ + "96x96", + "160x160" + ], + "thumbnails_format": "PNG", + "retraction_length": [ + "0.6" + ], + "retraction_minimum_travel": [ + "0.5" + ], + "support_multi_bed_types": "1", + "machine_max_acceleration_e": [ + "5000", + "5000" + ], + "machine_max_acceleration_extruding": [ + "20000", + "20000" + ], + "machine_max_acceleration_retracting": [ + "5000", + "5000" + ], + "machine_max_acceleration_travel": [ + "20000", + "20000" + ], + "machine_max_acceleration_x": [ + "20000", + "20000" + ], + "machine_max_acceleration_y": [ + "20000", + "20000" + ], + "machine_max_acceleration_z": [ + "500", + "500" + ], + "machine_max_speed_x": [ + "600", + "600" + ], + "machine_max_speed_y": [ + "600", + "600" + ], + "machine_max_speed_e": [ + "25", + "25" + ], + "machine_max_speed_z": [ + "10", + "10" + ], + "z_hop": [ + "0.2" + ], + "z_hop_types":[ + "Auto Lift" + ], + "max_layer_height": [ + "0.16", + "0.16" + ], + "retract_lift_below": [ + "248", + "248" + ], + "retraction_speed": [ + "35", + "35" + ], + "deretraction_speed": [ + "35", + "35" + ], + "wipe_distance": [ + "1" + ], + "retract_before_wipe": [ + "100%" + ], + "retract_length_toolchange": [ + "2", + "2" + ], + "machine_max_jerk_e": [ + "2.5" + ], + "machine_max_jerk_x": [ + "9" + ], + "machine_max_jerk_y": [ + "9" + ], + "machine_max_jerk_z": [ + "0.5" + ], + "gcode_flavor": "klipper", + "before_layer_change_gcode": "TIMELAPSE_TAKE_FRAME\nG92 E0", + "change_filament_gcode": "M600", + "manual_filament_change": "1", + "machine_start_gcode": "M140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\nSTART_PRINT\nG90\nG1 X0 F6000\nG1 Y20\nG1 Z0.200 F600\nG1 Y-4 F6000\nM400\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nM109 S[nozzle_temperature_initial_layer];wait for extruder temp\nG91\nM83\nG1 E-0.100 Z5 F600\nG1 X{print_bed_max[1] / 3} F6000\nG1 Z-4.800 F600\nG1 X{print_bed_max[1] / 6} E{print_bed_max[1] / 6 * 0.24} F3000\nG1 X{print_bed_max[1] / 6} E{print_bed_max[1] / 6 * 0.16} F3000\nG1 Y1 E0.16 F3000\nG1 X-{print_bed_max[1] / 6} E{print_bed_max[1] / 6 * 0.16} F3000\nG1 X-{print_bed_max[1] / 6} E{print_bed_max[1] / 6 * 0.24} F3000\nG1 Y1 E0.24 F3000\nG1 X{print_bed_max[1] / 6} E{print_bed_max[1] / 6 * 0.24} F3000\nG1 X{print_bed_max[1] / 6} E{print_bed_max[1] / 6 * 0.16} F3000\nG1 E-0.200 Z1 F600\nM400\n\n", + "machine_end_gcode": "END_PRINT\n", + "machine_pause_gcode": "PAUSE", + "default_filament_profile": [ + "Sovol SV06 ACE PLA" + ] +} diff --git a/resources/profiles/Sovol/machine/Sovol SV06 ACE 0.4 nozzle.json b/resources/profiles/Sovol/machine/Sovol SV06 ACE 0.4 nozzle.json index 88ded0ba49..643b58f997 100644 --- a/resources/profiles/Sovol/machine/Sovol SV06 ACE 0.4 nozzle.json +++ b/resources/profiles/Sovol/machine/Sovol SV06 ACE 0.4 nozzle.json @@ -6,7 +6,8 @@ "instantiation": "true", "inherits": "fdm_machine_common", "printer_model": "Sovol SV06 ACE", - "default_print_profile": "0.20mm Standard @Sovol SV06 ACE - official", + "default_print_profile": "0.20mm Standard @Sovol SV06 ACE", + "printer_variant": "0.4", "nozzle_diameter": [ "0.4" ], @@ -25,6 +26,10 @@ "retraction_length": [ "0.8" ], + "retraction_minimum_travel": [ + "1" + ], + "support_multi_bed_types": "1", "machine_max_acceleration_e": [ "5000", "5000" @@ -70,7 +75,6 @@ "10" ], "z_hop": [ - "0.4", "0.4" ], "z_hop_types":[ @@ -93,16 +97,10 @@ "40" ], "wipe_distance": [ - "2", - "2" + "2" ], - "retract_minimum_trave": [ - "1", - "1" - ], "retract_before_wipe": [ - "100", - "100" + "100%" ], "retract_length_toolchange": [ "2", @@ -122,8 +120,11 @@ ], "gcode_flavor": "klipper", "before_layer_change_gcode": "TIMELAPSE_TAKE_FRAME\nG92 E0", - "machine_start_gcode": "START_PRINT\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\nG90\nG1 X0 F6000\nG1 Y20\nG1 Z0.400 F600\nG1 Y-4 F6000\nM400\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nM109 S[nozzle_temperature_initial_layer];wait for extruder temp\nG91\nM83\nG1 E-0.200 Z5 F600\nG1 X{print_bed_max[1] / 3} F6000\nG1 Z-4.800 F600\nG1 X{print_bed_max[1] / 6} E{print_bed_max[1] / 6 * 0.24} F3000\nG1 X{print_bed_max[1] / 6} E{print_bed_max[1] / 6 * 0.16} F3000\nG1 Y1 E0.16 F3000\nG1 X-{print_bed_max[1] / 6} E{print_bed_max[1] / 6 * 0.16} F3000\nG1 X-{print_bed_max[1] / 6} E{print_bed_max[1] / 6 * 0.24} F3000\nG1 Y1 E0.24 F3000\nG1 X{print_bed_max[1] / 6} E{print_bed_max[1] / 6 * 0.24} F3000\nG1 X{print_bed_max[1] / 6} E{print_bed_max[1] / 6 * 0.16} F3000\nG1 E-0.200 Z1 F600\nM400\n\n", + "change_filament_gcode": "M600", + "manual_filament_change": "1", + "machine_start_gcode": "M140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\nSTART_PRINT\nG90\nG1 X0 F6000\nG1 Y20\nG1 Z0.400 F600\nG1 Y-4 F6000\nM400\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nM109 S[nozzle_temperature_initial_layer];wait for extruder temp\nG91\nM83\nG1 E-0.200 Z5 F600\nG1 X{print_bed_max[1] / 3} F6000\nG1 Z-4.800 F600\nG1 X{print_bed_max[1] / 6} E{print_bed_max[1] / 6 * 0.24} F3000\nG1 X{print_bed_max[1] / 6} E{print_bed_max[1] / 6 * 0.16} F3000\nG1 Y1 E0.16 F3000\nG1 X-{print_bed_max[1] / 6} E{print_bed_max[1] / 6 * 0.16} F3000\nG1 X-{print_bed_max[1] / 6} E{print_bed_max[1] / 6 * 0.24} F3000\nG1 Y1 E0.24 F3000\nG1 X{print_bed_max[1] / 6} E{print_bed_max[1] / 6 * 0.24} F3000\nG1 X{print_bed_max[1] / 6} E{print_bed_max[1] / 6 * 0.16} F3000\nG1 E-0.200 Z1 F600\nM400\n\n", "machine_end_gcode": "END_PRINT\n", + "machine_pause_gcode": "PAUSE", "default_filament_profile": [ "Sovol SV06 ACE PLA" ] diff --git a/resources/profiles/Sovol/machine/Sovol SV06 ACE 0.6 nozzle.json b/resources/profiles/Sovol/machine/Sovol SV06 ACE 0.6 nozzle.json new file mode 100644 index 0000000000..93dbd7ca62 --- /dev/null +++ b/resources/profiles/Sovol/machine/Sovol SV06 ACE 0.6 nozzle.json @@ -0,0 +1,131 @@ +{ + "type": "machine", + "setting_id": "GM001", + "name": "Sovol SV06 ACE 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_machine_common", + "printer_model": "Sovol SV06 ACE", + "default_print_profile": "0.30mm Standard @Sovol SV06 ACE 0.6 nozzle", + "printer_variant": "0.6", + "nozzle_diameter": [ + "0.6" + ], + "printable_area": [ + "0x0", + "220x0", + "220x220", + "0x220" + ], + "printable_height": "250", + "thumbnails": [ + "96x96", + "160x160" + ], + "thumbnails_format": "PNG", + "retraction_length": [ + "1.0" + ], + "retraction_minimum_travel": [ + "1.5" + ], + "support_multi_bed_types": "1", + "machine_max_acceleration_e": [ + "5000", + "5000" + ], + "machine_max_acceleration_extruding": [ + "20000", + "20000" + ], + "machine_max_acceleration_retracting": [ + "5000", + "5000" + ], + "machine_max_acceleration_travel": [ + "20000", + "20000" + ], + "machine_max_acceleration_x": [ + "20000", + "20000" + ], + "machine_max_acceleration_y": [ + "20000", + "20000" + ], + "machine_max_acceleration_z": [ + "500", + "500" + ], + "machine_max_speed_x": [ + "600", + "600" + ], + "machine_max_speed_y": [ + "600", + "600" + ], + "machine_max_speed_e": [ + "60", + "60" + ], + "machine_max_speed_z": [ + "10", + "10" + ], + "z_hop": [ + "0.6" + ], + "z_hop_types":[ + "Auto Lift" + ], + "max_layer_height": [ + "0.48", + "0.48" + ], + "retract_lift_below": [ + "248", + "248" + ], + "retraction_speed": [ + "45", + "45" + ], + "deretraction_speed": [ + "45", + "45" + ], + "wipe_distance": [ + "3" + ], + "retract_before_wipe": [ + "100%" + ], + "retract_length_toolchange": [ + "2", + "2" + ], + "machine_max_jerk_e": [ + "2.5" + ], + "machine_max_jerk_x": [ + "9" + ], + "machine_max_jerk_y": [ + "9" + ], + "machine_max_jerk_z": [ + "0.5" + ], + "gcode_flavor": "klipper", + "before_layer_change_gcode": "TIMELAPSE_TAKE_FRAME\nG92 E0", + "change_filament_gcode": "M600", + "manual_filament_change": "1", + "machine_start_gcode": "M140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\nSTART_PRINT\nG90\nG1 X0 F6000\nG1 Y20\nG1 Z0.600 F600\nG1 Y-4 F6000\nM400\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nM109 S[nozzle_temperature_initial_layer];wait for extruder temp\nG91\nM83\nG1 E-0.300 Z5 F600\nG1 X{print_bed_max[1] / 3} F6000\nG1 Z-4.800 F600\nG1 X{print_bed_max[1] / 6} E{print_bed_max[1] / 6 * 0.24} F3000\nG1 X{print_bed_max[1] / 6} E{print_bed_max[1] / 6 * 0.16} F3000\nG1 Y1 E0.16 F3000\nG1 X-{print_bed_max[1] / 6} E{print_bed_max[1] / 6 * 0.16} F3000\nG1 X-{print_bed_max[1] / 6} E{print_bed_max[1] / 6 * 0.24} F3000\nG1 Y1 E0.24 F3000\nG1 X{print_bed_max[1] / 6} E{print_bed_max[1] / 6 * 0.24} F3000\nG1 X{print_bed_max[1] / 6} E{print_bed_max[1] / 6 * 0.16} F3000\nG1 E-0.200 Z1 F600\nM400\n\n", + "machine_end_gcode": "END_PRINT\n", + "machine_pause_gcode": "PAUSE", + "default_filament_profile": [ + "Sovol SV06 ACE PLA" + ] +} diff --git a/resources/profiles/Sovol/machine/Sovol SV06 ACE 0.8 nozzle.json b/resources/profiles/Sovol/machine/Sovol SV06 ACE 0.8 nozzle.json new file mode 100644 index 0000000000..a506cf465a --- /dev/null +++ b/resources/profiles/Sovol/machine/Sovol SV06 ACE 0.8 nozzle.json @@ -0,0 +1,131 @@ +{ + "type": "machine", + "setting_id": "GM001", + "name": "Sovol SV06 ACE 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_machine_common", + "printer_model": "Sovol SV06 ACE", + "default_print_profile": "0.40mm Standard @Sovol SV06 ACE 0.8 nozzle", + "printer_variant": "0.8", + "nozzle_diameter": [ + "0.8" + ], + "printable_area": [ + "0x0", + "220x0", + "220x220", + "0x220" + ], + "printable_height": "250", + "thumbnails": [ + "96x96", + "160x160" + ], + "thumbnails_format": "PNG", + "retraction_length": [ + "1.2" + ], + "retraction_minimum_travel": [ + "2" + ], + "support_multi_bed_types": "1", + "machine_max_acceleration_e": [ + "5000", + "5000" + ], + "machine_max_acceleration_extruding": [ + "20000", + "20000" + ], + "machine_max_acceleration_retracting": [ + "5000", + "5000" + ], + "machine_max_acceleration_travel": [ + "20000", + "20000" + ], + "machine_max_acceleration_x": [ + "20000", + "20000" + ], + "machine_max_acceleration_y": [ + "20000", + "20000" + ], + "machine_max_acceleration_z": [ + "500", + "500" + ], + "machine_max_speed_x": [ + "600", + "600" + ], + "machine_max_speed_y": [ + "600", + "600" + ], + "machine_max_speed_e": [ + "70", + "70" + ], + "machine_max_speed_z": [ + "10", + "10" + ], + "z_hop": [ + "0.8" + ], + "z_hop_types":[ + "Auto Lift" + ], + "max_layer_height": [ + "0.64", + "0.64" + ], + "retract_lift_below": [ + "248", + "248" + ], + "retraction_speed": [ + "45", + "45" + ], + "deretraction_speed": [ + "45", + "45" + ], + "wipe_distance": [ + "4" + ], + "retract_before_wipe": [ + "100%" + ], + "retract_length_toolchange": [ + "2", + "2" + ], + "machine_max_jerk_e": [ + "2.5" + ], + "machine_max_jerk_x": [ + "9" + ], + "machine_max_jerk_y": [ + "9" + ], + "machine_max_jerk_z": [ + "0.5" + ], + "gcode_flavor": "klipper", + "before_layer_change_gcode": "TIMELAPSE_TAKE_FRAME\nG92 E0", + "change_filament_gcode": "M600", + "manual_filament_change": "1", + "machine_start_gcode": "M140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\nSTART_PRINT\nG90\nG1 X0 F6000\nG1 Y20\nG1 Z0.800 F600\nG1 Y-4 F6000\nM400\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nM109 S[nozzle_temperature_initial_layer];wait for extruder temp\nG91\nM83\nG1 E-0.300 Z5 F600\nG1 X{print_bed_max[1] / 3} F6000\nG1 Z-4.800 F600\nG1 X{print_bed_max[1] / 6} E{print_bed_max[1] / 6 * 0.24} F3000\nG1 X{print_bed_max[1] / 6} E{print_bed_max[1] / 6 * 0.16} F3000\nG1 Y1 E0.16 F3000\nG1 X-{print_bed_max[1] / 6} E{print_bed_max[1] / 6 * 0.16} F3000\nG1 X-{print_bed_max[1] / 6} E{print_bed_max[1] / 6 * 0.24} F3000\nG1 Y1 E0.24 F3000\nG1 X{print_bed_max[1] / 6} E{print_bed_max[1] / 6 * 0.24} F3000\nG1 X{print_bed_max[1] / 6} E{print_bed_max[1] / 6 * 0.16} F3000\nG1 E-0.200 Z1 F600\nM400\n\n", + "machine_end_gcode": "END_PRINT\n", + "machine_pause_gcode": "PAUSE", + "default_filament_profile": [ + "Sovol SV06 ACE PLA" + ] +} diff --git a/resources/profiles/Sovol/machine/Sovol SV06 ACE.json b/resources/profiles/Sovol/machine/Sovol SV06 ACE.json index be25128279..fe567994d4 100644 --- a/resources/profiles/Sovol/machine/Sovol SV06 ACE.json +++ b/resources/profiles/Sovol/machine/Sovol SV06 ACE.json @@ -2,7 +2,7 @@ "type": "machine_model", "name": "Sovol SV06 ACE", "model_id": "Sovol-SV06-ACE", - "nozzle_diameter": "0.4", + "nozzle_diameter": "0.2;0.4;0.6;0.8", "machine_tech": "FFF", "family": "Sovol", "bed_model": "sovol_sv06_ace_buildplate_model.stl", diff --git a/resources/profiles/Sovol/machine/Sovol SV06 Plus ACE 0.4 nozzle.json b/resources/profiles/Sovol/machine/Sovol SV06 Plus ACE 0.4 nozzle.json index 2223662fc5..9ca24182ed 100644 --- a/resources/profiles/Sovol/machine/Sovol SV06 Plus ACE 0.4 nozzle.json +++ b/resources/profiles/Sovol/machine/Sovol SV06 Plus ACE 0.4 nozzle.json @@ -6,7 +6,7 @@ "instantiation": "true", "inherits": "fdm_machine_common", "printer_model": "Sovol SV06 Plus ACE", - "default_print_profile": "0.20mm Standard @Sovol SV06 Plus ACE - official", + "default_print_profile": "0.20mm Standard @Sovol SV06 Plus ACE", "nozzle_diameter": [ "0.4" ], @@ -73,7 +73,6 @@ "10" ], "z_hop": [ - "0.4", "0.4" ], "z_hop_types":[ @@ -96,16 +95,10 @@ "40" ], "wipe_distance": [ - "2", - "2" + "2" ], - "retract_minimum_trave": [ - "1", - "1" - ], "retract_before_wipe": [ - "100", - "100" + "100%" ], "retract_length_toolchange": [ "2", @@ -125,8 +118,11 @@ ], "gcode_flavor": "klipper", "before_layer_change_gcode": "TIMELAPSE_TAKE_FRAME\nG92 E0", + "change_filament_gcode": "M600", + "manual_filament_change": "1", "machine_start_gcode": "M140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\nSTART_PRINT\nG28\nG90\nG1 X0 F6000\nG1 Y-4\nG1 Z0.200 F600\nM400\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nM109 S[nozzle_temperature_initial_layer];wait for extruder temp\nG91\nM83\nG1 E-0.200 Z5 F600\nG1 X{print_bed_max[1] / 3} F6000\nG1 Z-5 F600\nG1 X{print_bed_max[1] / 6} E{print_bed_max[1] / 6 * 0.24} F3000\nG1 X{print_bed_max[1] / 6} E{print_bed_max[1] / 6 * 0.16} F3000\nG1 Y1 E0.16 F3000\nG1 X-{print_bed_max[1] / 6} E{print_bed_max[1] / 6 * 0.16} F3000\nG1 X-{print_bed_max[1] / 6} E{print_bed_max[1] / 6 * 0.24} F3000\nG1 Y1 E0.24 F3000\nG1 X{print_bed_max[1] / 6} E{print_bed_max[1] / 6 * 0.24} F3000\nG1 X{print_bed_max[1] / 6} E{print_bed_max[1] / 6 * 0.16} F3000\nG1 E-0.200 Z1 F600\nM400\n\n", "machine_end_gcode": "END_PRINT\n", + "machine_pause_gcode": "PAUSE", "default_filament_profile": [ "Sovol SV06 Plus ACE PLA" ] diff --git a/resources/profiles/Sovol/machine/fdm_machine_common.json b/resources/profiles/Sovol/machine/fdm_machine_common.json index 1afd9b9991..7507574169 100644 --- a/resources/profiles/Sovol/machine/fdm_machine_common.json +++ b/resources/profiles/Sovol/machine/fdm_machine_common.json @@ -88,7 +88,7 @@ "1" ], "retraction_length": [ - "5" + "1" ], "retract_length_toolchange": [ "1" diff --git a/resources/profiles/Sovol/process/0.08mm High Quality @Sovol SV06 ACE 0.4 nozzle.json b/resources/profiles/Sovol/process/0.08mm High Quality @Sovol SV06 ACE 0.4 nozzle.json new file mode 100644 index 0000000000..d3afff8cf3 --- /dev/null +++ b/resources/profiles/Sovol/process/0.08mm High Quality @Sovol SV06 ACE 0.4 nozzle.json @@ -0,0 +1,126 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.08mm High Quality @Sovol SV06 ACE", + "from": "system", + "inherits": "fdm_process_common", + "instantiation": "true", + "adaptive_layer_height": "1", + "reduce_crossing_wall": "0", + "layer_height": "0.08", + "max_travel_detour_distance": "0", + "bottom_surface_pattern": "monotonic", + "bottom_shell_layers": "3", + "bottom_shell_thickness": "0", + "bridge_flow": "1", + "bridge_speed": "50", + "internal_bridge_speed": "50", + "brim_type": "auto_brim", + "brim_width": "5", + "brim_object_gap": "0", + "compatible_printers_condition": "", + "print_sequence": "by layer", + "default_acceleration": "10000", + "outer_wall_acceleration": "6000", + "top_surface_acceleration": "6000", + "bridge_no_support": "0", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.1", + "enable_arc_fitting": "0", + "precise_outer_wall": "1", + "outer_wall_line_width": "0.4", + "wall_infill_order": "inner wall/outer wall/infill", + "wall_sequence": "inner wall/outer wall", + "line_width": "0.4", + "infill_direction": "45", + "sparse_infill_density": "10%", + "sparse_infill_pattern": "crosshatch", + "initial_layer_acceleration": "2000", + "travel_acceleration": "10000", + "inner_wall_acceleration": "8000", + "bridge_acceleration": "100%", + "initial_layer_line_width": "0.5", + "initial_layer_print_height": "0.12", + "infill_combination": "0", + "sparse_infill_line_width": "0.45", + "infill_wall_overlap": "30%", + "interface_shells": "0", + "ironing_flow": "15%", + "ironing_spacing": "0.25", + "ironing_speed": "15", + "ironing_type": "no ironing", + "reduce_infill_retraction": "1", + "filename_format": "{printer_model}_{input_filename_base}_{filament_type[0]}_{layer_height}_{print_time}.gcode", + "detect_overhang_wall": "1", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "50", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "20", + "inner_wall_line_width": "0.42", + "wall_loops": "2", + "print_settings_id": "", + "raft_layers": "0", + "seam_position": "aligned", + "seam_gap": "5%", + "skirt_distance": "5", + "skirt_height": "1", + "skirt_loops": "0", + "skirt_speed": "30", + "minimum_sparse_infill_area": "10", + "internal_solid_infill_line_width": "0.4", + "spiral_mode": "0", + "standby_temperature_delta": "-5", + "enable_support": "0", + "resolution": "0.012", + "support_type": "normal(auto)", + "support_style": "snug", + "support_on_build_plate_only": "0", + "support_top_z_distance": "0.2", + "support_filament": "0", + "support_line_width": "0.45", + "support_interface_loop_pattern": "0", + "support_interface_filament": "0", + "support_interface_top_layers": "2", + "support_interface_bottom_layers": "-1", + "support_interface_spacing": "0.5", + "support_interface_speed": "100%", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_speed": "80", + "support_threshold_angle": "20", + "support_object_xy_distance": "0.35", + "tree_support_branch_angle": "40", + "tree_support_wall_count": "0", + "detect_thin_wall": "0", + "top_surface_pattern": "monotonicline", + "top_surface_line_width": "0.38", + "top_shell_layers": "3", + "top_shell_thickness": "0.8", + "initial_layer_speed": "20", + "initial_layer_infill_speed": "40", + "initial_layer_travel_speed": "60%", + "slow_down_layers": "3", + "outer_wall_speed": "150", + "inner_wall_speed": "200", + "internal_solid_infill_speed": "140", + "top_surface_speed": "150", + "gap_infill_speed": "200", + "sparse_infill_speed": "250", + "travel_speed": "600", + "enable_prime_tower": "0", + "wipe_tower_no_sparse_layers": "0", + "prime_tower_width": "60", + "xy_hole_compensation": "0", + "xy_contour_compensation": "0", + "wall_generator": "classic", + "top_solid_infill_flow_ratio": "0.8", + "only_one_wall_top": "1", + "minimum_sparse_infill_threshold": "0", + "gcode_label_objects": "1", + "exclude_object": "1", + "accel_to_decel_enable": "0", + "thick_bridges": "1", + "compatible_printers": [ + "Sovol SV06 ACE 0.4 nozzle" + ] +} diff --git a/resources/profiles/Sovol/process/0.12mm Quality @Sovol SV06 ACE 0.4 nozzle.json b/resources/profiles/Sovol/process/0.12mm Quality @Sovol SV06 ACE 0.4 nozzle.json new file mode 100644 index 0000000000..dcfff90f5b --- /dev/null +++ b/resources/profiles/Sovol/process/0.12mm Quality @Sovol SV06 ACE 0.4 nozzle.json @@ -0,0 +1,126 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.12mm Quality @Sovol SV06 ACE", + "from": "system", + "inherits": "fdm_process_common", + "instantiation": "true", + "adaptive_layer_height": "1", + "reduce_crossing_wall": "0", + "layer_height": "0.12", + "max_travel_detour_distance": "0", + "bottom_surface_pattern": "monotonic", + "bottom_shell_layers": "3", + "bottom_shell_thickness": "0", + "bridge_flow": "1", + "bridge_speed": "50", + "internal_bridge_speed": "50", + "brim_type": "auto_brim", + "brim_width": "5", + "brim_object_gap": "0", + "compatible_printers_condition": "", + "print_sequence": "by layer", + "default_acceleration": "10000", + "outer_wall_acceleration": "6000", + "top_surface_acceleration": "6000", + "bridge_no_support": "0", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.1", + "enable_arc_fitting": "0", + "precise_outer_wall": "1", + "outer_wall_line_width": "0.4", + "wall_infill_order": "inner wall/outer wall/infill", + "wall_sequence": "inner wall/outer wall", + "line_width": "0.4", + "infill_direction": "45", + "sparse_infill_density": "10%", + "sparse_infill_pattern": "crosshatch", + "initial_layer_acceleration": "2000", + "travel_acceleration": "10000", + "inner_wall_acceleration": "8000", + "bridge_acceleration": "100%", + "initial_layer_line_width": "0.5", + "initial_layer_print_height": "0.16", + "infill_combination": "0", + "sparse_infill_line_width": "0.45", + "infill_wall_overlap": "30%", + "interface_shells": "0", + "ironing_flow": "15%", + "ironing_spacing": "0.25", + "ironing_speed": "15", + "ironing_type": "no ironing", + "reduce_infill_retraction": "1", + "filename_format": "{printer_model}_{input_filename_base}_{filament_type[0]}_{layer_height}_{print_time}.gcode", + "detect_overhang_wall": "1", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "50", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "20", + "inner_wall_line_width": "0.42", + "wall_loops": "2", + "print_settings_id": "", + "raft_layers": "0", + "seam_position": "aligned", + "seam_gap": "5%", + "skirt_distance": "5", + "skirt_height": "1", + "skirt_loops": "0", + "skirt_speed": "30", + "minimum_sparse_infill_area": "10", + "internal_solid_infill_line_width": "0.4", + "spiral_mode": "0", + "standby_temperature_delta": "-5", + "enable_support": "0", + "resolution": "0.012", + "support_type": "normal(auto)", + "support_style": "snug", + "support_on_build_plate_only": "0", + "support_top_z_distance": "0.2", + "support_filament": "0", + "support_line_width": "0.45", + "support_interface_loop_pattern": "0", + "support_interface_filament": "0", + "support_interface_top_layers": "2", + "support_interface_bottom_layers": "-1", + "support_interface_spacing": "0.5", + "support_interface_speed": "100%", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_speed": "80", + "support_threshold_angle": "20", + "support_object_xy_distance": "0.35", + "tree_support_branch_angle": "40", + "tree_support_wall_count": "0", + "detect_thin_wall": "0", + "top_surface_pattern": "monotonicline", + "top_surface_line_width": "0.38", + "top_shell_layers": "3", + "top_shell_thickness": "0.8", + "initial_layer_speed": "25", + "initial_layer_infill_speed": "40", + "initial_layer_travel_speed": "60%", + "slow_down_layers": "3", + "outer_wall_speed": "180", + "inner_wall_speed": "240", + "internal_solid_infill_speed": "160", + "top_surface_speed": "160", + "gap_infill_speed": "200", + "sparse_infill_speed": "280", + "travel_speed": "600", + "enable_prime_tower": "0", + "wipe_tower_no_sparse_layers": "0", + "prime_tower_width": "60", + "xy_hole_compensation": "0", + "xy_contour_compensation": "0", + "wall_generator": "classic", + "top_solid_infill_flow_ratio": "0.8", + "only_one_wall_top": "1", + "minimum_sparse_infill_threshold": "0", + "gcode_label_objects": "1", + "exclude_object": "1", + "accel_to_decel_enable": "0", + "thick_bridges": "1", + "compatible_printers": [ + "Sovol SV06 ACE 0.4 nozzle" + ] +} diff --git a/resources/profiles/Sovol/process/0.12mm Standard @Sovol SV06 ACE 0.2 nozzle.json b/resources/profiles/Sovol/process/0.12mm Standard @Sovol SV06 ACE 0.2 nozzle.json new file mode 100644 index 0000000000..999e183e97 --- /dev/null +++ b/resources/profiles/Sovol/process/0.12mm Standard @Sovol SV06 ACE 0.2 nozzle.json @@ -0,0 +1,126 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.12mm Standard @Sovol SV06 ACE 0.2 nozzle", + "from": "system", + "inherits": "fdm_process_common", + "instantiation": "true", + "adaptive_layer_height": "1", + "reduce_crossing_wall": "0", + "layer_height": "0.12", + "max_travel_detour_distance": "0", + "bottom_surface_pattern": "monotonic", + "bottom_shell_layers": "5", + "bottom_shell_thickness": "0", + "bridge_flow": "1", + "bridge_speed": "50", + "internal_bridge_speed": "50", + "brim_type": "auto_brim", + "brim_width": "5", + "brim_object_gap": "0", + "compatible_printers_condition": "", + "print_sequence": "by layer", + "default_acceleration": "10000", + "outer_wall_acceleration": "3000", + "top_surface_acceleration": "3000", + "bridge_no_support": "0", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.05", + "enable_arc_fitting": "0", + "precise_outer_wall": "1", + "outer_wall_line_width": "0.2", + "wall_infill_order": "inner wall/outer wall/infill", + "wall_sequence": "inner wall/outer wall", + "line_width": "0.2", + "infill_direction": "45", + "sparse_infill_density": "10%", + "sparse_infill_pattern": "crosshatch", + "initial_layer_acceleration": "1000", + "travel_acceleration": "10000", + "inner_wall_acceleration": "4000", + "bridge_acceleration": "100%", + "initial_layer_line_width": "0.25", + "initial_layer_print_height": "0.16", + "infill_combination": "0", + "sparse_infill_line_width": "0.25", + "infill_wall_overlap": "30%", + "interface_shells": "0", + "ironing_flow": "15%", + "ironing_spacing": "0.25", + "ironing_speed": "10", + "ironing_type": "no ironing", + "reduce_infill_retraction": "1", + "filename_format": "{printer_model}_{input_filename_base}_{filament_type[0]}_{layer_height}_{print_time}.gcode", + "detect_overhang_wall": "1", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "50", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "20", + "inner_wall_line_width": "0.22", + "wall_loops": "3", + "print_settings_id": "", + "raft_layers": "0", + "seam_position": "aligned", + "seam_gap": "5%", + "skirt_distance": "5", + "skirt_height": "1", + "skirt_loops": "0", + "skirt_speed": "30", + "minimum_sparse_infill_area": "10", + "internal_solid_infill_line_width": "0.2", + "spiral_mode": "0", + "standby_temperature_delta": "-5", + "enable_support": "0", + "resolution": "0.012", + "support_type": "normal(auto)", + "support_style": "snug", + "support_on_build_plate_only": "0", + "support_top_z_distance": "0.2", + "support_filament": "0", + "support_line_width": "0.45", + "support_interface_loop_pattern": "0", + "support_interface_filament": "0", + "support_interface_top_layers": "2", + "support_interface_bottom_layers": "-1", + "support_interface_spacing": "0.5", + "support_interface_speed": "100%", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_speed": "80", + "support_threshold_angle": "20", + "support_object_xy_distance": "0.35", + "tree_support_branch_angle": "40", + "tree_support_wall_count": "0", + "detect_thin_wall": "0", + "top_surface_pattern": "monotonicline", + "top_surface_line_width": "0.2", + "top_shell_layers": "5", + "top_shell_thickness": "0.8", + "initial_layer_speed": "20", + "initial_layer_infill_speed": "25", + "initial_layer_travel_speed": "60%", + "slow_down_layers": "3", + "outer_wall_speed": "150", + "inner_wall_speed": "200", + "internal_solid_infill_speed": "140", + "top_surface_speed": "150", + "gap_infill_speed": "200", + "sparse_infill_speed": "250", + "travel_speed": "600", + "enable_prime_tower": "0", + "wipe_tower_no_sparse_layers": "0", + "prime_tower_width": "60", + "xy_hole_compensation": "0", + "xy_contour_compensation": "0", + "wall_generator": "classic", + "top_solid_infill_flow_ratio": "0.8", + "only_one_wall_top": "1", + "minimum_sparse_infill_threshold": "0", + "gcode_label_objects": "1", + "exclude_object": "1", + "accel_to_decel_enable": "0", + "thick_bridges": "1", + "compatible_printers": [ + "Sovol SV06 ACE 0.2 nozzle" + ] +} diff --git a/resources/profiles/Sovol/process/0.20mm Standard @Sovol SV06 ACE - official.json b/resources/profiles/Sovol/process/0.20mm Standard @Sovol SV06 ACE.json similarity index 94% rename from resources/profiles/Sovol/process/0.20mm Standard @Sovol SV06 ACE - official.json rename to resources/profiles/Sovol/process/0.20mm Standard @Sovol SV06 ACE.json index 6bfdda69af..bcf4911d39 100644 --- a/resources/profiles/Sovol/process/0.20mm Standard @Sovol SV06 ACE - official.json +++ b/resources/profiles/Sovol/process/0.20mm Standard @Sovol SV06 ACE.json @@ -1,7 +1,7 @@ { "type": "process", "setting_id": "GP004", - "name": "0.20mm Standard @Sovol SV06 ACE - official", + "name": "0.20mm Standard @Sovol SV06 ACE", "from": "system", "inherits": "fdm_process_common", "instantiation": "true", @@ -27,13 +27,14 @@ "draft_shield": "disabled", "elefant_foot_compensation": "0.1", "enable_arc_fitting": "0", + "precise_outer_wall": "1", "outer_wall_line_width": "0.4", "wall_infill_order": "inner wall/outer wall/infill", - "wall_sequence": "inner-outer-inner wall", + "wall_sequence": "inner wall/outer wall", "line_width": "0.4", "infill_direction": "45", "sparse_infill_density": "10%", - "sparse_infill_pattern": "grid", + "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "2000", "travel_acceleration": "10000", "inner_wall_acceleration": "8000", @@ -61,9 +62,9 @@ "raft_layers": "0", "seam_position": "aligned", "seam_gap": "5%", - "skirt_distance": "0", + "skirt_distance": "5", "skirt_height": "1", - "skirt_loops": "1", + "skirt_loops": "0", "skirt_speed": "30", "minimum_sparse_infill_area": "10", "internal_solid_infill_line_width": "0.4", diff --git a/resources/profiles/Sovol/process/0.20mm Standard @Sovol SV06 Plus ACE - official.json b/resources/profiles/Sovol/process/0.20mm Standard @Sovol SV06 Plus ACE.json similarity index 94% rename from resources/profiles/Sovol/process/0.20mm Standard @Sovol SV06 Plus ACE - official.json rename to resources/profiles/Sovol/process/0.20mm Standard @Sovol SV06 Plus ACE.json index 671915ee36..98f8337726 100644 --- a/resources/profiles/Sovol/process/0.20mm Standard @Sovol SV06 Plus ACE - official.json +++ b/resources/profiles/Sovol/process/0.20mm Standard @Sovol SV06 Plus ACE.json @@ -1,7 +1,7 @@ { "type": "process", "setting_id": "GP004", - "name": "0.20mm Standard @Sovol SV06 Plus ACE - official", + "name": "0.20mm Standard @Sovol SV06 Plus ACE", "from": "system", "inherits": "fdm_process_common", "instantiation": "true", @@ -27,13 +27,14 @@ "draft_shield": "disabled", "elefant_foot_compensation": "0.1", "enable_arc_fitting": "0", + "precise_outer_wall": "1", "outer_wall_line_width": "0.4", "wall_infill_order": "inner wall/outer wall/infill", - "wall_sequence": "inner-outer-inner wall", + "wall_sequence": "inner wall/outer wall", "line_width": "0.4", "infill_direction": "45", "sparse_infill_density": "10%", - "sparse_infill_pattern": "grid", + "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "2000", "travel_acceleration": "8000", "inner_wall_acceleration": "6000", @@ -61,9 +62,9 @@ "raft_layers": "0", "seam_position": "aligned", "seam_gap": "5%", - "skirt_distance": "0", + "skirt_distance": "5", "skirt_height": "1", - "skirt_loops": "1", + "skirt_loops": "0", "skirt_speed": "50", "minimum_sparse_infill_area": "10", "internal_solid_infill_line_width": "0.4", diff --git a/resources/profiles/Sovol/process/0.28mm Fast @Sovol SV06 ACE 0.4 nozzle.json b/resources/profiles/Sovol/process/0.28mm Fast @Sovol SV06 ACE 0.4 nozzle.json new file mode 100644 index 0000000000..93d3f5810b --- /dev/null +++ b/resources/profiles/Sovol/process/0.28mm Fast @Sovol SV06 ACE 0.4 nozzle.json @@ -0,0 +1,126 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.28mm Fast @Sovol SV06 ACE", + "from": "system", + "inherits": "fdm_process_common", + "instantiation": "true", + "adaptive_layer_height": "1", + "reduce_crossing_wall": "0", + "layer_height": "0.28", + "max_travel_detour_distance": "0", + "bottom_surface_pattern": "monotonic", + "bottom_shell_layers": "3", + "bottom_shell_thickness": "0", + "bridge_flow": "1", + "bridge_speed": "50", + "internal_bridge_speed": "50", + "brim_type": "auto_brim", + "brim_width": "5", + "brim_object_gap": "0", + "compatible_printers_condition": "", + "print_sequence": "by layer", + "default_acceleration": "10000", + "outer_wall_acceleration": "6000", + "top_surface_acceleration": "6000", + "bridge_no_support": "0", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.1", + "enable_arc_fitting": "0", + "precise_outer_wall": "1", + "outer_wall_line_width": "0.4", + "wall_infill_order": "inner wall/outer wall/infill", + "wall_sequence": "inner wall/outer wall", + "line_width": "0.4", + "infill_direction": "45", + "sparse_infill_density": "10%", + "sparse_infill_pattern": "crosshatch", + "initial_layer_acceleration": "2000", + "travel_acceleration": "10000", + "inner_wall_acceleration": "8000", + "bridge_acceleration": "100%", + "initial_layer_line_width": "0.5", + "initial_layer_print_height": "0.32", + "infill_combination": "0", + "sparse_infill_line_width": "0.45", + "infill_wall_overlap": "30%", + "interface_shells": "0", + "ironing_flow": "15%", + "ironing_spacing": "0.25", + "ironing_speed": "15", + "ironing_type": "no ironing", + "reduce_infill_retraction": "1", + "filename_format": "{printer_model}_{input_filename_base}_{filament_type[0]}_{layer_height}_{print_time}.gcode", + "detect_overhang_wall": "1", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "50", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "20", + "inner_wall_line_width": "0.42", + "wall_loops": "2", + "print_settings_id": "", + "raft_layers": "0", + "seam_position": "aligned", + "seam_gap": "5%", + "skirt_distance": "5", + "skirt_height": "1", + "skirt_loops": "0", + "skirt_speed": "30", + "minimum_sparse_infill_area": "10", + "internal_solid_infill_line_width": "0.4", + "spiral_mode": "0", + "standby_temperature_delta": "-5", + "enable_support": "0", + "resolution": "0.012", + "support_type": "normal(auto)", + "support_style": "snug", + "support_on_build_plate_only": "0", + "support_top_z_distance": "0.2", + "support_filament": "0", + "support_line_width": "0.45", + "support_interface_loop_pattern": "0", + "support_interface_filament": "0", + "support_interface_top_layers": "2", + "support_interface_bottom_layers": "-1", + "support_interface_spacing": "0.5", + "support_interface_speed": "100%", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_speed": "80", + "support_threshold_angle": "20", + "support_object_xy_distance": "0.35", + "tree_support_branch_angle": "40", + "tree_support_wall_count": "0", + "detect_thin_wall": "0", + "top_surface_pattern": "monotonicline", + "top_surface_line_width": "0.38", + "top_shell_layers": "3", + "top_shell_thickness": "0.8", + "initial_layer_speed": "35", + "initial_layer_infill_speed": "40", + "initial_layer_travel_speed": "60%", + "slow_down_layers": "3", + "outer_wall_speed": "220", + "inner_wall_speed": "300", + "internal_solid_infill_speed": "240", + "top_surface_speed": "200", + "gap_infill_speed": "200", + "sparse_infill_speed": "320", + "travel_speed": "600", + "enable_prime_tower": "0", + "wipe_tower_no_sparse_layers": "0", + "prime_tower_width": "60", + "xy_hole_compensation": "0", + "xy_contour_compensation": "0", + "wall_generator": "classic", + "top_solid_infill_flow_ratio": "0.8", + "only_one_wall_top": "1", + "minimum_sparse_infill_threshold": "0", + "gcode_label_objects": "1", + "exclude_object": "1", + "accel_to_decel_enable": "0", + "thick_bridges": "1", + "compatible_printers": [ + "Sovol SV06 ACE 0.4 nozzle" + ] +} diff --git a/resources/profiles/Sovol/process/0.30mm Standard @Sovol SV06 ACE 0.6 nozzle.json b/resources/profiles/Sovol/process/0.30mm Standard @Sovol SV06 ACE 0.6 nozzle.json new file mode 100644 index 0000000000..6ee3bf467d --- /dev/null +++ b/resources/profiles/Sovol/process/0.30mm Standard @Sovol SV06 ACE 0.6 nozzle.json @@ -0,0 +1,126 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.30mm Standard @Sovol SV06 ACE 0.6 nozzle", + "from": "system", + "inherits": "fdm_process_common", + "instantiation": "true", + "adaptive_layer_height": "1", + "reduce_crossing_wall": "0", + "layer_height": "0.30", + "max_travel_detour_distance": "0", + "bottom_surface_pattern": "monotonic", + "bottom_shell_layers": "3", + "bottom_shell_thickness": "0", + "bridge_flow": "1", + "bridge_speed": "50", + "internal_bridge_speed": "50", + "brim_type": "auto_brim", + "brim_width": "5", + "brim_object_gap": "0", + "compatible_printers_condition": "", + "print_sequence": "by layer", + "default_acceleration": "10000", + "outer_wall_acceleration": "7000", + "top_surface_acceleration": "7000", + "bridge_no_support": "0", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.15", + "enable_arc_fitting": "0", + "precise_outer_wall": "1", + "outer_wall_line_width": "0.6", + "wall_infill_order": "inner wall/outer wall/infill", + "wall_sequence": "inner wall/outer wall", + "line_width": "0.6", + "infill_direction": "45", + "sparse_infill_density": "10%", + "sparse_infill_pattern": "crosshatch", + "initial_layer_acceleration": "2500", + "travel_acceleration": "10000", + "inner_wall_acceleration": "9000", + "bridge_acceleration": "100%", + "initial_layer_line_width": "0.65", + "initial_layer_print_height": "0.35", + "infill_combination": "0", + "sparse_infill_line_width": "0.65", + "infill_wall_overlap": "30%", + "interface_shells": "0", + "ironing_flow": "15%", + "ironing_spacing": "0.25", + "ironing_speed": "20", + "ironing_type": "no ironing", + "reduce_infill_retraction": "1", + "filename_format": "{printer_model}_{input_filename_base}_{filament_type[0]}_{layer_height}_{print_time}.gcode", + "detect_overhang_wall": "1", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "50", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "20", + "inner_wall_line_width": "0.62", + "wall_loops": "2", + "print_settings_id": "", + "raft_layers": "0", + "seam_position": "aligned", + "seam_gap": "5%", + "skirt_distance": "5", + "skirt_height": "1", + "skirt_loops": "0", + "skirt_speed": "30", + "minimum_sparse_infill_area": "10", + "internal_solid_infill_line_width": "0.6", + "spiral_mode": "0", + "standby_temperature_delta": "-5", + "enable_support": "0", + "resolution": "0.012", + "support_type": "normal(auto)", + "support_style": "snug", + "support_on_build_plate_only": "0", + "support_top_z_distance": "0.2", + "support_filament": "0", + "support_line_width": "0.45", + "support_interface_loop_pattern": "0", + "support_interface_filament": "0", + "support_interface_top_layers": "2", + "support_interface_bottom_layers": "-1", + "support_interface_spacing": "0.5", + "support_interface_speed": "100%", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_speed": "80", + "support_threshold_angle": "20", + "support_object_xy_distance": "0.35", + "tree_support_branch_angle": "40", + "tree_support_wall_count": "0", + "detect_thin_wall": "0", + "top_surface_pattern": "monotonicline", + "top_surface_line_width": "0.58", + "top_shell_layers": "3", + "top_shell_thickness": "0.8", + "initial_layer_speed": "35", + "initial_layer_infill_speed": "45", + "initial_layer_travel_speed": "60%", + "slow_down_layers": "3", + "outer_wall_speed": "220", + "inner_wall_speed": "300", + "internal_solid_infill_speed": "240", + "top_surface_speed": "220", + "gap_infill_speed": "200", + "sparse_infill_speed": "320", + "travel_speed": "600", + "enable_prime_tower": "0", + "wipe_tower_no_sparse_layers": "0", + "prime_tower_width": "60", + "xy_hole_compensation": "0", + "xy_contour_compensation": "0", + "wall_generator": "classic", + "top_solid_infill_flow_ratio": "0.8", + "only_one_wall_top": "1", + "minimum_sparse_infill_threshold": "0", + "gcode_label_objects": "1", + "exclude_object": "1", + "accel_to_decel_enable": "0", + "thick_bridges": "1", + "compatible_printers": [ + "Sovol SV06 ACE 0.6 nozzle" + ] +} diff --git a/resources/profiles/Sovol/process/0.40mm Standard @Sovol SV06 ACE 0.8 nozzle.json b/resources/profiles/Sovol/process/0.40mm Standard @Sovol SV06 ACE 0.8 nozzle.json new file mode 100644 index 0000000000..9703776c7f --- /dev/null +++ b/resources/profiles/Sovol/process/0.40mm Standard @Sovol SV06 ACE 0.8 nozzle.json @@ -0,0 +1,126 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.40mm Standard @Sovol SV06 ACE 0.8 nozzle", + "from": "system", + "inherits": "fdm_process_common", + "instantiation": "true", + "adaptive_layer_height": "1", + "reduce_crossing_wall": "0", + "layer_height": "0.40", + "max_travel_detour_distance": "0", + "bottom_surface_pattern": "monotonic", + "bottom_shell_layers": "3", + "bottom_shell_thickness": "0", + "bridge_flow": "1", + "bridge_speed": "50", + "internal_bridge_speed": "50", + "brim_type": "auto_brim", + "brim_width": "5", + "brim_object_gap": "0", + "compatible_printers_condition": "", + "print_sequence": "by layer", + "default_acceleration": "10000", + "outer_wall_acceleration": "8000", + "top_surface_acceleration": "8000", + "bridge_no_support": "0", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.2", + "enable_arc_fitting": "0", + "precise_outer_wall": "1", + "outer_wall_line_width": "0.8", + "wall_infill_order": "inner wall/outer wall/infill", + "wall_sequence": "inner wall/outer wall", + "line_width": "0.8", + "infill_direction": "45", + "sparse_infill_density": "10%", + "sparse_infill_pattern": "crosshatch", + "initial_layer_acceleration": "3000", + "travel_acceleration": "10000", + "inner_wall_acceleration": "10000", + "bridge_acceleration": "100%", + "initial_layer_line_width": "0.85", + "initial_layer_print_height": "0.45", + "infill_combination": "0", + "sparse_infill_line_width": "0.85", + "infill_wall_overlap": "30%", + "interface_shells": "0", + "ironing_flow": "15%", + "ironing_spacing": "0.25", + "ironing_speed": "25", + "ironing_type": "no ironing", + "reduce_infill_retraction": "1", + "filename_format": "{printer_model}_{input_filename_base}_{filament_type[0]}_{layer_height}_{print_time}.gcode", + "detect_overhang_wall": "1", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "50", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "20", + "inner_wall_line_width": "0.82", + "wall_loops": "2", + "print_settings_id": "", + "raft_layers": "0", + "seam_position": "aligned", + "seam_gap": "5%", + "skirt_distance": "5", + "skirt_height": "1", + "skirt_loops": "0", + "skirt_speed": "30", + "minimum_sparse_infill_area": "10", + "internal_solid_infill_line_width": "0.8", + "spiral_mode": "0", + "standby_temperature_delta": "-5", + "enable_support": "0", + "resolution": "0.012", + "support_type": "normal(auto)", + "support_style": "snug", + "support_on_build_plate_only": "0", + "support_top_z_distance": "0.2", + "support_filament": "0", + "support_line_width": "0.45", + "support_interface_loop_pattern": "0", + "support_interface_filament": "0", + "support_interface_top_layers": "2", + "support_interface_bottom_layers": "-1", + "support_interface_spacing": "0.5", + "support_interface_speed": "100%", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_speed": "80", + "support_threshold_angle": "20", + "support_object_xy_distance": "0.35", + "tree_support_branch_angle": "40", + "tree_support_wall_count": "0", + "detect_thin_wall": "0", + "top_surface_pattern": "monotonicline", + "top_surface_line_width": "0.78", + "top_shell_layers": "3", + "top_shell_thickness": "0.8", + "initial_layer_speed": "40", + "initial_layer_infill_speed": "50", + "initial_layer_travel_speed": "60%", + "slow_down_layers": "3", + "outer_wall_speed": "240", + "inner_wall_speed": "320", + "internal_solid_infill_speed": "260", + "top_surface_speed": "240", + "gap_infill_speed": "200", + "sparse_infill_speed": "350", + "travel_speed": "600", + "enable_prime_tower": "0", + "wipe_tower_no_sparse_layers": "0", + "prime_tower_width": "60", + "xy_hole_compensation": "0", + "xy_contour_compensation": "0", + "wall_generator": "classic", + "top_solid_infill_flow_ratio": "0.8", + "only_one_wall_top": "1", + "minimum_sparse_infill_threshold": "0", + "gcode_label_objects": "1", + "exclude_object": "1", + "accel_to_decel_enable": "0", + "thick_bridges": "1", + "compatible_printers": [ + "Sovol SV06 ACE 0.8 nozzle" + ] +} diff --git a/resources/profiles/Sovol/process/fdm_process_common.json b/resources/profiles/Sovol/process/fdm_process_common.json index c5c2fd19e0..20fb349177 100644 --- a/resources/profiles/Sovol/process/fdm_process_common.json +++ b/resources/profiles/Sovol/process/fdm_process_common.json @@ -7,7 +7,7 @@ "reduce_crossing_wall": "0", "bridge_flow": "0.95", "bridge_speed": "25", - "internal_bridge_speed" : "150", + "internal_bridge_speed" : "150%", "brim_width": "5", "compatible_printers": [], "print_sequence": "by layer", diff --git a/resources/profiles/Tronxy.json b/resources/profiles/Tronxy.json index d05050bd52..a6453b78b5 100644 --- a/resources/profiles/Tronxy.json +++ b/resources/profiles/Tronxy.json @@ -39,86 +39,9 @@ "sub_path": "process/0.28mm Extra Draft @Tronxy.json" } ], - "filament_list": [ - { - "name": "fdm_filament_common", - "sub_path": "filament/fdm_filament_common.json" - }, - { - "name": "fdm_filament_pla", - "sub_path": "filament/fdm_filament_pla.json" - }, - { - "name": "fdm_filament_tpu", - "sub_path": "filament/fdm_filament_tpu.json" - }, - { - "name": "fdm_filament_pet", - "sub_path": "filament/fdm_filament_pet.json" - }, - { - "name": "fdm_filament_abs", - "sub_path": "filament/fdm_filament_abs.json" - }, - { - "name": "fdm_filament_pc", - "sub_path": "filament/fdm_filament_pc.json" - }, - { - "name": "fdm_filament_asa", - "sub_path": "filament/fdm_filament_asa.json" - }, - { - "name": "fdm_filament_pva", - "sub_path": "filament/fdm_filament_pva.json" - }, - { - "name": "fdm_filament_pa", - "sub_path": "filament/fdm_filament_pa.json" - }, - { - "name": "Tronxy Generic PLA", - "sub_path": "filament/Tronxy Generic PLA.json" - }, - { - "name": "Tronxy Generic PLA-CF", - "sub_path": "filament/Tronxy Generic PLA-CF.json" - }, - { - "name": "Tronxy Generic PETG", - "sub_path": "filament/Tronxy Generic PETG.json" - }, - { - "name": "Tronxy Generic ABS", - "sub_path": "filament/Tronxy Generic ABS.json" - }, - { - "name": "Tronxy Generic TPU", - "sub_path": "filament/Tronxy Generic TPU.json" - }, - { - "name": "Tronxy Generic ASA", - "sub_path": "filament/Tronxy Generic ASA.json" - }, - { - "name": "Tronxy Generic PC", - "sub_path": "filament/Tronxy Generic PC.json" - }, - { - "name": "Tronxy Generic PVA", - "sub_path": "filament/Tronxy Generic PVA.json" - }, - { - "name": "Tronxy Generic PA", - "sub_path": "filament/Tronxy Generic PA.json" - }, - { - "name": "Tronxy Generic PA-CF", - "sub_path": "filament/Tronxy Generic PA-CF.json" - } - ], + "filament_list": [], "machine_list": [ - { + { "name": "fdm_machine_common", "sub_path": "machine/fdm_machine_common.json" }, @@ -127,4 +50,4 @@ "sub_path": "machine/Tronxy X5SA 400 0.4 nozzle.json" } ] -} +} \ No newline at end of file diff --git a/resources/profiles/Tronxy/filament/Tronxy Generic ABS.json b/resources/profiles/Tronxy/filament/Tronxy Generic ABS.json deleted file mode 100644 index d2990aef41..0000000000 --- a/resources/profiles/Tronxy/filament/Tronxy Generic ABS.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFB99", - "setting_id": "GFSB99_00", - "name": "Tronxy Generic ABS", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_abs", - "filament_flow_ratio": [ - "0.926" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "compatible_printers": [ - "Tronxy X5SA 400 0.4 nozzle" - ] -} diff --git a/resources/profiles/Tronxy/filament/Tronxy Generic ASA.json b/resources/profiles/Tronxy/filament/Tronxy Generic ASA.json deleted file mode 100644 index 20b428f59e..0000000000 --- a/resources/profiles/Tronxy/filament/Tronxy Generic ASA.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFB98", - "setting_id": "GFSB98_00", - "name": "Tronxy Generic ASA", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_asa", - "filament_flow_ratio": [ - "0.93" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "compatible_printers": [ - "Tronxy X5SA 400 0.4 nozzle" - ] -} diff --git a/resources/profiles/Tronxy/filament/Tronxy Generic PA-CF.json b/resources/profiles/Tronxy/filament/Tronxy Generic PA-CF.json deleted file mode 100644 index f5f0c23e79..0000000000 --- a/resources/profiles/Tronxy/filament/Tronxy Generic PA-CF.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFN98", - "setting_id": "GFSN98", - "name": "Tronxy Generic PA-CF", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pa", - "filament_type": [ - "PA-CF" - ], - "nozzle_temperature_initial_layer": [ - "280" - ], - "nozzle_temperature": [ - "280" - ], - "filament_max_volumetric_speed": [ - "8" - ], - "compatible_printers": [ - "Tronxy X5SA 400 0.4 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/Tronxy/filament/Tronxy Generic PA.json b/resources/profiles/Tronxy/filament/Tronxy Generic PA.json deleted file mode 100644 index 4c3c2366dc..0000000000 --- a/resources/profiles/Tronxy/filament/Tronxy Generic PA.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFN99", - "setting_id": "GFSN99", - "name": "Tronxy Generic PA", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pa", - "nozzle_temperature_initial_layer": [ - "280" - ], - "nozzle_temperature": [ - "280" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "compatible_printers": [ - "Tronxy X5SA 400 0.4 nozzle" - ] -} diff --git a/resources/profiles/Tronxy/filament/Tronxy Generic PC.json b/resources/profiles/Tronxy/filament/Tronxy Generic PC.json deleted file mode 100644 index f25d3df6dd..0000000000 --- a/resources/profiles/Tronxy/filament/Tronxy Generic PC.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFC99", - "setting_id": "GFSC99_00", - "name": "Tronxy Generic PC", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pc", - "filament_max_volumetric_speed": [ - "12" - ], - "filament_flow_ratio": [ - "0.94" - ], - "compatible_printers": [ - "Tronxy X5SA 400 0.4 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/Tronxy/filament/Tronxy Generic PETG.json b/resources/profiles/Tronxy/filament/Tronxy Generic PETG.json deleted file mode 100644 index 5d6ba76eae..0000000000 --- a/resources/profiles/Tronxy/filament/Tronxy Generic PETG.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFG99", - "setting_id": "GFSG99", - "name": "Tronxy Generic PETG", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pet", - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_cooling_layer_time": [ - "30" - ], - "overhang_fan_speed": [ - "90" - ], - "overhang_fan_threshold": [ - "25%" - ], - "fan_max_speed": [ - "90" - ], - "fan_min_speed": [ - "40" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "8" - ], - "filament_flow_ratio": [ - "0.95" - ], - "filament_max_volumetric_speed": [ - "10" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ], - "compatible_printers": [ - "Tronxy X5SA 400 0.4 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/Tronxy/filament/Tronxy Generic PLA-CF.json b/resources/profiles/Tronxy/filament/Tronxy Generic PLA-CF.json deleted file mode 100644 index 7c32b57175..0000000000 --- a/resources/profiles/Tronxy/filament/Tronxy Generic PLA-CF.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFL98", - "setting_id": "GFSL9800", - "name": "Tronxy Generic PLA-CF", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pla", - "filament_flow_ratio": [ - "0.95" - ], - "filament_type": [ - "PLA-CF" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "slow_down_layer_time": [ - "7" - ], - "compatible_printers": [ - "Tronxy X5SA 400 0.4 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/Tronxy/filament/Tronxy Generic PLA.json b/resources/profiles/Tronxy/filament/Tronxy Generic PLA.json deleted file mode 100644 index 1e2f25ca73..0000000000 --- a/resources/profiles/Tronxy/filament/Tronxy Generic PLA.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFL99", - "setting_id": "GFSL99", - "name": "Tronxy Generic PLA", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pla", - "filament_flow_ratio": [ - "0.98" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "slow_down_layer_time": [ - "8" - ], - "compatible_printers": [ - "Tronxy X5SA 400 0.4 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/Tronxy/filament/Tronxy Generic PVA.json b/resources/profiles/Tronxy/filament/Tronxy Generic PVA.json deleted file mode 100644 index f2c98acdbe..0000000000 --- a/resources/profiles/Tronxy/filament/Tronxy Generic PVA.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFS99", - "setting_id": "GFSS99", - "name": "Tronxy Generic PVA", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pva", - "filament_flow_ratio": [ - "0.95" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "slow_down_layer_time": [ - "7" - ], - "slow_down_min_speed": [ - "10" - ], - "compatible_printers": [ - "Tronxy X5SA 400 0.4 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/Tronxy/filament/Tronxy Generic TPU.json b/resources/profiles/Tronxy/filament/Tronxy Generic TPU.json deleted file mode 100644 index 5c5cfd5d66..0000000000 --- a/resources/profiles/Tronxy/filament/Tronxy Generic TPU.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFU99", - "setting_id": "GFSU99", - "name": "Tronxy Generic TPU", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_tpu", - "filament_max_volumetric_speed": [ - "3.2" - ], - "compatible_printers": [ - "Tronxy X5SA 400 0.4 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/Tronxy/filament/fdm_filament_abs.json b/resources/profiles/Tronxy/filament/fdm_filament_abs.json deleted file mode 100644 index b9d4eeda31..0000000000 --- a/resources/profiles/Tronxy/filament/fdm_filament_abs.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_abs", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "105" - ], - "eng_plate_temp" : [ - "105" - ], - "hot_plate_temp" : [ - "105" - ], - "textured_plate_temp" : [ - "105" - ], - "cool_plate_temp_initial_layer" : [ - "105" - ], - "eng_plate_temp_initial_layer" : [ - "105" - ], - "hot_plate_temp_initial_layer" : [ - "105" - ], - "textured_plate_temp_initial_layer" : [ - "105" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "30" - ], - "filament_max_volumetric_speed": [ - "28.6" - ], - "filament_type": [ - "ABS" - ], - "filament_density": [ - "1.04" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "260" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "fan_max_speed": [ - "80" - ], - "fan_min_speed": [ - "10" - ], - "overhang_fan_threshold": [ - "25%" - ], - "overhang_fan_speed": [ - "80" - ], - "nozzle_temperature": [ - "260" - ], - "temperature_vitrification": [ - "110" - ], - "nozzle_temperature_range_low": [ - "240" - ], - "nozzle_temperature_range_high": [ - "270" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "3" - ] -} diff --git a/resources/profiles/Tronxy/filament/fdm_filament_asa.json b/resources/profiles/Tronxy/filament/fdm_filament_asa.json deleted file mode 100644 index 262c561bda..0000000000 --- a/resources/profiles/Tronxy/filament/fdm_filament_asa.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_asa", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "105" - ], - "eng_plate_temp" : [ - "105" - ], - "hot_plate_temp" : [ - "105" - ], - "textured_plate_temp" : [ - "105" - ], - "cool_plate_temp_initial_layer" : [ - "105" - ], - "eng_plate_temp_initial_layer" : [ - "105" - ], - "hot_plate_temp_initial_layer" : [ - "105" - ], - "textured_plate_temp_initial_layer" : [ - "105" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "35" - ], - "filament_max_volumetric_speed": [ - "28.6" - ], - "filament_type": [ - "ASA" - ], - "filament_density": [ - "1.04" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "260" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "fan_max_speed": [ - "80" - ], - "fan_min_speed": [ - "10" - ], - "overhang_fan_threshold": [ - "25%" - ], - "overhang_fan_speed": [ - "80" - ], - "nozzle_temperature": [ - "260" - ], - "temperature_vitrification": [ - "110" - ], - "nozzle_temperature_range_low": [ - "240" - ], - "nozzle_temperature_range_high": [ - "270" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "3" - ] -} diff --git a/resources/profiles/Tronxy/filament/fdm_filament_common.json b/resources/profiles/Tronxy/filament/fdm_filament_common.json deleted file mode 100644 index 22c32f8ca6..0000000000 --- a/resources/profiles/Tronxy/filament/fdm_filament_common.json +++ /dev/null @@ -1,141 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_common", - "from": "system", - "instantiation": "false", - "cool_plate_temp" : [ - "60" - ], - "eng_plate_temp" : [ - "60" - ], - "hot_plate_temp" : [ - "60" - ], - "textured_plate_temp" : [ - "60" - ], - "cool_plate_temp_initial_layer" : [ - "60" - ], - "eng_plate_temp_initial_layer" : [ - "60" - ], - "hot_plate_temp_initial_layer" : [ - "60" - ], - "textured_plate_temp_initial_layer" : [ - "60" - ], - "overhang_fan_threshold": [ - "95%" - ], - "overhang_fan_speed": [ - "100" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "filament_end_gcode": [ - "; filament end gcode \n" - ], - "filament_flow_ratio": [ - "1" - ], - "reduce_fan_stop_start_freq": [ - "0" - ], - "fan_cooling_layer_time": [ - "60" - ], - "filament_cost": [ - "0" - ], - "filament_density": [ - "0" - ], - "filament_deretraction_speed": [ - "nil" - ], - "filament_diameter": [ - "1.75" - ], - "filament_max_volumetric_speed": [ - "0" - ], - "filament_minimal_purge_on_wipe_tower": [ - "15" - ], - "filament_retraction_minimum_travel": [ - "nil" - ], - "filament_retract_before_wipe": [ - "nil" - ], - "filament_retract_when_changing_layer": [ - "nil" - ], - "filament_retraction_length": [ - "nil" - ], - "filament_z_hop": [ - "nil" - ], - "filament_retract_restart_extra": [ - "nil" - ], - "filament_retraction_speed": [ - "nil" - ], - "filament_settings_id": [ - "" - ], - "filament_soluble": [ - "0" - ], - "filament_type": [ - "PLA" - ], - "filament_vendor": [ - "Generic" - ], - "filament_wipe": [ - "nil" - ], - "filament_wipe_distance": [ - "nil" - ], - "bed_type": [ - "Cool Plate" - ], - "nozzle_temperature_initial_layer": [ - "200" - ], - "full_fan_speed_layer": [ - "0" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "35" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "8" - ], - "filament_start_gcode": [ - "; Filament gcode\n" - ], - "nozzle_temperature": [ - "200" - ], - "temperature_vitrification": [ - "100" - ] -} diff --git a/resources/profiles/Tronxy/filament/fdm_filament_pa.json b/resources/profiles/Tronxy/filament/fdm_filament_pa.json deleted file mode 100644 index 58f53cd451..0000000000 --- a/resources/profiles/Tronxy/filament/fdm_filament_pa.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pa", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "0" - ], - "eng_plate_temp" : [ - "100" - ], - "hot_plate_temp" : [ - "100" - ], - "textured_plate_temp" : [ - "100" - ], - "cool_plate_temp_initial_layer" : [ - "0" - ], - "eng_plate_temp_initial_layer" : [ - "100" - ], - "hot_plate_temp_initial_layer" : [ - "100" - ], - "textured_plate_temp_initial_layer" : [ - "100" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "4" - ], - "filament_max_volumetric_speed": [ - "8" - ], - "filament_type": [ - "PA" - ], - "filament_density": [ - "1.04" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "290" - ], - "reduce_fan_stop_start_freq": [ - "0" - ], - "fan_max_speed": [ - "60" - ], - "fan_min_speed": [ - "0" - ], - "overhang_fan_speed": [ - "30" - ], - "nozzle_temperature": [ - "290" - ], - "temperature_vitrification": [ - "108" - ], - "nozzle_temperature_range_low": [ - "270" - ], - "nozzle_temperature_range_high": [ - "300" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "2" - ] -} diff --git a/resources/profiles/Tronxy/filament/fdm_filament_pc.json b/resources/profiles/Tronxy/filament/fdm_filament_pc.json deleted file mode 100644 index cec8b89a38..0000000000 --- a/resources/profiles/Tronxy/filament/fdm_filament_pc.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pc", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "0" - ], - "eng_plate_temp" : [ - "110" - ], - "hot_plate_temp" : [ - "110" - ], - "textured_plate_temp" : [ - "110" - ], - "cool_plate_temp_initial_layer" : [ - "0" - ], - "eng_plate_temp_initial_layer" : [ - "110" - ], - "hot_plate_temp_initial_layer" : [ - "110" - ], - "textured_plate_temp_initial_layer" : [ - "110" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "30" - ], - "filament_max_volumetric_speed": [ - "23.2" - ], - "filament_type": [ - "PC" - ], - "filament_density": [ - "1.04" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "270" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "fan_max_speed": [ - "60" - ], - "fan_min_speed": [ - "10" - ], - "overhang_fan_threshold": [ - "25%" - ], - "overhang_fan_speed": [ - "60" - ], - "nozzle_temperature": [ - "280" - ], - "temperature_vitrification": [ - "140" - ], - "nozzle_temperature_range_low": [ - "260" - ], - "nozzle_temperature_range_high": [ - "280" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "2" - ] -} diff --git a/resources/profiles/Tronxy/filament/fdm_filament_pet.json b/resources/profiles/Tronxy/filament/fdm_filament_pet.json deleted file mode 100644 index bb2323e9c1..0000000000 --- a/resources/profiles/Tronxy/filament/fdm_filament_pet.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pet", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "60" - ], - "eng_plate_temp" : [ - "0" - ], - "hot_plate_temp" : [ - "80" - ], - "textured_plate_temp" : [ - "80" - ], - "cool_plate_temp_initial_layer" : [ - "60" - ], - "eng_plate_temp_initial_layer" : [ - "0" - ], - "hot_plate_temp_initial_layer" : [ - "80" - ], - "textured_plate_temp_initial_layer" : [ - "80" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "20" - ], - "filament_max_volumetric_speed": [ - "25" - ], - "filament_type": [ - "PETG" - ], - "filament_density": [ - "1.27" - ], - "filament_cost": [ - "30" - ], - "nozzle_temperature_initial_layer": [ - "255" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "20" - ], - "overhang_fan_speed": [ - "100" - ], - "nozzle_temperature": [ - "255" - ], - "temperature_vitrification": [ - "80" - ], - "nozzle_temperature_range_low": [ - "220" - ], - "nozzle_temperature_range_high": [ - "260" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ] -} diff --git a/resources/profiles/Tronxy/filament/fdm_filament_pla.json b/resources/profiles/Tronxy/filament/fdm_filament_pla.json deleted file mode 100644 index 82c6772f35..0000000000 --- a/resources/profiles/Tronxy/filament/fdm_filament_pla.json +++ /dev/null @@ -1,94 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pla", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "fan_cooling_layer_time": [ - "100" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "filament_type": [ - "PLA" - ], - "filament_density": [ - "1.24" - ], - "filament_cost": [ - "20" - ], - "cool_plate_temp" : [ - "60" - ], - "eng_plate_temp" : [ - "60" - ], - "hot_plate_temp" : [ - "60" - ], - "textured_plate_temp" : [ - "60" - ], - "cool_plate_temp_initial_layer" : [ - "60" - ], - "eng_plate_temp_initial_layer" : [ - "60" - ], - "hot_plate_temp_initial_layer" : [ - "60" - ], - "textured_plate_temp_initial_layer" : [ - "60" - ], - "nozzle_temperature_initial_layer": [ - "220" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "overhang_fan_speed": [ - "100" - ], - "overhang_fan_threshold": [ - "50%" - ], - "close_fan_the_first_x_layers": [ - "1" - ], - "nozzle_temperature": [ - "220" - ], - "temperature_vitrification": [ - "60" - ], - "nozzle_temperature_range_low": [ - "190" - ], - "nozzle_temperature_range_high": [ - "230" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "4" - ], - "additional_cooling_fan_speed": [ - "70" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ] -} diff --git a/resources/profiles/Tronxy/filament/fdm_filament_pva.json b/resources/profiles/Tronxy/filament/fdm_filament_pva.json deleted file mode 100644 index ebf25aa3ae..0000000000 --- a/resources/profiles/Tronxy/filament/fdm_filament_pva.json +++ /dev/null @@ -1,100 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pva", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "35" - ], - "eng_plate_temp" : [ - "0" - ], - "hot_plate_temp" : [ - "45" - ], - "textured_plate_temp" : [ - "45" - ], - "cool_plate_temp_initial_layer" : [ - "35" - ], - "eng_plate_temp_initial_layer" : [ - "0" - ], - "hot_plate_temp_initial_layer" : [ - "45" - ], - "textured_plate_temp_initial_layer" : [ - "45" - ], - "fan_cooling_layer_time": [ - "100" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "filament_soluble": [ - "1" - ], - "filament_is_support": [ - "1" - ], - "filament_type": [ - "PVA" - ], - "filament_density": [ - "1.24" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "220" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "overhang_fan_speed": [ - "100" - ], - "overhang_fan_threshold": [ - "50%" - ], - "close_fan_the_first_x_layers": [ - "1" - ], - "nozzle_temperature": [ - "220" - ], - "temperature_vitrification": [ - "50" - ], - "nozzle_temperature_range_low": [ - "190" - ], - "nozzle_temperature_range_high": [ - "250" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "4" - ], - "additional_cooling_fan_speed": [ - "70" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ] -} diff --git a/resources/profiles/Tronxy/filament/fdm_filament_tpu.json b/resources/profiles/Tronxy/filament/fdm_filament_tpu.json deleted file mode 100644 index d00b7dbcab..0000000000 --- a/resources/profiles/Tronxy/filament/fdm_filament_tpu.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_tpu", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "30" - ], - "eng_plate_temp" : [ - "30" - ], - "hot_plate_temp" : [ - "35" - ], - "textured_plate_temp" : [ - "35" - ], - "cool_plate_temp_initial_layer" : [ - "30" - ], - "eng_plate_temp_initial_layer" : [ - "30" - ], - "hot_plate_temp_initial_layer" : [ - "35" - ], - "textured_plate_temp_initial_layer" : [ - "35" - ], - "fan_cooling_layer_time": [ - "100" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "filament_type": [ - "TPU" - ], - "filament_density": [ - "1.24" - ], - "filament_cost": [ - "20" - ], - "filament_retraction_length": [ - "0.4" - ], - "nozzle_temperature_initial_layer": [ - "240" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "overhang_fan_speed": [ - "100" - ], - "additional_cooling_fan_speed": [ - "70" - ], - "close_fan_the_first_x_layers": [ - "1" - ], - "nozzle_temperature": [ - "240" - ], - "temperature_vitrification": [ - "60" - ], - "nozzle_temperature_range_low": [ - "200" - ], - "nozzle_temperature_range_high": [ - "250" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ] -} diff --git a/resources/profiles/Tronxy/machine/fdm_machine_common.json b/resources/profiles/Tronxy/machine/fdm_machine_common.json index 5eaa07e526..e638eac0b2 100644 --- a/resources/profiles/Tronxy/machine/fdm_machine_common.json +++ b/resources/profiles/Tronxy/machine/fdm_machine_common.json @@ -88,7 +88,7 @@ "1" ], "retraction_length": [ - "5" + "1" ], "retract_length_toolchange": [ "1" diff --git a/resources/profiles/TwoTrees.json b/resources/profiles/TwoTrees.json index edb1c2a202..7c0a79851a 100644 --- a/resources/profiles/TwoTrees.json +++ b/resources/profiles/TwoTrees.json @@ -76,82 +76,6 @@ } ], "filament_list": [ - { - "name": "fdm_filament_common", - "sub_path": "filament/fdm_filament_common.json" - }, - { - "name": "fdm_filament_pla", - "sub_path": "filament/fdm_filament_pla.json" - }, - { - "name": "fdm_filament_tpu", - "sub_path": "filament/fdm_filament_tpu.json" - }, - { - "name": "fdm_filament_pet", - "sub_path": "filament/fdm_filament_pet.json" - }, - { - "name": "fdm_filament_abs", - "sub_path": "filament/fdm_filament_abs.json" - }, - { - "name": "fdm_filament_pc", - "sub_path": "filament/fdm_filament_pc.json" - }, - { - "name": "fdm_filament_asa", - "sub_path": "filament/fdm_filament_asa.json" - }, - { - "name": "fdm_filament_pva", - "sub_path": "filament/fdm_filament_pva.json" - }, - { - "name": "fdm_filament_pa", - "sub_path": "filament/fdm_filament_pa.json" - }, - { - "name": "TwoTrees Generic PLA", - "sub_path": "filament/TwoTrees Generic PLA.json" - }, - { - "name": "TwoTrees Generic PLA-CF", - "sub_path": "filament/TwoTrees Generic PLA-CF.json" - }, - { - "name": "TwoTrees Generic PETG", - "sub_path": "filament/TwoTrees Generic PETG.json" - }, - { - "name": "TwoTrees Generic ABS", - "sub_path": "filament/TwoTrees Generic ABS.json" - }, - { - "name": "TwoTrees Generic TPU", - "sub_path": "filament/TwoTrees Generic TPU.json" - }, - { - "name": "TwoTrees Generic ASA", - "sub_path": "filament/TwoTrees Generic ASA.json" - }, - { - "name": "TwoTrees Generic PC", - "sub_path": "filament/TwoTrees Generic PC.json" - }, - { - "name": "TwoTrees Generic PVA", - "sub_path": "filament/TwoTrees Generic PVA.json" - }, - { - "name": "TwoTrees Generic PA", - "sub_path": "filament/TwoTrees Generic PA.json" - }, - { - "name": "TwoTrees Generic PA-CF", - "sub_path": "filament/TwoTrees Generic PA-CF.json" - }, { "name": "TwoTrees Generic 95A TPU @SK1", "sub_path": "filament/TwoTrees Generic 95A TPU @SK1.json" @@ -159,26 +83,6 @@ { "name": "TwoTrees Generic HS PLA @SK1", "sub_path": "filament/TwoTrees Generic HS PLA @SK1.json" - }, - { - "name": "TwoTrees Generic PETG @SK1", - "sub_path": "filament/TwoTrees Generic PETG @SK1.json" - }, - { - "name": "TwoTrees Generic PLA @SK1", - "sub_path": "filament/TwoTrees Generic PLA @SK1.json" - }, - { - "name": "TwoTrees Generic PLA-CF @SK1", - "sub_path": "filament/TwoTrees Generic PLA-CF @SK1.json" - }, - { - "name": "TwoTrees Generic PLA Matte @SK1", - "sub_path": "filament/TwoTrees Generic PLA Matte @SK1.json" - }, - { - "name": "TwoTrees Generic PLA Silk @SK1", - "sub_path": "filament/TwoTrees Generic PLA Silk @SK1.json" } ], "machine_list": [ diff --git a/resources/profiles/TwoTrees/SP5_texture.png b/resources/profiles/TwoTrees/SP5_texture.png index 2f782e6aac..c188bfd00a 100644 Binary files a/resources/profiles/TwoTrees/SP5_texture.png and b/resources/profiles/TwoTrees/SP5_texture.png differ diff --git a/resources/profiles/TwoTrees/filament/TwoTrees Generic ABS.json b/resources/profiles/TwoTrees/filament/TwoTrees Generic ABS.json deleted file mode 100644 index 0e70b4d01a..0000000000 --- a/resources/profiles/TwoTrees/filament/TwoTrees Generic ABS.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFB99", - "setting_id": "GFSB99_00", - "name": "TwoTrees Generic ABS", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_abs", - "filament_flow_ratio": [ - "0.926" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "compatible_printers": [ - "TwoTrees SP-5 Klipper 0.4 nozzle" - ] -} diff --git a/resources/profiles/TwoTrees/filament/TwoTrees Generic ASA.json b/resources/profiles/TwoTrees/filament/TwoTrees Generic ASA.json deleted file mode 100644 index b811099878..0000000000 --- a/resources/profiles/TwoTrees/filament/TwoTrees Generic ASA.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFB98", - "setting_id": "GFSB98_00", - "name": "TwoTrees Generic ASA", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_asa", - "filament_flow_ratio": [ - "0.93" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "compatible_printers": [ - "TwoTrees SP-5 Klipper 0.4 nozzle" - ] -} diff --git a/resources/profiles/TwoTrees/filament/TwoTrees Generic PA-CF.json b/resources/profiles/TwoTrees/filament/TwoTrees Generic PA-CF.json deleted file mode 100644 index 90c30088c4..0000000000 --- a/resources/profiles/TwoTrees/filament/TwoTrees Generic PA-CF.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFN98", - "setting_id": "GFSN98", - "name": "TwoTrees Generic PA-CF", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pa", - "filament_type": [ - "PA-CF" - ], - "nozzle_temperature_initial_layer": [ - "280" - ], - "nozzle_temperature": [ - "280" - ], - "filament_max_volumetric_speed": [ - "8" - ], - "compatible_printers": [ - "TwoTrees SP-5 Klipper 0.4 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/TwoTrees/filament/TwoTrees Generic PA.json b/resources/profiles/TwoTrees/filament/TwoTrees Generic PA.json deleted file mode 100644 index b2fd2a040a..0000000000 --- a/resources/profiles/TwoTrees/filament/TwoTrees Generic PA.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFN99", - "setting_id": "GFSN99", - "name": "TwoTrees Generic PA", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pa", - "nozzle_temperature_initial_layer": [ - "280" - ], - "nozzle_temperature": [ - "280" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "compatible_printers": [ - "TwoTrees SP-5 Klipper 0.4 nozzle" - ] -} diff --git a/resources/profiles/TwoTrees/filament/TwoTrees Generic PC.json b/resources/profiles/TwoTrees/filament/TwoTrees Generic PC.json deleted file mode 100644 index 6292b0c21d..0000000000 --- a/resources/profiles/TwoTrees/filament/TwoTrees Generic PC.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFC99", - "setting_id": "GFSC99_00", - "name": "TwoTrees Generic PC", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pc", - "filament_max_volumetric_speed": [ - "12" - ], - "filament_flow_ratio": [ - "0.94" - ], - "compatible_printers": [ - "TwoTrees SP-5 Klipper 0.4 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/TwoTrees/filament/TwoTrees Generic PLA @SK1.json b/resources/profiles/TwoTrees/filament/TwoTrees Generic PLA @SK1.json deleted file mode 100644 index e4eecb8502..0000000000 --- a/resources/profiles/TwoTrees/filament/TwoTrees Generic PLA @SK1.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "type": "filament", - "instantiation": "true", - "inherits": "fdm_filament_pla", - "filament_id": "GFL99", - "setting_id": "GFSL99", - "name": "TwoTrees Generic PLA @SK1", - "from": "system", - "compatible_printers": [ - "TwoTrees SK1 0.4 nozzle" - ], - "cool_plate_temp": "60", - "cool_plate_temp_initial_layer": "60", - "hot_plate_temp": "60", - "hot_plate_temp_initial_layer": "60", - "eng_plate_temp": "60", - "eng_plate_temp_initial_layer": "60", - "textured_plate_temp": "60", - "textured_plate_temp_initial_layer": "60", - "fan_cooling_layer_time": "60", - "fan_max_speed": "100", - "fan_min_speed": "35", - "filament_flow_ratio": [ - "0.98" - ], - "enable_pressure_advance": [ - "1" - ], - "pressure_advance": [ - "0.04" - ], - "filament_max_volumetric_speed": "15", - "filament_minimal_purge_on_wipe_tower": "15", - "full_fan_speed_layer": "0", - "nozzle_temperature": "220", - "nozzle_temperature_initial_layer": "220", - "reduce_fan_stop_start_freq": "0", - "slow_down_for_layer_cooling": "1", - "slow_down_layer_time": "5", - "slow_down_min_speed": "10" -} \ No newline at end of file diff --git a/resources/profiles/TwoTrees/filament/TwoTrees Generic PLA Silk @SK1.json b/resources/profiles/TwoTrees/filament/TwoTrees Generic PLA Silk @SK1.json deleted file mode 100644 index 6d078b7d48..0000000000 --- a/resources/profiles/TwoTrees/filament/TwoTrees Generic PLA Silk @SK1.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "filament", - "instantiation": "true", - "inherits": "TwoTrees Generic PLA @SK1", - "filament_id": "GFL99", - "setting_id": "GFSL99", - "name": "TwoTrees Generic PLA Silk @SK1", - "from": "system", - "compatible_printers": [ - "TwoTrees SK1 0.4 nozzle" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "slow_down_layer_time": [ - "8" - ] -} \ No newline at end of file diff --git a/resources/profiles/TwoTrees/filament/TwoTrees Generic PLA-CF @SK1.json b/resources/profiles/TwoTrees/filament/TwoTrees Generic PLA-CF @SK1.json deleted file mode 100644 index 67f8e32f08..0000000000 --- a/resources/profiles/TwoTrees/filament/TwoTrees Generic PLA-CF @SK1.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "type": "filament", - "instantiation": "true", - "inherits": "TwoTrees Generic PLA @SK1", - "filament_id": "GFL99", - "setting_id": "GFSL99", - "name": "TwoTrees Generic PLA-CF @SK1", - "from": "system", - "required_nozzle_HRC": [ - "40" - ], - "filament_type": [ - "PLA-CF" - ], - "compatible_printers": [ - "TwoTrees SK1 0.4 nozzle" - ], - "temperature_vitrification": [ - "55" - ], - "nozzle_temperature_range_low": [ - "190" - ], - "nozzle_temperature_range_high": [ - "240" - ], - "filament_flow_ratio": [ - "0.95" - ], - "filament_max_volumetric_speed": [ - "18" - ], - "slow_down_layer_time": [ - "7" - ] -} \ No newline at end of file diff --git a/resources/profiles/TwoTrees/filament/TwoTrees Generic PLA-CF.json b/resources/profiles/TwoTrees/filament/TwoTrees Generic PLA-CF.json deleted file mode 100644 index 653397306f..0000000000 --- a/resources/profiles/TwoTrees/filament/TwoTrees Generic PLA-CF.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFL98", - "setting_id": "GFSL9800", - "name": "TwoTrees Generic PLA-CF", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pla", - "filament_flow_ratio": [ - "0.95" - ], - "filament_type": [ - "PLA-CF" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "slow_down_layer_time": [ - "7" - ], - "compatible_printers": [ - "TwoTrees SP-5 Klipper 0.4 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/TwoTrees/filament/TwoTrees Generic PVA.json b/resources/profiles/TwoTrees/filament/TwoTrees Generic PVA.json deleted file mode 100644 index 6eba913d40..0000000000 --- a/resources/profiles/TwoTrees/filament/TwoTrees Generic PVA.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFS99", - "setting_id": "GFSS99", - "name": "TwoTrees Generic PVA", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pva", - "filament_flow_ratio": [ - "0.95" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "slow_down_layer_time": [ - "7" - ], - "slow_down_min_speed": [ - "10" - ], - "compatible_printers": [ - "TwoTrees SP-5 Klipper 0.4 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/TwoTrees/filament/TwoTrees Generic TPU.json b/resources/profiles/TwoTrees/filament/TwoTrees Generic TPU.json deleted file mode 100644 index ec59ddec73..0000000000 --- a/resources/profiles/TwoTrees/filament/TwoTrees Generic TPU.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFU99", - "setting_id": "GFSU99", - "name": "TwoTrees Generic TPU", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_tpu", - "filament_max_volumetric_speed": [ - "3.2" - ], - "compatible_printers": [ - "TwoTrees SP-5 Klipper 0.4 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/TwoTrees/filament/fdm_filament_abs.json b/resources/profiles/TwoTrees/filament/fdm_filament_abs.json deleted file mode 100644 index b9d4eeda31..0000000000 --- a/resources/profiles/TwoTrees/filament/fdm_filament_abs.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_abs", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "105" - ], - "eng_plate_temp" : [ - "105" - ], - "hot_plate_temp" : [ - "105" - ], - "textured_plate_temp" : [ - "105" - ], - "cool_plate_temp_initial_layer" : [ - "105" - ], - "eng_plate_temp_initial_layer" : [ - "105" - ], - "hot_plate_temp_initial_layer" : [ - "105" - ], - "textured_plate_temp_initial_layer" : [ - "105" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "30" - ], - "filament_max_volumetric_speed": [ - "28.6" - ], - "filament_type": [ - "ABS" - ], - "filament_density": [ - "1.04" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "260" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "fan_max_speed": [ - "80" - ], - "fan_min_speed": [ - "10" - ], - "overhang_fan_threshold": [ - "25%" - ], - "overhang_fan_speed": [ - "80" - ], - "nozzle_temperature": [ - "260" - ], - "temperature_vitrification": [ - "110" - ], - "nozzle_temperature_range_low": [ - "240" - ], - "nozzle_temperature_range_high": [ - "270" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "3" - ] -} diff --git a/resources/profiles/TwoTrees/filament/fdm_filament_asa.json b/resources/profiles/TwoTrees/filament/fdm_filament_asa.json deleted file mode 100644 index 262c561bda..0000000000 --- a/resources/profiles/TwoTrees/filament/fdm_filament_asa.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_asa", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "105" - ], - "eng_plate_temp" : [ - "105" - ], - "hot_plate_temp" : [ - "105" - ], - "textured_plate_temp" : [ - "105" - ], - "cool_plate_temp_initial_layer" : [ - "105" - ], - "eng_plate_temp_initial_layer" : [ - "105" - ], - "hot_plate_temp_initial_layer" : [ - "105" - ], - "textured_plate_temp_initial_layer" : [ - "105" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "35" - ], - "filament_max_volumetric_speed": [ - "28.6" - ], - "filament_type": [ - "ASA" - ], - "filament_density": [ - "1.04" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "260" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "fan_max_speed": [ - "80" - ], - "fan_min_speed": [ - "10" - ], - "overhang_fan_threshold": [ - "25%" - ], - "overhang_fan_speed": [ - "80" - ], - "nozzle_temperature": [ - "260" - ], - "temperature_vitrification": [ - "110" - ], - "nozzle_temperature_range_low": [ - "240" - ], - "nozzle_temperature_range_high": [ - "270" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "3" - ] -} diff --git a/resources/profiles/TwoTrees/filament/fdm_filament_common.json b/resources/profiles/TwoTrees/filament/fdm_filament_common.json deleted file mode 100644 index 22c32f8ca6..0000000000 --- a/resources/profiles/TwoTrees/filament/fdm_filament_common.json +++ /dev/null @@ -1,141 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_common", - "from": "system", - "instantiation": "false", - "cool_plate_temp" : [ - "60" - ], - "eng_plate_temp" : [ - "60" - ], - "hot_plate_temp" : [ - "60" - ], - "textured_plate_temp" : [ - "60" - ], - "cool_plate_temp_initial_layer" : [ - "60" - ], - "eng_plate_temp_initial_layer" : [ - "60" - ], - "hot_plate_temp_initial_layer" : [ - "60" - ], - "textured_plate_temp_initial_layer" : [ - "60" - ], - "overhang_fan_threshold": [ - "95%" - ], - "overhang_fan_speed": [ - "100" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "filament_end_gcode": [ - "; filament end gcode \n" - ], - "filament_flow_ratio": [ - "1" - ], - "reduce_fan_stop_start_freq": [ - "0" - ], - "fan_cooling_layer_time": [ - "60" - ], - "filament_cost": [ - "0" - ], - "filament_density": [ - "0" - ], - "filament_deretraction_speed": [ - "nil" - ], - "filament_diameter": [ - "1.75" - ], - "filament_max_volumetric_speed": [ - "0" - ], - "filament_minimal_purge_on_wipe_tower": [ - "15" - ], - "filament_retraction_minimum_travel": [ - "nil" - ], - "filament_retract_before_wipe": [ - "nil" - ], - "filament_retract_when_changing_layer": [ - "nil" - ], - "filament_retraction_length": [ - "nil" - ], - "filament_z_hop": [ - "nil" - ], - "filament_retract_restart_extra": [ - "nil" - ], - "filament_retraction_speed": [ - "nil" - ], - "filament_settings_id": [ - "" - ], - "filament_soluble": [ - "0" - ], - "filament_type": [ - "PLA" - ], - "filament_vendor": [ - "Generic" - ], - "filament_wipe": [ - "nil" - ], - "filament_wipe_distance": [ - "nil" - ], - "bed_type": [ - "Cool Plate" - ], - "nozzle_temperature_initial_layer": [ - "200" - ], - "full_fan_speed_layer": [ - "0" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "35" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "8" - ], - "filament_start_gcode": [ - "; Filament gcode\n" - ], - "nozzle_temperature": [ - "200" - ], - "temperature_vitrification": [ - "100" - ] -} diff --git a/resources/profiles/TwoTrees/filament/fdm_filament_pa.json b/resources/profiles/TwoTrees/filament/fdm_filament_pa.json deleted file mode 100644 index 58f53cd451..0000000000 --- a/resources/profiles/TwoTrees/filament/fdm_filament_pa.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pa", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "0" - ], - "eng_plate_temp" : [ - "100" - ], - "hot_plate_temp" : [ - "100" - ], - "textured_plate_temp" : [ - "100" - ], - "cool_plate_temp_initial_layer" : [ - "0" - ], - "eng_plate_temp_initial_layer" : [ - "100" - ], - "hot_plate_temp_initial_layer" : [ - "100" - ], - "textured_plate_temp_initial_layer" : [ - "100" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "4" - ], - "filament_max_volumetric_speed": [ - "8" - ], - "filament_type": [ - "PA" - ], - "filament_density": [ - "1.04" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "290" - ], - "reduce_fan_stop_start_freq": [ - "0" - ], - "fan_max_speed": [ - "60" - ], - "fan_min_speed": [ - "0" - ], - "overhang_fan_speed": [ - "30" - ], - "nozzle_temperature": [ - "290" - ], - "temperature_vitrification": [ - "108" - ], - "nozzle_temperature_range_low": [ - "270" - ], - "nozzle_temperature_range_high": [ - "300" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "2" - ] -} diff --git a/resources/profiles/TwoTrees/filament/fdm_filament_pc.json b/resources/profiles/TwoTrees/filament/fdm_filament_pc.json deleted file mode 100644 index cec8b89a38..0000000000 --- a/resources/profiles/TwoTrees/filament/fdm_filament_pc.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pc", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "0" - ], - "eng_plate_temp" : [ - "110" - ], - "hot_plate_temp" : [ - "110" - ], - "textured_plate_temp" : [ - "110" - ], - "cool_plate_temp_initial_layer" : [ - "0" - ], - "eng_plate_temp_initial_layer" : [ - "110" - ], - "hot_plate_temp_initial_layer" : [ - "110" - ], - "textured_plate_temp_initial_layer" : [ - "110" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "30" - ], - "filament_max_volumetric_speed": [ - "23.2" - ], - "filament_type": [ - "PC" - ], - "filament_density": [ - "1.04" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "270" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "fan_max_speed": [ - "60" - ], - "fan_min_speed": [ - "10" - ], - "overhang_fan_threshold": [ - "25%" - ], - "overhang_fan_speed": [ - "60" - ], - "nozzle_temperature": [ - "280" - ], - "temperature_vitrification": [ - "140" - ], - "nozzle_temperature_range_low": [ - "260" - ], - "nozzle_temperature_range_high": [ - "280" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "2" - ] -} diff --git a/resources/profiles/TwoTrees/filament/fdm_filament_pet.json b/resources/profiles/TwoTrees/filament/fdm_filament_pet.json deleted file mode 100644 index bb2323e9c1..0000000000 --- a/resources/profiles/TwoTrees/filament/fdm_filament_pet.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pet", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "60" - ], - "eng_plate_temp" : [ - "0" - ], - "hot_plate_temp" : [ - "80" - ], - "textured_plate_temp" : [ - "80" - ], - "cool_plate_temp_initial_layer" : [ - "60" - ], - "eng_plate_temp_initial_layer" : [ - "0" - ], - "hot_plate_temp_initial_layer" : [ - "80" - ], - "textured_plate_temp_initial_layer" : [ - "80" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "20" - ], - "filament_max_volumetric_speed": [ - "25" - ], - "filament_type": [ - "PETG" - ], - "filament_density": [ - "1.27" - ], - "filament_cost": [ - "30" - ], - "nozzle_temperature_initial_layer": [ - "255" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "20" - ], - "overhang_fan_speed": [ - "100" - ], - "nozzle_temperature": [ - "255" - ], - "temperature_vitrification": [ - "80" - ], - "nozzle_temperature_range_low": [ - "220" - ], - "nozzle_temperature_range_high": [ - "260" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ] -} diff --git a/resources/profiles/TwoTrees/filament/fdm_filament_pla.json b/resources/profiles/TwoTrees/filament/fdm_filament_pla.json deleted file mode 100644 index 82c6772f35..0000000000 --- a/resources/profiles/TwoTrees/filament/fdm_filament_pla.json +++ /dev/null @@ -1,94 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pla", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "fan_cooling_layer_time": [ - "100" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "filament_type": [ - "PLA" - ], - "filament_density": [ - "1.24" - ], - "filament_cost": [ - "20" - ], - "cool_plate_temp" : [ - "60" - ], - "eng_plate_temp" : [ - "60" - ], - "hot_plate_temp" : [ - "60" - ], - "textured_plate_temp" : [ - "60" - ], - "cool_plate_temp_initial_layer" : [ - "60" - ], - "eng_plate_temp_initial_layer" : [ - "60" - ], - "hot_plate_temp_initial_layer" : [ - "60" - ], - "textured_plate_temp_initial_layer" : [ - "60" - ], - "nozzle_temperature_initial_layer": [ - "220" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "overhang_fan_speed": [ - "100" - ], - "overhang_fan_threshold": [ - "50%" - ], - "close_fan_the_first_x_layers": [ - "1" - ], - "nozzle_temperature": [ - "220" - ], - "temperature_vitrification": [ - "60" - ], - "nozzle_temperature_range_low": [ - "190" - ], - "nozzle_temperature_range_high": [ - "230" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "4" - ], - "additional_cooling_fan_speed": [ - "70" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ] -} diff --git a/resources/profiles/TwoTrees/filament/fdm_filament_pva.json b/resources/profiles/TwoTrees/filament/fdm_filament_pva.json deleted file mode 100644 index ebf25aa3ae..0000000000 --- a/resources/profiles/TwoTrees/filament/fdm_filament_pva.json +++ /dev/null @@ -1,100 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pva", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "35" - ], - "eng_plate_temp" : [ - "0" - ], - "hot_plate_temp" : [ - "45" - ], - "textured_plate_temp" : [ - "45" - ], - "cool_plate_temp_initial_layer" : [ - "35" - ], - "eng_plate_temp_initial_layer" : [ - "0" - ], - "hot_plate_temp_initial_layer" : [ - "45" - ], - "textured_plate_temp_initial_layer" : [ - "45" - ], - "fan_cooling_layer_time": [ - "100" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "filament_soluble": [ - "1" - ], - "filament_is_support": [ - "1" - ], - "filament_type": [ - "PVA" - ], - "filament_density": [ - "1.24" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "220" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "overhang_fan_speed": [ - "100" - ], - "overhang_fan_threshold": [ - "50%" - ], - "close_fan_the_first_x_layers": [ - "1" - ], - "nozzle_temperature": [ - "220" - ], - "temperature_vitrification": [ - "50" - ], - "nozzle_temperature_range_low": [ - "190" - ], - "nozzle_temperature_range_high": [ - "250" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "4" - ], - "additional_cooling_fan_speed": [ - "70" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ] -} diff --git a/resources/profiles/TwoTrees/filament/fdm_filament_tpu.json b/resources/profiles/TwoTrees/filament/fdm_filament_tpu.json deleted file mode 100644 index d00b7dbcab..0000000000 --- a/resources/profiles/TwoTrees/filament/fdm_filament_tpu.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_tpu", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "30" - ], - "eng_plate_temp" : [ - "30" - ], - "hot_plate_temp" : [ - "35" - ], - "textured_plate_temp" : [ - "35" - ], - "cool_plate_temp_initial_layer" : [ - "30" - ], - "eng_plate_temp_initial_layer" : [ - "30" - ], - "hot_plate_temp_initial_layer" : [ - "35" - ], - "textured_plate_temp_initial_layer" : [ - "35" - ], - "fan_cooling_layer_time": [ - "100" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "filament_type": [ - "TPU" - ], - "filament_density": [ - "1.24" - ], - "filament_cost": [ - "20" - ], - "filament_retraction_length": [ - "0.4" - ], - "nozzle_temperature_initial_layer": [ - "240" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "overhang_fan_speed": [ - "100" - ], - "additional_cooling_fan_speed": [ - "70" - ], - "close_fan_the_first_x_layers": [ - "1" - ], - "nozzle_temperature": [ - "240" - ], - "temperature_vitrification": [ - "60" - ], - "nozzle_temperature_range_low": [ - "200" - ], - "nozzle_temperature_range_high": [ - "250" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ] -} diff --git a/resources/profiles/TwoTrees/machine/fdm_machine_common.json b/resources/profiles/TwoTrees/machine/fdm_machine_common.json index 5eaa07e526..e638eac0b2 100644 --- a/resources/profiles/TwoTrees/machine/fdm_machine_common.json +++ b/resources/profiles/TwoTrees/machine/fdm_machine_common.json @@ -88,7 +88,7 @@ "1" ], "retraction_length": [ - "5" + "1" ], "retract_length_toolchange": [ "1" diff --git a/resources/profiles/UltiMaker.json b/resources/profiles/UltiMaker.json index a0ca3239f5..4af98eeac4 100644 --- a/resources/profiles/UltiMaker.json +++ b/resources/profiles/UltiMaker.json @@ -28,36 +28,7 @@ "sub_path": "process/0.25mm Darft @UltiMaker 2.json" } ], - "filament_list": [ - { - "name": "fdm_filament_common", - "sub_path": "filament/fdm_filament_common.json" - }, - { - "name": "fdm_filament_abs", - "sub_path": "filament/fdm_filament_abs.json" - }, - { - "name": "fdm_filament_pet", - "sub_path": "filament/fdm_filament_pet.json" - }, - { - "name": "fdm_filament_pla", - "sub_path": "filament/fdm_filament_pla.json" - }, - { - "name": "UltiMaker Generic ABS", - "sub_path": "filament/UltiMaker Generic ABS.json" - }, - { - "name": "UltiMaker Generic PETG", - "sub_path": "filament/UltiMaker Generic PETG.json" - }, - { - "name": "UltiMaker Generic PLA", - "sub_path": "filament/UltiMaker Generic PLA.json" - } - ], + "filament_list": [], "machine_list": [ { "name": "fdm_machine_common", @@ -68,4 +39,4 @@ "sub_path": "machine/UltiMaker 2 0.4 nozzle.json" } ] -} +} \ No newline at end of file diff --git a/resources/profiles/UltiMaker/filament/UltiMaker Generic ABS.json b/resources/profiles/UltiMaker/filament/UltiMaker Generic ABS.json deleted file mode 100644 index a520c97e53..0000000000 --- a/resources/profiles/UltiMaker/filament/UltiMaker Generic ABS.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFB99", - "setting_id": "GFSA04", - "name": "UltiMaker Generic ABS", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_abs", - "filament_flow_ratio": [ - "0.94" - ], - "filament_max_volumetric_speed": [ - "4.5" - ], - "compatible_printers": [ - "UltiMaker 2 0.4 nozzle" - ] -} diff --git a/resources/profiles/UltiMaker/filament/fdm_filament_common.json b/resources/profiles/UltiMaker/filament/fdm_filament_common.json deleted file mode 100644 index 823c736e8a..0000000000 --- a/resources/profiles/UltiMaker/filament/fdm_filament_common.json +++ /dev/null @@ -1,144 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_common", - "from": "system", - "instantiation": "false", - "cool_plate_temp" : [ - "60" - ], - "eng_plate_temp" : [ - "60" - ], - "hot_plate_temp" : [ - "60" - ], - "textured_plate_temp" : [ - "60" - ], - "cool_plate_temp_initial_layer" : [ - "60" - ], - "eng_plate_temp_initial_layer" : [ - "60" - ], - "hot_plate_temp_initial_layer" : [ - "60" - ], - "textured_plate_temp_initial_layer" : [ - "60" - ], - "overhang_fan_threshold": [ - "95%" - ], - "overhang_fan_speed": [ - "100" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "filament_end_gcode": [ - "; filament end gcode \n" - ], - "filament_flow_ratio": [ - "1" - ], - "reduce_fan_stop_start_freq": [ - "0" - ], - "fan_cooling_layer_time": [ - "60" - ], - "filament_cost": [ - "0" - ], - "filament_density": [ - "0" - ], - "filament_deretraction_speed": [ - "nil" - ], - "filament_diameter": [ - "2.85" - ], - "filament_max_volumetric_speed": [ - "0" - ], - "filament_minimal_purge_on_wipe_tower": [ - "15" - ], - "filament_retraction_minimum_travel": [ - "nil" - ], - "filament_retract_before_wipe": [ - "nil" - ], - "filament_retract_when_changing_layer": [ - "nil" - ], - "filament_retraction_length": [ - "nil" - ], - "filament_z_hop": [ - "nil" - ], - "filament_z_hop_types": [ - "nil" - ], - "filament_retract_restart_extra": [ - "nil" - ], - "filament_retraction_speed": [ - "nil" - ], - "filament_settings_id": [ - "" - ], - "filament_soluble": [ - "0" - ], - "filament_type": [ - "PLA" - ], - "filament_vendor": [ - "Generic" - ], - "filament_wipe": [ - "nil" - ], - "filament_wipe_distance": [ - "nil" - ], - "bed_type": [ - "Cool Plate" - ], - "nozzle_temperature_initial_layer": [ - "200" - ], - "full_fan_speed_layer": [ - "0" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "35" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "8" - ], - "filament_start_gcode": [ - "; Filament gcode\n" - ], - "nozzle_temperature": [ - "200" - ], - "temperature_vitrification": [ - "100" - ] -} diff --git a/resources/profiles/UltiMaker/filament/fdm_filament_pet.json b/resources/profiles/UltiMaker/filament/fdm_filament_pet.json deleted file mode 100644 index 0c65253151..0000000000 --- a/resources/profiles/UltiMaker/filament/fdm_filament_pet.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pet", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "85" - ], - "eng_plate_temp" : [ - "85" - ], - "hot_plate_temp" : [ - "85" - ], - "textured_plate_temp" : [ - "85" - ], - "cool_plate_temp_initial_layer" : [ - "85" - ], - "eng_plate_temp_initial_layer" : [ - "85" - ], - "hot_plate_temp_initial_layer" : [ - "85" - ], - "textured_plate_temp_initial_layer" : [ - "85" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "15" - ], - "filament_max_volumetric_speed": [ - "0" - ], - "filament_type": [ - "PETG" - ], - "filament_density": [ - "1.27" - ], - "filament_cost": [ - "30" - ], - "nozzle_temperature_initial_layer": [ - "240" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "fan_max_speed": [ - "40" - ], - "fan_min_speed": [ - "20" - ], - "overhang_fan_speed": [ - "50" - ], - "nozzle_temperature": [ - "235" - ], - "temperature_vitrification": [ - "80" - ], - "nozzle_temperature_range_low": [ - "235" - ], - "nozzle_temperature_range_high": [ - "240" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ] -} diff --git a/resources/profiles/UltiMaker/filament/fdm_filament_pla.json b/resources/profiles/UltiMaker/filament/fdm_filament_pla.json deleted file mode 100644 index 1111af5b8d..0000000000 --- a/resources/profiles/UltiMaker/filament/fdm_filament_pla.json +++ /dev/null @@ -1,91 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pla", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "fan_cooling_layer_time": [ - "100" - ], - "filament_max_volumetric_speed": [ - "0" - ], - "filament_type": [ - "PLA" - ], - "filament_density": [ - "1.24" - ], - "filament_cost": [ - "20" - ], - "cool_plate_temp" : [ - "60" - ], - "eng_plate_temp" : [ - "60" - ], - "hot_plate_temp" : [ - "60" - ], - "textured_plate_temp" : [ - "60" - ], - "cool_plate_temp_initial_layer" : [ - "55" - ], - "eng_plate_temp_initial_layer" : [ - "55" - ], - "hot_plate_temp_initial_layer" : [ - "55" - ], - "textured_plate_temp_initial_layer" : [ - "55" - ], - "nozzle_temperature_initial_layer": [ - "205" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "overhang_fan_speed": [ - "100" - ], - "overhang_fan_threshold": [ - "50%" - ], - "close_fan_the_first_x_layers": [ - "1" - ], - "nozzle_temperature": [ - "210" - ], - "temperature_vitrification": [ - "60" - ], - "nozzle_temperature_range_low": [ - "190" - ], - "nozzle_temperature_range_high": [ - "210" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "4" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ] -} diff --git a/resources/profiles/Vivedino.json b/resources/profiles/Vivedino.json index 380263e590..287f6189f5 100644 --- a/resources/profiles/Vivedino.json +++ b/resources/profiles/Vivedino.json @@ -47,84 +47,7 @@ "sub_path": "process/0.28mm Extra Draft @Troodon2.json" } ], - "filament_list": [ - { - "name": "fdm_filament_common", - "sub_path": "filament/fdm_filament_common.json" - }, - { - "name": "fdm_filament_pla", - "sub_path": "filament/fdm_filament_pla.json" - }, - { - "name": "fdm_filament_tpu", - "sub_path": "filament/fdm_filament_tpu.json" - }, - { - "name": "fdm_filament_pet", - "sub_path": "filament/fdm_filament_pet.json" - }, - { - "name": "fdm_filament_abs", - "sub_path": "filament/fdm_filament_abs.json" - }, - { - "name": "fdm_filament_pc", - "sub_path": "filament/fdm_filament_pc.json" - }, - { - "name": "fdm_filament_asa", - "sub_path": "filament/fdm_filament_asa.json" - }, - { - "name": "fdm_filament_pva", - "sub_path": "filament/fdm_filament_pva.json" - }, - { - "name": "fdm_filament_pa", - "sub_path": "filament/fdm_filament_pa.json" - }, - { - "name": "Troodon Generic PLA", - "sub_path": "filament/Troodon Generic PLA.json" - }, - { - "name": "Troodon Generic PLA-CF", - "sub_path": "filament/Troodon Generic PLA-CF.json" - }, - { - "name": "Troodon Generic PETG", - "sub_path": "filament/Troodon Generic PETG.json" - }, - { - "name": "Troodon Generic ABS", - "sub_path": "filament/Troodon Generic ABS.json" - }, - { - "name": "Troodon Generic TPU", - "sub_path": "filament/Troodon Generic TPU.json" - }, - { - "name": "Troodon Generic ASA", - "sub_path": "filament/Troodon Generic ASA.json" - }, - { - "name": "Troodon Generic PC", - "sub_path": "filament/Troodon Generic PC.json" - }, - { - "name": "Troodon Generic PVA", - "sub_path": "filament/Troodon Generic PVA.json" - }, - { - "name": "Troodon Generic PA", - "sub_path": "filament/Troodon Generic PA.json" - }, - { - "name": "Troodon Generic PA-CF", - "sub_path": "filament/Troodon Generic PA-CF.json" - } - ], + "filament_list": [], "machine_list": [ { "name": "fdm_machine_common", @@ -147,4 +70,4 @@ "sub_path": "machine/Troodon 2.0 RRF 0.4 nozzle.json" } ] -} +} \ No newline at end of file diff --git a/resources/profiles/Vivedino/filament/Troodon Generic ABS.json b/resources/profiles/Vivedino/filament/Troodon Generic ABS.json deleted file mode 100644 index abce8966d4..0000000000 --- a/resources/profiles/Vivedino/filament/Troodon Generic ABS.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFB99", - "setting_id": "GFSA04", - "name": "Troodon Generic ABS", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_abs", - "filament_flow_ratio": [ - "0.926" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "compatible_printers": [ - "Troodon 2.0 Klipper 0.4 nozzle", - "Troodon 2.0 RRF 0.4 nozzle" - ] -} diff --git a/resources/profiles/Vivedino/filament/Troodon Generic ASA.json b/resources/profiles/Vivedino/filament/Troodon Generic ASA.json deleted file mode 100644 index 77fa770702..0000000000 --- a/resources/profiles/Vivedino/filament/Troodon Generic ASA.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFB98", - "setting_id": "GFSA04", - "name": "Troodon Generic ASA", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_asa", - "filament_flow_ratio": [ - "0.93" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "compatible_printers": [ - "Troodon 2.0 Klipper 0.4 nozzle", - "Troodon 2.0 RRF 0.4 nozzle" - ] - -} diff --git a/resources/profiles/Vivedino/filament/Troodon Generic PA-CF.json b/resources/profiles/Vivedino/filament/Troodon Generic PA-CF.json deleted file mode 100644 index d2a20e87e8..0000000000 --- a/resources/profiles/Vivedino/filament/Troodon Generic PA-CF.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFN98", - "setting_id": "GFSA04", - "name": "Troodon Generic PA-CF", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pa", - "filament_type": [ - "PA-CF" - ], - "nozzle_temperature_initial_layer": [ - "280" - ], - "nozzle_temperature": [ - "280" - ], - "filament_max_volumetric_speed": [ - "8" - ], - "compatible_printers": [ - "Troodon 2.0 Klipper 0.4 nozzle", - "Troodon 2.0 RRF 0.4 nozzle" - ] -} diff --git a/resources/profiles/Vivedino/filament/Troodon Generic PA.json b/resources/profiles/Vivedino/filament/Troodon Generic PA.json deleted file mode 100644 index 137701db32..0000000000 --- a/resources/profiles/Vivedino/filament/Troodon Generic PA.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFN99", - "setting_id": "GFSA04", - "name": "Troodon Generic PA", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pa", - "nozzle_temperature_initial_layer": [ - "280" - ], - "nozzle_temperature": [ - "280" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "compatible_printers": [ - "Troodon 2.0 Klipper 0.4 nozzle", - "Troodon 2.0 RRF 0.4 nozzle" - ] -} diff --git a/resources/profiles/Vivedino/filament/Troodon Generic PC.json b/resources/profiles/Vivedino/filament/Troodon Generic PC.json deleted file mode 100644 index 449cb5bd8a..0000000000 --- a/resources/profiles/Vivedino/filament/Troodon Generic PC.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFC99", - "setting_id": "GFSA04", - "name": "Troodon Generic PC", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pc", - "filament_max_volumetric_speed": [ - "12" - ], - "filament_flow_ratio": [ - "0.94" - ], - "compatible_printers": [ - "Troodon 2.0 Klipper 0.4 nozzle", - "Troodon 2.0 RRF 0.4 nozzle" - ] -} diff --git a/resources/profiles/Vivedino/filament/Troodon Generic PETG.json b/resources/profiles/Vivedino/filament/Troodon Generic PETG.json deleted file mode 100644 index efc7a5985d..0000000000 --- a/resources/profiles/Vivedino/filament/Troodon Generic PETG.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFG99", - "setting_id": "GFSA04", - "name": "Troodon Generic PETG", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pet", - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_cooling_layer_time": [ - "30" - ], - "overhang_fan_speed": [ - "90" - ], - "overhang_fan_threshold": [ - "25%" - ], - "fan_max_speed": [ - "90" - ], - "fan_min_speed": [ - "40" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "8" - ], - "filament_flow_ratio": [ - "0.95" - ], - "filament_max_volumetric_speed": [ - "10" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ], - "compatible_printers": [ - "Troodon 2.0 Klipper 0.4 nozzle", - "Troodon 2.0 RRF 0.4 nozzle" - ] -} diff --git a/resources/profiles/Vivedino/filament/Troodon Generic PLA-CF.json b/resources/profiles/Vivedino/filament/Troodon Generic PLA-CF.json deleted file mode 100644 index 3d68b5f232..0000000000 --- a/resources/profiles/Vivedino/filament/Troodon Generic PLA-CF.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFL98", - "setting_id": "GFSA04", - "name": "Troodon Generic PLA-CF", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pla", - "filament_flow_ratio": [ - "0.95" - ], - "filament_type": [ - "PLA-CF" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "slow_down_layer_time": [ - "7" - ], - "compatible_printers": [ - "Troodon 2.0 Klipper 0.4 nozzle", - "Troodon 2.0 RRF 0.4 nozzle" - ] -} diff --git a/resources/profiles/Vivedino/filament/Troodon Generic PVA.json b/resources/profiles/Vivedino/filament/Troodon Generic PVA.json deleted file mode 100644 index 8e1f16e36c..0000000000 --- a/resources/profiles/Vivedino/filament/Troodon Generic PVA.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFS99", - "setting_id": "GFSA04", - "name": "Troodon Generic PVA", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pva", - "filament_flow_ratio": [ - "0.95" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "slow_down_layer_time": [ - "7" - ], - "slow_down_min_speed": [ - "10" - ], - "compatible_printers": [ - "Troodon 2.0 Klipper 0.4 nozzle", - "Troodon 2.0 RRF 0.4 nozzle" - ] -} diff --git a/resources/profiles/Vivedino/filament/Troodon Generic TPU.json b/resources/profiles/Vivedino/filament/Troodon Generic TPU.json deleted file mode 100644 index dd4f7b5106..0000000000 --- a/resources/profiles/Vivedino/filament/Troodon Generic TPU.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFU99", - "setting_id": "GFSA04", - "name": "Troodon Generic TPU", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_tpu", - "filament_max_volumetric_speed": [ - "3.2" - ], - "compatible_printers": [ - "Troodon 2.0 Klipper 0.4 nozzle", - "Troodon 2.0 RRF 0.4 nozzle" - ] -} diff --git a/resources/profiles/Vivedino/filament/fdm_filament_abs.json b/resources/profiles/Vivedino/filament/fdm_filament_abs.json deleted file mode 100644 index b9d4eeda31..0000000000 --- a/resources/profiles/Vivedino/filament/fdm_filament_abs.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_abs", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "105" - ], - "eng_plate_temp" : [ - "105" - ], - "hot_plate_temp" : [ - "105" - ], - "textured_plate_temp" : [ - "105" - ], - "cool_plate_temp_initial_layer" : [ - "105" - ], - "eng_plate_temp_initial_layer" : [ - "105" - ], - "hot_plate_temp_initial_layer" : [ - "105" - ], - "textured_plate_temp_initial_layer" : [ - "105" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "30" - ], - "filament_max_volumetric_speed": [ - "28.6" - ], - "filament_type": [ - "ABS" - ], - "filament_density": [ - "1.04" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "260" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "fan_max_speed": [ - "80" - ], - "fan_min_speed": [ - "10" - ], - "overhang_fan_threshold": [ - "25%" - ], - "overhang_fan_speed": [ - "80" - ], - "nozzle_temperature": [ - "260" - ], - "temperature_vitrification": [ - "110" - ], - "nozzle_temperature_range_low": [ - "240" - ], - "nozzle_temperature_range_high": [ - "270" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "3" - ] -} diff --git a/resources/profiles/Vivedino/filament/fdm_filament_asa.json b/resources/profiles/Vivedino/filament/fdm_filament_asa.json deleted file mode 100644 index 262c561bda..0000000000 --- a/resources/profiles/Vivedino/filament/fdm_filament_asa.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_asa", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "105" - ], - "eng_plate_temp" : [ - "105" - ], - "hot_plate_temp" : [ - "105" - ], - "textured_plate_temp" : [ - "105" - ], - "cool_plate_temp_initial_layer" : [ - "105" - ], - "eng_plate_temp_initial_layer" : [ - "105" - ], - "hot_plate_temp_initial_layer" : [ - "105" - ], - "textured_plate_temp_initial_layer" : [ - "105" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "35" - ], - "filament_max_volumetric_speed": [ - "28.6" - ], - "filament_type": [ - "ASA" - ], - "filament_density": [ - "1.04" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "260" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "fan_max_speed": [ - "80" - ], - "fan_min_speed": [ - "10" - ], - "overhang_fan_threshold": [ - "25%" - ], - "overhang_fan_speed": [ - "80" - ], - "nozzle_temperature": [ - "260" - ], - "temperature_vitrification": [ - "110" - ], - "nozzle_temperature_range_low": [ - "240" - ], - "nozzle_temperature_range_high": [ - "270" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "3" - ] -} diff --git a/resources/profiles/Vivedino/filament/fdm_filament_common.json b/resources/profiles/Vivedino/filament/fdm_filament_common.json deleted file mode 100644 index 9f77975119..0000000000 --- a/resources/profiles/Vivedino/filament/fdm_filament_common.json +++ /dev/null @@ -1,144 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_common", - "from": "system", - "instantiation": "false", - "cool_plate_temp" : [ - "60" - ], - "eng_plate_temp" : [ - "60" - ], - "hot_plate_temp" : [ - "60" - ], - "textured_plate_temp" : [ - "60" - ], - "cool_plate_temp_initial_layer" : [ - "60" - ], - "eng_plate_temp_initial_layer" : [ - "60" - ], - "hot_plate_temp_initial_layer" : [ - "60" - ], - "textured_plate_temp_initial_layer" : [ - "60" - ], - "overhang_fan_threshold": [ - "95%" - ], - "overhang_fan_speed": [ - "100" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "filament_end_gcode": [ - "; filament end gcode \n" - ], - "filament_flow_ratio": [ - "1" - ], - "reduce_fan_stop_start_freq": [ - "0" - ], - "fan_cooling_layer_time": [ - "60" - ], - "filament_cost": [ - "0" - ], - "filament_density": [ - "0" - ], - "filament_deretraction_speed": [ - "nil" - ], - "filament_diameter": [ - "1.75" - ], - "filament_max_volumetric_speed": [ - "0" - ], - "filament_minimal_purge_on_wipe_tower": [ - "15" - ], - "filament_retraction_minimum_travel": [ - "nil" - ], - "filament_retract_before_wipe": [ - "nil" - ], - "filament_retract_when_changing_layer": [ - "nil" - ], - "filament_retraction_length": [ - "nil" - ], - "filament_z_hop": [ - "nil" - ], - "filament_z_hop_types": [ - "nil" - ], - "filament_retract_restart_extra": [ - "nil" - ], - "filament_retraction_speed": [ - "nil" - ], - "filament_settings_id": [ - "" - ], - "filament_soluble": [ - "0" - ], - "filament_type": [ - "PLA" - ], - "filament_vendor": [ - "Generic" - ], - "filament_wipe": [ - "nil" - ], - "filament_wipe_distance": [ - "nil" - ], - "bed_type": [ - "Cool Plate" - ], - "nozzle_temperature_initial_layer": [ - "200" - ], - "full_fan_speed_layer": [ - "0" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "35" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "8" - ], - "filament_start_gcode": [ - "; Filament gcode\n" - ], - "nozzle_temperature": [ - "200" - ], - "temperature_vitrification": [ - "100" - ] -} diff --git a/resources/profiles/Vivedino/filament/fdm_filament_pa.json b/resources/profiles/Vivedino/filament/fdm_filament_pa.json deleted file mode 100644 index 58f53cd451..0000000000 --- a/resources/profiles/Vivedino/filament/fdm_filament_pa.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pa", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "0" - ], - "eng_plate_temp" : [ - "100" - ], - "hot_plate_temp" : [ - "100" - ], - "textured_plate_temp" : [ - "100" - ], - "cool_plate_temp_initial_layer" : [ - "0" - ], - "eng_plate_temp_initial_layer" : [ - "100" - ], - "hot_plate_temp_initial_layer" : [ - "100" - ], - "textured_plate_temp_initial_layer" : [ - "100" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "4" - ], - "filament_max_volumetric_speed": [ - "8" - ], - "filament_type": [ - "PA" - ], - "filament_density": [ - "1.04" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "290" - ], - "reduce_fan_stop_start_freq": [ - "0" - ], - "fan_max_speed": [ - "60" - ], - "fan_min_speed": [ - "0" - ], - "overhang_fan_speed": [ - "30" - ], - "nozzle_temperature": [ - "290" - ], - "temperature_vitrification": [ - "108" - ], - "nozzle_temperature_range_low": [ - "270" - ], - "nozzle_temperature_range_high": [ - "300" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "2" - ] -} diff --git a/resources/profiles/Vivedino/filament/fdm_filament_pc.json b/resources/profiles/Vivedino/filament/fdm_filament_pc.json deleted file mode 100644 index cec8b89a38..0000000000 --- a/resources/profiles/Vivedino/filament/fdm_filament_pc.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pc", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "0" - ], - "eng_plate_temp" : [ - "110" - ], - "hot_plate_temp" : [ - "110" - ], - "textured_plate_temp" : [ - "110" - ], - "cool_plate_temp_initial_layer" : [ - "0" - ], - "eng_plate_temp_initial_layer" : [ - "110" - ], - "hot_plate_temp_initial_layer" : [ - "110" - ], - "textured_plate_temp_initial_layer" : [ - "110" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "30" - ], - "filament_max_volumetric_speed": [ - "23.2" - ], - "filament_type": [ - "PC" - ], - "filament_density": [ - "1.04" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "270" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "fan_max_speed": [ - "60" - ], - "fan_min_speed": [ - "10" - ], - "overhang_fan_threshold": [ - "25%" - ], - "overhang_fan_speed": [ - "60" - ], - "nozzle_temperature": [ - "280" - ], - "temperature_vitrification": [ - "140" - ], - "nozzle_temperature_range_low": [ - "260" - ], - "nozzle_temperature_range_high": [ - "280" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "2" - ] -} diff --git a/resources/profiles/Vivedino/filament/fdm_filament_pet.json b/resources/profiles/Vivedino/filament/fdm_filament_pet.json deleted file mode 100644 index bb2323e9c1..0000000000 --- a/resources/profiles/Vivedino/filament/fdm_filament_pet.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pet", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "60" - ], - "eng_plate_temp" : [ - "0" - ], - "hot_plate_temp" : [ - "80" - ], - "textured_plate_temp" : [ - "80" - ], - "cool_plate_temp_initial_layer" : [ - "60" - ], - "eng_plate_temp_initial_layer" : [ - "0" - ], - "hot_plate_temp_initial_layer" : [ - "80" - ], - "textured_plate_temp_initial_layer" : [ - "80" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "20" - ], - "filament_max_volumetric_speed": [ - "25" - ], - "filament_type": [ - "PETG" - ], - "filament_density": [ - "1.27" - ], - "filament_cost": [ - "30" - ], - "nozzle_temperature_initial_layer": [ - "255" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "20" - ], - "overhang_fan_speed": [ - "100" - ], - "nozzle_temperature": [ - "255" - ], - "temperature_vitrification": [ - "80" - ], - "nozzle_temperature_range_low": [ - "220" - ], - "nozzle_temperature_range_high": [ - "260" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ] -} diff --git a/resources/profiles/Vivedino/filament/fdm_filament_pla.json b/resources/profiles/Vivedino/filament/fdm_filament_pla.json deleted file mode 100644 index 82c6772f35..0000000000 --- a/resources/profiles/Vivedino/filament/fdm_filament_pla.json +++ /dev/null @@ -1,94 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pla", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "fan_cooling_layer_time": [ - "100" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "filament_type": [ - "PLA" - ], - "filament_density": [ - "1.24" - ], - "filament_cost": [ - "20" - ], - "cool_plate_temp" : [ - "60" - ], - "eng_plate_temp" : [ - "60" - ], - "hot_plate_temp" : [ - "60" - ], - "textured_plate_temp" : [ - "60" - ], - "cool_plate_temp_initial_layer" : [ - "60" - ], - "eng_plate_temp_initial_layer" : [ - "60" - ], - "hot_plate_temp_initial_layer" : [ - "60" - ], - "textured_plate_temp_initial_layer" : [ - "60" - ], - "nozzle_temperature_initial_layer": [ - "220" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "overhang_fan_speed": [ - "100" - ], - "overhang_fan_threshold": [ - "50%" - ], - "close_fan_the_first_x_layers": [ - "1" - ], - "nozzle_temperature": [ - "220" - ], - "temperature_vitrification": [ - "60" - ], - "nozzle_temperature_range_low": [ - "190" - ], - "nozzle_temperature_range_high": [ - "230" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "4" - ], - "additional_cooling_fan_speed": [ - "70" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ] -} diff --git a/resources/profiles/Vivedino/filament/fdm_filament_pva.json b/resources/profiles/Vivedino/filament/fdm_filament_pva.json deleted file mode 100644 index ebf25aa3ae..0000000000 --- a/resources/profiles/Vivedino/filament/fdm_filament_pva.json +++ /dev/null @@ -1,100 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pva", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "35" - ], - "eng_plate_temp" : [ - "0" - ], - "hot_plate_temp" : [ - "45" - ], - "textured_plate_temp" : [ - "45" - ], - "cool_plate_temp_initial_layer" : [ - "35" - ], - "eng_plate_temp_initial_layer" : [ - "0" - ], - "hot_plate_temp_initial_layer" : [ - "45" - ], - "textured_plate_temp_initial_layer" : [ - "45" - ], - "fan_cooling_layer_time": [ - "100" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "filament_soluble": [ - "1" - ], - "filament_is_support": [ - "1" - ], - "filament_type": [ - "PVA" - ], - "filament_density": [ - "1.24" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "220" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "overhang_fan_speed": [ - "100" - ], - "overhang_fan_threshold": [ - "50%" - ], - "close_fan_the_first_x_layers": [ - "1" - ], - "nozzle_temperature": [ - "220" - ], - "temperature_vitrification": [ - "50" - ], - "nozzle_temperature_range_low": [ - "190" - ], - "nozzle_temperature_range_high": [ - "250" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "4" - ], - "additional_cooling_fan_speed": [ - "70" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ] -} diff --git a/resources/profiles/Vivedino/filament/fdm_filament_tpu.json b/resources/profiles/Vivedino/filament/fdm_filament_tpu.json deleted file mode 100644 index d00b7dbcab..0000000000 --- a/resources/profiles/Vivedino/filament/fdm_filament_tpu.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_tpu", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "30" - ], - "eng_plate_temp" : [ - "30" - ], - "hot_plate_temp" : [ - "35" - ], - "textured_plate_temp" : [ - "35" - ], - "cool_plate_temp_initial_layer" : [ - "30" - ], - "eng_plate_temp_initial_layer" : [ - "30" - ], - "hot_plate_temp_initial_layer" : [ - "35" - ], - "textured_plate_temp_initial_layer" : [ - "35" - ], - "fan_cooling_layer_time": [ - "100" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "filament_type": [ - "TPU" - ], - "filament_density": [ - "1.24" - ], - "filament_cost": [ - "20" - ], - "filament_retraction_length": [ - "0.4" - ], - "nozzle_temperature_initial_layer": [ - "240" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "overhang_fan_speed": [ - "100" - ], - "additional_cooling_fan_speed": [ - "70" - ], - "close_fan_the_first_x_layers": [ - "1" - ], - "nozzle_temperature": [ - "240" - ], - "temperature_vitrification": [ - "60" - ], - "nozzle_temperature_range_low": [ - "200" - ], - "nozzle_temperature_range_high": [ - "250" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ] -} diff --git a/resources/profiles/Vivedino/machine/fdm_machine_common.json b/resources/profiles/Vivedino/machine/fdm_machine_common.json index 28ee8f30b5..dbce4d920f 100644 --- a/resources/profiles/Vivedino/machine/fdm_machine_common.json +++ b/resources/profiles/Vivedino/machine/fdm_machine_common.json @@ -88,7 +88,7 @@ "1" ], "retraction_length": [ - "5" + "1" ], "retract_length_toolchange": [ "1" diff --git a/resources/profiles/Volumic.json b/resources/profiles/Volumic.json index 373d7341a2..4d76c6a749 100644 --- a/resources/profiles/Volumic.json +++ b/resources/profiles/Volumic.json @@ -5,6 +5,18 @@ "description": "VOLUMIC configurations", "machine_model_list": [ { + "name": "EXO42 Performance", + "sub_path": "machine/EXO42 Performance.json" + }, + { + "name": "EXO65 Performance", + "sub_path": "machine/EXO65 Performance.json" + }, + { + "name": "SH65 Performance", + "sub_path": "machine/SH65 Performance.json" + }, + { "name": "EXO42", "sub_path": "machine/EXO42.json" }, @@ -21,6 +33,14 @@ "sub_path": "machine/VS30SC2.json" }, { + "name": "VS30SC", + "sub_path": "machine/VS30SC.json" + }, + { + "name": "VS30ULTRA", + "sub_path": "machine/VS30ULTRA.json" + }, + { "name": "VS30MK3", "sub_path": "machine/VS30MK3.json" }, @@ -117,7 +137,69 @@ { "name": "Very high speed - 0.30mm", "sub_path": "process/Very high speed - 0.30mm.json" + }, + + { + "name": "Normal performance - 0.10mm", + "sub_path": "process/Normal performance - 0.10mm.json" + }, + { + "name": "Normal performance - 0.15mm", + "sub_path": "process/Normal performance - 0.15mm.json" + }, + { + "name": "Normal performance - 0.20mm", + "sub_path": "process/Normal performance - 0.20mm.json" + }, + { + "name": "Normal performance - 0.25mm", + "sub_path": "process/Normal performance - 0.25mm.json" + }, + { + "name": "Normal performance - 0.30mm", + "sub_path": "process/Normal performance - 0.30mm.json" + }, + { + "name": "High performance - 0.10mm", + "sub_path": "process/High performance - 0.10mm.json" + }, + { + "name": "High performance - 0.15mm", + "sub_path": "process/High performance - 0.15mm.json" + }, + { + "name": "High performance - 0.20mm", + "sub_path": "process/High performance - 0.20mm.json" + }, + { + "name": "High performance - 0.25mm", + "sub_path": "process/High performance - 0.25mm.json" + }, + { + "name": "High performance - 0.30mm", + "sub_path": "process/High performance - 0.30mm.json" + }, + { + "name": "Full performance - 0.10mm", + "sub_path": "process/Full performance - 0.10mm.json" + }, + { + "name": "Full performance - 0.15mm", + "sub_path": "process/Full performance - 0.15mm.json" + }, + { + "name": "Full performance - 0.20mm", + "sub_path": "process/Full performance - 0.20mm.json" + }, + { + "name": "Full performance - 0.25mm", + "sub_path": "process/Full performance - 0.25mm.json" + }, + { + "name": "Full performance - 0.30mm", + "sub_path": "process/Full performance - 0.30mm.json" } + ], "filament_list": [ { @@ -202,6 +284,18 @@ "name": "fdm_volumic_common", "sub_path": "machine/fdm_volumic_common.json" }, + { + "name": "EXO42 Performance (0.4 nozzle)", + "sub_path": "machine/EXO42 Performance (0.4 nozzle).json" + }, + { + "name": "EXO65 Performance (0.6 nozzle)", + "sub_path": "machine/EXO65 Performance (0.6 nozzle).json" + }, + { + "name": "SH65 Performance (0.4 nozzle)", + "sub_path": "machine/SH65 Performance (0.4 nozzle).json" + }, { "name": "EXO42 (0.4 nozzle)", "sub_path": "machine/EXO42 (0.4 nozzle).json" @@ -218,6 +312,14 @@ "name": "VS30SC2 (0.4 nozzle)", "sub_path": "machine/VS30SC2 (0.4 nozzle).json" }, + { + "name": "VS30SC (0.4 nozzle)", + "sub_path": "machine/VS30SC (0.4 nozzle).json" + }, + { + "name": "VS30ULTRA (0.4 nozzle)", + "sub_path": "machine/VS30ULTRA (0.4 nozzle).json" + }, { "name": "VS30MK3 (0.4 nozzle)", "sub_path": "machine/VS30MK3 (0.4 nozzle).json" diff --git a/resources/profiles/Volumic/EXO42 Performance_cover.png b/resources/profiles/Volumic/EXO42 Performance_cover.png new file mode 100644 index 0000000000..759505f254 Binary files /dev/null and b/resources/profiles/Volumic/EXO42 Performance_cover.png differ diff --git a/resources/profiles/Volumic/EXO42_cover.png b/resources/profiles/Volumic/EXO42_cover.png index ba85f6dadd..759505f254 100644 Binary files a/resources/profiles/Volumic/EXO42_cover.png and b/resources/profiles/Volumic/EXO42_cover.png differ diff --git a/resources/profiles/Volumic/EXO65 Performance_cover.png b/resources/profiles/Volumic/EXO65 Performance_cover.png new file mode 100644 index 0000000000..3b334f7ac2 Binary files /dev/null and b/resources/profiles/Volumic/EXO65 Performance_cover.png differ diff --git a/resources/profiles/Volumic/EXO65_cover.png b/resources/profiles/Volumic/EXO65_cover.png index 2f081bc3ff..3b334f7ac2 100644 Binary files a/resources/profiles/Volumic/EXO65_cover.png and b/resources/profiles/Volumic/EXO65_cover.png differ diff --git a/resources/profiles/Volumic/SH65 Performance_cover.png b/resources/profiles/Volumic/SH65 Performance_cover.png new file mode 100644 index 0000000000..900bb6c8b9 Binary files /dev/null and b/resources/profiles/Volumic/SH65 Performance_cover.png differ diff --git a/resources/profiles/Volumic/SH65_cover.png b/resources/profiles/Volumic/SH65_cover.png index 635200cace..900bb6c8b9 100644 Binary files a/resources/profiles/Volumic/SH65_cover.png and b/resources/profiles/Volumic/SH65_cover.png differ diff --git a/resources/profiles/Volumic/VS20MK2_cover.png b/resources/profiles/Volumic/VS20MK2_cover.png index 9da7bdfeb9..e69dcd6dfd 100644 Binary files a/resources/profiles/Volumic/VS20MK2_cover.png and b/resources/profiles/Volumic/VS20MK2_cover.png differ diff --git a/resources/profiles/Volumic/VS30MK2_cover.png b/resources/profiles/Volumic/VS30MK2_cover.png index d30c5a2404..a34857927b 100644 Binary files a/resources/profiles/Volumic/VS30MK2_cover.png and b/resources/profiles/Volumic/VS30MK2_cover.png differ diff --git a/resources/profiles/Volumic/VS30MK3_cover.png b/resources/profiles/Volumic/VS30MK3_cover.png index 47b86d1046..b373045204 100644 Binary files a/resources/profiles/Volumic/VS30MK3_cover.png and b/resources/profiles/Volumic/VS30MK3_cover.png differ diff --git a/resources/profiles/Volumic/VS30SC2_cover.png b/resources/profiles/Volumic/VS30SC2_cover.png index 1900d4fba4..6a0d0c2e1c 100644 Binary files a/resources/profiles/Volumic/VS30SC2_cover.png and b/resources/profiles/Volumic/VS30SC2_cover.png differ diff --git a/resources/profiles/Volumic/VS30SC_cover.png b/resources/profiles/Volumic/VS30SC_cover.png new file mode 100644 index 0000000000..91a334011d Binary files /dev/null and b/resources/profiles/Volumic/VS30SC_cover.png differ diff --git a/resources/profiles/Volumic/VS30ULTRA_cover.png b/resources/profiles/Volumic/VS30ULTRA_cover.png new file mode 100644 index 0000000000..c0526e7c3b Binary files /dev/null and b/resources/profiles/Volumic/VS30ULTRA_cover.png differ diff --git a/resources/profiles/Volumic/filament/Volumic ABS Ultra.json b/resources/profiles/Volumic/filament/Volumic ABS Ultra.json index 02c4875ca0..eb93fcf940 100644 --- a/resources/profiles/Volumic/filament/Volumic ABS Ultra.json +++ b/resources/profiles/Volumic/filament/Volumic ABS Ultra.json @@ -28,8 +28,13 @@ "EXO42 (0.4 nozzle)", "EXO65 (0.6 nozzle)", "SH65 (0.4 nozzle)", + "EXO42 Performance (0.4 nozzle)", + "EXO65 Performance (0.6 nozzle)", + "SH65 Performance (0.4 nozzle)", "VS30MK3 (0.4 nozzle)", "VS30SC2 (0.4 nozzle)", + "VS30SC (0.4 nozzle)", + "VS30ULTRA (0.4 nozzle)", "VS30MK2 (0.4 nozzle)", "VS20MK2 (0.4 nozzle)" ] diff --git a/resources/profiles/Volumic/filament/Volumic ASA Ultra.json b/resources/profiles/Volumic/filament/Volumic ASA Ultra.json index cb9ad730a3..344b97a2e2 100644 --- a/resources/profiles/Volumic/filament/Volumic ASA Ultra.json +++ b/resources/profiles/Volumic/filament/Volumic ASA Ultra.json @@ -28,8 +28,13 @@ "EXO42 (0.4 nozzle)", "EXO65 (0.6 nozzle)", "SH65 (0.4 nozzle)", + "EXO42 Performance (0.4 nozzle)", + "EXO65 Performance (0.6 nozzle)", + "SH65 Performance (0.4 nozzle)", "VS30MK3 (0.4 nozzle)", "VS30SC2 (0.4 nozzle)", + "VS30SC (0.4 nozzle)", + "VS30ULTRA (0.4 nozzle)", "VS30MK2 (0.4 nozzle)", "VS20MK2 (0.4 nozzle)" ] diff --git a/resources/profiles/Volumic/filament/Volumic FLEX93 Ultra.json b/resources/profiles/Volumic/filament/Volumic FLEX93 Ultra.json index 7f9ea4a66f..83bc488a03 100644 --- a/resources/profiles/Volumic/filament/Volumic FLEX93 Ultra.json +++ b/resources/profiles/Volumic/filament/Volumic FLEX93 Ultra.json @@ -28,8 +28,13 @@ "EXO42 (0.4 nozzle)", "EXO65 (0.6 nozzle)", "SH65 (0.4 nozzle)", + "EXO42 Performance (0.4 nozzle)", + "EXO65 Performance (0.6 nozzle)", + "SH65 Performance (0.4 nozzle)", "VS30MK3 (0.4 nozzle)", "VS30SC2 (0.4 nozzle)", + "VS30SC (0.4 nozzle)", + "VS30ULTRA (0.4 nozzle)", "VS30MK2 (0.4 nozzle)", "VS20MK2 (0.4 nozzle)" ] diff --git a/resources/profiles/Volumic/filament/Volumic NYLON Ultra.json b/resources/profiles/Volumic/filament/Volumic NYLON Ultra.json index d0096e8a35..0a147c4530 100644 --- a/resources/profiles/Volumic/filament/Volumic NYLON Ultra.json +++ b/resources/profiles/Volumic/filament/Volumic NYLON Ultra.json @@ -28,8 +28,13 @@ "EXO42 (0.4 nozzle)", "EXO65 (0.6 nozzle)", "SH65 (0.4 nozzle)", + "EXO42 Performance (0.4 nozzle)", + "EXO65 Performance (0.6 nozzle)", + "SH65 Performance (0.4 nozzle)", "VS30MK3 (0.4 nozzle)", "VS30SC2 (0.4 nozzle)", + "VS30SC (0.4 nozzle)", + "VS30ULTRA (0.4 nozzle)", "VS30MK2 (0.4 nozzle)", "VS20MK2 (0.4 nozzle)" ] diff --git a/resources/profiles/Volumic/filament/Volumic PC.json b/resources/profiles/Volumic/filament/Volumic PC.json index bc79bd61fe..b2e218a777 100644 --- a/resources/profiles/Volumic/filament/Volumic PC.json +++ b/resources/profiles/Volumic/filament/Volumic PC.json @@ -28,8 +28,13 @@ "EXO42 (0.4 nozzle)", "EXO65 (0.6 nozzle)", "SH65 (0.4 nozzle)", + "EXO42 Performance (0.4 nozzle)", + "EXO65 Performance (0.6 nozzle)", + "SH65 Performance (0.4 nozzle)", "VS30MK3 (0.4 nozzle)", "VS30SC2 (0.4 nozzle)", + "VS30SC (0.4 nozzle)", + "VS30ULTRA (0.4 nozzle)", "VS30MK2 (0.4 nozzle)", "VS20MK2 (0.4 nozzle)" ] diff --git a/resources/profiles/Volumic/filament/Volumic PETG Ultra carbone.json b/resources/profiles/Volumic/filament/Volumic PETG Ultra carbone.json index 6f1ba0536d..123f187d8d 100644 --- a/resources/profiles/Volumic/filament/Volumic PETG Ultra carbone.json +++ b/resources/profiles/Volumic/filament/Volumic PETG Ultra carbone.json @@ -28,8 +28,13 @@ "EXO42 (0.4 nozzle)", "EXO65 (0.6 nozzle)", "SH65 (0.4 nozzle)", + "EXO42 Performance (0.4 nozzle)", + "EXO65 Performance (0.6 nozzle)", + "SH65 Performance (0.4 nozzle)", "VS30MK3 (0.4 nozzle)", "VS30SC2 (0.4 nozzle)", + "VS30SC (0.4 nozzle)", + "VS30ULTRA (0.4 nozzle)", "VS30MK2 (0.4 nozzle)", "VS20MK2 (0.4 nozzle)" ] diff --git a/resources/profiles/Volumic/filament/Volumic PETG Ultra.json b/resources/profiles/Volumic/filament/Volumic PETG Ultra.json index 06ea14f51c..a8f6bfbb1c 100644 --- a/resources/profiles/Volumic/filament/Volumic PETG Ultra.json +++ b/resources/profiles/Volumic/filament/Volumic PETG Ultra.json @@ -28,8 +28,13 @@ "EXO42 (0.4 nozzle)", "EXO65 (0.6 nozzle)", "SH65 (0.4 nozzle)", + "EXO42 Performance (0.4 nozzle)", + "EXO65 Performance (0.6 nozzle)", + "SH65 Performance (0.4 nozzle)", "VS30MK3 (0.4 nozzle)", "VS30SC2 (0.4 nozzle)", + "VS30SC (0.4 nozzle)", + "VS30ULTRA (0.4 nozzle)", "VS30MK2 (0.4 nozzle)", "VS20MK2 (0.4 nozzle)" ] diff --git a/resources/profiles/Volumic/filament/Volumic PLA Ultra.json b/resources/profiles/Volumic/filament/Volumic PLA Ultra.json index aff528301d..7734b1caa5 100644 --- a/resources/profiles/Volumic/filament/Volumic PLA Ultra.json +++ b/resources/profiles/Volumic/filament/Volumic PLA Ultra.json @@ -28,8 +28,13 @@ "EXO42 (0.4 nozzle)", "EXO65 (0.6 nozzle)", "SH65 (0.4 nozzle)", + "EXO42 Performance (0.4 nozzle)", + "EXO65 Performance (0.6 nozzle)", + "SH65 Performance (0.4 nozzle)", "VS30MK3 (0.4 nozzle)", "VS30SC2 (0.4 nozzle)", + "VS30SC (0.4 nozzle)", + "VS30ULTRA (0.4 nozzle)", "VS30MK2 (0.4 nozzle)", "VS20MK2 (0.4 nozzle)" ] diff --git a/resources/profiles/Volumic/filament/Volumic PVA.json b/resources/profiles/Volumic/filament/Volumic PVA.json index b371382fcd..5b86cbec4e 100644 --- a/resources/profiles/Volumic/filament/Volumic PVA.json +++ b/resources/profiles/Volumic/filament/Volumic PVA.json @@ -28,8 +28,13 @@ "EXO42 (0.4 nozzle)", "EXO65 (0.6 nozzle)", "SH65 (0.4 nozzle)", + "EXO42 Performance (0.4 nozzle)", + "EXO65 Performance (0.6 nozzle)", + "SH65 Performance (0.4 nozzle)", "VS30MK3 (0.4 nozzle)", "VS30SC2 (0.4 nozzle)", + "VS30SC (0.4 nozzle)", + "VS30ULTRA (0.4 nozzle)", "VS30MK2 (0.4 nozzle)", "VS20MK2 (0.4 nozzle)" ] diff --git a/resources/profiles/Volumic/filament/Volumic UNIVERSAL Ultra.json b/resources/profiles/Volumic/filament/Volumic UNIVERSAL Ultra.json index 725fb5b866..bf8308bc4f 100644 --- a/resources/profiles/Volumic/filament/Volumic UNIVERSAL Ultra.json +++ b/resources/profiles/Volumic/filament/Volumic UNIVERSAL Ultra.json @@ -28,8 +28,13 @@ "EXO42 (0.4 nozzle)", "EXO65 (0.6 nozzle)", "SH65 (0.4 nozzle)", + "EXO42 Performance (0.4 nozzle)", + "EXO65 Performance (0.6 nozzle)", + "SH65 Performance (0.4 nozzle)", "VS30MK3 (0.4 nozzle)", "VS30SC2 (0.4 nozzle)", + "VS30SC (0.4 nozzle)", + "VS30ULTRA (0.4 nozzle)", "VS30MK2 (0.4 nozzle)", "VS20MK2 (0.4 nozzle)" ] diff --git a/resources/profiles/Volumic/machine/EXO42 (0.4 nozzle).json b/resources/profiles/Volumic/machine/EXO42 (0.4 nozzle).json index d7d1c6d4bb..bf9ae1a33a 100644 --- a/resources/profiles/Volumic/machine/EXO42 (0.4 nozzle).json +++ b/resources/profiles/Volumic/machine/EXO42 (0.4 nozzle).json @@ -22,22 +22,6 @@ "retraction_length": ["2.4"], "retraction_speed": ["30"], "deretraction_speed": ["30"], - - "machine_max_acceleration_e": ["0"], - "machine_max_acceleration_extruding": ["0"], - "machine_max_acceleration_retracting": ["0"], - "machine_max_acceleration_x": ["0"], - "machine_max_acceleration_y": ["0"], - "machine_max_acceleration_z": ["0"], - "machine_max_speed_e": ["0"], - "machine_max_speed_x": ["0"], - "machine_max_speed_y": ["0"], - "machine_max_speed_z": ["0"], - "machine_max_jerk_e": ["0"], - "machine_max_jerk_x": ["0"], - "machine_max_jerk_y": ["0"], - "machine_max_jerk_z": ["0"], - "machine_start_gcode": "M117 Demarrage\nM106 S0\nM140 S[first_layer_bed_temperature]\nM104 T0 S[first_layer_temperature]\nG28\nG90\nM82\nG92 E0\nG1 Z5 F600\nG1 X1 Y419 F6000\nM109 T0 S[first_layer_temperature]\nM300 P350\nG92 E0\nM117 Impression", "before_layer_change_gcode": "G92 E0", "machine_end_gcode": "M107\nM104 S0\nM140 S0\nG0 X1 Y419 F5000\nM84\nM300" diff --git a/resources/profiles/Volumic/machine/EXO42 Performance (0.4 nozzle).json b/resources/profiles/Volumic/machine/EXO42 Performance (0.4 nozzle).json new file mode 100644 index 0000000000..f543cd4cae --- /dev/null +++ b/resources/profiles/Volumic/machine/EXO42 Performance (0.4 nozzle).json @@ -0,0 +1,28 @@ +{ + "type": "machine", + "setting_id": "GM001", + "name": "EXO42 Performance (0.4 nozzle)", + "from": "system", + "instantiation": "true", + "inherits": "fdm_volumic_common", + "printer_model": "EXO42 Performance", + "default_print_profile": "Performance 150 - 0.15mm", + "host_type": "octoprint", + "print_host": "192.168.0.60", + "nozzle_diameter": ["0.4"], + "printable_area": ["0x0","420x0","420x420","0x420"], + "printable_height": "420", + "nozzle_type": "undefine", + "auxiliary_fan": "0", + "gcode_flavor": "klipper", + "max_layer_height": ["0.3"], + "min_layer_height": ["0.025"], + "printer_variant": "0.4", + "retraction_minimum_travel": ["1"], + "retraction_length": ["2.4"], + "retraction_speed": ["30"], + "deretraction_speed": ["30"], + "machine_start_gcode": "START_PRINT BED=[first_layer_bed_temperature] EXTRUDER=[first_layer_temperature]", + "before_layer_change_gcode": "G92 E0", + "machine_end_gcode": "END_PRINT" +} \ No newline at end of file diff --git a/resources/profiles/Volumic/machine/EXO42 Performance.json b/resources/profiles/Volumic/machine/EXO42 Performance.json new file mode 100644 index 0000000000..0111c76646 --- /dev/null +++ b/resources/profiles/Volumic/machine/EXO42 Performance.json @@ -0,0 +1,10 @@ +{ + "type": "machine_model", + "name": "EXO42 Performance", + "model_id": "V420K", + "nozzle_diameter": "0.4", + "machine_tech": "FFF", + "family": "VOLUMIC", + "bed_model": "EXO42_bed.STL", + "default_materials": "Volumic PLA Ultra" +} diff --git a/resources/profiles/Volumic/machine/EXO65 (0.6 nozzle).json b/resources/profiles/Volumic/machine/EXO65 (0.6 nozzle).json index c783bd7d30..c4cd50d7f3 100644 --- a/resources/profiles/Volumic/machine/EXO65 (0.6 nozzle).json +++ b/resources/profiles/Volumic/machine/EXO65 (0.6 nozzle).json @@ -22,22 +22,6 @@ "retraction_length": ["2.4"], "retraction_speed": ["30"], "deretraction_speed": ["30"], - - "machine_max_acceleration_e": ["0"], - "machine_max_acceleration_extruding": ["0"], - "machine_max_acceleration_retracting": ["0"], - "machine_max_acceleration_x": ["0"], - "machine_max_acceleration_y": ["0"], - "machine_max_acceleration_z": ["0"], - "machine_max_speed_e": ["0"], - "machine_max_speed_x": ["0"], - "machine_max_speed_y": ["0"], - "machine_max_speed_z": ["0"], - "machine_max_jerk_e": ["0"], - "machine_max_jerk_x": ["0"], - "machine_max_jerk_y": ["0"], - "machine_max_jerk_z": ["0"], - "machine_start_gcode": "M117 Demarrage\nM106 S0\nM140 S[first_layer_bed_temperature]\nM104 T0 S[first_layer_temperature]\nG28\nG90\nM82\nG92 E0\nG1 Z5 F600\nG1 X1 Y649 F6000\nM109 T0 S[first_layer_temperature]\nM300 P350\nG92 E0\nM117 Impression", "before_layer_change_gcode": "G92 E0", "machine_end_gcode": "M107\nM104 S0\nM140 S0\nG0 X1 Y649 F5000\nM84\nM300" diff --git a/resources/profiles/Volumic/machine/EXO65 Performance (0.6 nozzle).json b/resources/profiles/Volumic/machine/EXO65 Performance (0.6 nozzle).json new file mode 100644 index 0000000000..894705f1c3 --- /dev/null +++ b/resources/profiles/Volumic/machine/EXO65 Performance (0.6 nozzle).json @@ -0,0 +1,28 @@ +{ + "type": "machine", + "setting_id": "GM001", + "name": "EXO65 Performance (0.6 nozzle)", + "from": "system", + "instantiation": "true", + "inherits": "fdm_volumic_common", + "printer_model": "EXO65 Performance", + "default_print_profile": "Performance 150 - 0.15mm", + "host_type": "octoprint", + "print_host": "192.168.0.60", + "nozzle_diameter": ["0.6"], + "printable_area": ["0x0","650x0","650x650","0x650"], + "printable_height": "650", + "nozzle_type": "undefine", + "auxiliary_fan": "0", + "gcode_flavor": "klipper", + "max_layer_height": ["0.5"], + "min_layer_height": ["0.05"], + "printer_variant": "0.6", + "retraction_minimum_travel": ["1"], + "retraction_length": ["2.4"], + "retraction_speed": ["30"], + "deretraction_speed": ["30"], + "machine_start_gcode": "START_PRINT BED=[first_layer_bed_temperature] EXTRUDER=[first_layer_temperature]", + "before_layer_change_gcode": "G92 E0", + "machine_end_gcode": "END_PRINT" +} \ No newline at end of file diff --git a/resources/profiles/Volumic/machine/EXO65 Performance.json b/resources/profiles/Volumic/machine/EXO65 Performance.json new file mode 100644 index 0000000000..e2aa2c59bb --- /dev/null +++ b/resources/profiles/Volumic/machine/EXO65 Performance.json @@ -0,0 +1,10 @@ +{ + "type": "machine_model", + "name": "EXO65 Performance", + "model_id": "V650K", + "nozzle_diameter": "0.6", + "machine_tech": "FFF", + "family": "VOLUMIC", + "bed_model": "EXO65_bed.STL", + "default_materials": "Volumic PLA Ultra" +} diff --git a/resources/profiles/Volumic/machine/SH65 (0.4 nozzle).json b/resources/profiles/Volumic/machine/SH65 (0.4 nozzle).json index 509e1e5d84..f18af9f2fb 100644 --- a/resources/profiles/Volumic/machine/SH65 (0.4 nozzle).json +++ b/resources/profiles/Volumic/machine/SH65 (0.4 nozzle).json @@ -22,22 +22,6 @@ "retraction_length": ["2.4"], "retraction_speed": ["30"], "deretraction_speed": ["30"], - - "machine_max_acceleration_e": ["0"], - "machine_max_acceleration_extruding": ["0"], - "machine_max_acceleration_retracting": ["0"], - "machine_max_acceleration_x": ["0"], - "machine_max_acceleration_y": ["0"], - "machine_max_acceleration_z": ["0"], - "machine_max_speed_e": ["0"], - "machine_max_speed_x": ["0"], - "machine_max_speed_y": ["0"], - "machine_max_speed_z": ["0"], - "machine_max_jerk_e": ["0"], - "machine_max_jerk_x": ["0"], - "machine_max_jerk_y": ["0"], - "machine_max_jerk_z": ["0"], - "machine_start_gcode": "M117 Demarrage\nM106 S0\nM140 S[first_layer_bed_temperature]\nM104 T0 S[first_layer_temperature]\nG28\nG90\nM82\nG92 E0\nG1 Z5 F600\nG1 X1 Y299 F6000\nM109 T0 S[first_layer_temperature]\nM300 P350\nG92 E0\nM117 Impression", "before_layer_change_gcode": "G92 E0", "machine_end_gcode": "M107\nM104 S0\nM140 S0\nG0 X1 Y299 F5000\nM84\nM300" diff --git a/resources/profiles/Volumic/machine/SH65 Performance (0.4 nozzle).json b/resources/profiles/Volumic/machine/SH65 Performance (0.4 nozzle).json new file mode 100644 index 0000000000..d159d4eefd --- /dev/null +++ b/resources/profiles/Volumic/machine/SH65 Performance (0.4 nozzle).json @@ -0,0 +1,28 @@ +{ + "type": "machine", + "setting_id": "GM001", + "name": "SH65 Performance (0.4 nozzle)", + "from": "system", + "instantiation": "true", + "inherits": "fdm_volumic_common", + "printer_model": "SH65 Performance", + "default_print_profile": "Performance 150 - 0.15mm", + "host_type": "octoprint", + "print_host": "192.168.0.60", + "nozzle_diameter": ["0.4"], + "printable_area": ["0x0","650x0","650x300","0x300"], + "printable_height": "300", + "nozzle_type": "undefine", + "auxiliary_fan": "0", + "gcode_flavor": "klipper", + "max_layer_height": ["0.3"], + "min_layer_height": ["0.025"], + "printer_variant": "0.4", + "retraction_minimum_travel": ["1"], + "retraction_length": ["2.4"], + "retraction_speed": ["30"], + "deretraction_speed": ["30"], + "machine_start_gcode": "START_PRINT BED=[first_layer_bed_temperature] EXTRUDER=[first_layer_temperature]", + "before_layer_change_gcode": "G92 E0", + "machine_end_gcode": "END_PRINT" +} \ No newline at end of file diff --git a/resources/profiles/Volumic/machine/SH65 Performance.json b/resources/profiles/Volumic/machine/SH65 Performance.json new file mode 100644 index 0000000000..bf3d189338 --- /dev/null +++ b/resources/profiles/Volumic/machine/SH65 Performance.json @@ -0,0 +1,10 @@ +{ + "type": "machine_model", + "name": "SH65 Performance", + "model_id": "V650300K", + "nozzle_diameter": "0.4", + "machine_tech": "FFF", + "family": "VOLUMIC", + "bed_model": "SH65_bed.STL", + "default_materials": "Volumic PLA Ultra" +} diff --git a/resources/profiles/Volumic/machine/VS20MK2 (0.4 nozzle).json b/resources/profiles/Volumic/machine/VS20MK2 (0.4 nozzle).json index 882a25b051..ac501c6bae 100644 --- a/resources/profiles/Volumic/machine/VS20MK2 (0.4 nozzle).json +++ b/resources/profiles/Volumic/machine/VS20MK2 (0.4 nozzle).json @@ -20,22 +20,6 @@ "retraction_length": ["2"], "retraction_speed": ["25"], "deretraction_speed": ["25"], - - "machine_max_acceleration_e": ["0"], - "machine_max_acceleration_extruding": ["0"], - "machine_max_acceleration_retracting": ["0"], - "machine_max_acceleration_x": ["0"], - "machine_max_acceleration_y": ["0"], - "machine_max_acceleration_z": ["0"], - "machine_max_speed_e": ["0"], - "machine_max_speed_x": ["0"], - "machine_max_speed_y": ["0"], - "machine_max_speed_z": ["0"], - "machine_max_jerk_e": ["0"], - "machine_max_jerk_x": ["0"], - "machine_max_jerk_y": ["0"], - "machine_max_jerk_z": ["0"], - "machine_start_gcode": "M117 Demarrage\nM106 S0\nM140 S[first_layer_bed_temperature]\nM104 T0 S[first_layer_temperature]\nG28\nG90\nM82\nG92 E0\nG1 Z5 F600\nG1 X1 Y199 F6000\nM109 T0 S[first_layer_temperature]\nM300 P350\nG92 E0\nM117 Impression", "before_layer_change_gcode": "G92 E0", "machine_end_gcode": "M107\nM104 S0\nM140 S0\nG0 X1 Y199 F5000\nM84\nM300" diff --git a/resources/profiles/Volumic/machine/VS30MK2 (0.4 nozzle).json b/resources/profiles/Volumic/machine/VS30MK2 (0.4 nozzle).json index b93efe2ab2..03aae4c8d8 100644 --- a/resources/profiles/Volumic/machine/VS30MK2 (0.4 nozzle).json +++ b/resources/profiles/Volumic/machine/VS30MK2 (0.4 nozzle).json @@ -20,22 +20,6 @@ "retraction_length": ["2"], "retraction_speed": ["25"], "deretraction_speed": ["25"], - - "machine_max_acceleration_e": ["0"], - "machine_max_acceleration_extruding": ["0"], - "machine_max_acceleration_retracting": ["0"], - "machine_max_acceleration_x": ["0"], - "machine_max_acceleration_y": ["0"], - "machine_max_acceleration_z": ["0"], - "machine_max_speed_e": ["0"], - "machine_max_speed_x": ["0"], - "machine_max_speed_y": ["0"], - "machine_max_speed_z": ["0"], - "machine_max_jerk_e": ["0"], - "machine_max_jerk_x": ["0"], - "machine_max_jerk_y": ["0"], - "machine_max_jerk_z": ["0"], - "machine_start_gcode": "M117 Demarrage\nM106 S0\nM140 S[first_layer_bed_temperature]\nM104 T0 S[first_layer_temperature]\nG28\nG90\nM82\nG92 E0\nG1 Z5 F600\nG1 X1 Y299 F6000\nM109 T0 S[first_layer_temperature]\nM300 P350\nG92 E0\nM117 Impression", "before_layer_change_gcode": "G92 E0", "machine_end_gcode": "M107\nM104 S0\nM140 S0\nG0 X1 Y299 F5000\nM84\nM300" diff --git a/resources/profiles/Volumic/machine/VS30MK3 (0.4 nozzle).json b/resources/profiles/Volumic/machine/VS30MK3 (0.4 nozzle).json index ba6f34aecf..7bdf1c831a 100644 --- a/resources/profiles/Volumic/machine/VS30MK3 (0.4 nozzle).json +++ b/resources/profiles/Volumic/machine/VS30MK3 (0.4 nozzle).json @@ -22,22 +22,6 @@ "retraction_length": ["2.4"], "retraction_speed": ["30"], "deretraction_speed": ["30"], - - "machine_max_acceleration_e": ["0"], - "machine_max_acceleration_extruding": ["0"], - "machine_max_acceleration_retracting": ["0"], - "machine_max_acceleration_x": ["0"], - "machine_max_acceleration_y": ["0"], - "machine_max_acceleration_z": ["0"], - "machine_max_speed_e": ["0"], - "machine_max_speed_x": ["0"], - "machine_max_speed_y": ["0"], - "machine_max_speed_z": ["0"], - "machine_max_jerk_e": ["0"], - "machine_max_jerk_x": ["0"], - "machine_max_jerk_y": ["0"], - "machine_max_jerk_z": ["0"], - "machine_start_gcode": "M117 Demarrage\nM106 S0\nM140 S[first_layer_bed_temperature]\nM104 T0 S[first_layer_temperature]\nG28\nG90\nM82\nG92 E0\nG1 Z5 F600\nG1 X1 Y299 F6000\nM109 T0 S[first_layer_temperature]\nM300 P350\nG92 E0\nM117 Impression", "before_layer_change_gcode": "G92 E0", "machine_end_gcode": "M107\nM104 S0\nM140 S0\nG0 X1 Y299 F5000\nM84\nM300" diff --git a/resources/profiles/Volumic/machine/VS30SC (0.4 nozzle).json b/resources/profiles/Volumic/machine/VS30SC (0.4 nozzle).json new file mode 100644 index 0000000000..a5f167360f --- /dev/null +++ b/resources/profiles/Volumic/machine/VS30SC (0.4 nozzle).json @@ -0,0 +1,28 @@ +{ + "type": "machine", + "setting_id": "GM001", + "name": "VS30SC (0.4 nozzle)", + "from": "system", + "instantiation": "true", + "inherits": "fdm_volumic_common", + "printer_model": "VS30SC", + "default_print_profile": "Normal speed - 0.15mm", + "host_type": "esp3d", + "print_host": "192.168.0.60", + "nozzle_diameter": ["0.4"], + "printable_area": ["0x0","300x0","300x200","0x200"], + "printable_height": "300", + "nozzle_type": "undefine", + "auxiliary_fan": "0", + "gcode_flavor": "marlin", + "max_layer_height": ["0.3"], + "min_layer_height": ["0.025"], + "printer_variant": "0.4", + "retraction_minimum_travel": ["1"], + "retraction_length": ["2.4"], + "retraction_speed": ["30"], + "deretraction_speed": ["30"], + "machine_start_gcode": "M117 Demarrage\nM106 S0\nM140 S[first_layer_bed_temperature]\nM104 T0 S[first_layer_temperature]\nG28\nG90\nM82\nG92 E0\nG1 Z5 F600\nG1 X1 Y199 F6000\nM109 T0 S[first_layer_temperature]\nM300 P350\nG92 E0\nM117 Impression", + "before_layer_change_gcode": "G92 E0", + "machine_end_gcode": "M107\nM104 S0\nM140 S0\nG0 X1 Y199 F5000\nM84\nM300" +} \ No newline at end of file diff --git a/resources/profiles/Volumic/machine/VS30SC.json b/resources/profiles/Volumic/machine/VS30SC.json new file mode 100644 index 0000000000..1ad62f0b0e --- /dev/null +++ b/resources/profiles/Volumic/machine/VS30SC.json @@ -0,0 +1,10 @@ +{ + "type": "machine_model", + "name": "VS30SC", + "model_id": "V300A", + "nozzle_diameter": "0.4", + "machine_tech": "FFF", + "family": "VOLUMIC", + "bed_model": "VS30U_bed.STL", + "default_materials": "Volumic UNIVERSAL Ultra" +} diff --git a/resources/profiles/Volumic/machine/VS30SC2 (0.4 nozzle).json b/resources/profiles/Volumic/machine/VS30SC2 (0.4 nozzle).json index ae318a6f85..c25fad81cf 100644 --- a/resources/profiles/Volumic/machine/VS30SC2 (0.4 nozzle).json +++ b/resources/profiles/Volumic/machine/VS30SC2 (0.4 nozzle).json @@ -22,22 +22,6 @@ "retraction_length": ["2.4"], "retraction_speed": ["30"], "deretraction_speed": ["30"], - - "machine_max_acceleration_e": ["0"], - "machine_max_acceleration_extruding": ["0"], - "machine_max_acceleration_retracting": ["0"], - "machine_max_acceleration_x": ["0"], - "machine_max_acceleration_y": ["0"], - "machine_max_acceleration_z": ["0"], - "machine_max_speed_e": ["0"], - "machine_max_speed_x": ["0"], - "machine_max_speed_y": ["0"], - "machine_max_speed_z": ["0"], - "machine_max_jerk_e": ["0"], - "machine_max_jerk_x": ["0"], - "machine_max_jerk_y": ["0"], - "machine_max_jerk_z": ["0"], - "machine_start_gcode": "M117 Demarrage\nM106 S0\nM140 S[first_layer_bed_temperature]\nM104 T0 S[first_layer_temperature]\nG28\nG90\nM82\nG92 E0\nG1 Z5 F600\nG1 X1 Y199 F6000\nM109 T0 S[first_layer_temperature]\nM300 P350\nG92 E0\nM117 Impression", "before_layer_change_gcode": "G92 E0", "machine_end_gcode": "M107\nM104 S0\nM140 S0\nG0 X1 Y199 F5000\nM84\nM300" diff --git a/resources/profiles/Volumic/machine/VS30ULTRA (0.4 nozzle).json b/resources/profiles/Volumic/machine/VS30ULTRA (0.4 nozzle).json new file mode 100644 index 0000000000..0204ea9a2e --- /dev/null +++ b/resources/profiles/Volumic/machine/VS30ULTRA (0.4 nozzle).json @@ -0,0 +1,26 @@ +{ + "type": "machine", + "setting_id": "GM001", + "name": "VS30ULTRA (0.4 nozzle)", + "from": "system", + "instantiation": "true", + "inherits": "fdm_volumic_common", + "printer_model": "VS30ULTRA", + "default_print_profile": "Normal speed - 0.15mm", + "nozzle_diameter": ["0.4"], + "printable_area": ["0x0","290x0","290x200","0x200"], + "printable_height": "300", + "nozzle_type": "undefine", + "auxiliary_fan": "0", + "gcode_flavor": "marlin", + "max_layer_height": ["0.3"], + "min_layer_height": ["0.05"], + "printer_variant": "0.4", + "retraction_minimum_travel": ["1"], + "retraction_length": ["2.4"], + "retraction_speed": ["30"], + "deretraction_speed": ["30"], + "machine_start_gcode": "M117 Demarrage\nM106 S0\nM140 S[first_layer_bed_temperature]\nM104 T0 S[first_layer_temperature]\nG28\nG90\nM82\nG92 E0\nG1 Z5 F600\nG1 X1 Y199 F6000\nM109 T0 S[first_layer_temperature]\nM300 P350\nG92 E0\nM117 Impression", + "before_layer_change_gcode": "G92 E0", + "machine_end_gcode": "M107\nM104 S0\nM140 S0\nG0 X1 Y199 F5000\nM84\nM300" +} \ No newline at end of file diff --git a/resources/profiles/Volumic/machine/VS30ULTRA.json b/resources/profiles/Volumic/machine/VS30ULTRA.json new file mode 100644 index 0000000000..4d02482c68 --- /dev/null +++ b/resources/profiles/Volumic/machine/VS30ULTRA.json @@ -0,0 +1,10 @@ +{ + "type": "machine_model", + "name": "VS30ULTRA", + "model_id": "V300B", + "nozzle_diameter": "0.4", + "machine_tech": "FFF", + "family": "VOLUMIC", + "bed_model": "VS30U_bed.STL", + "default_materials": "Volumic UNIVERSAL Ultra" +} diff --git a/resources/profiles/Volumic/machine/fdm_volumic_common.json b/resources/profiles/Volumic/machine/fdm_volumic_common.json index 37f63f0ada..a1a943dcb1 100644 --- a/resources/profiles/Volumic/machine/fdm_volumic_common.json +++ b/resources/profiles/Volumic/machine/fdm_volumic_common.json @@ -5,20 +5,6 @@ "instantiation": "false", "gcode_flavor": "marlin", "emit_machine_limits_to_gcode": ["0"], - "machine_max_acceleration_e": ["0"], - "machine_max_acceleration_extruding": ["0"], - "machine_max_acceleration_retracting": ["0"], - "machine_max_acceleration_x": ["0"], - "machine_max_acceleration_y": ["0"], - "machine_max_acceleration_z": ["0"], - "machine_max_speed_e": ["0"], - "machine_max_speed_x": ["0"], - "machine_max_speed_y": ["0"], - "machine_max_speed_z": ["0"], - "machine_max_jerk_e": ["0"], - "machine_max_jerk_x": ["0"], - "machine_max_jerk_y": ["0"], - "machine_max_jerk_z": ["0"], "printer_settings_id": "", "printer_technology": "FFF", "printer_variant": "0.4", @@ -30,6 +16,25 @@ "retraction_length": ["2.4"], "retraction_speed": ["30"], "silent_mode": "0", + + "machine_max_acceleration_e": ["0","0"], + "machine_max_acceleration_extruding": ["0","0"], + "machine_max_acceleration_retracting": ["0","0"], + "machine_max_acceleration_travel": ["0","0"], + "machine_max_acceleration_x": ["0","0"], + "machine_max_acceleration_y": ["0","0"], + "machine_max_acceleration_z": ["0","0"], + "machine_max_jerk_e": ["0","0"], + "machine_max_jerk_x": ["0","0"], + "machine_max_jerk_y": ["0","0"], + "machine_max_jerk_z": ["0","0"], + "machine_max_speed_e": ["0","0"], + "machine_max_speed_x": ["0","0"], + "machine_max_speed_y": ["0","0"], + "machine_max_speed_z": ["0","0"], + "machine_min_extruding_rate": ["0","0"], + "machine_min_travel_rate": ["0","0"], + "single_extruder_multi_material": "1", "change_filament_gcode": "M600", "machine_pause_gcode": "M601", diff --git a/resources/profiles/Volumic/process/Compatible speed - 0.10mm.json b/resources/profiles/Volumic/process/Compatible speed - 0.10mm.json index a08e8deb85..eb72cc4f38 100644 --- a/resources/profiles/Volumic/process/Compatible speed - 0.10mm.json +++ b/resources/profiles/Volumic/process/Compatible speed - 0.10mm.json @@ -20,12 +20,18 @@ "travel_speed": "60", "support_speed": "60", "support_interface_speed": "60", + "skirt_speed": "60", "compatible_printers": [ "EXO42 (0.4 nozzle)", "EXO65 (0.6 nozzle)", "SH65 (0.4 nozzle)", + "EXO42 Performance (0.4 nozzle)", + "EXO65 Performance (0.6 nozzle)", + "SH65 Performance (0.4 nozzle)", "VS30MK3 (0.4 nozzle)", "VS30SC2 (0.4 nozzle)", + "VS30SC (0.4 nozzle)", + "VS30ULTRA (0.4 nozzle)", "VS30MK2 (0.4 nozzle)", "VS20MK2 (0.4 nozzle)" ] diff --git a/resources/profiles/Volumic/process/Compatible speed - 0.15mm.json b/resources/profiles/Volumic/process/Compatible speed - 0.15mm.json index ff404ab5a9..02bc1037d2 100644 --- a/resources/profiles/Volumic/process/Compatible speed - 0.15mm.json +++ b/resources/profiles/Volumic/process/Compatible speed - 0.15mm.json @@ -20,12 +20,18 @@ "travel_speed": "60", "support_speed": "60", "support_interface_speed": "60", + "skirt_speed": "60", "compatible_printers": [ "EXO42 (0.4 nozzle)", "EXO65 (0.6 nozzle)", "SH65 (0.4 nozzle)", + "EXO42 Performance (0.4 nozzle)", + "EXO65 Performance (0.6 nozzle)", + "SH65 Performance (0.4 nozzle)", "VS30MK3 (0.4 nozzle)", "VS30SC2 (0.4 nozzle)", + "VS30SC (0.4 nozzle)", + "VS30ULTRA (0.4 nozzle)", "VS30MK2 (0.4 nozzle)", "VS20MK2 (0.4 nozzle)" ] diff --git a/resources/profiles/Volumic/process/Compatible speed - 0.20mm.json b/resources/profiles/Volumic/process/Compatible speed - 0.20mm.json index 21d23bf573..2036289cba 100644 --- a/resources/profiles/Volumic/process/Compatible speed - 0.20mm.json +++ b/resources/profiles/Volumic/process/Compatible speed - 0.20mm.json @@ -20,12 +20,18 @@ "travel_speed": "60", "support_speed": "60", "support_interface_speed": "60", + "skirt_speed": "60", "compatible_printers": [ "EXO42 (0.4 nozzle)", "EXO65 (0.6 nozzle)", "SH65 (0.4 nozzle)", + "EXO42 Performance (0.4 nozzle)", + "EXO65 Performance (0.6 nozzle)", + "SH65 Performance (0.4 nozzle)", "VS30MK3 (0.4 nozzle)", "VS30SC2 (0.4 nozzle)", + "VS30SC (0.4 nozzle)", + "VS30ULTRA (0.4 nozzle)", "VS30MK2 (0.4 nozzle)", "VS20MK2 (0.4 nozzle)" ] diff --git a/resources/profiles/Volumic/process/Compatible speed - 0.25mm.json b/resources/profiles/Volumic/process/Compatible speed - 0.25mm.json index 6e6aaa4927..2934445909 100644 --- a/resources/profiles/Volumic/process/Compatible speed - 0.25mm.json +++ b/resources/profiles/Volumic/process/Compatible speed - 0.25mm.json @@ -20,12 +20,18 @@ "travel_speed": "60", "support_speed": "60", "support_interface_speed": "60", + "skirt_speed": "60", "compatible_printers": [ "EXO42 (0.4 nozzle)", "EXO65 (0.6 nozzle)", "SH65 (0.4 nozzle)", + "EXO42 Performance (0.4 nozzle)", + "EXO65 Performance (0.6 nozzle)", + "SH65 Performance (0.4 nozzle)", "VS30MK3 (0.4 nozzle)", "VS30SC2 (0.4 nozzle)", + "VS30SC (0.4 nozzle)", + "VS30ULTRA (0.4 nozzle)", "VS30MK2 (0.4 nozzle)", "VS20MK2 (0.4 nozzle)" ] diff --git a/resources/profiles/Volumic/process/Compatible speed - 0.30mm.json b/resources/profiles/Volumic/process/Compatible speed - 0.30mm.json index 98ca418666..0a02b24891 100644 --- a/resources/profiles/Volumic/process/Compatible speed - 0.30mm.json +++ b/resources/profiles/Volumic/process/Compatible speed - 0.30mm.json @@ -20,12 +20,18 @@ "travel_speed": "60", "support_speed": "60", "support_interface_speed": "60", + "skirt_speed": "60", "compatible_printers": [ "EXO42 (0.4 nozzle)", "EXO65 (0.6 nozzle)", "SH65 (0.4 nozzle)", + "EXO42 Performance (0.4 nozzle)", + "EXO65 Performance (0.6 nozzle)", + "SH65 Performance (0.4 nozzle)", "VS30MK3 (0.4 nozzle)", "VS30SC2 (0.4 nozzle)", + "VS30SC (0.4 nozzle)", + "VS30ULTRA (0.4 nozzle)", "VS30MK2 (0.4 nozzle)", "VS20MK2 (0.4 nozzle)" ] diff --git a/resources/profiles/Volumic/process/Full performance - 0.10mm.json b/resources/profiles/Volumic/process/Full performance - 0.10mm.json new file mode 100644 index 0000000000..9800b5a702 --- /dev/null +++ b/resources/profiles/Volumic/process/Full performance - 0.10mm.json @@ -0,0 +1,27 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "Full performance - 0.10mm", + "from": "system", + "inherits": "fdm_process_volumic_common", + "instantiation": "true", + "layer_height": "0.1", + "initial_layer_print_height": "0.1", + "bottom_shell_layers": "8", + "top_shell_layers": "8", + "initial_layer_speed": "220", + "initial_layer_infill_speed": "220", + "outer_wall_speed": "220", + "inner_wall_speed": "280", + "internal_solid_infill_speed": "350", + "top_surface_speed": "350", + "gap_infill_speed": "350", + "sparse_infill_speed": "350", + "support_speed": "350", + "travel_speed": "600", + "compatible_printers": [ + "EXO42 Performance (0.4 nozzle)", + "EXO65 Performance (0.6 nozzle)", + "SH65 Performance (0.4 nozzle)" + ] +} diff --git a/resources/profiles/Volumic/process/Full performance - 0.15mm.json b/resources/profiles/Volumic/process/Full performance - 0.15mm.json new file mode 100644 index 0000000000..afea4b0b22 --- /dev/null +++ b/resources/profiles/Volumic/process/Full performance - 0.15mm.json @@ -0,0 +1,27 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "Full performance - 0.15mm", + "from": "system", + "inherits": "fdm_process_volumic_common", + "instantiation": "true", + "layer_height": "0.15", + "initial_layer_print_height": "0.15", + "bottom_shell_layers": "8", + "top_shell_layers": "8", + "initial_layer_speed": "220", + "initial_layer_infill_speed": "220", + "outer_wall_speed": "220", + "inner_wall_speed": "280", + "internal_solid_infill_speed": "350", + "top_surface_speed": "350", + "gap_infill_speed": "350", + "sparse_infill_speed": "350", + "support_speed": "350", + "travel_speed": "600", + "compatible_printers": [ + "EXO42 Performance (0.4 nozzle)", + "EXO65 Performance (0.6 nozzle)", + "SH65 Performance (0.4 nozzle)" + ] +} diff --git a/resources/profiles/Volumic/process/Full performance - 0.20mm.json b/resources/profiles/Volumic/process/Full performance - 0.20mm.json new file mode 100644 index 0000000000..c77721c98f --- /dev/null +++ b/resources/profiles/Volumic/process/Full performance - 0.20mm.json @@ -0,0 +1,27 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "Full performance - 0.20mm", + "from": "system", + "inherits": "fdm_process_volumic_common", + "instantiation": "true", + "layer_height": "0.2", + "initial_layer_print_height": "0.2", + "bottom_shell_layers": "6", + "top_shell_layers": "6", + "initial_layer_speed": "220", + "initial_layer_infill_speed": "220", + "outer_wall_speed": "220", + "inner_wall_speed": "280", + "internal_solid_infill_speed": "350", + "top_surface_speed": "350", + "gap_infill_speed": "350", + "sparse_infill_speed": "350", + "support_speed": "350", + "travel_speed": "600", + "compatible_printers": [ + "EXO42 Performance (0.4 nozzle)", + "EXO65 Performance (0.6 nozzle)", + "SH65 Performance (0.4 nozzle)" + ] +} diff --git a/resources/profiles/Volumic/process/Full performance - 0.25mm.json b/resources/profiles/Volumic/process/Full performance - 0.25mm.json new file mode 100644 index 0000000000..0b1f2f6cf9 --- /dev/null +++ b/resources/profiles/Volumic/process/Full performance - 0.25mm.json @@ -0,0 +1,27 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "Full performance - 0.25mm", + "from": "system", + "inherits": "fdm_process_volumic_common", + "instantiation": "true", + "layer_height": "0.25", + "initial_layer_print_height": "0.25", + "bottom_shell_layers": "4", + "top_shell_layers": "4", + "initial_layer_speed": "220", + "initial_layer_infill_speed": "220", + "outer_wall_speed": "220", + "inner_wall_speed": "280", + "internal_solid_infill_speed": "350", + "top_surface_speed": "350", + "gap_infill_speed": "350", + "sparse_infill_speed": "350", + "support_speed": "350", + "travel_speed": "600", + "compatible_printers": [ + "EXO42 Performance (0.4 nozzle)", + "EXO65 Performance (0.6 nozzle)", + "SH65 Performance (0.4 nozzle)" + ] +} diff --git a/resources/profiles/Volumic/process/Full performance - 0.30mm.json b/resources/profiles/Volumic/process/Full performance - 0.30mm.json new file mode 100644 index 0000000000..24207d0c6e --- /dev/null +++ b/resources/profiles/Volumic/process/Full performance - 0.30mm.json @@ -0,0 +1,27 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "Full performance - 0.30mm", + "from": "system", + "inherits": "fdm_process_volumic_common", + "instantiation": "true", + "layer_height": "0.3", + "initial_layer_print_height": "0.3", + "bottom_shell_layers": "3", + "top_shell_layers": "3", + "initial_layer_speed": "220", + "initial_layer_infill_speed": "220", + "outer_wall_speed": "220", + "inner_wall_speed": "280", + "internal_solid_infill_speed": "350", + "top_surface_speed": "350", + "gap_infill_speed": "350", + "sparse_infill_speed": "350", + "support_speed": "350", + "travel_speed": "600", + "compatible_printers": [ + "EXO42 Performance (0.4 nozzle)", + "EXO65 Performance (0.6 nozzle)", + "SH65 Performance (0.4 nozzle)" + ] +} diff --git a/resources/profiles/Volumic/process/High performance - 0.10mm.json b/resources/profiles/Volumic/process/High performance - 0.10mm.json new file mode 100644 index 0000000000..9ed70ee292 --- /dev/null +++ b/resources/profiles/Volumic/process/High performance - 0.10mm.json @@ -0,0 +1,27 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "High performance - 0.10mm", + "from": "system", + "inherits": "fdm_process_volumic_common", + "instantiation": "true", + "layer_height": "0.1", + "initial_layer_print_height": "0.1", + "bottom_shell_layers": "8", + "top_shell_layers": "8", + "initial_layer_speed": "160", + "initial_layer_infill_speed": "160", + "outer_wall_speed": "160", + "inner_wall_speed": "220", + "internal_solid_infill_speed": "280", + "top_surface_speed": "280", + "gap_infill_speed": "280", + "sparse_infill_speed": "280", + "support_speed": "280", + "travel_speed": "600", + "compatible_printers": [ + "EXO42 Performance (0.4 nozzle)", + "EXO65 Performance (0.6 nozzle)", + "SH65 Performance (0.4 nozzle)" + ] +} diff --git a/resources/profiles/Volumic/process/High performance - 0.15mm.json b/resources/profiles/Volumic/process/High performance - 0.15mm.json new file mode 100644 index 0000000000..f4f57d2a92 --- /dev/null +++ b/resources/profiles/Volumic/process/High performance - 0.15mm.json @@ -0,0 +1,27 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "High performance - 0.15mm", + "from": "system", + "inherits": "fdm_process_volumic_common", + "instantiation": "true", + "layer_height": "0.15", + "initial_layer_print_height": "0.15", + "bottom_shell_layers": "7", + "top_shell_layers": "7", + "initial_layer_speed": "160", + "initial_layer_infill_speed": "160", + "outer_wall_speed": "160", + "inner_wall_speed": "220", + "internal_solid_infill_speed": "280", + "top_surface_speed": "280", + "gap_infill_speed": "280", + "sparse_infill_speed": "280", + "support_speed": "280", + "travel_speed": "600", + "compatible_printers": [ + "EXO42 Performance (0.4 nozzle)", + "EXO65 Performance (0.6 nozzle)", + "SH65 Performance (0.4 nozzle)" + ] +} diff --git a/resources/profiles/Volumic/process/High performance - 0.20mm.json b/resources/profiles/Volumic/process/High performance - 0.20mm.json new file mode 100644 index 0000000000..a0e991ebad --- /dev/null +++ b/resources/profiles/Volumic/process/High performance - 0.20mm.json @@ -0,0 +1,27 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "High performance - 0.20mm", + "from": "system", + "inherits": "fdm_process_volumic_common", + "instantiation": "true", + "layer_height": "0.2", + "initial_layer_print_height": "0.2", + "bottom_shell_layers": "5", + "top_shell_layers": "5", + "initial_layer_speed": "160", + "initial_layer_infill_speed": "160", + "outer_wall_speed": "160", + "inner_wall_speed": "220", + "internal_solid_infill_speed": "280", + "top_surface_speed": "280", + "gap_infill_speed": "280", + "sparse_infill_speed": "280", + "support_speed": "280", + "travel_speed": "600", + "compatible_printers": [ + "EXO42 Performance (0.4 nozzle)", + "EXO65 Performance (0.6 nozzle)", + "SH65 Performance (0.4 nozzle)" + ] +} diff --git a/resources/profiles/Volumic/process/High performance - 0.25mm.json b/resources/profiles/Volumic/process/High performance - 0.25mm.json new file mode 100644 index 0000000000..8fa3473f53 --- /dev/null +++ b/resources/profiles/Volumic/process/High performance - 0.25mm.json @@ -0,0 +1,27 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "High performance - 0.25mm", + "from": "system", + "inherits": "fdm_process_volumic_common", + "instantiation": "true", + "layer_height": "0.25", + "initial_layer_print_height": "0.25", + "bottom_shell_layers": "3", + "top_shell_layers": "3", + "initial_layer_speed": "160", + "initial_layer_infill_speed": "160", + "outer_wall_speed": "160", + "inner_wall_speed": "220", + "internal_solid_infill_speed": "280", + "top_surface_speed": "280", + "gap_infill_speed": "280", + "sparse_infill_speed": "280", + "support_speed": "280", + "travel_speed": "600", + "compatible_printers": [ + "EXO42 Performance (0.4 nozzle)", + "EXO65 Performance (0.6 nozzle)", + "SH65 Performance (0.4 nozzle)" + ] +} diff --git a/resources/profiles/Volumic/process/High performance - 0.30mm.json b/resources/profiles/Volumic/process/High performance - 0.30mm.json new file mode 100644 index 0000000000..83b327113d --- /dev/null +++ b/resources/profiles/Volumic/process/High performance - 0.30mm.json @@ -0,0 +1,27 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "High performance - 0.30mm", + "from": "system", + "inherits": "fdm_process_volumic_common", + "instantiation": "true", + "layer_height": "0.3", + "initial_layer_print_height": "0.3", + "bottom_shell_layers": "3", + "top_shell_layers": "3", + "initial_layer_speed": "160", + "initial_layer_infill_speed": "160", + "outer_wall_speed": "160", + "inner_wall_speed": "220", + "internal_solid_infill_speed": "280", + "top_surface_speed": "280", + "gap_infill_speed": "280", + "sparse_infill_speed": "280", + "support_speed": "280", + "travel_speed": "600", + "compatible_printers": [ + "EXO42 Performance (0.4 nozzle)", + "EXO65 Performance (0.6 nozzle)", + "SH65 Performance (0.4 nozzle)" + ] +} diff --git a/resources/profiles/Volumic/process/High speed - 0.10mm.json b/resources/profiles/Volumic/process/High speed - 0.10mm.json index 0b45c946b0..a745026ca5 100644 --- a/resources/profiles/Volumic/process/High speed - 0.10mm.json +++ b/resources/profiles/Volumic/process/High speed - 0.10mm.json @@ -20,11 +20,14 @@ "travel_speed": "135", "support_speed": "135", "support_interface_speed": "135", + "skirt_speed": "135", "compatible_printers": [ "EXO42 (0.4 nozzle)", "EXO65 (0.6 nozzle)", "SH65 (0.4 nozzle)", "VS30MK3 (0.4 nozzle)", - "VS30SC2 (0.4 nozzle)" + "VS30SC2 (0.4 nozzle)", + "VS30SC (0.4 nozzle)", + "VS30ULTRA (0.4 nozzle)" ] } diff --git a/resources/profiles/Volumic/process/High speed - 0.15mm.json b/resources/profiles/Volumic/process/High speed - 0.15mm.json index 5d2d1885dc..5681b7218b 100644 --- a/resources/profiles/Volumic/process/High speed - 0.15mm.json +++ b/resources/profiles/Volumic/process/High speed - 0.15mm.json @@ -20,11 +20,14 @@ "travel_speed": "135", "support_speed": "135", "support_interface_speed": "135", + "skirt_speed": "135", "compatible_printers": [ "EXO42 (0.4 nozzle)", "EXO65 (0.6 nozzle)", "SH65 (0.4 nozzle)", "VS30MK3 (0.4 nozzle)", - "VS30SC2 (0.4 nozzle)" + "VS30SC2 (0.4 nozzle)", + "VS30SC (0.4 nozzle)", + "VS30ULTRA (0.4 nozzle)" ] } diff --git a/resources/profiles/Volumic/process/High speed - 0.20mm.json b/resources/profiles/Volumic/process/High speed - 0.20mm.json index 69f413874c..7a3ecb997a 100644 --- a/resources/profiles/Volumic/process/High speed - 0.20mm.json +++ b/resources/profiles/Volumic/process/High speed - 0.20mm.json @@ -20,11 +20,14 @@ "travel_speed": "135", "support_speed": "135", "support_interface_speed": "135", + "skirt_speed": "135", "compatible_printers": [ "EXO42 (0.4 nozzle)", "EXO65 (0.6 nozzle)", "SH65 (0.4 nozzle)", "VS30MK3 (0.4 nozzle)", - "VS30SC2 (0.4 nozzle)" + "VS30SC2 (0.4 nozzle)", + "VS30SC (0.4 nozzle)", + "VS30ULTRA (0.4 nozzle)" ] } diff --git a/resources/profiles/Volumic/process/High speed - 0.25mm.json b/resources/profiles/Volumic/process/High speed - 0.25mm.json index ac2edb9caa..663cc1de7c 100644 --- a/resources/profiles/Volumic/process/High speed - 0.25mm.json +++ b/resources/profiles/Volumic/process/High speed - 0.25mm.json @@ -20,11 +20,14 @@ "travel_speed": "135", "support_speed": "135", "support_interface_speed": "135", + "skirt_speed": "135", "compatible_printers": [ "EXO42 (0.4 nozzle)", "EXO65 (0.6 nozzle)", "SH65 (0.4 nozzle)", "VS30MK3 (0.4 nozzle)", - "VS30SC2 (0.4 nozzle)" + "VS30SC2 (0.4 nozzle)", + "VS30SC (0.4 nozzle)", + "VS30ULTRA (0.4 nozzle)" ] } diff --git a/resources/profiles/Volumic/process/High speed - 0.30mm.json b/resources/profiles/Volumic/process/High speed - 0.30mm.json index be775f91fd..db9ba2a82f 100644 --- a/resources/profiles/Volumic/process/High speed - 0.30mm.json +++ b/resources/profiles/Volumic/process/High speed - 0.30mm.json @@ -20,11 +20,14 @@ "travel_speed": "135", "support_speed": "135", "support_interface_speed": "135", + "skirt_speed": "135", "compatible_printers": [ "EXO42 (0.4 nozzle)", "EXO65 (0.6 nozzle)", "SH65 (0.4 nozzle)", "VS30MK3 (0.4 nozzle)", - "VS30SC2 (0.4 nozzle)" + "VS30SC2 (0.4 nozzle)", + "VS30SC (0.4 nozzle)", + "VS30ULTRA (0.4 nozzle)" ] } diff --git a/resources/profiles/Volumic/process/Normal performance - 0.10mm.json b/resources/profiles/Volumic/process/Normal performance - 0.10mm.json new file mode 100644 index 0000000000..d6d747461b --- /dev/null +++ b/resources/profiles/Volumic/process/Normal performance - 0.10mm.json @@ -0,0 +1,27 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "Normal performance - 0.10mm", + "from": "system", + "inherits": "fdm_process_volumic_common", + "instantiation": "true", + "layer_height": "0.1", + "initial_layer_print_height": "0.1", + "bottom_shell_layers": "8", + "top_shell_layers": "8", + "initial_layer_speed": "130", + "initial_layer_infill_speed": "130", + "outer_wall_speed": "130", + "inner_wall_speed": "180", + "internal_solid_infill_speed": "220", + "top_surface_speed": "220", + "gap_infill_speed": "220", + "sparse_infill_speed": "220", + "support_speed": "220", + "travel_speed": "600", + "compatible_printers": [ + "EXO42 Performance (0.4 nozzle)", + "EXO65 Performance (0.6 nozzle)", + "SH65 Performance (0.4 nozzle)" + ] +} diff --git a/resources/profiles/Volumic/process/Normal performance - 0.15mm.json b/resources/profiles/Volumic/process/Normal performance - 0.15mm.json new file mode 100644 index 0000000000..ddc79b253a --- /dev/null +++ b/resources/profiles/Volumic/process/Normal performance - 0.15mm.json @@ -0,0 +1,27 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "Normal performance - 0.15mm", + "from": "system", + "inherits": "fdm_process_volumic_common", + "instantiation": "true", + "layer_height": "0.15", + "initial_layer_print_height": "0.15", + "bottom_shell_layers": "7", + "top_shell_layers": "7", + "initial_layer_speed": "130", + "initial_layer_infill_speed": "130", + "outer_wall_speed": "130", + "inner_wall_speed": "180", + "internal_solid_infill_speed": "220", + "top_surface_speed": "220", + "gap_infill_speed": "220", + "sparse_infill_speed": "220", + "support_speed": "220", + "travel_speed": "600", + "compatible_printers": [ + "EXO42 Performance (0.4 nozzle)", + "EXO65 Performance (0.6 nozzle)", + "SH65 Performance (0.4 nozzle)" + ] +} diff --git a/resources/profiles/Volumic/process/Normal performance - 0.20mm.json b/resources/profiles/Volumic/process/Normal performance - 0.20mm.json new file mode 100644 index 0000000000..e99ceb79c4 --- /dev/null +++ b/resources/profiles/Volumic/process/Normal performance - 0.20mm.json @@ -0,0 +1,27 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "Normal performance - 0.20mm", + "from": "system", + "inherits": "fdm_process_volumic_common", + "instantiation": "true", + "layer_height": "0.2", + "initial_layer_print_height": "0.2", + "bottom_shell_layers": "5", + "top_shell_layers": "5", + "initial_layer_speed": "130", + "initial_layer_infill_speed": "130", + "outer_wall_speed": "130", + "inner_wall_speed": "180", + "internal_solid_infill_speed": "220", + "top_surface_speed": "220", + "gap_infill_speed": "220", + "sparse_infill_speed": "220", + "support_speed": "220", + "travel_speed": "600", + "compatible_printers": [ + "EXO42 Performance (0.4 nozzle)", + "EXO65 Performance (0.6 nozzle)", + "SH65 Performance (0.4 nozzle)" + ] +} diff --git a/resources/profiles/Volumic/process/Normal performance - 0.25mm.json b/resources/profiles/Volumic/process/Normal performance - 0.25mm.json new file mode 100644 index 0000000000..05292d03b6 --- /dev/null +++ b/resources/profiles/Volumic/process/Normal performance - 0.25mm.json @@ -0,0 +1,27 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "Normal performance - 0.25mm", + "from": "system", + "inherits": "fdm_process_volumic_common", + "instantiation": "true", + "layer_height": "0.25", + "initial_layer_print_height": "0.25", + "bottom_shell_layers": "3", + "top_shell_layers": "3", + "initial_layer_speed": "130", + "initial_layer_infill_speed": "130", + "outer_wall_speed": "130", + "inner_wall_speed": "180", + "internal_solid_infill_speed": "220", + "top_surface_speed": "220", + "gap_infill_speed": "220", + "sparse_infill_speed": "220", + "support_speed": "220", + "travel_speed": "600", + "compatible_printers": [ + "EXO42 Performance (0.4 nozzle)", + "EXO65 Performance (0.6 nozzle)", + "SH65 Performance (0.4 nozzle)" + ] +} diff --git a/resources/profiles/Volumic/process/Normal performance - 0.30mm.json b/resources/profiles/Volumic/process/Normal performance - 0.30mm.json new file mode 100644 index 0000000000..f5f135f9c1 --- /dev/null +++ b/resources/profiles/Volumic/process/Normal performance - 0.30mm.json @@ -0,0 +1,27 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "Normal performance - 0.30mm", + "from": "system", + "inherits": "fdm_process_volumic_common", + "instantiation": "true", + "layer_height": "0.3", + "initial_layer_print_height": "0.3", + "bottom_shell_layers": "3", + "top_shell_layers": "3", + "initial_layer_speed": "130", + "initial_layer_infill_speed": "130", + "outer_wall_speed": "130", + "inner_wall_speed": "180", + "internal_solid_infill_speed": "220", + "top_surface_speed": "220", + "gap_infill_speed": "220", + "sparse_infill_speed": "220", + "support_speed": "220", + "travel_speed": "600", + "compatible_printers": [ + "EXO42 Performance (0.4 nozzle)", + "EXO65 Performance (0.6 nozzle)", + "SH65 Performance (0.4 nozzle)" + ] +} diff --git a/resources/profiles/Volumic/process/Normal speed - 0.10mm.json b/resources/profiles/Volumic/process/Normal speed - 0.10mm.json index bebbbfd4a9..2590f0a003 100644 --- a/resources/profiles/Volumic/process/Normal speed - 0.10mm.json +++ b/resources/profiles/Volumic/process/Normal speed - 0.10mm.json @@ -20,11 +20,14 @@ "travel_speed": "135", "support_speed": "100", "support_interface_speed": "100", + "skirt_speed": "100", "compatible_printers": [ "EXO42 (0.4 nozzle)", "EXO65 (0.6 nozzle)", "SH65 (0.4 nozzle)", "VS30MK3 (0.4 nozzle)", - "VS30SC2 (0.4 nozzle)" + "VS30SC2 (0.4 nozzle)", + "VS30SC (0.4 nozzle)", + "VS30ULTRA (0.4 nozzle)" ] } diff --git a/resources/profiles/Volumic/process/Normal speed - 0.15mm.json b/resources/profiles/Volumic/process/Normal speed - 0.15mm.json index 63bdf5290f..d75a61deb4 100644 --- a/resources/profiles/Volumic/process/Normal speed - 0.15mm.json +++ b/resources/profiles/Volumic/process/Normal speed - 0.15mm.json @@ -20,11 +20,14 @@ "travel_speed": "135", "support_speed": "100", "support_interface_speed": "100", + "skirt_speed": "100", "compatible_printers": [ "EXO42 (0.4 nozzle)", "EXO65 (0.6 nozzle)", "SH65 (0.4 nozzle)", "VS30MK3 (0.4 nozzle)", - "VS30SC2 (0.4 nozzle)" + "VS30SC2 (0.4 nozzle)", + "VS30SC (0.4 nozzle)", + "VS30ULTRA (0.4 nozzle)" ] } diff --git a/resources/profiles/Volumic/process/Normal speed - 0.20mm.json b/resources/profiles/Volumic/process/Normal speed - 0.20mm.json index 8c181ffd48..11f9002d61 100644 --- a/resources/profiles/Volumic/process/Normal speed - 0.20mm.json +++ b/resources/profiles/Volumic/process/Normal speed - 0.20mm.json @@ -20,11 +20,14 @@ "travel_speed": "135", "support_speed": "100", "support_interface_speed": "100", + "skirt_speed": "100", "compatible_printers": [ "EXO42 (0.4 nozzle)", "EXO65 (0.6 nozzle)", "SH65 (0.4 nozzle)", "VS30MK3 (0.4 nozzle)", - "VS30SC2 (0.4 nozzle)" + "VS30SC2 (0.4 nozzle)", + "VS30SC (0.4 nozzle)", + "VS30ULTRA (0.4 nozzle)" ] } diff --git a/resources/profiles/Volumic/process/Normal speed - 0.25mm.json b/resources/profiles/Volumic/process/Normal speed - 0.25mm.json index 410b708058..b257ef9fd8 100644 --- a/resources/profiles/Volumic/process/Normal speed - 0.25mm.json +++ b/resources/profiles/Volumic/process/Normal speed - 0.25mm.json @@ -20,11 +20,14 @@ "travel_speed": "135", "support_speed": "100", "support_interface_speed": "100", + "skirt_speed": "100", "compatible_printers": [ "EXO42 (0.4 nozzle)", "EXO65 (0.6 nozzle)", "SH65 (0.4 nozzle)", "VS30MK3 (0.4 nozzle)", - "VS30SC2 (0.4 nozzle)" + "VS30SC2 (0.4 nozzle)", + "VS30SC (0.4 nozzle)", + "VS30ULTRA (0.4 nozzle)" ] } diff --git a/resources/profiles/Volumic/process/Normal speed - 0.30mm.json b/resources/profiles/Volumic/process/Normal speed - 0.30mm.json index 74ff4371db..38918f8129 100644 --- a/resources/profiles/Volumic/process/Normal speed - 0.30mm.json +++ b/resources/profiles/Volumic/process/Normal speed - 0.30mm.json @@ -20,11 +20,14 @@ "travel_speed": "135", "support_speed": "100", "support_interface_speed": "100", + "skirt_speed": "100", "compatible_printers": [ "EXO42 (0.4 nozzle)", "EXO65 (0.6 nozzle)", "SH65 (0.4 nozzle)", "VS30MK3 (0.4 nozzle)", - "VS30SC2 (0.4 nozzle)" + "VS30SC2 (0.4 nozzle)", + "VS30SC (0.4 nozzle)", + "VS30ULTRA (0.4 nozzle)" ] } diff --git a/resources/profiles/Volumic/process/Very high speed - 0.10mm.json b/resources/profiles/Volumic/process/Very high speed - 0.10mm.json index ea747e1115..aee6333fc6 100644 --- a/resources/profiles/Volumic/process/Very high speed - 0.10mm.json +++ b/resources/profiles/Volumic/process/Very high speed - 0.10mm.json @@ -20,10 +20,13 @@ "travel_speed": "170", "support_speed": "170", "support_interface_speed": "170", + "skirt_speed": "170", "compatible_printers": [ "EXO42 (0.4 nozzle)", "EXO65 (0.6 nozzle)", "SH65 (0.4 nozzle)", - "VS30SC2 (0.4 nozzle)" + "VS30SC2 (0.4 nozzle)", + "VS30SC (0.4 nozzle)", + "VS30ULTRA (0.4 nozzle)" ] } diff --git a/resources/profiles/Volumic/process/Very high speed - 0.15mm.json b/resources/profiles/Volumic/process/Very high speed - 0.15mm.json index 3ce8fad5f5..153661f38d 100644 --- a/resources/profiles/Volumic/process/Very high speed - 0.15mm.json +++ b/resources/profiles/Volumic/process/Very high speed - 0.15mm.json @@ -20,10 +20,13 @@ "travel_speed": "170", "support_speed": "170", "support_interface_speed": "170", + "skirt_speed": "170", "compatible_printers": [ "EXO42 (0.4 nozzle)", "EXO65 (0.6 nozzle)", "SH65 (0.4 nozzle)", - "VS30SC2 (0.4 nozzle)" + "VS30SC2 (0.4 nozzle)", + "VS30SC (0.4 nozzle)", + "VS30ULTRA (0.4 nozzle)" ] } diff --git a/resources/profiles/Volumic/process/Very high speed - 0.20mm.json b/resources/profiles/Volumic/process/Very high speed - 0.20mm.json index 0b78bdb993..d6d04ae8a6 100644 --- a/resources/profiles/Volumic/process/Very high speed - 0.20mm.json +++ b/resources/profiles/Volumic/process/Very high speed - 0.20mm.json @@ -20,10 +20,13 @@ "travel_speed": "170", "support_speed": "170", "support_interface_speed": "170", + "skirt_speed": "170", "compatible_printers": [ "EXO42 (0.4 nozzle)", "EXO65 (0.6 nozzle)", "SH65 (0.4 nozzle)", - "VS30SC2 (0.4 nozzle)" + "VS30SC2 (0.4 nozzle)", + "VS30SC (0.4 nozzle)", + "VS30ULTRA (0.4 nozzle)" ] } diff --git a/resources/profiles/Volumic/process/Very high speed - 0.25mm.json b/resources/profiles/Volumic/process/Very high speed - 0.25mm.json index 1d24acf22f..a674df9e4d 100644 --- a/resources/profiles/Volumic/process/Very high speed - 0.25mm.json +++ b/resources/profiles/Volumic/process/Very high speed - 0.25mm.json @@ -20,10 +20,13 @@ "travel_speed": "170", "support_speed": "170", "support_interface_speed": "170", + "skirt_speed": "170", "compatible_printers": [ "EXO42 (0.4 nozzle)", "EXO65 (0.6 nozzle)", "SH65 (0.4 nozzle)", - "VS30SC2 (0.4 nozzle)" + "VS30SC2 (0.4 nozzle)", + "VS30SC (0.4 nozzle)", + "VS30ULTRA (0.4 nozzle)" ] } diff --git a/resources/profiles/Volumic/process/Very high speed - 0.30mm.json b/resources/profiles/Volumic/process/Very high speed - 0.30mm.json index 3660103987..2555f00509 100644 --- a/resources/profiles/Volumic/process/Very high speed - 0.30mm.json +++ b/resources/profiles/Volumic/process/Very high speed - 0.30mm.json @@ -20,10 +20,13 @@ "travel_speed": "170", "support_speed": "170", "support_interface_speed": "170", + "skirt_speed": "170", "compatible_printers": [ "EXO42 (0.4 nozzle)", "EXO65 (0.6 nozzle)", "SH65 (0.4 nozzle)", - "VS30SC2 (0.4 nozzle)" + "VS30SC2 (0.4 nozzle)", + "VS30SC (0.4 nozzle)", + "VS30ULTRA (0.4 nozzle)" ] } diff --git a/resources/profiles/Volumic/process/fdm_process_volumic_common.json b/resources/profiles/Volumic/process/fdm_process_volumic_common.json index a371e0fbad..b66bd1d283 100644 --- a/resources/profiles/Volumic/process/fdm_process_volumic_common.json +++ b/resources/profiles/Volumic/process/fdm_process_volumic_common.json @@ -3,16 +3,6 @@ "name": "fdm_process_volumic_common", "from": "system", "instantiation": "false", - "default_acceleration": ["0"], - "outer_wall_acceleration": ["0"], - "inner_wall_acceleration": ["0"], - "bridge_acceleration": ["0"], - "sparse_infill_acceleration": ["0"], - "internal_solid_infill_acceleration": ["0"], - "initial_layer_acceleration": ["0"], - "top_surface_acceleration": ["0"], - "travel_acceleration": ["0"], - "precise_outer_wall": "1", "enable_overhang_speed": "1", "adaptive_layer_height": "0", @@ -23,6 +13,18 @@ "bottom_surface_pattern": "monotonic", "bottom_shell_layers": "5", "bottom_shell_thickness": "0", + "accel_to_decel_enable": "0", + + "default_acceleration": ["0","0"], + "outer_wall_acceleration": ["0","0"], + "inner_wall_acceleration": ["0","0"], + "bridge_acceleration": ["0","0"], + "sparse_infill_acceleration": ["0","0"], + "internal_solid_infill_acceleration": ["0","0"], + "initial_layer_acceleration": ["0","0"], + "top_surface_acceleration": ["0","0"], + "travel_acceleration": ["0","0"], + "bridge_flow": "1", "bridge_speed": "60", "internal_bridge_speed": "100%", @@ -35,14 +37,14 @@ "draft_shield": "disabled", "elefant_foot_compensation": "0", "enable_arc_fitting": "0", - "outer_wall_line_width": "100%", - "line_width": "100%", - "initial_layer_line_width": "100%", - "sparse_infill_line_width": "100%", - "inner_wall_line_width": "100%", - "internal_solid_infill_line_width": "100%", - "support_line_width": "100%", - "top_surface_line_width": "100%", + "outer_wall_line_width": "120%", + "line_width": "120%", + "initial_layer_line_width": "120%", + "sparse_infill_line_width": "120%", + "inner_wall_line_width": "120%", + "internal_solid_infill_line_width": "120%", + "support_line_width": "120%", + "top_surface_line_width": "120%", "wall_infill_order": "inner wall/outer wall/infill", "infill_direction": "45", "sparse_infill_density": "25%", @@ -51,9 +53,9 @@ "infill_anchor":"20%", "infill_wall_overlap": "20%", "interface_shells": "0", - "ironing_flow": "25%", + "ironing_flow": "30%", "ironing_spacing": "0.1", - "ironing_speed": "15", + "ironing_speed": "40", "ironing_type": "no ironing", "layer_height": "0.2", "reduce_infill_retraction": "1", @@ -69,7 +71,7 @@ "seam_position": "aligned", "skirt_distance": "2", "skirt_height": "1", - "support_on_buildplate_only": "1", + "raft_first_layer_expansion": "0", "skirt_loops": "1", "minimum_sparse_infill_area": "15", "spiral_mode": "0", @@ -78,7 +80,7 @@ "resolution": "0.01", "support_type": "normal(auto)", "support_style": "default", - "support_on_build_plate_only": "0", + "support_on_build_plate_only": "1", "support_top_z_distance": "0.1", "support_bottom_z_distance": "0.1", "support_filament": "0", @@ -91,7 +93,7 @@ "support_base_pattern": "lightning", "support_base_pattern_spacing": "2.5", "support_angle": "45", - "support_threshold_angle": "50", + "support_threshold_angle": "30", "support_object_xy_distance": "0.35", "tree_support_branch_angle": "50", "tree_support_wall_count": "0", diff --git a/resources/profiles/Voron.json b/resources/profiles/Voron.json index a821cfc7c0..77b576e5ba 100644 --- a/resources/profiles/Voron.json +++ b/resources/profiles/Voron.json @@ -235,84 +235,7 @@ "sub_path": "process/0.35mm Extra Draft 0.5 nozzle @Voron.json" } ], - "filament_list": [ - { - "name": "fdm_filament_common", - "sub_path": "filament/fdm_filament_common.json" - }, - { - "name": "fdm_filament_pla", - "sub_path": "filament/fdm_filament_pla.json" - }, - { - "name": "fdm_filament_tpu", - "sub_path": "filament/fdm_filament_tpu.json" - }, - { - "name": "fdm_filament_pet", - "sub_path": "filament/fdm_filament_pet.json" - }, - { - "name": "fdm_filament_abs", - "sub_path": "filament/fdm_filament_abs.json" - }, - { - "name": "fdm_filament_pc", - "sub_path": "filament/fdm_filament_pc.json" - }, - { - "name": "fdm_filament_asa", - "sub_path": "filament/fdm_filament_asa.json" - }, - { - "name": "fdm_filament_pva", - "sub_path": "filament/fdm_filament_pva.json" - }, - { - "name": "fdm_filament_pa", - "sub_path": "filament/fdm_filament_pa.json" - }, - { - "name": "Voron Generic PLA", - "sub_path": "filament/Voron Generic PLA.json" - }, - { - "name": "Voron Generic PLA-CF", - "sub_path": "filament/Voron Generic PLA-CF.json" - }, - { - "name": "Voron Generic PETG", - "sub_path": "filament/Voron Generic PETG.json" - }, - { - "name": "Voron Generic ABS", - "sub_path": "filament/Voron Generic ABS.json" - }, - { - "name": "Voron Generic TPU", - "sub_path": "filament/Voron Generic TPU.json" - }, - { - "name": "Voron Generic ASA", - "sub_path": "filament/Voron Generic ASA.json" - }, - { - "name": "Voron Generic PC", - "sub_path": "filament/Voron Generic PC.json" - }, - { - "name": "Voron Generic PVA", - "sub_path": "filament/Voron Generic PVA.json" - }, - { - "name": "Voron Generic PA", - "sub_path": "filament/Voron Generic PA.json" - }, - { - "name": "Voron Generic PA-CF", - "sub_path": "filament/Voron Generic PA-CF.json" - } - ], + "filament_list": [], "machine_list": [ { "name": "fdm_machine_common", @@ -579,4 +502,4 @@ "sub_path": "machine/Voron Switchwire 250 1.0 nozzle.json" } ] -} +} \ No newline at end of file diff --git a/resources/profiles/Voron/filament/Voron Generic ABS.json b/resources/profiles/Voron/filament/Voron Generic ABS.json deleted file mode 100644 index a93df9012f..0000000000 --- a/resources/profiles/Voron/filament/Voron Generic ABS.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFB99", - "setting_id": "GFSA04", - "name": "Voron Generic ABS", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_abs", - "filament_flow_ratio": [ - "0.926" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "compatible_printers": [ - "Voron 2.4 250 0.4 nozzle", - "Voron 2.4 250 0.15 nozzle", - "Voron 2.4 250 0.2 nozzle", - "Voron 2.4 250 0.25 nozzle", - "Voron 2.4 250 0.5 nozzle", - "Voron 2.4 250 0.6 nozzle", - "Voron 2.4 250 0.8 nozzle", - "Voron 2.4 250 1.0 nozzle", - "Voron 2.4 300 0.4 nozzle", - "Voron 2.4 300 0.15 nozzle", - "Voron 2.4 300 0.2 nozzle", - "Voron 2.4 300 0.25 nozzle", - "Voron 2.4 300 0.5 nozzle", - "Voron 2.4 300 0.6 nozzle", - "Voron 2.4 300 0.8 nozzle", - "Voron 2.4 300 1.0 nozzle", - "Voron 2.4 350 0.4 nozzle", - "Voron 2.4 350 0.15 nozzle", - "Voron 2.4 350 0.2 nozzle", - "Voron 2.4 350 0.25 nozzle", - "Voron 2.4 350 0.5 nozzle", - "Voron 2.4 350 0.6 nozzle", - "Voron 2.4 350 0.8 nozzle", - "Voron 2.4 350 1.0 nozzle", - "Voron Trident 250 0.4 nozzle", - "Voron Trident 250 0.15 nozzle", - "Voron Trident 250 0.2 nozzle", - "Voron Trident 250 0.25 nozzle", - "Voron Trident 250 0.5 nozzle", - "Voron Trident 250 0.6 nozzle", - "Voron Trident 250 0.8 nozzle", - "Voron Trident 250 1.0 nozzle", - "Voron Trident 300 0.4 nozzle", - "Voron Trident 300 0.15 nozzle", - "Voron Trident 300 0.2 nozzle", - "Voron Trident 300 0.25 nozzle", - "Voron Trident 300 0.5 nozzle", - "Voron Trident 300 0.6 nozzle", - "Voron Trident 300 0.8 nozzle", - "Voron Trident 300 1.0 nozzle", - "Voron Trident 350 0.4 nozzle", - "Voron Trident 350 0.15 nozzle", - "Voron Trident 350 0.2 nozzle", - "Voron Trident 350 0.25 nozzle", - "Voron Trident 350 0.5 nozzle", - "Voron Trident 350 0.6 nozzle", - "Voron Trident 350 0.8 nozzle", - "Voron Trident 350 1.0 nozzle", - "Voron 0.1 0.4 nozzle", - "Voron 0.1 0.15 nozzle", - "Voron 0.1 0.2 nozzle", - "Voron 0.1 0.25 nozzle", - "Voron 0.1 0.5 nozzle", - "Voron 0.1 0.6 nozzle", - "Voron 0.1 0.8 nozzle", - "Voron 0.1 1.0 nozzle", - "Voron Switchwire 250 0.4 nozzle", - "Voron Switchwire 250 0.15 nozzle", - "Voron Switchwire 250 0.2 nozzle", - "Voron Switchwire 250 0.25 nozzle", - "Voron Switchwire 250 0.5 nozzle", - "Voron Switchwire 250 0.6 nozzle", - "Voron Switchwire 250 0.8 nozzle", - "Voron Switchwire 250 1.0 nozzle" - ] -} diff --git a/resources/profiles/Voron/filament/Voron Generic ASA.json b/resources/profiles/Voron/filament/Voron Generic ASA.json deleted file mode 100644 index 2c323cb525..0000000000 --- a/resources/profiles/Voron/filament/Voron Generic ASA.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFB98", - "setting_id": "GFSA04", - "name": "Voron Generic ASA", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_asa", - "filament_flow_ratio": [ - "0.93" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "compatible_printers": [ - "Voron 2.4 250 0.4 nozzle", - "Voron 2.4 250 0.15 nozzle", - "Voron 2.4 250 0.2 nozzle", - "Voron 2.4 250 0.25 nozzle", - "Voron 2.4 250 0.5 nozzle", - "Voron 2.4 250 0.6 nozzle", - "Voron 2.4 250 0.8 nozzle", - "Voron 2.4 250 1.0 nozzle", - "Voron 2.4 300 0.4 nozzle", - "Voron 2.4 300 0.15 nozzle", - "Voron 2.4 300 0.2 nozzle", - "Voron 2.4 300 0.25 nozzle", - "Voron 2.4 300 0.5 nozzle", - "Voron 2.4 300 0.6 nozzle", - "Voron 2.4 300 0.8 nozzle", - "Voron 2.4 300 1.0 nozzle", - "Voron 2.4 350 0.4 nozzle", - "Voron 2.4 350 0.15 nozzle", - "Voron 2.4 350 0.2 nozzle", - "Voron 2.4 350 0.25 nozzle", - "Voron 2.4 350 0.5 nozzle", - "Voron 2.4 350 0.6 nozzle", - "Voron 2.4 350 0.8 nozzle", - "Voron 2.4 350 1.0 nozzle", - "Voron Trident 250 0.4 nozzle", - "Voron Trident 250 0.15 nozzle", - "Voron Trident 250 0.2 nozzle", - "Voron Trident 250 0.25 nozzle", - "Voron Trident 250 0.5 nozzle", - "Voron Trident 250 0.6 nozzle", - "Voron Trident 250 0.8 nozzle", - "Voron Trident 250 1.0 nozzle", - "Voron Trident 300 0.4 nozzle", - "Voron Trident 300 0.15 nozzle", - "Voron Trident 300 0.2 nozzle", - "Voron Trident 300 0.25 nozzle", - "Voron Trident 300 0.5 nozzle", - "Voron Trident 300 0.6 nozzle", - "Voron Trident 300 0.8 nozzle", - "Voron Trident 300 1.0 nozzle", - "Voron Trident 350 0.4 nozzle", - "Voron Trident 350 0.15 nozzle", - "Voron Trident 350 0.2 nozzle", - "Voron Trident 350 0.25 nozzle", - "Voron Trident 350 0.5 nozzle", - "Voron Trident 350 0.6 nozzle", - "Voron Trident 350 0.8 nozzle", - "Voron Trident 350 1.0 nozzle", - "Voron 0.1 0.4 nozzle", - "Voron 0.1 0.15 nozzle", - "Voron 0.1 0.2 nozzle", - "Voron 0.1 0.25 nozzle", - "Voron 0.1 0.5 nozzle", - "Voron 0.1 0.6 nozzle", - "Voron 0.1 0.8 nozzle", - "Voron 0.1 1.0 nozzle", - "Voron Switchwire 250 0.4 nozzle", - "Voron Switchwire 250 0.15 nozzle", - "Voron Switchwire 250 0.2 nozzle", - "Voron Switchwire 250 0.25 nozzle", - "Voron Switchwire 250 0.5 nozzle", - "Voron Switchwire 250 0.6 nozzle", - "Voron Switchwire 250 0.8 nozzle", - "Voron Switchwire 250 1.0 nozzle" - ] -} diff --git a/resources/profiles/Voron/filament/Voron Generic PA-CF.json b/resources/profiles/Voron/filament/Voron Generic PA-CF.json deleted file mode 100644 index 30e5136fd0..0000000000 --- a/resources/profiles/Voron/filament/Voron Generic PA-CF.json +++ /dev/null @@ -1,87 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFN98", - "setting_id": "GFSA04", - "name": "Voron Generic PA-CF", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pa", - "filament_type": [ - "PA-CF" - ], - "nozzle_temperature_initial_layer": [ - "280" - ], - "nozzle_temperature": [ - "280" - ], - "filament_max_volumetric_speed": [ - "8" - ], - "compatible_printers": [ - "Voron 2.4 250 0.4 nozzle", - "Voron 2.4 250 0.15 nozzle", - "Voron 2.4 250 0.2 nozzle", - "Voron 2.4 250 0.25 nozzle", - "Voron 2.4 250 0.5 nozzle", - "Voron 2.4 250 0.6 nozzle", - "Voron 2.4 250 0.8 nozzle", - "Voron 2.4 250 1.0 nozzle", - "Voron 2.4 300 0.4 nozzle", - "Voron 2.4 300 0.15 nozzle", - "Voron 2.4 300 0.2 nozzle", - "Voron 2.4 300 0.25 nozzle", - "Voron 2.4 300 0.5 nozzle", - "Voron 2.4 300 0.6 nozzle", - "Voron 2.4 300 0.8 nozzle", - "Voron 2.4 300 1.0 nozzle", - "Voron 2.4 350 0.4 nozzle", - "Voron 2.4 350 0.15 nozzle", - "Voron 2.4 350 0.2 nozzle", - "Voron 2.4 350 0.25 nozzle", - "Voron 2.4 350 0.5 nozzle", - "Voron 2.4 350 0.6 nozzle", - "Voron 2.4 350 0.8 nozzle", - "Voron 2.4 350 1.0 nozzle", - "Voron Trident 250 0.4 nozzle", - "Voron Trident 250 0.15 nozzle", - "Voron Trident 250 0.2 nozzle", - "Voron Trident 250 0.25 nozzle", - "Voron Trident 250 0.5 nozzle", - "Voron Trident 250 0.6 nozzle", - "Voron Trident 250 0.8 nozzle", - "Voron Trident 250 1.0 nozzle", - "Voron Trident 300 0.4 nozzle", - "Voron Trident 300 0.15 nozzle", - "Voron Trident 300 0.2 nozzle", - "Voron Trident 300 0.25 nozzle", - "Voron Trident 300 0.5 nozzle", - "Voron Trident 300 0.6 nozzle", - "Voron Trident 300 0.8 nozzle", - "Voron Trident 300 1.0 nozzle", - "Voron Trident 350 0.4 nozzle", - "Voron Trident 350 0.15 nozzle", - "Voron Trident 350 0.2 nozzle", - "Voron Trident 350 0.25 nozzle", - "Voron Trident 350 0.5 nozzle", - "Voron Trident 350 0.6 nozzle", - "Voron Trident 350 0.8 nozzle", - "Voron Trident 350 1.0 nozzle", - "Voron 0.1 0.4 nozzle", - "Voron 0.1 0.15 nozzle", - "Voron 0.1 0.2 nozzle", - "Voron 0.1 0.25 nozzle", - "Voron 0.1 0.5 nozzle", - "Voron 0.1 0.6 nozzle", - "Voron 0.1 0.8 nozzle", - "Voron 0.1 1.0 nozzle", - "Voron Switchwire 250 0.4 nozzle", - "Voron Switchwire 250 0.15 nozzle", - "Voron Switchwire 250 0.2 nozzle", - "Voron Switchwire 250 0.25 nozzle", - "Voron Switchwire 250 0.5 nozzle", - "Voron Switchwire 250 0.6 nozzle", - "Voron Switchwire 250 0.8 nozzle", - "Voron Switchwire 250 1.0 nozzle" - ] -} diff --git a/resources/profiles/Voron/filament/Voron Generic PA.json b/resources/profiles/Voron/filament/Voron Generic PA.json deleted file mode 100644 index 91790d2f80..0000000000 --- a/resources/profiles/Voron/filament/Voron Generic PA.json +++ /dev/null @@ -1,84 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFN99", - "setting_id": "GFSA04", - "name": "Voron Generic PA", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pa", - "nozzle_temperature_initial_layer": [ - "280" - ], - "nozzle_temperature": [ - "280" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "compatible_printers": [ - "Voron 2.4 250 0.4 nozzle", - "Voron 2.4 250 0.15 nozzle", - "Voron 2.4 250 0.2 nozzle", - "Voron 2.4 250 0.25 nozzle", - "Voron 2.4 250 0.5 nozzle", - "Voron 2.4 250 0.6 nozzle", - "Voron 2.4 250 0.8 nozzle", - "Voron 2.4 250 1.0 nozzle", - "Voron 2.4 300 0.4 nozzle", - "Voron 2.4 300 0.15 nozzle", - "Voron 2.4 300 0.2 nozzle", - "Voron 2.4 300 0.25 nozzle", - "Voron 2.4 300 0.5 nozzle", - "Voron 2.4 300 0.6 nozzle", - "Voron 2.4 300 0.8 nozzle", - "Voron 2.4 300 1.0 nozzle", - "Voron 2.4 350 0.4 nozzle", - "Voron 2.4 350 0.15 nozzle", - "Voron 2.4 350 0.2 nozzle", - "Voron 2.4 350 0.25 nozzle", - "Voron 2.4 350 0.5 nozzle", - "Voron 2.4 350 0.6 nozzle", - "Voron 2.4 350 0.8 nozzle", - "Voron 2.4 350 1.0 nozzle", - "Voron Trident 250 0.4 nozzle", - "Voron Trident 250 0.15 nozzle", - "Voron Trident 250 0.2 nozzle", - "Voron Trident 250 0.25 nozzle", - "Voron Trident 250 0.5 nozzle", - "Voron Trident 250 0.6 nozzle", - "Voron Trident 250 0.8 nozzle", - "Voron Trident 250 1.0 nozzle", - "Voron Trident 300 0.4 nozzle", - "Voron Trident 300 0.15 nozzle", - "Voron Trident 300 0.2 nozzle", - "Voron Trident 300 0.25 nozzle", - "Voron Trident 300 0.5 nozzle", - "Voron Trident 300 0.6 nozzle", - "Voron Trident 300 0.8 nozzle", - "Voron Trident 300 1.0 nozzle", - "Voron Trident 350 0.4 nozzle", - "Voron Trident 350 0.15 nozzle", - "Voron Trident 350 0.2 nozzle", - "Voron Trident 350 0.25 nozzle", - "Voron Trident 350 0.5 nozzle", - "Voron Trident 350 0.6 nozzle", - "Voron Trident 350 0.8 nozzle", - "Voron Trident 350 1.0 nozzle", - "Voron 0.1 0.4 nozzle", - "Voron 0.1 0.15 nozzle", - "Voron 0.1 0.2 nozzle", - "Voron 0.1 0.25 nozzle", - "Voron 0.1 0.5 nozzle", - "Voron 0.1 0.6 nozzle", - "Voron 0.1 0.8 nozzle", - "Voron 0.1 1.0 nozzle", - "Voron Switchwire 250 0.4 nozzle", - "Voron Switchwire 250 0.15 nozzle", - "Voron Switchwire 250 0.2 nozzle", - "Voron Switchwire 250 0.25 nozzle", - "Voron Switchwire 250 0.5 nozzle", - "Voron Switchwire 250 0.6 nozzle", - "Voron Switchwire 250 0.8 nozzle", - "Voron Switchwire 250 1.0 nozzle" - ] -} diff --git a/resources/profiles/Voron/filament/Voron Generic PC.json b/resources/profiles/Voron/filament/Voron Generic PC.json deleted file mode 100644 index 96de811416..0000000000 --- a/resources/profiles/Voron/filament/Voron Generic PC.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFC99", - "setting_id": "GFSA04", - "name": "Voron Generic PC", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pc", - "filament_max_volumetric_speed": [ - "12" - ], - "filament_flow_ratio": [ - "0.94" - ], - "compatible_printers": [ - "Voron 2.4 250 0.4 nozzle", - "Voron 2.4 250 0.15 nozzle", - "Voron 2.4 250 0.2 nozzle", - "Voron 2.4 250 0.25 nozzle", - "Voron 2.4 250 0.5 nozzle", - "Voron 2.4 250 0.6 nozzle", - "Voron 2.4 250 0.8 nozzle", - "Voron 2.4 250 1.0 nozzle", - "Voron 2.4 300 0.4 nozzle", - "Voron 2.4 300 0.15 nozzle", - "Voron 2.4 300 0.2 nozzle", - "Voron 2.4 300 0.25 nozzle", - "Voron 2.4 300 0.5 nozzle", - "Voron 2.4 300 0.6 nozzle", - "Voron 2.4 300 0.8 nozzle", - "Voron 2.4 300 1.0 nozzle", - "Voron 2.4 350 0.4 nozzle", - "Voron 2.4 350 0.15 nozzle", - "Voron 2.4 350 0.2 nozzle", - "Voron 2.4 350 0.25 nozzle", - "Voron 2.4 350 0.5 nozzle", - "Voron 2.4 350 0.6 nozzle", - "Voron 2.4 350 0.8 nozzle", - "Voron 2.4 350 1.0 nozzle", - "Voron Trident 250 0.4 nozzle", - "Voron Trident 250 0.15 nozzle", - "Voron Trident 250 0.2 nozzle", - "Voron Trident 250 0.25 nozzle", - "Voron Trident 250 0.5 nozzle", - "Voron Trident 250 0.6 nozzle", - "Voron Trident 250 0.8 nozzle", - "Voron Trident 250 1.0 nozzle", - "Voron Trident 300 0.4 nozzle", - "Voron Trident 300 0.15 nozzle", - "Voron Trident 300 0.2 nozzle", - "Voron Trident 300 0.25 nozzle", - "Voron Trident 300 0.5 nozzle", - "Voron Trident 300 0.6 nozzle", - "Voron Trident 300 0.8 nozzle", - "Voron Trident 300 1.0 nozzle", - "Voron Trident 350 0.4 nozzle", - "Voron Trident 350 0.15 nozzle", - "Voron Trident 350 0.2 nozzle", - "Voron Trident 350 0.25 nozzle", - "Voron Trident 350 0.5 nozzle", - "Voron Trident 350 0.6 nozzle", - "Voron Trident 350 0.8 nozzle", - "Voron Trident 350 1.0 nozzle", - "Voron 0.1 0.4 nozzle", - "Voron 0.1 0.15 nozzle", - "Voron 0.1 0.2 nozzle", - "Voron 0.1 0.25 nozzle", - "Voron 0.1 0.5 nozzle", - "Voron 0.1 0.6 nozzle", - "Voron 0.1 0.8 nozzle", - "Voron 0.1 1.0 nozzle", - "Voron Switchwire 250 0.4 nozzle", - "Voron Switchwire 250 0.15 nozzle", - "Voron Switchwire 250 0.2 nozzle", - "Voron Switchwire 250 0.25 nozzle", - "Voron Switchwire 250 0.5 nozzle", - "Voron Switchwire 250 0.6 nozzle", - "Voron Switchwire 250 0.8 nozzle", - "Voron Switchwire 250 1.0 nozzle" - ] -} diff --git a/resources/profiles/Voron/filament/Voron Generic PETG.json b/resources/profiles/Voron/filament/Voron Generic PETG.json deleted file mode 100644 index 6238ed6a3c..0000000000 --- a/resources/profiles/Voron/filament/Voron Generic PETG.json +++ /dev/null @@ -1,112 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFG99", - "setting_id": "GFSA04", - "name": "Voron Generic PETG", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pet", - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_cooling_layer_time": [ - "30" - ], - "overhang_fan_speed": [ - "90" - ], - "overhang_fan_threshold": [ - "25%" - ], - "fan_max_speed": [ - "90" - ], - "fan_min_speed": [ - "40" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "8" - ], - "filament_flow_ratio": [ - "0.95" - ], - "filament_max_volumetric_speed": [ - "10" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ], - "compatible_printers": [ - "Voron 2.4 250 0.4 nozzle", - "Voron 2.4 250 0.15 nozzle", - "Voron 2.4 250 0.2 nozzle", - "Voron 2.4 250 0.25 nozzle", - "Voron 2.4 250 0.5 nozzle", - "Voron 2.4 250 0.6 nozzle", - "Voron 2.4 250 0.8 nozzle", - "Voron 2.4 250 1.0 nozzle", - "Voron 2.4 300 0.4 nozzle", - "Voron 2.4 300 0.15 nozzle", - "Voron 2.4 300 0.2 nozzle", - "Voron 2.4 300 0.25 nozzle", - "Voron 2.4 300 0.5 nozzle", - "Voron 2.4 300 0.6 nozzle", - "Voron 2.4 300 0.8 nozzle", - "Voron 2.4 300 1.0 nozzle", - "Voron 2.4 350 0.4 nozzle", - "Voron 2.4 350 0.15 nozzle", - "Voron 2.4 350 0.2 nozzle", - "Voron 2.4 350 0.25 nozzle", - "Voron 2.4 350 0.5 nozzle", - "Voron 2.4 350 0.6 nozzle", - "Voron 2.4 350 0.8 nozzle", - "Voron 2.4 350 1.0 nozzle", - "Voron Trident 250 0.4 nozzle", - "Voron Trident 250 0.15 nozzle", - "Voron Trident 250 0.2 nozzle", - "Voron Trident 250 0.25 nozzle", - "Voron Trident 250 0.5 nozzle", - "Voron Trident 250 0.6 nozzle", - "Voron Trident 250 0.8 nozzle", - "Voron Trident 250 1.0 nozzle", - "Voron Trident 300 0.4 nozzle", - "Voron Trident 300 0.15 nozzle", - "Voron Trident 300 0.2 nozzle", - "Voron Trident 300 0.25 nozzle", - "Voron Trident 300 0.5 nozzle", - "Voron Trident 300 0.6 nozzle", - "Voron Trident 300 0.8 nozzle", - "Voron Trident 300 1.0 nozzle", - "Voron Trident 350 0.4 nozzle", - "Voron Trident 350 0.15 nozzle", - "Voron Trident 350 0.2 nozzle", - "Voron Trident 350 0.25 nozzle", - "Voron Trident 350 0.5 nozzle", - "Voron Trident 350 0.6 nozzle", - "Voron Trident 350 0.8 nozzle", - "Voron Trident 350 1.0 nozzle", - "Voron 0.1 0.4 nozzle", - "Voron 0.1 0.15 nozzle", - "Voron 0.1 0.2 nozzle", - "Voron 0.1 0.25 nozzle", - "Voron 0.1 0.5 nozzle", - "Voron 0.1 0.6 nozzle", - "Voron 0.1 0.8 nozzle", - "Voron 0.1 1.0 nozzle", - "Voron Switchwire 250 0.4 nozzle", - "Voron Switchwire 250 0.15 nozzle", - "Voron Switchwire 250 0.2 nozzle", - "Voron Switchwire 250 0.25 nozzle", - "Voron Switchwire 250 0.5 nozzle", - "Voron Switchwire 250 0.6 nozzle", - "Voron Switchwire 250 0.8 nozzle", - "Voron Switchwire 250 1.0 nozzle" - ] -} - \ No newline at end of file diff --git a/resources/profiles/Voron/filament/Voron Generic PLA-CF.json b/resources/profiles/Voron/filament/Voron Generic PLA-CF.json deleted file mode 100644 index 904e232753..0000000000 --- a/resources/profiles/Voron/filament/Voron Generic PLA-CF.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFL98", - "setting_id": "GFSA04", - "name": "Voron Generic PLA-CF", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pla", - "filament_flow_ratio": [ - "0.95" - ], - "filament_type": [ - "PLA-CF" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "slow_down_layer_time": [ - "7" - ], - "compatible_printers": [ - "Voron 2.4 250 0.4 nozzle", - "Voron 2.4 250 0.15 nozzle", - "Voron 2.4 250 0.2 nozzle", - "Voron 2.4 250 0.25 nozzle", - "Voron 2.4 250 0.5 nozzle", - "Voron 2.4 250 0.6 nozzle", - "Voron 2.4 250 0.8 nozzle", - "Voron 2.4 250 1.0 nozzle", - "Voron 2.4 300 0.4 nozzle", - "Voron 2.4 300 0.15 nozzle", - "Voron 2.4 300 0.2 nozzle", - "Voron 2.4 300 0.25 nozzle", - "Voron 2.4 300 0.5 nozzle", - "Voron 2.4 300 0.6 nozzle", - "Voron 2.4 300 0.8 nozzle", - "Voron 2.4 300 1.0 nozzle", - "Voron 2.4 350 0.4 nozzle", - "Voron 2.4 350 0.15 nozzle", - "Voron 2.4 350 0.2 nozzle", - "Voron 2.4 350 0.25 nozzle", - "Voron 2.4 350 0.5 nozzle", - "Voron 2.4 350 0.6 nozzle", - "Voron 2.4 350 0.8 nozzle", - "Voron 2.4 350 1.0 nozzle", - "Voron Trident 250 0.4 nozzle", - "Voron Trident 250 0.15 nozzle", - "Voron Trident 250 0.2 nozzle", - "Voron Trident 250 0.25 nozzle", - "Voron Trident 250 0.5 nozzle", - "Voron Trident 250 0.6 nozzle", - "Voron Trident 250 0.8 nozzle", - "Voron Trident 250 1.0 nozzle", - "Voron Trident 300 0.4 nozzle", - "Voron Trident 300 0.15 nozzle", - "Voron Trident 300 0.2 nozzle", - "Voron Trident 300 0.25 nozzle", - "Voron Trident 300 0.5 nozzle", - "Voron Trident 300 0.6 nozzle", - "Voron Trident 300 0.8 nozzle", - "Voron Trident 300 1.0 nozzle", - "Voron Trident 350 0.4 nozzle", - "Voron Trident 350 0.15 nozzle", - "Voron Trident 350 0.2 nozzle", - "Voron Trident 350 0.25 nozzle", - "Voron Trident 350 0.5 nozzle", - "Voron Trident 350 0.6 nozzle", - "Voron Trident 350 0.8 nozzle", - "Voron Trident 350 1.0 nozzle", - "Voron 0.1 0.4 nozzle", - "Voron 0.1 0.15 nozzle", - "Voron 0.1 0.2 nozzle", - "Voron 0.1 0.25 nozzle", - "Voron 0.1 0.5 nozzle", - "Voron 0.1 0.6 nozzle", - "Voron 0.1 0.8 nozzle", - "Voron 0.1 1.0 nozzle", - "Voron Switchwire 250 0.4 nozzle", - "Voron Switchwire 250 0.15 nozzle", - "Voron Switchwire 250 0.2 nozzle", - "Voron Switchwire 250 0.25 nozzle", - "Voron Switchwire 250 0.5 nozzle", - "Voron Switchwire 250 0.6 nozzle", - "Voron Switchwire 250 0.8 nozzle", - "Voron Switchwire 250 1.0 nozzle" - ] -} - \ No newline at end of file diff --git a/resources/profiles/Voron/filament/Voron Generic PLA.json b/resources/profiles/Voron/filament/Voron Generic PLA.json deleted file mode 100644 index 1147466761..0000000000 --- a/resources/profiles/Voron/filament/Voron Generic PLA.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFL99", - "setting_id": "GFSA04", - "name": "Voron Generic PLA", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pla", - "filament_flow_ratio": [ - "0.98" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "slow_down_layer_time": [ - "8" - ], - "compatible_printers": [ - "Voron 2.4 250 0.4 nozzle", - "Voron 2.4 250 0.15 nozzle", - "Voron 2.4 250 0.2 nozzle", - "Voron 2.4 250 0.25 nozzle", - "Voron 2.4 250 0.5 nozzle", - "Voron 2.4 250 0.6 nozzle", - "Voron 2.4 250 0.8 nozzle", - "Voron 2.4 250 1.0 nozzle", - "Voron 2.4 300 0.4 nozzle", - "Voron 2.4 300 0.15 nozzle", - "Voron 2.4 300 0.2 nozzle", - "Voron 2.4 300 0.25 nozzle", - "Voron 2.4 300 0.5 nozzle", - "Voron 2.4 300 0.6 nozzle", - "Voron 2.4 300 0.8 nozzle", - "Voron 2.4 300 1.0 nozzle", - "Voron 2.4 350 0.4 nozzle", - "Voron 2.4 350 0.15 nozzle", - "Voron 2.4 350 0.2 nozzle", - "Voron 2.4 350 0.25 nozzle", - "Voron 2.4 350 0.5 nozzle", - "Voron 2.4 350 0.6 nozzle", - "Voron 2.4 350 0.8 nozzle", - "Voron 2.4 350 1.0 nozzle", - "Voron Trident 250 0.4 nozzle", - "Voron Trident 250 0.15 nozzle", - "Voron Trident 250 0.2 nozzle", - "Voron Trident 250 0.25 nozzle", - "Voron Trident 250 0.5 nozzle", - "Voron Trident 250 0.6 nozzle", - "Voron Trident 250 0.8 nozzle", - "Voron Trident 250 1.0 nozzle", - "Voron Trident 300 0.4 nozzle", - "Voron Trident 300 0.15 nozzle", - "Voron Trident 300 0.2 nozzle", - "Voron Trident 300 0.25 nozzle", - "Voron Trident 300 0.5 nozzle", - "Voron Trident 300 0.6 nozzle", - "Voron Trident 300 0.8 nozzle", - "Voron Trident 300 1.0 nozzle", - "Voron Trident 350 0.4 nozzle", - "Voron Trident 350 0.15 nozzle", - "Voron Trident 350 0.2 nozzle", - "Voron Trident 350 0.25 nozzle", - "Voron Trident 350 0.5 nozzle", - "Voron Trident 350 0.6 nozzle", - "Voron Trident 350 0.8 nozzle", - "Voron Trident 350 1.0 nozzle", - "Voron 0.1 0.4 nozzle", - "Voron 0.1 0.15 nozzle", - "Voron 0.1 0.2 nozzle", - "Voron 0.1 0.25 nozzle", - "Voron 0.1 0.5 nozzle", - "Voron 0.1 0.6 nozzle", - "Voron 0.1 0.8 nozzle", - "Voron 0.1 1.0 nozzle", - "Voron Switchwire 250 0.4 nozzle", - "Voron Switchwire 250 0.15 nozzle", - "Voron Switchwire 250 0.2 nozzle", - "Voron Switchwire 250 0.25 nozzle", - "Voron Switchwire 250 0.5 nozzle", - "Voron Switchwire 250 0.6 nozzle", - "Voron Switchwire 250 0.8 nozzle", - "Voron Switchwire 250 1.0 nozzle" - ] -} - diff --git a/resources/profiles/Voron/filament/Voron Generic PVA.json b/resources/profiles/Voron/filament/Voron Generic PVA.json deleted file mode 100644 index 75cb3f3b22..0000000000 --- a/resources/profiles/Voron/filament/Voron Generic PVA.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFS99", - "setting_id": "GFSA04", - "name": "Voron Generic PVA", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pva", - "filament_flow_ratio": [ - "0.95" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "slow_down_layer_time": [ - "7" - ], - "slow_down_min_speed": [ - "10" - ], - "compatible_printers": [ - "Voron 2.4 250 0.4 nozzle", - "Voron 2.4 250 0.15 nozzle", - "Voron 2.4 250 0.2 nozzle", - "Voron 2.4 250 0.25 nozzle", - "Voron 2.4 250 0.5 nozzle", - "Voron 2.4 250 0.6 nozzle", - "Voron 2.4 250 0.8 nozzle", - "Voron 2.4 250 1.0 nozzle", - "Voron 2.4 300 0.4 nozzle", - "Voron 2.4 300 0.15 nozzle", - "Voron 2.4 300 0.2 nozzle", - "Voron 2.4 300 0.25 nozzle", - "Voron 2.4 300 0.5 nozzle", - "Voron 2.4 300 0.6 nozzle", - "Voron 2.4 300 0.8 nozzle", - "Voron 2.4 300 1.0 nozzle", - "Voron 2.4 350 0.4 nozzle", - "Voron 2.4 350 0.15 nozzle", - "Voron 2.4 350 0.2 nozzle", - "Voron 2.4 350 0.25 nozzle", - "Voron 2.4 350 0.5 nozzle", - "Voron 2.4 350 0.6 nozzle", - "Voron 2.4 350 0.8 nozzle", - "Voron 2.4 350 1.0 nozzle", - "Voron Trident 250 0.4 nozzle", - "Voron Trident 250 0.15 nozzle", - "Voron Trident 250 0.2 nozzle", - "Voron Trident 250 0.25 nozzle", - "Voron Trident 250 0.5 nozzle", - "Voron Trident 250 0.6 nozzle", - "Voron Trident 250 0.8 nozzle", - "Voron Trident 250 1.0 nozzle", - "Voron Trident 300 0.4 nozzle", - "Voron Trident 300 0.15 nozzle", - "Voron Trident 300 0.2 nozzle", - "Voron Trident 300 0.25 nozzle", - "Voron Trident 300 0.5 nozzle", - "Voron Trident 300 0.6 nozzle", - "Voron Trident 300 0.8 nozzle", - "Voron Trident 300 1.0 nozzle", - "Voron Trident 350 0.4 nozzle", - "Voron Trident 350 0.15 nozzle", - "Voron Trident 350 0.2 nozzle", - "Voron Trident 350 0.25 nozzle", - "Voron Trident 350 0.5 nozzle", - "Voron Trident 350 0.6 nozzle", - "Voron Trident 350 0.8 nozzle", - "Voron Trident 350 1.0 nozzle", - "Voron 0.1 0.4 nozzle", - "Voron 0.1 0.15 nozzle", - "Voron 0.1 0.2 nozzle", - "Voron 0.1 0.25 nozzle", - "Voron 0.1 0.5 nozzle", - "Voron 0.1 0.6 nozzle", - "Voron 0.1 0.8 nozzle", - "Voron 0.1 1.0 nozzle", - "Voron Switchwire 250 0.4 nozzle", - "Voron Switchwire 250 0.15 nozzle", - "Voron Switchwire 250 0.2 nozzle", - "Voron Switchwire 250 0.25 nozzle", - "Voron Switchwire 250 0.5 nozzle", - "Voron Switchwire 250 0.6 nozzle", - "Voron Switchwire 250 0.8 nozzle", - "Voron Switchwire 250 1.0 nozzle" - ] -} - \ No newline at end of file diff --git a/resources/profiles/Voron/filament/Voron Generic TPU.json b/resources/profiles/Voron/filament/Voron Generic TPU.json deleted file mode 100644 index 00ea690e72..0000000000 --- a/resources/profiles/Voron/filament/Voron Generic TPU.json +++ /dev/null @@ -1,79 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFU99", - "setting_id": "GFSA04", - "name": "Voron Generic TPU", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_tpu", - "filament_max_volumetric_speed": [ - "3.2" - ], - "compatible_printers": [ - "Voron 2.4 250 0.4 nozzle", - "Voron 2.4 250 0.15 nozzle", - "Voron 2.4 250 0.2 nozzle", - "Voron 2.4 250 0.25 nozzle", - "Voron 2.4 250 0.5 nozzle", - "Voron 2.4 250 0.6 nozzle", - "Voron 2.4 250 0.8 nozzle", - "Voron 2.4 250 1.0 nozzle", - "Voron 2.4 300 0.4 nozzle", - "Voron 2.4 300 0.15 nozzle", - "Voron 2.4 300 0.2 nozzle", - "Voron 2.4 300 0.25 nozzle", - "Voron 2.4 300 0.5 nozzle", - "Voron 2.4 300 0.6 nozzle", - "Voron 2.4 300 0.8 nozzle", - "Voron 2.4 300 1.0 nozzle", - "Voron 2.4 350 0.4 nozzle", - "Voron 2.4 350 0.15 nozzle", - "Voron 2.4 350 0.2 nozzle", - "Voron 2.4 350 0.25 nozzle", - "Voron 2.4 350 0.5 nozzle", - "Voron 2.4 350 0.6 nozzle", - "Voron 2.4 350 0.8 nozzle", - "Voron 2.4 350 1.0 nozzle", - "Voron Trident 250 0.4 nozzle", - "Voron Trident 250 0.15 nozzle", - "Voron Trident 250 0.2 nozzle", - "Voron Trident 250 0.25 nozzle", - "Voron Trident 250 0.5 nozzle", - "Voron Trident 250 0.6 nozzle", - "Voron Trident 250 0.8 nozzle", - "Voron Trident 250 1.0 nozzle", - "Voron Trident 300 0.4 nozzle", - "Voron Trident 300 0.15 nozzle", - "Voron Trident 300 0.2 nozzle", - "Voron Trident 300 0.25 nozzle", - "Voron Trident 300 0.5 nozzle", - "Voron Trident 300 0.6 nozzle", - "Voron Trident 300 0.8 nozzle", - "Voron Trident 300 1.0 nozzle", - "Voron Trident 350 0.4 nozzle", - "Voron Trident 350 0.15 nozzle", - "Voron Trident 350 0.2 nozzle", - "Voron Trident 350 0.25 nozzle", - "Voron Trident 350 0.5 nozzle", - "Voron Trident 350 0.6 nozzle", - "Voron Trident 350 0.8 nozzle", - "Voron Trident 350 1.0 nozzle", - "Voron 0.1 0.4 nozzle", - "Voron 0.1 0.15 nozzle", - "Voron 0.1 0.2 nozzle", - "Voron 0.1 0.25 nozzle", - "Voron 0.1 0.5 nozzle", - "Voron 0.1 0.6 nozzle", - "Voron 0.1 0.8 nozzle", - "Voron 0.1 1.0 nozzle", - "Voron Switchwire 250 0.4 nozzle", - "Voron Switchwire 250 0.15 nozzle", - "Voron Switchwire 250 0.2 nozzle", - "Voron Switchwire 250 0.25 nozzle", - "Voron Switchwire 250 0.5 nozzle", - "Voron Switchwire 250 0.6 nozzle", - "Voron Switchwire 250 0.8 nozzle", - "Voron Switchwire 250 1.0 nozzle" - ] -} - diff --git a/resources/profiles/Voron/filament/fdm_filament_abs.json b/resources/profiles/Voron/filament/fdm_filament_abs.json deleted file mode 100644 index ba66a3c46a..0000000000 --- a/resources/profiles/Voron/filament/fdm_filament_abs.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_abs", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "105" - ], - "eng_plate_temp" : [ - "105" - ], - "hot_plate_temp" : [ - "105" - ], - "textured_plate_temp" : [ - "105" - ], - "cool_plate_temp_initial_layer" : [ - "105" - ], - "eng_plate_temp_initial_layer" : [ - "105" - ], - "hot_plate_temp_initial_layer" : [ - "105" - ], - "textured_plate_temp_initial_layer" : [ - "105" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "30" - ], - "filament_max_volumetric_speed": [ - "28.6" - ], - "filament_type": [ - "ABS" - ], - "filament_density": [ - "1.04" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "260" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "fan_max_speed": [ - "35" - ], - "fan_min_speed": [ - "35" - ], - "overhang_fan_threshold": [ - "25%" - ], - "overhang_fan_speed": [ - "80" - ], - "nozzle_temperature": [ - "260" - ], - "temperature_vitrification": [ - "110" - ], - "nozzle_temperature_range_low": [ - "240" - ], - "nozzle_temperature_range_high": [ - "270" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "3" - ] -} diff --git a/resources/profiles/Voron/filament/fdm_filament_asa.json b/resources/profiles/Voron/filament/fdm_filament_asa.json deleted file mode 100644 index 841de982e2..0000000000 --- a/resources/profiles/Voron/filament/fdm_filament_asa.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_asa", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "105" - ], - "eng_plate_temp" : [ - "105" - ], - "hot_plate_temp" : [ - "105" - ], - "textured_plate_temp" : [ - "105" - ], - "cool_plate_temp_initial_layer" : [ - "105" - ], - "eng_plate_temp_initial_layer" : [ - "105" - ], - "hot_plate_temp_initial_layer" : [ - "105" - ], - "textured_plate_temp_initial_layer" : [ - "105" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "35" - ], - "filament_max_volumetric_speed": [ - "28.6" - ], - "filament_type": [ - "ASA" - ], - "filament_density": [ - "1.04" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "260" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "fan_max_speed": [ - "35" - ], - "fan_min_speed": [ - "35" - ], - "overhang_fan_threshold": [ - "25%" - ], - "overhang_fan_speed": [ - "80" - ], - "nozzle_temperature": [ - "260" - ], - "temperature_vitrification": [ - "110" - ], - "nozzle_temperature_range_low": [ - "240" - ], - "nozzle_temperature_range_high": [ - "270" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "3" - ] -} diff --git a/resources/profiles/Voron/filament/fdm_filament_common.json b/resources/profiles/Voron/filament/fdm_filament_common.json deleted file mode 100644 index 9f77975119..0000000000 --- a/resources/profiles/Voron/filament/fdm_filament_common.json +++ /dev/null @@ -1,144 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_common", - "from": "system", - "instantiation": "false", - "cool_plate_temp" : [ - "60" - ], - "eng_plate_temp" : [ - "60" - ], - "hot_plate_temp" : [ - "60" - ], - "textured_plate_temp" : [ - "60" - ], - "cool_plate_temp_initial_layer" : [ - "60" - ], - "eng_plate_temp_initial_layer" : [ - "60" - ], - "hot_plate_temp_initial_layer" : [ - "60" - ], - "textured_plate_temp_initial_layer" : [ - "60" - ], - "overhang_fan_threshold": [ - "95%" - ], - "overhang_fan_speed": [ - "100" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "filament_end_gcode": [ - "; filament end gcode \n" - ], - "filament_flow_ratio": [ - "1" - ], - "reduce_fan_stop_start_freq": [ - "0" - ], - "fan_cooling_layer_time": [ - "60" - ], - "filament_cost": [ - "0" - ], - "filament_density": [ - "0" - ], - "filament_deretraction_speed": [ - "nil" - ], - "filament_diameter": [ - "1.75" - ], - "filament_max_volumetric_speed": [ - "0" - ], - "filament_minimal_purge_on_wipe_tower": [ - "15" - ], - "filament_retraction_minimum_travel": [ - "nil" - ], - "filament_retract_before_wipe": [ - "nil" - ], - "filament_retract_when_changing_layer": [ - "nil" - ], - "filament_retraction_length": [ - "nil" - ], - "filament_z_hop": [ - "nil" - ], - "filament_z_hop_types": [ - "nil" - ], - "filament_retract_restart_extra": [ - "nil" - ], - "filament_retraction_speed": [ - "nil" - ], - "filament_settings_id": [ - "" - ], - "filament_soluble": [ - "0" - ], - "filament_type": [ - "PLA" - ], - "filament_vendor": [ - "Generic" - ], - "filament_wipe": [ - "nil" - ], - "filament_wipe_distance": [ - "nil" - ], - "bed_type": [ - "Cool Plate" - ], - "nozzle_temperature_initial_layer": [ - "200" - ], - "full_fan_speed_layer": [ - "0" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "35" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "8" - ], - "filament_start_gcode": [ - "; Filament gcode\n" - ], - "nozzle_temperature": [ - "200" - ], - "temperature_vitrification": [ - "100" - ] -} diff --git a/resources/profiles/Voron/filament/fdm_filament_pa.json b/resources/profiles/Voron/filament/fdm_filament_pa.json deleted file mode 100644 index 58f53cd451..0000000000 --- a/resources/profiles/Voron/filament/fdm_filament_pa.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pa", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "0" - ], - "eng_plate_temp" : [ - "100" - ], - "hot_plate_temp" : [ - "100" - ], - "textured_plate_temp" : [ - "100" - ], - "cool_plate_temp_initial_layer" : [ - "0" - ], - "eng_plate_temp_initial_layer" : [ - "100" - ], - "hot_plate_temp_initial_layer" : [ - "100" - ], - "textured_plate_temp_initial_layer" : [ - "100" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "4" - ], - "filament_max_volumetric_speed": [ - "8" - ], - "filament_type": [ - "PA" - ], - "filament_density": [ - "1.04" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "290" - ], - "reduce_fan_stop_start_freq": [ - "0" - ], - "fan_max_speed": [ - "60" - ], - "fan_min_speed": [ - "0" - ], - "overhang_fan_speed": [ - "30" - ], - "nozzle_temperature": [ - "290" - ], - "temperature_vitrification": [ - "108" - ], - "nozzle_temperature_range_low": [ - "270" - ], - "nozzle_temperature_range_high": [ - "300" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "2" - ] -} diff --git a/resources/profiles/Voron/filament/fdm_filament_pc.json b/resources/profiles/Voron/filament/fdm_filament_pc.json deleted file mode 100644 index cec8b89a38..0000000000 --- a/resources/profiles/Voron/filament/fdm_filament_pc.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pc", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "0" - ], - "eng_plate_temp" : [ - "110" - ], - "hot_plate_temp" : [ - "110" - ], - "textured_plate_temp" : [ - "110" - ], - "cool_plate_temp_initial_layer" : [ - "0" - ], - "eng_plate_temp_initial_layer" : [ - "110" - ], - "hot_plate_temp_initial_layer" : [ - "110" - ], - "textured_plate_temp_initial_layer" : [ - "110" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "30" - ], - "filament_max_volumetric_speed": [ - "23.2" - ], - "filament_type": [ - "PC" - ], - "filament_density": [ - "1.04" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "270" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "fan_max_speed": [ - "60" - ], - "fan_min_speed": [ - "10" - ], - "overhang_fan_threshold": [ - "25%" - ], - "overhang_fan_speed": [ - "60" - ], - "nozzle_temperature": [ - "280" - ], - "temperature_vitrification": [ - "140" - ], - "nozzle_temperature_range_low": [ - "260" - ], - "nozzle_temperature_range_high": [ - "280" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "2" - ] -} diff --git a/resources/profiles/Voron/filament/fdm_filament_pet.json b/resources/profiles/Voron/filament/fdm_filament_pet.json deleted file mode 100644 index bb2323e9c1..0000000000 --- a/resources/profiles/Voron/filament/fdm_filament_pet.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pet", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "60" - ], - "eng_plate_temp" : [ - "0" - ], - "hot_plate_temp" : [ - "80" - ], - "textured_plate_temp" : [ - "80" - ], - "cool_plate_temp_initial_layer" : [ - "60" - ], - "eng_plate_temp_initial_layer" : [ - "0" - ], - "hot_plate_temp_initial_layer" : [ - "80" - ], - "textured_plate_temp_initial_layer" : [ - "80" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "20" - ], - "filament_max_volumetric_speed": [ - "25" - ], - "filament_type": [ - "PETG" - ], - "filament_density": [ - "1.27" - ], - "filament_cost": [ - "30" - ], - "nozzle_temperature_initial_layer": [ - "255" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "20" - ], - "overhang_fan_speed": [ - "100" - ], - "nozzle_temperature": [ - "255" - ], - "temperature_vitrification": [ - "80" - ], - "nozzle_temperature_range_low": [ - "220" - ], - "nozzle_temperature_range_high": [ - "260" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ] -} diff --git a/resources/profiles/Voron/filament/fdm_filament_pla.json b/resources/profiles/Voron/filament/fdm_filament_pla.json deleted file mode 100644 index 82c6772f35..0000000000 --- a/resources/profiles/Voron/filament/fdm_filament_pla.json +++ /dev/null @@ -1,94 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pla", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "fan_cooling_layer_time": [ - "100" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "filament_type": [ - "PLA" - ], - "filament_density": [ - "1.24" - ], - "filament_cost": [ - "20" - ], - "cool_plate_temp" : [ - "60" - ], - "eng_plate_temp" : [ - "60" - ], - "hot_plate_temp" : [ - "60" - ], - "textured_plate_temp" : [ - "60" - ], - "cool_plate_temp_initial_layer" : [ - "60" - ], - "eng_plate_temp_initial_layer" : [ - "60" - ], - "hot_plate_temp_initial_layer" : [ - "60" - ], - "textured_plate_temp_initial_layer" : [ - "60" - ], - "nozzle_temperature_initial_layer": [ - "220" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "overhang_fan_speed": [ - "100" - ], - "overhang_fan_threshold": [ - "50%" - ], - "close_fan_the_first_x_layers": [ - "1" - ], - "nozzle_temperature": [ - "220" - ], - "temperature_vitrification": [ - "60" - ], - "nozzle_temperature_range_low": [ - "190" - ], - "nozzle_temperature_range_high": [ - "230" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "4" - ], - "additional_cooling_fan_speed": [ - "70" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ] -} diff --git a/resources/profiles/Voron/filament/fdm_filament_pva.json b/resources/profiles/Voron/filament/fdm_filament_pva.json deleted file mode 100644 index ebf25aa3ae..0000000000 --- a/resources/profiles/Voron/filament/fdm_filament_pva.json +++ /dev/null @@ -1,100 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pva", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "35" - ], - "eng_plate_temp" : [ - "0" - ], - "hot_plate_temp" : [ - "45" - ], - "textured_plate_temp" : [ - "45" - ], - "cool_plate_temp_initial_layer" : [ - "35" - ], - "eng_plate_temp_initial_layer" : [ - "0" - ], - "hot_plate_temp_initial_layer" : [ - "45" - ], - "textured_plate_temp_initial_layer" : [ - "45" - ], - "fan_cooling_layer_time": [ - "100" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "filament_soluble": [ - "1" - ], - "filament_is_support": [ - "1" - ], - "filament_type": [ - "PVA" - ], - "filament_density": [ - "1.24" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "220" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "overhang_fan_speed": [ - "100" - ], - "overhang_fan_threshold": [ - "50%" - ], - "close_fan_the_first_x_layers": [ - "1" - ], - "nozzle_temperature": [ - "220" - ], - "temperature_vitrification": [ - "50" - ], - "nozzle_temperature_range_low": [ - "190" - ], - "nozzle_temperature_range_high": [ - "250" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "4" - ], - "additional_cooling_fan_speed": [ - "70" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ] -} diff --git a/resources/profiles/Voron/filament/fdm_filament_tpu.json b/resources/profiles/Voron/filament/fdm_filament_tpu.json deleted file mode 100644 index d00b7dbcab..0000000000 --- a/resources/profiles/Voron/filament/fdm_filament_tpu.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_tpu", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "30" - ], - "eng_plate_temp" : [ - "30" - ], - "hot_plate_temp" : [ - "35" - ], - "textured_plate_temp" : [ - "35" - ], - "cool_plate_temp_initial_layer" : [ - "30" - ], - "eng_plate_temp_initial_layer" : [ - "30" - ], - "hot_plate_temp_initial_layer" : [ - "35" - ], - "textured_plate_temp_initial_layer" : [ - "35" - ], - "fan_cooling_layer_time": [ - "100" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "filament_type": [ - "TPU" - ], - "filament_density": [ - "1.24" - ], - "filament_cost": [ - "20" - ], - "filament_retraction_length": [ - "0.4" - ], - "nozzle_temperature_initial_layer": [ - "240" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "overhang_fan_speed": [ - "100" - ], - "additional_cooling_fan_speed": [ - "70" - ], - "close_fan_the_first_x_layers": [ - "1" - ], - "nozzle_temperature": [ - "240" - ], - "temperature_vitrification": [ - "60" - ], - "nozzle_temperature_range_low": [ - "200" - ], - "nozzle_temperature_range_high": [ - "250" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ] -} diff --git a/resources/profiles/Voron/machine/fdm_machine_common.json b/resources/profiles/Voron/machine/fdm_machine_common.json index 8d4fb897f1..faa906d259 100644 --- a/resources/profiles/Voron/machine/fdm_machine_common.json +++ b/resources/profiles/Voron/machine/fdm_machine_common.json @@ -88,7 +88,7 @@ "1" ], "retraction_length": [ - "5" + "1" ], "retract_length_toolchange": [ "1" diff --git a/resources/profiles/Voxelab.json b/resources/profiles/Voxelab.json index 1268ea5cc3..5ab1c1dfb1 100644 --- a/resources/profiles/Voxelab.json +++ b/resources/profiles/Voxelab.json @@ -24,36 +24,7 @@ "sub_path": "process/0.20mm Standard @Voxelab AquilaX2.json" } ], - "filament_list": [ - { - "name": "fdm_filament_common", - "sub_path": "filament/fdm_filament_common.json" - }, - { - "name": "fdm_filament_abs", - "sub_path": "filament/fdm_filament_abs.json" - }, - { - "name": "fdm_filament_pet", - "sub_path": "filament/fdm_filament_pet.json" - }, - { - "name": "fdm_filament_pla", - "sub_path": "filament/fdm_filament_pla.json" - }, - { - "name": "Voxelab Generic ABS", - "sub_path": "filament/Voxelab Generic ABS.json" - }, - { - "name": "Voxelab Generic PETG", - "sub_path": "filament/Voxelab Generic PETG.json" - }, - { - "name": "Voxelab Generic PLA", - "sub_path": "filament/Voxelab Generic PLA.json" - } - ], + "filament_list": [], "machine_list": [ { "name": "fdm_machine_common", @@ -64,4 +35,4 @@ "sub_path": "machine/Voxelab Aquila X2 0.4 nozzle.json" } ] -} +} \ No newline at end of file diff --git a/resources/profiles/Voxelab/filament/Voxelab Generic ABS.json b/resources/profiles/Voxelab/filament/Voxelab Generic ABS.json deleted file mode 100644 index 9e485f70c8..0000000000 --- a/resources/profiles/Voxelab/filament/Voxelab Generic ABS.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFB99", - "setting_id": "GFSA04", - "name": "Voxelab Generic ABS", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_abs", - "filament_flow_ratio": [ - "0.926" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "compatible_printers": [ - "Voxelab Aquila X2 0.4 nozzle" - ] -} diff --git a/resources/profiles/Voxelab/filament/fdm_filament_abs.json b/resources/profiles/Voxelab/filament/fdm_filament_abs.json deleted file mode 100644 index a3a4574810..0000000000 --- a/resources/profiles/Voxelab/filament/fdm_filament_abs.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_abs", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "80" - ], - "eng_plate_temp" : [ - "80" - ], - "hot_plate_temp" : [ - "80" - ], - "textured_plate_temp" : [ - "80" - ], - "cool_plate_temp_initial_layer" : [ - "80" - ], - "eng_plate_temp_initial_layer" : [ - "80" - ], - "hot_plate_temp_initial_layer" : [ - "80" - ], - "textured_plate_temp_initial_layer" : [ - "80" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "30" - ], - "filament_max_volumetric_speed": [ - "0" - ], - "filament_type": [ - "ABS" - ], - "filament_density": [ - "1.10" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "240" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "fan_max_speed": [ - "5" - ], - "fan_min_speed": [ - "5" - ], - "overhang_fan_threshold": [ - "25%" - ], - "overhang_fan_speed": [ - "80" - ], - "nozzle_temperature": [ - "235" - ], - "temperature_vitrification": [ - "110" - ], - "nozzle_temperature_range_low": [ - "235" - ], - "nozzle_temperature_range_high": [ - "240" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "15" - ] -} diff --git a/resources/profiles/Voxelab/filament/fdm_filament_common.json b/resources/profiles/Voxelab/filament/fdm_filament_common.json deleted file mode 100644 index 9f77975119..0000000000 --- a/resources/profiles/Voxelab/filament/fdm_filament_common.json +++ /dev/null @@ -1,144 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_common", - "from": "system", - "instantiation": "false", - "cool_plate_temp" : [ - "60" - ], - "eng_plate_temp" : [ - "60" - ], - "hot_plate_temp" : [ - "60" - ], - "textured_plate_temp" : [ - "60" - ], - "cool_plate_temp_initial_layer" : [ - "60" - ], - "eng_plate_temp_initial_layer" : [ - "60" - ], - "hot_plate_temp_initial_layer" : [ - "60" - ], - "textured_plate_temp_initial_layer" : [ - "60" - ], - "overhang_fan_threshold": [ - "95%" - ], - "overhang_fan_speed": [ - "100" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "filament_end_gcode": [ - "; filament end gcode \n" - ], - "filament_flow_ratio": [ - "1" - ], - "reduce_fan_stop_start_freq": [ - "0" - ], - "fan_cooling_layer_time": [ - "60" - ], - "filament_cost": [ - "0" - ], - "filament_density": [ - "0" - ], - "filament_deretraction_speed": [ - "nil" - ], - "filament_diameter": [ - "1.75" - ], - "filament_max_volumetric_speed": [ - "0" - ], - "filament_minimal_purge_on_wipe_tower": [ - "15" - ], - "filament_retraction_minimum_travel": [ - "nil" - ], - "filament_retract_before_wipe": [ - "nil" - ], - "filament_retract_when_changing_layer": [ - "nil" - ], - "filament_retraction_length": [ - "nil" - ], - "filament_z_hop": [ - "nil" - ], - "filament_z_hop_types": [ - "nil" - ], - "filament_retract_restart_extra": [ - "nil" - ], - "filament_retraction_speed": [ - "nil" - ], - "filament_settings_id": [ - "" - ], - "filament_soluble": [ - "0" - ], - "filament_type": [ - "PLA" - ], - "filament_vendor": [ - "Generic" - ], - "filament_wipe": [ - "nil" - ], - "filament_wipe_distance": [ - "nil" - ], - "bed_type": [ - "Cool Plate" - ], - "nozzle_temperature_initial_layer": [ - "200" - ], - "full_fan_speed_layer": [ - "0" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "35" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "8" - ], - "filament_start_gcode": [ - "; Filament gcode\n" - ], - "nozzle_temperature": [ - "200" - ], - "temperature_vitrification": [ - "100" - ] -} diff --git a/resources/profiles/Voxelab/filament/fdm_filament_pet.json b/resources/profiles/Voxelab/filament/fdm_filament_pet.json deleted file mode 100644 index 0c65253151..0000000000 --- a/resources/profiles/Voxelab/filament/fdm_filament_pet.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pet", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "85" - ], - "eng_plate_temp" : [ - "85" - ], - "hot_plate_temp" : [ - "85" - ], - "textured_plate_temp" : [ - "85" - ], - "cool_plate_temp_initial_layer" : [ - "85" - ], - "eng_plate_temp_initial_layer" : [ - "85" - ], - "hot_plate_temp_initial_layer" : [ - "85" - ], - "textured_plate_temp_initial_layer" : [ - "85" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "15" - ], - "filament_max_volumetric_speed": [ - "0" - ], - "filament_type": [ - "PETG" - ], - "filament_density": [ - "1.27" - ], - "filament_cost": [ - "30" - ], - "nozzle_temperature_initial_layer": [ - "240" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "fan_max_speed": [ - "40" - ], - "fan_min_speed": [ - "20" - ], - "overhang_fan_speed": [ - "50" - ], - "nozzle_temperature": [ - "235" - ], - "temperature_vitrification": [ - "80" - ], - "nozzle_temperature_range_low": [ - "235" - ], - "nozzle_temperature_range_high": [ - "240" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ] -} diff --git a/resources/profiles/Voxelab/filament/fdm_filament_pla.json b/resources/profiles/Voxelab/filament/fdm_filament_pla.json deleted file mode 100644 index 1111af5b8d..0000000000 --- a/resources/profiles/Voxelab/filament/fdm_filament_pla.json +++ /dev/null @@ -1,91 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pla", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "fan_cooling_layer_time": [ - "100" - ], - "filament_max_volumetric_speed": [ - "0" - ], - "filament_type": [ - "PLA" - ], - "filament_density": [ - "1.24" - ], - "filament_cost": [ - "20" - ], - "cool_plate_temp" : [ - "60" - ], - "eng_plate_temp" : [ - "60" - ], - "hot_plate_temp" : [ - "60" - ], - "textured_plate_temp" : [ - "60" - ], - "cool_plate_temp_initial_layer" : [ - "55" - ], - "eng_plate_temp_initial_layer" : [ - "55" - ], - "hot_plate_temp_initial_layer" : [ - "55" - ], - "textured_plate_temp_initial_layer" : [ - "55" - ], - "nozzle_temperature_initial_layer": [ - "205" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "overhang_fan_speed": [ - "100" - ], - "overhang_fan_threshold": [ - "50%" - ], - "close_fan_the_first_x_layers": [ - "1" - ], - "nozzle_temperature": [ - "210" - ], - "temperature_vitrification": [ - "60" - ], - "nozzle_temperature_range_low": [ - "190" - ], - "nozzle_temperature_range_high": [ - "210" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "4" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ] -} diff --git a/resources/profiles/Voxelab/machine/fdm_machine_common.json b/resources/profiles/Voxelab/machine/fdm_machine_common.json index f537b78c6f..79ef68b7cf 100644 --- a/resources/profiles/Voxelab/machine/fdm_machine_common.json +++ b/resources/profiles/Voxelab/machine/fdm_machine_common.json @@ -88,7 +88,7 @@ "1" ], "retraction_length": [ - "5" + "1" ], "retract_length_toolchange": [ "1" diff --git a/resources/profiles/Vzbot/machine/fdm_machine_common.json b/resources/profiles/Vzbot/machine/fdm_machine_common.json index 52345bfae7..7bcaf8f2c4 100644 --- a/resources/profiles/Vzbot/machine/fdm_machine_common.json +++ b/resources/profiles/Vzbot/machine/fdm_machine_common.json @@ -88,7 +88,7 @@ "1" ], "retraction_length": [ - "5" + "1" ], "retract_length_toolchange": [ "1" diff --git a/resources/profiles/Wanhao.json b/resources/profiles/Wanhao.json index b34300d9dc..50e28dc13e 100644 --- a/resources/profiles/Wanhao.json +++ b/resources/profiles/Wanhao.json @@ -4,10 +4,10 @@ "force_update": "0", "description": "Wanhao configurations", "machine_model_list": [ - { + { "name": "Wanhao D12-300", "sub_path": "machine/Wanhao D12-300.json" - } + } ], "process_list": [ { @@ -35,36 +35,7 @@ "sub_path": "process/0.24mm Draft @Wanhao D12-300.json" } ], - "filament_list": [ - { - "name": "fdm_filament_common", - "sub_path": "filament/fdm_filament_common.json" - }, - { - "name": "fdm_filament_pet", - "sub_path": "filament/fdm_filament_pet.json" - }, - { - "name": "fdm_filament_pla", - "sub_path": "filament/fdm_filament_pla.json" - }, - { - "name": "fdm_filament_tpu", - "sub_path": "filament/fdm_filament_tpu.json" - }, - { - "name": "Wanhao Generic PETG", - "sub_path": "filament/Wanhao Generic PETG.json" - }, - { - "name": "Wanhao Generic PLA", - "sub_path": "filament/Wanhao Generic PLA.json" - }, - { - "name": "Wanhao Generic TPU", - "sub_path": "filament/Wanhao Generic TPU.json" - } - ], + "filament_list": [], "machine_list": [ { "name": "fdm_machine_common", @@ -74,9 +45,9 @@ "name": "fdm_wanhao_common", "sub_path": "machine/fdm_wanhao_common.json" }, - { + { "name": "Wanhao D12-300 0.4 nozzle", "sub_path": "machine/Wanhao D12-300 0.4 nozzle.json" } ] -} +} \ No newline at end of file diff --git a/resources/profiles/Wanhao/Wanhao_D12-300_buildplate_texture.png b/resources/profiles/Wanhao/Wanhao_D12-300_buildplate_texture.png index dbb039993e..7e4e305ab7 100644 Binary files a/resources/profiles/Wanhao/Wanhao_D12-300_buildplate_texture.png and b/resources/profiles/Wanhao/Wanhao_D12-300_buildplate_texture.png differ diff --git a/resources/profiles/Wanhao/filament/Wanhao Generic TPU.json b/resources/profiles/Wanhao/filament/Wanhao Generic TPU.json deleted file mode 100644 index 8ecdce83c3..0000000000 --- a/resources/profiles/Wanhao/filament/Wanhao Generic TPU.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "filament", - "filament_id": "GFU99", - "setting_id": "GFSR99", - "name": "Wanhao Generic TPU", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_tpu", - "filament_max_volumetric_speed": [ - "3.2" - ], - "filament_start_gcode": [ - "; filament start gcode\n{if (bed_temperature[current_extruder] >35)||(bed_temperature_initial_layer[current_extruder] >35)}M106 P3 S255\n{elsif (bed_temperature[current_extruder] >30)||(bed_temperature_initial_layer[current_extruder] >30)}M106 P3 S180\n{endif}" - ], - "compatible_printers": [ - "Wanhao D12-300 0.4 nozzle" - ] -} diff --git a/resources/profiles/Wanhao/filament/fdm_filament_common.json b/resources/profiles/Wanhao/filament/fdm_filament_common.json deleted file mode 100644 index 9f77975119..0000000000 --- a/resources/profiles/Wanhao/filament/fdm_filament_common.json +++ /dev/null @@ -1,144 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_common", - "from": "system", - "instantiation": "false", - "cool_plate_temp" : [ - "60" - ], - "eng_plate_temp" : [ - "60" - ], - "hot_plate_temp" : [ - "60" - ], - "textured_plate_temp" : [ - "60" - ], - "cool_plate_temp_initial_layer" : [ - "60" - ], - "eng_plate_temp_initial_layer" : [ - "60" - ], - "hot_plate_temp_initial_layer" : [ - "60" - ], - "textured_plate_temp_initial_layer" : [ - "60" - ], - "overhang_fan_threshold": [ - "95%" - ], - "overhang_fan_speed": [ - "100" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "filament_end_gcode": [ - "; filament end gcode \n" - ], - "filament_flow_ratio": [ - "1" - ], - "reduce_fan_stop_start_freq": [ - "0" - ], - "fan_cooling_layer_time": [ - "60" - ], - "filament_cost": [ - "0" - ], - "filament_density": [ - "0" - ], - "filament_deretraction_speed": [ - "nil" - ], - "filament_diameter": [ - "1.75" - ], - "filament_max_volumetric_speed": [ - "0" - ], - "filament_minimal_purge_on_wipe_tower": [ - "15" - ], - "filament_retraction_minimum_travel": [ - "nil" - ], - "filament_retract_before_wipe": [ - "nil" - ], - "filament_retract_when_changing_layer": [ - "nil" - ], - "filament_retraction_length": [ - "nil" - ], - "filament_z_hop": [ - "nil" - ], - "filament_z_hop_types": [ - "nil" - ], - "filament_retract_restart_extra": [ - "nil" - ], - "filament_retraction_speed": [ - "nil" - ], - "filament_settings_id": [ - "" - ], - "filament_soluble": [ - "0" - ], - "filament_type": [ - "PLA" - ], - "filament_vendor": [ - "Generic" - ], - "filament_wipe": [ - "nil" - ], - "filament_wipe_distance": [ - "nil" - ], - "bed_type": [ - "Cool Plate" - ], - "nozzle_temperature_initial_layer": [ - "200" - ], - "full_fan_speed_layer": [ - "0" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "35" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "8" - ], - "filament_start_gcode": [ - "; Filament gcode\n" - ], - "nozzle_temperature": [ - "200" - ], - "temperature_vitrification": [ - "100" - ] -} diff --git a/resources/profiles/Wanhao/filament/fdm_filament_pet.json b/resources/profiles/Wanhao/filament/fdm_filament_pet.json deleted file mode 100644 index bb2323e9c1..0000000000 --- a/resources/profiles/Wanhao/filament/fdm_filament_pet.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pet", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "60" - ], - "eng_plate_temp" : [ - "0" - ], - "hot_plate_temp" : [ - "80" - ], - "textured_plate_temp" : [ - "80" - ], - "cool_plate_temp_initial_layer" : [ - "60" - ], - "eng_plate_temp_initial_layer" : [ - "0" - ], - "hot_plate_temp_initial_layer" : [ - "80" - ], - "textured_plate_temp_initial_layer" : [ - "80" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "20" - ], - "filament_max_volumetric_speed": [ - "25" - ], - "filament_type": [ - "PETG" - ], - "filament_density": [ - "1.27" - ], - "filament_cost": [ - "30" - ], - "nozzle_temperature_initial_layer": [ - "255" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "20" - ], - "overhang_fan_speed": [ - "100" - ], - "nozzle_temperature": [ - "255" - ], - "temperature_vitrification": [ - "80" - ], - "nozzle_temperature_range_low": [ - "220" - ], - "nozzle_temperature_range_high": [ - "260" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ] -} diff --git a/resources/profiles/Wanhao/filament/fdm_filament_pla.json b/resources/profiles/Wanhao/filament/fdm_filament_pla.json deleted file mode 100644 index 82c6772f35..0000000000 --- a/resources/profiles/Wanhao/filament/fdm_filament_pla.json +++ /dev/null @@ -1,94 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pla", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "fan_cooling_layer_time": [ - "100" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "filament_type": [ - "PLA" - ], - "filament_density": [ - "1.24" - ], - "filament_cost": [ - "20" - ], - "cool_plate_temp" : [ - "60" - ], - "eng_plate_temp" : [ - "60" - ], - "hot_plate_temp" : [ - "60" - ], - "textured_plate_temp" : [ - "60" - ], - "cool_plate_temp_initial_layer" : [ - "60" - ], - "eng_plate_temp_initial_layer" : [ - "60" - ], - "hot_plate_temp_initial_layer" : [ - "60" - ], - "textured_plate_temp_initial_layer" : [ - "60" - ], - "nozzle_temperature_initial_layer": [ - "220" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "overhang_fan_speed": [ - "100" - ], - "overhang_fan_threshold": [ - "50%" - ], - "close_fan_the_first_x_layers": [ - "1" - ], - "nozzle_temperature": [ - "220" - ], - "temperature_vitrification": [ - "60" - ], - "nozzle_temperature_range_low": [ - "190" - ], - "nozzle_temperature_range_high": [ - "230" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "4" - ], - "additional_cooling_fan_speed": [ - "70" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ] -} diff --git a/resources/profiles/Wanhao/filament/fdm_filament_tpu.json b/resources/profiles/Wanhao/filament/fdm_filament_tpu.json deleted file mode 100644 index df97b1ccf4..0000000000 --- a/resources/profiles/Wanhao/filament/fdm_filament_tpu.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_tpu", - "from": "system", - "instantiation": "false", - "inherits": "fdm_filament_common", - "cool_plate_temp" : [ - "30" - ], - "eng_plate_temp" : [ - "30" - ], - "hot_plate_temp" : [ - "35" - ], - "textured_plate_temp" : [ - "35" - ], - "cool_plate_temp_initial_layer" : [ - "30" - ], - "eng_plate_temp_initial_layer" : [ - "30" - ], - "hot_plate_temp_initial_layer" : [ - "35" - ], - "textured_plate_temp_initial_layer" : [ - "35" - ], - "fan_cooling_layer_time": [ - "100" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "filament_type": [ - "TPU" - ], - "filament_density": [ - "1.24" - ], - "filament_cost": [ - "20" - ], - "filament_retraction_length": [ - "0.4" - ], - "nozzle_temperature_initial_layer": [ - "240" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "overhang_fan_speed": [ - "100" - ], - "additional_cooling_fan_speed": [ - "70" - ], - "close_fan_the_first_x_layers": [ - "1" - ], - "nozzle_temperature": [ - "240" - ], - "temperature_vitrification": [ - "35" - ], - "nozzle_temperature_range_low": [ - "200" - ], - "nozzle_temperature_range_high": [ - "250" - ], - "filament_start_gcode": [ - "; filament start gcode\n{if (bed_temperature[current_extruder] >35)||(bed_temperature_initial_layer[current_extruder] >35)}M106 P3 S255\n{elsif(bed_temperature[current_extruder] >30)||(bed_temperature_initial_layer[current_extruder] >30)}M106 P3 S180\n{endif}" - ] -} diff --git a/resources/profiles/Wanhao/machine/fdm_machine_common.json b/resources/profiles/Wanhao/machine/fdm_machine_common.json index 593eb06dc1..c925b2fd9d 100644 --- a/resources/profiles/Wanhao/machine/fdm_machine_common.json +++ b/resources/profiles/Wanhao/machine/fdm_machine_common.json @@ -88,7 +88,7 @@ "1" ], "retraction_length": [ - "5" + "1" ], "retract_length_toolchange": [ "1" diff --git a/resources/web/guide/22/22.js b/resources/web/guide/22/22.js index cdb00f26c8..ce75dd59eb 100644 --- a/resources/web/guide/22/22.js +++ b/resources/web/guide/22/22.js @@ -2,7 +2,7 @@ var m_ProfileItem; var FilamentPriority=new Array( "pla","abs","pet","tpu","pc"); -var VendorPriority=new Array("bambu lab","bambulab","bbl","kexcelled","polymaker","esun","generic"); +var VendorPriority=new Array("Orca Built-in","bambu lab","bambulab","bbl","kexcelled","polymaker","esun","Generic"); function OnInit() { @@ -139,7 +139,7 @@ function SortUI() if( fModel=='') { // Orca: hide - bFind=false; + bFind=true; } else { @@ -199,7 +199,11 @@ function SortUI() let strModel=pFila.attr("model"); let strFilalist=pFila.attr("filalist"); - pFila.attr("model", strModel+fModel); + if(strModel == '' || fModel == '') + pFila.attr("model", ''); + else + pFila.attr("model", strModel+fModel); + pFila.attr("filalist", strFilalist+fWholeName+';'); } diff --git a/resources/web/guide/23/23.js b/resources/web/guide/23/23.js index ba92265a96..d7f0bf8e93 100644 --- a/resources/web/guide/23/23.js +++ b/resources/web/guide/23/23.js @@ -1,4 +1,3 @@ - var m_ProfileItem; var FilamentPriority=new Array( "pla","abs","pet","tpu","pc"); @@ -25,15 +24,6 @@ function RequestProfile() SendWXMessage( JSON.stringify(tSend) ); } -//function RequestModelSelect() -//{ -// var tSend={}; -// tSend['sequence_id']=Math.round(new Date() / 1000); -// tSend['command']="request_userguide_modelselected"; -// -// SendWXMessage( JSON.stringify(tSend) ); -//} - function HandleStudio(pVal) { let strCmd=pVal['command']; @@ -71,30 +61,7 @@ function SortUI() ModelList.push(OneMode); } - //machine -// let HtmlMachine=''; -// -// let nMachine=m_ProfileItem['machine'].length; -// for(let n=0;n'+sName+''; -// } -// } -// -// $('#MachineList .CValues').append(HtmlMachine); -// $('#MachineList .CValues input').prop("checked",true); -// if(nMachine<=1) -// { -// $('#MachineList').hide(); -// } - + //model let HtmlMode=''; nMode=ModelList.length; @@ -131,15 +98,6 @@ function SortUI() let fSelect=OneFila['selected']; let fModel=OneFila['models'] - //alert( fWholeName+' - '+fShortName+' - '+fVendor+' - '+fType+' - '+fSelect+' - '+fModel ); - -// if(OneFila['name'].indexOf("Bambu PA-CF")>=0) -// { -// alert( fShortName+' - '+fVendor+' - '+fType+' - '+fSelect+' - '+fModel ) -// -// let b=1+2; -// } - let bFind=false; //let bCheck=$("#MachineList input:first").prop("checked"); if( fModel=='') @@ -204,7 +162,10 @@ function SortUI() let strModel=pFila.attr("model"); let strFilalist=pFila.attr("filalist"); - pFila.attr("model", strModel+fModel); + if(strModel == '' || fModel == '') + pFila.attr("model", ''); + else + pFila.attr("model", strModel+fModel); pFila.attr("filalist", strFilalist+fWholeName+';'); } @@ -290,10 +251,10 @@ function MachineClick() function ChooseAllFilament() { - let bCheck=$("#FilatypeList input:first").prop("checked"); + let bCheck=$("#FilatypeList input:first").prop("checked"); $("#FilatypeList input").prop("checked",bCheck); - - SortFilament(); + + SortFilament(); } function FilaClick() @@ -475,11 +436,11 @@ function SelectAllFilament( nShow ) { if( nShow==0 ) { - $('#ItemBlockArea input').prop("checked",false); + $('#ItemBlockArea .MItem:visible input').prop("checked",false); } else { - $('#ItemBlockArea input').prop("checked",true); + $('#ItemBlockArea .MItem:visible input').prop("checked",true); } } diff --git a/scripts/orca_filament_lib.py b/scripts/orca_filament_lib.py new file mode 100644 index 0000000000..984b81e951 --- /dev/null +++ b/scripts/orca_filament_lib.py @@ -0,0 +1,166 @@ +import os +import json +import argparse +from collections import defaultdict + +def topological_sort(filaments): + # Build a graph of dependencies + graph = defaultdict(list) + in_degree = defaultdict(int) + name_to_filament = {f['name']: f for f in filaments} + all_names = set(name_to_filament.keys()) + + # Create the dependency graph + processed_files = set() + for filament in filaments: + if 'inherits' in filament: + parent = filament['inherits'] + child = filament['name'] + # Only create dependency if parent exists + if parent in all_names: + graph[parent].append(child) + in_degree[child] += 1 + if parent not in in_degree: + in_degree[parent] = 0 + processed_files.add(child) + processed_files.add(parent) + + # Initialize queue with nodes having no dependencies (now sorted) + queue = sorted([name for name, degree in in_degree.items() if degree == 0]) + result = [] + + # Process the queue + while queue: + current = queue.pop(0) + result.append(name_to_filament[current]) + processed_files.add(current) + + # Process children (now sorted) + children = sorted(graph[current]) + for child in children: + in_degree[child] -= 1 + if in_degree[child] == 0: + queue.append(child) + + # Add remaining files that weren't part of inheritance tree (now sorted) + remaining = sorted(all_names - processed_files) + for name in remaining: + result.append(name_to_filament[name]) + + return result + +def update_filament_library(vendor="OrcaFilamentLibrary"): + # change current working directory to the relative path(..\resources\profiles) compare to script location + os.chdir(os.path.join(os.path.dirname(__file__), '..', 'resources', 'profiles')) + + # Collect current filament entries + current_filaments = [] + base_dir = vendor + filament_dir = os.path.join(base_dir, 'filament') + + for root, dirs, files in os.walk(filament_dir): + for file in files: + if file.lower().endswith('.json'): + full_path = os.path.join(root, file) + + # Get relative path from base directory + sub_path = os.path.relpath(full_path, base_dir).replace('\\', '/') + + try: + with open(full_path, 'r', encoding='utf-8') as f: + filament_data = json.load(f) + name = filament_data.get('name') + inherits = filament_data.get('inherits') + + if name: + entry = { + "name": name, + "sub_path": sub_path + } + if inherits: + entry['inherits'] = inherits + current_filaments.append(entry) + else: + print(f"Warning: Missing 'name' in {full_path}") + except Exception as e: + print(f"Error reading {full_path}: {str(e)}") + continue + + # Sort filaments based on inheritance + sorted_filaments = topological_sort(current_filaments) + + # Remove the inherits field as it's not needed in the final JSON + for filament in sorted_filaments: + filament.pop('inherits', None) + + # Update library file + lib_path = f'{vendor}.json' + + try: + with open(lib_path, 'r+', encoding='utf-8') as f: + library = json.load(f) + library['filament_list'] = sorted_filaments + f.seek(0) + json.dump(library, f, indent=4, ensure_ascii=False) + f.truncate() + + print(f"Filament library for {vendor} updated successfully!") + except Exception as e: + print(f"Error updating library file: {str(e)}") + + +# For each JSON file, it will: +# - Replace "BBL X1C" with "System" in the name field +# - Empty the compatible_printers array +# - Ensure setting_id starts with 'O' +def rename_filament_system(vendor="OrcaFilamentLibrary"): + # change current working directory to the relative path + os.chdir(os.path.join(os.path.dirname(__file__), '..', 'resources', 'profiles')) + + base_dir = vendor + filament_dir = os.path.join(base_dir, 'filament') + + for root, dirs, files in os.walk(filament_dir): + for file in files: + if file.lower().endswith('.json'): + full_path = os.path.join(root, file) + try: + with open(full_path, 'r', encoding='utf-8') as f: + data = json.load(f) + modified = False + + # Update name if it contains "BBL X1C" + if 'name' in data and "BBL X1C" in data['name']: + data['name'] = data['name'].replace("BBL X1C", "System") + modified = True + + # Empty compatible_printers if exists + if 'compatible_printers' in data: + data['compatible_printers'] = [] + modified = True + + # Update setting_id if needed + if 'setting_id' in data and not data['setting_id'].startswith('O'): + data['setting_id'] = 'O' + data['setting_id'] + modified = True + + if modified: + with open(full_path, 'w', encoding='utf-8') as f: + json.dump(data, f, indent=4, ensure_ascii=False) + print(f"Updated {full_path}") + + except Exception as e: + print(f"Error processing {full_path}: {str(e)}") + +if __name__ == '__main__': + parser = argparse.ArgumentParser(description='Update filament library for specified vendor') + parser.add_argument('-v', '--vendor', type=str, default="OrcaFilamentLibrary", + help='Vendor name (default: OrcaFilamentLibrary)') + parser.add_argument('-m', '--mode', type=str, choices=['update', 'rename'], + default='update', help='Operation mode (default: update)') + args = parser.parse_args() + + if args.mode == 'update': + update_filament_library(args.vendor) + else: + rename_filament_system(args.vendor) \ No newline at end of file diff --git a/src/OrcaSlicer_profile_validator.cpp b/src/OrcaSlicer_profile_validator.cpp index ba4e7ce687..f95e3096a2 100644 --- a/src/OrcaSlicer_profile_validator.cpp +++ b/src/OrcaSlicer_profile_validator.cpp @@ -43,14 +43,18 @@ void generate_custom_presets(PresetBundle* preset_bundle, AppConfig& app_config) for (auto p : custom_preset) { // Creating a new preset. auto parent = collection->find_preset(p.parent_name); - if (type == Preset::TYPE_FILAMENT) + auto vendor = collection->get_preset_with_vendor_profile(*parent); + if (type == Preset::TYPE_FILAMENT) { parent->config.set_key_value("filament_start_gcode", - new ConfigOptionStrings({"this_is_orca_test_filament_start_gcode_mock"})); - else if (type == Preset::TYPE_PRINT) + new ConfigOptionStrings({"this_is_orca_test_filament_start_gcode_mock"})); + parent->config.set_key_value("filament_notes", new ConfigOptionString(vendor.vendor->name)); + } else if (type == Preset::TYPE_PRINT) { parent->config.set_key_value("filename_format", new ConfigOptionString("this_is_orca_test_filename_format_mock")); - else if (type == Preset::TYPE_PRINTER) - parent->config.set_key_value("machine_start_gcode", - new ConfigOptionString("this_is_orca_test_machine_start_gcode_mock")); + parent->config.set_key_value("notes", new ConfigOptionString(vendor.vendor->name)); + } else if (type == Preset::TYPE_PRINTER) { + parent->config.set_key_value("machine_start_gcode", new ConfigOptionString("this_is_orca_test_machine_start_gcode_mock")); + parent->config.set_key_value("printer_notes", new ConfigOptionString(vendor.vendor->name)); + } collection->save_current_preset(p.name, false, false, parent); @@ -83,7 +87,11 @@ int main(int argc, char* argv[]) po::options_description desc("Orca Profile Validator\nUsage"); // clang-format off desc.add_options()("help,h", "help") +#ifdef __APPLE__ + ("path,p", po::value()->default_value("../../../../../../resources/profiles"), "profile folder") +#else ("path,p", po::value()->default_value("../../../resources/profiles"), "profile folder") +#endif ("vendor,v", po::value()->default_value(""), "Vendor name. Optional, all profiles present in the folder will be validated if not specified") ("generate_presets,g", po::value()->default_value(false), "Generate user presets for mock test") ("log_level,l", po::value()->default_value(2), "Log level. Optional, default is 2 (warning). Higher values produce more detailed logs."); @@ -147,6 +155,8 @@ int main(int argc, char* argv[]) std::cout << "Validation failed" << std::endl; return 1; } + // Report loaded presets + std::cout << "Total loaded vendors: " << preset_bundle->vendors.size() << std::endl; if (generate_user_preset) { generate_custom_presets(preset_bundle, app_config); diff --git a/src/clipper/clipper.hpp b/src/clipper/clipper.hpp index aee1a02f8f..359ce32819 100644 --- a/src/clipper/clipper.hpp +++ b/src/clipper/clipper.hpp @@ -337,7 +337,7 @@ public: TEdge *p_edge = edges.data(); i = 0; for (const Path &pg : paths_provider) { - if (num_edges[i]) { + if (num_edges[i] && !pg.empty()) { bool res = AddPathInternal(pg, num_edges[i] - 1, PolyTyp, Closed, p_edge); if (res) { p_edge += num_edges[i]; diff --git a/src/libslic3r/AppConfig.cpp b/src/libslic3r/AppConfig.cpp index 0decfaac12..23737041b1 100644 --- a/src/libslic3r/AppConfig.cpp +++ b/src/libslic3r/AppConfig.cpp @@ -114,11 +114,6 @@ void AppConfig::set_defaults() set_bool("background_processing", false); #endif -#ifdef SUPPORT_SHOW_DROP_PROJECT - if (get("show_drop_project_dialog").empty()) - set_bool("show_drop_project_dialog", true); -#endif - if (get("drop_project_action").empty()) set_bool("drop_project_action", true); @@ -347,7 +342,11 @@ void AppConfig::set_defaults() if (get("mouse_wheel").empty()) { set("mouse_wheel", "0"); } - + + if (get(SETTING_PROJECT_LOAD_BEHAVIOUR).empty()) { + set(SETTING_PROJECT_LOAD_BEHAVIOUR, OPTION_PROJECT_LOAD_BEHAVIOUR_ASK_WHEN_RELEVANT); + } + if (get("max_recent_count").empty()) { set("max_recent_count", "18"); } @@ -607,6 +606,19 @@ std::string AppConfig::load() for (auto& j_model : it.value()) { m_printer_settings[j_model["machine"].get()] = j_model; } + } else if (it.key() == "local_machines") { + for (auto m = it.value().begin(); m != it.value().end(); ++m) { + const auto& p = m.value(); + BBLocalMachine local_machine; + local_machine.dev_id = m.key(); + if (p.contains("dev_name")) + local_machine.dev_name = p["dev_name"].get(); + if (p.contains("dev_ip")) + local_machine.dev_ip = p["dev_ip"].get(); + if (p.contains("printer_type")) + local_machine.printer_type = p["printer_type"].get(); + m_local_machines[local_machine.dev_id] = local_machine; + } } else { if (it.value().is_object()) { for (auto iter = it.value().begin(); iter != it.value().end(); iter++) { @@ -783,6 +795,14 @@ void AppConfig::save() for (const auto& preset : m_printer_settings) { j["orca_presets"].push_back(preset.second); } + for (const auto& local_machine : m_local_machines) { + json m_json; + m_json["dev_name"] = local_machine.second.dev_name; + m_json["dev_ip"] = local_machine.second.dev_ip; + m_json["printer_type"] = local_machine.second.printer_type; + + j["local_machines"][local_machine.first] = m_json; + } boost::nowide::ofstream c; c.open(path_pid, std::ios::out | std::ios::trunc); c << std::setw(4) << j << std::endl; @@ -791,7 +811,7 @@ void AppConfig::save() // WIN32 specific: The final "rename_file()" call is not safe in case of an application crash, there is no atomic "rename file" API // provided by Windows (sic!). Therefore we save a MD5 checksum to be able to verify file corruption. In addition, // we save the config file into a backup first before moving it to the final destination. - c << appconfig_md5_hash_line({j.dump(4)}); + c << appconfig_md5_hash_line(j.dump(4)); #endif c.close(); diff --git a/src/libslic3r/AppConfig.hpp b/src/libslic3r/AppConfig.hpp index cf95b8ec8d..96fca84e23 100644 --- a/src/libslic3r/AppConfig.hpp +++ b/src/libslic3r/AppConfig.hpp @@ -18,12 +18,34 @@ using namespace nlohmann; #define ENV_PRE_HOST "2" #define ENV_PRODUCT_HOST "3" +#define SETTING_PROJECT_LOAD_BEHAVIOUR "project_load_behaviour" +#define OPTION_PROJECT_LOAD_BEHAVIOUR_LOAD_ALL "load_all" +#define OPTION_PROJECT_LOAD_BEHAVIOUR_ASK_WHEN_RELEVANT "ask_when_relevant" +#define OPTION_PROJECT_LOAD_BEHAVIOUR_ALWAYS_ASK "always_ask" +#define OPTION_PROJECT_LOAD_BEHAVIOUR_LOAD_GEOMETRY "load_geometry_only" + #define SUPPORT_DARK_MODE //#define _MSW_DARK_MODE namespace Slic3r { + +// Connected LAN mode BambuLab printer +struct BBLocalMachine +{ + std::string dev_name; + std::string dev_ip; + std::string dev_id; /* serial number */ + std::string printer_type; /* model_id */ + + bool operator==(const BBLocalMachine& other) const + { + return dev_name == other.dev_name && dev_ip == other.dev_ip && dev_id == other.dev_id && printer_type == other.printer_type; + } + bool operator!=(const BBLocalMachine& other) const { return !operator==(other); } +}; + class AppConfig { public: @@ -152,7 +174,8 @@ public: { auto it = m_storage.find(section); if (it != m_storage.end()) { - it->second.erase(key); + it->second.erase(key); + m_dirty = true; } } @@ -194,11 +217,34 @@ public: return ""; return m_printer_settings[printer][name]; } - std::string set_printer_setting(std::string printer, std::string name, std::string value) { - return m_printer_settings[printer][name] = value; - m_dirty = true; + void set_printer_setting(std::string printer, std::string name, std::string value) { + m_printer_settings[printer][name] = value; + m_dirty = true; } + const std::map& get_local_machines() const { return m_local_machines; } + void erase_local_machine(std::string dev_id) + { + auto it = m_local_machines.find(dev_id); + if (it != m_local_machines.end()) { + m_local_machines.erase(it); + m_dirty = true; + } + } + void update_local_machine(const BBLocalMachine& machine) + { + auto it = m_local_machines.find(machine.dev_id); + if (it != m_local_machines.end()) { + const auto& current = it->second; + if (machine != current) { + m_local_machines[machine.dev_id] = machine; + m_dirty = true; + } + } else { + m_local_machines[machine.dev_id] = machine; + m_dirty = true; + } + } const std::vector &get_filament_presets() const { return m_filament_presets; } void set_filament_presets(const std::vector &filament_presets){ @@ -335,6 +381,8 @@ private: std::vector m_filament_colors; std::vector m_printer_cali_infos; + + std::map m_local_machines; }; } // namespace Slic3r diff --git a/src/libslic3r/Arachne/PerimeterOrder.cpp b/src/libslic3r/Arachne/PerimeterOrder.cpp deleted file mode 100644 index c6c2755a48..0000000000 --- a/src/libslic3r/Arachne/PerimeterOrder.cpp +++ /dev/null @@ -1,280 +0,0 @@ -#include -#include -#include - -#include "PerimeterOrder.hpp" -#include "libslic3r/Arachne/utils/ExtrusionJunction.hpp" -#include "libslic3r/Point.hpp" - -namespace Slic3r::Arachne::PerimeterOrder { - -using namespace Arachne; - -static size_t get_extrusion_lines_count(const Perimeters &perimeters) { - size_t extrusion_lines_count = 0; - for (const Perimeter &perimeter : perimeters) - extrusion_lines_count += perimeter.size(); - - return extrusion_lines_count; -} - -static PerimeterExtrusions get_sorted_perimeter_extrusions_by_area(const Perimeters &perimeters) { - PerimeterExtrusions sorted_perimeter_extrusions; - sorted_perimeter_extrusions.reserve(get_extrusion_lines_count(perimeters)); - - for (const Perimeter &perimeter : perimeters) { - for (const ExtrusionLine &extrusion_line : perimeter) { - if (extrusion_line.empty()) - continue; // This shouldn't ever happen. - - const BoundingBox bbox = get_extents(extrusion_line); - // Be aware that Arachne produces contours with clockwise orientation and holes with counterclockwise orientation. - const double area = std::abs(extrusion_line.area()); - const Polygon polygon = extrusion_line.is_closed ? to_polygon(extrusion_line) : Polygon{}; - - sorted_perimeter_extrusions.emplace_back(extrusion_line, area, polygon, bbox); - } - } - - // Open extrusions have an area equal to zero, so sorting based on the area ensures that open extrusions will always be before closed ones. - std::sort(sorted_perimeter_extrusions.begin(), sorted_perimeter_extrusions.end(), - [](const PerimeterExtrusion &l, const PerimeterExtrusion &r) { return l.area < r.area; }); - - return sorted_perimeter_extrusions; -} - -// Functions fill adjacent_perimeter_extrusions field for every PerimeterExtrusion by pointers to PerimeterExtrusions that contain or are inside this PerimeterExtrusion. -static void construct_perimeter_extrusions_adjacency_graph(PerimeterExtrusions &sorted_perimeter_extrusions) { - // Construct a graph (defined using adjacent_perimeter_extrusions field) where two PerimeterExtrusion are adjacent when one is inside the other. - std::vector root_candidates(sorted_perimeter_extrusions.size(), false); - for (PerimeterExtrusion &perimeter_extrusion : sorted_perimeter_extrusions) { - const size_t perimeter_extrusion_idx = &perimeter_extrusion - sorted_perimeter_extrusions.data(); - - if (!perimeter_extrusion.is_closed()) { - root_candidates[perimeter_extrusion_idx] = true; - continue; - } - - for (PerimeterExtrusion &root_candidate : sorted_perimeter_extrusions) { - const size_t root_candidate_idx = &root_candidate - sorted_perimeter_extrusions.data(); - - if (!root_candidates[root_candidate_idx]) - continue; - - if (perimeter_extrusion.bbox.contains(root_candidate.bbox) && perimeter_extrusion.polygon.contains(root_candidate.extrusion.junctions.front().p)) { - perimeter_extrusion.adjacent_perimeter_extrusions.emplace_back(&root_candidate); - root_candidate.adjacent_perimeter_extrusions.emplace_back(&perimeter_extrusion); - root_candidates[root_candidate_idx] = false; - } - } - - root_candidates[perimeter_extrusion_idx] = true; - } -} - -// Perform the depth-first search to assign the nearest external perimeter for every PerimeterExtrusion. -// When some PerimeterExtrusion is achievable from more than one external perimeter, then we choose the -// one that comes from a contour. -static void assign_nearest_external_perimeter(PerimeterExtrusions &sorted_perimeter_extrusions) { - std::stack stack; - for (PerimeterExtrusion &perimeter_extrusion : sorted_perimeter_extrusions) { - if (perimeter_extrusion.is_external_perimeter()) { - perimeter_extrusion.depth = 0; - perimeter_extrusion.nearest_external_perimeter = &perimeter_extrusion; - stack.push(&perimeter_extrusion); - } - } - - while (!stack.empty()) { - PerimeterExtrusion *current_extrusion = stack.top(); - stack.pop(); - - for (PerimeterExtrusion *adjacent_extrusion : current_extrusion->adjacent_perimeter_extrusions) { - const size_t adjacent_extrusion_depth = current_extrusion->depth + 1; - // Update depth when the new depth is smaller or when we can achieve the same depth from a contour. - // This will ensure that the internal perimeter will be extruded before the outer external perimeter - // when there are two external perimeters and one internal. - if (adjacent_extrusion_depth < adjacent_extrusion->depth) { - adjacent_extrusion->nearest_external_perimeter = current_extrusion->nearest_external_perimeter; - adjacent_extrusion->depth = adjacent_extrusion_depth; - stack.push(adjacent_extrusion); - } else if (adjacent_extrusion_depth == adjacent_extrusion->depth && !adjacent_extrusion->nearest_external_perimeter->is_contour() && current_extrusion->is_contour()) { - adjacent_extrusion->nearest_external_perimeter = current_extrusion->nearest_external_perimeter; - stack.push(adjacent_extrusion); - } - } - } -} - -inline Point get_end_position(const ExtrusionLine &extrusion) { - if (extrusion.is_closed) - return extrusion.junctions[0].p; // We ended where we started. - else - return extrusion.junctions.back().p; // Pick the other end from where we started. -} - -// Returns ordered extrusions. -static std::vector ordered_perimeter_extrusions_to_minimize_distances(Point current_position, std::vector extrusions) { - // Ensure that open extrusions will be placed before the closed one. - std::sort(extrusions.begin(), extrusions.end(), - [](const PerimeterExtrusion *l, const PerimeterExtrusion *r) -> bool { return l->is_closed() < r->is_closed(); }); - - std::vector ordered_extrusions; - std::vector already_selected(extrusions.size(), false); - while (ordered_extrusions.size() < extrusions.size()) { - double nearest_distance_sqr = std::numeric_limits::max(); - size_t nearest_extrusion_idx = 0; - bool is_nearest_closed = false; - - for (size_t extrusion_idx = 0; extrusion_idx < extrusions.size(); ++extrusion_idx) { - if (already_selected[extrusion_idx]) - continue; - - const ExtrusionLine &extrusion_line = extrusions[extrusion_idx]->extrusion; - const Point &extrusion_start_position = extrusion_line.junctions.front().p; - const double distance_sqr = (current_position - extrusion_start_position).cast().squaredNorm(); - if (distance_sqr < nearest_distance_sqr) { - if (extrusion_line.is_closed || (!extrusion_line.is_closed && nearest_distance_sqr == std::numeric_limits::max()) || (!extrusion_line.is_closed && !is_nearest_closed)) { - nearest_extrusion_idx = extrusion_idx; - nearest_distance_sqr = distance_sqr; - is_nearest_closed = extrusion_line.is_closed; - } - } - } - - already_selected[nearest_extrusion_idx] = true; - const PerimeterExtrusion *nearest_extrusion = extrusions[nearest_extrusion_idx]; - current_position = get_end_position(nearest_extrusion->extrusion); - ordered_extrusions.emplace_back(nearest_extrusion); - } - - return ordered_extrusions; -} - -struct GroupedPerimeterExtrusions -{ - GroupedPerimeterExtrusions() = delete; - explicit GroupedPerimeterExtrusions(const PerimeterExtrusion *external_perimeter_extrusion) - : external_perimeter_extrusion(external_perimeter_extrusion) {} - - std::vector extrusions; - const PerimeterExtrusion *external_perimeter_extrusion = nullptr; -}; - -// Returns vector of indexes that represent the order of grouped extrusions in grouped_extrusions. -static std::vector order_of_grouped_perimeter_extrusions_to_minimize_distances(Point current_position, std::vector grouped_extrusions) { - // Ensure that holes will be placed before contour and open extrusions before the closed one. - std::sort(grouped_extrusions.begin(), grouped_extrusions.end(), [](const GroupedPerimeterExtrusions &l, const GroupedPerimeterExtrusions &r) -> bool { - return (l.external_perimeter_extrusion->is_contour() < r.external_perimeter_extrusion->is_contour()) || - (l.external_perimeter_extrusion->is_contour() == r.external_perimeter_extrusion->is_contour() && l.external_perimeter_extrusion->is_closed() < r.external_perimeter_extrusion->is_closed()); - }); - - const size_t holes_cnt = std::count_if(grouped_extrusions.begin(), grouped_extrusions.end(), [](const GroupedPerimeterExtrusions &grouped_extrusions) { - return !grouped_extrusions.external_perimeter_extrusion->is_contour(); - }); - - std::vector grouped_extrusions_order; - std::vector already_selected(grouped_extrusions.size(), false); - while (grouped_extrusions_order.size() < grouped_extrusions.size()) { - double nearest_distance_sqr = std::numeric_limits::max(); - size_t nearest_grouped_extrusions_idx = 0; - bool is_nearest_closed = false; - - // First we order all holes and then we start ordering contours. - const size_t grouped_extrusion_end = grouped_extrusions_order.size() < holes_cnt ? holes_cnt: grouped_extrusions.size(); - for (size_t grouped_extrusion_idx = 0; grouped_extrusion_idx < grouped_extrusion_end; ++grouped_extrusion_idx) { - if (already_selected[grouped_extrusion_idx]) - continue; - - const ExtrusionLine &external_perimeter_extrusion_line = grouped_extrusions[grouped_extrusion_idx].external_perimeter_extrusion->extrusion; - const Point &extrusion_start_position = external_perimeter_extrusion_line.junctions.front().p; - const double distance_sqr = (current_position - extrusion_start_position).cast().squaredNorm(); - if (distance_sqr < nearest_distance_sqr) { - if (external_perimeter_extrusion_line.is_closed || (!external_perimeter_extrusion_line.is_closed && nearest_distance_sqr == std::numeric_limits::max()) || (!external_perimeter_extrusion_line.is_closed && !is_nearest_closed)) { - nearest_grouped_extrusions_idx = grouped_extrusion_idx; - nearest_distance_sqr = distance_sqr; - is_nearest_closed = external_perimeter_extrusion_line.is_closed; - } - } - } - - grouped_extrusions_order.emplace_back(nearest_grouped_extrusions_idx); - already_selected[nearest_grouped_extrusions_idx] = true; - const GroupedPerimeterExtrusions &nearest_grouped_extrusions = grouped_extrusions[nearest_grouped_extrusions_idx]; - const ExtrusionLine &last_extrusion_line = nearest_grouped_extrusions.extrusions.back()->extrusion; - current_position = get_end_position(last_extrusion_line); - } - - return grouped_extrusions_order; -} - -static PerimeterExtrusions extract_ordered_perimeter_extrusions(const PerimeterExtrusions &sorted_perimeter_extrusions, const bool external_perimeters_first) { - // Extrusions are ordered inside each group. - std::vector grouped_extrusions; - - std::stack stack; - std::vector visited(sorted_perimeter_extrusions.size(), false); - for (const PerimeterExtrusion &perimeter_extrusion : sorted_perimeter_extrusions) { - if (!perimeter_extrusion.is_external_perimeter()) - continue; - - stack.push(&perimeter_extrusion); - visited.assign(sorted_perimeter_extrusions.size(), false); - - grouped_extrusions.emplace_back(&perimeter_extrusion); - while (!stack.empty()) { - const PerimeterExtrusion *current_extrusion = stack.top(); - const size_t current_extrusion_idx = current_extrusion - sorted_perimeter_extrusions.data(); - - stack.pop(); - visited[current_extrusion_idx] = true; - - if (current_extrusion->nearest_external_perimeter == &perimeter_extrusion) { - grouped_extrusions.back().extrusions.emplace_back(current_extrusion); - } - - std::vector available_candidates; - for (const PerimeterExtrusion *adjacent_extrusion : current_extrusion->adjacent_perimeter_extrusions) { - const size_t adjacent_extrusion_idx = adjacent_extrusion - sorted_perimeter_extrusions.data(); - if (!visited[adjacent_extrusion_idx] && !adjacent_extrusion->is_external_perimeter() && adjacent_extrusion->nearest_external_perimeter == &perimeter_extrusion) { - available_candidates.emplace_back(adjacent_extrusion); - } - } - - if (available_candidates.size() == 1) { - stack.push(available_candidates.front()); - } else if (available_candidates.size() > 1) { - // When there is more than one available candidate, then order candidates to minimize distances between - // candidates and also to minimize the distance from the current_position. - std::vector adjacent_extrusions = ordered_perimeter_extrusions_to_minimize_distances(Point::Zero(), available_candidates); - for (auto extrusion_it = adjacent_extrusions.rbegin(); extrusion_it != adjacent_extrusions.rend(); ++extrusion_it) { - stack.push(*extrusion_it); - } - } - } - - if (!external_perimeters_first) - std::reverse(grouped_extrusions.back().extrusions.begin(), grouped_extrusions.back().extrusions.end()); - } - - const std::vector grouped_extrusion_order = order_of_grouped_perimeter_extrusions_to_minimize_distances(Point::Zero(), grouped_extrusions); - - PerimeterExtrusions ordered_extrusions; - for (size_t order_idx : grouped_extrusion_order) { - for (const PerimeterExtrusion *perimeter_extrusion : grouped_extrusions[order_idx].extrusions) - ordered_extrusions.emplace_back(*perimeter_extrusion); - } - - return ordered_extrusions; -} - -// FIXME: From the point of better patch planning, it should be better to do ordering when we have generated all extrusions (for now, when G-Code is exported). -// FIXME: It would be better to extract the adjacency graph of extrusions from the SkeletalTrapezoidation graph. -PerimeterExtrusions ordered_perimeter_extrusions(const Perimeters &perimeters, const bool external_perimeters_first) { - PerimeterExtrusions sorted_perimeter_extrusions = get_sorted_perimeter_extrusions_by_area(perimeters); - construct_perimeter_extrusions_adjacency_graph(sorted_perimeter_extrusions); - assign_nearest_external_perimeter(sorted_perimeter_extrusions); - return extract_ordered_perimeter_extrusions(sorted_perimeter_extrusions, external_perimeters_first); -} - -} // namespace Slic3r::Arachne::PerimeterOrder \ No newline at end of file diff --git a/src/libslic3r/Arachne/PerimeterOrder.hpp b/src/libslic3r/Arachne/PerimeterOrder.hpp deleted file mode 100644 index f8469d917f..0000000000 --- a/src/libslic3r/Arachne/PerimeterOrder.hpp +++ /dev/null @@ -1,51 +0,0 @@ -#ifndef slic3r_GCode_PerimeterOrder_hpp_ -#define slic3r_GCode_PerimeterOrder_hpp_ - -#include -#include -#include -#include - -#include "libslic3r/Arachne/utils/ExtrusionLine.hpp" -#include "libslic3r/BoundingBox.hpp" -#include "libslic3r/Polygon.hpp" - -namespace Slic3r::Arachne::PerimeterOrder { - -// Data structure stores ExtrusionLine (closed and open) together with additional data. -struct PerimeterExtrusion -{ - explicit PerimeterExtrusion(const Arachne::ExtrusionLine &extrusion, const double area, const Polygon &polygon, const BoundingBox &bbox) - : extrusion(extrusion), area(area), polygon(polygon), bbox(bbox) {} - - Arachne::ExtrusionLine extrusion; - // Absolute value of the area of the polygon. The value is always non-negative, even for holes. - double area = 0; - - // Polygon is non-empty only for closed extrusions. - Polygon polygon; - BoundingBox bbox; - - std::vector adjacent_perimeter_extrusions; - - // How far is this perimeter from the nearest external perimeter. Contour is always preferred over holes. - size_t depth = std::numeric_limits::max(); - PerimeterExtrusion *nearest_external_perimeter = nullptr; - - // Returns if ExtrusionLine is a contour or a hole. - bool is_contour() const { return extrusion.is_contour(); } - - // Returns if ExtrusionLine is closed or opened. - bool is_closed() const { return extrusion.is_closed; } - - // Returns if ExtrusionLine is an external or an internal perimeter. - bool is_external_perimeter() const { return extrusion.is_external_perimeter(); } -}; - -using PerimeterExtrusions = std::vector; - -PerimeterExtrusions ordered_perimeter_extrusions(const Perimeters &perimeters, bool external_perimeters_first); - -} // namespace Slic3r::Arachne::PerimeterOrder - -#endif // slic3r_GCode_Travels_hpp_ diff --git a/src/libslic3r/Arachne/WallToolPaths.cpp b/src/libslic3r/Arachne/WallToolPaths.cpp index 8f2b04cf42..b5b3548371 100644 --- a/src/libslic3r/Arachne/WallToolPaths.cpp +++ b/src/libslic3r/Arachne/WallToolPaths.cpp @@ -782,4 +782,98 @@ bool WallToolPaths::removeEmptyToolPaths(std::vector &toolpa return toolpaths.empty(); } +/*! + * Get the order constraints of the insets when printing walls per region / hole. + * Each returned pair consists of adjacent wall lines where the left has an inset_idx one lower than the right. + * + * Odd walls should always go after their enclosing wall polygons. + * + * \param outer_to_inner Whether the wall polygons with a lower inset_idx should go before those with a higher one. + */ +WallToolPaths::ExtrusionLineSet WallToolPaths::getRegionOrder(const std::vector &input, const bool outer_to_inner) +{ + ExtrusionLineSet order_requirements; + // We build a grid where we map toolpath vertex locations to toolpaths, + // so that we can easily find which two toolpaths are next to each other, + // which is the requirement for there to be an order constraint. + // + // We use a PointGrid rather than a LineGrid to save on computation time. + // In very rare cases two insets might lie next to each other without having neighboring vertices, e.g. + // \ . + // | / . + // | / . + // || . + // | \ . + // | \ . + // / . + // However, because of how Arachne works this will likely never be the case for two consecutive insets. + // On the other hand one could imagine that two consecutive insets of a very large circle + // could be simplify()ed such that the remaining vertices of the two insets don't align. + // In those cases the order requirement is not captured, + // which means that the PathOrderOptimizer *might* result in a violation of the user set path order. + // This problem is expected to be not so severe and happen very sparsely. + + coord_t max_line_w = 0u; + for (const ExtrusionLine *line : input) // compute max_line_w + for (const ExtrusionJunction &junction : *line) + max_line_w = std::max(max_line_w, junction.w); + if (max_line_w == 0u) + return order_requirements; + + struct LineLoc + { + ExtrusionJunction j; + const ExtrusionLine *line; + }; + struct Locator + { + Point operator()(const LineLoc &elem) { return elem.j.p; } + }; + + // How much farther two verts may be apart due to corners. + // This distance must be smaller than 2, because otherwise + // we could create an order requirement between e.g. + // wall 2 of one region and wall 3 of another region, + // while another wall 3 of the first region would lie in between those two walls. + // However, higher values are better against the limitations of using a PointGrid rather than a LineGrid. + constexpr float diagonal_extension = 1.9f; + const auto searching_radius = coord_t(max_line_w * diagonal_extension); + using GridT = SparsePointGrid; + GridT grid(searching_radius); + + for (const ExtrusionLine *line : input) + for (const ExtrusionJunction &junction : *line) grid.insert(LineLoc{junction, line}); + for (const std::pair &pair : grid) { + const LineLoc &lineloc_here = pair.second; + const ExtrusionLine *here = lineloc_here.line; + Point loc_here = pair.second.j.p; + std::vector nearby_verts = grid.getNearby(loc_here, searching_radius); + for (const LineLoc &lineloc_nearby : nearby_verts) { + const ExtrusionLine *nearby = lineloc_nearby.line; + if (nearby == here) + continue; + if (nearby->inset_idx == here->inset_idx) + continue; + if (nearby->inset_idx > here->inset_idx + 1) + continue; // not directly adjacent + if (here->inset_idx > nearby->inset_idx + 1) + continue; // not directly adjacent + if (!shorter_then(loc_here - lineloc_nearby.j.p, (lineloc_here.j.w + lineloc_nearby.j.w) / 2 * diagonal_extension)) + continue; // points are too far away from each other + if (here->is_odd || nearby->is_odd) { + if (here->is_odd && !nearby->is_odd && nearby->inset_idx < here->inset_idx) + order_requirements.emplace(std::make_pair(nearby, here)); + if (nearby->is_odd && !here->is_odd && here->inset_idx < nearby->inset_idx) + order_requirements.emplace(std::make_pair(here, nearby)); + } else if ((nearby->inset_idx < here->inset_idx) == outer_to_inner) { + order_requirements.emplace(std::make_pair(nearby, here)); + } else { + assert((nearby->inset_idx > here->inset_idx) == outer_to_inner); + order_requirements.emplace(std::make_pair(here, nearby)); + } + } + } + return order_requirements; +} + } // namespace Slic3r::Arachne diff --git a/src/libslic3r/Arachne/WallToolPaths.hpp b/src/libslic3r/Arachne/WallToolPaths.hpp index 00652fc091..457f7e7149 100644 --- a/src/libslic3r/Arachne/WallToolPaths.hpp +++ b/src/libslic3r/Arachne/WallToolPaths.hpp @@ -90,6 +90,16 @@ public: using ExtrusionLineSet = ankerl::unordered_dense::set, boost::hash>>; + /*! + * Get the order constraints of the insets when printing walls per region / hole. + * Each returned pair consists of adjacent wall lines where the left has an inset_idx one lower than the right. + * + * Odd walls should always go after their enclosing wall polygons. + * + * \param outer_to_inner Whether the wall polygons with a lower inset_idx should go before those with a higher one. + */ + static ExtrusionLineSet getRegionOrder(const std::vector &input, bool outer_to_inner); + protected: /*! * Stitch the polylines together and form closed polygons. diff --git a/src/libslic3r/Arachne/utils/ExtrusionLine.cpp b/src/libslic3r/Arachne/utils/ExtrusionLine.cpp index 49449cc59d..0ee40b2b42 100644 --- a/src/libslic3r/Arachne/utils/ExtrusionLine.cpp +++ b/src/libslic3r/Arachne/utils/ExtrusionLine.cpp @@ -264,10 +264,9 @@ bool ExtrusionLine::is_contour() const return poly.is_clockwise(); } -double ExtrusionLine::area() const { - if (!this->is_closed) - return 0.; - +double ExtrusionLine::area() const +{ + assert(this->is_closed); double a = 0.; if (this->junctions.size() >= 3) { Vec2d p1 = this->junctions.back().p.cast(); @@ -277,25 +276,9 @@ double ExtrusionLine::area() const { p1 = p2; } } - return 0.5 * a; } -Points to_points(const ExtrusionLine &extrusion_line) { - Points points; - points.reserve(extrusion_line.junctions.size()); - for (const ExtrusionJunction &junction : extrusion_line.junctions) - points.emplace_back(junction.p); - return points; -} - -BoundingBox get_extents(const ExtrusionLine &extrusion_line) { - BoundingBox bbox; - for (const ExtrusionJunction &junction : extrusion_line.junctions) - bbox.merge(junction.p); - return bbox; -} - } // namespace Slic3r::Arachne namespace Slic3r { diff --git a/src/libslic3r/Arachne/utils/ExtrusionLine.hpp b/src/libslic3r/Arachne/utils/ExtrusionLine.hpp index d8cad702ac..21791000f0 100644 --- a/src/libslic3r/Arachne/utils/ExtrusionLine.hpp +++ b/src/libslic3r/Arachne/utils/ExtrusionLine.hpp @@ -199,8 +199,6 @@ struct ExtrusionLine bool is_contour() const; double area() const; - - bool is_external_perimeter() const { return this->inset_idx == 0; } }; template @@ -227,7 +225,6 @@ static inline Slic3r::ThickPolyline to_thick_polyline(const PathType &path) static inline Polygon to_polygon(const ExtrusionLine &line) { Polygon out; - assert(line.is_closed); assert(line.junctions.size() >= 3); assert(line.junctions.front().p == line.junctions.back().p); out.points.reserve(line.junctions.size() - 1); @@ -236,11 +233,24 @@ static inline Polygon to_polygon(const ExtrusionLine &line) return out; } -Points to_points(const ExtrusionLine &extrusion_line); - -BoundingBox get_extents(const ExtrusionLine &extrusion_line); +static Points to_points(const ExtrusionLine &extrusion_line) +{ + Points points; + points.reserve(extrusion_line.junctions.size()); + for (const ExtrusionJunction &junction : extrusion_line.junctions) + points.emplace_back(junction.p); + return points; +} #if 0 +static BoundingBox get_extents(const ExtrusionLine &extrusion_line) +{ + BoundingBox bbox; + for (const ExtrusionJunction &junction : extrusion_line.junctions) + bbox.merge(junction.p); + return bbox; +} + static BoundingBox get_extents(const std::vector &extrusion_lines) { BoundingBox bbox; @@ -271,8 +281,6 @@ static std::vector to_points(const std::vector &e #endif using VariableWidthLines = std::vector; //; } // namespace Slic3r::Arachne diff --git a/src/libslic3r/Arrange.cpp b/src/libslic3r/Arrange.cpp index 917ea14c84..8bf246591d 100644 --- a/src/libslic3r/Arrange.cpp +++ b/src/libslic3r/Arrange.cpp @@ -103,8 +103,10 @@ void update_selected_items_inflation(ArrangePolygons& selected, const DynamicPri BoundingBox bedbb = Polygon(bedpts).bounding_box(); // set obj distance for auto seq_print if (params.is_seq_print) { - if (params.all_objects_are_short) + bool all_objects_are_short = std::all_of(selected.begin(), selected.end(), [&](ArrangePolygon& ap) { return ap.height < params.nozzle_height; }); + if (all_objects_are_short) { params.min_obj_distance = std::max(params.min_obj_distance, scaled(std::max(MAX_OUTER_NOZZLE_DIAMETER/2.f, params.object_skirt_offset*2)+0.001)); + } else params.min_obj_distance = std::max(params.min_obj_distance, scaled(params.clearance_radius + 0.001)); // +0.001mm to avoid clearance check fail due to rounding error } diff --git a/src/libslic3r/Arrange.hpp b/src/libslic3r/Arrange.hpp index 8781477bcb..ad125aee7d 100644 --- a/src/libslic3r/Arrange.hpp +++ b/src/libslic3r/Arrange.hpp @@ -135,7 +135,6 @@ struct ArrangeParams { float clearance_radius = 0; float object_skirt_offset = 0; float nozzle_height = 0; - bool all_objects_are_short = false; float printable_height = 256.0; Vec2d align_center{ 0.5,0.5 }; diff --git a/src/libslic3r/Brim.cpp b/src/libslic3r/Brim.cpp index 5deec514a8..e9fdd7921b 100644 --- a/src/libslic3r/Brim.cpp +++ b/src/libslic3r/Brim.cpp @@ -806,8 +806,8 @@ double configBrimWidthByVolumeGroups(double adhesion, double maxSpeed, const std // Generate ears // Ported from SuperSlicer: https://github.com/supermerill/SuperSlicer/blob/45d0532845b63cd5cefe7de7dc4ef0e0ed7e030a/src/libslic3r/Brim.cpp#L1116 -static ExPolygons make_brim_ears(ExPolygons& obj_expoly, coord_t size_ear, coord_t ear_detection_length, - coordf_t brim_ears_max_angle, bool is_outer_brim) { +static ExPolygons make_brim_ears_auto(const ExPolygons& obj_expoly, coord_t size_ear, coord_t ear_detection_length, + coordf_t brim_ears_max_angle, bool is_outer_brim) { ExPolygons mouse_ears_ex; if (size_ear <= 0) { return mouse_ears_ex; @@ -815,7 +815,7 @@ static ExPolygons make_brim_ears(ExPolygons& obj_expoly, coord_t size_ear, coord // Detect places to put ears const coordf_t angle_threshold = (180 - brim_ears_max_angle) * PI / 180.0; Points pt_ears; - for (ExPolygon &poly : obj_expoly) { + for (const ExPolygon &poly : obj_expoly) { Polygon decimated_polygon = poly.contour; if (ear_detection_length > 0) { // decimate polygon @@ -835,8 +835,8 @@ static ExPolygons make_brim_ears(ExPolygons& obj_expoly, coord_t size_ear, coord // Then add ears // create ear pattern Polygon point_round; - for (size_t i = 0; i < POLY_SIDES; i++) { - double angle = (2.0 * PI * i) / POLY_SIDES; + for (size_t i = 0; i < POLY_SIDE_COUNT; i++) { + double angle = (2.0 * PI * i) / POLY_SIDE_COUNT; point_round.points.emplace_back(size_ear * cos(angle), size_ear * sin(angle)); } @@ -850,6 +850,41 @@ static ExPolygons make_brim_ears(ExPolygons& obj_expoly, coord_t size_ear, coord return mouse_ears_ex; } +static ExPolygons make_brim_ears(const PrintObject* object, const double& flowWidth, float brim_offset, Flow &flow, bool is_outer_brim) +{ + ExPolygons mouse_ears_ex; + BrimPoints brim_ear_points = object->model_object()->brim_points; + if (brim_ear_points.size() <= 0) { + return mouse_ears_ex; + } + const Geometry::Transformation& trsf = object->model_object()->instances[0]->get_transformation(); + Transform3d model_trsf = trsf.get_matrix_no_offset(); + const Point ¢er_offset = object->center_offset(); + model_trsf = model_trsf.pretranslate(Vec3d(- unscale(center_offset.x()), - unscale(center_offset.y()), 0)); + for (auto &pt : brim_ear_points) { + Vec3f world_pos = pt.transform(trsf.get_matrix()); + if ( world_pos.z() > 0) continue; + Polygon point_round; + float brim_width = floor(scale_(pt.head_front_radius) / flowWidth / 2) * flowWidth * 2; + if (is_outer_brim) { + double flowWidthScale = flowWidth / SCALING_FACTOR; + brim_width = floor(brim_width / flowWidthScale / 2) * flowWidthScale * 2; + } + coord_t size_ear = (brim_width - brim_offset - flow.scaled_spacing()); + for (size_t i = 0; i < POLY_SIDE_COUNT; i++) { + double angle = (2.0 * PI * i) / POLY_SIDE_COUNT; + point_round.points.emplace_back(size_ear * cos(angle), size_ear * sin(angle)); + } + mouse_ears_ex.emplace_back(); + mouse_ears_ex.back().contour = point_round; + Vec3f pos = pt.transform(model_trsf); + int32_t pt_x = scale_(pos.x()); + int32_t pt_y = scale_(pos.y()); + mouse_ears_ex.back().contour.translate(Point(pt_x, pt_y)); + } + return mouse_ears_ex; +} + //BBS: create all brims static ExPolygons outer_inner_brim_area(const Print& print, const float no_brim_offset, std::map& brimAreaMap, @@ -888,9 +923,10 @@ static ExPolygons outer_inner_brim_area(const Print& print, const float scaled_additional_brim_width = scale_(floor(5 / flowWidth / 2) * flowWidth * 2); const float scaled_half_min_adh_length = scale_(1.1); bool has_brim_auto = object->config().brim_type == btAutoBrim; - const bool use_brim_ears = object->config().brim_type == btEar; - const bool has_inner_brim = brim_type == btInnerOnly || brim_type == btOuterAndInner || use_brim_ears; - const bool has_outer_brim = brim_type == btOuterOnly || brim_type == btOuterAndInner || brim_type == btAutoBrim || use_brim_ears; + const bool use_auto_brim_ears = object->config().brim_type == btEar; + const bool use_brim_ears = object->config().brim_type == btPainted; + const bool has_inner_brim = brim_type == btInnerOnly || brim_type == btOuterAndInner || use_auto_brim_ears || use_brim_ears; + const bool has_outer_brim = brim_type == btOuterOnly || brim_type == btOuterAndInner || brim_type == btAutoBrim || use_auto_brim_ears || use_brim_ears; coord_t ear_detection_length = scale_(object->config().brim_ears_detection_length.value); coordf_t brim_ears_max_angle = object->config().brim_ears_max_angle.value; @@ -951,27 +987,30 @@ static ExPolygons outer_inner_brim_area(const Print& print, if (has_outer_brim) { // BBS: inner and outer boundary are offset from the same polygon incase of round off error. auto innerExpoly = offset_ex(ex_poly.contour, brim_offset, jtRound, SCALED_RESOLUTION); - auto &clipExpoly = innerExpoly; - + ExPolygons outerExpoly; if (use_brim_ears) { + outerExpoly = make_brim_ears(object, flowWidth, brim_offset, flow, true); + //outerExpoly = offset_ex(outerExpoly, brim_width_mod, jtRound, SCALED_RESOLUTION); + } else if (use_auto_brim_ears) { coord_t size_ear = (brim_width_mod - brim_offset - flow.scaled_spacing()); - append(brim_area_object, diff_ex(make_brim_ears(innerExpoly, size_ear, ear_detection_length, brim_ears_max_angle, true), clipExpoly)); - } else { - // Normal brims - append(brim_area_object, diff_ex(offset_ex(innerExpoly, brim_width_mod, jtRound, SCALED_RESOLUTION), clipExpoly)); + outerExpoly = make_brim_ears_auto(innerExpoly, size_ear, ear_detection_length, brim_ears_max_angle, true); + }else { + outerExpoly = offset_ex(innerExpoly, brim_width_mod, jtRound, SCALED_RESOLUTION); } + append(brim_area_object, diff_ex(outerExpoly, innerExpoly)); } if (has_inner_brim) { - auto outerExpoly = offset_ex(ex_poly_holes_reversed, -brim_offset); - auto clipExpoly = offset_ex(ex_poly_holes_reversed, -brim_width - brim_offset); - + ExPolygons outerExpoly; + auto innerExpoly = offset_ex(ex_poly_holes_reversed, -brim_width - brim_offset); if (use_brim_ears) { + outerExpoly = make_brim_ears(object, flowWidth, brim_offset, flow, false); + } else if (use_auto_brim_ears) { coord_t size_ear = (brim_width - brim_offset - flow.scaled_spacing()); - append(brim_area_object, diff_ex(make_brim_ears(outerExpoly, size_ear, ear_detection_length, brim_ears_max_angle, false), clipExpoly)); - } else { - // Normal brims - append(brim_area_object, diff_ex(outerExpoly, clipExpoly)); + outerExpoly = make_brim_ears_auto(offset_ex(ex_poly_holes_reversed, -brim_offset), size_ear, ear_detection_length, brim_ears_max_angle, false); + }else { + outerExpoly = offset_ex(ex_poly_holes_reversed, -brim_offset); } + append(brim_area_object, diff_ex(outerExpoly, innerExpoly)); } if (!has_inner_brim) { // BBS: brim should be apart from holes diff --git a/src/libslic3r/BrimEarsPoint.hpp b/src/libslic3r/BrimEarsPoint.hpp new file mode 100644 index 0000000000..d768d21976 --- /dev/null +++ b/src/libslic3r/BrimEarsPoint.hpp @@ -0,0 +1,63 @@ +#ifndef BRIMEARSPOINT_HPP +#define BRIMEARSPOINT_HPP + +#include + + +namespace Slic3r { + +// An enum to keep track of where the current points on the ModelObject came from. +enum class PointsStatus { + NoPoints, // No points were generated so far. + Generating, // The autogeneration algorithm triggered, but not yet finished. + AutoGenerated, // Points were autogenerated (i.e. copied from the backend). + UserModified // User has done some edits. +}; + +struct BrimPoint +{ + Vec3f pos; + float head_front_radius; + + BrimPoint() + : pos(Vec3f::Zero()), head_front_radius(0.f) + {} + + BrimPoint(float pos_x, + float pos_y, + float pos_z, + float head_radius) + : pos(pos_x, pos_y, pos_z) + , head_front_radius(head_radius) + {} + + BrimPoint(Vec3f position, float head_radius) + : pos(position) + , head_front_radius(head_radius) + {} + + Vec3f transform(const Transform3d &trsf) + { + Vec3d result = trsf * pos.cast(); + return result.cast(); + } + + bool operator==(const BrimPoint &sp) const + { + float rdiff = std::abs(head_front_radius - sp.head_front_radius); + return (pos == sp.pos) && rdiff < float(EPSILON); + } + + bool operator!=(const BrimPoint &sp) const { return !(sp == (*this)); } + template void serialize(Archive &ar) + { + ar(pos, head_front_radius); + } +}; + +using BrimPoints = std::vector; + +} + + +#endif // BRIMEARSPOINT_HPP \ No newline at end of file diff --git a/src/libslic3r/CMakeLists.txt b/src/libslic3r/CMakeLists.txt index 9dae196b32..8a4e2a8429 100644 --- a/src/libslic3r/CMakeLists.txt +++ b/src/libslic3r/CMakeLists.txt @@ -43,6 +43,7 @@ set(lisbslic3r_sources FaceDetector.hpp Brim.cpp Brim.hpp + BrimEarsPoint.hpp BuildVolume.cpp BuildVolume.hpp Circle.cpp @@ -433,8 +434,6 @@ set(lisbslic3r_sources Arachne/utils/PolygonsSegmentIndex.hpp Arachne/utils/PolylineStitcher.hpp Arachne/utils/PolylineStitcher.cpp - Arachne/PerimeterOrder.hpp - Arachne/PerimeterOrder.cpp Arachne/SkeletalTrapezoidation.hpp Arachne/SkeletalTrapezoidation.cpp Arachne/SkeletalTrapezoidationEdge.hpp @@ -552,7 +551,7 @@ set(OCCT_LIBS TKernel ) - +find_package(libnoise REQUIRED) target_link_libraries(libslic3r libnest2d admesh @@ -578,6 +577,7 @@ target_link_libraries(libslic3r JPEG::JPEG qoi opencv_world + noise::noise ) if(NOT WIN32) diff --git a/src/libslic3r/Config.cpp b/src/libslic3r/Config.cpp index e826bb4c5b..57f51f0b23 100644 --- a/src/libslic3r/Config.cpp +++ b/src/libslic3r/Config.cpp @@ -839,8 +839,9 @@ int ConfigBase::load_from_json(const std::string &file, ConfigSubstitutionContex } else if (!load_inherits_to_config && boost::iequals(it.key(), BBL_JSON_KEY_INHERITS)) { key_values.emplace(BBL_JSON_KEY_INHERITS, it.value()); - } - else { + } else if (boost::iequals(it.key(), ORCA_JSON_KEY_RENAMED_FROM)) { + key_values.emplace(ORCA_JSON_KEY_RENAMED_FROM, it.value()); + } else { t_config_option_key opt_key = it.key(); std::string value_str; diff --git a/src/libslic3r/ExPolygon.cpp b/src/libslic3r/ExPolygon.cpp index 364d2a6126..8e1dd12ed5 100644 --- a/src/libslic3r/ExPolygon.cpp +++ b/src/libslic3r/ExPolygon.cpp @@ -185,6 +185,15 @@ bool overlaps(const ExPolygons& expolys1, const ExPolygons& expolys2) return false; } +bool overlaps(const ExPolygons& expolys, const ExPolygon& expoly) +{ + for (const ExPolygon& el : expolys) { + if (el.overlaps(expoly)) + return true; + } + return false; +} + Point projection_onto(const ExPolygons& polygons, const Point& from) { Point projected_pt; diff --git a/src/libslic3r/ExPolygon.hpp b/src/libslic3r/ExPolygon.hpp index d72fdf3389..187ef27a11 100644 --- a/src/libslic3r/ExPolygon.hpp +++ b/src/libslic3r/ExPolygon.hpp @@ -457,6 +457,7 @@ inline ExPolygons expolygons_simplify(const ExPolygons &expolys, double toleranc bool expolygons_match(const ExPolygon &l, const ExPolygon &r); bool overlaps(const ExPolygons& expolys1, const ExPolygons& expolys2); +bool overlaps(const ExPolygons& expolys, const ExPolygon& expoly); Point projection_onto(const ExPolygons& expolys, const Point& pt); diff --git a/src/libslic3r/Fill/Fill.cpp b/src/libslic3r/Fill/Fill.cpp index 6b35acb47c..283ff2caa5 100644 --- a/src/libslic3r/Fill/Fill.cpp +++ b/src/libslic3r/Fill/Fill.cpp @@ -64,6 +64,10 @@ struct SurfaceFillParams float top_surface_speed = 0; float solid_infill_speed = 0; + // Params for lattice infill angles + float lattice_angle_1 = 0.f; + float lattice_angle_2 = 0.f; + bool operator<(const SurfaceFillParams &rhs) const { #define RETURN_COMPARE_NON_EQUAL(KEY) if (this->KEY < rhs.KEY) return true; if (this->KEY > rhs.KEY) return false; #define RETURN_COMPARE_NON_EQUAL_TYPED(TYPE, KEY) if (TYPE(this->KEY) < TYPE(rhs.KEY)) return true; if (TYPE(this->KEY) > TYPE(rhs.KEY)) return false; @@ -90,6 +94,8 @@ struct SurfaceFillParams RETURN_COMPARE_NON_EQUAL(sparse_infill_speed); RETURN_COMPARE_NON_EQUAL(top_surface_speed); RETURN_COMPARE_NON_EQUAL(solid_infill_speed); + RETURN_COMPARE_NON_EQUAL(lattice_angle_1); + RETURN_COMPARE_NON_EQUAL(lattice_angle_2); return false; } @@ -111,7 +117,9 @@ struct SurfaceFillParams this->extrusion_role == rhs.extrusion_role && this->sparse_infill_speed == rhs.sparse_infill_speed && this->top_surface_speed == rhs.top_surface_speed && - this->solid_infill_speed == rhs.solid_infill_speed; + this->solid_infill_speed == rhs.solid_infill_speed && + this->lattice_angle_1 == rhs.lattice_angle_1 && + this->lattice_angle_2 == rhs.lattice_angle_2; } }; @@ -611,6 +619,8 @@ std::vector group_fills(const Layer &layer) params.extruder = layerm.region().extruder(extrusion_role); params.pattern = region_config.sparse_infill_pattern.value; params.density = float(region_config.sparse_infill_density); + params.lattice_angle_1 = region_config.lattice_angle_1; + params.lattice_angle_2 = region_config.lattice_angle_2; if (surface.is_solid()) { params.density = 100.f; @@ -953,6 +963,8 @@ void Layer::make_fills(FillAdaptive::Octree* adaptive_fill_octree, FillAdaptive: params.resolution = resolution; params.use_arachne = surface_fill.params.pattern == ipConcentric || surface_fill.params.pattern == ipConcentricInternal; params.layer_height = layerm->layer()->height; + params.lattice_angle_1 = surface_fill.params.lattice_angle_1; + params.lattice_angle_2 = surface_fill.params.lattice_angle_2; // BBS params.flow = surface_fill.params.flow; @@ -972,6 +984,10 @@ void Layer::make_fills(FillAdaptive::Octree* adaptive_fill_octree, FillAdaptive: params.density = layerm->region().config().bridge_density.get_abs_value(1.0); params.dont_adjust = true; } + if(surface_fill.surface.is_internal_bridge()){ + params.density = f->print_object_config->internal_bridge_density.get_abs_value(1.0); + params.dont_adjust = true; + } // BBS: make fill f->fill_surface_extrusion(&surface_fill.surface, params, @@ -1022,6 +1038,7 @@ Polylines Layer::generate_sparse_infill_polylines_for_anchoring(FillAdaptive::Oc case ipMonotonicLine: case ipAlignedRectilinear: case ipGrid: + case ip2DLattice: case ipTriangles: case ipStars: case ipCubic: @@ -1076,6 +1093,8 @@ Polylines Layer::generate_sparse_infill_polylines_for_anchoring(FillAdaptive::Oc params.resolution = resolution; params.use_arachne = false; params.layer_height = layerm.layer()->height; + params.lattice_angle_1 = surface_fill.params.lattice_angle_1; + params.lattice_angle_2 = surface_fill.params.lattice_angle_2; for (ExPolygon &expoly : surface_fill.expolygons) { // Spacing is modified by the filler to indicate adjustments. Reset it for each expolygon. diff --git a/src/libslic3r/Fill/FillBase.cpp b/src/libslic3r/Fill/FillBase.cpp index 6225987486..b4adacbf7a 100644 --- a/src/libslic3r/Fill/FillBase.cpp +++ b/src/libslic3r/Fill/FillBase.cpp @@ -47,9 +47,11 @@ Fill* Fill::new_from_type(const InfillPattern type) case ipMonotonic: return new FillMonotonic(); case ipLine: return new FillLine(); case ipGrid: return new FillGrid(); + case ip2DLattice: return new Fill2DLattice(); case ipTriangles: return new FillTriangles(); case ipStars: return new FillStars(); case ipCubic: return new FillCubic(); + case ipQuarterCubic: return new FillQuarterCubic(); case ipArchimedeanChords: return new FillArchimedeanChords(); case ipHilbertCurve: return new FillHilbertCurve(); case ipOctagramSpiral: return new FillOctagramSpiral(); diff --git a/src/libslic3r/Fill/FillBase.hpp b/src/libslic3r/Fill/FillBase.hpp index 4812fcd5eb..de93db3693 100644 --- a/src/libslic3r/Fill/FillBase.hpp +++ b/src/libslic3r/Fill/FillBase.hpp @@ -69,6 +69,10 @@ struct FillParams // Layer height for Concentric infill with Arachne. coordf_t layer_height { 0.f }; + // For 2D lattice + coordf_t lattice_angle_1 { 0.f }; + coordf_t lattice_angle_2 { 0.f }; + // BBS Flow flow; ExtrusionRole extrusion_role{ ExtrusionRole(0) }; diff --git a/src/libslic3r/Fill/FillRectilinear.cpp b/src/libslic3r/Fill/FillRectilinear.cpp index dc9595eac4..c85d5e02fb 100644 --- a/src/libslic3r/Fill/FillRectilinear.cpp +++ b/src/libslic3r/Fill/FillRectilinear.cpp @@ -9,6 +9,7 @@ #include #include #include +#include #include "../ClipperUtils.hpp" #include "../ExPolygon.hpp" @@ -3001,6 +3002,23 @@ Polylines FillGrid::fill_surface(const Surface *surface, const FillParams ¶m return polylines_out; } +Polylines Fill2DLattice::fill_surface(const Surface *surface, const FillParams ¶ms) +{ + Polylines polylines_out; + coordf_t dx1 = tan(Geometry::deg2rad(params.lattice_angle_1)) * z; + coordf_t dx2 = tan(Geometry::deg2rad(params.lattice_angle_2)) * z; + if (! this->fill_surface_by_multilines( + surface, params, + { { float(M_PI / 2.), float(dx1) }, { float(M_PI / 2.), float(dx2) } }, + polylines_out)) + BOOST_LOG_TRIVIAL(error) << "Fill2DLattice::fill_surface() failed to fill a region."; + + if (this->layer_id % 2 == 1) + for (int i = 0; i < polylines_out.size(); i++) + std::reverse(polylines_out[i].begin(), polylines_out[i].end()); + return polylines_out; +} + Polylines FillTriangles::fill_surface(const Surface *surface, const FillParams ¶ms) { Polylines polylines_out; @@ -3035,6 +3053,39 @@ Polylines FillCubic::fill_surface(const Surface *surface, const FillParams ¶ return polylines_out; } +Polylines FillQuarterCubic::fill_surface(const Surface* surface, const FillParams& params) +{ + using namespace boost::math::float_constants; + + Polylines polylines_out; + + coord_t line_width = coord_t(scale_(this->spacing)); + coord_t period = coord_t(scale_(this->spacing) / params.density) * 4; + + // First half tetrahedral fill + double pattern_z_shift = 0.0; + coord_t shift = coord_t(one_div_root_two * (scale_(z) + pattern_z_shift * period * 2)) % period; + shift = std::min(shift, period - shift); // symmetry due to the fact that we are applying the shift in both directions + shift = std::min(shift, period / 2 - line_width / 2); // don't put lines too close to each other + shift = std::max(shift, line_width / 2); // don't put lines too close to each other + float dx1 = unscale_(shift); + + // Second half tetrahedral fill + pattern_z_shift = 0.5; + shift = coord_t(one_div_root_two * (scale_(z) + pattern_z_shift * period * 2)) % period; + shift = std::min(shift, period - shift); // symmetry due to the fact that we are applying the shift in both directions + shift = std::min(shift, period / 2 - line_width / 2); // don't put lines too close to each other + shift = std::max(shift, line_width / 2); // don't put lines too close to each other + float dx2 = unscale_(shift); + if (!this->fill_surface_by_multilines( + surface, params, + {{0.f, dx1}, {0.f, -dx1}, {float(M_PI / 2.), dx2}, {float(M_PI / 2.), -dx2}}, + polylines_out)) + BOOST_LOG_TRIVIAL(error) << "FillQuarterCubic::fill_surface() failed to fill a region."; + + return polylines_out; +} + Polylines FillSupportBase::fill_surface(const Surface *surface, const FillParams ¶ms) { assert(! params.full_infill()); diff --git a/src/libslic3r/Fill/FillRectilinear.hpp b/src/libslic3r/Fill/FillRectilinear.hpp index f85dce07e8..58f9afb1df 100644 --- a/src/libslic3r/Fill/FillRectilinear.hpp +++ b/src/libslic3r/Fill/FillRectilinear.hpp @@ -71,6 +71,18 @@ protected: float _layer_angle(size_t idx) const override { return 0.f; } }; +class Fill2DLattice : public FillRectilinear +{ +public: + Fill* clone() const override { return new Fill2DLattice(*this); } + ~Fill2DLattice() override = default; + Polylines fill_surface(const Surface *surface, const FillParams ¶ms) override; + +protected: + // The grid fill will keep the angle constant between the layers, see the implementation of Slic3r::Fill. + float _layer_angle(size_t idx) const override { return 0.f; } +}; + class FillTriangles : public FillRectilinear { public: @@ -107,6 +119,20 @@ protected: float _layer_angle(size_t idx) const override { return 0.f; } }; +// Added QuarterCubic pattern from Cura +class FillQuarterCubic : public FillRectilinear +{ +public: + Fill* clone() const override { return new FillQuarterCubic(*this); } + ~FillQuarterCubic() override = default; + Polylines fill_surface(const Surface *surface, const FillParams ¶ms) override; + +protected: + // The grid fill will keep the angle constant between the layers, see the implementation of Slic3r::Fill. + float _layer_angle(size_t idx) const override { return 0.f; } +}; + + class FillSupportBase : public FillRectilinear { public: diff --git a/src/libslic3r/Format/STEP.cpp b/src/libslic3r/Format/STEP.cpp index b705641d6e..45e938d1b6 100644 --- a/src/libslic3r/Format/STEP.cpp +++ b/src/libslic3r/Format/STEP.cpp @@ -197,15 +197,19 @@ static void getNamedSolids(const TopLoc_Location& location, const std::string& p } } else { TopoDS_Shape shape; + TopExp_Explorer explorer; shapeTool->GetShape(referredLabel, shape); TopAbs_ShapeEnum shape_type = shape.ShapeType(); BRepBuilderAPI_Transform transform(shape, localLocation, Standard_True); + int i = 0; switch (shape_type) { case TopAbs_COMPOUND: - namedSolids.emplace_back(TopoDS::Compound(transform.Shape()), fullName); - break; case TopAbs_COMPSOLID: - namedSolids.emplace_back(TopoDS::CompSolid(transform.Shape()), fullName); + for (explorer.Init(transform.Shape(), TopAbs_SOLID); explorer.More(); explorer.Next()) { + i++; + const TopoDS_Shape& currentShape = explorer.Current(); + namedSolids.emplace_back(TopoDS::Solid(currentShape), fullName + "-SOLID-" + std::to_string(i)); + } break; case TopAbs_SOLID: namedSolids.emplace_back(TopoDS::Solid(transform.Shape()), fullName); diff --git a/src/libslic3r/Format/bbs_3mf.cpp b/src/libslic3r/Format/bbs_3mf.cpp index f13181ad27..38f4f34307 100644 --- a/src/libslic3r/Format/bbs_3mf.cpp +++ b/src/libslic3r/Format/bbs_3mf.cpp @@ -170,6 +170,7 @@ const std::string BBS_MODEL_CONFIG_RELS_FILE = "Metadata/_rels/model_settings.co const std::string SLICE_INFO_CONFIG_FILE = "Metadata/slice_info.config"; const std::string BBS_LAYER_HEIGHTS_PROFILE_FILE = "Metadata/layer_heights_profile.txt"; const std::string LAYER_CONFIG_RANGES_FILE = "Metadata/layer_config_ranges.xml"; +const std::string BRIM_EAR_POINTS_FILE = "Metadata/brim_ear_points.txt"; /*const std::string SLA_SUPPORT_POINTS_FILE = "Metadata/Slic3r_PE_sla_support_points.txt"; const std::string SLA_DRAIN_HOLES_FILE = "Metadata/Slic3r_PE_sla_drain_holes.txt";*/ const std::string CUSTOM_GCODE_PER_PRINT_Z_FILE = "Metadata/custom_gcode_per_layer.xml"; @@ -807,10 +808,11 @@ void PlateData::parse_filament_info(GCodeProcessorResult *result) //typedef std::map IdToAliasesMap; typedef std::vector InstancesList; typedef std::map IdToMetadataMap; + typedef std::map IdToCutObjectInfoMap; //typedef std::map IdToGeometryMap; typedef std::map> IdToLayerHeightsProfileMap; typedef std::map IdToLayerConfigRangesMap; - typedef std::map IdToCutObjectInfoMap; + typedef std::map IdToBrimPointsMap; /*typedef std::map> IdToSlaSupportPointsMap; typedef std::map> IdToSlaDrainHolesMap;*/ using PathToEmbossShapeFileMap = std::map>; @@ -1000,9 +1002,10 @@ void PlateData::parse_filament_info(GCodeProcessorResult *result) //IdToGeometryMap m_orig_geometries; // backup & restore CurrentConfig m_curr_config; IdToMetadataMap m_objects_metadata; - IdToCutObjectInfoMap m_cut_object_infos; + IdToCutObjectInfoMap m_cut_object_infos; IdToLayerHeightsProfileMap m_layer_heights_profiles; IdToLayerConfigRangesMap m_layer_config_ranges; + IdToBrimPointsMap m_brim_ear_points; /*IdToSlaSupportPointsMap m_sla_support_points; IdToSlaDrainHolesMap m_sla_drain_holes;*/ PathToEmbossShapeFileMap m_path_to_emboss_shape_files; @@ -1064,11 +1067,12 @@ void PlateData::parse_filament_info(GCodeProcessorResult *result) bool _extract_xml_from_archive(mz_zip_archive& archive, std::string const & path, XML_StartElementHandler start_handler, XML_EndElementHandler end_handler); bool _extract_xml_from_archive(mz_zip_archive& archive, const mz_zip_archive_file_stat& stat, XML_StartElementHandler start_handler, XML_EndElementHandler end_handler); bool _extract_model_from_archive(mz_zip_archive& archive, const mz_zip_archive_file_stat& stat); - void _extract_cut_information_from_archive(mz_zip_archive& archive, const mz_zip_archive_file_stat& stat, ConfigSubstitutionContext& config_substitutions); + void _extract_cut_information_from_archive(mz_zip_archive &archive, const mz_zip_archive_file_stat &stat, ConfigSubstitutionContext &config_substitutions); void _extract_layer_heights_profile_config_from_archive(mz_zip_archive& archive, const mz_zip_archive_file_stat& stat); void _extract_layer_config_ranges_from_archive(mz_zip_archive& archive, const mz_zip_archive_file_stat& stat, ConfigSubstitutionContext& config_substitutions); void _extract_sla_support_points_from_archive(mz_zip_archive& archive, const mz_zip_archive_file_stat& stat); void _extract_sla_drain_holes_from_archive(mz_zip_archive& archive, const mz_zip_archive_file_stat& stat); + void _extract_brim_ear_points_from_archive(mz_zip_archive& archive, const mz_zip_archive_file_stat& stat); void _extract_custom_gcode_per_print_z_from_archive(mz_zip_archive& archive, const mz_zip_archive_file_stat& stat); @@ -1270,6 +1274,7 @@ void PlateData::parse_filament_info(GCodeProcessorResult *result) m_objects_metadata.clear(); m_layer_heights_profiles.clear(); m_layer_config_ranges.clear(); + m_brim_ear_points.clear(); //m_sla_support_points.clear(); m_curr_metadata_name.clear(); m_curr_characters.clear(); @@ -1759,6 +1764,10 @@ void PlateData::parse_filament_info(GCodeProcessorResult *result) // extract slic3r layer config ranges file _extract_layer_config_ranges_from_archive(archive, stat, config_substitutions); } + else if (boost::algorithm::iequals(name, BRIM_EAR_POINTS_FILE)) { + // extract slic3r config file + _extract_brim_ear_points_from_archive(archive, stat); + } //BBS: disable SLA related files currently /*else if (boost::algorithm::iequals(name, SLA_SUPPORT_POINTS_FILE)) { // extract sla support points file @@ -1942,6 +1951,10 @@ void PlateData::parse_filament_info(GCodeProcessorResult *result) if (obj_layer_config_ranges != m_layer_config_ranges.end()) model_object->layer_config_ranges = std::move(obj_layer_config_ranges->second); + IdToBrimPointsMap::iterator obj_brim_points = m_brim_ear_points.find(object.second + 1); + if (obj_brim_points != m_brim_ear_points.end()) + model_object->brim_points = std::move(obj_brim_points->second); + // m_sla_support_points are indexed by a 1 based model object index. /*IdToSlaSupportPointsMap::iterator obj_sla_support_points = m_sla_support_points.find(object.second + 1); if (obj_sla_support_points != m_sla_support_points.end() && !obj_sla_support_points->second.empty()) { @@ -2762,6 +2775,77 @@ void PlateData::parse_filament_info(GCodeProcessorResult *result) } } } + + void _BBS_3MF_Importer::_extract_brim_ear_points_from_archive(mz_zip_archive& archive, const mz_zip_archive_file_stat& stat) + { + if (stat.m_uncomp_size > 0) { + std::string buffer((size_t)stat.m_uncomp_size, 0); + mz_bool res = mz_zip_reader_extract_to_mem(&archive, stat.m_file_index, (void*)buffer.data(), (size_t)stat.m_uncomp_size, 0); + if (res == 0) { + add_error("Error while reading brim ear points data to buffer"); + return; + } + + if (buffer.back() == '\n') + buffer.pop_back(); + + std::vector objects; + boost::split(objects, buffer, boost::is_any_of("\n"), boost::token_compress_off); + + // Info on format versioning - see bbs_3mf.hpp + int version = 0; + std::string key("brim_points_format_version="); + if (!objects.empty() && objects[0].find(key) != std::string::npos) { + objects[0].erase(objects[0].begin(), objects[0].begin() + long(key.size())); // removes the string + version = std::stoi(objects[0]); + objects.erase(objects.begin()); // pop the header + } + + for (const std::string& object : objects) { + std::vector object_data; + boost::split(object_data, object, boost::is_any_of("|"), boost::token_compress_off); + + if (object_data.size() != 2) { + add_error("Error while reading object data"); + continue; + } + + std::vector object_data_id; + boost::split(object_data_id, object_data[0], boost::is_any_of("="), boost::token_compress_off); + if (object_data_id.size() != 2) { + add_error("Error while reading object id"); + continue; + } + + int object_id = std::atoi(object_data_id[1].c_str()); + if (object_id == 0) { + add_error("Found invalid object id"); + continue; + } + + IdToBrimPointsMap::iterator object_item = m_brim_ear_points.find(object_id); + if (object_item != m_brim_ear_points.end()) { + add_error("Found duplicated brim ear points"); + continue; + } + + std::vector object_data_points; + boost::split(object_data_points, object_data[1], boost::is_any_of(" "), boost::token_compress_off); + + std::vector brim_ear_points; + if (version == 0) { + for (unsigned int i=0; i const &flush, ObjectData const &object_data) const; bool _add_build_to_model_stream(std::stringstream& stream, const BuildItemsList& build_items) const; - bool _add_cut_information_file_to_archive(mz_zip_archive& archive, Model& model); bool _add_layer_height_profile_file_to_archive(mz_zip_archive& archive, Model& model); bool _add_layer_config_ranges_file_to_archive(mz_zip_archive& archive, Model& model); + bool _add_brim_ear_points_file_to_archive(mz_zip_archive& archive, Model& model); bool _add_sla_support_points_file_to_archive(mz_zip_archive& archive, Model& model); bool _add_sla_drain_holes_file_to_archive(mz_zip_archive& archive, Model& model); bool _add_print_config_file_to_archive(mz_zip_archive& archive, const DynamicPrintConfig &config); @@ -5515,6 +5599,7 @@ void PlateData::parse_filament_info(GCodeProcessorResult *result) //BBS: add project embedded preset files bool _add_project_embedded_presets_to_archive(mz_zip_archive& archive, Model& model, std::vector project_presets); bool _add_model_config_file_to_archive(mz_zip_archive& archive, const Model& model, PlateDataPtrs& plate_data_list, const ObjectToObjectDataMap &objects_data, int export_plate_idx = -1, bool save_gcode = true, bool use_loaded_id = false); + bool _add_cut_information_file_to_archive(mz_zip_archive &archive, Model &model); bool _add_slice_info_config_file_to_archive(mz_zip_archive &archive, const Model &model, PlateDataPtrs &plate_data_list, const ObjectToObjectDataMap &objects_data, const DynamicPrintConfig& config); bool _add_gcode_file_to_archive(mz_zip_archive& archive, const Model& model, PlateDataPtrs& plate_data_list, Export3mfProgressFn proFn = nullptr); bool _add_custom_gcode_per_print_z_file_to_archive(mz_zip_archive& archive, Model& model, const DynamicPrintConfig* config); @@ -5914,6 +5999,11 @@ void PlateData::parse_filament_info(GCodeProcessorResult *result) return false; } + if (!_add_brim_ear_points_file_to_archive(archive, model)) { + close_zip_writer(&archive); + return false; + } + // BBS progress point /*BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ":" <<__LINE__ << boost::format("export 3mf EXPORT_STAGE_ADD_SUPPORT\n"); if (proFn) { @@ -7159,6 +7249,40 @@ void PlateData::parse_filament_info(GCodeProcessorResult *result) return true; } + bool _BBS_3MF_Exporter::_add_brim_ear_points_file_to_archive(mz_zip_archive& archive, Model& model) + { + std::string out = ""; + char buffer[1024]; + + unsigned int count = 0; + for (const ModelObject* object : model.objects) { + ++count; + const BrimPoints& brim_points = object->brim_points; + if (!brim_points.empty()) { + sprintf(buffer, "object_id=%d|", count); + out += buffer; + + // Store the layer height profile as a single space separated list. + for (size_t i = 0; i < brim_points.size(); ++i) { + sprintf(buffer, (i==0 ? "%f %f %f %f" : " %f %f %f %f"), brim_points[i].pos(0), brim_points[i].pos(1), brim_points[i].pos(2), brim_points[i].head_front_radius); + out += buffer; + } + out += "\n"; + } + } + + if (!out.empty()) { + // Adds version header at the beginning: + out = std::string("brim_points_format_version=") + std::to_string(brim_points_format_version) + std::string("\n") + out; + + if (!mz_zip_writer_add_mem(&archive, BRIM_EAR_POINTS_FILE.c_str(), (const void*)out.data(), out.length(), MZ_DEFAULT_COMPRESSION)) { + add_error("Unable to add brim ear points file to archive"); + return false; + } + } + return true; + } + /* bool _BBS_3MF_Exporter::_add_sla_support_points_file_to_archive(mz_zip_archive& archive, Model& model) { diff --git a/src/libslic3r/Format/bbs_3mf.hpp b/src/libslic3r/Format/bbs_3mf.hpp index 6d0c092b77..6a4c404803 100644 --- a/src/libslic3r/Format/bbs_3mf.hpp +++ b/src/libslic3r/Format/bbs_3mf.hpp @@ -141,6 +141,10 @@ inline bool operator & (SaveStrategy & lhs, SaveStrategy rhs) return ((static_cast(lhs) & static_cast(rhs))) == static_cast(rhs); } +enum { + brim_points_format_version = 0 +}; + enum class LoadStrategy { Default = 0, diff --git a/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp index 29769752da..50c11640cb 100644 --- a/src/libslic3r/GCode.cpp +++ b/src/libslic3r/GCode.cpp @@ -741,6 +741,7 @@ static std::vector get_path_of_change_filament(const Print& print) gcodegen.config().filament_multitool_ramming.get_at(tcr.initial_tool)); const bool should_travel_to_tower = !tcr.priming && (tcr.force_travel // wipe tower says so || !needs_toolchange // this is just finishing the tower with no toolchange + || will_go_down // Make sure to move to prime tower before moving down || is_ramming); if (should_travel_to_tower || gcodegen.m_need_change_layer_lift_z) { @@ -1828,6 +1829,7 @@ void GCode::_do_export(Print& print, GCodeOutputStream &file, ThumbnailsGenerato m_max_layer_z = 0.f; m_last_width = 0.f; m_is_overhang_fan_on = false; + m_is_internal_bridge_fan_on = false; m_is_supp_interface_fan_on = false; #if ENABLE_GCODE_VIEWER_DATA_CHECKING m_last_mm3_per_mm = 0.; @@ -3823,10 +3825,16 @@ LayerResult GCode::process_layer( return next_extruder; }; - if (m_config.enable_overhang_speed && !m_config.overhang_speed_classic) { - for (const auto &layer_to_print : layers) { - m_extrusion_quality_estimator.prepare_for_new_layer(layer_to_print.original_object, - layer_to_print.object_layer); + for (const auto &layer_to_print : layers) { + if (layer_to_print.object_layer) { + const auto& regions = layer_to_print.object_layer->regions(); + const bool enable_overhang_speed = std::any_of(regions.begin(), regions.end(), [](const LayerRegion* r) { + return r->has_extrusions() && r->region().config().enable_overhang_speed && !r->region().config().overhang_speed_classic; + }); + if (enable_overhang_speed) { + m_extrusion_quality_estimator.prepare_for_new_layer(layer_to_print.original_object, + layer_to_print.object_layer); + } } } @@ -4190,8 +4198,11 @@ LayerResult GCode::process_layer( } } - if (m_config.enable_overhang_speed && !m_config.overhang_speed_classic) - m_extrusion_quality_estimator.set_current_object(&instance_to_print.print_object); + // Orca(#7946): set current obj regardless of the `enable_overhang_speed` value, because + // `enable_overhang_speed` is a PrintRegionConfig and here we don't have a region yet. + // And no side effect doing this even if `enable_overhang_speed` is off, so don't bother + // checking anything here. + m_extrusion_quality_estimator.set_current_object(&instance_to_print.print_object); // When starting a new object, use the external motion planner for the first travel move. const Point &offset = instance_to_print.print_object.instances()[instance_to_print.instance_id].shift; @@ -4264,7 +4275,6 @@ LayerResult GCode::process_layer( m_last_obj_copy = this_object_copy; this->set_origin(unscale(offset)); //FIXME the following code prints regions in the order they are defined, the path is not optimized in any way. - bool is_infill_first =m_config.is_infill_first; auto has_infill = [](const std::vector &by_region) { for (auto region : by_region) { @@ -4273,10 +4283,9 @@ LayerResult GCode::process_layer( } return false; }; - - //BBS: for first layer, we always print wall firstly to get better bed adhesive force - //This behaviour is same with cura - if (is_infill_first && !first_layer) { + { + // Print perimeters of regions that has is_infill_first == false + gcode += this->extrude_perimeters(print, by_region_specific, first_layer, false); if (!has_wipe_tower && need_insert_timelapse_gcode_for_traditional && !has_insert_timelapse_gcode && has_infill(by_region_specific)) { gcode += this->retract(false, false, LiftType::NormalLift); @@ -4293,27 +4302,10 @@ LayerResult GCode::process_layer( has_insert_timelapse_gcode = true; } + // Then print infill gcode += this->extrude_infill(print, by_region_specific, false); - gcode += this->extrude_perimeters(print, by_region_specific); - } else { - gcode += this->extrude_perimeters(print, by_region_specific); - if (!has_wipe_tower && need_insert_timelapse_gcode_for_traditional && !has_insert_timelapse_gcode && has_infill(by_region_specific)) { - gcode += this->retract(false, false, LiftType::NormalLift); - - std::string timepals_gcode = insert_timelapse_gcode(); - gcode += timepals_gcode; - m_writer.set_current_position_clear(false); - //BBS: check whether custom gcode changes the z position. Update if changed - double temp_z_after_timepals_gcode; - if (GCodeProcessor::get_last_z_from_gcode(timepals_gcode, temp_z_after_timepals_gcode)) { - Vec3d pos = m_writer.get_position(); - pos(2) = temp_z_after_timepals_gcode; - m_writer.set_position(pos); - } - - has_insert_timelapse_gcode = true; - } - gcode += this->extrude_infill(print,by_region_specific, false); + // Then print perimeters of regions that has is_infill_first == true + gcode += this->extrude_perimeters(print, by_region_specific, first_layer, true); } // ironing gcode += this->extrude_infill(print,by_region_specific, true); @@ -4911,12 +4903,17 @@ std::string GCode::extrude_path(ExtrusionPath path, std::string description, dou } // Extrude perimeters: Decide where to put seams (hide or align seams). -std::string GCode::extrude_perimeters(const Print &print, const std::vector &by_region) +std::string GCode::extrude_perimeters(const Print &print, const std::vector &by_region, bool is_first_layer, bool is_infill_first) { std::string gcode; for (const ObjectByExtruder::Island::Region ®ion : by_region) if (! region.perimeters.empty()) { m_config.apply(print.get_print_region(®ion - &by_region.front()).config()); + // BBS: for first layer, we always print wall firstly to get better bed adhesive force + // This behaviour is same with cura + const bool should_print = is_first_layer ? !is_infill_first + : (m_config.is_infill_first == is_infill_first); + if (!should_print) continue; for (const ExtrusionEntity* ee : region.perimeters) gcode += this->extrude_entity(*ee, "perimeter", -1., region.perimeters); @@ -5315,11 +5312,12 @@ std::string GCode::_extrude(const ExtrusionPath &path, std::string description, ref_speed = std::min(ref_speed, m_config.scarf_joint_speed.get_abs_value(ref_speed)); } - ConfigOptionPercents overhang_overlap_levels({75, 50, 25, 13, 12.99, 0}); + ConfigOptionPercents overhang_overlap_levels({90, 75, 50, 25, 13, 0}); if (m_config.slowdown_for_curled_perimeters){ ConfigOptionFloatsOrPercents dynamic_overhang_speeds( - {(m_config.get_abs_value("overhang_1_4_speed", ref_speed) < 0.5) ? + {FloatOrPercent{100, true}, + (m_config.get_abs_value("overhang_1_4_speed", ref_speed) < 0.5) ? FloatOrPercent{100, true} : FloatOrPercent{m_config.get_abs_value("overhang_1_4_speed", ref_speed) * 100 / ref_speed, true}, (m_config.get_abs_value("overhang_2_4_speed", ref_speed) < 0.5) ? @@ -5331,9 +5329,6 @@ std::string GCode::_extrude(const ExtrusionPath &path, std::string description, (m_config.get_abs_value("overhang_4_4_speed", ref_speed) < 0.5) ? FloatOrPercent{100, true} : FloatOrPercent{m_config.get_abs_value("overhang_4_4_speed", ref_speed) * 100 / ref_speed, true}, - (m_config.get_abs_value("overhang_4_4_speed", ref_speed) < 0.5) ? - FloatOrPercent{100, true} : - FloatOrPercent{m_config.get_abs_value("overhang_4_4_speed", ref_speed) * 100 / ref_speed, true}, (m_config.get_abs_value("overhang_4_4_speed", ref_speed) < 0.5) ? FloatOrPercent{100, true} : FloatOrPercent{m_config.get_abs_value("overhang_4_4_speed", ref_speed) * 100 / ref_speed, true}}); @@ -5342,7 +5337,8 @@ std::string GCode::_extrude(const ExtrusionPath &path, std::string description, ref_speed, speed, m_config.slowdown_for_curled_perimeters); }else{ ConfigOptionFloatsOrPercents dynamic_overhang_speeds( - {(m_config.get_abs_value("overhang_1_4_speed", ref_speed) < 0.5) ? + {FloatOrPercent{100, true}, + (m_config.get_abs_value("overhang_1_4_speed", ref_speed) < 0.5) ? FloatOrPercent{100, true} : FloatOrPercent{m_config.get_abs_value("overhang_1_4_speed", ref_speed) * 100 / ref_speed, true}, (m_config.get_abs_value("overhang_2_4_speed", ref_speed) < 0.5) ? @@ -5351,10 +5347,9 @@ std::string GCode::_extrude(const ExtrusionPath &path, std::string description, (m_config.get_abs_value("overhang_3_4_speed", ref_speed) < 0.5) ? FloatOrPercent{100, true} : FloatOrPercent{m_config.get_abs_value("overhang_3_4_speed", ref_speed) * 100 / ref_speed, true}, - (m_config.get_abs_value("overhang_4_4_speed", ref_speed) < 0.5) ? - FloatOrPercent{100, true} : - FloatOrPercent{m_config.get_abs_value("overhang_4_4_speed", ref_speed) * 100 / ref_speed, true}, - FloatOrPercent{m_config.get_abs_value("bridge_speed") * 100 / ref_speed, true}, + (m_config.get_abs_value("overhang_4_4_speed", ref_speed) < 0.5) ? + FloatOrPercent{100, true} : + FloatOrPercent{m_config.get_abs_value("overhang_4_4_speed", ref_speed) * 100 / ref_speed, true}, FloatOrPercent{m_config.get_abs_value("bridge_speed") * 100 / ref_speed, true}}); new_points = m_extrusion_quality_estimator.estimate_extrusion_quality(path, overhang_overlap_levels, dynamic_overhang_speeds, @@ -5495,7 +5490,7 @@ std::string GCode::_extrude(const ExtrusionPath &path, std::string description, // { "75%", Overhang_threshold_4_4 }, // { "95%", Overhang_threshold_bridge } auto check_overhang_fan = [&overhang_fan_threshold](float overlap, ExtrusionRole role) { - if (is_bridge(role)) { + if (role == erBridgeInfill || role == erOverhangPerimeter) { // ORCA: Split out bridge infill to internal and external to apply separate fan settings return true; } switch (overhang_fan_threshold) { @@ -5588,7 +5583,8 @@ std::string GCode::_extrude(const ExtrusionPath &path, std::string description, int overhang_threshold = overhang_fan_threshold == Overhang_threshold_none ? Overhang_threshold_none : overhang_fan_threshold - 1; if ((overhang_fan_threshold == Overhang_threshold_none && is_external_perimeter(path.role())) || - (path.get_overhang_degree() > overhang_threshold || is_bridge(path.role()))) { + (path.get_overhang_degree() > overhang_threshold || + (path.role() == erBridgeInfill || path.role() == erOverhangPerimeter))) { // ORCA: Add support for separate internal bridge fan speed control if (!m_is_overhang_fan_on) { gcode += ";_OVERHANG_FAN_START\n"; m_is_overhang_fan_on = true; @@ -5599,6 +5595,17 @@ std::string GCode::_extrude(const ExtrusionPath &path, std::string description, gcode += ";_OVERHANG_FAN_END\n"; } } + if (path.role() == erInternalBridgeInfill) { // ORCA: Add support for separate internal bridge fan speed control + if (!m_is_internal_bridge_fan_on) { + gcode += ";_INTERNAL_BRIDGE_FAN_START\n"; + m_is_internal_bridge_fan_on = true; + } + } else { + if (m_is_internal_bridge_fan_on) { + m_is_internal_bridge_fan_on = false; + gcode += ";_INTERNAL_BRIDGE_FAN_END\n"; + } + } } if (supp_interface_fan_speed >= 0 && path.role() == erSupportMaterialInterface) { if (!m_is_supp_interface_fan_on) { @@ -5733,6 +5740,9 @@ std::string GCode::_extrude(const ExtrusionPath &path, std::string description, bool cur_fan_enabled = false; if( m_enable_cooling_markers && enable_overhang_bridge_fan) pre_fan_enabled = check_overhang_fan(new_points[0].overlap, path.role()); + + if(path.role() == erInternalBridgeInfill) // ORCA: Add support for separate internal bridge fan speed control + pre_fan_enabled = true; double path_length = 0.; for (size_t i = 1; i < new_points.size(); i++) { @@ -5756,6 +5766,19 @@ std::string GCode::_extrude(const ExtrusionPath &path, std::string description, } pre_fan_enabled = cur_fan_enabled; } + // ORCA: Add support for separate internal bridge fan speed control + if (path.role() == erInternalBridgeInfill) { + if (!m_is_internal_bridge_fan_on) { + gcode += ";_INTERNAL_BRIDGE_FAN_START\n"; + m_is_internal_bridge_fan_on = true; + } + } else { + if (m_is_internal_bridge_fan_on) { + gcode += ";_INTERNAL_BRIDGE_FAN_END\n"; + m_is_internal_bridge_fan_on = false; + } + } + if (supp_interface_fan_speed >= 0 && path.role() == erSupportMaterialInterface) { if (!m_is_supp_interface_fan_on) { gcode += ";_SUPP_INTERFACE_FAN_START\n"; diff --git a/src/libslic3r/GCode.hpp b/src/libslic3r/GCode.hpp index 5f92fd6237..8cee34edbd 100644 --- a/src/libslic3r/GCode.hpp +++ b/src/libslic3r/GCode.hpp @@ -445,7 +445,7 @@ private: // For sequential print, the instance of the object to be printing has to be defined. const size_t single_object_instance_idx); - std::string extrude_perimeters(const Print& print, const std::vector& by_region); + std::string extrude_perimeters(const Print& print, const std::vector& by_region, bool is_first_layer, bool is_infill_first); std::string extrude_infill(const Print& print, const std::vector& by_region, bool ironing); std::string extrude_support(const ExtrusionEntityCollection& support_fills); @@ -515,6 +515,7 @@ private: std::string _encode_label_ids_to_base64(std::vector ids); // Orca bool m_is_overhang_fan_on; + bool m_is_internal_bridge_fan_on; // ORCA: Add support for separate internal bridge fan speed control bool m_is_supp_interface_fan_on; // Markers for the Pressure Equalizer to recognize the extrusion type. // The Pressure Equalizer removes the markers from the final G-code. diff --git a/src/libslic3r/GCode/CoolingBuffer.cpp b/src/libslic3r/GCode/CoolingBuffer.cpp index c83d854ee4..194afe9b1b 100644 --- a/src/libslic3r/GCode/CoolingBuffer.cpp +++ b/src/libslic3r/GCode/CoolingBuffer.cpp @@ -65,6 +65,9 @@ struct CoolingLine TYPE_FORCE_RESUME_FAN = 1 << 14, TYPE_SUPPORT_INTERFACE_FAN_START = 1 << 15, TYPE_SUPPORT_INTERFACE_FAN_END = 1 << 16, + // ORCA: Add support for separate internal bridge fan speed control + TYPE_INTERNAL_BRIDGE_FAN_START = 1 << 17, + TYPE_INTERNAL_BRIDGE_FAN_END = 1 << 18, }; CoolingLine(unsigned int type, size_t line_start, size_t line_end) : @@ -511,6 +514,10 @@ std::vector CoolingBuffer::parse_layer_gcode(const std:: line.type = CoolingLine::TYPE_OVERHANG_FAN_START; } else if (boost::starts_with(sline, ";_OVERHANG_FAN_END")) { line.type = CoolingLine::TYPE_OVERHANG_FAN_END; + } else if (boost::starts_with(sline, ";_INTERNAL_BRIDGE_FAN_START")) { // ORCA: Add support for separate internal bridge fan speed control + line.type = CoolingLine::TYPE_INTERNAL_BRIDGE_FAN_START; + } else if (boost::starts_with(sline, ";_INTERNAL_BRIDGE_FAN_END")) { // ORCA: Add support for separate internal bridge fan speed control + line.type = CoolingLine::TYPE_INTERNAL_BRIDGE_FAN_END; } else if (boost::starts_with(sline, ";_SUPP_INTERFACE_FAN_START")) { line.type = CoolingLine::TYPE_SUPPORT_INTERFACE_FAN_START; } else if (boost::starts_with(sline, ";_SUPP_INTERFACE_FAN_END")) { @@ -705,9 +712,11 @@ std::string CoolingBuffer::apply_layer_cooldown( new_gcode.reserve(gcode.size() * 2); bool overhang_fan_control= false; int overhang_fan_speed = 0; + bool internal_bridge_fan_control= false; // ORCA: Add support for separate internal bridge fan speed control + int internal_bridge_fan_speed = 0; // ORCA: Add support for separate internal bridge fan speed control bool supp_interface_fan_control= false; int supp_interface_fan_speed = 0; - auto change_extruder_set_fan = [ this, layer_id, layer_time, &new_gcode, &overhang_fan_control, &overhang_fan_speed, &supp_interface_fan_control, &supp_interface_fan_speed](bool immediately_apply) { + auto change_extruder_set_fan = [ this, layer_id, layer_time, &new_gcode, &overhang_fan_control, &overhang_fan_speed, &internal_bridge_fan_control, &internal_bridge_fan_speed, &supp_interface_fan_control, &supp_interface_fan_speed](bool immediately_apply) { #define EXTRUDER_CONFIG(OPT) m_config.OPT.get_at(m_current_extruder) float fan_min_speed = EXTRUDER_CONFIG(fan_min_speed); float fan_speed_new = EXTRUDER_CONFIG(reduce_fan_stop_start_freq) ? fan_min_speed : 0; @@ -749,15 +758,27 @@ std::string CoolingBuffer::apply_layer_cooldown( supp_interface_fan_speed = EXTRUDER_CONFIG(support_material_interface_fan_speed); supp_interface_fan_control = supp_interface_fan_speed >= 0; + overhang_fan_control = overhang_fan_speed > fan_speed_new; + + // ORCA: Add support for separate internal bridge fan speed control + internal_bridge_fan_speed = EXTRUDER_CONFIG(internal_bridge_fan_speed); + internal_bridge_fan_control = internal_bridge_fan_speed >=0; + + if( internal_bridge_fan_speed < 0 ) { // ORCA: Backwards compatibility setting for Orca internal bridge fan speed setting - if set at -1 (which is the default) use the overhang fan speed settings. + internal_bridge_fan_speed = overhang_fan_speed; + internal_bridge_fan_control = overhang_fan_control; + } #undef EXTRUDER_CONFIG - overhang_fan_control= overhang_fan_speed > fan_speed_new; + } else { - overhang_fan_control= false; + overhang_fan_control = false; overhang_fan_speed = 0; fan_speed_new = 0; additional_fan_speed_new = 0; - supp_interface_fan_control= false; + supp_interface_fan_control = false; supp_interface_fan_speed = 0; + internal_bridge_fan_control = false; // ORCA: Add support for separate internal bridge fan speed control + internal_bridge_fan_speed = 0; // ORCA: Add support for separate internal bridge fan speed control } if (fan_speed_new != m_fan_speed) { m_fan_speed = fan_speed_new; @@ -780,6 +801,7 @@ std::string CoolingBuffer::apply_layer_cooldown( // Orca: Reduce set fan commands by deferring the GCodeWriter::set_fan calls. Inspired by SuperSlicer // define fan_speed_change_requests and initialize it with all possible types fan speed change requests std::unordered_map fan_speed_change_requests = {{CoolingLine::TYPE_OVERHANG_FAN_START, false}, + {CoolingLine::TYPE_INTERNAL_BRIDGE_FAN_START, false}, // ORCA: Add support for separate internal bridge fan speed control {CoolingLine::TYPE_SUPPORT_INTERFACE_FAN_START, false}, {CoolingLine::TYPE_FORCE_RESUME_FAN, false}}; bool need_set_fan = false; @@ -809,6 +831,16 @@ std::string CoolingBuffer::apply_layer_cooldown( fan_speed_change_requests[CoolingLine::TYPE_OVERHANG_FAN_START] = false; } need_set_fan = true; + } else if (line->type & CoolingLine::TYPE_INTERNAL_BRIDGE_FAN_START) { // ORCA: Add support for separate internal bridge fan speed control + if (internal_bridge_fan_control && !fan_speed_change_requests[CoolingLine::TYPE_INTERNAL_BRIDGE_FAN_START]) { + need_set_fan = true; + fan_speed_change_requests[CoolingLine::TYPE_INTERNAL_BRIDGE_FAN_START] = true; + } + } else if (line->type & CoolingLine::TYPE_INTERNAL_BRIDGE_FAN_END) { // ORCA: Add support for separate internal bridge fan speed control + if (internal_bridge_fan_control && fan_speed_change_requests[CoolingLine::TYPE_INTERNAL_BRIDGE_FAN_START]) { + fan_speed_change_requests[CoolingLine::TYPE_INTERNAL_BRIDGE_FAN_START] = false; + } + need_set_fan = true; } else if (line->type & CoolingLine::TYPE_SUPPORT_INTERFACE_FAN_START) { if (supp_interface_fan_control && !fan_speed_change_requests[CoolingLine::TYPE_SUPPORT_INTERFACE_FAN_START]) { fan_speed_change_requests[CoolingLine::TYPE_SUPPORT_INTERFACE_FAN_START] = true; @@ -917,6 +949,9 @@ std::string CoolingBuffer::apply_layer_cooldown( if (fan_speed_change_requests[CoolingLine::TYPE_OVERHANG_FAN_START]){ new_gcode += GCodeWriter::set_fan(m_config.gcode_flavor, overhang_fan_speed); m_current_fan_speed = overhang_fan_speed; + } else if (fan_speed_change_requests[CoolingLine::TYPE_INTERNAL_BRIDGE_FAN_START]){ // ORCA: Add support for separate internal bridge fan speed control + new_gcode += GCodeWriter::set_fan(m_config.gcode_flavor, internal_bridge_fan_speed); + m_current_fan_speed = internal_bridge_fan_speed; } else if (fan_speed_change_requests[CoolingLine::TYPE_SUPPORT_INTERFACE_FAN_START]){ new_gcode += GCodeWriter::set_fan(m_config.gcode_flavor, supp_interface_fan_speed); diff --git a/src/libslic3r/GCode/FanMover.hpp b/src/libslic3r/GCode/FanMover.hpp index f785e4c658..3f803fbd23 100644 --- a/src/libslic3r/GCode/FanMover.hpp +++ b/src/libslic3r/GCode/FanMover.hpp @@ -65,7 +65,9 @@ public: : regex_fan_speed("S[0-9]+"), nb_seconds_delay(nb_seconds_delay>0 ? std::max(0.01f,nb_seconds_delay) : 0), with_D_option(with_D_option) - , relative_e(relative_e), only_overhangs(only_overhangs), kickstart(kickstart), m_writer(writer){} + , relative_e(relative_e), only_overhangs(only_overhangs), kickstart(kickstart), m_writer(writer){ + m_parser.apply_config(writer.config); + } // Adds the gcode contained in the given string to the analysis and returns it after removing the workcodes const std::string& process_gcode(const std::string& gcode, bool flush); diff --git a/src/libslic3r/GCode/GCodeProcessor.cpp b/src/libslic3r/GCode/GCodeProcessor.cpp index f1bae32ebc..b2ab4d2943 100644 --- a/src/libslic3r/GCode/GCodeProcessor.cpp +++ b/src/libslic3r/GCode/GCodeProcessor.cpp @@ -404,359 +404,6 @@ void GCodeProcessor::TimeProcessor::reset() machines[static_cast(PrintEstimatedStatistics::ETimeMode::Normal)].enabled = true; } -void GCodeProcessor::TimeProcessor::post_process(const std::string& filename, std::vector& moves, std::vector& lines_ends, size_t total_layer_num) -{ - FilePtr in{ boost::nowide::fopen(filename.c_str(), "rb") }; - if (in.f == nullptr) - throw Slic3r::RuntimeError(std::string("Time estimator post process export failed.\nCannot open file for reading.\n")); - - const bool disable_m73 = this->disable_m73; - - BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format(": before process %1%")%filename.c_str(); - // temporary file to contain modified gcode - std::string out_path = filename + ".postprocess"; - FilePtr out{ boost::nowide::fopen(out_path.c_str(), "wb") }; - if (out.f == nullptr) { - throw Slic3r::RuntimeError(std::string("Time estimator post process export failed.\nCannot open file for writing.\n")); - } - - auto time_in_minutes = [](float time_in_seconds) { - assert(time_in_seconds >= 0.f); - return int((time_in_seconds + 0.5f) / 60.0f); - }; - - auto time_in_last_minute = [](float time_in_seconds) { - assert(time_in_seconds <= 60.0f); - return time_in_seconds / 60.0f; - }; - - auto format_line_M73_main = [](const std::string& mask, int percent, int time) { - char line_M73[64]; - sprintf(line_M73, mask.c_str(), - std::to_string(percent).c_str(), - std::to_string(time).c_str()); - return std::string(line_M73); - }; - - auto format_line_M73_stop_int = [](const std::string& mask, int time) { - char line_M73[64]; - sprintf(line_M73, mask.c_str(), std::to_string(time).c_str()); - return std::string(line_M73); - }; - - auto format_line_exhaust_fan_control = [](const std::string& mask,int fan_index,int percent) { - char line_fan[64] = { 0 }; - sprintf(line_fan,mask.c_str(), - std::to_string(fan_index).c_str(), - std::to_string(int((percent/100.0)*255)).c_str()); - return std::string(line_fan); - }; - - auto format_time_float = [](float time) { - return Slic3r::float_to_string_decimal_point(time, 2); - }; - - auto format_line_M73_stop_float = [format_time_float](const std::string& mask, float time) { - char line_M73[64]; - sprintf(line_M73, mask.c_str(), format_time_float(time).c_str()); - return std::string(line_M73); - }; - - std::string gcode_line; - size_t g1_lines_counter = 0; - // keeps track of last exported pair - std::array, static_cast(PrintEstimatedStatistics::ETimeMode::Count)> last_exported_main; - for (size_t i = 0; i < static_cast(PrintEstimatedStatistics::ETimeMode::Count); ++i) { - last_exported_main[i] = { 0, time_in_minutes(machines[i].time) }; - } - - // keeps track of last exported remaining time to next printer stop - std::array(PrintEstimatedStatistics::ETimeMode::Count)> last_exported_stop; - for (size_t i = 0; i < static_cast(PrintEstimatedStatistics::ETimeMode::Count); ++i) { - last_exported_stop[i] = time_in_minutes(machines[i].time); - } - - // buffer line to export only when greater than 64K to reduce writing calls - std::string export_line; - - // replace placeholder lines with the proper final value - // gcode_line is in/out parameter, to reduce expensive memory allocation - auto process_placeholders = [&](std::string& gcode_line) { - int extra_lines_count = 0; - - // remove trailing '\n' - auto line = std::string_view(gcode_line).substr(0, gcode_line.length() - 1); - - std::string ret; - if (line.length() > 1) { - line = line.substr(1); - if (line == reserved_tag(ETags::First_Line_M73_Placeholder) || line == reserved_tag(ETags::Last_Line_M73_Placeholder)) { - if (disable_m73) { - // Remove current line - gcode_line = ""; - return std::tuple(true, -1); - } - - for (size_t i = 0; i < static_cast(PrintEstimatedStatistics::ETimeMode::Count); ++i) { - const TimeMachine& machine = machines[i]; - if (machine.enabled) { - // export pair - ret += format_line_M73_main(machine.line_m73_main_mask.c_str(), - (line == reserved_tag(ETags::First_Line_M73_Placeholder)) ? 0 : 100, - (line == reserved_tag(ETags::First_Line_M73_Placeholder)) ? time_in_minutes(machine.time) : 0); - ++extra_lines_count; - - // export remaining time to next printer stop - if (line == reserved_tag(ETags::First_Line_M73_Placeholder) && !machine.stop_times.empty()) { - int to_export_stop = time_in_minutes(machine.stop_times.front().elapsed_time); - ret += format_line_M73_stop_int(machine.line_m73_stop_mask.c_str(), to_export_stop); - last_exported_stop[i] = to_export_stop; - ++extra_lines_count; - } - } - } - } - else if (line == reserved_tag(ETags::Estimated_Printing_Time_Placeholder)) { - for (size_t i = 0; i < static_cast(PrintEstimatedStatistics::ETimeMode::Count); ++i) { - const TimeMachine& machine = machines[i]; - PrintEstimatedStatistics::ETimeMode mode = static_cast(i); - if (mode == PrintEstimatedStatistics::ETimeMode::Normal || machine.enabled) { - char buf[128]; - if(!s_IsBBLPrinter) - // SoftFever: compatibility with klipper_estimator - sprintf(buf, "; estimated printing time (normal mode) = %s\n", get_time_dhms(machine.time).c_str()); - else { - //sprintf(buf, "; estimated printing time (%s mode) = %s\n", - // (mode == PrintEstimatedStatistics::ETimeMode::Normal) ? "normal" : "silent", - // get_time_dhms(machine.time).c_str()); - sprintf(buf, "; model printing time: %s; total estimated time: %s\n", - get_time_dhms(machine.time - machine.prepare_time).c_str(), - get_time_dhms(machine.time).c_str()); - } - ret += buf; - } - } - } - //BBS: write total layer number - else if (line == reserved_tag(ETags::Total_Layer_Number_Placeholder)) { - char buf[128]; - sprintf(buf, "; total layer number: %zd\n", total_layer_num); - ret += buf; - } - } - - if (! ret.empty()) - // Not moving the move operator on purpose, so that the gcode_line allocation will grow and it will not be reallocated after handful of lines are processed. - gcode_line = ret; - return std::tuple(!ret.empty(), (extra_lines_count == 0) ? extra_lines_count : extra_lines_count - 1); - }; - - // check for temporary lines - auto is_temporary_decoration = [](const std::string_view gcode_line) { - // remove trailing '\n' - assert(! gcode_line.empty()); - assert(gcode_line.back() == '\n'); - - // return true for decorations which are used in processing the gcode but that should not be exported into the final gcode - // i.e.: - // bool ret = gcode_line.substr(0, gcode_line.length() - 1) == ";" + Layer_Change_Tag; - // ... - // return ret; - return false; - }; - - // Iterators for the normal and silent cached time estimate entry recently processed, used by process_line_G1. - auto g1_times_cache_it = Slic3r::reserve_vector::const_iterator>(machines.size()); - for (const auto& machine : machines) - g1_times_cache_it.emplace_back(machine.g1_times_cache.begin()); - - // add lines M73 to exported gcode - auto process_line_move = [ - // Lambdas, mostly for string formatting, all with an empty capture block. - time_in_minutes, format_time_float, format_line_M73_main, format_line_M73_stop_int, format_line_M73_stop_float, time_in_last_minute,format_line_exhaust_fan_control, - &self = std::as_const(*this), - // Caches, to be modified - &g1_times_cache_it, &last_exported_main, &last_exported_stop, - // String output - &export_line] - (const size_t g1_lines_counter) { - unsigned int exported_lines_count = 0; - for (size_t i = 0; i < static_cast(PrintEstimatedStatistics::ETimeMode::Count); ++i) { - const TimeMachine& machine = self.machines[i]; - if (machine.enabled) { - // export pair - // Skip all machine.g1_times_cache below g1_lines_counter. - auto& it = g1_times_cache_it[i]; - while (it != machine.g1_times_cache.end() && it->id < g1_lines_counter) - ++it; - if (it != machine.g1_times_cache.end() && it->id == g1_lines_counter) { - std::pair to_export_main = { int(100.0f * it->elapsed_time / machine.time), - time_in_minutes(machine.time - it->elapsed_time) }; - - if (last_exported_main[i] != to_export_main) { - export_line += format_line_M73_main(machine.line_m73_main_mask.c_str(), - to_export_main.first, to_export_main.second); - last_exported_main[i] = to_export_main; - ++exported_lines_count; - } - // export remaining time to next printer stop - auto it_stop = std::upper_bound(machine.stop_times.begin(), machine.stop_times.end(), it->elapsed_time, - [](float value, const TimeMachine::StopTime& t) { return value < t.elapsed_time; }); - if (it_stop != machine.stop_times.end()) { - int to_export_stop = time_in_minutes(it_stop->elapsed_time - it->elapsed_time); - if (last_exported_stop[i] != to_export_stop) { - if (to_export_stop > 0) { - if (last_exported_stop[i] != to_export_stop) { - export_line += format_line_M73_stop_int(machine.line_m73_stop_mask.c_str(), to_export_stop); - last_exported_stop[i] = to_export_stop; - ++exported_lines_count; - } - } - else { - bool is_last = false; - auto next_it = it + 1; - is_last |= (next_it == machine.g1_times_cache.end()); - - if (next_it != machine.g1_times_cache.end()) { - auto next_it_stop = std::upper_bound(machine.stop_times.begin(), machine.stop_times.end(), next_it->elapsed_time, - [](float value, const TimeMachine::StopTime& t) { return value < t.elapsed_time; }); - is_last |= (next_it_stop != it_stop); - - std::string time_float_str = format_time_float(time_in_last_minute(it_stop->elapsed_time - it->elapsed_time)); - std::string next_time_float_str = format_time_float(time_in_last_minute(it_stop->elapsed_time - next_it->elapsed_time)); - is_last |= (string_to_double_decimal_point(time_float_str) > 0. && string_to_double_decimal_point(next_time_float_str) == 0.); - } - - if (is_last) { - if (std::distance(machine.stop_times.begin(), it_stop) == static_cast(machine.stop_times.size() - 1)) - export_line += format_line_M73_stop_int(machine.line_m73_stop_mask.c_str(), to_export_stop); - else - export_line += format_line_M73_stop_float(machine.line_m73_stop_mask.c_str(), time_in_last_minute(it_stop->elapsed_time - it->elapsed_time)); - - last_exported_stop[i] = to_export_stop; - ++exported_lines_count; - } - } - } - } - } - } - } - return exported_lines_count; - }; - - // helper function to write to disk - size_t out_file_pos = 0; - lines_ends.clear(); - auto write_string = [&export_line, &out, &out_path, &out_file_pos, &lines_ends](const std::string& str) { - fwrite((const void*)export_line.c_str(), 1, export_line.length(), out.f); - if (ferror(out.f)) { - out.close(); - boost::nowide::remove(out_path.c_str()); - throw Slic3r::RuntimeError(std::string("Time estimator post process export failed.\nIs the disk full?\n")); - } - for (size_t i = 0; i < export_line.size(); ++ i) - if (export_line[i] == '\n') - lines_ends.emplace_back(out_file_pos + i + 1); - out_file_pos += export_line.size(); - export_line.clear(); - }; - - unsigned int line_id = 0; - std::vector> offsets; - - { - // Read the input stream 64kB at a time, extract lines and process them. - std::vector buffer(65536 * 10, 0); - // Line buffer. - assert(gcode_line.empty()); - for (;;) { - size_t cnt_read = ::fread(buffer.data(), 1, buffer.size(), in.f); - if (::ferror(in.f)) - throw Slic3r::RuntimeError(std::string("Time estimator post process export failed.\nError while reading from file.\n")); - bool eof = cnt_read == 0; - auto it = buffer.begin(); - auto it_bufend = buffer.begin() + cnt_read; - while (it != it_bufend || (eof && ! gcode_line.empty())) { - // Find end of line. - bool eol = false; - auto it_end = it; - for (; it_end != it_bufend && ! (eol = *it_end == '\r' || *it_end == '\n'); ++ it_end) ; - // End of line is indicated also if end of file was reached. - eol |= eof && it_end == it_bufend; - gcode_line.insert(gcode_line.end(), it, it_end); - if (eol) { - ++line_id; - - // determine the end of line character and pass to output - gcode_line += *it_end; - if(*it_end == '\r' && *(++ it_end) == '\n') - gcode_line += '\n'; - // replace placeholder lines - auto [processed, lines_added_count] = process_placeholders(gcode_line); - if (processed && lines_added_count != 0) - offsets.push_back({ line_id, lines_added_count }); - - if (!disable_m73 && !processed &&!is_temporary_decoration(gcode_line) && - (GCodeReader::GCodeLine::cmd_is(gcode_line, "G1") || - GCodeReader::GCodeLine::cmd_is(gcode_line, "G2") || - GCodeReader::GCodeLine::cmd_is(gcode_line, "G3") || - GCodeReader::GCodeLine::cmd_is(gcode_line, "G10")|| - GCodeReader::GCodeLine::cmd_is(gcode_line, "G11"))) { - // remove temporary lines, add lines M73 where needed - unsigned int extra_lines_count = process_line_move(g1_lines_counter ++); - if (extra_lines_count > 0) - offsets.push_back({ line_id, extra_lines_count }); - } - - if (disable_m73 && !processed && GCodeReader::GCodeLine::cmd_is(gcode_line, "M73")) { - // Remove any existing M73 command - gcode_line = ""; - offsets.push_back({line_id, -1}); - } - - export_line += gcode_line; - if (export_line.length() > 65535) - write_string(export_line); - gcode_line.clear(); - } - // Skip EOL. - it = it_end; - if (it != it_bufend && *it == '\r') - ++ it; - if (it != it_bufend && *it == '\n') - ++ it; - } - if (eof) - break; - } - } - - if (!export_line.empty()) - write_string(export_line); - - out.close(); - in.close(); - BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format(": after process %1%")%filename.c_str(); - - // updates moves' gcode ids which have been modified by the insertion of the M73 lines - unsigned int curr_offset_id = 0; - unsigned int total_offset = 0; - for (GCodeProcessorResult::MoveVertex& move : moves) { - while (curr_offset_id < static_cast(offsets.size()) && offsets[curr_offset_id].first <= move.gcode_id) { - total_offset += offsets[curr_offset_id].second; - ++curr_offset_id; - } - move.gcode_id += total_offset; - } - - if (rename_file(out_path, filename)) { - BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format(": Failed to rename the output G-code file from %1% to %2%")%out_path.c_str() % filename.c_str(); - throw Slic3r::RuntimeError(std::string("Failed to rename the output G-code file from ") + out_path + " to " + filename + '\n' + - "Is " + out_path + " locked?" + '\n'); - } -} - void GCodeProcessor::UsedFilaments::reset() { color_change_cache = 0.0f; @@ -1136,7 +783,7 @@ void GCodeProcessor::apply_config(const PrintConfig& config) DEFAULT_TRAVEL_ACCELERATION; } - m_time_processor.disable_m73 = config.disable_m73; + m_disable_m73 = config.disable_m73; const ConfigOptionFloat* initial_layer_print_height = config.option("initial_layer_print_height"); if (initial_layer_print_height != nullptr) @@ -1694,9 +1341,6 @@ void GCodeProcessor::finalize(bool post_process) m_height_compare.output(); m_width_compare.output(); #endif // ENABLE_GCODE_VIEWER_DATA_CHECKING - if (post_process){ - m_time_processor.post_process(m_result.filename, m_result.moves, m_result.lines_ends, m_layer_id); - } #if ENABLE_GCODE_VIEWER_STATISTICS m_result.time = std::chrono::duration_cast(std::chrono::high_resolution_clock::now() - m_start_time).count(); #endif // ENABLE_GCODE_VIEWER_STATISTICS @@ -4411,7 +4055,10 @@ void GCodeProcessor::run_post_process() return time_in_seconds / 60.0f; }; - auto format_line_M73_main = [](const std::string& mask, int percent, int time) { + auto format_line_M73_main = [this](const std::string& mask, int percent, int time) { + if(this->m_disable_m73) + return std::string(""); + char line_M73[64]; sprintf(line_M73, mask.c_str(), std::to_string(percent).c_str(), @@ -4419,7 +4066,9 @@ void GCodeProcessor::run_post_process() return std::string(line_M73); }; - auto format_line_M73_stop_int = [](const std::string& mask, int time) { + auto format_line_M73_stop_int = [this](const std::string& mask, int time) { + if (this->m_disable_m73) + return std::string(""); char line_M73[64]; sprintf(line_M73, mask.c_str(), std::to_string(time).c_str()); return std::string(line_M73); @@ -4918,10 +4567,13 @@ void GCodeProcessor::run_post_process() // add lines M104 to exported gcode auto process_line_T = [this, &export_lines](const std::string& gcode_line, const size_t g1_lines_counter, const ExportLines::Backtrace& backtrace) { const std::string cmd = GCodeReader::GCodeLine::extract_cmd(gcode_line); + + int tool_number = -1; + if (!parse_number(std::string_view(cmd).substr(1), tool_number)){ + // invalid T command, such as the "TIMELAPSE_TAKE_FRAME" gcode, just ignore + return; + } if (cmd.size() >= 2) { - std::stringstream ss(cmd.substr(1)); - int tool_number = -1; - ss >> tool_number; if (tool_number != -1) { if (tool_number < 0 || (int)m_extruder_temps_config.size() <= tool_number) { // found an invalid value, clamp it to a valid one @@ -5018,9 +4670,18 @@ void GCodeProcessor::run_post_process() // End of line is indicated also if end of file was reached. eol |= eof && it_end == it_bufend; gcode_line.insert(gcode_line.end(), it, it_end); + + it = it_end; + // append EOL. + if (it != it_bufend && *it == '\r') { + gcode_line += *it++; + } + if (it != it_bufend && *it == '\n') { + gcode_line += *it++; + } + if (eol) { ++line_id; - gcode_line += "\n"; const unsigned int internal_g1_lines_counter = export_lines.update(gcode_line, line_id, g1_lines_counter); // replace placeholder lines bool processed = process_placeholders(gcode_line); @@ -5057,12 +4718,6 @@ void GCodeProcessor::run_post_process() export_lines.write(out, 1.1f * max_backtrace_time, m_result, out_path); gcode_line.clear(); } - // Skip EOL. - it = it_end; - if (it != it_bufend && *it == '\r') - ++it; - if (it != it_bufend && *it == '\n') - ++it; } if (eof) break; diff --git a/src/libslic3r/GCode/GCodeProcessor.hpp b/src/libslic3r/GCode/GCodeProcessor.hpp index e7b6e6f883..ce8d0e6f07 100644 --- a/src/libslic3r/GCode/GCodeProcessor.hpp +++ b/src/libslic3r/GCode/GCodeProcessor.hpp @@ -495,15 +495,10 @@ class Print; float filament_unload_times; //Orca: time for tool change float machine_tool_change_time; - bool disable_m73; std::array(PrintEstimatedStatistics::ETimeMode::Count)> machines; void reset(); - - // post process the file with the given filename to add remaining time lines M73 - // and updates moves' gcode ids accordingly - void post_process(const std::string& filename, std::vector& moves, std::vector& lines_ends, size_t total_layer_num); }; struct UsedFilaments // filaments per ColorChange @@ -735,6 +730,7 @@ class Print; bool m_single_extruder_multi_material; float m_preheat_time; int m_preheat_steps; + bool m_disable_m73; #if ENABLE_GCODE_VIEWER_STATISTICS std::chrono::time_point m_start_time; #endif // ENABLE_GCODE_VIEWER_STATISTICS diff --git a/src/libslic3r/GCode/SpiralVase.cpp b/src/libslic3r/GCode/SpiralVase.cpp index 8ffe7ef95b..908411f9c8 100644 --- a/src/libslic3r/GCode/SpiralVase.cpp +++ b/src/libslic3r/GCode/SpiralVase.cpp @@ -121,9 +121,13 @@ std::string SpiralVase::process_layer(const std::string &gcode, bool last_layer) // layer. bool transition_in = m_transition_layer && m_config.use_relative_e_distances.value; bool transition_out = last_layer && m_config.use_relative_e_distances.value; + + float starting_flowrate = float(m_config.spiral_starting_flow_ratio.value); + float finishing_flowrate = float(m_config.spiral_finishing_flow_ratio.value); + float len = 0.f; SpiralVase::SpiralPoint last_point = previous_layer != NULL && previous_layer->size() >0? previous_layer->at(previous_layer->size()-1): SpiralVase::SpiralPoint(0,0); - m_reader.parse_buffer(gcode, [&new_gcode, &z, total_layer_length, layer_height, transition_in, &len, ¤t_layer, &previous_layer, &transition_gcode, transition_out, smooth_spiral, &max_xy_dist_for_smoothing, &last_point] + m_reader.parse_buffer(gcode, [&new_gcode, &z, total_layer_length, layer_height, transition_in, &len, ¤t_layer, &previous_layer, &transition_gcode, transition_out, smooth_spiral, &max_xy_dist_for_smoothing, &last_point, starting_flowrate, finishing_flowrate] (GCodeReader &reader, GCodeReader::GCodeLine line) { if (line.cmd_is("G1")) { // Orca: Filter out retractions at layer change @@ -140,15 +144,18 @@ std::string SpiralVase::process_layer(const std::string &gcode, bool last_layer) if (dist_XY > 0 && line.extruding(reader)) { // Exclude wipe and retract len += dist_XY; float factor = len / total_layer_length; - if (transition_in) - // Transition layer, interpolate the amount of extrusion from zero to the final value. - line.set(E, line.e() * factor, 5 /*decimal_digits*/); - else if (transition_out) { + if (transition_in){ + // Transition layer, interpolate the amount of extrusion starting from spiral_vase_starting_flow_rate to 100%. + float starting_e_factor = starting_flowrate + (factor * (1.f - starting_flowrate)); + line.set(E, line.e() * starting_e_factor, 5 /*decimal_digits*/); + } else if (transition_out) { // We want the last layer to ramp down extrusion, but without changing z height! // So clone the line before we mess with its Z and duplicate it into a new layer that ramps down E // We add this new layer at the very end + // As with transition_in, the amount is ramped down from 100% to spiral_vase_finishing_flow_rate GCodeReader::GCodeLine transitionLine(line); - transitionLine.set(E, line.e() * (1 - factor), 5 /*decimal_digits*/); + float finishing_e_factor = finishing_flowrate + ((1.f -factor) * (1.f - finishing_flowrate)); + transitionLine.set(E, line.e() * finishing_e_factor, 5 /*decimal_digits*/); transition_gcode += transitionLine.raw() + '\n'; } // This line is the core of Spiral Vase mode, ramp up the Z smoothly diff --git a/src/libslic3r/GCode/ToolOrdering.cpp b/src/libslic3r/GCode/ToolOrdering.cpp index 535adb8491..0a51971320 100644 --- a/src/libslic3r/GCode/ToolOrdering.cpp +++ b/src/libslic3r/GCode/ToolOrdering.cpp @@ -206,6 +206,7 @@ static double calc_max_layer_height(const PrintConfig &config, double max_object ToolOrdering::ToolOrdering(const PrintObject &object, unsigned int first_extruder, bool prime_multi_material) { m_is_BBL_printer = object.print()->is_BBL_printer(); + m_print_full_config = &object.print()->full_print_config(); m_print_object_ptr = &object; if (object.layers().empty()) return; @@ -250,6 +251,7 @@ ToolOrdering::ToolOrdering(const PrintObject &object, unsigned int first_extrude ToolOrdering::ToolOrdering(const Print &print, unsigned int first_extruder, bool prime_multi_material) { m_is_BBL_printer = print.is_BBL_printer(); + m_print_full_config = &print.full_print_config(); m_print_config_ptr = &print.config(); // Initialize the print layers for all objects and all layers. @@ -315,6 +317,24 @@ ToolOrdering::ToolOrdering(const Print &print, unsigned int first_extruder, bool this->mark_skirt_layers(print.config(), max_layer_height); } +static void apply_first_layer_order(const DynamicPrintConfig* config, std::vector& tool_order) { + const ConfigOptionInts* first_layer_print_sequence_op = config->option("first_layer_print_sequence"); + if (first_layer_print_sequence_op) { + const std::vector& print_sequence_1st = first_layer_print_sequence_op->values; + if (print_sequence_1st.size() >= tool_order.size()) { + std::sort(tool_order.begin(), tool_order.end(), [&print_sequence_1st](int lh, int rh) { + auto lh_it = std::find(print_sequence_1st.begin(), print_sequence_1st.end(), lh); + auto rh_it = std::find(print_sequence_1st.begin(), print_sequence_1st.end(), rh); + + if (lh_it == print_sequence_1st.end() || rh_it == print_sequence_1st.end()) + return false; + + return lh_it < rh_it; + }); + } + } +} + // BBS std::vector ToolOrdering::generate_first_layer_tool_order(const Print& print) { @@ -359,21 +379,7 @@ std::vector ToolOrdering::generate_first_layer_tool_order(const Pr tool_order.insert(iter, ape.first); } - const ConfigOptionInts* first_layer_print_sequence_op = print.full_print_config().option("first_layer_print_sequence"); - if (first_layer_print_sequence_op) { - const std::vector& print_sequence_1st = first_layer_print_sequence_op->values; - if (print_sequence_1st.size() >= tool_order.size()) { - std::sort(tool_order.begin(), tool_order.end(), [&print_sequence_1st](int lh, int rh) { - auto lh_it = std::find(print_sequence_1st.begin(), print_sequence_1st.end(), lh); - auto rh_it = std::find(print_sequence_1st.begin(), print_sequence_1st.end(), rh); - - if (lh_it == print_sequence_1st.end() || rh_it == print_sequence_1st.end()) - return false; - - return lh_it < rh_it; - }); - } - } + apply_first_layer_order(m_print_full_config, tool_order); return tool_order; } @@ -417,21 +423,7 @@ std::vector ToolOrdering::generate_first_layer_tool_order(const Pr tool_order.insert(iter, ape.first); } - const ConfigOptionInts* first_layer_print_sequence_op = object.print()->full_print_config().option("first_layer_print_sequence"); - if (first_layer_print_sequence_op) { - const std::vector& print_sequence_1st = first_layer_print_sequence_op->values; - if (print_sequence_1st.size() >= tool_order.size()) { - std::sort(tool_order.begin(), tool_order.end(), [&print_sequence_1st](int lh, int rh) { - auto lh_it = std::find(print_sequence_1st.begin(), print_sequence_1st.end(), lh); - auto rh_it = std::find(print_sequence_1st.begin(), print_sequence_1st.end(), rh); - - if (lh_it == print_sequence_1st.end() || rh_it == print_sequence_1st.end()) - return false; - - return lh_it < rh_it; - }); - } - } + apply_first_layer_order(m_print_full_config, tool_order); return tool_order; } @@ -606,14 +598,19 @@ void ToolOrdering::reorder_extruders(unsigned int last_extruder_id) break; } - // On first layer with wipe tower, prefer a soluble extruder - // at the beginning, so it is not wiped on the first layer. - if (lt == m_layer_tools[0] && m_print_config_ptr && m_print_config_ptr->enable_prime_tower) { - for (size_t i = 0; ifilament_soluble.get_at(lt.extruders[i]-1)) { // 1-based... - std::swap(lt.extruders[i], lt.extruders.front()); - break; - } + if (lt == m_layer_tools[0]) { + // On first layer with wipe tower, prefer a soluble extruder + // at the beginning, so it is not wiped on the first layer. + if (m_print_config_ptr && m_print_config_ptr->enable_prime_tower) { + for (size_t i = 0; ifilament_soluble.get_at(lt.extruders[i]-1)) { // 1-based... + std::swap(lt.extruders[i], lt.extruders.front()); + break; + } + } + + // Then, if we specified the tool order, apply it now + apply_first_layer_order(m_print_full_config, lt.extruders); } } last_extruder_id = lt.extruders.back(); @@ -845,7 +842,7 @@ void ToolOrdering::reorder_extruders_for_minimum_flush_volume() const unsigned int number_of_extruders = (unsigned int) (sqrt(flush_matrix.size()) + EPSILON); // Extract purging volumes for each extruder pair: std::vector> wipe_volumes; - if (print_config->purge_in_prime_tower || m_is_BBL_printer) { + if ((print_config->purge_in_prime_tower && print_config->single_extruder_multi_material) || m_is_BBL_printer) { for (unsigned int i = 0; i < number_of_extruders; ++i) wipe_volumes.push_back( std::vector(flush_matrix.begin() + i * number_of_extruders, flush_matrix.begin() + (i + 1) * number_of_extruders)); @@ -1005,13 +1002,17 @@ void ToolOrdering::assign_custom_gcodes(const Print &print) bool tool_changes_as_color_changes = mode == CustomGCode::SingleExtruder && model_mode == CustomGCode::MultiAsSingle; // From the last layer to the first one: + coordf_t print_z_above = std::numeric_limits::lowest(); for (auto it_lt = m_layer_tools.rbegin(); it_lt != m_layer_tools.rend(); ++ it_lt) { LayerTools < = *it_lt; // Add the extruders of the current layer to the set of extruders printing at and above this print_z. for (unsigned int i : lt.extruders) extruder_printing_above[i] = true; // Skip all custom G-codes above this layer and skip all extruder switches. - for (; custom_gcode_it != custom_gcode_per_print_z.gcodes.rend() && (custom_gcode_it->print_z > lt.print_z + EPSILON || custom_gcode_it->type == CustomGCode::ToolChange); ++ custom_gcode_it); + for (; custom_gcode_it != custom_gcode_per_print_z.gcodes.rend() && ( + (print_z_above > lt.print_z && custom_gcode_it->print_z > 0.5 * (lt.print_z + print_z_above)) + || custom_gcode_it->type == CustomGCode::ToolChange); ++ custom_gcode_it); + print_z_above = lt.print_z; if (custom_gcode_it == custom_gcode_per_print_z.gcodes.rend()) // Custom G-codes were processed. break; @@ -1021,7 +1022,7 @@ void ToolOrdering::assign_custom_gcodes(const Print &print) coordf_t print_z_below = 0.; if (auto it_lt_below = it_lt; ++ it_lt_below != m_layer_tools.rend()) print_z_below = it_lt_below->print_z; - if (custom_gcode.print_z > print_z_below + 0.5 * EPSILON) { + if (custom_gcode.print_z > 0.5 * (print_z_below + lt.print_z)) { // The custom G-code applies to the current layer. bool color_change = custom_gcode.type == CustomGCode::ColorChange; bool tool_change = custom_gcode.type == CustomGCode::ToolChange; diff --git a/src/libslic3r/GCode/ToolOrdering.hpp b/src/libslic3r/GCode/ToolOrdering.hpp index d9a93131a7..0a28544be0 100644 --- a/src/libslic3r/GCode/ToolOrdering.hpp +++ b/src/libslic3r/GCode/ToolOrdering.hpp @@ -210,6 +210,7 @@ private: // All extruders, which extrude some material over m_layer_tools. std::vector m_all_printing_extruders; std::unordered_map> m_tool_order_cache; + const DynamicPrintConfig* m_print_full_config = nullptr; const PrintConfig* m_print_config_ptr = nullptr; const PrintObject* m_print_object_ptr = nullptr; bool m_is_BBL_printer = false; diff --git a/src/libslic3r/GCode/WipeTower2.cpp b/src/libslic3r/GCode/WipeTower2.cpp index 9e9e8ea22e..7a494007df 100644 --- a/src/libslic3r/GCode/WipeTower2.cpp +++ b/src/libslic3r/GCode/WipeTower2.cpp @@ -1601,20 +1601,24 @@ void WipeTower2::save_on_last_wipe() auto& toolchange = m_layer_info->tool_changes[i]; tool_change(toolchange.new_tool); - if (i == idx) { - float width = m_wipe_tower_width - 3*m_perimeter_width; // width we draw into + // Orca: allow calculation of the required depth and wipe volume for soluable toolchanges as well + // NOTE: it's not clear if this is the right way, technically we should disable wipe tower if soluble filament is used as it + // will will make the wipe tower unstable. Need to revist this in the future. - float volume_to_save = length_to_volume(finish_layer().total_extrusion_length_in_plane(), m_perimeter_width, m_layer_info->height); - float volume_left_to_wipe = std::max(m_filpar[toolchange.new_tool].filament_minimal_purge_on_wipe_tower, toolchange.wipe_volume_total - volume_to_save); - float volume_we_need_depth_for = std::max(0.f, volume_left_to_wipe - length_to_volume(toolchange.first_wipe_line, m_perimeter_width*m_extra_flow, m_layer_info->height)); - float depth_to_wipe = get_wipe_depth(volume_we_need_depth_for, m_layer_info->height, m_perimeter_width, m_extra_flow, m_extra_spacing_wipe, width); + // if (i == idx) { + float width = m_wipe_tower_width - 3*m_perimeter_width; // width we draw into - toolchange.required_depth = toolchange.ramming_depth + depth_to_wipe; - toolchange.wipe_volume = volume_left_to_wipe; - } - } + float volume_to_save = length_to_volume(finish_layer().total_extrusion_length_in_plane(), m_perimeter_width, m_layer_info->height); + float volume_left_to_wipe = std::max(m_filpar[toolchange.new_tool].filament_minimal_purge_on_wipe_tower, toolchange.wipe_volume_total - volume_to_save); + float volume_we_need_depth_for = std::max(0.f, volume_left_to_wipe - length_to_volume(toolchange.first_wipe_line, m_perimeter_width*m_extra_flow, m_layer_info->height)); + float depth_to_wipe = get_wipe_depth(volume_we_need_depth_for, m_layer_info->height, m_perimeter_width, m_extra_flow, m_extra_spacing_wipe, width); + + toolchange.required_depth = toolchange.ramming_depth + depth_to_wipe; + toolchange.wipe_volume = volume_left_to_wipe; + // } } } +} // Return index of first toolchange that switches to non-soluble extruder diff --git a/src/libslic3r/Layer.cpp b/src/libslic3r/Layer.cpp index cb98c6e6b5..4d717381fe 100644 --- a/src/libslic3r/Layer.cpp +++ b/src/libslic3r/Layer.cpp @@ -168,6 +168,8 @@ void Layer::make_perimeters() const PrintRegionConfig &other_config = other_layerm->region().config(); if (config.wall_filament == other_config.wall_filament && config.wall_loops == other_config.wall_loops + && config.wall_sequence == other_config.wall_sequence + && config.is_infill_first == other_config.is_infill_first && config.inner_wall_speed == other_config.inner_wall_speed && config.outer_wall_speed == other_config.outer_wall_speed && config.small_perimeter_speed == other_config.small_perimeter_speed @@ -389,6 +391,7 @@ coordf_t Layer::get_sparse_infill_max_void_area() max_void_area = std::max(max_void_area, spacing * spacing); break; case ipGrid: + case ip2DLattice: case ipHoneycomb: case ipLightning: max_void_area = std::max(max_void_area, 4.0 * spacing * spacing); diff --git a/src/libslic3r/LayerRegion.cpp b/src/libslic3r/LayerRegion.cpp index ef5d325f56..60ba2721e3 100644 --- a/src/libslic3r/LayerRegion.cpp +++ b/src/libslic3r/LayerRegion.cpp @@ -87,6 +87,7 @@ void LayerRegion::make_perimeters(const SurfaceCollection &slices, const LayerRe &slices, &compatible_regions, this->layer()->height, + this->layer()->slice_z, this->flow(frPerimeter), ®ion_config, &this->layer()->object()->config(), diff --git a/src/libslic3r/Model.cpp b/src/libslic3r/Model.cpp index 9a6a5718ba..d7b23b6b7e 100644 --- a/src/libslic3r/Model.cpp +++ b/src/libslic3r/Model.cpp @@ -1063,6 +1063,7 @@ ModelObject& ModelObject::assign_copy(const ModelObject &rhs) this->sla_support_points = rhs.sla_support_points; this->sla_points_status = rhs.sla_points_status; this->sla_drain_holes = rhs.sla_drain_holes; + this->brim_points = rhs.brim_points; this->layer_config_ranges = rhs.layer_config_ranges; this->layer_height_profile = rhs.layer_height_profile; this->printable = rhs.printable; @@ -1102,6 +1103,7 @@ ModelObject& ModelObject::assign_copy(ModelObject &&rhs) this->sla_support_points = std::move(rhs.sla_support_points); this->sla_points_status = std::move(rhs.sla_points_status); this->sla_drain_holes = std::move(rhs.sla_drain_holes); + this->brim_points = std::move(brim_points); this->layer_config_ranges = std::move(rhs.layer_config_ranges); this->layer_height_profile = std::move(rhs.layer_height_profile); this->printable = std::move(rhs.printable); @@ -1736,6 +1738,7 @@ void ModelObject::convert_units(ModelObjectPtrs& new_objects, ConversionType con new_object->sla_support_points.clear(); new_object->sla_drain_holes.clear(); new_object->sla_points_status = sla::PointsStatus::NoPoints; + new_object->brim_points.clear(); new_object->clear_volumes(); new_object->input_file.clear(); @@ -2040,6 +2043,7 @@ ModelObjectPtrs ModelObject::merge_volumes(std::vector& vol_indeces) upper->sla_support_points.clear(); upper->sla_drain_holes.clear(); upper->sla_points_status = sla::PointsStatus::NoPoints; + upper->brim_points.clear(); upper->clear_volumes(); upper->input_file.clear(); @@ -3510,6 +3514,17 @@ bool model_mmu_segmentation_data_changed(const ModelObject& mo, const ModelObjec [](const ModelVolume &mv_old, const ModelVolume &mv_new){ return mv_old.mmu_segmentation_facets.timestamp_matches(mv_new.mmu_segmentation_facets); }); } +bool model_brim_points_data_changed(const ModelObject& mo, const ModelObject& mo_new) +{ + if (mo.brim_points.size() != mo_new.brim_points.size()) + return true; + for (size_t i = 0; i < mo.brim_points.size(); ++i) { + if (mo.brim_points[i] != mo_new.brim_points[i]) + return true; + } + return false; +} + bool model_has_multi_part_objects(const Model &model) { for (const ModelObject *model_object : model.objects) diff --git a/src/libslic3r/Model.hpp b/src/libslic3r/Model.hpp index 56f1f7afed..f3000d9628 100644 --- a/src/libslic3r/Model.hpp +++ b/src/libslic3r/Model.hpp @@ -10,6 +10,7 @@ #include "Slicing.hpp" #include "SLA/SupportPoint.hpp" #include "SLA/Hollowing.hpp" +#include "BrimEarsPoint.hpp" #include "TriangleMesh.hpp" #include "CustomGCode.hpp" #include "calib.hpp" @@ -383,9 +384,7 @@ public: // Holes to be drilled into the object so resin can flow out sla::DrainHoles sla_drain_holes; - // Connectors to be added into the object before cut and are used to create a solid/negative volumes during a cut perform - CutConnectors cut_connectors; - CutObjectBase cut_id; + BrimPoints brim_points; /* This vector accumulates the total translation applied to the object by the center_around_origin() method. Callers might want to apply the same translation @@ -396,6 +395,10 @@ public: // BBS: save for compare with new load volumes std::vector volume_ids; + // Connectors to be added into the object before cut and are used to create a solid/negative volumes during a cut perform + CutConnectors cut_connectors; + CutObjectBase cut_id; + Model* get_model() { return m_model; } const Model* get_model() const { return m_model; } // BBS: production extension @@ -673,7 +676,7 @@ private: Internal::StaticSerializationWrapper config_wrapper(config); Internal::StaticSerializationWrapper layer_heigth_profile_wrapper(layer_height_profile); ar(name, module_name, input_file, instances, volumes, config_wrapper, layer_config_ranges, layer_heigth_profile_wrapper, - sla_support_points, sla_points_status, sla_drain_holes, printable, origin_translation, + sla_support_points, sla_points_status, sla_drain_holes, printable, origin_translation, brim_points, m_bounding_box_approx, m_bounding_box_approx_valid, m_bounding_box_exact, m_bounding_box_exact_valid, m_min_max_z_valid, m_raw_bounding_box, m_raw_bounding_box_valid, m_raw_mesh_bounding_box, m_raw_mesh_bounding_box_valid, @@ -686,7 +689,7 @@ private: // BBS: add backup, check modify SaveObjectGaurd gaurd(*this); ar(name, module_name, input_file, instances, volumes, config_wrapper, layer_config_ranges, layer_heigth_profile_wrapper, - sla_support_points, sla_points_status, sla_drain_holes, printable, origin_translation, + sla_support_points, sla_points_status, sla_drain_holes, printable, origin_translation, brim_points, m_bounding_box_approx, m_bounding_box_approx_valid, m_bounding_box_exact, m_bounding_box_exact_valid, m_min_max_z_valid, m_raw_bounding_box, m_raw_bounding_box_valid, m_raw_mesh_bounding_box, m_raw_mesh_bounding_box_valid, @@ -1694,6 +1697,8 @@ bool model_custom_seam_data_changed(const ModelObject& mo, const ModelObject& mo // The function assumes that volumes list is synchronized. extern bool model_mmu_segmentation_data_changed(const ModelObject& mo, const ModelObject& mo_new); +bool model_brim_points_data_changed(const ModelObject& mo, const ModelObject& mo_new); + // If the model has multi-part objects, then it is currently not supported by the SLA mode. // Either the model cannot be loaded, or a SLA printer has to be activated. bool model_has_multi_part_objects(const Model &model); diff --git a/src/libslic3r/PerimeterGenerator.cpp b/src/libslic3r/PerimeterGenerator.cpp index 5c142db471..84abeab03c 100644 --- a/src/libslic3r/PerimeterGenerator.cpp +++ b/src/libslic3r/PerimeterGenerator.cpp @@ -9,7 +9,6 @@ #include "VariableWidth.hpp" #include "CurveAnalyzer.hpp" #include "Clipper2Utils.hpp" -#include "Arachne/PerimeterOrder.hpp" #include "Arachne/WallToolPaths.hpp" #include "Geometry/ConvexHull.hpp" #include "ExPolygonCollection.hpp" @@ -23,6 +22,7 @@ #include "libslic3r/AABBTreeLines.hpp" #include "Print.hpp" #include "Algorithm/LineSplit.hpp" +#include "libnoise/noise.h" static const int overhang_sampling_number = 6; static const double narrow_loop_length_threshold = 10; static const double min_degree_gap = 0.1; @@ -45,6 +45,14 @@ static double random_value() { return dist(gen); } +class UniformNoise: public noise::module::Module { + public: + UniformNoise(): Module (GetSourceModuleCount ()) {}; + + virtual int GetSourceModuleCount() const { return 0; } + virtual double GetValue(double x, double y, double z) const { return random_value() * 2 - 1; } +}; + // Hierarchy of perimeters. class PerimeterGeneratorLoop { public: @@ -67,9 +75,39 @@ public: bool is_internal_contour() const; }; +static std::unique_ptr get_noise_module(const FuzzySkinConfig& cfg) { + if (cfg.noise_type == NoiseType::Perlin) { + auto perlin_noise = noise::module::Perlin(); + perlin_noise.SetFrequency(1 / cfg.noise_scale); + perlin_noise.SetOctaveCount(cfg.noise_octaves); + perlin_noise.SetPersistence(cfg.noise_persistence); + return std::make_unique(perlin_noise); + } else if (cfg.noise_type == NoiseType::Billow) { + auto billow_noise = noise::module::Billow(); + billow_noise.SetFrequency(1 / cfg.noise_scale); + billow_noise.SetOctaveCount(cfg.noise_octaves); + billow_noise.SetPersistence(cfg.noise_persistence); + return std::make_unique(billow_noise); + } else if (cfg.noise_type == NoiseType::RidgedMulti) { + auto ridged_multi_noise = noise::module::RidgedMulti(); + ridged_multi_noise.SetFrequency(1 / cfg.noise_scale); + ridged_multi_noise.SetOctaveCount(cfg.noise_octaves); + return std::make_unique(ridged_multi_noise); + } else if (cfg.noise_type == NoiseType::Voronoi) { + auto voronoi_noise = noise::module::Voronoi(); + voronoi_noise.SetFrequency(1 / cfg.noise_scale); + voronoi_noise.SetDisplacement(1.0); + return std::make_unique(voronoi_noise); + } else { + return std::make_unique(); + } +} + // Thanks Cura developers for this function. -static void fuzzy_polyline(Points& poly, bool closed, const FuzzySkinConfig& cfg) +static void fuzzy_polyline(Points& poly, bool closed, coordf_t slice_z, const FuzzySkinConfig& cfg) { + std::unique_ptr noise = get_noise_module(cfg); + const double min_dist_between_points = cfg.point_distance * 3. / 4.; // hardcoded: the point distance may vary between 3/4 and 5/4 the supplied value const double range_random_point_dist = cfg.point_distance / 2.; double dist_left_over = random_value() * (min_dist_between_points / 2.); // the distance to be traversed on the line before making the first new point @@ -91,8 +129,9 @@ static void fuzzy_polyline(Points& poly, bool closed, const FuzzySkinConfig& cfg for (; p0pa_dist < p0p1_size; p0pa_dist += min_dist_between_points + random_value() * range_random_point_dist) { - double r = random_value() * (cfg.thickness * 2.) - cfg.thickness; - out.emplace_back(*p0 + (p0p1 * (p0pa_dist / p0p1_size) + perp(p0p1).cast().normalized() * r).cast()); + Point pa = *p0 + (p0p1 * (p0pa_dist / p0p1_size)).cast(); + double r = noise->GetValue(unscale_(pa.x()), unscale_(pa.y()), slice_z) * cfg.thickness; + out.emplace_back(pa + (perp(p0p1).cast().normalized() * r).cast()); } dist_left_over = p0pa_dist - p0p1_size; p0 = &p1; @@ -109,8 +148,10 @@ static void fuzzy_polyline(Points& poly, bool closed, const FuzzySkinConfig& cfg } // Thanks Cura developers for this function. -static void fuzzy_extrusion_line(std::vector& ext_lines, const FuzzySkinConfig& cfg) +static void fuzzy_extrusion_line(std::vector& ext_lines, coordf_t slice_z, const FuzzySkinConfig& cfg) { + std::unique_ptr noise = get_noise_module(cfg); + const double min_dist_between_points = cfg.point_distance * 3. / 4.; // hardcoded: the point distance may vary between 3/4 and 5/4 the supplied value const double range_random_point_dist = cfg.point_distance / 2.; double dist_left_over = random_value() * (min_dist_between_points / 2.); // the distance to be traversed on the line before making the first new point @@ -129,8 +170,9 @@ static void fuzzy_extrusion_line(std::vector& ext_li double p0p1_size = p0p1.norm(); double p0pa_dist = dist_left_over; for (; p0pa_dist < p0p1_size; p0pa_dist += min_dist_between_points + random_value() * range_random_point_dist) { - double r = random_value() * (cfg.thickness * 2.) - cfg.thickness; - out.emplace_back(p0->p + (p0p1 * (p0pa_dist / p0p1_size) + perp(p0p1).cast().normalized() * r).cast(), p1.w, p1.perimeter_index); + Point pa = p0->p + (p0p1 * (p0pa_dist / p0p1_size)).cast(); + double r = noise->GetValue(unscale_(pa.x()), unscale_(pa.y()), slice_z) * cfg.thickness; + out.emplace_back(pa + (perp(p0p1).cast().normalized() * r).cast(), p1.w, p1.perimeter_index); } dist_left_over = p0pa_dist - p0p1_size; p0 = &p1; @@ -545,7 +587,7 @@ static ExtrusionEntityCollection traverse_loops(const PerimeterGenerator &perime } fuzzified = loop.polygon; - fuzzy_polyline(fuzzified.points, true, config); + fuzzy_polyline(fuzzified.points, true, perimeter_generator.slice_z, config); return &fuzzified; } @@ -567,7 +609,7 @@ static ExtrusionEntityCollection traverse_loops(const PerimeterGenerator &perime for (const auto & r : fuzzified_regions) { BoundingBox bbox = get_extents(perimeter_generator.slices->surfaces); bbox.offset(scale_(1.)); - ::Slic3r::SVG svg(debug_out_path("fuzzy_traverse_loops_%d_%d_%d_region_%d.svg", perimeter_generator.layer_id, loop.is_contour() ? 0 : 1, loop.depth, i).c_str(), bbox); + ::Slic3r::SVG svg(debug_out_path("fuzzy_traverse_loops_%d_%d_%d_region_%d.svg", perimeter_generator.layer_id, loop.is_contour ? 0 : 1, loop.depth, i).c_str(), bbox); svg.draw_outline(perimeter_generator.slices->surfaces); svg.draw_outline(loop.polygon, "green"); svg.draw(r.second, "red", 0.5); @@ -590,16 +632,17 @@ static ExtrusionEntityCollection traverse_loops(const PerimeterGenerator &perime // Fuzzy splitted polygon if (std::all_of(splitted.begin(), splitted.end(), [](const Algorithm::SplitLineJunction& j) { return j.clipped; })) { // The entire polygon is fuzzified - fuzzy_polyline(fuzzified.points, true, r.first); + fuzzy_polyline(fuzzified.points, true, perimeter_generator.slice_z, r.first); } else { Points segment; segment.reserve(splitted.size()); fuzzified.points.clear(); - const auto fuzzy_current_segment = [&segment, &fuzzified, &r]() { + const auto slice_z = perimeter_generator.slice_z; + const auto fuzzy_current_segment = [&segment, &fuzzified, &r, slice_z]() { fuzzified.points.push_back(segment.front()); const auto back = segment.back(); - fuzzy_polyline(segment, false, r.first); + fuzzy_polyline(segment, false, slice_z, r.first); fuzzified.points.insert(fuzzified.points.end(), segment.begin(), segment.end()); fuzzified.points.push_back(back); segment.clear(); @@ -877,6 +920,13 @@ static ClipperLib_Z::Paths clip_extrusion(const ClipperLib_Z::Path& subject, con return clipped_paths; } +struct PerimeterGeneratorArachneExtrusion +{ + Arachne::ExtrusionLine* extrusion = nullptr; + // Indicates if closed ExtrusionLine is a contour or a hole. Used it only when ExtrusionLine is a closed loop. + bool is_contour = false; +}; + static void smooth_overhang_level(ExtrusionPaths &paths) { @@ -961,42 +1011,44 @@ static void smooth_overhang_level(ExtrusionPaths &paths) } } -static ExtrusionEntityCollection traverse_extrusions(const PerimeterGenerator& perimeter_generator, Arachne::PerimeterOrder::PerimeterExtrusions& pg_extrusions, +static ExtrusionEntityCollection traverse_extrusions(const PerimeterGenerator& perimeter_generator, std::vector& pg_extrusions, bool &steep_overhang_contour, bool &steep_overhang_hole) { + const auto slice_z = perimeter_generator.slice_z; + // Detect steep overhangs bool overhangs_reverse = perimeter_generator.config->overhang_reverse && perimeter_generator.layer_id % 2 == 1; // Only calculate overhang degree on even (from GUI POV) layers ExtrusionEntityCollection extrusion_coll; - for (Arachne::PerimeterOrder::PerimeterExtrusion &pg_extrusion : pg_extrusions) { - Arachne::ExtrusionLine &extrusion = pg_extrusion.extrusion; - if (extrusion.empty()) + for (PerimeterGeneratorArachneExtrusion& pg_extrusion : pg_extrusions) { + Arachne::ExtrusionLine* extrusion = pg_extrusion.extrusion; + if (extrusion->empty()) continue; - const bool is_external = extrusion.inset_idx == 0; + const bool is_external = extrusion->inset_idx == 0; ExtrusionRole role = is_external ? erExternalPerimeter : erPerimeter; const auto& regions = perimeter_generator.regions_by_fuzzify; - const bool is_contour = !extrusion.is_closed || pg_extrusion.is_contour(); + const bool is_contour = !extrusion->is_closed || pg_extrusion.is_contour; if (regions.size() == 1) { // optimization const auto& config = regions.begin()->first; - const bool fuzzify = should_fuzzify(config, perimeter_generator.layer_id, extrusion.inset_idx, is_contour); + const bool fuzzify = should_fuzzify(config, perimeter_generator.layer_id, extrusion->inset_idx, is_contour); if (fuzzify) - fuzzy_extrusion_line(extrusion.junctions, config); + fuzzy_extrusion_line(extrusion->junctions, slice_z, config); } else { // Find all affective regions std::vector> fuzzified_regions; fuzzified_regions.reserve(regions.size()); for (const auto& region : regions) { - if (should_fuzzify(region.first, perimeter_generator.layer_id, extrusion.inset_idx, is_contour)) { + if (should_fuzzify(region.first, perimeter_generator.layer_id, extrusion->inset_idx, is_contour)) { fuzzified_regions.emplace_back(region.first, region.second); } } if (!fuzzified_regions.empty()) { // Split the loops into lines with different config, and fuzzy them separately for (const auto& r : fuzzified_regions) { - const auto splitted = Algorithm::split_line(extrusion, r.second, false); + const auto splitted = Algorithm::split_line(*extrusion, r.second, false); if (splitted.empty()) { // No intersection, skip continue; @@ -1005,19 +1057,19 @@ static ExtrusionEntityCollection traverse_extrusions(const PerimeterGenerator& p // Fuzzy splitted extrusion if (std::all_of(splitted.begin(), splitted.end(), [](const Algorithm::SplitLineJunction& j) { return j.clipped; })) { // The entire polygon is fuzzified - fuzzy_extrusion_line(extrusion.junctions, r.first); + fuzzy_extrusion_line(extrusion->junctions, slice_z, r.first); } else { - const auto current_ext = extrusion.junctions; + const auto current_ext = extrusion->junctions; std::vector segment; segment.reserve(current_ext.size()); - extrusion.junctions.clear(); + extrusion->junctions.clear(); - const auto fuzzy_current_segment = [&segment, &extrusion, &r]() { - extrusion.junctions.push_back(segment.front()); + const auto fuzzy_current_segment = [&segment, &extrusion, &r, slice_z]() { + extrusion->junctions.push_back(segment.front()); const auto back = segment.back(); - fuzzy_extrusion_line(segment, r.first); - extrusion.junctions.insert(extrusion.junctions.end(), segment.begin(), segment.end()); - extrusion.junctions.push_back(back); + fuzzy_extrusion_line(segment, slice_z, r.first); + extrusion->junctions.insert(extrusion->junctions.end(), segment.begin(), segment.end()); + extrusion->junctions.push_back(back); segment.clear(); }; @@ -1034,7 +1086,7 @@ static ExtrusionEntityCollection traverse_extrusions(const PerimeterGenerator& p segment.push_back(to_ex_junction(p)); } else { if (segment.empty()) { - extrusion.junctions.push_back(to_ex_junction(p)); + extrusion->junctions.push_back(to_ex_junction(p)); } else { segment.push_back(to_ex_junction(p)); fuzzy_current_segment(); @@ -1053,9 +1105,9 @@ static ExtrusionEntityCollection traverse_extrusions(const PerimeterGenerator& p // detect overhanging/bridging perimeters if (perimeter_generator.config->detect_overhang_wall && perimeter_generator.layer_id > perimeter_generator.object_config->raft_layers) { ClipperLib_Z::Path extrusion_path; - extrusion_path.reserve(extrusion.size()); + extrusion_path.reserve(extrusion->size()); BoundingBox extrusion_path_bbox; - for (const Arachne::ExtrusionJunction &ej : extrusion.junctions) { + for (const Arachne::ExtrusionJunction &ej : extrusion->junctions) { extrusion_path.emplace_back(ej.p.x(), ej.p.y(), ej.w); extrusion_path_bbox.merge(Point(ej.p.x(), ej.p.y())); } @@ -1085,7 +1137,7 @@ static ExtrusionEntityCollection traverse_extrusions(const PerimeterGenerator& p // Always reverse extrusion if use fuzzy skin: https://github.com/SoftFever/OrcaSlicer/pull/2413#issuecomment-1769735357 if (overhangs_reverse && perimeter_generator.has_fuzzy_skin) { - if (pg_extrusion.is_contour()) { + if (pg_extrusion.is_contour) { steep_overhang_contour = true; } else if (perimeter_generator.has_fuzzy_hole) { steep_overhang_hole = true; @@ -1093,7 +1145,7 @@ static ExtrusionEntityCollection traverse_extrusions(const PerimeterGenerator& p } // Detect steep overhang // Skip the check if we already found steep overhangs - bool found_steep_overhang = (pg_extrusion.is_contour() && steep_overhang_contour) || (!pg_extrusion.is_contour() && steep_overhang_hole); + bool found_steep_overhang = (pg_extrusion.is_contour && steep_overhang_contour) || (!pg_extrusion.is_contour && steep_overhang_hole); if (overhangs_reverse && !found_steep_overhang) { std::map recognization_paths; for (const ExtrusionPath &path : temp_paths) { @@ -1111,7 +1163,7 @@ static ExtrusionEntityCollection traverse_extrusions(const PerimeterGenerator& p BoundingBox extrusion_bboxs = get_extents(be_clipped); - if (detect_steep_overhang(perimeter_generator.config, pg_extrusion.is_contour(), extrusion_bboxs, it.first, be_clipped, perimeter_generator.lower_slices, + if (detect_steep_overhang(perimeter_generator.config, pg_extrusion.is_contour, extrusion_bboxs, it.first, be_clipped, perimeter_generator.lower_slices, steep_overhang_contour, steep_overhang_hole)) { break; } @@ -1179,7 +1231,7 @@ static ExtrusionEntityCollection traverse_extrusions(const PerimeterGenerator& p // Arachne sometimes creates extrusion with zero-length (just two same endpoints); if (!paths.empty()) { Point start_point = paths.front().first_point(); - if (!extrusion.is_closed) { + if (!extrusion->is_closed) { // Especially for open extrusion, we need to select a starting point that is at the start // or the end of the extrusions to make one continuous line. Also, we prefer a non-overhang // starting point. @@ -1219,7 +1271,7 @@ static ExtrusionEntityCollection traverse_extrusions(const PerimeterGenerator& p if (overhangs_reverse) { for (const ExtrusionPath& path : paths) { if (path.role() == erOverhangPerimeter) { - if (pg_extrusion.is_contour()) + if (pg_extrusion.is_contour) steep_overhang_contour = true; else steep_overhang_hole = true; @@ -1236,13 +1288,13 @@ static ExtrusionEntityCollection traverse_extrusions(const PerimeterGenerator& p steep_overhang_hole = true; } - extrusion_paths_append(paths, extrusion, role, is_external ? perimeter_generator.ext_perimeter_flow : perimeter_generator.perimeter_flow); + extrusion_paths_append(paths, *extrusion, role, is_external ? perimeter_generator.ext_perimeter_flow : perimeter_generator.perimeter_flow); } // Append paths to collection. if (!paths.empty()) { - if (extrusion.is_closed) { - ExtrusionLoop extrusion_loop(std::move(paths), pg_extrusion.is_contour() ? elrDefault : elrHole); + if (extrusion->is_closed) { + ExtrusionLoop extrusion_loop(std::move(paths), pg_extrusion.is_contour ? elrDefault : elrHole); extrusion_loop.make_counter_clockwise(); // TODO: it seems in practice that ExtrusionLoops occasionally have significantly disconnected paths, // triggering the asserts below. Is this a problem? @@ -1852,7 +1904,11 @@ static void group_region_by_fuzzify(PerimeterGenerator& g) region_config.fuzzy_skin, scaled(region_config.fuzzy_skin_thickness.value), scaled(region_config.fuzzy_skin_point_distance.value), - region_config.fuzzy_skin_first_layer + region_config.fuzzy_skin_first_layer, + region_config.fuzzy_skin_noise_type, + region_config.fuzzy_skin_scale, + region_config.fuzzy_skin_octaves, + region_config.fuzzy_skin_persistence }; auto& surfaces = regions[cfg]; for (const auto& surface : region->slices.surfaces) { @@ -1877,516 +1933,6 @@ static void group_region_by_fuzzify(PerimeterGenerator& g) } } - -// ORCA: -// Inner Outer Inner wall ordering mode perimeter order optimisation functions -/** - * @brief Finds all perimeters touching a given set of reference lines, given as indexes. - * - * @param entities The list of PerimeterGeneratorArachneExtrusion entities. - * @param referenceIndices A set of indices representing the reference points. - * @param threshold_external The distance threshold to consider for proximity for a reference perimeter with inset index 0 - * @param threshold_internal The distance threshold to consider for proximity for a reference perimeter with inset index 1+ - * @param considered_inset_idx What perimeter inset index are we searching for (eg. if we are searching for first internal perimeters proximate to the current reference perimeter, this value should be set to 1 etc). - * @return std::vector A vector of indices representing the touching perimeters. - */ -std::vector findAllTouchingPerimeters(const Arachne::PerimeterOrder::PerimeterExtrusions& entities, const std::unordered_set& referenceIndices, size_t threshold_external, size_t threshold_internal , size_t considered_inset_idx) { - std::unordered_set touchingIndices; - - for (const int refIdx : referenceIndices) { - const auto& referenceEntity = entities[refIdx]; - Points referencePoints = Arachne::to_points(referenceEntity.extrusion); - for (size_t i = 0; i < entities.size(); ++i) { - // Skip already considered references and the reference entity - if (referenceIndices.count(i) > 0) continue; - const auto& entity = entities[i]; - if (entity.extrusion.is_external_perimeter()) continue; // Ignore inset index 0 (external) perimeters from the re-ordering even if they are touching - - if (entity.extrusion.inset_idx != considered_inset_idx) { // Find Inset index perimeters that match the requested inset index - continue; // skip if they dont match - } - - Points points = Arachne::to_points(entity.extrusion); - double distance = MultiPoint::minimumDistanceBetweenLinesDefinedByPoints(referencePoints, points); - // Add to touchingIndices if within threshold distance - size_t threshold=0; - if(referenceEntity.extrusion.is_external_perimeter()) - threshold = threshold_external; - else - threshold = threshold_internal; - if (distance <= threshold) { - touchingIndices.insert(i); - } - } - } - return std::vector(touchingIndices.begin(), touchingIndices.end()); -} - -/** - * @brief Reorders perimeters based on proximity to the reference perimeter - * - * This approach finds all perimeters touching the external perimeter first and then finds all perimeters touching these new ones until none are left - * It ensures a level-by-level traversal, similar to BFS in graph theory. - * - * @param entities The list of PerimeterGeneratorArachneExtrusion entities. - * @param referenceIndex The index of the reference perimeter. - * @param threshold_external The distance threshold to consider for proximity for a reference perimeter with inset index 0 - * @param threshold_internal The distance threshold to consider for proximity for a reference perimeter with inset index 1+ - * @return Arachne::PerimeterOrder::PerimeterExtrusions The reordered list of perimeters based on proximity. - */ -Arachne::PerimeterOrder::PerimeterExtrusions reorderPerimetersByProximity(Arachne::PerimeterOrder::PerimeterExtrusions entities, size_t threshold_external, size_t threshold_internal) { - Arachne::PerimeterOrder::PerimeterExtrusions reordered; - std::unordered_set includedIndices; - - // Function to reorder perimeters starting from a given reference index - auto reorderFromReference = [&](int referenceIndex) { - std::unordered_set firstLevelIndices; - firstLevelIndices.insert(referenceIndex); - - // Find first level touching perimeters - std::vector firstLevelTouchingIndices = findAllTouchingPerimeters(entities, firstLevelIndices, threshold_external, threshold_internal, 1); - // Bring the largest first level perimeter to the front - // The longest first neighbour is most likely the dominant proximate perimeter - // hence printing it immediately after the external perimeter should speed things up - if (!firstLevelTouchingIndices.empty()) { - auto maxIt = std::max_element(firstLevelTouchingIndices.begin(), firstLevelTouchingIndices.end(), [&entities](int a, int b) { - return entities[a].extrusion.getLength() < entities[b].extrusion.getLength(); - }); - std::iter_swap(maxIt, firstLevelTouchingIndices.end() - 1); - } - // Insert first level perimeters into reordered list - reordered.push_back(entities[referenceIndex]); - includedIndices.insert(referenceIndex); - - for (int idx : firstLevelTouchingIndices) { - if (includedIndices.count(idx) == 0) { - reordered.push_back(entities[idx]); - includedIndices.insert(idx); - } - } - - // Loop through all inset indices above 1 - size_t currentInsetIndex = 2; - while (true) { - std::unordered_set currentLevelIndices(firstLevelTouchingIndices.begin(), firstLevelTouchingIndices.end()); - std::vector currentLevelTouchingIndices = findAllTouchingPerimeters(entities, currentLevelIndices, threshold_external, threshold_internal, currentInsetIndex); - - // Break if no more touching perimeters are found - if (currentLevelTouchingIndices.empty()) { - break; - } - - // Exclude any already included indices from the current level touching indices - currentLevelTouchingIndices.erase( - std::remove_if(currentLevelTouchingIndices.begin(), currentLevelTouchingIndices.end(), - [&](int idx) { return includedIndices.count(idx) > 0; }), - currentLevelTouchingIndices.end()); - - // Bring the largest current level perimeter to the end - if (!currentLevelTouchingIndices.empty()) { - auto maxIt = std::max_element(currentLevelTouchingIndices.begin(), currentLevelTouchingIndices.end(), [&entities](int a, int b) { - return entities[a].extrusion.getLength() < entities[b].extrusion.getLength(); - }); - std::iter_swap(maxIt, currentLevelTouchingIndices.begin()); - } - - // Insert current level perimeters into reordered list - for (int idx : currentLevelTouchingIndices) { - if (includedIndices.count(idx) == 0) { - reordered.push_back(entities[idx]); - includedIndices.insert(idx); - } - } - - // Prepare for the next level - firstLevelTouchingIndices = currentLevelTouchingIndices; - currentInsetIndex++; - } - }; - - // Loop through all perimeters and reorder starting from each inset index 0 perimeter - for (size_t refIdx = 0; refIdx < entities.size(); ++refIdx) { - if (entities[refIdx].extrusion.is_external_perimeter() && includedIndices.count(refIdx) == 0) { - reorderFromReference(refIdx); - } - } - - // Append any remaining entities that were not included - for (size_t i = 0; i < entities.size(); ++i) { - if (includedIndices.count(i) == 0) { - reordered.push_back(entities[i]); - } - } - - return reordered; -} - -/** - * @brief Reorders the vector to bring external perimeter (i.e. paths with inset index 0) that are also contours (i.e. external facing lines) to the front. - * - * This function uses a stable partition to move all external perimeter contour elements to the front of the vector, - * while maintaining the relative order of non-contour elements. - * - * @param ordered_extrusions The vector of PerimeterGeneratorArachneExtrusion to reorder. - */ -void bringContoursToFront(Arachne::PerimeterOrder::PerimeterExtrusions& ordered_extrusions) { - std::stable_partition(ordered_extrusions.begin(), ordered_extrusions.end(), [](const Arachne::PerimeterOrder::PerimeterExtrusion& extrusion) { - return (extrusion.extrusion.is_contour() && extrusion.extrusion.is_external_perimeter()); - }); -} -// ORCA: -// Inner Outer Inner wall ordering mode perimeter order optimisation functions ended - -// Thanks, Cura developers, for implementing an algorithm for generating perimeters with variable width (Arachne) that is based on the paper -// "A framework for adaptive width control of dense contour-parallel toolpaths in fused deposition modeling" -void PerimeterGenerator::process_arachne() -{ - group_region_by_fuzzify(*this); - - // other perimeters - m_mm3_per_mm = this->perimeter_flow.mm3_per_mm(); - coord_t perimeter_spacing = this->perimeter_flow.scaled_spacing(); - - // external perimeters - m_ext_mm3_per_mm = this->ext_perimeter_flow.mm3_per_mm(); - coord_t ext_perimeter_width = this->ext_perimeter_flow.scaled_width(); - coord_t ext_perimeter_spacing = this->ext_perimeter_flow.scaled_spacing(); - coord_t ext_perimeter_spacing2 = scaled(0.5f * (this->ext_perimeter_flow.spacing() + this->perimeter_flow.spacing())); - // overhang perimeters - m_mm3_per_mm_overhang = this->overhang_flow.mm3_per_mm(); - - // solid infill - coord_t solid_infill_spacing = this->solid_infill_flow.scaled_spacing(); - - // prepare grown lower layer slices for overhang detection - if (this->lower_slices != nullptr && this->config->detect_overhang_wall) { - // We consider overhang any part where the entire nozzle diameter is not supported by the - // lower layer, so we take lower slices and offset them by half the nozzle diameter used - // in the current layer - double nozzle_diameter = this->print_config->nozzle_diameter.get_at(this->config->wall_filament - 1); - m_lower_slices_polygons = offset(*this->lower_slices, float(scale_(+nozzle_diameter / 2))); - } - - Surfaces all_surfaces = this->slices->surfaces; - - process_no_bridge(all_surfaces, perimeter_spacing, ext_perimeter_width); - // BBS: don't simplify too much which influence arc fitting when export gcode if arc_fitting is enabled - double surface_simplify_resolution = (print_config->enable_arc_fitting && !this->has_fuzzy_skin) ? 0.2 * m_scaled_resolution : m_scaled_resolution; - // we need to process each island separately because we might have different - // extra perimeters for each one - for (const Surface& surface : all_surfaces) { - coord_t bead_width_0 = ext_perimeter_spacing; - // detect how many perimeters must be generated for this island - int loop_number = this->config->wall_loops + surface.extra_perimeters - 1; // 0-indexed loops - int sparse_infill_density = this->config->sparse_infill_density.value; - if (this->config->alternate_extra_wall && this->layer_id % 2 == 1 && !m_spiral_vase && sparse_infill_density > 0) // add alternating extra wall - loop_number++; - - // Set the bottommost layer to be one wall - const bool is_bottom_layer = (this->layer_id == object_config->raft_layers) ? true : false; - if (is_bottom_layer && this->config->only_one_wall_first_layer) - loop_number = 0; - - // Orca: set the topmost layer to be one wall according to the config - const bool is_topmost_layer = (this->upper_slices == nullptr) ? true : false; - if (is_topmost_layer && loop_number > 0 && config->only_one_wall_top) - loop_number = 0; - - auto apply_precise_outer_wall = config->precise_outer_wall && this->config->wall_sequence == WallSequence::InnerOuter; - // Orca: properly adjust offset for the outer wall if precise_outer_wall is enabled. - ExPolygons last = offset_ex(surface.expolygon.simplify_p(surface_simplify_resolution), - apply_precise_outer_wall? -float(ext_perimeter_width - ext_perimeter_spacing ) - : -float(ext_perimeter_width / 2. - ext_perimeter_spacing / 2.)); - - Arachne::WallToolPathsParams input_params = Arachne::make_paths_params(this->layer_id, *object_config, *print_config); - // Set params is_top_or_bottom_layer for adjusting short-wall removal sensitivity. - input_params.is_top_or_bottom_layer = (is_bottom_layer || is_topmost_layer) ? true : false; - - coord_t wall_0_inset = 0; - if (apply_precise_outer_wall) - wall_0_inset = -coord_t(ext_perimeter_width / 2 - ext_perimeter_spacing / 2); - - //PS: One wall top surface for Arachne - ExPolygons top_expolygons; - // Calculate how many inner loops remain when TopSurfaces is selected. - const int inner_loop_number = (config->only_one_wall_top && upper_slices != nullptr) ? loop_number - 1 : -1; - - // Set one perimeter when TopSurfaces is selected. - if (config->only_one_wall_top) - loop_number = 0; - - Arachne::WallToolPathsParams input_params_tmp = input_params; - - Polygons last_p = to_polygons(last); - Arachne::WallToolPaths wall_tool_paths(last_p, bead_width_0, perimeter_spacing, coord_t(loop_number + 1), - wall_0_inset, layer_height, input_params_tmp); - Arachne::Perimeters perimeters = wall_tool_paths.getToolPaths(); - ExPolygons infill_contour = union_ex(wall_tool_paths.getInnerContour()); - - // Check if there are some remaining perimeters to generate (the number of perimeters - // is greater than one together with enabled the single perimeter on top surface feature). - if (inner_loop_number >= 0) { - assert(upper_slices != nullptr); - - // Infill contour bounding box. - BoundingBox infill_contour_bbox = get_extents(infill_contour); - infill_contour_bbox.offset(SCALED_EPSILON); - - coord_t perimeter_width = this->perimeter_flow.scaled_width(); - - // Get top ExPolygons from current infill contour. - Polygons upper_slices_clipped = ClipperUtils::clip_clipper_polygons_with_subject_bbox(*upper_slices, infill_contour_bbox); - top_expolygons = diff_ex(infill_contour, upper_slices_clipped); - - if (!top_expolygons.empty()) { - if (lower_slices != nullptr) { - const float bridge_offset = float(std::max(ext_perimeter_spacing, perimeter_width)); - const Polygons lower_slices_clipped = ClipperUtils::clip_clipper_polygons_with_subject_bbox(*lower_slices, infill_contour_bbox); - const ExPolygons current_slices_bridges = offset_ex(diff_ex(top_expolygons, lower_slices_clipped), bridge_offset); - - // Remove bridges from top surface polygons. - top_expolygons = diff_ex(top_expolygons, current_slices_bridges); - } - - // Filter out areas that are too thin and expand top surface polygons a bit to hide the wall line. - // ORCA: skip if the top surface area is smaller than "min_width_top_surface" - const float top_surface_min_width = std::max(float(ext_perimeter_spacing) / 4.f + scaled(0.00001), float(scale_(config->min_width_top_surface.get_abs_value(unscale_(perimeter_width)))) / 4.f); - // Shrink the polygon to remove the small areas, then expand it back out plus a maragin to hide the wall line a little. - // ORCA: Expand the polygon with half the perimeter width in addition to the contracted amount, - // not the full perimeter width as PS does, to enable thin lettering to print on the top surface without nozzle collisions - // due to thin lines being generated - top_expolygons = offset2_ex(top_expolygons, -top_surface_min_width, top_surface_min_width + float(perimeter_width * 0.85)); - - // Get the not-top ExPolygons (including bridges) from current slices and expanded real top ExPolygons (without bridges). - const ExPolygons not_top_expolygons = diff_ex(infill_contour, top_expolygons); - - // Get final top ExPolygons. - top_expolygons = intersection_ex(top_expolygons, infill_contour); - - const Polygons not_top_polygons = to_polygons(not_top_expolygons); - Arachne::WallToolPaths inner_wall_tool_paths(not_top_polygons, perimeter_spacing, perimeter_spacing, coord_t(inner_loop_number + 1), 0, layer_height, input_params_tmp); - Arachne::Perimeters inner_perimeters = inner_wall_tool_paths.getToolPaths(); - - // Recalculate indexes of inner perimeters before merging them. - if (!perimeters.empty()) { - for (Arachne::VariableWidthLines &inner_perimeter : inner_perimeters) { - if (inner_perimeter.empty()) - continue; - for (Arachne::ExtrusionLine &el : inner_perimeter) - ++el.inset_idx; - } - } - - perimeters.insert(perimeters.end(), inner_perimeters.begin(), inner_perimeters.end()); - infill_contour = union_ex(top_expolygons, inner_wall_tool_paths.getInnerContour()); - } else { - // There is no top surface ExPolygon, so we call Arachne again with parameters - // like when the single perimeter feature is disabled. - Arachne::WallToolPaths no_single_perimeter_tool_paths(last_p, bead_width_0, perimeter_spacing, coord_t(inner_loop_number + 2), wall_0_inset, layer_height, input_params_tmp); - perimeters = no_single_perimeter_tool_paths.getToolPaths(); - infill_contour = union_ex(no_single_perimeter_tool_paths.getInnerContour()); - } - } - //PS - - loop_number = int(perimeters.size()) - 1; - -#ifdef ARACHNE_DEBUG - { - static int iRun = 0; - export_perimeters_to_svg(debug_out_path("arachne-perimeters-%d-%d.svg", params.layer_id, iRun++), to_polygons(last), perimeters, union_ex(wallToolPaths.getInnerContour())); - } -#endif - - // All closed ExtrusionLine should have the same the first and the last point. - // But in rare cases, Arachne produce ExtrusionLine marked as closed but without - // equal the first and the last point. - assert([&perimeters = std::as_const(perimeters)]() -> bool { - for (const Arachne::Perimeter& perimeter : perimeters) - for (const Arachne::ExtrusionLine& el : perimeter) - if (el.is_closed && el.junctions.front().p != el.junctions.back().p) - return false; - return true; - }()); - - bool is_outer_wall_first = - this->config->wall_sequence == WallSequence::OuterInner || - this->config->wall_sequence == WallSequence::InnerOuterInner; - - if (layer_id == 0){ // disable inner outer inner algorithm after the first layer - is_outer_wall_first = - this->config->wall_sequence == WallSequence::OuterInner; - } - Arachne::PerimeterOrder::PerimeterExtrusions ordered_extrusions = Arachne::PerimeterOrder::ordered_perimeter_extrusions(perimeters, is_outer_wall_first); - - // printf("New Layer: Layer ID %d\n",layer_id); //debug - new layer - if (this->config->wall_sequence == WallSequence::InnerOuterInner && layer_id > 0) { // only enable inner outer inner algorithm after first layer - if (ordered_extrusions.size() > 2) { // 3 walls minimum needed to do inner outer inner ordering - int position = 0; // index to run the re-ordering for multiple external perimeters in a single island. - int arr_i, arr_j = 0; // indexes to run through the walls in the for loops - int outer, first_internal, second_internal, max_internal, current_perimeter; // allocate index values - - // To address any remaining scenarios where the outer perimeter contour is not first on the list as arachne sometimes reorders the perimeters when clustering - // for OI mode that is used the basis for IOI - bringContoursToFront(ordered_extrusions); - Arachne::PerimeterOrder::PerimeterExtrusions reordered_extrusions; - - // Debug statement to print spacing values: - //printf("External threshold - Ext perimeter: %d Ext spacing: %d Int perimeter: %d Int spacing: %d\n", this->ext_perimeter_flow.scaled_width(),this->ext_perimeter_flow.scaled_spacing(),this->perimeter_flow.scaled_width(), this->perimeter_flow.scaled_spacing()); - - // Get searching thresholds. For an external perimeter we take the external perimeter spacing/2 plus the internal perimeter spacing/2 and expand by 3% to cover - // rounding errors - coord_t threshold_external = (this->ext_perimeter_flow.scaled_spacing()/2 + this->perimeter_flow.scaled_spacing()/2)*1.03; - - // For the intenal perimeter threshold, the distance is the internal perimeter spacing expanded by 3% to cover rounding errors. - coord_t threshold_internal = this->perimeter_flow.scaled_spacing() * 1.03; - - // Re-order extrusions based on distance - // Alorithm will aggresively optimise for the appearance of the outermost perimeter - ordered_extrusions = reorderPerimetersByProximity(ordered_extrusions,threshold_external,threshold_internal ); - reordered_extrusions = ordered_extrusions; // copy them into the reordered extrusions vector to allow for IOI operations to be performed below without altering the base ordered extrusions list. - - // Now start the sandwich mode wall re-ordering using the reordered_extrusions as the basis - // scan to find the external perimeter, first internal, second internal and last perimeter in the island. - // We then advance the position index to move to the second island and continue until there are no more - // perimeters left. - while (position < reordered_extrusions.size()) { - outer = first_internal = second_internal = current_perimeter = -1; // initialise all index values to -1 - max_internal = reordered_extrusions.size()-1; // initialise the maximum internal perimeter to the last perimeter on the extrusion list - // run through the walls to get the index values that need re-ordering until the first one for each - // is found. Start at "position" index to enable the for loop to iterate for multiple external - // perimeters in a single island - // printf("Reorder Loop. Position %d, extrusion list size: %d, Outer index %d, inner index %d, second inner index %d\n", position, reordered_extrusions.size(),outer,first_internal,second_internal); - for (arr_i = position; arr_i < reordered_extrusions.size(); ++arr_i) { - // printf("Perimeter: extrusion inset index %d, ordered extrusions array position %d\n",reordered_extrusions[arr_i].extrusion->inset_idx, arr_i); - switch (reordered_extrusions[arr_i].extrusion.inset_idx) { - case 0: // external perimeter - if (outer == -1) - outer = arr_i; - break; - case 1: // first internal wall - if (first_internal==-1 && arr_i>outer && outer!=-1){ - first_internal = arr_i; - } - break; - case 2: // second internal wall - if (second_internal == -1 && arr_i > first_internal && outer!=-1){ - second_internal = arr_i; - } - break; - } - if(outer >-1 && first_internal>-1 && reordered_extrusions[arr_i].extrusion.is_external_perimeter()){ // found a new external perimeter after we've found at least a first internal perimeter to re-order. - // This means we entered a new island. - arr_i=arr_i-1; //step back one perimeter - max_internal = arr_i; // new maximum internal perimeter is now this as we have found a new external perimeter, hence a new island. - break; // exit the for loop - } - } - - // printf("Layer ID %d, Outer index %d, inner index %d, second inner index %d, maximum internal perimeter %d \n",layer_id,outer,first_internal,second_internal, max_internal); - if (outer > -1 && first_internal > -1 && second_internal > -1) { // found all three perimeters to re-order? If not the perimeters will be processed outside in. - Arachne::PerimeterOrder::PerimeterExtrusions inner_outer_extrusions; // temporary array to hold extrusions for reordering - inner_outer_extrusions.resize(max_internal - position + 1, Arachne::PerimeterOrder::PerimeterExtrusion{{},0.0,{},{}}); // reserve array containing the number of perimeters before a new island. Variables are array indexes hence need to add +1 to convert to position allocations - // printf("Allocated array size %d, max_internal index %d, start position index %d \n",max_internal-position+1,max_internal,position); - - for (arr_j = max_internal; arr_j >=position; --arr_j){ // go inside out towards the external perimeter (perimeters in reverse order) and store all internal perimeters until the first one identified with inset index 2 - if(arr_j >= second_internal){ - //printf("Inside out loop: Mapped perimeter index %d to array position %d\n", arr_j, max_internal-arr_j); - inner_outer_extrusions[max_internal-arr_j] = reordered_extrusions[arr_j]; - current_perimeter++; - } - } - - for (arr_j = position; arr_j < second_internal; ++arr_j){ // go outside in and map the remaining perimeters (external and first internal wall(s)) using the outside in wall order - // printf("Outside in loop: Mapped perimeter index %d to array position %d\n", arr_j, current_perimeter+1); - inner_outer_extrusions[++current_perimeter] = reordered_extrusions[arr_j]; - } - - for(arr_j = position; arr_j <= max_internal; ++arr_j) // replace perimeter array with the new re-ordered array - ordered_extrusions[arr_j] = inner_outer_extrusions[arr_j-position]; - } - // go to the next perimeter from the current position to continue scanning for external walls in the same island - position = arr_i + 1; - } - } - } - - bool steep_overhang_contour = false; - bool steep_overhang_hole = false; - const WallDirection wall_direction = config->wall_direction; - if (wall_direction != WallDirection::Auto) { - // Skip steep overhang detection if wall direction is specified - steep_overhang_contour = true; - steep_overhang_hole = true; - } - if (ExtrusionEntityCollection extrusion_coll = traverse_extrusions(*this, ordered_extrusions, steep_overhang_contour, steep_overhang_hole); !extrusion_coll.empty()) { - // All walls are counter-clockwise initially, so we don't need to reorient it if that's what we want - if (wall_direction != WallDirection::CounterClockwise) { - reorient_perimeters(extrusion_coll, steep_overhang_contour, steep_overhang_hole, - // Reverse internal only if the wall direction is auto - this->config->overhang_reverse_internal_only && wall_direction == WallDirection::Auto); - } - this->loops->append(extrusion_coll); - } - - const coord_t spacing = (perimeters.size() == 1) ? ext_perimeter_spacing2 : perimeter_spacing; - - if (offset_ex(infill_contour, -float(spacing / 2.)).empty()) - infill_contour.clear(); // Infill region is too small, so let's filter it out. - - // create one more offset to be used as boundary for fill - // we offset by half the perimeter spacing (to get to the actual infill boundary) - // and then we offset back and forth by half the infill spacing to only consider the - // non-collapsing regions - coord_t inset = - (loop_number < 0) ? 0 : - (loop_number == 0) ? - // one loop - ext_perimeter_spacing : - // two or more loops? - perimeter_spacing; - coord_t top_inset = inset; - - top_inset = coord_t(scale_(this->config->top_bottom_infill_wall_overlap.get_abs_value(unscale(inset)))); - if(is_topmost_layer || is_bottom_layer) - inset = coord_t(scale_(this->config->top_bottom_infill_wall_overlap.get_abs_value(unscale(inset)))); - else - inset = coord_t(scale_(this->config->infill_wall_overlap.get_abs_value(unscale(inset)))); - - // simplify infill contours according to resolution - Polygons pp; - for (ExPolygon& ex : infill_contour) - ex.simplify_p(m_scaled_resolution, &pp); - ExPolygons not_filled_exp = union_ex(pp); - // collapse too narrow infill areas - const auto min_perimeter_infill_spacing = coord_t(solid_infill_spacing * (1. - INSET_OVERLAP_TOLERANCE)); - - ExPolygons infill_exp = offset2_ex( - not_filled_exp, - float(-min_perimeter_infill_spacing / 2.), - float(inset + min_perimeter_infill_spacing / 2.)); - // append infill areas to fill_surfaces - if (!top_expolygons.empty()) { - infill_exp = union_ex(infill_exp, offset_ex(top_expolygons, double(top_inset))); - } - this->fill_surfaces->append(infill_exp, stInternal); - - apply_extra_perimeters(infill_exp); - - // BBS: get the no-overlap infill expolygons - { - ExPolygons polyWithoutOverlap; - polyWithoutOverlap = offset2_ex( - not_filled_exp, - float(-min_perimeter_infill_spacing / 2.), - float(+min_perimeter_infill_spacing / 2.)); - if (!top_expolygons.empty()) - polyWithoutOverlap = union_ex(polyWithoutOverlap, top_expolygons); - this->fill_no_overlap->insert(this->fill_no_overlap->end(), polyWithoutOverlap.begin(), polyWithoutOverlap.end()); - } - } -} - void PerimeterGenerator::process_classic() { group_region_by_fuzzify(*this); @@ -2403,7 +1949,7 @@ void PerimeterGenerator::process_classic() coord_t ext_perimeter_spacing = this->ext_perimeter_flow.scaled_spacing(); coord_t ext_perimeter_spacing2; // Orca: ignore precise_outer_wall if wall_sequence is not InnerOuter - if(config->precise_outer_wall && this->config->wall_sequence == WallSequence::InnerOuter) + if(config->precise_outer_wall) ext_perimeter_spacing2 = scaled(0.5f * (this->ext_perimeter_flow.width() + this->perimeter_flow.width())); else ext_perimeter_spacing2 = scaled(0.5f * (this->ext_perimeter_flow.spacing() + this->perimeter_flow.spacing())); @@ -3187,6 +2733,613 @@ void PerimeterGenerator::process_no_bridge(Surfaces& all_surfaces, coord_t perim } } +// ORCA: +// Inner Outer Inner wall ordering mode perimeter order optimisation functions +/** + * @brief Finds all perimeters touching a given set of reference lines, given as indexes. + * + * @param entities The list of PerimeterGeneratorArachneExtrusion entities. + * @param referenceIndices A set of indices representing the reference points. + * @param threshold_external The distance threshold to consider for proximity for a reference perimeter with inset index 0 + * @param threshold_internal The distance threshold to consider for proximity for a reference perimeter with inset index 1+ + * @param considered_inset_idx What perimeter inset index are we searching for (eg. if we are searching for first internal perimeters proximate to the current reference perimeter, this value should be set to 1 etc). + * @return std::vector A vector of indices representing the touching perimeters. + */ +std::vector findAllTouchingPerimeters(const std::vector& entities, const std::unordered_set& referenceIndices, size_t threshold_external, size_t threshold_internal , size_t considered_inset_idx) { + std::unordered_set touchingIndices; + + for (const int refIdx : referenceIndices) { + const auto& referenceEntity = entities[refIdx]; + Points referencePoints = Arachne::to_points(*referenceEntity.extrusion); + for (size_t i = 0; i < entities.size(); ++i) { + // Skip already considered references and the reference entity + if (referenceIndices.count(i) > 0) continue; + const auto& entity = entities[i]; + if (entity.extrusion->inset_idx == 0) continue; // Ignore inset index 0 (external) perimeters from the re-ordering even if they are touching + + if (entity.extrusion->inset_idx != considered_inset_idx) { // Find Inset index perimeters that match the requested inset index + continue; // skip if they dont match + } + + Points points = Arachne::to_points(*entity.extrusion); + double distance = MultiPoint::minimumDistanceBetweenLinesDefinedByPoints(referencePoints, points); + // Add to touchingIndices if within threshold distance + size_t threshold=0; + if(referenceEntity.extrusion->inset_idx == 0) + threshold = threshold_external; + else + threshold = threshold_internal; + if (distance <= threshold) { + touchingIndices.insert(i); + } + } + } + return std::vector(touchingIndices.begin(), touchingIndices.end()); +} + +/** + * @brief Reorders perimeters based on proximity to the reference perimeter + * + * This approach finds all perimeters touching the external perimeter first and then finds all perimeters touching these new ones until none are left + * It ensures a level-by-level traversal, similar to BFS in graph theory. + * + * @param entities The list of PerimeterGeneratorArachneExtrusion entities. + * @param referenceIndex The index of the reference perimeter. + * @param threshold_external The distance threshold to consider for proximity for a reference perimeter with inset index 0 + * @param threshold_internal The distance threshold to consider for proximity for a reference perimeter with inset index 1+ + * @return std::vector The reordered list of perimeters based on proximity. + */ +std::vector reorderPerimetersByProximity(std::vector entities, size_t threshold_external, size_t threshold_internal) { + std::vector reordered; + std::unordered_set includedIndices; + + // Function to reorder perimeters starting from a given reference index + auto reorderFromReference = [&](int referenceIndex) { + std::unordered_set firstLevelIndices; + firstLevelIndices.insert(referenceIndex); + + // Find first level touching perimeters + std::vector firstLevelTouchingIndices = findAllTouchingPerimeters(entities, firstLevelIndices, threshold_external, threshold_internal, 1); + // Bring the largest first level perimeter to the front + // The longest first neighbour is most likely the dominant proximate perimeter + // hence printing it immediately after the external perimeter should speed things up + if (!firstLevelTouchingIndices.empty()) { + auto maxIt = std::max_element(firstLevelTouchingIndices.begin(), firstLevelTouchingIndices.end(), [&entities](int a, int b) { + return entities[a].extrusion->getLength() < entities[b].extrusion->getLength(); + }); + std::iter_swap(maxIt, firstLevelTouchingIndices.end() - 1); + } + // Insert first level perimeters into reordered list + reordered.push_back(entities[referenceIndex]); + includedIndices.insert(referenceIndex); + + for (int idx : firstLevelTouchingIndices) { + if (includedIndices.count(idx) == 0) { + reordered.push_back(entities[idx]); + includedIndices.insert(idx); + } + } + + // Loop through all inset indices above 1 + size_t currentInsetIndex = 2; + while (true) { + std::unordered_set currentLevelIndices(firstLevelTouchingIndices.begin(), firstLevelTouchingIndices.end()); + std::vector currentLevelTouchingIndices = findAllTouchingPerimeters(entities, currentLevelIndices, threshold_external, threshold_internal, currentInsetIndex); + + // Break if no more touching perimeters are found + if (currentLevelTouchingIndices.empty()) { + break; + } + + // Exclude any already included indices from the current level touching indices + currentLevelTouchingIndices.erase( + std::remove_if(currentLevelTouchingIndices.begin(), currentLevelTouchingIndices.end(), + [&](int idx) { return includedIndices.count(idx) > 0; }), + currentLevelTouchingIndices.end()); + + // Bring the largest current level perimeter to the end + if (!currentLevelTouchingIndices.empty()) { + auto maxIt = std::max_element(currentLevelTouchingIndices.begin(), currentLevelTouchingIndices.end(), [&entities](int a, int b) { + return entities[a].extrusion->getLength() < entities[b].extrusion->getLength(); + }); + std::iter_swap(maxIt, currentLevelTouchingIndices.begin()); + } + + // Insert current level perimeters into reordered list + for (int idx : currentLevelTouchingIndices) { + if (includedIndices.count(idx) == 0) { + reordered.push_back(entities[idx]); + includedIndices.insert(idx); + } + } + + // Prepare for the next level + firstLevelTouchingIndices = currentLevelTouchingIndices; + currentInsetIndex++; + } + }; + + // Loop through all perimeters and reorder starting from each inset index 0 perimeter + for (size_t refIdx = 0; refIdx < entities.size(); ++refIdx) { + if (entities[refIdx].extrusion->inset_idx == 0 && includedIndices.count(refIdx) == 0) { + reorderFromReference(refIdx); + } + } + + // Append any remaining entities that were not included + for (size_t i = 0; i < entities.size(); ++i) { + if (includedIndices.count(i) == 0) { + reordered.push_back(entities[i]); + } + } + + return reordered; +} + +/** + * @brief Reorders the vector to bring external perimeter (i.e. paths with inset index 0) that are also contours (i.e. external facing lines) to the front. + * + * This function uses a stable partition to move all external perimeter contour elements to the front of the vector, + * while maintaining the relative order of non-contour elements. + * + * @param ordered_extrusions The vector of PerimeterGeneratorArachneExtrusion to reorder. + */ +void bringContoursToFront(std::vector& ordered_extrusions) { + std::stable_partition(ordered_extrusions.begin(), ordered_extrusions.end(), [](const PerimeterGeneratorArachneExtrusion& extrusion) { + return (extrusion.extrusion->is_contour() && extrusion.extrusion->inset_idx==0); + }); +} +// ORCA: +// Inner Outer Inner wall ordering mode perimeter order optimisation functions ended + + +// Thanks, Cura developers, for implementing an algorithm for generating perimeters with variable width (Arachne) that is based on the paper +// "A framework for adaptive width control of dense contour-parallel toolpaths in fused deposition modeling" +void PerimeterGenerator::process_arachne() +{ + group_region_by_fuzzify(*this); + + // other perimeters + m_mm3_per_mm = this->perimeter_flow.mm3_per_mm(); + coord_t perimeter_spacing = this->perimeter_flow.scaled_spacing(); + + // external perimeters + m_ext_mm3_per_mm = this->ext_perimeter_flow.mm3_per_mm(); + coord_t ext_perimeter_width = this->ext_perimeter_flow.scaled_width(); + coord_t ext_perimeter_spacing = this->ext_perimeter_flow.scaled_spacing(); + coord_t ext_perimeter_spacing2 = scaled(0.5f * (this->ext_perimeter_flow.spacing() + this->perimeter_flow.spacing())); + // overhang perimeters + m_mm3_per_mm_overhang = this->overhang_flow.mm3_per_mm(); + + // solid infill + coord_t solid_infill_spacing = this->solid_infill_flow.scaled_spacing(); + + // prepare grown lower layer slices for overhang detection + if (this->lower_slices != nullptr && this->config->detect_overhang_wall) { + // We consider overhang any part where the entire nozzle diameter is not supported by the + // lower layer, so we take lower slices and offset them by half the nozzle diameter used + // in the current layer + double nozzle_diameter = this->print_config->nozzle_diameter.get_at(this->config->wall_filament - 1); + m_lower_slices_polygons = offset(*this->lower_slices, float(scale_(+nozzle_diameter / 2))); + } + + Surfaces all_surfaces = this->slices->surfaces; + + process_no_bridge(all_surfaces, perimeter_spacing, ext_perimeter_width); + // BBS: don't simplify too much which influence arc fitting when export gcode if arc_fitting is enabled + double surface_simplify_resolution = (print_config->enable_arc_fitting && !this->has_fuzzy_skin) ? 0.2 * m_scaled_resolution : m_scaled_resolution; + // we need to process each island separately because we might have different + // extra perimeters for each one + for (const Surface& surface : all_surfaces) { + coord_t bead_width_0 = ext_perimeter_spacing; + // detect how many perimeters must be generated for this island + int loop_number = this->config->wall_loops + surface.extra_perimeters - 1; // 0-indexed loops + int sparse_infill_density = this->config->sparse_infill_density.value; + if (this->config->alternate_extra_wall && this->layer_id % 2 == 1 && !m_spiral_vase && sparse_infill_density > 0) // add alternating extra wall + loop_number++; + + // Set the bottommost layer to be one wall + const bool is_bottom_layer = (this->layer_id == object_config->raft_layers) ? true : false; + if (is_bottom_layer && this->config->only_one_wall_first_layer) + loop_number = 0; + + // Orca: set the topmost layer to be one wall according to the config + const bool is_topmost_layer = (this->upper_slices == nullptr) ? true : false; + if (is_topmost_layer && loop_number > 0 && config->only_one_wall_top) + loop_number = 0; + + auto apply_precise_outer_wall = config->precise_outer_wall; + // Orca: properly adjust offset for the outer wall if precise_outer_wall is enabled. + ExPolygons last = offset_ex(surface.expolygon.simplify_p(surface_simplify_resolution), + apply_precise_outer_wall? -float(ext_perimeter_width - ext_perimeter_spacing ) + : -float(ext_perimeter_width / 2. - ext_perimeter_spacing / 2.)); + + Arachne::WallToolPathsParams input_params = Arachne::make_paths_params(this->layer_id, *object_config, *print_config); + // Set params is_top_or_bottom_layer for adjusting short-wall removal sensitivity. + input_params.is_top_or_bottom_layer = (is_bottom_layer || is_topmost_layer) ? true : false; + + coord_t wall_0_inset = 0; + if (apply_precise_outer_wall) + wall_0_inset = -coord_t(ext_perimeter_width / 2 - ext_perimeter_spacing / 2); + + //PS: One wall top surface for Arachne + ExPolygons top_expolygons; + // Calculate how many inner loops remain when TopSurfaces is selected. + const int inner_loop_number = (config->only_one_wall_top && upper_slices != nullptr) ? loop_number - 1 : -1; + + // Set one perimeter when TopSurfaces is selected. + if (config->only_one_wall_top) + loop_number = 0; + + Arachne::WallToolPathsParams input_params_tmp = input_params; + + Polygons last_p = to_polygons(last); + Arachne::WallToolPaths wallToolPaths(last_p, bead_width_0, perimeter_spacing, coord_t(loop_number + 1), + wall_0_inset, layer_height, input_params_tmp); + std::vector perimeters = wallToolPaths.getToolPaths(); + ExPolygons infill_contour = union_ex(wallToolPaths.getInnerContour()); + + // Check if there are some remaining perimeters to generate (the number of perimeters + // is greater than one together with enabled the single perimeter on top surface feature). + if (inner_loop_number >= 0) { + assert(upper_slices != nullptr); + + // Infill contour bounding box. + BoundingBox infill_contour_bbox = get_extents(infill_contour); + infill_contour_bbox.offset(SCALED_EPSILON); + + coord_t perimeter_width = this->perimeter_flow.scaled_width(); + + // Get top ExPolygons from current infill contour. + Polygons upper_slices_clipped = ClipperUtils::clip_clipper_polygons_with_subject_bbox(*upper_slices, infill_contour_bbox); + top_expolygons = diff_ex(infill_contour, upper_slices_clipped); + + if (!top_expolygons.empty()) { + if (lower_slices != nullptr) { + const float bridge_offset = float(std::max(ext_perimeter_spacing, perimeter_width)); + const Polygons lower_slices_clipped = ClipperUtils::clip_clipper_polygons_with_subject_bbox(*lower_slices, infill_contour_bbox); + const ExPolygons current_slices_bridges = offset_ex(diff_ex(top_expolygons, lower_slices_clipped), bridge_offset); + + // Remove bridges from top surface polygons. + top_expolygons = diff_ex(top_expolygons, current_slices_bridges); + } + + // Filter out areas that are too thin and expand top surface polygons a bit to hide the wall line. + // ORCA: skip if the top surface area is smaller than "min_width_top_surface" + const float top_surface_min_width = std::max(float(ext_perimeter_spacing) / 4.f + scaled(0.00001), float(scale_(config->min_width_top_surface.get_abs_value(unscale_(perimeter_width)))) / 4.f); + // Shrink the polygon to remove the small areas, then expand it back out plus a maragin to hide the wall line a little. + // ORCA: Expand the polygon with half the perimeter width in addition to the contracted amount, + // not the full perimeter width as PS does, to enable thin lettering to print on the top surface without nozzle collisions + // due to thin lines being generated + top_expolygons = offset2_ex(top_expolygons, -top_surface_min_width, top_surface_min_width + float(perimeter_width * 0.85)); + + // Get the not-top ExPolygons (including bridges) from current slices and expanded real top ExPolygons (without bridges). + const ExPolygons not_top_expolygons = diff_ex(infill_contour, top_expolygons); + + // Get final top ExPolygons. + top_expolygons = intersection_ex(top_expolygons, infill_contour); + + const Polygons not_top_polygons = to_polygons(offset_ex(not_top_expolygons,wall_0_inset)); + Arachne::WallToolPaths inner_wall_tool_paths(not_top_polygons, perimeter_spacing, perimeter_spacing, coord_t(inner_loop_number + 1), 0, layer_height, input_params_tmp); + std::vector inner_perimeters = inner_wall_tool_paths.getToolPaths(); + + // Recalculate indexes of inner perimeters before merging them. + if (!perimeters.empty()) { + for (Arachne::VariableWidthLines &inner_perimeter : inner_perimeters) { + if (inner_perimeter.empty()) + continue; + for (Arachne::ExtrusionLine &el : inner_perimeter) + ++el.inset_idx; + } + } + + perimeters.insert(perimeters.end(), inner_perimeters.begin(), inner_perimeters.end()); + infill_contour = union_ex(top_expolygons, inner_wall_tool_paths.getInnerContour()); + } else { + // There is no top surface ExPolygon, so we call Arachne again with parameters + // like when the single perimeter feature is disabled. + Arachne::WallToolPaths no_single_perimeter_tool_paths(last_p, bead_width_0, perimeter_spacing, coord_t(inner_loop_number + 2), wall_0_inset, layer_height, input_params_tmp); + perimeters = no_single_perimeter_tool_paths.getToolPaths(); + infill_contour = union_ex(no_single_perimeter_tool_paths.getInnerContour()); + } + } + //PS + + loop_number = int(perimeters.size()) - 1; + + #ifdef ARACHNE_DEBUG + { + static int iRun = 0; + export_perimeters_to_svg(debug_out_path("arachne-perimeters-%d-%d.svg", layer_id, iRun++), to_polygons(last), perimeters, union_ex(wallToolPaths.getInnerContour())); + } +#endif + + // All closed ExtrusionLine should have the same the first and the last point. + // But in rare cases, Arachne produce ExtrusionLine marked as closed but without + // equal the first and the last point. + assert([&perimeters = std::as_const(perimeters)]() -> bool { + for (const Arachne::VariableWidthLines& perimeter : perimeters) + for (const Arachne::ExtrusionLine& el : perimeter) + if (el.is_closed && el.junctions.front().p != el.junctions.back().p) + return false; + return true; + }()); + + int start_perimeter = int(perimeters.size()) - 1; + int end_perimeter = -1; + int direction = -1; + + bool is_outer_wall_first = + this->config->wall_sequence == WallSequence::OuterInner || + this->config->wall_sequence == WallSequence::InnerOuterInner; + + if (layer_id == 0){ // disable inner outer inner algorithm after the first layer + is_outer_wall_first = + this->config->wall_sequence == WallSequence::OuterInner; + } + if (is_outer_wall_first) { + start_perimeter = 0; + end_perimeter = int(perimeters.size()); + direction = 1; + } + + std::vector all_extrusions; + for (int perimeter_idx = start_perimeter; perimeter_idx != end_perimeter; perimeter_idx += direction) { + if (perimeters[perimeter_idx].empty()) + continue; + for (Arachne::ExtrusionLine& wall : perimeters[perimeter_idx]) + all_extrusions.emplace_back(&wall); + } + + // Find topological order with constraints from extrusions_constrains. + std::vector blocked(all_extrusions.size(), 0); // Value indicating how many extrusions it is blocking (preceding extrusions) an extrusion. + std::vector> blocking(all_extrusions.size()); // Each extrusion contains a vector of extrusions that are blocked by this extrusion. + std::unordered_map map_extrusion_to_idx; + for (size_t idx = 0; idx < all_extrusions.size(); idx++) + map_extrusion_to_idx.emplace(all_extrusions[idx], idx); + + auto extrusions_constrains = Arachne::WallToolPaths::getRegionOrder(all_extrusions, is_outer_wall_first); + for (auto [before, after] : extrusions_constrains) { + auto after_it = map_extrusion_to_idx.find(after); + ++blocked[after_it->second]; + blocking[map_extrusion_to_idx.find(before)->second].emplace_back(after_it->second); + } + + std::vector processed(all_extrusions.size(), false); // Indicate that the extrusion was already processed. + Point current_position = all_extrusions.empty() ? Point::Zero() : all_extrusions.front()->junctions.front().p; // Some starting position. + std::vector ordered_extrusions; // To store our result in. At the end we'll std::swap. + ordered_extrusions.reserve(all_extrusions.size()); + + while (ordered_extrusions.size() < all_extrusions.size()) { + size_t best_candidate = 0; + double best_distance_sqr = std::numeric_limits::max(); + bool is_best_closed = false; + + std::vector available_candidates; + for (size_t candidate = 0; candidate < all_extrusions.size(); ++candidate) { + if (processed[candidate] || blocked[candidate]) + continue; // Not a valid candidate. + available_candidates.push_back(candidate); + } + + std::sort(available_candidates.begin(), available_candidates.end(), [&all_extrusions](const size_t a_idx, const size_t b_idx) -> bool { + return all_extrusions[a_idx]->is_closed < all_extrusions[b_idx]->is_closed; + }); + + for (const size_t candidate_path_idx : available_candidates) { + auto& path = all_extrusions[candidate_path_idx]; + + if (path->junctions.empty()) { // No vertices in the path. Can't find the start position then or really plan it in. Put that at the end. + if (best_distance_sqr == std::numeric_limits::max()) { + best_candidate = candidate_path_idx; + is_best_closed = path->is_closed; + } + continue; + } + + const Point candidate_position = path->junctions.front().p; + double distance_sqr = (current_position - candidate_position).cast().norm(); + if (distance_sqr < best_distance_sqr) { // Closer than the best candidate so far. + if (path->is_closed || (!path->is_closed && best_distance_sqr != std::numeric_limits::max()) || (!path->is_closed && !is_best_closed)) { + best_candidate = candidate_path_idx; + best_distance_sqr = distance_sqr; + is_best_closed = path->is_closed; + } + } + } + + auto& best_path = all_extrusions[best_candidate]; + ordered_extrusions.push_back({ best_path, best_path->is_contour() }); + processed[best_candidate] = true; + for (size_t unlocked_idx : blocking[best_candidate]) + blocked[unlocked_idx]--; + + if (!best_path->junctions.empty()) { //If all paths were empty, the best path is still empty. We don't upate the current position then. + if (best_path->is_closed) + current_position = best_path->junctions[0].p; //We end where we started. + else + current_position = best_path->junctions.back().p; //Pick the other end from where we started. + } + } + + // printf("New Layer: Layer ID %d\n",layer_id); //debug - new layer + if (this->config->wall_sequence == WallSequence::InnerOuterInner && layer_id > 0) { // only enable inner outer inner algorithm after first layer + if (ordered_extrusions.size() > 2) { // 3 walls minimum needed to do inner outer inner ordering + int position = 0; // index to run the re-ordering for multiple external perimeters in a single island. + int arr_i, arr_j = 0; // indexes to run through the walls in the for loops + int outer, first_internal, second_internal, max_internal, current_perimeter; // allocate index values + + // To address any remaining scenarios where the outer perimeter contour is not first on the list as arachne sometimes reorders the perimeters when clustering + // for OI mode that is used the basis for IOI + bringContoursToFront(ordered_extrusions); + std::vector reordered_extrusions; + + // Debug statement to print spacing values: + //printf("External threshold - Ext perimeter: %d Ext spacing: %d Int perimeter: %d Int spacing: %d\n", this->ext_perimeter_flow.scaled_width(),this->ext_perimeter_flow.scaled_spacing(),this->perimeter_flow.scaled_width(), this->perimeter_flow.scaled_spacing()); + + // Expand by 3% to cover rounding issues + const float expand_factor = 1.03f; + + // Get searching thresholds. For an external perimeter we take the external perimeter spacing/2 plus the internal perimeter spacing/2 and expand by the factor + // rounding errors. When precise wall is enabled, the external perimeter full spacing is used. + coord_t threshold_external = (apply_precise_outer_wall) + // Precise outer wall ⇒ use “full external spacing” + ? ( this->ext_perimeter_flow.scaled_spacing() + + this->perimeter_flow.scaled_spacing()/2.0 ) + // Normal ⇒ half ext spacing + half int spacing + : ( this->ext_perimeter_flow.scaled_spacing()/2.0 + + this->perimeter_flow.scaled_spacing()/2.0 ); + threshold_external *= expand_factor; + + // For the intenal perimeter threshold, the distance is the internal perimeter spacing expanded by the factor to cover rounding errors. + coord_t threshold_internal = this->perimeter_flow.scaled_spacing() * expand_factor; + + // Re-order extrusions based on distance + // Alorithm will aggresively optimise for the appearance of the outermost perimeter + ordered_extrusions = reorderPerimetersByProximity(ordered_extrusions,threshold_external,threshold_internal ); + reordered_extrusions = ordered_extrusions; // copy them into the reordered extrusions vector to allow for IOI operations to be performed below without altering the base ordered extrusions list. + + // Now start the sandwich mode wall re-ordering using the reordered_extrusions as the basis + // scan to find the external perimeter, first internal, second internal and last perimeter in the island. + // We then advance the position index to move to the second island and continue until there are no more + // perimeters left. + while (position < reordered_extrusions.size()) { + outer = first_internal = second_internal = current_perimeter = -1; // initialise all index values to -1 + max_internal = reordered_extrusions.size()-1; // initialise the maximum internal perimeter to the last perimeter on the extrusion list + // run through the walls to get the index values that need re-ordering until the first one for each + // is found. Start at "position" index to enable the for loop to iterate for multiple external + // perimeters in a single island + // printf("Reorder Loop. Position %d, extrusion list size: %d, Outer index %d, inner index %d, second inner index %d\n", position, reordered_extrusions.size(),outer,first_internal,second_internal); + for (arr_i = position; arr_i < reordered_extrusions.size(); ++arr_i) { + // printf("Perimeter: extrusion inset index %d, ordered extrusions array position %d\n",reordered_extrusions[arr_i].extrusion->inset_idx, arr_i); + switch (reordered_extrusions[arr_i].extrusion->inset_idx) { + case 0: // external perimeter + if (outer == -1) + outer = arr_i; + break; + case 1: // first internal wall + if (first_internal==-1 && arr_i>outer && outer!=-1){ + first_internal = arr_i; + } + break; + case 2: // second internal wall + if (second_internal == -1 && arr_i > first_internal && outer!=-1){ + second_internal = arr_i; + } + break; + } + if(outer >-1 && first_internal>-1 && reordered_extrusions[arr_i].extrusion->inset_idx == 0){ // found a new external perimeter after we've found at least a first internal perimeter to re-order. + // This means we entered a new island. + arr_i=arr_i-1; //step back one perimeter + max_internal = arr_i; // new maximum internal perimeter is now this as we have found a new external perimeter, hence a new island. + break; // exit the for loop + } + } + + // printf("Layer ID %d, Outer index %d, inner index %d, second inner index %d, maximum internal perimeter %d \n",layer_id,outer,first_internal,second_internal, max_internal); + if (outer > -1 && first_internal > -1 && second_internal > -1) { // found all three perimeters to re-order? If not the perimeters will be processed outside in. + std::vector inner_outer_extrusions; // temporary array to hold extrusions for reordering + inner_outer_extrusions.resize(max_internal - position + 1); // reserve array containing the number of perimeters before a new island. Variables are array indexes hence need to add +1 to convert to position allocations + // printf("Allocated array size %d, max_internal index %d, start position index %d \n",max_internal-position+1,max_internal,position); + + for (arr_j = max_internal; arr_j >=position; --arr_j){ // go inside out towards the external perimeter (perimeters in reverse order) and store all internal perimeters until the first one identified with inset index 2 + if(arr_j >= second_internal){ + //printf("Inside out loop: Mapped perimeter index %d to array position %d\n", arr_j, max_internal-arr_j); + inner_outer_extrusions[max_internal-arr_j] = reordered_extrusions[arr_j]; + current_perimeter++; + } + } + + for (arr_j = position; arr_j < second_internal; ++arr_j){ // go outside in and map the remaining perimeters (external and first internal wall(s)) using the outside in wall order + // printf("Outside in loop: Mapped perimeter index %d to array position %d\n", arr_j, current_perimeter+1); + inner_outer_extrusions[++current_perimeter] = reordered_extrusions[arr_j]; + } + + for(arr_j = position; arr_j <= max_internal; ++arr_j) // replace perimeter array with the new re-ordered array + ordered_extrusions[arr_j] = inner_outer_extrusions[arr_j-position]; + } + // go to the next perimeter from the current position to continue scanning for external walls in the same island + position = arr_i + 1; + } + } + } + + bool steep_overhang_contour = false; + bool steep_overhang_hole = false; + const WallDirection wall_direction = config->wall_direction; + if (wall_direction != WallDirection::Auto) { + // Skip steep overhang detection if wall direction is specified + steep_overhang_contour = true; + steep_overhang_hole = true; + } + if (ExtrusionEntityCollection extrusion_coll = traverse_extrusions(*this, ordered_extrusions, steep_overhang_contour, steep_overhang_hole); !extrusion_coll.empty()) { + // All walls are counter-clockwise initially, so we don't need to reorient it if that's what we want + if (wall_direction != WallDirection::CounterClockwise) { + reorient_perimeters(extrusion_coll, steep_overhang_contour, steep_overhang_hole, + // Reverse internal only if the wall direction is auto + this->config->overhang_reverse_internal_only && wall_direction == WallDirection::Auto); + } + this->loops->append(extrusion_coll); + } + + const coord_t spacing = (perimeters.size() == 1) ? ext_perimeter_spacing2 : perimeter_spacing; + + if (offset_ex(infill_contour, -float(spacing / 2.)).empty()) + infill_contour.clear(); // Infill region is too small, so let's filter it out. + + // create one more offset to be used as boundary for fill + // we offset by half the perimeter spacing (to get to the actual infill boundary) + // and then we offset back and forth by half the infill spacing to only consider the + // non-collapsing regions + coord_t inset = + (loop_number < 0) ? 0 : + (loop_number == 0) ? + // one loop + ext_perimeter_spacing : + // two or more loops? + perimeter_spacing; + coord_t top_inset = inset; + + top_inset = coord_t(scale_(this->config->top_bottom_infill_wall_overlap.get_abs_value(unscale(inset)))); + if(is_topmost_layer || is_bottom_layer) + inset = coord_t(scale_(this->config->top_bottom_infill_wall_overlap.get_abs_value(unscale(inset)))); + else + inset = coord_t(scale_(this->config->infill_wall_overlap.get_abs_value(unscale(inset)))); + + // simplify infill contours according to resolution + Polygons pp; + for (ExPolygon& ex : infill_contour) + ex.simplify_p(m_scaled_resolution, &pp); + ExPolygons not_filled_exp = union_ex(pp); + // collapse too narrow infill areas + const auto min_perimeter_infill_spacing = coord_t(solid_infill_spacing * (1. - INSET_OVERLAP_TOLERANCE)); + + ExPolygons infill_exp = offset2_ex( + not_filled_exp, + float(-min_perimeter_infill_spacing / 2.), + float(inset + min_perimeter_infill_spacing / 2.)); + // append infill areas to fill_surfaces + if (!top_expolygons.empty()) { + infill_exp = union_ex(infill_exp, offset_ex(top_expolygons, double(top_inset))); + } + this->fill_surfaces->append(infill_exp, stInternal); + + apply_extra_perimeters(infill_exp); + + // BBS: get the no-overlap infill expolygons + { + ExPolygons polyWithoutOverlap; + polyWithoutOverlap = offset2_ex( + not_filled_exp, + float(-min_perimeter_infill_spacing / 2.), + float(+min_perimeter_infill_spacing / 2.)); + if (!top_expolygons.empty()) + polyWithoutOverlap = union_ex(polyWithoutOverlap, top_expolygons); + this->fill_no_overlap->insert(this->fill_no_overlap->end(), polyWithoutOverlap.begin(), polyWithoutOverlap.end()); + } + } +} + bool PerimeterGeneratorLoop::is_internal_contour() const { // An internal contour is a contour containing no other contours diff --git a/src/libslic3r/PerimeterGenerator.hpp b/src/libslic3r/PerimeterGenerator.hpp index 733920e310..0b79cc40c2 100644 --- a/src/libslic3r/PerimeterGenerator.hpp +++ b/src/libslic3r/PerimeterGenerator.hpp @@ -16,10 +16,21 @@ struct FuzzySkinConfig coord_t thickness; coord_t point_distance; bool fuzzy_first_layer; + NoiseType noise_type; + double noise_scale; + int noise_octaves; + double noise_persistence; bool operator==(const FuzzySkinConfig& r) const { - return type == r.type && thickness == r.thickness && point_distance == r.point_distance && fuzzy_first_layer == r.fuzzy_first_layer; + return type == r.type + && thickness == r.thickness + && point_distance == r.point_distance + && fuzzy_first_layer == r.fuzzy_first_layer + && noise_type == r.noise_type + && noise_scale == r.noise_scale + && noise_octaves == r.noise_octaves + && noise_persistence == r.noise_persistence; } bool operator!=(const FuzzySkinConfig& r) const { return !(*this == r); } @@ -35,6 +46,10 @@ template<> struct hash boost::hash_combine(seed, std::hash{}(c.thickness)); boost::hash_combine(seed, std::hash{}(c.point_distance)); boost::hash_combine(seed, std::hash{}(c.fuzzy_first_layer)); + boost::hash_combine(seed, std::hash{}(c.noise_type)); + boost::hash_combine(seed, std::hash{}(c.noise_scale)); + boost::hash_combine(seed, std::hash{}(c.noise_octaves)); + boost::hash_combine(seed, std::hash{}(c.noise_persistence)); return seed; } }; @@ -51,6 +66,7 @@ public: const ExPolygons *lower_slices; double layer_height; int layer_id; + coordf_t slice_z; Flow perimeter_flow; Flow ext_perimeter_flow; Flow overhang_flow; @@ -83,6 +99,7 @@ public: const SurfaceCollection* slices, const LayerRegionPtrs *compatible_regions, double layer_height, + coordf_t slice_z, Flow flow, const PrintRegionConfig* config, const PrintObjectConfig* object_config, @@ -98,7 +115,7 @@ public: //BBS ExPolygons* fill_no_overlap) : slices(slices), compatible_regions(compatible_regions), upper_slices(nullptr), lower_slices(nullptr), layer_height(layer_height), - layer_id(-1), perimeter_flow(flow), ext_perimeter_flow(flow), + slice_z(slice_z), layer_id(-1), perimeter_flow(flow), ext_perimeter_flow(flow), overhang_flow(flow), solid_infill_flow(flow), config(config), object_config(object_config), print_config(print_config), m_spiral_vase(spiral_mode), diff --git a/src/libslic3r/Preset.cpp b/src/libslic3r/Preset.cpp index 1906013cbd..a6d6501226 100644 --- a/src/libslic3r/Preset.cpp +++ b/src/libslic3r/Preset.cpp @@ -318,17 +318,27 @@ std::string Preset::remove_suffix_modified(const std::string &name) // Update new extruder fields at the printer profile. void Preset::normalize(DynamicPrintConfig &config) { - // BBS - auto* filament_diameter = dynamic_cast(config.option("filament_diameter")); - if (filament_diameter != nullptr) - // Loaded the FFF Printer settings. Verify, that all extruder dependent values have enough values. - config.set_num_filaments((unsigned int)filament_diameter->values.size()); + size_t n = 1; + if (config.option("single_extruder_multi_material") == nullptr || config.opt_bool("single_extruder_multi_material")) { + // BBS + auto* filament_diameter = dynamic_cast(config.option("filament_diameter")); + if (filament_diameter != nullptr) { + n = filament_diameter->values.size(); + // Loaded the FFF Printer settings. Verify, that all extruder dependent values have enough values. + config.set_num_filaments((unsigned int) n); + } + } else { + auto* nozzle_diameter = dynamic_cast(config.option("nozzle_diameter")); + if (nozzle_diameter != nullptr) { + n = nozzle_diameter->values.size(); + // Loaded the FFF Printer settings. Verify, that all extruder dependent values have enough values. + config.set_num_extruders((unsigned int) n); + } + } if (config.option("filament_diameter") != nullptr) { // This config contains single or multiple filament presets. // Ensure that the filament preset vector options contain the correct number of values. - // BBS - size_t n = (filament_diameter == nullptr) ? 1 : filament_diameter->values.size(); const auto &defaults = FullPrintConfig::defaults(); for (const std::string &key : Preset::filament_options()) { if (key == "compatible_prints" || key == "compatible_printers") @@ -566,9 +576,10 @@ std::string Preset::label(bool no_alias) const bool is_compatible_with_print(const PresetWithVendorProfile &preset, const PresetWithVendorProfile &active_print, const PresetWithVendorProfile &active_printer) { - if (preset.vendor != nullptr && preset.vendor != active_printer.vendor) - // The current profile has a vendor assigned and it is different from the active print's vendor. - return false; + // Orca: we allow cross vendor compatibility + // if (preset.vendor != nullptr && preset.vendor != active_printer.vendor) + // // The current profile has a vendor assigned and it is different from the active print's vendor. + // return false; auto &condition = preset.preset.compatible_prints_condition(); auto *compatible_prints = dynamic_cast(preset.preset.config.option("compatible_prints")); bool has_compatible_prints = compatible_prints != nullptr && ! compatible_prints->values.empty(); @@ -603,9 +614,19 @@ bool is_compatible_with_parent_printer(const PresetWithVendorProfile& preset, co bool is_compatible_with_printer(const PresetWithVendorProfile &preset, const PresetWithVendorProfile &active_printer, const DynamicPrintConfig *extra_config) { - if (preset.vendor != nullptr && preset.vendor != active_printer.vendor) - // The current profile has a vendor assigned and it is different from the active print's vendor. - return false; + // Orca: we allow cross vendor compatibility + // if (preset.vendor != nullptr && preset.vendor != active_printer.vendor) + // // The current profile has a vendor assigned and it is different from the active print's vendor. + // return false; + + // Orca: check excluded printers + if (preset.vendor != nullptr && preset.preset.type == Preset::TYPE_FILAMENT) { + const auto& excluded_printers = preset.preset.m_excluded_from; + const auto excluded = preset.vendor->name == PresetBundle::ORCA_FILAMENT_LIBRARY && + excluded_printers.find(active_printer.preset.name) != excluded_printers.end(); + if (excluded) + return false; + } auto &condition = preset.preset.compatible_printers_condition(); auto *compatible_printers = dynamic_cast(preset.preset.config.option("compatible_printers")); bool has_compatible_printers = compatible_printers != nullptr && ! compatible_printers->values.empty(); @@ -619,10 +640,9 @@ bool is_compatible_with_printer(const PresetWithVendorProfile &preset, const Pre } } return preset.preset.is_default || active_printer.preset.name.empty() || !has_compatible_printers || - std::find(compatible_printers->values.begin(), compatible_printers->values.end(), active_printer.preset.name) != - compatible_printers->values.end() - //BBS - || (!active_printer.preset.is_system && is_compatible_with_parent_printer(preset, active_printer)); + std::find(compatible_printers->values.begin(), compatible_printers->values.end(), active_printer.preset.name) != + compatible_printers->values.end() || + (!active_printer.preset.is_system && is_compatible_with_parent_printer(preset, active_printer)); } bool is_compatible_with_printer(const PresetWithVendorProfile &preset, const PresetWithVendorProfile &active_printer) @@ -747,6 +767,8 @@ BedType Preset::get_default_bed_type(PresetBundle* preset_bundle) return BedType::btPC; } else if (model_id == "C11") { return BedType::btPEI; + }else if (model_id == "Elegoo-CC" || model_id == "Elegoo-C") {//set default bed type to PTE for Elegoo-CC + return BedType::btPTE; } return BedType::btPEI; } @@ -761,27 +783,27 @@ bool Preset::has_cali_lines(PresetBundle* preset_bundle) } static std::vector s_Preset_print_options { - "layer_height", "initial_layer_print_height", "wall_loops", "alternate_extra_wall", "slice_closing_radius", "spiral_mode", "spiral_mode_smooth", "spiral_mode_max_xy_smoothing", "slicing_mode", + "layer_height", "initial_layer_print_height", "wall_loops", "alternate_extra_wall", "slice_closing_radius", "spiral_mode", "spiral_mode_smooth", "spiral_mode_max_xy_smoothing", "spiral_starting_flow_ratio", "spiral_finishing_flow_ratio", "slicing_mode", "top_shell_layers", "top_shell_thickness", "bottom_shell_layers", "bottom_shell_thickness", "extra_perimeters_on_overhangs", "ensure_vertical_shell_thickness", "reduce_crossing_wall", "detect_thin_wall", "detect_overhang_wall", "overhang_reverse", "overhang_reverse_threshold","overhang_reverse_internal_only", "wall_direction", - "seam_position", "staggered_inner_seams", "wall_sequence", "is_infill_first", "sparse_infill_density", "sparse_infill_pattern", "top_surface_pattern", "bottom_surface_pattern", + "seam_position", "staggered_inner_seams", "wall_sequence", "is_infill_first", "sparse_infill_density", "sparse_infill_pattern", "lattice_angle_1", "lattice_angle_2", "top_surface_pattern", "bottom_surface_pattern", "infill_direction", "solid_infill_direction", "rotate_solid_infill_direction", "counterbore_hole_bridging", "minimum_sparse_infill_area", "reduce_infill_retraction","internal_solid_infill_pattern","gap_fill_target", "ironing_type", "ironing_pattern", "ironing_flow", "ironing_speed", "ironing_spacing", "ironing_angle", "ironing_inset", "max_travel_detour_distance", - "fuzzy_skin", "fuzzy_skin_thickness", "fuzzy_skin_point_distance", "fuzzy_skin_first_layer", + "fuzzy_skin", "fuzzy_skin_thickness", "fuzzy_skin_point_distance", "fuzzy_skin_first_layer", "fuzzy_skin_noise_type", "fuzzy_skin_scale", "fuzzy_skin_octaves", "fuzzy_skin_persistence", "max_volumetric_extrusion_rate_slope", "max_volumetric_extrusion_rate_slope_segment_length","extrusion_rate_smoothing_external_perimeter_only", "inner_wall_speed", "outer_wall_speed", "sparse_infill_speed", "internal_solid_infill_speed", "top_surface_speed", "support_speed", "support_object_xy_distance", "support_interface_speed", "bridge_speed", "internal_bridge_speed", "gap_infill_speed", "travel_speed", "travel_speed_z", "initial_layer_speed", "outer_wall_acceleration", "initial_layer_acceleration", "top_surface_acceleration", "default_acceleration", "skirt_type", "skirt_loops", "skirt_speed","min_skirt_length", "skirt_distance", "skirt_start_angle", "skirt_height", "draft_shield", - "brim_width", "brim_object_gap", "brim_type", "brim_ears_max_angle", "brim_ears_detection_length", "enable_support", "support_type", "support_threshold_angle", "enforce_support_layers", + "brim_width", "brim_object_gap", "brim_type", "brim_ears_max_angle", "brim_ears_detection_length", "enable_support", "support_type", "support_threshold_angle", "support_threshold_overlap","enforce_support_layers", "raft_layers", "raft_first_layer_density", "raft_first_layer_expansion", "raft_contact_distance", "raft_expansion", "support_base_pattern", "support_base_pattern_spacing", "support_expansion", "support_style", "independent_support_layer_height", "support_angle", "support_interface_top_layers", "support_interface_bottom_layers", "support_interface_pattern", "support_interface_spacing", "support_interface_loop_pattern", - "support_top_z_distance", "support_on_build_plate_only","support_critical_regions_only", "bridge_no_support", "thick_bridges", "thick_internal_bridges","dont_filter_internal_bridges", "max_bridge_length", "print_sequence", "print_order", "support_remove_small_overhang", + "support_top_z_distance", "support_on_build_plate_only","support_critical_regions_only", "bridge_no_support", "thick_bridges", "thick_internal_bridges","dont_filter_internal_bridges","enable_extra_bridge_layer", "max_bridge_length", "print_sequence", "print_order", "support_remove_small_overhang", "filename_format", "wall_filament", "support_bottom_z_distance", "sparse_infill_filament", "solid_infill_filament", "support_filament", "support_interface_filament","support_interface_not_for_body", "ooze_prevention", "standby_temperature_delta", "preheat_time","preheat_steps", "interface_shells", "line_width", "initial_layer_line_width", @@ -800,11 +822,11 @@ static std::vector s_Preset_print_options { "timelapse_type", "wall_generator", "wall_transition_length", "wall_transition_filter_deviation", "wall_transition_angle", "wall_distribution_count", "min_feature_size", "min_bead_width", "post_process", "min_length_factor", - "small_perimeter_speed", "small_perimeter_threshold","bridge_angle", "filter_out_gap_fill", "travel_acceleration","inner_wall_acceleration", "min_width_top_surface", + "small_perimeter_speed", "small_perimeter_threshold","bridge_angle","internal_bridge_angle", "filter_out_gap_fill", "travel_acceleration","inner_wall_acceleration", "min_width_top_surface", "default_jerk", "outer_wall_jerk", "inner_wall_jerk", "infill_jerk", "top_surface_jerk", "initial_layer_jerk","travel_jerk", "top_solid_infill_flow_ratio","bottom_solid_infill_flow_ratio","only_one_wall_first_layer", "print_flow_ratio", "seam_gap", "role_based_wipe_speed", "wipe_speed", "accel_to_decel_enable", "accel_to_decel_factor", "wipe_on_loops", "wipe_before_external_loop", - "bridge_density", "precise_outer_wall", "overhang_speed_classic", "bridge_acceleration", + "bridge_density","internal_bridge_density", "precise_outer_wall", "overhang_speed_classic", "bridge_acceleration", "sparse_infill_acceleration", "internal_solid_infill_acceleration", "tree_support_adaptive_layer_height", "tree_support_auto_brim", "tree_support_brim_width", "gcode_comments", "gcode_label_objects", "initial_layer_travel_speed", "exclude_object", "slow_down_layers", "infill_anchor", "infill_anchor_max","initial_layer_min_bead_width", @@ -840,7 +862,7 @@ static std::vector s_Preset_filament_options { "filament_wipe_distance", "additional_cooling_fan_speed", "nozzle_temperature_range_low", "nozzle_temperature_range_high", //SoftFever - "enable_pressure_advance", "pressure_advance","adaptive_pressure_advance","adaptive_pressure_advance_model","adaptive_pressure_advance_overhangs", "adaptive_pressure_advance_bridges","chamber_temperature", "filament_shrink","filament_shrinkage_compensation_z", "support_material_interface_fan_speed", "filament_notes" /*,"filament_seam_gap"*/, + "enable_pressure_advance", "pressure_advance","adaptive_pressure_advance","adaptive_pressure_advance_model","adaptive_pressure_advance_overhangs", "adaptive_pressure_advance_bridges","chamber_temperature", "filament_shrink","filament_shrinkage_compensation_z", "support_material_interface_fan_speed","internal_bridge_fan_speed", "filament_notes" /*,"filament_seam_gap"*/, "filament_loading_speed", "filament_loading_speed_start", "filament_unloading_speed", "filament_unloading_speed_start", "filament_toolchange_delay", "filament_cooling_moves", "filament_stamping_loading_speed", "filament_stamping_distance", "filament_cooling_initial_speed", "filament_cooling_final_speed", "filament_ramming_parameters", @@ -1135,7 +1157,7 @@ void PresetCollection::load_presets( if (key_values.find("instantiation") != key_values.end()) preset.is_visible = key_values["instantiation"] != "false"; - //BBS: use inherit config as the base + //Orca: find and use the inherit config as the base Preset* inherit_preset = nullptr; ConfigOption* inherits_config = config.option(BBL_JSON_KEY_INHERITS); @@ -1143,7 +1165,9 @@ void PresetCollection::load_presets( if (inherits_config) { ConfigOptionString * option_str = dynamic_cast (inherits_config); std::string inherits_value = option_str->value; - inherit_preset = this->find_preset(inherits_value, false, true); + // Orca: try to find if the parent preset has been renamed + inherit_preset = this->find_preset2(inherits_value); + } else { ; } @@ -2113,6 +2137,7 @@ bool PresetCollection::clone_presets(std::vector const &presets, auto &preset = new_presets.back(); preset.vendor = nullptr; preset.renamed_from.clear(); + preset.m_excluded_from.clear(); preset.setting_id.clear(); preset.inherits().clear(); preset.is_default = false; @@ -2241,6 +2266,7 @@ void PresetCollection::save_current_preset(const std::string &new_name, bool det preset.inherits().clear(); preset.alias.clear(); preset.renamed_from.clear(); + preset.m_excluded_from.clear(); BOOST_LOG_TRIVIAL(warning) << __FUNCTION__ << boost::format(": save preset %1% , with detach")%new_name; } //BBS: add lock logic for sync preset in background @@ -2268,6 +2294,7 @@ void PresetCollection::save_current_preset(const std::string &new_name, bool det preset.vendor = nullptr; preset.alias.clear(); preset.renamed_from.clear(); + preset.m_excluded_from.clear(); preset.setting_id.clear(); if (detach) { // Clear the link to the parent profile. @@ -2506,15 +2533,41 @@ const std::string& PresetCollection::get_suffix_modified() { // Return a preset by its name. If the preset is active, a temporary copy is returned. // If a preset is not found by its name, null is returned. -Preset* PresetCollection::find_preset(const std::string &name, bool first_visible_if_not_found, bool real) +Preset* PresetCollection::find_preset(const std::string &name, bool first_visible_if_not_found, bool real, bool only_from_library) { Preset key(m_type, name, false); - auto it = this->find_preset_internal(name); + auto it = this->find_preset_internal(name, only_from_library); // Ensure that a temporary copy is returned if the preset found is currently selected. return (it != m_presets.end() && it->name == key.name) ? &this->preset(it - m_presets.begin(), real) : first_visible_if_not_found ? &this->first_visible() : nullptr; } +Preset* PresetCollection::find_preset2(const std::string& name, bool auto_match) +{ + auto preset = find_preset(name,false,true); + if (preset == nullptr) { + auto _name = get_preset_name_renamed(name); + if (_name != nullptr) + preset = find_preset(*_name,false,true); + if (auto_match && preset == nullptr) { + //Orca: one more try, find the most likely preset in OrcaFilamentLibrary + if (name.find("Generic") != std::string::npos) { + // The regex pattern matches an optional prefix ending in '_' then "Generic" followed by the material name. + std::regex re(R"(^(?:.*?\b(?:\w+_)?)(Generic)\b\s+([^@]+?)\s*(?:@.*)?$)"); + auto alter_name = std::regex_replace(name, re, "Generic $2 @System"); + preset = find_preset2(alter_name, false); + // print preset file name + if (preset != nullptr) { + BOOST_LOG_TRIVIAL(debug) << __FUNCTION__ << " " << "Failed to find: " << name + << ". fallback to library preset: " << preset->file; + } + } + } + } + + return preset; +} + // Return index of the first visible preset. Certainly at least the '- default -' preset shall be visible. size_t PresetCollection::first_visible_idx() const { @@ -2849,6 +2902,38 @@ void PresetCollection::update_map_alias_to_profile_name() //std::sort(m_map_alias_to_profile_name.begin(), m_map_alias_to_profile_name.end(), [](auto &l, auto &r) { return l.first < r.first; }); } +void PresetCollection::update_library_profile_excluded_from() +{ + // Orca: Collect all filament presets that has empty compatible_printers and belongs to the Orca Filament Library. + std::map*> excluded_froms; + for (Preset& preset : m_presets) { + if (preset.vendor != nullptr && preset.vendor->name == PresetBundle::ORCA_FILAMENT_LIBRARY) { + // check if the preset has empty compatible_printers + const auto* compatible_printers = dynamic_cast(preset.config.option("compatible_printers")); + if (compatible_printers == nullptr || compatible_printers->values.empty()) + excluded_froms[preset.alias] = &preset.m_excluded_from; + } + } + + // Check all presets that has the same alias as the filament presets with empty compatible_printers in Orca Filament Library. + for (const Preset& preset : m_presets) { + if (preset.vendor == nullptr || preset.vendor->name == PresetBundle::ORCA_FILAMENT_LIBRARY) + continue; + + const auto* compatible_printers = dynamic_cast(preset.config.option("compatible_printers")); + // All profiles in concrete vendor profile shouldn't have empty compatible_printers, but here we check it for safety. + if (compatible_printers == nullptr || compatible_printers->values.empty()) + continue; + auto itr = excluded_froms.find(preset.alias); + if (itr != excluded_froms.end()) { + // Add the printer models to the excluded_from list. + for (const std::string& printer_name : compatible_printers->values) { + itr->second->insert(printer_name); + } + } + } +} + void PresetCollection::update_map_system_profile_renamed() { m_map_system_profile_renamed.clear(); diff --git a/src/libslic3r/Preset.hpp b/src/libslic3r/Preset.hpp index 145ae5b6f7..591eced62c 100644 --- a/src/libslic3r/Preset.hpp +++ b/src/libslic3r/Preset.hpp @@ -3,6 +3,7 @@ #include #include +#include #include #include #include @@ -63,7 +64,8 @@ #define BBL_JSON_KEY_DEFAULT_MATERIALS "default_materials" #define BBL_JSON_KEY_MODEL_ID "model_id" -//BBL: json path +// Orca extension +#define ORCA_JSON_KEY_RENAMED_FROM "renamed_from" namespace Slic3r { @@ -232,6 +234,14 @@ public: // and to match the "inherits" field of user profiles with updated system profiles. std::vector renamed_from; + // Orca: maintain a list of printer models that are excluded from this preset, designed for filaments without compatible_printer defined + // (hence they are visible to all printer models by default) in Orca Filament Library. However, we might have speciliazed filament for + // certain printer models defined in the vendor profile as well, in this case we want to hide this generic preset for these printer models. + std::set m_excluded_from; + + // Orca: flag to indicate if this preset is from Orca Filament Library + bool m_from_orca_filament_lib = false; + //BBS Semver version; // version of preset std::string ini_str; // ini string of preset @@ -591,22 +601,26 @@ public: // Return a preset by its name. If the preset is active, a temporary copy is returned. // If a preset is not found by its name, null is returned. - // BBS return real pointer if set real = true - Preset* find_preset(const std::string &name, bool first_visible_if_not_found = false, bool real = false); - const Preset* find_preset(const std::string &name, bool first_visible_if_not_found = false) const - { return const_cast(this)->find_preset(name, first_visible_if_not_found); } + // return real pointer if set real = true + Preset* find_preset(const std::string& name, bool first_visible_if_not_found = false, bool real = false, bool only_from_library = false); + const Preset* find_preset(const std::string& name, bool first_visible_if_not_found = false) const + { + return const_cast(this)->find_preset(name, first_visible_if_not_found); + } + // Orca: find preset, if not found, keep searching in the renamed history. This is function should only be used when find + // system(parent) presets for custom preset. + Preset* find_preset2(const std::string& name, bool auto_match = true); - size_t first_visible_idx() const; + size_t first_visible_idx() const; // Return index of the first compatible preset. Certainly at least the '- default -' preset shall be compatible. // If one of the prefered_alternates is compatible, select it. - template - size_t first_compatible_idx(PreferedCondition prefered_condition) const + template size_t first_compatible_idx(PreferedCondition prefered_condition) const { - size_t i = m_default_suppressed ? m_num_default_presets : 0; - size_t n = this->m_presets.size(); - size_t i_compatible = n; + size_t i = m_default_suppressed ? m_num_default_presets : 0; + size_t n = this->m_presets.size(); + size_t i_compatible = n; int match_quality = -1; - for (; i < n; ++ i) + for (; i < n; ++i) // Since we use the filament selection from Wizard, it's needed to control the preset visibility too if (m_presets[i].is_compatible && m_presets[i].is_visible) { int this_match_quality = prefered_condition(m_presets[i]); @@ -615,16 +629,16 @@ public: // Better match will not be found. return i; // Store the first compatible profile with highest match quality into i_compatible. - i_compatible = i; + i_compatible = i; match_quality = this_match_quality; } } return (i_compatible == n) ? - // No compatible preset found, return the default preset. - 0 : - // Compatible preset found. - i_compatible; - } + // No compatible preset found, return the default preset. + 0 : + // Compatible preset found. + i_compatible; +} // Return index of the first compatible preset. Certainly at least the '- default -' preset shall be compatible. size_t first_compatible_idx() const { return this->first_compatible_idx([](const Preset&) -> int { return 0; }); } @@ -718,6 +732,10 @@ protected: // Update m_map_system_profile_renamed from loaded system profiles. void update_map_system_profile_renamed(); + // Orca: update m_excluded_from loaded system profiles. + void update_library_profile_excluded_from(); + + void set_custom_preset_alias(Preset &preset); private: @@ -725,13 +743,13 @@ private: // The "-- default -- " preset is always the first, so it needs // to be handled differently. // If a preset does not exist, an iterator is returned indicating where to insert a preset with the same name. - std::deque::iterator find_preset_internal(const std::string &name) + std::deque::iterator find_preset_internal(const std::string &name, bool from_orca_lib_only = false) { auto it = Slic3r::lower_bound_by_predicate(m_presets.begin() + m_num_default_presets, m_presets.end(), [&name](const auto& l) { return l.name < name; }); if (it == m_presets.end() || it->name != name) { // Preset has not been not found in the sorted list of non-default presets. Try the defaults. for (size_t i = 0; i < m_num_default_presets; ++ i) - if (m_presets[i].name == name) { + if (m_presets[i].name == name && (!from_orca_lib_only || m_presets[i].m_from_orca_filament_lib)) { it = m_presets.begin() + i; break; } diff --git a/src/libslic3r/PresetBundle.cpp b/src/libslic3r/PresetBundle.cpp index 039930c387..0f27210b48 100644 --- a/src/libslic3r/PresetBundle.cpp +++ b/src/libslic3r/PresetBundle.cpp @@ -1,6 +1,7 @@ #include #include "PresetBundle.hpp" +#include "PrintConfig.hpp" #include "libslic3r.h" #include "Utils.hpp" #include "Model.hpp" @@ -43,11 +44,12 @@ static std::vector s_project_options { "flush_multiplier", }; -//BBS: add BBL as default -const char *PresetBundle::BBL_BUNDLE = "Custom"; -const char *PresetBundle::BBL_DEFAULT_PRINTER_MODEL = "MyKlipper 0.4 nozzle"; -const char *PresetBundle::BBL_DEFAULT_PRINTER_VARIANT = "0.4"; -const char *PresetBundle::BBL_DEFAULT_FILAMENT = "My Generic PLA"; +//Orca: add custom as default +const char *PresetBundle::ORCA_DEFAULT_BUNDLE = "Custom"; +const char *PresetBundle::ORCA_DEFAULT_PRINTER_MODEL = "MyKlipper 0.4 nozzle"; +const char *PresetBundle::ORCA_DEFAULT_PRINTER_VARIANT = "0.4"; +const char *PresetBundle::ORCA_DEFAULT_FILAMENT = "My Generic PLA"; +const char *PresetBundle::ORCA_FILAMENT_LIBRARY = "OrcaFilamentLibrary"; PresetBundle::PresetBundle() : prints(Preset::TYPE_PRINT, Preset::print_options(), static_cast(FullPrintConfig::defaults())) @@ -1094,7 +1096,7 @@ void PresetBundle::remove_users_preset(AppConfig &config, std::mapconfig.has("printer_model")) { @@ -1162,66 +1164,6 @@ void PresetBundle::remove_users_preset(AppConfig &config, std::map PresetBundle::load_system_presets(ForwardCompatibilitySubstitutionRule compatibility_rule) -{ - //BBS: add config related logs - BOOST_LOG_TRIVIAL(debug) << __FUNCTION__ << boost::format(" enter, compatibility_rule %1%")%compatibility_rule; - if (compatibility_rule == ForwardCompatibilitySubstitutionRule::EnableSystemSilent) - // Loading system presets, don't log substitutions. - compatibility_rule = ForwardCompatibilitySubstitutionRule::EnableSilent; - else if (compatibility_rule == ForwardCompatibilitySubstitutionRule::EnableSilentDisableSystem) - // Loading system presets, throw on unknown option value. - compatibility_rule = ForwardCompatibilitySubstitutionRule::Disable; - - // Here the vendor specific read only Config Bundles are stored. - //BBS: change directory by design - boost::filesystem::path dir = (boost::filesystem::path(data_dir()) / PRESET_SYSTEM_DIR).make_preferred(); - PresetsConfigSubstitutions substitutions; - std::string errors_cummulative; - bool first = true; - for (auto &dir_entry : boost::filesystem::directory_iterator(dir)) - if (Slic3r::is_ini_file(dir_entry)) { - std::string name = dir_entry.path().filename().string(); - // Remove the .ini suffix. - name.erase(name.size() - 4); - try { - // Load the config bundle, flatten it. - if (first) { - // Reset this PresetBundle and load the first vendor config. - append(substitutions, this->load_configbundle(dir_entry.path().string(), PresetBundle::LoadSystem, compatibility_rule).first); - first = false; - } else { - // Load the other vendor configs, merge them with this PresetBundle. - // Report duplicate profiles. - PresetBundle other; - append(substitutions, other.load_configbundle(dir_entry.path().string(), PresetBundle::LoadSystem, compatibility_rule).first); - std::vector duplicates = this->merge_presets(std::move(other)); - if (! duplicates.empty()) { - errors_cummulative += "Vendor configuration file " + name + " contains the following presets with names used by other vendors: "; - for (size_t i = 0; i < duplicates.size(); ++ i) { - if (i > 0) - errors_cummulative += ", "; - errors_cummulative += duplicates[i]; - } - } - } - } catch (const std::runtime_error &err) { - errors_cummulative += err.what(); - errors_cummulative += "\n"; - } - } - if (first) { - // No config bundle loaded, reset. - this->reset(false); - } - - this->update_system_maps(); - //BBS: add config related logs - BOOST_LOG_TRIVIAL(debug) << __FUNCTION__ << boost::format(" finished, errors_cummulative %1%")%errors_cummulative; - return std::make_pair(std::move(substitutions), errors_cummulative); -}*/ //BBS: add json related logic, load system presets from json std::pair PresetBundle::load_system_presets_from_json(ForwardCompatibilitySubstitutionRule compatibility_rule) @@ -1244,45 +1186,61 @@ std::pair PresetBundle::load_system_pre PresetsConfigSubstitutions substitutions; std::string errors_cummulative; bool first = true; - for (auto &dir_entry : boost::filesystem::directory_iterator(dir)) - { + std::vector vendor_names; + // store all vendor names in vendor_names + for (auto& dir_entry : boost::filesystem::directory_iterator(dir)) { std::string vendor_file = dir_entry.path().string(); - if (Slic3r::is_json_file(vendor_file)) { - std::string vendor_name = dir_entry.path().filename().string(); - // Remove the .json suffix. - vendor_name.erase(vendor_name.size() - 5); + if (!Slic3r::is_json_file(vendor_file)) + continue; - if (validation_mode && !vendor_to_validate.empty() && vendor_name != vendor_to_validate) - continue; + std::string vendor_name = dir_entry.path().filename().string(); - try { - // Load the config bundle, flatten it. - if (first) { - // Reset this PresetBundle and load the first vendor config. - append(substitutions, this->load_vendor_configs_from_json(dir.string(), vendor_name, PresetBundle::LoadSystem, compatibility_rule).first); - first = false; - } else { - // Load the other vendor configs, merge them with this PresetBundle. - // Report duplicate profiles. - PresetBundle other; - append(substitutions, other.load_vendor_configs_from_json(dir.string(), vendor_name, PresetBundle::LoadSystem, compatibility_rule).first); - std::vector duplicates = this->merge_presets(std::move(other)); - if (! duplicates.empty()) { - errors_cummulative += "Found duplicated settings in vendor " + vendor_name + "'s json file lists: "; - for (size_t i = 0; i < duplicates.size(); ++ i) { - if (i > 0) - errors_cummulative += ", "; - errors_cummulative += duplicates[i]; - } + // Remove the .json suffix. + vendor_name.erase(vendor_name.size() - 5); + vendor_names.push_back(vendor_name); + } + // Move ORCA_FILAMENT_LIBRARY to the beginning of the list + for (size_t i = 0; i < vendor_names.size(); ++ i) { + if (vendor_names[i] == ORCA_FILAMENT_LIBRARY) { + std::swap(vendor_names[0], vendor_names[i]); + break; + } + } + + for (auto &vendor_name : vendor_names) + { + if (validation_mode && !vendor_to_validate.empty() && vendor_name != vendor_to_validate && vendor_name != ORCA_FILAMENT_LIBRARY) + continue; + + try { + // Load the config bundle, flatten it. + if (first) { + // Reset this PresetBundle and load the first vendor config. + append(substitutions, this->load_vendor_configs_from_json(dir.string(), vendor_name, PresetBundle::LoadSystem, compatibility_rule).first); + first = false; + } else { + // Load the other vendor configs, merge them with this PresetBundle. + // Report duplicate profiles. + PresetBundle other; + append(substitutions, other.load_vendor_configs_from_json(dir.string(), vendor_name, PresetBundle::LoadSystem, compatibility_rule, this).first); + std::vector duplicates = this->merge_presets(std::move(other)); + if (!duplicates.empty()) { + errors_cummulative += "Found duplicated settings in vendor " + vendor_name + "'s json file lists: "; + for (size_t i = 0; i < duplicates.size(); ++i) { + if (i > 0) + errors_cummulative += ", "; + errors_cummulative += duplicates[i]; + ++m_errors; + BOOST_LOG_TRIVIAL(error) << "Found duplicated preset: " + duplicates[i] + " in vendor: " + vendor_name + ": "; } } - } catch (const std::runtime_error &err) { - if (validation_mode) - throw err; - else { - errors_cummulative += err.what(); - errors_cummulative += "\n"; - } + } + } catch (const std::runtime_error &err) { + if (validation_mode) + throw err; + else { + errors_cummulative += err.what(); + errors_cummulative += "\n"; } } } @@ -1443,6 +1401,8 @@ void PresetBundle::update_system_maps() this->sla_prints .update_map_alias_to_profile_name(); this->filaments .update_map_alias_to_profile_name(); this->sla_materials.update_map_alias_to_profile_name(); + + this->filaments.update_library_profile_excluded_from(); } static inline std::string remove_ini_suffix(const std::string &name) @@ -2001,7 +1961,7 @@ std::set PresetBundle::get_printer_names_by_printer_type_and_nozzle if (printer_it->name.find(nozzle_diameter_str) != std::string::npos) printer_names.insert(printer_it->name); } - //assert(printer_names.size() == 1); + assert(printer_names.size() == 1); for (auto& printer_name : printer_names) { BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << " " << __LINE__ << " printer name: " << printer_name; @@ -2411,54 +2371,7 @@ ConfigSubstitutions PresetBundle::load_config_file(const std::string &path, Forw //BBS: add config related logs BOOST_LOG_TRIVIAL(debug) << __FUNCTION__ << boost::format(" can not load config file %1% not from gcode")%path ; throw Slic3r::RuntimeError(std::string("Unknown configuration file: ") + path); - // 1) Try to load the config file into a boost property tree. - /*boost::property_tree::ptree tree; - try { - boost::nowide::ifstream ifs(path); - boost::property_tree::read_ini(ifs, tree); - } catch (const std::ifstream::failure &err) { - throw Slic3r::RuntimeError(std::string("The Config Bundle cannot be loaded: ") + path + "\n\tReason: " + err.what()); - } catch (const boost::property_tree::file_parser_error &err) { - throw Slic3r::RuntimeError(format("Failed loading the Config Bundle \"%1%\": %2% at line %3%", - err.filename(), err.message(), err.line())); - } catch (const std::runtime_error &err) { - throw Slic3r::RuntimeError(std::string("Failed loading the preset file: ") + path + "\n\tReason: " + err.what()); - } - - // 2) Continue based on the type of the configuration file. - ConfigFileType config_file_type = guess_config_file_type(tree); - ConfigSubstitutions config_substitutions; - try { - switch (config_file_type) { - case CONFIG_FILE_TYPE_UNKNOWN: - throw Slic3r::RuntimeError(std::string("Unknown configuration file type: ") + path); - case CONFIG_FILE_TYPE_APP_CONFIG: - throw Slic3r::RuntimeError(std::string("Invalid configuration file: ") + path + ". This is an application config file."); - case CONFIG_FILE_TYPE_CONFIG: - { - // Initialize a config from full defaults. - DynamicPrintConfig config; - config.apply(FullPrintConfig::defaults()); - config_substitutions = config.load(tree, compatibility_rule); - Preset::normalize(config); - load_config_file_config(path, true, std::move(config)); - //BBS: add config related logs - BOOST_LOG_TRIVIAL(debug) << __FUNCTION__ << boost::format(": normal config, finished, got %1% substitutions")%config_substitutions.size(); - return config_substitutions; - } - case CONFIG_FILE_TYPE_CONFIG_BUNDLE: - //BBS: add config related logs - BOOST_LOG_TRIVIAL(debug) << __FUNCTION__ << boost::format(": found config bundle"); - return load_config_file_config_bundle(path, tree, compatibility_rule); - } - } catch (const ConfigurationError &e) { - throw Slic3r::RuntimeError(format("Invalid configuration file %1%: %2%", path, e.what())); - } - - //BBS: add config related logs - BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << boost::format(" finished, should not be here"); - // This shall never happen. Suppres compiler warnings. - assert(false);*/ + return ConfigSubstitutions{}; } @@ -2720,572 +2633,9 @@ void PresetBundle::load_config_file_config(const std::string &name_or_path, bool BOOST_LOG_TRIVIAL(debug) << __FUNCTION__ << boost::format(": finished"); } -// Load the active configuration of a config bundle from a boost property_tree. This is a private method called from load_config_file. -/*ConfigSubstitutions PresetBundle::load_config_file_config_bundle( - const std::string &path, const boost::property_tree::ptree &tree, ForwardCompatibilitySubstitutionRule compatibility_rule) -{ - // 1) Load the config bundle into a temp data. - PresetBundle tmp_bundle; - // Load the config bundle, but don't save the loaded presets to user profile directory, as only the presets marked as active in the loaded preset bundle - // will be loaded into the master PresetBundle and activated. - auto [presets_substitutions, presets_imported] = tmp_bundle.load_configbundle(path, {}, compatibility_rule); - UNUSED(presets_imported); - - std::string bundle_name = std::string(" - ") + boost::filesystem::path(path).filename().string(); - - //BBS: add config related logs - BOOST_LOG_TRIVIAL(debug) << __FUNCTION__ << boost::format(": enter, bundle_name %1%")%bundle_name; - // 2) Extract active configs from the config bundle, copy them and activate them in this bundle. - ConfigSubstitutions config_substitutions; - auto load_one = [&path, &bundle_name, &presets_substitutions = presets_substitutions, &config_substitutions]( - PresetCollection &collection_dst, PresetCollection &collection_src, const std::string &preset_name_src, bool activate) -> std::string { - // If there are substitutions reported for this preset, move them to config_substitutions. - if (auto it = std::find_if(presets_substitutions.begin(), presets_substitutions.end(), [&preset_name_src](const PresetConfigSubstitutions& subs){ return subs.preset_name == preset_name_src; }); - it != presets_substitutions.end() && ! it->substitutions.empty()) - append(config_substitutions, std::move(it->substitutions)); - Preset *preset_src = collection_src.find_preset(preset_name_src, false); - Preset *preset_dst = collection_dst.find_preset(preset_name_src, false); - assert(preset_src != nullptr); - std::string preset_name_dst; - if (preset_dst != nullptr && preset_dst->is_default) { - // No need to copy a default preset, it always exists in collection_dst. - if (activate) - collection_dst.select_preset(0); - return preset_name_src; - } else if (preset_dst != nullptr && preset_src->config == preset_dst->config) { - // Don't save as the config exists in the current bundle and its content is the same. - return preset_name_src; - } else { - // Generate a new unique name. - preset_name_dst = preset_name_src + bundle_name; - Preset *preset_dup = nullptr; - for (size_t i = 1; (preset_dup = collection_dst.find_preset(preset_name_dst, false)) != nullptr; ++ i) { - if (preset_src->config == preset_dup->config) - // The preset has been already copied into collection_dst. - return preset_name_dst; - // Try to generate another name. - char buf[64]; - sprintf(buf, " (%d)", (int)i); - preset_name_dst = preset_name_src + buf + bundle_name; - } - } - assert(! preset_name_dst.empty()); - // Save preset_src->config into collection_dst under preset_name_dst. - // The "compatible_printers" field should not have been exported into a config.ini or a G-code anyway, - // but some of the alpha versions of Slic3r did. - ConfigOption *opt_compatible = preset_src->config.optptr("compatible_printers"); - if (opt_compatible != nullptr) { - assert(opt_compatible->type() == coStrings); - if (opt_compatible->type() == coStrings) - static_cast(opt_compatible)->values.clear(); - } - (collection_dst.type() == Preset::TYPE_FILAMENT ? - collection_dst.load_preset(path, preset_name_dst, preset_src->config, activate) : - // Only move the source config for non filament profiles, as single filament profile may be referenced multiple times. - collection_dst.load_preset(path, preset_name_dst, std::move(preset_src->config), activate)) - .is_external = true; - return preset_name_dst; - }; - load_one(this->prints, tmp_bundle.prints, tmp_bundle.prints .get_selected_preset_name(), true); - load_one(this->sla_prints, tmp_bundle.sla_prints, tmp_bundle.sla_prints .get_selected_preset_name(), true); - load_one(this->filaments, tmp_bundle.filaments, tmp_bundle.filaments .get_selected_preset_name(), true); - load_one(this->sla_materials, tmp_bundle.sla_materials, tmp_bundle.sla_materials.get_selected_preset_name(), true); - load_one(this->printers, tmp_bundle.printers, tmp_bundle.printers .get_selected_preset_name(), true); - this->update_multi_material_filament_presets(); - for (size_t i = 1; i < std::min(tmp_bundle.filament_presets.size(), this->filament_presets.size()); ++ i) - this->filament_presets[i] = load_one(this->filaments, tmp_bundle.filaments, tmp_bundle.filament_presets[i], false); - - this->update_compatible(PresetSelectCompatibleType::Never); - - sort_remove_duplicates(config_substitutions); - - //BBS: add config related logs - BOOST_LOG_TRIVIAL(debug) << __FUNCTION__ << boost::format(": finished, got %1% substitutions")%config_substitutions.size(); - return config_substitutions; -}*/ - -// Process the Config Bundle loaded as a Boost property tree. -// For each print, filament and printer preset (group defined by group_name), apply the inherited presets. -// The presets starting with '*' are considered non-terminal and they are -// removed through the flattening process by this function. -// This function will never fail, but it will produce error messages through boost::log. -// system_profiles will not be flattened, and they will be kept inside the "inherits" field -/*static void flatten_configbundle_hierarchy(boost::property_tree::ptree &tree, const std::string &group_name, const std::vector &system_profiles) -{ - namespace pt = boost::property_tree; - - // 1) For the group given by group_name, initialize the presets. - struct Prst { - Prst(const std::string &name, pt::ptree *node) : name(name), node(node) {} - // Name of this preset. If the name starts with '*', it is an intermediate preset, - // which will not make it into the result. - const std::string name; - // Link to the source boost property tree node, owned by tree. - pt::ptree *node; - // Link to the presets, from which this preset inherits. - std::vector inherits; - // Link to the presets, for which this preset is a direct parent. - std::vector parent_of; - // When running the Kahn's Topological sorting algorithm, this counter is decreased from inherits.size() to zero. - // A cycle is indicated, if the number does not drop to zero after the Kahn's algorithm finishes. - size_t num_incoming_edges_left = 0; - // Sorting by the name, to be used when inserted into std::set. - bool operator==(const Prst &rhs) const { return this->name == rhs.name; } - bool operator< (const Prst &rhs) const { return this->name < rhs.name; } - }; - // Find the presets, store them into a std::map, addressed by their names. - std::set presets; - std::string group_name_preset = group_name + ":"; - for (auto §ion : tree) - if (boost::starts_with(section.first, group_name_preset) && section.first.size() > group_name_preset.size()) - presets.emplace(section.first.substr(group_name_preset.size()), §ion.second); - // Fill in the "inherits" and "parent_of" members, report invalid inheritance fields. - for (const Prst &prst : presets) { - // Parse the list of comma separated values, possibly enclosed in quotes. - std::vector inherits_names; - std::vector inherits_system; - if (Slic3r::unescape_strings_cstyle(prst.node->get("inherits", ""), inherits_names)) { - // Resolve the inheritance by name. - std::vector &inherits_nodes = const_cast(prst).inherits; - for (const std::string &node_name : inherits_names) { - auto it_system = std::lower_bound(system_profiles.begin(), system_profiles.end(), node_name); - if (it_system != system_profiles.end() && *it_system == node_name) { - // Loading a user config budnle, this preset is derived from a system profile. - inherits_system.emplace_back(node_name); - } else { - auto it = presets.find(Prst(node_name, nullptr)); - if (it == presets.end()) - BOOST_LOG_TRIVIAL(error) << "flatten_configbundle_hierarchy: The preset " << prst.name << " inherits an unknown preset \"" << node_name << "\""; - else { - inherits_nodes.emplace_back(const_cast(&(*it))); - inherits_nodes.back()->parent_of.emplace_back(const_cast(&prst)); - } - } - } - } else { - BOOST_LOG_TRIVIAL(error) << "flatten_configbundle_hierarchy: The preset " << prst.name << " has an invalid \"inherits\" field"; - } - // Remove the "inherits" key, it has no meaning outside of the config bundle. - const_cast(prst.node)->erase("inherits"); - if (! inherits_system.empty()) { - // Loaded a user config bundle, where a profile inherits a system profile. - // User profile should be derived from a single system profile only. - assert(inherits_system.size() == 1); - if (inherits_system.size() > 1) - BOOST_LOG_TRIVIAL(error) << "flatten_configbundle_hierarchy: The preset " << prst.name << " inherits from more than single system preset"; - prst.node->put("inherits", Slic3r::escape_string_cstyle(inherits_system.front())); - } - } - - // 2) Create a linear ordering for the directed acyclic graph of preset inheritance. - // https://en.wikipedia.org/wiki/Topological_sorting - // Kahn's algorithm. - std::vector sorted; - { - // Initialize S with the set of all nodes with no incoming edge. - std::deque S; - for (const Prst &prst : presets) - if (prst.inherits.empty()) - S.emplace_back(const_cast(&prst)); - else - const_cast(&prst)->num_incoming_edges_left = prst.inherits.size(); - while (! S.empty()) { - Prst *n = S.front(); - S.pop_front(); - sorted.emplace_back(n); - for (Prst *m : n->parent_of) { - assert(m->num_incoming_edges_left > 0); - if (-- m->num_incoming_edges_left == 0) { - // We have visited all parents of m. - S.emplace_back(m); - } - } - } - if (sorted.size() < presets.size()) { - for (const Prst &prst : presets) - if (prst.num_incoming_edges_left) - BOOST_LOG_TRIVIAL(error) << "flatten_configbundle_hierarchy: The preset " << prst.name << " has cyclic dependencies"; - } - } - - // Apply the dependencies in their topological ordering. - for (Prst *prst : sorted) { - // Merge the preset nodes in their order of application. - // Iterate in a reverse order, so the last change will be placed first in merged. - for (auto it_inherits = prst->inherits.rbegin(); it_inherits != prst->inherits.rend(); ++ it_inherits) - for (auto it = (*it_inherits)->node->begin(); it != (*it_inherits)->node->end(); ++ it) - if (it->first == "renamed_from") { - // Don't inherit "renamed_from" flag, it does not make sense. The "renamed_from" flag only makes sense for a concrete preset. - if (boost::starts_with((*it_inherits)->name, "*")) - BOOST_LOG_TRIVIAL(error) << boost::format("Nonpublic intermediate preset %1% contains a \"renamed_from\" field, which is ignored") % (*it_inherits)->name; - } else if (prst->node->find(it->first) == prst->node->not_found()) - prst->node->add_child(it->first, it->second); - } - - // Remove the "internal" presets from the ptree. These presets are marked with '*'. - group_name_preset += '*'; - for (auto it_section = tree.begin(); it_section != tree.end(); ) { - if (boost::starts_with(it_section->first, group_name_preset) && it_section->first.size() > group_name_preset.size()) - // Remove the "internal" preset from the ptree. - it_section = tree.erase(it_section); - else - // Keep the preset. - ++ it_section; - } -}*/ - -// preset_bundle is set when loading user config bundles, which must not overwrite the system profiles. -/*static void flatten_configbundle_hierarchy(boost::property_tree::ptree &tree, const PresetBundle *preset_bundle) -{ - flatten_configbundle_hierarchy(tree, "print", preset_bundle ? preset_bundle->prints.system_preset_names() : std::vector()); - flatten_configbundle_hierarchy(tree, "filament", preset_bundle ? preset_bundle->filaments.system_preset_names() : std::vector()); - flatten_configbundle_hierarchy(tree, "sla_print", preset_bundle ? preset_bundle->sla_prints.system_preset_names() : std::vector()); - flatten_configbundle_hierarchy(tree, "sla_material", preset_bundle ? preset_bundle->sla_materials.system_preset_names() : std::vector()); - flatten_configbundle_hierarchy(tree, "printer", preset_bundle ? preset_bundle->printers.system_preset_names() : std::vector()); -}*/ - -// Load a config bundle file, into presets and store the loaded presets into separate files -// of the local configuration directory. -/*std::pair PresetBundle::load_configbundle( - const std::string &path, LoadConfigBundleAttributes flags, ForwardCompatibilitySubstitutionRule compatibility_rule) -{ - // Enable substitutions for user config bundle, throw an exception when loading a system profile. - ConfigSubstitutionContext substitution_context { compatibility_rule }; - PresetsConfigSubstitutions substitutions; - - //BBS: add config related logs - BOOST_LOG_TRIVIAL(debug) << __FUNCTION__ << boost::format(" enter, path %1%, compatibility_rule %2%")%path.c_str()%compatibility_rule; - if (flags.has(LoadConfigBundleAttribute::ResetUserProfile) || flags.has(LoadConfigBundleAttribute::LoadSystem)) - // Reset this bundle, delete user profile files if SaveImported. - this->reset(flags.has(LoadConfigBundleAttribute::SaveImported)); - - // 1) Read the complete config file into a boost::property_tree. - namespace pt = boost::property_tree; - pt::ptree tree; - boost::nowide::ifstream ifs(path); - try { - pt::read_ini(ifs, tree); - } catch (const boost::property_tree::ini_parser::ini_parser_error &err) { - throw Slic3r::RuntimeError(format("Failed loading config bundle \"%1%\"\nError: \"%2%\" at line %3%", path, err.message(), err.line()).c_str()); - } - - const VendorProfile *vendor_profile = nullptr; - if (flags.has(LoadConfigBundleAttribute::LoadSystem) || flags.has(LoadConfigBundleAttribute::LoadVendorOnly)) { - auto vp = VendorProfile::from_ini(tree, path); - if (vp.models.size() == 0) { - BOOST_LOG_TRIVIAL(error) << boost::format("Vendor bundle: `%1%`: No printer model defined.") % path; - return std::make_pair(PresetsConfigSubstitutions{}, 0); - } else if (vp.num_variants() == 0) { - BOOST_LOG_TRIVIAL(error) << boost::format("Vendor bundle: `%1%`: No printer variant defined") % path; - return std::make_pair(PresetsConfigSubstitutions{}, 0); - } - vendor_profile = &this->vendors.insert({vp.id, vp}).first->second; - } - - //BBS: add config related logs - if (vendor_profile) - BOOST_LOG_TRIVIAL(debug) << __FUNCTION__ << boost::format(", loaded vendor profile, name %1%, id %2%, version %3%")%vendor_profile->name%vendor_profile->id%vendor_profile->config_version.to_string(); - - if (flags.has(LoadConfigBundleAttribute::LoadVendorOnly)) - return std::make_pair(PresetsConfigSubstitutions{}, 0); - - // 1.5) Flatten the config bundle by applying the inheritance rules. Internal profiles (with names starting with '*') are removed. - // If loading a user config bundle, do not flatten with the system profiles, but keep the "inherits" flag intact. - flatten_configbundle_hierarchy(tree, flags.has(LoadConfigBundleAttribute::LoadSystem) ? nullptr : this); - - // 2) Parse the property_tree, extract the active preset names and the profiles, save them into local config files. - // Parse the obsolete preset names, to be deleted when upgrading from the old configuration structure. - std::vector loaded_prints; - std::vector loaded_filaments; - std::vector loaded_sla_prints; - std::vector loaded_sla_materials; - std::vector loaded_printers; - std::vector loaded_physical_printers; - std::string active_print; - std::vector active_filaments; - std::string active_sla_print; - std::string active_sla_material; - std::string active_printer; - std::string active_physical_printer; - size_t presets_loaded = 0; - size_t ph_printers_loaded = 0; - - for (const auto §ion : tree) { - PresetCollection *presets = nullptr; - std::string preset_name; - PhysicalPrinterCollection *ph_printers = nullptr; - std::string ph_printer_name; - if (boost::starts_with(section.first, "print:")) { - presets = &this->prints; - preset_name = section.first.substr(6); - } else if (boost::starts_with(section.first, "filament:")) { - presets = &this->filaments; - preset_name = section.first.substr(9); - } else if (boost::starts_with(section.first, "sla_print:")) { - presets = &this->sla_prints; - preset_name = section.first.substr(10); - } else if (boost::starts_with(section.first, "sla_material:")) { - presets = &this->sla_materials; - preset_name = section.first.substr(13); - } else if (boost::starts_with(section.first, "printer:")) { - presets = &this->printers; - preset_name = section.first.substr(8); - } else if (boost::starts_with(section.first, "physical_printer:")) { - ph_printers = &this->physical_printers; - ph_printer_name = section.first.substr(17); - } else if (section.first == "presets") { - // Load the names of the active presets. - for (auto &kvp : section.second) { - if (kvp.first == "print") { - active_print = kvp.second.data(); - } else if (boost::starts_with(kvp.first, "filament")) { - int idx = 0; - if (kvp.first == "filament" || sscanf(kvp.first.c_str(), "filament_%d", &idx) == 1) { - if (int(active_filaments.size()) <= idx) - active_filaments.resize(idx + 1, std::string()); - active_filaments[idx] = kvp.second.data(); - } - } else if (kvp.first == "sla_print") { - active_sla_print = kvp.second.data(); - } else if (kvp.first == "sla_material") { - active_sla_material = kvp.second.data(); - } else if (kvp.first == "printer") { - active_printer = kvp.second.data(); - } else if (kvp.first == "physical_printer") { - active_physical_printer = kvp.second.data(); - } - } - } else if (section.first == "obsolete_presets") { - // Parse the names of obsolete presets. These presets will be deleted from user's - // profile directory on installation of this vendor preset. - for (auto &kvp : section.second) { - std::vector *dst = nullptr; - if (kvp.first == "print") - dst = &this->obsolete_presets.prints; - else if (kvp.first == "filament") - dst = &this->obsolete_presets.filaments; - else if (kvp.first == "sla_print") - dst = &this->obsolete_presets.sla_prints; - else if (kvp.first == "sla_material") - dst = &this->obsolete_presets.sla_materials; - else if (kvp.first == "printer") - dst = &this->obsolete_presets.printers; - if (dst) - unescape_strings_cstyle(kvp.second.data(), *dst); - } - } else if (section.first == "settings") { -#ifdef SUPPORT_AUTO_CENTER - // Load the settings. - for (auto &kvp : section.second) { - if (kvp.first == "autocenter") { - } - } -#endif - } else - // Ignore an unknown section. - continue; - if (presets != nullptr) { - // Load the print, filament or printer preset. - const DynamicPrintConfig *default_config = nullptr; - DynamicPrintConfig config; - std::string alias_name; - std::vector renamed_from; - try { - auto parse_config_section = [§ion, &alias_name, &renamed_from, &substitution_context, &path](DynamicPrintConfig &config) { - substitution_context.substitutions.clear(); - for (auto &kvp : section.second) { - if (kvp.first == "alias") - alias_name = kvp.second.data(); - else if (kvp.first == "renamed_from") { - if (! unescape_strings_cstyle(kvp.second.data(), renamed_from)) { - BOOST_LOG_TRIVIAL(error) << "Error in a Vendor Config Bundle \"" << path << "\": The preset \"" << - section.first << "\" contains invalid \"renamed_from\" key, which is being ignored."; - } - } - // Throws on parsing error. For system presets, no substituion is being done, but an exception is thrown. - config.set_deserialize(kvp.first, kvp.second.data(), substitution_context); - } - }; - if (presets == &this->printers) { - // Select the default config based on the printer_technology field extracted from kvp. - DynamicPrintConfig config_src; - parse_config_section(config_src); - default_config = &presets->default_preset_for(config_src).config; - config = *default_config; - config.apply(config_src); - } else { - default_config = &presets->default_preset().config; - config = *default_config; - parse_config_section(config); - } - } catch (const ConfigurationError &e) { - throw ConfigurationError(format("Invalid configuration bundle \"%1%\", section [%2%]: ", path, section.first) + e.what()); - } - Preset::normalize(config); - // Report configuration fields, which are misplaced into a wrong group. - std::string incorrect_keys = Preset::remove_invalid_keys(config, *default_config); - if (! incorrect_keys.empty()) - BOOST_LOG_TRIVIAL(error) << "Error in a Vendor Config Bundle \"" << path << "\": The printer preset \"" << - section.first << "\" contains the following incorrect keys: " << incorrect_keys << ", which were removed"; - if (flags.has(LoadConfigBundleAttribute::LoadSystem) && presets == &printers) { - // Filter out printer presets, which are not mentioned in the vendor profile. - // These presets are considered not installed. - auto printer_model = config.opt_string("printer_model"); - if (printer_model.empty()) { - BOOST_LOG_TRIVIAL(error) << "Error in a Vendor Config Bundle \"" << path << "\": The printer preset \"" << - section.first << "\" defines no printer model, it will be ignored."; - continue; - } - auto printer_variant = config.opt_string("printer_variant"); - if (printer_variant.empty()) { - BOOST_LOG_TRIVIAL(error) << "Error in a Vendor Config Bundle \"" << path << "\": The printer preset \"" << - section.first << "\" defines no printer variant, it will be ignored."; - continue; - } - auto it_model = std::find_if(vendor_profile->models.cbegin(), vendor_profile->models.cend(), - [&](const VendorProfile::PrinterModel &m) { return m.id == printer_model; } - ); - if (it_model == vendor_profile->models.end()) { - BOOST_LOG_TRIVIAL(error) << "Error in a Vendor Config Bundle \"" << path << "\": The printer preset \"" << - section.first << "\" defines invalid printer model \"" << printer_model << "\", it will be ignored."; - continue; - } - auto it_variant = it_model->variant(printer_variant); - if (it_variant == nullptr) { - BOOST_LOG_TRIVIAL(error) << "Error in a Vendor Config Bundle \"" << path << "\": The printer preset \"" << - section.first << "\" defines invalid printer variant \"" << printer_variant << "\", it will be ignored."; - continue; - } - const Preset *preset_existing = presets->find_preset(section.first, false); - if (preset_existing != nullptr) { - BOOST_LOG_TRIVIAL(error) << "Error in a Vendor Config Bundle \"" << path << "\": The printer preset \"" << - section.first << "\" has already been loaded from another Config Bundle."; - continue; - } - } else if (! flags.has(LoadConfigBundleAttribute::LoadSystem)) { - // This is a user config bundle. - const Preset *existing = presets->find_preset(preset_name, false); - if (existing != nullptr) { - if (existing->is_system) { - assert(existing->vendor != nullptr); - BOOST_LOG_TRIVIAL(error) << "Error in a user provided Config Bundle \"" << path << "\": The " << presets->name() << " preset \"" << - existing->name << "\" is a system preset of vendor " << existing->vendor->name << " and it will be ignored."; - continue; - } else { - assert(existing->vendor == nullptr); - BOOST_LOG_TRIVIAL(trace) << "A " << presets->name() << " preset \"" << existing->name << "\" was overwritten with a preset from user Config Bundle \"" << path << "\""; - } - } else { - BOOST_LOG_TRIVIAL(trace) << "A new " << presets->name() << " preset \"" << preset_name << "\" was imported from user Config Bundle \"" << path << "\""; - } - } - // Decide a full path to this .ini file. - auto file_name = boost::algorithm::iends_with(preset_name, ".json") ? preset_name : preset_name + ".json"; - //BBS: change directoties by design - auto file_path = (boost::filesystem::path(data_dir()) /PRESET_SYSTEM_DIR/ presets->section_name() / file_name).make_preferred(); - // Load the preset into the list of presets, save it to disk. - Preset &loaded = presets->load_preset(file_path.string(), preset_name, std::move(config), false); - if (flags.has(LoadConfigBundleAttribute::SaveImported)) - loaded.save(nullptr); - if (flags.has(LoadConfigBundleAttribute::LoadSystem)) { - loaded.is_system = true; - loaded.vendor = vendor_profile; - } - - // Derive the profile logical name aka alias from the preset name if the alias was not stated explicitely. - if (alias_name.empty()) { - size_t end_pos = preset_name.find_first_of("@"); - if (end_pos != std::string::npos) { - alias_name = preset_name.substr(0, end_pos); - if (renamed_from.empty()) - // Add the preset name with the '@' character removed into the "renamed_from" list. - renamed_from.emplace_back(alias_name + preset_name.substr(end_pos + 1)); - boost::trim_right(alias_name); - } - } - if (alias_name.empty()) - loaded.alias = preset_name; - else - loaded.alias = std::move(alias_name); - loaded.renamed_from = std::move(renamed_from); - if (! substitution_context.empty()) - substitutions.push_back({ - preset_name, presets->type(), PresetConfigSubstitutions::Source::ConfigBundle, - std::string(), std::move(substitution_context.substitutions) }); - ++ presets_loaded; - //BBS: add config related logs - BOOST_LOG_TRIVIAL(debug) << __FUNCTION__ << boost::format(", got preset %1%, from %2%")%loaded.name %path; - } - - if (ph_printers != nullptr) { - // Load the physical printer - const DynamicPrintConfig& default_config = ph_printers->default_config(); - DynamicPrintConfig config = default_config; - - substitution_context.substitutions.clear(); - try { - for (auto& kvp : section.second) - config.set_deserialize(kvp.first, kvp.second.data(), substitution_context); - } catch (const ConfigurationError &e) { - throw ConfigurationError(format("Invalid configuration bundle \"%1%\", section [%2%]: ", path, section.first) + e.what()); - } - - // Report configuration fields, which are misplaced into a wrong group. - std::string incorrect_keys = Preset::remove_invalid_keys(config, default_config); - if (!incorrect_keys.empty()) - BOOST_LOG_TRIVIAL(error) << "Error in a Vendor Config Bundle \"" << path << "\": The physical printer \"" << - section.first << "\" contains the following incorrect keys: " << incorrect_keys << ", which were removed"; - - const PhysicalPrinter* ph_printer_existing = ph_printers->find_printer(ph_printer_name, false); - if (ph_printer_existing != nullptr) { - BOOST_LOG_TRIVIAL(error) << "Error in a Vendor Config Bundle \"" << path << "\": The physical printer \"" << - section.first << "\" has already been loaded from another Config Bundle."; - continue; - } - - // Decide a full path to this .ini file. - //BBS: change directoties by design - auto file_name = boost::algorithm::iends_with(ph_printer_name, ".json") ? ph_printer_name : ph_printer_name + ".json"; - auto file_path = (boost::filesystem::path(data_dir())/PRESET_SYSTEM_DIR/"physical_printer" / file_name).make_preferred(); - // Load the preset into the list of presets, save it to disk. - ph_printers->load_printer(file_path.string(), ph_printer_name, std::move(config), false, flags.has(LoadConfigBundleAttribute::SaveImported)); - if (! substitution_context.empty()) - substitutions.push_back({ - ph_printer_name, Preset::TYPE_PHYSICAL_PRINTER, PresetConfigSubstitutions::Source::ConfigBundle, - std::string(), std::move(substitution_context.substitutions) }); - ++ ph_printers_loaded; - } - } - - // 3) Activate the presets and physical printer if any exists. - if (! flags.has(LoadConfigBundleAttribute::LoadSystem)) { - if (! active_print.empty()) - prints.select_preset_by_name(active_print, true); - if (! active_sla_print.empty()) - sla_prints.select_preset_by_name(active_sla_print, true); - if (! active_sla_material.empty()) - sla_materials.select_preset_by_name(active_sla_material, true); - if (! active_printer.empty()) - printers.select_preset_by_name(active_printer, true); - if (! active_physical_printer.empty()) - physical_printers.select_printer(active_physical_printer, active_printer); - // Activate the first filament preset. - if (! active_filaments.empty() && ! active_filaments.front().empty()) - filaments.select_preset_by_name(active_filaments.front(), true); - this->update_multi_material_filament_presets(); - for (size_t i = 0; i < std::min(this->filament_presets.size(), active_filaments.size()); ++ i) - this->filament_presets[i] = filaments.find_preset(active_filaments[i], true)->name; - this->update_compatible(PresetSelectCompatibleType::Never); - } - - //BBS: add config related logs - BOOST_LOG_TRIVIAL(debug) << __FUNCTION__ << boost::format(", finished, presets_loaded %1%, ph_printers_loaded %2%")%presets_loaded %ph_printers_loaded; - return std::make_pair(std::move(substitutions), presets_loaded + ph_printers_loaded); -}*/ - //BBS: Load a config bundle file from json std::pair PresetBundle::load_vendor_configs_from_json( - const std::string &path, const std::string &vendor_name, LoadConfigBundleAttributes flags, ForwardCompatibilitySubstitutionRule compatibility_rule) + const std::string &path, const std::string &vendor_name, LoadConfigBundleAttributes flags, ForwardCompatibilitySubstitutionRule compatibility_rule, const PresetBundle* base_bundle) { // Enable substitutions for user config bundle, throw an exception when loading a system profile. ConfigSubstitutionContext substitution_context { compatibility_rule }; @@ -3494,7 +2844,7 @@ std::pair PresetBundle::load_vendor_configs_ PresetCollection *presets = nullptr; size_t presets_loaded = 0; - auto parse_subfile = [this, path, vendor_name, presets_loaded, current_vendor_profile]( + auto parse_subfile = [this, path, vendor_name, presets_loaded, current_vendor_profile, base_bundle]( ConfigSubstitutionContext& substitution_context, PresetsConfigSubstitutions& substitutions, LoadConfigBundleAttributes& flags, @@ -3502,7 +2852,7 @@ std::pair PresetBundle::load_vendor_configs_ std::map& config_maps, std::map& filament_id_maps, PresetCollection* presets_collection, - size_t& count) -> std::string { + size_t& count, bool is_from_lib = false) -> std::string { std::string subfile = path + "/" + vendor_name + "/" + subfile_iter.second; // Load the print, filament or printer preset. @@ -3518,6 +2868,7 @@ std::pair PresetBundle::load_vendor_configs_ //parse the json elements DynamicPrintConfig config_src; + std::string _renamed_from_str; config_src.load_from_json(subfile, substitution_context, false, key_values, reason); if (!reason.empty()) { ++m_errors; @@ -3526,7 +2877,16 @@ std::pair PresetBundle::load_vendor_configs_ } preset_name = key_values[BBL_JSON_KEY_NAME]; description = key_values[BBL_JSON_KEY_DESCRIPTION]; + if(key_values.find(BBL_JSON_KEY_INSTANTIATION) == key_values.end()) + { + BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << ": Missing instantiation attribute for " << preset_name; + ++m_errors; + } instantiation = key_values[BBL_JSON_KEY_INSTANTIATION]; + if(instantiation != "false" && instantiation != "true"){ + BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << ": Missing instantiation attribute for " << preset_name; + ++m_errors; + } auto setting_it = key_values.find(BBL_JSON_KEY_SETTING_ID); if (setting_it != key_values.end()) setting_id = setting_it->second; @@ -3538,19 +2898,32 @@ std::pair PresetBundle::load_vendor_configs_ if (it1 != key_values.end()) { inherits = it1->second; auto it2 = config_maps.find(inherits); - if (it2 != config_maps.end()) { + default_config = nullptr; + if (it2 != config_maps.end()) default_config = &(it2->second); + if(default_config == nullptr && base_bundle != nullptr) { + auto base_it2 = base_bundle->m_config_maps.find(inherits); + if (base_it2 != base_bundle->m_config_maps.end()) + default_config = &(base_it2->second); + } + if (default_config != nullptr) { if (filament_id.empty() && (presets_collection->type() == Preset::TYPE_FILAMENT)) { auto filament_id_map_iter = filament_id_maps.find(inherits); if (filament_id_map_iter != filament_id_maps.end()) { filament_id = filament_id_map_iter->second; } + if (filament_id.empty() && base_bundle != nullptr) { + auto filament_id_map_iter = base_bundle->m_filament_id_maps.find(inherits); + if (filament_id_map_iter != base_bundle->m_filament_id_maps.end()) { + filament_id = filament_id_map_iter->second; + } + } } } else { ++m_errors; - BOOST_LOG_TRIVIAL(error) << __FUNCTION__<< ": can not find inherits "< PresetBundle::load_vendor_configs_ } if (config.has("alias")) alias_name = (dynamic_cast(config.option("alias")))->value; - if (config.has("renamed_from")) { - const ConfigOptionVectorBase *vec = static_cast(config.option("renamed_from")); - renamed_from = vec->vserialize(); + + if (key_values.find(ORCA_JSON_KEY_RENAMED_FROM) != key_values.end()) { + if (!unescape_strings_cstyle(key_values[ORCA_JSON_KEY_RENAMED_FROM], renamed_from)) { + BOOST_LOG_TRIVIAL(error) << "Error in a Config \"" << path << "\": The preset \"" << preset_name + << "\" contains invalid \"renamed_from\" key, which is being ignored."; + } } Preset::normalize(config); } @@ -3652,6 +3028,7 @@ std::pair PresetBundle::load_vendor_configs_ loaded.description = description; loaded.setting_id = setting_id; loaded.filament_id = filament_id; + loaded.m_from_orca_filament_lib = is_from_lib; BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << " " << __LINE__ << loaded.name << " load filament_id: " << filament_id; if (presets_collection->type() == Preset::TYPE_FILAMENT) { if (filament_id.empty() && "Template" != vendor_name) { @@ -3718,9 +3095,11 @@ std::pair PresetBundle::load_vendor_configs_ presets = &this->filaments; configs.clear(); filament_id_maps.clear(); + const auto is_orca_lib = vendor_name == ORCA_FILAMENT_LIBRARY; for (auto& subfile : filament_subfiles) { - std::string reason = parse_subfile(substitution_context, substitutions, flags, subfile, configs, filament_id_maps, presets, presets_loaded); + std::string reason = parse_subfile(substitution_context, substitutions, flags, subfile, configs, filament_id_maps, presets, + presets_loaded, is_orca_lib); if (!reason.empty()) { ++m_errors; //parse error @@ -3729,6 +3108,10 @@ std::pair PresetBundle::load_vendor_configs_ throw ConfigurationError((boost::format("Failed loading configuration file %1%\nSuggest cleaning the directory %2% firstly") % subfile_path % path).str()); } } + if (is_orca_lib) { + m_config_maps = configs; + m_filament_id_maps = filament_id_maps; + } //3.3) paste the printers presets = &this->printers; @@ -3965,179 +3348,6 @@ void PresetBundle::update_compatible(PresetSelectCompatibleType select_other_pri BOOST_LOG_TRIVIAL(info) << boost::format("update_compatibility for all presets exit"); } -//BBS: add a API to dump current configbundle as default configbundle -/*void PresetBundle::export_current_configbundle(const std::string &path) -{ - boost::nowide::ofstream c; - c.open(path, std::ios::out | std::ios::trunc); - - c << "# generate the configbundle for BBL" << std::endl; - - const Preset& print_selected_preset = this->prints.get_selected_preset(); - const Preset* system_print = NULL; - const Preset& filament_selected_preset = this->filaments.get_selected_preset(); - const Preset* system_filament = NULL; - const Preset& printer_selected_preset = this->printers.get_selected_preset(); - const Preset* system_printer = NULL; - - // Export the print - std::string print_bbl = "@BBL-3DP"; - size_t pos = print_selected_preset.name.find(print_bbl); - if (std::string::npos != pos) - { - std::string system_print_name = print_selected_preset.name.substr(0, pos + print_bbl.size()); - system_print = this->prints.find_preset(system_print_name); - if (system_print) - { - c << std::endl << "[" << this->prints.section_name() << ":" << system_print->name << "]" << std::endl; - for (const std::string &opt_key : print_selected_preset.config.keys()) - { - if (!opt_key.compare("inherits")) - continue; - const ConfigOption *option1 = system_print->config.option(opt_key); - const ConfigOption *option2 = print_selected_preset.config.option(opt_key); - if (option1 && option2 && (*option1 != *option2)) - c << opt_key << " = " << print_selected_preset.config.opt_serialize(opt_key) << std::endl; - } - c << std::endl; - } - } - - // Export the filament - std::string filament_bbl = "@BBL-3DP"; - pos = filament_selected_preset.name.find(filament_bbl); - if (std::string::npos != pos) - { - std::string system_filamant_name = filament_selected_preset.name.substr(0, pos + filament_bbl.size()); - system_filament = this->filaments.find_preset(system_filamant_name); - if (system_filament) - { - c << std::endl << "[" << this->filaments.section_name() << ":" << system_filament->name << "]" << std::endl; - for (const std::string &opt_key : filament_selected_preset.config.keys()) - { - if (!opt_key.compare("inherits")) - continue; - const ConfigOption *option1 = system_filament->config.option(opt_key); - const ConfigOption *option2 = filament_selected_preset.config.option(opt_key); - if (option1 && option2 && (*option1 != *option2)) - c << opt_key << " = " << filament_selected_preset.config.opt_serialize(opt_key) << std::endl; - } - c << std::endl; - } - } - - // Export the printer - std::string printer_bbl = "BBL-3DP-001"; - pos = printer_selected_preset.name.find(printer_bbl); - if (std::string::npos != pos) - { - std::string system_printer_name = printer_selected_preset.name.substr(0, pos + printer_bbl.size()); - system_printer = this->printers.find_preset(system_printer_name); - if (system_printer) - { - c << std::endl << "[" << this->printers.section_name() << ":" << system_printer->name << "]" << std::endl; - for (const std::string &opt_key : printer_selected_preset.config.keys()) - { - c << opt_key << " = " << printer_selected_preset.config.opt_serialize(opt_key) << std::endl; - } - c << std::endl; - } - } - - c.close(); -}*/ - - -//void PresetBundle::export_configbundle(const std::string &path, bool export_system_settings, bool export_physical_printers/* = false*/) -//{ -// boost::nowide::ofstream c; -// c.open(path, std::ios::out | std::ios::trunc); -// -// // Put a comment at the first line including the time stamp and Slic3r version. -// c << "# " << Slic3r::header_slic3r_generated() << std::endl; -// -// // Export the print, filament and printer profiles. -// -// for (const PresetCollection *presets : { -// (const PresetCollection*)&this->prints, (const PresetCollection*)&this->filaments, -// (const PresetCollection*)&this->sla_prints, (const PresetCollection*)&this->sla_materials, -// (const PresetCollection*)&this->printers }) { -// for (const Preset &preset : (*presets)()) { -// //BBS: add project embedded preset logic and refine is_external -// if (preset.is_default || preset.is_project_embedded || (preset.is_system && ! export_system_settings)) -// //if (preset.is_default || preset.is_external || (preset.is_system && ! export_system_settings)) -// // Only export the common presets, not external files or the default preset. -// continue; -// c << std::endl << "[" << presets->section_name() << ":" << preset.name << "]" << std::endl; -// for (const std::string &opt_key : preset.config.keys()) -// c << opt_key << " = " << preset.config.opt_serialize(opt_key) << std::endl; -// } -// } -// -// if (export_physical_printers) { -// for (const PhysicalPrinter& ph_printer : this->physical_printers) { -// c << std::endl << "[physical_printer:" << ph_printer.name << "]" << std::endl; -// for (const std::string& opt_key : ph_printer.config.keys()) -// c << opt_key << " = " << ph_printer.config.opt_serialize(opt_key) << std::endl; -// } -// } -// -// // Export the names of the active presets. -// c << std::endl << "[presets]" << std::endl; -// c << "print = " << this->prints.get_selected_preset_name() << std::endl; -// c << "sla_print = " << this->sla_prints.get_selected_preset_name() << std::endl; -// c << "sla_material = " << this->sla_materials.get_selected_preset_name() << std::endl; -// c << "printer = " << this->printers.get_selected_preset_name() << std::endl; -// for (size_t i = 0; i < this->filament_presets.size(); ++ i) { -// char suffix[64]; -// if (i > 0) -// sprintf(suffix, "_%d", (int)i); -// else -// suffix[0] = 0; -// c << "filament" << suffix << " = " << this->filament_presets[i] << std::endl; -// } -// -// if (export_physical_printers && this->physical_printers.get_selected_idx() >= 0) -// c << "physical_printer = " << this->physical_printers.get_selected_printer_name() << std::endl; -//#if 0 -// // Export the following setting values from the provided setting repository. -// static const char *settings_keys[] = { "autocenter" }; -// c << "[settings]" << std::endl; -// for (size_t i = 0; i < sizeof(settings_keys) / sizeof(settings_keys[0]); ++ i) -// c << settings_keys[i] << " = " << settings.serialize(settings_keys[i]) << std::endl; -//#endif -// -// c.close(); -//} - -//BBS: add export system preset functions -/*void PresetBundle::export_system_configs(const std::string &path) -{ - // Export the print, filament and printer profiles. - for (const PresetCollection *presets : { - (const PresetCollection*)&this->prints, (const PresetCollection*)&this->filaments, - (const PresetCollection*)&this->sla_prints, (const PresetCollection*)&this->sla_materials, - (const PresetCollection*)&this->printers }) { - for (const Preset &preset : (*presets)()) { - if (preset.is_system) - { - // Only export the system presets - boost::nowide::ofstream c; - std::string file_path = path + std::string("\\") + preset.name; - - c.open(file_path, std::ios::out | std::ios::trunc); - - // Put a comment at the first line including the time stamp and Slic3r version. - c << "# " << Slic3r::header_slic3r_generated() << std::endl; - //c << std::endl << "[" << presets->section_name() << ":" << preset.name << "]" << std::endl; - for (const std::string &opt_key : preset.config.keys()) - c << opt_key << " = " << preset.config.opt_serialize(opt_key) << std::endl; - - c.close(); - } - } - } -}*/ std::vector PresetBundle::export_current_configs(const std::string & path, std::function override_confirm, @@ -4200,6 +3410,9 @@ bool PresetBundle::has_errors() const for (auto& preset : filaments) { if (!preset.is_system) continue; + // It's per design that the Orca Filament Library can have the empty compatible_printers. + if(preset.vendor->name == PresetBundle::ORCA_FILAMENT_LIBRARY) + continue; auto* compatible_printers = dynamic_cast(preset.config.option("compatible_printers")); if (compatible_printers == nullptr || compatible_printers->values.empty()) { has_errors = true; diff --git a/src/libslic3r/PresetBundle.hpp b/src/libslic3r/PresetBundle.hpp index da952dde27..58b5941168 100644 --- a/src/libslic3r/PresetBundle.hpp +++ b/src/libslic3r/PresetBundle.hpp @@ -160,7 +160,12 @@ public: // and the system profiles will point to the VendorProfile instances owned by PresetBundle::vendors. VendorMap vendors; - struct ObsoletePresets { + // Orca: for OrcaFilamentLibrary + std::map m_config_maps; + std::map m_filament_id_maps; + + struct ObsoletePresets + { std::vector prints; std::vector sla_prints; std::vector filaments; @@ -212,9 +217,9 @@ public: // Don't do any config substitutions when loading a system profile, perform and report substitutions otherwise. /*std::pair load_configbundle( const std::string &path, LoadConfigBundleAttributes flags, ForwardCompatibilitySubstitutionRule compatibility_rule);*/ - //BBS: add json related logic + //Orca: load config bundle from json, pass the base bundle to support cross vendor inheritance std::pair load_vendor_configs_from_json( - const std::string &path, const std::string &vendor_name, LoadConfigBundleAttributes flags, ForwardCompatibilitySubstitutionRule compatibility_rule); + const std::string &path, const std::string &vendor_name, LoadConfigBundleAttributes flags, ForwardCompatibilitySubstitutionRule compatibility_rule, const PresetBundle* base_bundle = nullptr); // Export a config bundle file containing all the presets and the names of the active presets. //void export_configbundle(const std::string &path, bool export_system_settings = false, bool export_physical_printers = false); @@ -261,11 +266,13 @@ public: std::pair load_system_filaments_json(ForwardCompatibilitySubstitutionRule compatibility_rule); VendorProfile get_custom_vendor_models() const; - //BBS: add BBL as default - static const char *BBL_BUNDLE; - static const char *BBL_DEFAULT_PRINTER_MODEL; - static const char *BBL_DEFAULT_PRINTER_VARIANT; - static const char *BBL_DEFAULT_FILAMENT; + //orca: add 'custom' as default + static const char *ORCA_DEFAULT_BUNDLE; + static const char *ORCA_DEFAULT_PRINTER_MODEL; + static const char *ORCA_DEFAULT_PRINTER_VARIANT; + static const char *ORCA_DEFAULT_FILAMENT; + static const char *ORCA_FILAMENT_LIBRARY; + static std::array types_list(PrinterTechnology pt) { if (pt == ptFFF) diff --git a/src/libslic3r/Print.cpp b/src/libslic3r/Print.cpp index 31f225cfa2..058a48514c 100644 --- a/src/libslic3r/Print.cpp +++ b/src/libslic3r/Print.cpp @@ -193,6 +193,7 @@ bool Print::invalidate_state_by_config_options(const ConfigOptionResolver & /* n "gcode_label_objects", "exclude_object", "support_material_interface_fan_speed", + "internal_bridge_fan_speed", // ORCA: Add support for separate internal bridge fan speed control "single_extruder_multi_material_priming", "activate_air_filtration", "during_print_exhaust_fan_speed", @@ -2595,7 +2596,7 @@ const WipeTowerData &Print::wipe_tower_data(size_t filaments_cnt) const if (!is_step_done(psWipeTower) && filaments_cnt != 0) { double width = m_config.prime_tower_width; double layer_height = 0.2; // hard code layer height - if (m_config.purge_in_prime_tower) { + if (m_config.purge_in_prime_tower && m_config.single_extruder_multi_material) { // Calculating depth should take into account currently set wiping volumes. // For a long time, the initial preview would just use 900/width per toolchange (15mm on a 60mm wide tower) // and it worked well enough. Let's try to do slightly better by accounting for the purging volumes. @@ -2644,7 +2645,7 @@ void Print::_make_wipe_tower() const auto bUseWipeTower2 = is_BBL_printer() ? false : true; // Orca: itertate over wipe_volumes and change the non-zero values to the prime_volume - if (!m_config.purge_in_prime_tower && !is_BBL_printer()) { + if ((!m_config.purge_in_prime_tower || !m_config.single_extruder_multi_material) && !is_BBL_printer()) { for (unsigned int i = 0; i < number_of_extruders; ++i) { for (unsigned int j = 0; j < number_of_extruders; ++j) { if (wipe_volumes[i][j] > 0) { @@ -2823,7 +2824,7 @@ void Print::_make_wipe_tower() if ((first_layer && extruder_id == m_wipe_tower_data.tool_ordering.all_extruders().back()) || extruder_id != current_extruder_id) { float volume_to_wipe = m_config.prime_volume; - if (m_config.purge_in_prime_tower) { + if (m_config.purge_in_prime_tower && m_config.single_extruder_multi_material) { volume_to_wipe = wipe_volumes[current_extruder_id][extruder_id]; // total volume to wipe after this toolchange volume_to_wipe *= m_config.flush_multiplier; // Not all of that can be used for infill purging: diff --git a/src/libslic3r/PrintApply.cpp b/src/libslic3r/PrintApply.cpp index a5cbc3ed34..b7d630c0d5 100644 --- a/src/libslic3r/PrintApply.cpp +++ b/src/libslic3r/PrintApply.cpp @@ -1256,6 +1256,7 @@ Print::ApplyStatus Print::apply(const Model &model, DynamicPrintConfig new_full_ model_volume_list_changed(model_object, model_object_new, ModelVolumeType::SUPPORT_ENFORCER); bool layer_height_ranges_differ = ! layer_height_ranges_equal(model_object.layer_config_ranges, model_object_new.layer_config_ranges, model_object_new.layer_height_profile.empty()); bool model_origin_translation_differ = model_object.origin_translation != model_object_new.origin_translation; + bool brim_points_differ = model_brim_points_data_changed(model_object, model_object_new); auto print_objects_range = print_object_status_db.get_range(model_object); // The list actually can be empty if all instances are out of the print bed. //assert(print_objects_range.begin() != print_objects_range.end()); @@ -1302,6 +1303,10 @@ Print::ApplyStatus Print::apply(const Model &model, DynamicPrintConfig new_full_ } else if (model_custom_seam_data_changed(model_object, model_object_new)) { update_apply_status(this->invalidate_step(psGCodeExport)); } + if (brim_points_differ) { + model_object.brim_points = model_object_new.brim_points; + update_apply_status(this->invalidate_all_steps()); + } } if (! solid_or_modifier_differ) { // Synchronize Object's config. diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index 278cda17c6..1c45054d38 100644 --- a/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp @@ -88,6 +88,7 @@ static t_config_enum_values s_keys_map_PrintHostType { { "obico", htObico }, { "flashforge", htFlashforge }, { "simplyprint", htSimplyPrint }, + { "elegoolink", htElegooLink } }; CONFIG_OPTION_ENUM_DEFINE_STATIC_MAPS(PrintHostType) @@ -123,10 +124,20 @@ static t_config_enum_values s_keys_map_FuzzySkinType { }; CONFIG_OPTION_ENUM_DEFINE_STATIC_MAPS(FuzzySkinType) +static t_config_enum_values s_keys_map_NoiseType { + { "classic", int(NoiseType::Classic) }, + { "perlin", int(NoiseType::Perlin) }, + { "billow", int(NoiseType::Billow) }, + { "ridgedmulti", int(NoiseType::RidgedMulti) }, + { "voronoi", int(NoiseType::Voronoi) } +}; +CONFIG_OPTION_ENUM_DEFINE_STATIC_MAPS(NoiseType) + static t_config_enum_values s_keys_map_InfillPattern { { "concentric", ipConcentric }, { "zig-zag", ipRectilinear }, { "grid", ipGrid }, + { "2dlattice", ip2DLattice }, { "line", ipLine }, { "cubic", ipCubic }, { "triangles", ipTriangles }, @@ -143,7 +154,8 @@ static t_config_enum_values s_keys_map_InfillPattern { { "octagramspiral", ipOctagramSpiral }, { "supportcubic", ipSupportCubic }, { "lightning", ipLightning }, - { "crosshatch", ipCrossHatch} + { "crosshatch", ipCrossHatch}, + { "quartercubic", ipQuarterCubic} }; CONFIG_OPTION_ENUM_DEFINE_STATIC_MAPS(InfillPattern) @@ -274,6 +286,14 @@ static t_config_enum_values s_keys_map_InternalBridgeFilter { }; CONFIG_OPTION_ENUM_DEFINE_STATIC_MAPS(InternalBridgeFilter) +static t_config_enum_values s_keys_map_EnableExtraBridgeLayer { + { "disabled", eblDisabled }, + { "external_bridge_only", eblExternalBridgeOnly }, + { "internal_bridge_only", eblInternalBridgeOnly }, + { "apply_to_all", eblApplyToAll }, +}; +CONFIG_OPTION_ENUM_DEFINE_STATIC_MAPS(EnableExtraBridgeLayer) + // Orca static t_config_enum_values s_keys_map_GapFillTarget { { "everywhere", gftEverywhere }, @@ -308,6 +328,7 @@ static const t_config_enum_values s_keys_map_BrimType = { {"outer_and_inner", btOuterAndInner}, {"auto_brim", btAutoBrim}, // BBS {"brim_ears", btEar}, // Orca + {"painted", btPainted}, // BBS }; CONFIG_OPTION_ENUM_DEFINE_STATIC_MAPS(BrimType) @@ -362,7 +383,7 @@ CONFIG_OPTION_ENUM_DEFINE_STATIC_MAPS(BedType) // BBS static const t_config_enum_values s_keys_map_LayerSeq = { { "Auto", flsAuto }, - { "Customize", flsCutomize }, + { "Customize", flsCustomize }, }; CONFIG_OPTION_ENUM_DEFINE_STATIC_MAPS(LayerSeq) @@ -898,15 +919,19 @@ void PrintConfigDef::init_fff_params() def = this->add("enable_overhang_bridge_fan", coBools); - def->label = L("Force cooling for overhang and bridge"); - def->tooltip = L("Enable this option to optimize part cooling fan speed for overhang and bridge to get better cooling"); + def->label = L("Force cooling for overhangs and bridges"); + def->tooltip = L("Enable this option to allow adjustment of the part cooling fan speed for specifically for overhangs, internal and external " + "bridges. Setting the fan speed specifically for these features can improve overall print quality and reduce warping."); def->mode = comSimple; def->set_default_value(new ConfigOptionBools{ true }); def = this->add("overhang_fan_speed", coInts); - def->label = L("Fan speed for overhang"); - def->tooltip = L("Force part cooling fan to be this speed when printing bridge or overhang wall which has large overhang degree. " - "Forcing cooling for overhang and bridge can get better quality for these part"); + def->label = L("Overhangs and external bridges fan speed"); + def->tooltip = L("Use this part cooling fan speed when printing bridges or overhang walls with an overhang threshold that exceeds " + "the value set in the 'Overhangs cooling threshold' parameter above. Increasing the cooling specifically for overhangs " + "and bridges can improve the overall print quality of these features.\n\n" + "Please note, this fan speed is clamped on the lower end by the minimum fan speed threshold set above. It is also adjusted " + "upwards up to the maximum fan speed threshold when the minimum layer time threshold is not met."); def->sidetext = L("%"); def->min = 0; def->max = 100; @@ -914,10 +939,10 @@ void PrintConfigDef::init_fff_params() def->set_default_value(new ConfigOptionInts { 100 }); def = this->add("overhang_fan_threshold", coEnums); - def->label = L("Cooling overhang threshold"); - def->tooltip = L("Force cooling fan to be specific speed when overhang degree of printed part exceeds this value. " - "Expressed as percentage which indicates how much width of the line without support from lower layer. " - "0% means forcing cooling for all outer wall no matter how much overhang degree"); + def->label = L("Overhang cooling activation threshold"); + def->tooltip = L("When the overhang exceeds this specified threshold, force the cooling fan to run at the 'Overhang Fan Speed' set below. " + "This threshold is expressed as a percentage, indicating the portion of each line's width that is unsupported by the layer " + "beneath it. Setting this value to 0% forces the cooling fan to run for all outer walls, regardless of the overhang degree."); def->sidetext = ""; def->enum_keys_map = &ConfigOptionEnum::get_enum_values(); def->mode = comAdvanced; @@ -936,7 +961,7 @@ void PrintConfigDef::init_fff_params() def->set_default_value(new ConfigOptionEnumsGeneric{ (int)Overhang_threshold_bridge }); def = this->add("bridge_angle", coFloat); - def->label = L("Bridge infill direction"); + def->label = L("External bridge infill direction"); def->category = L("Strength"); def->tooltip = L("Bridging angle override. If left to zero, the bridging angle will be calculated " "automatically. Otherwise the provided angle will be used for external bridges. " @@ -945,11 +970,39 @@ void PrintConfigDef::init_fff_params() def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(0.)); + + // ORCA: Internal bridge angle override + def = this->add("internal_bridge_angle", coFloat); + def->label = L("Internal bridge infill direction"); + def->category = L("Strength"); + def->tooltip = L("Internal bridging angle override. If left to zero, the bridging angle will be calculated " + "automatically. Otherwise the provided angle will be used for internal bridges. " + "Use 180°for zero angle.\n\nIt is recommended to leave it at 0 unless there is a specific model need not to."); + def->sidetext = L("°"); + def->min = 0; + def->mode = comAdvanced; + def->set_default_value(new ConfigOptionFloat(0.)); def = this->add("bridge_density", coPercent); - def->label = L("Bridge density"); + def->label = L("External bridge density"); def->category = L("Strength"); - def->tooltip = L("Density of external bridges. 100% means solid bridge. Default is 100%."); + def->tooltip = L("Controls the density (spacing) of external bridge lines. 100% means solid bridge. Default is 100%.\n\n" + "Lower density external bridges can help improve reliability as there is more space for air to circulate " + "around the extruded bridge, improving its cooling speed."); + def->sidetext = L("%"); + def->min = 10; + def->max = 100; + def->mode = comAdvanced; + def->set_default_value(new ConfigOptionPercent(100)); + + def = this->add("internal_bridge_density", coPercent); + def->label = L("Internal bridge density"); + def->category = L("Strength"); + def->tooltip = L("Controls the density (spacing) of internal bridge lines. 100% means solid bridge. Default is 100%.\n\n " + "Lower density internal bridges can help reduce top surface pillowing and improve internal bridge reliability as there is more space for " + "air to circulate around the extruded bridge, improving its cooling speed. \n\n" + "This option works particularly well when combined with the second internal bridge over infill option, " + "further improving internal bridging structure before solid infill is extruded."); def->sidetext = L("%"); def->min = 10; def->max = 100; @@ -1001,8 +1054,7 @@ void PrintConfigDef::init_fff_params() def = this->add("precise_outer_wall",coBool); def->label = L("Precise wall"); def->category = L("Quality"); - def->tooltip = L("Improve shell precision by adjusting outer wall spacing. This also improves layer consistency.\nNote: This setting " - "will only take effect if the wall sequence is configured to Inner-Outer"); + def->tooltip = L("Improve shell precision by adjusting outer wall spacing. This also improves layer consistency."); def->set_default_value(new ConfigOptionBool{false}); def = this->add("only_one_wall_top", coBool); @@ -1207,12 +1259,14 @@ void PrintConfigDef::init_fff_params() def->enum_keys_map = &ConfigOptionEnum::get_enum_values(); def->enum_values.emplace_back("auto_brim"); def->enum_values.emplace_back("brim_ears"); + def->enum_values.emplace_back("painted"); def->enum_values.emplace_back("outer_only"); def->enum_values.emplace_back("inner_only"); def->enum_values.emplace_back("outer_and_inner"); def->enum_values.emplace_back("no_brim"); def->enum_labels.emplace_back(L("Auto")); def->enum_labels.emplace_back(L("Mouse ear")); + def->enum_labels.emplace_back(L("Painted")); def->enum_labels.emplace_back(L("Outer brim only")); def->enum_labels.emplace_back(L("Inner brim only")); def->enum_labels.emplace_back(L("Outer and inner brim")); @@ -1261,38 +1315,38 @@ void PrintConfigDef::init_fff_params() def = this->add("compatible_printers", coStrings); def->label = L("Compatible machine"); - def->mode = comDevelop; + def->mode = comAdvanced; def->set_default_value(new ConfigOptionStrings()); def->cli = ConfigOptionDef::nocli; //BBS. def = this->add("upward_compatible_machine", coStrings); def->label = L("upward compatible machine"); - def->mode = comDevelop; + def->mode = comAdvanced; def->set_default_value(new ConfigOptionStrings()); def->cli = ConfigOptionDef::nocli; def = this->add("compatible_printers_condition", coString); def->label = L("Compatible machine condition"); - //def->tooltip = L("A boolean expression using the configuration values of an active printer profile. " - // "If this expression evaluates to true, this profile is considered compatible " - // "with the active printer profile."); - def->mode = comDevelop; + def->tooltip = L("A boolean expression using the configuration values of an active printer profile. " + "If this expression evaluates to true, this profile is considered compatible " + "with the active printer profile."); + def->mode = comAdvanced; def->set_default_value(new ConfigOptionString()); def->cli = ConfigOptionDef::nocli; def = this->add("compatible_prints", coStrings); def->label = L("Compatible process profiles"); - def->mode = comDevelop; + def->mode = comAdvanced; def->set_default_value(new ConfigOptionStrings()); def->cli = ConfigOptionDef::nocli; def = this->add("compatible_prints_condition", coString); def->label = L("Compatible process profiles condition"); - //def->tooltip = L("A boolean expression using the configuration values of an active print profile. " - // "If this expression evaluates to true, this profile is considered compatible " - // "with the active print profile."); - def->mode = comDevelop; + def->tooltip = L("A boolean expression using the configuration values of an active print profile. " + "If this expression evaluates to true, this profile is considered compatible " + "with the active print profile."); + def->mode = comAdvanced; def->set_default_value(new ConfigOptionString()); def->cli = ConfigOptionDef::nocli; @@ -1406,7 +1460,7 @@ void PrintConfigDef::init_fff_params() def->set_default_value(new ConfigOptionBool(false)); def = this->add("thick_bridges", coBool); - def->label = L("Thick bridges"); + def->label = L("Thick external bridges"); def->category = L("Quality"); def->tooltip = L("If enabled, bridges are more reliable, can bridge longer distances, but may look worse. " "If disabled, bridges look better but are reliable just for shorter bridged distances."); @@ -1420,23 +1474,53 @@ void PrintConfigDef::init_fff_params() "consider turning it off if you are using large nozzles."); def->mode = comAdvanced; def->set_default_value(new ConfigOptionBool(true)); + + def = this->add("enable_extra_bridge_layer", coEnum); + def->label = L("Extra bridge layers (beta)"); + def->category = L("Quality"); + def->tooltip = L("This option enables the generation of an extra bridge layer over internal and/or external bridges.\n\n" + "Extra bridge layers help improve bridge appearance and reliability, as the solid infill is better supported. " + "This is especially useful in fast printers, where the bridge and solid infill speeds vary greatly. " + "The extra bridge layer results in reduced pillowing on top surfaces, as well as reduced separation of the external bridge layer from its surrounding perimeters.\n\n" + "It is generally recommended to set this to at least 'External bridge only', unless specific issues with the sliced model are found.\n\n" + "Options:\n" + "1. Disabled - does not generate second bridge layers. This is the default and is set for compatibility purposes.\n" + "2. External bridge only - generates second bridge layers for external-facing bridges only. Please note that small bridges that are shorter " + "or narrower than the set number of perimeters will be skipped as they would not benefit from a second bridge layer. If generated, the second bridge layer will be extruded " + "parallel to the first bridge layer to reinforce the bridge strength.\n" + "3. Internal bridge only - generates second bridge layers for internal bridges over sparse infill only. Please note that the internal " + "bridges count towards the top shell layer count of your model. The second internal bridge layer will be extruded as close to perpendicular to the first as possible. If multiple regions " + "in the same island, with varying bridge angles are present, the last region of that island will be selected as the angle reference.\n" + "4. Apply to all - generates second bridge layers for both internal and external-facing bridges\n"); + + def->enum_keys_map = &ConfigOptionEnum::get_enum_values(); + def->enum_values.push_back("disabled"); + def->enum_values.push_back("external_bridge_only"); + def->enum_values.push_back("internal_bridge_only"); + def->enum_values.push_back("apply_to_all"); + def->enum_labels.push_back(L("Disabled")); + def->enum_labels.push_back(L("External bridge only")); + def->enum_labels.push_back(L("Internal bridge only")); + def->enum_labels.push_back(L("Apply to all")); + def->mode = comAdvanced; + def->set_default_value(new ConfigOptionEnum(eblDisabled)); def = this->add("dont_filter_internal_bridges", coEnum); - def->label = L("Filter out small internal bridges (beta)"); + def->label = L("Filter out small internal bridges"); def->category = L("Quality"); - def->tooltip = L("This option can help reducing pillowing on top surfaces in heavily slanted or curved models.\n\n" - "By default, small internal bridges are filtered out and the internal solid infill is printed directly" - " over the sparse infill. This works well in most cases, speeding up printing without too much compromise" - " on top surface quality. \n\nHowever, in heavily slanted or curved models especially where too low sparse" - " infill density is used, this may result in curling of the unsupported solid infill, causing pillowing.\n\n" - "Disabling this option will print internal bridge layer over slightly unsupported internal" - " solid infill. The options below control the amount of filtering, i.e. the amount of internal bridges " + def->tooltip = L("This option can help reduce pillowing on top surfaces in heavily slanted or curved models.\n\n" + "By default, small internal bridges are filtered out and the internal solid infill is printed directly " + "over the sparse infill. This works well in most cases, speeding up printing without too much compromise " + "on top surface quality. \n\nHowever, in heavily slanted or curved models, especially where too low a sparse " + "infill density is used, this may result in curling of the unsupported solid infill, causing pillowing.\n\n" + "Enabling limited filtering or no filtering will print internal bridge layer over slightly unsupported internal " + "solid infill. The options below control the sensitivity of the filtering, i.e. they control where internal bridges are " "created.\n\n" - "Filter - enable this option. This is the default behavior and works well in most cases.\n\n" - "Limited filtering - creates internal bridges on heavily slanted surfaces, while avoiding creating " - "unnecessary internal bridges. This works well for most difficult models.\n\n" - "No filtering - creates internal bridges on every potential internal overhang. This option is useful " - "for heavily slanted top surface models. However, in most cases it creates too many unnecessary bridges."); + "1. Filter - enables this option. This is the default behavior and works well in most cases.\n\n" + "2. Limited filtering - creates internal bridges on heavily slanted surfaces while avoiding unnecessary bridges. " + "This works well for most difficult models.\n\n" + "3. No filtering - creates internal bridges on every potential internal overhang. This option is useful for " + "heavily slanted top surface models; however, in most cases, it creates too many unnecessary bridges."); def->enum_keys_map = &ConfigOptionEnum::get_enum_values(); def->enum_values.push_back("disabled"); def->enum_values.push_back("limited"); @@ -2257,6 +2341,7 @@ void PrintConfigDef::init_fff_params() def->enum_values.push_back("concentric"); def->enum_values.push_back("zig-zag"); def->enum_values.push_back("grid"); + def->enum_values.push_back("2dlattice"); def->enum_values.push_back("line"); def->enum_values.push_back("cubic"); def->enum_values.push_back("triangles"); @@ -2272,9 +2357,11 @@ void PrintConfigDef::init_fff_params() def->enum_values.push_back("supportcubic"); def->enum_values.push_back("lightning"); def->enum_values.push_back("crosshatch"); + def->enum_values.push_back("quartercubic"); def->enum_labels.push_back(L("Concentric")); def->enum_labels.push_back(L("Rectilinear")); def->enum_labels.push_back(L("Grid")); + def->enum_labels.push_back(L("2D Lattice")); def->enum_labels.push_back(L("Line")); def->enum_labels.push_back(L("Cubic")); def->enum_labels.push_back(L("Triangles")); @@ -2290,8 +2377,29 @@ void PrintConfigDef::init_fff_params() def->enum_labels.push_back(L("Support Cubic")); def->enum_labels.push_back(L("Lightning")); def->enum_labels.push_back(L("Cross Hatch")); + def->enum_labels.push_back(L("Quarter Cubic")); def->set_default_value(new ConfigOptionEnum(ipCrossHatch)); + def = this->add("lattice_angle_1", coFloat); + def->label = L("Lattice angle 1"); + def->category = L("Strength"); + def->tooltip = L("The angle of the first set of 2D lattice elements in the Z direction. Zero is vertical."); + def->sidetext = L("°"); + def->min = -75; + def->max = 75; + def->mode = comAdvanced; + def->set_default_value(new ConfigOptionFloat(-45)); + + def = this->add("lattice_angle_2", coFloat); + def->label = L("Lattice angle 2"); + def->category = L("Strength"); + def->tooltip = L("The angle of the second set of 2D lattice elements in the Z direction. Zero is vertical."); + def->sidetext = L("°"); + def->min = -75; + def->max = 75; + def->mode = comAdvanced; + def->set_default_value(new ConfigOptionFloat(45)); + auto def_infill_anchor_min = def = this->add("infill_anchor", coFloatOrPercent); def->label = L("Sparse infill anchor length"); def->category = L("Strength"); @@ -2575,15 +2683,27 @@ void PrintConfigDef::init_fff_params() def = this->add("support_material_interface_fan_speed", coInts); def->label = L("Support interface fan speed"); - def->tooltip = L("This fan speed is enforced during all support interfaces, to be able to weaken their bonding with a high fan speed." - "\nSet to -1 to disable this override." - "\nCan only be overridden by disable_fan_first_layers."); + def->tooltip = L("This part cooling fan speed is applied when printing support interfaces. Setting this parameter to a higher than regular speed " + " reduces the layer binding strength between supports and the supported part, making them easier to separate." + "\nSet to -1 to disable it." + "\nThis setting is overridden by disable_fan_first_layers."); def->sidetext = L("%"); def->min = -1; def->max = 100; def->mode = comAdvanced; def->set_default_value(new ConfigOptionInts{ -1 }); + // ORCA: Add support for separate internal bridge fan speed control + def = this->add("internal_bridge_fan_speed", coInts); + def->label = L("Internal bridges fan speed"); + def->tooltip = L("The part cooling fan speed used for all internal bridges. Set to -1 to use the overhang fan speed settings instead.\n\n" + "Reducing the internal bridges fan speed, compared to your regular fan speed, can help reduce part warping due to excessive " + "cooling applied over a large surface for a prolonged period of time."); + def->sidetext = L("%"); + def->min = -1; + def->max = 100; + def->mode = comAdvanced; + def->set_default_value(new ConfigOptionInts{ -1 }); def = this->add("fuzzy_skin", coEnum); def->label = L("Fuzzy Skin"); @@ -2629,6 +2749,57 @@ void PrintConfigDef::init_fff_params() def->mode = comSimple; def->set_default_value(new ConfigOptionBool(0)); + def = this->add("fuzzy_skin_noise_type", coEnum); + def->label = L("Fuzzy skin noise type"); + def->category = L("Others"); + def->tooltip = L("Noise type to use for fuzzy skin generation.\n" + "Classic: Classic uniform random noise.\n" + "Perlin: Perlin noise, which gives a more consistent texture.\n" + "Billow: Similar to perlin noise, but clumpier.\n" + "Ridged Multifractal: Ridged noise with sharp, jagged features. Creates marble-like textures.\n" + "Voronoi: Divides the surface into voronoi cells, and displaces each one by a random amount. Creates a patchwork texture."); + def->enum_keys_map = &ConfigOptionEnum::get_enum_values(); + def->enum_values.push_back("classic"); + def->enum_values.push_back("perlin"); + def->enum_values.push_back("billow"); + def->enum_values.push_back("ridgedmulti"); + def->enum_values.push_back("voronoi"); + def->enum_labels.push_back(L("Classic")); + def->enum_labels.push_back(L("Perlin")); + def->enum_labels.push_back(L("Billow")); + def->enum_labels.push_back(L("Ridged Multifractal")); + def->enum_labels.push_back(L("Voronoi")); + def->mode = comSimple; + def->set_default_value(new ConfigOptionEnum(NoiseType::Classic)); + + def = this->add("fuzzy_skin_scale", coFloat); + def->label = L("Fuzzy skin feature size"); + def->category = L("Others"); + def->tooltip = L("The base size of the coherent noise features, in mm. Higher values will result in larger features."); + def->sidetext = L("mm"); + def->min = 0.1; + def->max = 500; + def->mode = comAdvanced; + def->set_default_value(new ConfigOptionFloat(1.0)); + + def = this->add("fuzzy_skin_octaves", coInt); + def->label = L("Fuzzy Skin Noise Octaves"); + def->category = L("Others"); + def->tooltip = L("The number of octaves of coherent noise to use. Higher values increase the detail of the noise, but also increase computation time."); + def->min = 1; + def->max = 10; + def->mode = comAdvanced; + def->set_default_value(new ConfigOptionInt(4)); + + def = this->add("fuzzy_skin_persistence", coFloat); + def->label = L("Fuzzy skin noise persistence"); + def->category = L("Others"); + def->tooltip = L("The decay rate for higher octaves of the coherent noise. Lower values will result in smoother noise."); + def->min = 0.01; + def->max = 1; + def->mode = comAdvanced; + def->set_default_value(new ConfigOptionFloat(0.5)); + def = this->add("filter_out_gap_fill", coFloat); def->label = L("Filter out tiny gaps"); def->category = L("Layers and Perimeters"); @@ -3448,6 +3619,7 @@ void PrintConfigDef::init_fff_params() def->enum_values.push_back("obico"); def->enum_values.push_back("flashforge"); def->enum_values.push_back("simplyprint"); + def->enum_values.push_back("elegoolink"); def->enum_labels.push_back("PrusaLink"); def->enum_labels.push_back("PrusaConnect"); def->enum_labels.push_back("Octo/Klipper"); @@ -3461,6 +3633,7 @@ void PrintConfigDef::init_fff_params() def->enum_labels.push_back("Obico"); def->enum_labels.push_back("Flashforge"); def->enum_labels.push_back("SimplyPrint"); + def->enum_labels.push_back("Elegoo Link"); def->mode = comAdvanced; def->cli = ConfigOptionDef::nocli; def->set_default_value(new ConfigOptionEnum(htOctoPrint)); @@ -4254,6 +4427,26 @@ void PrintConfigDef::init_fff_params() def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloatOrPercent(200, true)); + def = this->add("spiral_starting_flow_ratio", coFloat); + def->label = "Spiral starting flow ratio"; + def->tooltip = L("Sets the starting flow ratio while transitioning from the last bottom layer to the spiral. " + "Normally the spiral transition scales the flow ratio from 0% to 100% during the first loop " + "which can in some cases lead to under extrusion at the start of the spiral."); + def->min = 0; + def->max = 1; + def->set_default_value(new ConfigOptionFloat(0)); + def->mode = comAdvanced; + + def = this->add("spiral_finishing_flow_ratio", coFloat); + def->label = "Spiral finishing flow ratio"; + def->tooltip = L("Sets the finishing flow ratio while ending the spiral. " + "Normally the spiral transition scales the flow ratio from 100% to 0% during the last loop " + "which can in some cases lead to under extrusion at the end of the spiral."); + def->min = 0; + def->max = 1; + def->set_default_value(new ConfigOptionFloat(0)); + def->mode = comAdvanced; + def = this->add("timelapse_type", coEnum); def->label = L("Timelapse"); def->tooltip = L("If smooth or traditional mode is selected, a timelapse video will be generated for each print. " @@ -4406,17 +4599,17 @@ void PrintConfigDef::init_fff_params() def = this->add("support_type", coEnum); def->label = L("Type"); def->category = L("Support"); - def->tooltip = L("normal(auto) and tree(auto) is used to generate support automatically. " - "If normal(manual) or tree(manual) is selected, only support enforcers are generated"); + def->tooltip = L("Normal (auto) and Tree (auto) is used to generate support automatically. " + "If Normal (manual) or Tree (manual) is selected, only support enforcers are generated"); def->enum_keys_map = &ConfigOptionEnum::get_enum_values(); def->enum_values.push_back("normal(auto)"); def->enum_values.push_back("tree(auto)"); def->enum_values.push_back("normal(manual)"); def->enum_values.push_back("tree(manual)"); - def->enum_labels.push_back(L("normal(auto)")); - def->enum_labels.push_back(L("tree(auto)")); - def->enum_labels.push_back(L("normal(manual)")); - def->enum_labels.push_back(L("tree(manual)")); + def->enum_labels.push_back(L("Normal (auto)")); + def->enum_labels.push_back(L("Tree (auto)")); + def->enum_labels.push_back(L("Normal (manual)")); + def->enum_labels.push_back(L("Tree (manual)")); def->mode = comSimple; def->set_default_value(new ConfigOptionEnum(stNormalAuto)); @@ -4719,11 +4912,22 @@ void PrintConfigDef::init_fff_params() def->category = L("Support"); def->tooltip = L("Support will be generated for overhangs whose slope angle is below the threshold."); def->sidetext = L("°"); - def->min = 1; + def->min = 0; def->max = 90; def->mode = comSimple; def->set_default_value(new ConfigOptionInt(30)); + def = this->add("support_threshold_overlap", coFloatOrPercent); + def->label = L("Threshold overlap"); + def->category = L("Support"); + def->tooltip = L("If threshold angle is zero, support will be generated for overhangs whose overlap is below the threshold. The smaller this value is, the steeper the overhang that can be printed without support."); + def->sidetext = L("mm or %"); + def->min = 0; + def->max = 100; + def->max_literal = 0.5; + def->mode = comSimple; + def->set_default_value(new ConfigOptionFloatOrPercent(50., true)); + def = this->add("tree_support_branch_angle", coFloat); def->label = L("Tree support branch angle"); def->category = L("Support"); diff --git a/src/libslic3r/PrintConfig.hpp b/src/libslic3r/PrintConfig.hpp index 1f1650699a..02db0c061b 100644 --- a/src/libslic3r/PrintConfig.hpp +++ b/src/libslic3r/PrintConfig.hpp @@ -41,8 +41,16 @@ enum class FuzzySkinType { AllWalls, }; +enum class NoiseType { + Classic, + Perlin, + Billow, + RidgedMulti, + Voronoi, +}; + enum PrintHostType { - htPrusaLink, htPrusaConnect, htOctoPrint, htDuet, htFlashAir, htAstroBox, htRepetier, htMKS, htESP3D, htCrealityPrint, htObico, htFlashforge, htSimplyPrint + htPrusaLink, htPrusaConnect, htOctoPrint, htDuet, htFlashAir, htAstroBox, htRepetier, htMKS, htESP3D, htCrealityPrint, htObico, htFlashforge, htSimplyPrint, htElegooLink }; enum AuthorizationType { @@ -50,9 +58,9 @@ enum AuthorizationType { }; enum InfillPattern : int { - ipConcentric, ipRectilinear, ipGrid, ipLine, ipCubic, ipTriangles, ipStars, ipGyroid, ipHoneycomb, ipAdaptiveCubic, ipMonotonic, ipMonotonicLine, ipAlignedRectilinear, ip3DHoneycomb, + ipConcentric, ipRectilinear, ipGrid, ip2DLattice, ipLine, ipCubic, ipTriangles, ipStars, ipGyroid, ipHoneycomb, ipAdaptiveCubic, ipMonotonic, ipMonotonicLine, ipAlignedRectilinear, ip3DHoneycomb, ipHilbertCurve, ipArchimedeanChords, ipOctagramSpiral, ipSupportCubic, ipSupportBase, ipConcentricInternal, - ipLightning, ipCrossHatch, + ipLightning, ipCrossHatch, ipQuarterCubic, ipCount, }; @@ -179,6 +187,11 @@ enum InternalBridgeFilter { ibfDisabled, ibfLimited, ibfNofilter }; +//Orca +enum EnableExtraBridgeLayer { + eblDisabled, eblExternalBridgeOnly, eblInternalBridgeOnly, eblApplyToAll +}; + //Orca enum GapFillTarget { gftEverywhere, gftTopBottom, gftNowhere @@ -213,6 +226,7 @@ enum SLAPillarConnectionMode { enum BrimType { btAutoBrim, // BBS btEar, // Orca + btPainted, // BBS btOuterOnly, btInnerOnly, btOuterAndInner, @@ -266,7 +280,7 @@ enum BedType { // BBS enum LayerSeq { flsAuto, - flsCutomize + flsCustomize }; // BBS @@ -402,6 +416,7 @@ static std::string get_bed_temp_1st_layer_key(const BedType type) CONFIG_OPTION_ENUM_DECLARE_STATIC_MAPS(PrinterTechnology) CONFIG_OPTION_ENUM_DECLARE_STATIC_MAPS(GCodeFlavor) CONFIG_OPTION_ENUM_DECLARE_STATIC_MAPS(FuzzySkinType) +CONFIG_OPTION_ENUM_DECLARE_STATIC_MAPS(NoiseType) CONFIG_OPTION_ENUM_DECLARE_STATIC_MAPS(InfillPattern) CONFIG_OPTION_ENUM_DECLARE_STATIC_MAPS(IroningType) CONFIG_OPTION_ENUM_DECLARE_STATIC_MAPS(SlicingMode) @@ -818,8 +833,12 @@ PRINT_CONFIG_CLASS_DEFINE( ((ConfigOptionBool, thick_bridges)) ((ConfigOptionBool, thick_internal_bridges)) ((ConfigOptionEnum, dont_filter_internal_bridges)) + // Orca + ((ConfigOptionEnum, enable_extra_bridge_layer)) + ((ConfigOptionPercent, internal_bridge_density)) // Overhang angle threshold. ((ConfigOptionInt, support_threshold_angle)) + ((ConfigOptionFloatOrPercent, support_threshold_overlap)) ((ConfigOptionFloat, support_object_xy_distance)) ((ConfigOptionFloat, xy_hole_compensation)) ((ConfigOptionFloat, xy_contour_compensation)) @@ -897,6 +916,7 @@ PRINT_CONFIG_CLASS_DEFINE( ((ConfigOptionInt, bottom_shell_layers)) ((ConfigOptionFloat, bottom_shell_thickness)) ((ConfigOptionFloat, bridge_angle)) + ((ConfigOptionFloat, internal_bridge_angle)) // ORCA: Internal bridge angle override ((ConfigOptionFloat, bridge_flow)) ((ConfigOptionFloat, internal_bridge_flow)) ((ConfigOptionFloat, bridge_speed)) @@ -912,10 +932,16 @@ PRINT_CONFIG_CLASS_DEFINE( ((ConfigOptionBool, rotate_solid_infill_direction)) ((ConfigOptionPercent, sparse_infill_density)) ((ConfigOptionEnum, sparse_infill_pattern)) + ((ConfigOptionFloat, lattice_angle_1)) + ((ConfigOptionFloat, lattice_angle_2)) ((ConfigOptionEnum, fuzzy_skin)) ((ConfigOptionFloat, fuzzy_skin_thickness)) ((ConfigOptionFloat, fuzzy_skin_point_distance)) ((ConfigOptionBool, fuzzy_skin_first_layer)) + ((ConfigOptionEnum, fuzzy_skin_noise_type)) + ((ConfigOptionFloat, fuzzy_skin_scale)) + ((ConfigOptionInt, fuzzy_skin_octaves)) + ((ConfigOptionFloat, fuzzy_skin_persistence)) ((ConfigOptionFloat, gap_infill_speed)) ((ConfigOptionInt, sparse_infill_filament)) ((ConfigOptionFloatOrPercent, sparse_infill_line_width)) @@ -1265,6 +1291,8 @@ PRINT_CONFIG_CLASS_DERIVED_DEFINE( ((ConfigOptionBool, spiral_mode)) ((ConfigOptionBool, spiral_mode_smooth)) ((ConfigOptionFloatOrPercent, spiral_mode_max_xy_smoothing)) + ((ConfigOptionFloat, spiral_finishing_flow_ratio)) + ((ConfigOptionFloat, spiral_starting_flow_ratio)) ((ConfigOptionInt, standby_temperature_delta)) ((ConfigOptionFloat, preheat_time)) ((ConfigOptionInt, preheat_steps)) @@ -1317,6 +1345,7 @@ PRINT_CONFIG_CLASS_DERIVED_DEFINE( ((ConfigOptionBool, gcode_comments)) ((ConfigOptionInt, slow_down_layers)) ((ConfigOptionInts, support_material_interface_fan_speed)) + ((ConfigOptionInts, internal_bridge_fan_speed)) // ORCA: Add support for separate internal bridge fan speed control // Orca: notes for profiles from PrusaSlicer ((ConfigOptionStrings, filament_notes)) ((ConfigOptionString, notes)) diff --git a/src/libslic3r/PrintObject.cpp b/src/libslic3r/PrintObject.cpp index 01d7e242c9..8697a96af0 100644 --- a/src/libslic3r/PrintObject.cpp +++ b/src/libslic3r/PrintObject.cpp @@ -1019,6 +1019,7 @@ bool PrintObject::invalidate_state_by_config_options( || opt_key == "support_expansion" //|| opt_key == "independent_support_layer_height" // BBS || opt_key == "support_threshold_angle" + || opt_key == "support_threshold_overlap" || opt_key == "raft_expansion" || opt_key == "raft_first_layer_density" || opt_key == "raft_first_layer_expansion" @@ -1078,8 +1079,10 @@ bool PrintObject::invalidate_state_by_config_options( || opt_key == "rotate_solid_infill_direction" || opt_key == "ensure_vertical_shell_thickness" || opt_key == "bridge_angle" + || opt_key == "internal_bridge_angle" // ORCA: Internal bridge angle override //BBS - || opt_key == "bridge_density") { + || opt_key == "bridge_density" + || opt_key == "internal_bridge_density") { steps.emplace_back(posPrepareInfill); } else if ( opt_key == "top_surface_pattern" @@ -1090,7 +1093,9 @@ bool PrintObject::invalidate_state_by_config_options( || opt_key == "infill_anchor_max" || opt_key == "top_surface_line_width" || opt_key == "initial_layer_line_width" - || opt_key == "small_area_infill_flow_compensation") { + || opt_key == "small_area_infill_flow_compensation" + || opt_key == "lattice_angle_1" + || opt_key == "lattice_angle_2") { steps.emplace_back(posInfill); } else if (opt_key == "sparse_infill_pattern") { steps.emplace_back(posPrepareInfill); @@ -1116,6 +1121,10 @@ bool PrintObject::invalidate_state_by_config_options( || opt_key == "fuzzy_skin_thickness" || opt_key == "fuzzy_skin_point_distance" || opt_key == "fuzzy_skin_first_layer" + || opt_key == "fuzzy_skin_noise_type" + || opt_key == "fuzzy_skin_scale" + || opt_key == "fuzzy_skin_octaves" + || opt_key == "fuzzy_skin_persistence" || opt_key == "detect_overhang_wall" || opt_key == "overhang_reverse" || opt_key == "overhang_reverse_internal_only" @@ -1439,7 +1448,111 @@ void PrintObject::detect_surfaces_type() for (size_t i = num_layers; i < m_layers.size(); ++ i) m_layers[i]->m_regions[region_id]->slices.set_type(stInternal); } - + + // ================================================================================================== + // === ORCA: Create a SECOND bridge layer above the first bridge layer. ============================= + // === ORCA: Surface is flagged as a new surface type called stInternalAfterExternalBridge ================== + // === Algorithm only considers stInternal surfaces for re-classification, leaving stTop unaffected = + // ================================================================================================== + // Only iterate to the second-to-last layer, since we look at layer i+1. + if( (this->config().enable_extra_bridge_layer.value == eblApplyToAll) || (this->config().enable_extra_bridge_layer.value == eblExternalBridgeOnly)){ + const size_t last = (m_layers.empty() ? 0 : m_layers.size() - 1); + tbb::parallel_for( tbb::blocked_range(0, last), [this, region_id](const tbb::blocked_range &range) { + for (size_t i = range.begin(); i < range.end(); ++i) { + m_print->throw_if_canceled(); + + // Step 1: Find bridge polygons + // Current layer (i): Search for stBottomBridge polygons. + const Surfaces &bot_surfs = m_layers[i]->m_regions[region_id]->slices.surfaces; + // Next layer (i+1): The layer where stInternal polygons may be re-classified. + Surfaces &top_surfs = m_layers[i + 1]->m_regions[region_id]->slices.surfaces; + + // Step 2: Collect the bridge polygons in the current layer region + Polygons polygons_bridge; + for (const Surface &sbot : bot_surfs) { + if (sbot.surface_type == stBottomBridge) { + polygons_append(polygons_bridge, to_polygons(sbot)); + } + } + + // Step 3: Early termination of loop if no meaningfull bridge found + // No bridge polygons found, continue to the next layer + if (polygons_bridge.empty()) + continue; + + // Step 4: Bottom bridge polygons found - scan and create layer+1 bridge polygon + Surfaces new_surfaces; + new_surfaces.reserve(top_surfs.size()); + + //filtering parameters here. Filter bridges that are less than 2x external walls and 2xN internal perimeters wide. + LayerRegion *layerm = m_layers[i]->m_regions[region_id]; + int number_of_internal_walls = std::max(0, layerm->m_region->config().wall_loops - 1); // number of internal walls, clamped to a minimum of 0 as a safety precaution + float offset_distance = layerm->flow(frExternalPerimeter).scaled_width() // shrink down by external perimeter width (effectively filtering out 2x external perimeters wide bridges) + + ((layerm->flow(frPerimeter).scaled_width()) * number_of_internal_walls); // shrink down by number of external walls * width of them, effectively filtering out 2x internal perimeter wide bridges + // The reason for doing the above filtering is that in pure bridges, the walls are always printed separately as overhang walls. Here we care about the bridge infill which is distinct and is the remainder + // of the bridge area minus the perimeter width on both sides of the bridge itself. + // This would also skip generation of very short dual bridge layers (that are shorter than N perimeters), but these are unecessary as the bridge distance is + // We could reduce this slightly to account for innacurcies in the clipping operation. + // TODO: Monitor GitHub issues to check whether second bridge layers are ommited where they should be generated. If yes, reduce the filtering distance + + // For each surface in the layer above + for (Surface &s_up : top_surfs) { + // Only reclassify stInternal polygons (i.e. what will become later solid and sparse infill) + // Leave the rest unaffected + if (s_up.surface_type != stInternal) { + new_surfaces.push_back(std::move(s_up)); // do not modify them + continue; // continue to the next surface + } + // Identify stInternal polygons that overlap with the bridging polygons on the layer underneath. + Polygons p_up = to_polygons(s_up); + ExPolygons overlap = intersection_ex(p_up, polygons_bridge , ApplySafetyOffset::Yes); + // Filter out the resulting candidate bridges based on size. First perform a shrink operation... + // ...followed by an expand operation to bring them back to the original size (positive offset) + overlap = offset_ex(shrink_ex(overlap, offset_distance), offset_distance); + + // Now subtract the filtered new bridge layer from the remaining internal surfaces to create the new internal surface + ExPolygons remainder = diff_ex(p_up, overlap, ApplySafetyOffset::Yes); + + // Remainder stays as stInternal + ExPolygons unified_remainder = union_safety_offset_ex(remainder); + for (auto &ex_remainder : unified_remainder) { + Surface s(stInternal, ex_remainder); + new_surfaces.push_back(std::move(s)); + } + // Overlap portion becomes the new polygon type - stInternalAfterExternalBridge + ExPolygons unified_overlap = union_safety_offset_ex(overlap); + for (auto &ex_overlap : unified_overlap) { + Surface s(stInternalAfterExternalBridge, ex_overlap); + new_surfaces.push_back(std::move(s)); + } + } + top_surfs = std::move(new_surfaces); + } + } + ); + // ============================================================================================================== + // === ORCA: Interim workaround - for now the new stInternalAfterExternalBridge surfaace is re-classified ============== + // === back to a bottom bridge. As a starting point, this improves bridging reliability as it extrudes ========== + // === two external bridge layers. However, TODO: Implement a new surface type throughout the codebase ========== + // ============================================================================================================== + for (size_t region_id = 0; region_id < this->num_printing_regions(); ++region_id) { + tbb::parallel_for( tbb::blocked_range(0, m_layers.size()), [this, region_id](const tbb::blocked_range &range) { + for (size_t idx_layer = range.begin(); idx_layer < range.end(); ++idx_layer) { + Surfaces &surfs = m_layers[idx_layer]->m_regions[region_id]->slices.surfaces; + for (Surface &s : surfs) { + if (s.surface_type == stInternalAfterExternalBridge) { + s.surface_type = stBottomBridge; + } + } + } + } + ); + } + } + // ============================================================================================================== + // === ORCA: End of second external bridge layer changes ======================================================= + // ============================================================================================================== + BOOST_LOG_TRIVIAL(debug) << "Detecting solid surfaces for region " << region_id << " - clipping in parallel - start"; // Fill in layerm->fill_surfaces by trimming the layerm->slices by the cummulative layerm->fill_surfaces. tbb::parallel_for( @@ -2738,6 +2851,10 @@ void PrintObject::bridge_over_infill() // Also, use Infill pattern that is neutral for angle determination, since there are no infill lines. bridging_angle = determine_bridging_angle(area_to_be_bridge, to_lines(boundary_plines), InfillPattern::ipLine, 0); } + + // ORCA: Internal bridge angle override + if (candidate.region->region().config().internal_bridge_angle > 0) + bridging_angle = candidate.region->region().config().internal_bridge_angle.value * PI / 180.0; // Convert degrees to radians boundary_plines.insert(boundary_plines.end(), anchors.begin(), anchors.end()); if (!lightning_area.empty() && !intersection(area_to_be_bridge, lightning_area).empty()) { @@ -2846,7 +2963,7 @@ void PrintObject::bridge_over_infill() for (const ExPolygon &ep : new_internal_solids) { new_surfaces.emplace_back(stInternalSolid, ep); } - + #ifdef DEBUG_BRIDGE_OVER_INFILL debug_draw("Aensuring_" + std::to_string(reinterpret_cast(®ion)), to_polylines(additional_ensuring), to_polylines(near_perimeters), to_polylines(to_polygons(internal_infills)), @@ -2861,6 +2978,144 @@ void PrintObject::bridge_over_infill() } } }); + + // ====================================================================================================================================== + // === ORCA: Create a second internal bridge layer above the first bridge layer. ======================================================== + // ====================================================================================================================================== + if ( this->m_config.enable_extra_bridge_layer == eblApplyToAll || this->m_config.enable_extra_bridge_layer == eblInternalBridgeOnly) { + // Process layers in parallel up to second-to-last + tbb::parallel_for( tbb::blocked_range(0, this->layers().size() - 1), [this](const tbb::blocked_range& r) { + for (size_t lidx = r.begin(); lidx < r.end(); ++lidx) + { + Layer* layer = this->get_layer(lidx); + + // (A) Gather internal bridging surfaces in the current layer + ExPolygons bridging_current_layer; + double bridging_angle_current = 0.0; + + bool found_any_bridge = false; + float offset_distance = 0.0f; + + // Pick a region from which to retrieve the flow width + if (!layer->regions().empty()) + offset_distance = layer->regions().front()->flow(frSolidInfill).scaled_width(); + + for (LayerRegion *region : layer->regions()) { + for (const Surface &surf : region->fill_surfaces.surfaces) { + if (surf.surface_type == stInternalBridge) { + bridging_current_layer.push_back(surf.expolygon); + bridging_angle_current = surf.bridge_angle; // Store the last bridging angle of the current print object + found_any_bridge = true; + } + } + } + + // If no bridging in this layer, continue with the next + if (!found_any_bridge || bridging_current_layer.empty()) + continue; + + // (B) Shrink-expand to remove trivial bridging areas + bridging_current_layer = offset_ex( shrink_ex(bridging_current_layer, offset_distance), offset_distance ); + + if (bridging_current_layer.empty()) + continue; // all bridging was trivial, continue with the next layer + + // (C) If there is a next layer, identify overlapping stInternal & stInternalSolid areas and convert the overlap to stSecondInternalBridge + if (lidx + 1 < this->layers().size()) { + Layer* next_layer = this->get_layer(lidx + 1); + + // second bridging angle is 90 degrees offset + double bridging_angle_second = bridging_angle_current + M_PI / 2.0; + + // Union the bridging polygons + ExPolygons bridging_union = union_safety_offset_ex(bridging_current_layer); + + for (LayerRegion *next_region : next_layer->regions()) { + Surfaces next_new_surfaces; + Surfaces keep_surfaces; + + // 1) Do not modify (keep) anything that isn't stInternal or stInternalSolid + for (const Surface &s : next_region->fill_surfaces.surfaces) { + if ( (s.surface_type != stInternal) && (s.surface_type != stInternalSolid)) { + keep_surfaces.push_back(s); + } + } + + // 2) For stInternal & stInternalSolid surfaces, check if they overlap bridging_union + // 2a) Gather the next internal stInternalSolid surfaces first + SurfacesPtr next_internals = next_region->fill_surfaces.filter_by_types({ stInternal, stInternalSolid }); + + // 2b) For every collected next stInternalSolid surface + for (const Surface *s : next_internals) { + // Intersect it with the current layer bridging polygons + ExPolygons overlap = intersection_ex( s->expolygon, bridging_union, ApplySafetyOffset::Yes ); + + // Shrink + expand to remove trivial polygons + overlap = offset_ex(shrink_ex(overlap, offset_distance), offset_distance); + + // Overlapping portion found -> this will become the second internal bridge + if (!overlap.empty()) { + // Create second bridge surface + Surface tmp{*s, {}}; + tmp.surface_type = stSecondInternalBridge; + tmp.bridge_angle = bridging_angle_second; + + // Insert bridging polygons + for (const ExPolygon &ep : overlap) { + next_new_surfaces.emplace_back(tmp, ep); + } + + // Calculate leftover polygons = s->expolygon - bridging_union + ExPolygons leftover = diff_ex(s->expolygon, bridging_union, ApplySafetyOffset::Yes); + // Shrink + expand to remove trivial polygons + leftover = offset_ex(shrink_ex(leftover, offset_distance), offset_distance); + + // Leftover polygons exist. Add them to the new surface maintaining their original attributes + if (!leftover.empty()) { + ExPolygons unified_leftover = union_safety_offset_ex(leftover); + for (const ExPolygon &ep : unified_leftover) { + // keep same type / angle as original + Surface leftover_surf{*s, {}}; + leftover_surf.surface_type = s->surface_type; + leftover_surf.bridge_angle = s->bridge_angle; + next_new_surfaces.emplace_back(leftover_surf, ep); + } + } + } + else { // No overlapping portion found + // keep the surface intact + keep_surfaces.push_back(*s); + } + } + + // 3) Rebuild next_region surfaces + next_region->fill_surfaces.surfaces.clear(); + next_region->fill_surfaces.append(keep_surfaces); + next_region->fill_surfaces.append(next_new_surfaces); + } // end for next_layer->regions + } // end if next layer + } + }); // end parallel_for + + // ================================================================================================================= + // === ORCA: Interim workaround - for now the new stSecondInternalBridge surfaces are re-classified =============== + // === back to an internal bridge. As a starting point, this improves bridging reliability as it extrudes ========== + // === two external bridge layers. However, TODO: Implement a new surface type throughout the codebase ============= + // ================================================================================================================= + for (size_t lidx = 0; lidx < this->layers().size(); ++lidx) { + Layer* layer = this->get_layer(lidx); + for (LayerRegion* region : layer->regions()) { + for (Surface &surf : region->fill_surfaces.surfaces) { + if (surf.surface_type == stSecondInternalBridge) { + surf.surface_type = stInternalBridge; + } + } + } + } + } + // =========================================================================================== + // === ORCA: End of second bridging pass ===================================================== + // =========================================================================================== BOOST_LOG_TRIVIAL(info) << "Bridge over infill - End" << log_memory_info(); @@ -3494,6 +3749,7 @@ void PrintObject::combine_infill() ((infill_pattern == ipRectilinear || infill_pattern == ipMonotonic || infill_pattern == ipGrid || + infill_pattern == ip2DLattice || infill_pattern == ipLine || infill_pattern == ipHoneycomb) ? 1.5f : 0.5f) * layerms.back()->flow(frSolidInfill).scaled_width(); diff --git a/src/libslic3r/Support/SupportMaterial.cpp b/src/libslic3r/Support/SupportMaterial.cpp index b022607bf7..3050bd7f6e 100644 --- a/src/libslic3r/Support/SupportMaterial.cpp +++ b/src/libslic3r/Support/SupportMaterial.cpp @@ -4,7 +4,7 @@ #include "Layer.hpp" #include "Print.hpp" #include "SupportMaterial.hpp" -#include "Fill/FillBase.hpp" +#include "SupportCommon.hpp" #include "Geometry.hpp" #include "Point.hpp" #include "MutablePolygon.hpp" @@ -70,17 +70,17 @@ namespace Slic3r { static constexpr bool support_with_sheath = false; #ifdef SLIC3R_DEBUG -const char* support_surface_type_to_color_name(const PrintObjectSupportMaterial::SupporLayerType surface_type) +const char* support_surface_type_to_color_name(const SupporLayerType surface_type) { switch (surface_type) { - case PrintObjectSupportMaterial::sltTopContact: return "rgb(255,0,0)"; // "red"; - case PrintObjectSupportMaterial::sltTopInterface: return "rgb(0,255,0)"; // "green"; - case PrintObjectSupportMaterial::sltBase: return "rgb(0,0,255)"; // "blue"; - case PrintObjectSupportMaterial::sltBottomInterface:return "rgb(255,255,128)"; // yellow - case PrintObjectSupportMaterial::sltBottomContact: return "rgb(255,0,255)"; // magenta - case PrintObjectSupportMaterial::sltRaftInterface: return "rgb(0,255,255)"; - case PrintObjectSupportMaterial::sltRaftBase: return "rgb(128,128,128)"; - case PrintObjectSupportMaterial::sltUnknown: return "rgb(128,0,0)"; // maroon + case SupporLayerType::TopContact: return "rgb(255,0,0)"; // "red"; + case SupporLayerType::TopInterface: return "rgb(0,255,0)"; // "green"; + case SupporLayerType::Base: return "rgb(0,0,255)"; // "blue"; + case SupporLayerType::BottomInterface:return "rgb(255,255,128)"; // yellow + case SupporLayerType::BottomContact: return "rgb(255,0,255)"; // magenta + case SupporLayerType::RaftInterface: return "rgb(0,255,255)"; + case SupporLayerType::RaftBase: return "rgb(128,128,128)"; + case SupporLayerType::Unknown: return "rgb(128,0,0)"; // maroon default: return "rgb(64,64,64)"; }; } @@ -97,28 +97,28 @@ void export_support_surface_type_legend_to_svg(SVG &svg, const Point &pos) coord_t pos_x = pos_x0; coord_t pos_y = pos(1) + scale_(1.5); coord_t step_x = scale_(10.); - svg.draw_legend(Point(pos_x, pos_y), "top contact" , support_surface_type_to_color_name(PrintObjectSupportMaterial::sltTopContact)); + svg.draw_legend(Point(pos_x, pos_y), "top contact" , support_surface_type_to_color_name(SupporLayerType::TopContact)); pos_x += step_x; - svg.draw_legend(Point(pos_x, pos_y), "top iface" , support_surface_type_to_color_name(PrintObjectSupportMaterial::sltTopInterface)); + svg.draw_legend(Point(pos_x, pos_y), "top iface" , support_surface_type_to_color_name(SupporLayerType::TopInterface)); pos_x += step_x; - svg.draw_legend(Point(pos_x, pos_y), "base" , support_surface_type_to_color_name(PrintObjectSupportMaterial::sltBase)); + svg.draw_legend(Point(pos_x, pos_y), "base" , support_surface_type_to_color_name(SupporLayerType::Base)); pos_x += step_x; - svg.draw_legend(Point(pos_x, pos_y), "bottom iface" , support_surface_type_to_color_name(PrintObjectSupportMaterial::sltBottomInterface)); + svg.draw_legend(Point(pos_x, pos_y), "bottom iface" , support_surface_type_to_color_name(SupporLayerType::BottomInterface)); pos_x += step_x; - svg.draw_legend(Point(pos_x, pos_y), "bottom contact" , support_surface_type_to_color_name(PrintObjectSupportMaterial::sltBottomContact)); + svg.draw_legend(Point(pos_x, pos_y), "bottom contact" , support_surface_type_to_color_name(SupporLayerType::BottomContact)); // 2nd row pos_x = pos_x0; pos_y = pos(1)+scale_(2.8); - svg.draw_legend(Point(pos_x, pos_y), "raft interface" , support_surface_type_to_color_name(PrintObjectSupportMaterial::sltRaftInterface)); + svg.draw_legend(Point(pos_x, pos_y), "raft interface" , support_surface_type_to_color_name(SupporLayerType::RaftInterface)); pos_x += step_x; - svg.draw_legend(Point(pos_x, pos_y), "raft base" , support_surface_type_to_color_name(PrintObjectSupportMaterial::sltRaftBase)); + svg.draw_legend(Point(pos_x, pos_y), "raft base" , support_surface_type_to_color_name(SupporLayerType::RaftBase)); pos_x += step_x; - svg.draw_legend(Point(pos_x, pos_y), "unknown" , support_surface_type_to_color_name(PrintObjectSupportMaterial::sltUnknown)); + svg.draw_legend(Point(pos_x, pos_y), "unknown" , support_surface_type_to_color_name(SupporLayerType::Unknown)); pos_x += step_x; - svg.draw_legend(Point(pos_x, pos_y), "intermediate" , support_surface_type_to_color_name(PrintObjectSupportMaterial::sltIntermediate)); + svg.draw_legend(Point(pos_x, pos_y), "intermediate" , support_surface_type_to_color_name(SupporLayerType::Intermediate)); } -void export_print_z_polygons_to_svg(const char *path, PrintObjectSupportMaterial::MyLayer ** const layers, size_t n_layers) +void export_print_z_polygons_to_svg(const char *path, SupportGeneratorLayer ** const layers, size_t n_layers) { BoundingBox bbox; for (int i = 0; i < n_layers; ++ i) @@ -138,7 +138,7 @@ void export_print_z_polygons_to_svg(const char *path, PrintObjectSupportMaterial void export_print_z_polygons_and_extrusions_to_svg( const char *path, - PrintObjectSupportMaterial::MyLayer ** const layers, + SupportGeneratorLayer ** const layers, size_t n_layers, SupportLayer &support_layer) { @@ -426,36 +426,36 @@ PrintObjectSupportMaterial::PrintObjectSupportMaterial(const PrintObject *object } // Using the std::deque as an allocator. -inline PrintObjectSupportMaterial::MyLayer& layer_allocate( - std::deque &layer_storage, - PrintObjectSupportMaterial::SupporLayerType layer_type) +inline SupportGeneratorLayer& layer_allocate( + std::deque &layer_storage, + SupporLayerType layer_type) { - layer_storage.push_back(PrintObjectSupportMaterial::MyLayer()); + layer_storage.push_back(SupportGeneratorLayer()); layer_storage.back().layer_type = layer_type; return layer_storage.back(); } -inline PrintObjectSupportMaterial::MyLayer& layer_allocate( - std::deque &layer_storage, +inline SupportGeneratorLayer& layer_allocate( + std::deque &layer_storage, tbb::spin_mutex &layer_storage_mutex, - PrintObjectSupportMaterial::SupporLayerType layer_type) + SupporLayerType layer_type) { layer_storage_mutex.lock(); - layer_storage.push_back(PrintObjectSupportMaterial::MyLayer()); - PrintObjectSupportMaterial::MyLayer *layer_new = &layer_storage.back(); + layer_storage.push_back(SupportGeneratorLayer()); + SupportGeneratorLayer *layer_new = &layer_storage.back(); layer_storage_mutex.unlock(); layer_new->layer_type = layer_type; return *layer_new; } -inline void layers_append(PrintObjectSupportMaterial::MyLayersPtr &dst, const PrintObjectSupportMaterial::MyLayersPtr &src) +inline void layers_append(SupportGeneratorLayersPtr &dst, const SupportGeneratorLayersPtr &src) { dst.insert(dst.end(), src.begin(), src.end()); } // Support layer that is covered by some form of dense interface. -static constexpr const std::initializer_list support_types_interface { - PrintObjectSupportMaterial::sltRaftInterface, PrintObjectSupportMaterial::sltBottomContact, PrintObjectSupportMaterial::sltBottomInterface, PrintObjectSupportMaterial::sltTopContact, PrintObjectSupportMaterial::sltTopInterface +static constexpr const std::initializer_list support_types_interface { + SupporLayerType::RaftInterface, SupporLayerType::BottomContact, SupporLayerType::BottomInterface, SupporLayerType::TopContact, SupporLayerType::TopInterface }; void PrintObjectSupportMaterial::generate(PrintObject &object) @@ -468,7 +468,7 @@ void PrintObjectSupportMaterial::generate(PrintObject &object) // Layer instances will be allocated by std::deque and they will be kept until the end of this function call. // The layers will be referenced by various LayersPtr (of type std::vector) - MyLayerStorage layer_storage; + SupportGeneratorLayerStorage layer_storage; BOOST_LOG_TRIVIAL(info) << "Support generator - Creating top contacts"; @@ -481,7 +481,7 @@ void PrintObjectSupportMaterial::generate(PrintObject &object) // should the support material expose to the object in order to guarantee // that it will be effective, regardless of how it's built below. // If raft is to be generated, the 1st top_contact layer will contain the 1st object layer silhouette without holes. - MyLayersPtr top_contacts = this->top_contact_layers(object, buildplate_covered, layer_storage); + SupportGeneratorLayersPtr top_contacts = this->top_contact_layers(object, buildplate_covered, layer_storage); if (top_contacts.empty()) // Nothing is supported, no supports are generated. return; @@ -492,7 +492,7 @@ void PrintObjectSupportMaterial::generate(PrintObject &object) #ifdef SLIC3R_DEBUG static int iRun = 0; iRun ++; - for (const MyLayer *layer : top_contacts) + for (const SupportGeneratorLayer *layer : top_contacts) Slic3r::SVG::export_expolygons( debug_out_path("support-top-contacts-%d-%lf.svg", iRun, layer->print_z), union_ex(layer->polygons)); @@ -505,7 +505,7 @@ void PrintObjectSupportMaterial::generate(PrintObject &object) // layer_support_areas contains the per object layer support areas. These per object layer support areas // may get merged and trimmed by this->generate_base_layers() if the support layers are not synchronized with object layers. std::vector layer_support_areas; - MyLayersPtr bottom_contacts = this->bottom_contact_layers_and_layer_support_areas( + SupportGeneratorLayersPtr bottom_contacts = this->bottom_contact_layers_and_layer_support_areas( object, top_contacts, buildplate_covered, layer_storage, layer_support_areas); @@ -526,13 +526,13 @@ void PrintObjectSupportMaterial::generate(PrintObject &object) // The layers may or may not be synchronized with the object layers, depending on the configuration. // For example, a single nozzle multi material printing will need to generate a waste tower, which in turn // wastes less material, if there are as little tool changes as possible. - MyLayersPtr intermediate_layers = this->raft_and_intermediate_support_layers( + SupportGeneratorLayersPtr intermediate_layers = this->raft_and_intermediate_support_layers( object, bottom_contacts, top_contacts, layer_storage); this->trim_support_layers_by_object(object, top_contacts, m_slicing_params.gap_support_object, m_slicing_params.gap_object_support, m_support_params.gap_xy); #ifdef SLIC3R_DEBUG - for (const MyLayer *layer : top_contacts) + for (const SupportGeneratorLayer *layer : top_contacts) Slic3r::SVG::export_expolygons( debug_out_path("support-top-contacts-trimmed-by-object-%d-%lf.svg", iRun, layer->print_z), union_ex(layer->polygons)); @@ -544,7 +544,7 @@ void PrintObjectSupportMaterial::generate(PrintObject &object) this->generate_base_layers(object, bottom_contacts, top_contacts, intermediate_layers, layer_support_areas); #ifdef SLIC3R_DEBUG - for (MyLayersPtr::const_iterator it = intermediate_layers.begin(); it != intermediate_layers.end(); ++ it) + for (SupportGeneratorLayersPtr::const_iterator it = intermediate_layers.begin(); it != intermediate_layers.end(); ++ it) Slic3r::SVG::export_expolygons( debug_out_path("support-base-layers-%d-%lf.svg", iRun, (*it)->print_z), union_ex((*it)->polygons)); @@ -570,17 +570,17 @@ void PrintObjectSupportMaterial::generate(PrintObject &object) // If raft is to be generated, the 1st top_contact layer will contain the 1st object layer silhouette with holes filled. // There is also a 1st intermediate layer containing bases of support columns. // Inflate the bases of the support columns and create the raft base under the object. - MyLayersPtr raft_layers = this->generate_raft_base(object, top_contacts, interface_layers, base_interface_layers, intermediate_layers, layer_storage); + SupportGeneratorLayersPtr raft_layers = this->generate_raft_base(object, top_contacts, interface_layers, base_interface_layers, intermediate_layers, layer_storage); if (object.print()->canceled()) return; #ifdef SLIC3R_DEBUG - for (const MyLayer *l : interface_layers) + for (const SupportGeneratorLayer *l : interface_layers) Slic3r::SVG::export_expolygons( debug_out_path("support-interface-layers-%d-%lf.svg", iRun, l->print_z), union_ex(l->polygons)); - for (const MyLayer *l : base_interface_layers) + for (const SupportGeneratorLayer *l : base_interface_layers) Slic3r::SVG::export_expolygons( debug_out_path("support-base-interface-layers-%d-%lf.svg", iRun, l->print_z), union_ex(l->polygons)); @@ -603,94 +603,10 @@ void PrintObjectSupportMaterial::generate(PrintObject &object) // intermediate_layers.clear(); // interface_layers.clear(); - // Install support layers into the object. - // A support layer installed on a PrintObject has a unique print_z. - MyLayersPtr layers_sorted; - layers_sorted.reserve(raft_layers.size() + bottom_contacts.size() + top_contacts.size() + intermediate_layers.size() + interface_layers.size() + base_interface_layers.size()); - layers_append(layers_sorted, raft_layers); - layers_append(layers_sorted, bottom_contacts); - layers_append(layers_sorted, top_contacts); - layers_append(layers_sorted, intermediate_layers); - layers_append(layers_sorted, interface_layers); - layers_append(layers_sorted, base_interface_layers); - // Sort the layers lexicographically by a raising print_z and a decreasing height. - std::sort(layers_sorted.begin(), layers_sorted.end(), [](auto *l1, auto *l2) { return *l1 < *l2; }); - - // BBS: MusangKing - erase mini layer heights (< 0.08mm) arised by top/bottom_z_distance & top_contacts under variable layer height - if (this->synchronize_layers() && !object.slicing_parameters().soluble_interface) { - auto thres = m_support_params.support_layer_height_min - EPSILON; - for (size_t i = 1; i < layers_sorted.size() - 1; ++i) { - auto& lowr = layers_sorted[i - 1]; - auto& curr = layers_sorted[i]; - auto& higr = layers_sorted[i + 1]; - // "Rounding" suspicious top/bottom contacts - if (curr->layer_type == sltTopContact || curr->layer_type == sltBottomContact) { - // Check adjacent-layer print_z diffs - coordf_t height_low = curr->print_z - lowr->print_z; - coordf_t height_high = higr->print_z - curr->print_z; - if (height_low < thres || height_high < thres) { - // Mark to-be-deleted layer as Unknown type - curr->layer_type = sltUnknown; - } - } - } - // Retains the order - layers_sorted.erase(std::remove_if(layers_sorted.begin(), layers_sorted.end(), [](MyLayer* l) {return l->layer_type == sltUnknown; }), layers_sorted.end()); - } - - int layer_id = 0; - int layer_id_interface = 0; - assert(object.support_layers().empty()); - for (size_t i = 0; i < layers_sorted.size();) { - // Find the last layer with roughly the same print_z, find the minimum layer height of all. - // Due to the floating point inaccuracies, the print_z may not be the same even if in theory they should. - size_t j = i + 1; - coordf_t zmax = layers_sorted[i]->print_z + EPSILON; - for (; j < layers_sorted.size() && layers_sorted[j]->print_z <= zmax; ++j) ; - // Assign an average print_z to the set of layers with nearly equal print_z. - coordf_t zavg = 0.5 * (layers_sorted[i]->print_z + layers_sorted[j - 1]->print_z); - coordf_t height_min = layers_sorted[i]->height; - bool empty = true; - // For snug supports, layers where the direction of the support interface shall change are accounted for. - size_t num_interfaces = 0; - size_t num_top_contacts = 0; - double top_contact_bottom_z = 0; - for (size_t u = i; u < j; ++u) { - MyLayer &layer = *layers_sorted[u]; - if (! layer.polygons.empty()) { - empty = false; - num_interfaces += one_of(layer.layer_type, support_types_interface); - if (layer.layer_type == sltTopContact) { - ++ num_top_contacts; - assert(num_top_contacts <= 1); - // All top contact layers sharing this print_z shall also share bottom_z. - //assert(num_top_contacts == 1 || (top_contact_bottom_z - layer.bottom_z) < EPSILON); - top_contact_bottom_z = layer.bottom_z; - } - } - layer.print_z = zavg; - height_min = std::min(height_min, layer.height); - } - if (! empty) { - // Here the upper_layer and lower_layer pointers are left to null at the support layers, - // as they are never used. These pointers are candidates for removal. - bool this_layer_contacts_only = num_top_contacts > 0 && num_top_contacts == num_interfaces; - size_t this_layer_id_interface = layer_id_interface; - if (this_layer_contacts_only) { - // Find a supporting layer for its interface ID. - for (auto it = object.support_layers().rbegin(); it != object.support_layers().rend(); ++ it) - if (const SupportLayer &other_layer = **it; std::abs(other_layer.print_z - top_contact_bottom_z) < EPSILON) { - // other_layer supports this top contact layer. Assign a different support interface direction to this layer - // from the layer that supports it. - this_layer_id_interface = other_layer.interface_id() + 1; - } - } - object.add_support_layer(layer_id ++, this_layer_id_interface, height_min, zavg); - if (num_interfaces && ! this_layer_contacts_only) - ++ layer_id_interface; - } - i = j; - } +#ifdef SLIC3R_DEBUG + SupportGeneratorLayersPtr layers_sorted = +#endif // SLIC3R_DEBUG + generate_support_layers(object, raft_layers, bottom_contacts, top_contacts, intermediate_layers, interface_layers, base_interface_layers); BOOST_LOG_TRIVIAL(info) << "Support generator - Generating tool paths"; @@ -1601,8 +1517,8 @@ static inline ExPolygons detect_overhangs( (threshold_rad > 0. ? // Overhang defined by an angle. float(scale_(lower_layer.height / tan(threshold_rad))) : - // Overhang defined by half the extrusion width. - 0.5f * fw); + // Overhang defined by overlap. + fw - float(scale_(object_config.support_threshold_overlap.get_abs_value(unscale_(fw))))); // Overhang polygons for this layer and region. Polygons diff_polygons; Polygons layerm_polygons = to_polygons(layerm->slices.surfaces); @@ -1841,17 +1757,16 @@ static inline std::tuple detect_contacts( // Allocate one, possibly two support contact layers. // For "thick" overhangs, one support layer will be generated to support normal extrusions, the other to support the "thick" extrusions. -static inline std::pair new_contact_layer( +static inline std::pair new_contact_layer( const PrintConfig &print_config, const PrintObjectConfig &object_config, const SlicingParameters &slicing_params, const coordf_t support_layer_height_min, const Layer &layer, - std::deque &layer_storage, - tbb::spin_mutex &layer_storage_mutex) + SupportGeneratorLayerStorage &layer_storage) { double print_z, bottom_z, height; - PrintObjectSupportMaterial::MyLayer* bridging_layer = nullptr; + SupportGeneratorLayer* bridging_layer = nullptr; assert(layer.id() >= slicing_params.raft_layers()); size_t layer_id = layer.id() - slicing_params.raft_layers(); @@ -1877,7 +1792,7 @@ static inline std::pair(nullptr, nullptr); + return std::pair(nullptr, nullptr); } const bool has_raft = slicing_params.raft_layers() > 1; const coordf_t min_print_z = has_raft ? slicing_params.raft_contact_top_z : slicing_params.first_print_layer_height; @@ -1911,7 +1826,7 @@ static inline std::pairidx_object_layer_above = layer_id; bridging_layer->print_z = bridging_print_z; if (bridging_print_z == slicing_params.first_print_layer_height) { @@ -1929,7 +1844,7 @@ static inline std::pairprint_z < l2->print_z; }); + std::sort(layers.begin(), layers.end(), [](const SupportGeneratorLayer *l1, const SupportGeneratorLayer *l2) { return l1->print_z < l2->print_z; }); int i = 0; int k = 0; @@ -2103,7 +2018,7 @@ static void merge_contact_layers(const SlicingParameters &slicing_params, double for (; j < (int)layers.size() && layers[j]->print_z < slicing_params.first_print_layer_height + support_layer_height_min - EPSILON; ++ j); if (j > 0) { // Merge the layers layers (0) to (j - 1) into the layers[0]. - PrintObjectSupportMaterial::MyLayer &dst = *layers.front(); + SupportGeneratorLayer &dst = *layers.front(); for (int u = 1; u < j; ++ u) dst.merge(std::move(*layers[u])); // Snap the first layer to the 1st layer height. @@ -2121,7 +2036,7 @@ static void merge_contact_layers(const SlicingParameters &slicing_params, double for (; j < (int)layers.size() && layers[j]->print_z < zmax; ++ j) ; if (i + 1 < j) { // Merge the layers layers (i + 1) to (j - 1) into the layers[i]. - PrintObjectSupportMaterial::MyLayer &dst = *layers[i]; + SupportGeneratorLayer &dst = *layers[i]; for (int u = i + 1; u < j; ++ u) dst.merge(std::move(*layers[u])); } @@ -2205,8 +2120,8 @@ static OverhangCluster* add_overhang(std::vector& clusters, ExP // Generate top contact layers supporting overhangs. // For a soluble interface material synchronize the layer heights with the object, otherwise leave the layer height undefined. // If supports over bed surface only are requested, don't generate contact layers over an object. -PrintObjectSupportMaterial::MyLayersPtr PrintObjectSupportMaterial::top_contact_layers( - const PrintObject &object, const std::vector &buildplate_covered, MyLayerStorage &layer_storage) const +SupportGeneratorLayersPtr PrintObjectSupportMaterial::top_contact_layers( + const PrintObject &object, const std::vector &buildplate_covered, SupportGeneratorLayerStorage &layer_storage) const { #ifdef SLIC3R_DEBUG static int iRun = 0; @@ -2217,14 +2132,14 @@ PrintObjectSupportMaterial::MyLayersPtr PrintObjectSupportMaterial::top_contact_ // BBS: tree support is selected so normal supports need not be generated. // Note we still need to go through the following steps if support is disabled but raft is enabled. if (m_object_config->enable_support.value && (m_object_config->support_type.value != stNormalAuto && m_object_config->support_type.value != stNormal)) { - return MyLayersPtr(); + return SupportGeneratorLayersPtr(); } // Slice support enforcers / support blockers. SupportAnnotations annotations(object, buildplate_covered); // Output layers, sorted by top Z. - MyLayersPtr contact_out; + SupportGeneratorLayersPtr contact_out; BOOST_LOG_TRIVIAL(debug) << "PrintObjectSupportMaterial::top_contact_layers() in parallel - start"; // Determine top contact areas. @@ -2236,7 +2151,6 @@ PrintObjectSupportMaterial::MyLayersPtr PrintObjectSupportMaterial::top_contact_ // For each overhang layer, two supporting layers may be generated: One for the overhangs extruded with a bridging flow, // and the other for the overhangs extruded with a normal flow. contact_out.assign(num_layers * 2, nullptr); - tbb::spin_mutex layer_storage_mutex; std::vector overhangs_per_layers(num_layers); size_t layer_id_start = this->has_raft() ? 0 : 1; @@ -2260,7 +2174,7 @@ PrintObjectSupportMaterial::MyLayersPtr PrintObjectSupportMaterial::top_contact_ ); // end tbb::parallel_for if (object.print()->canceled()) - return MyLayersPtr(); + return SupportGeneratorLayersPtr(); // check if the sharp tails should be extended higher bool detect_first_sharp_tail_only = false; @@ -2349,7 +2263,7 @@ PrintObjectSupportMaterial::MyLayersPtr PrintObjectSupportMaterial::top_contact_ } if (object.print()->canceled()) - return MyLayersPtr(); + return SupportGeneratorLayersPtr(); // BBS group overhang clusters const bool config_remove_small_overhangs = m_object_config->support_remove_small_overhang.value; @@ -2423,7 +2337,7 @@ PrintObjectSupportMaterial::MyLayersPtr PrintObjectSupportMaterial::top_contact_ } if (object.print()->canceled()) - return MyLayersPtr(); + return SupportGeneratorLayersPtr(); for (size_t layer_id = layer_id_start; layer_id < num_layers; layer_id++) { const Layer& layer = *object.layers()[layer_id]; @@ -2441,7 +2355,7 @@ PrintObjectSupportMaterial::MyLayersPtr PrintObjectSupportMaterial::top_contact_ // Now apply the contact areas to the layer where they need to be made. if (!contact_polygons.empty() || !overhang_polygons.empty()) { // Allocate the two empty layers. - auto [new_layer, bridging_layer] = new_contact_layer(*m_print_config, *m_object_config, m_slicing_params, m_support_params.support_layer_height_min, layer, layer_storage, layer_storage_mutex); + auto [new_layer, bridging_layer] = new_contact_layer(*m_print_config, *m_object_config, m_slicing_params, m_support_params.support_layer_height_min, layer, layer_storage); if (new_layer) { // Fill the non-bridging layer with polygons. fill_contact_layer(*new_layer, layer_id, m_slicing_params, @@ -2480,17 +2394,17 @@ PrintObjectSupportMaterial::MyLayersPtr PrintObjectSupportMaterial::top_contact_ } // Find the bottom contact layers above the top surfaces of this layer. -static inline PrintObjectSupportMaterial::MyLayer* detect_bottom_contacts( +static inline SupportGeneratorLayer* detect_bottom_contacts( const SlicingParameters &slicing_params, const PrintObjectSupportMaterial::SupportParams &support_params, const PrintObject &object, const Layer &layer, // Existing top contact layers, to which this newly created bottom contact layer will be snapped to guarantee a minimum layer height. - const PrintObjectSupportMaterial::MyLayersPtr &top_contacts, + const SupportGeneratorLayersPtr &top_contacts, // First top contact layer index overlapping with this new bottom interface layer. size_t contact_idx, // To allocate a new layer from. - std::deque &layer_storage, + SupportGeneratorLayerStorage &layer_storage, // To trim the support areas above this bottom interface layer with this newly created bottom interface layer. std::vector &layer_support_areas, // Support areas projected from top to bottom, starting with top support interfaces. @@ -2525,7 +2439,7 @@ static inline PrintObjectSupportMaterial::MyLayer* detect_bottom_contacts( size_t layer_id = layer.id() - slicing_params.raft_layers(); // Allocate a new bottom contact layer. - PrintObjectSupportMaterial::MyLayer &layer_new = layer_allocate(layer_storage, PrintObjectSupportMaterial::sltBottomContact); + SupportGeneratorLayer &layer_new = layer_storage.allocate_unguarded(SupporLayerType::BottomContact); // Grow top surfaces so that interface and support generation are generated // with some spacing from object - it looks we don't need the actual // top shapes so this can be done here @@ -2693,12 +2607,12 @@ static inline std::pair project_support_to_grid(const Layer // Generate bottom contact layers supporting the top contact layers. // For a soluble interface material synchronize the layer heights with the object, // otherwise set the layer height to a bridging flow of a support interface nozzle. -PrintObjectSupportMaterial::MyLayersPtr PrintObjectSupportMaterial::bottom_contact_layers_and_layer_support_areas( - const PrintObject &object, const MyLayersPtr &top_contacts, std::vector &buildplate_covered, - MyLayerStorage &layer_storage, std::vector &layer_support_areas) const +SupportGeneratorLayersPtr PrintObjectSupportMaterial::bottom_contact_layers_and_layer_support_areas( + const PrintObject &object, const SupportGeneratorLayersPtr &top_contacts, std::vector &buildplate_covered, + SupportGeneratorLayerStorage &layer_storage, std::vector &layer_support_areas) const { if (top_contacts.empty()) - return MyLayersPtr(); + return SupportGeneratorLayersPtr(); #ifdef SLIC3R_DEBUG static size_t s_iRun = 0; @@ -2715,7 +2629,7 @@ PrintObjectSupportMaterial::MyLayersPtr PrintObjectSupportMaterial::bottom_conta // find object top surfaces // we'll use them to clip our support and detect where does it stick - MyLayersPtr bottom_contacts; + SupportGeneratorLayersPtr bottom_contacts; // There is some support to be built, if there are non-empty top surfaces detected. // Sum of unsupported contact areas above the current layer.print_z. @@ -2734,7 +2648,7 @@ PrintObjectSupportMaterial::MyLayersPtr PrintObjectSupportMaterial::bottom_conta Polygons enforcers_new; #endif // SLIC3R_DEBUG for (; contact_idx >= 0 && top_contacts[contact_idx]->print_z > layer.print_z - EPSILON; -- contact_idx) { - MyLayer &top_contact = *top_contacts[contact_idx]; + SupportGeneratorLayer &top_contact = *top_contacts[contact_idx]; #ifndef SLIC3R_DEBUG Polygons polygons_new; Polygons enforcers_new; @@ -2776,7 +2690,7 @@ PrintObjectSupportMaterial::MyLayersPtr PrintObjectSupportMaterial::bottom_conta #endif // SLIC3R_DEBUG ] { // Find the bottom contact layers above the top surfaces of this layer. - MyLayer *layer_new = detect_bottom_contacts( + SupportGeneratorLayer *layer_new = detect_bottom_contacts( m_slicing_params, m_support_params, object, layer, top_contacts, contact_idx, layer_storage, layer_support_areas, overhangs_for_bottom_contacts #ifdef SLIC3R_DEBUG , iRun, polygons_new @@ -2835,64 +2749,21 @@ PrintObjectSupportMaterial::MyLayersPtr PrintObjectSupportMaterial::bottom_conta return bottom_contacts; } -template -IndexType idx_higher_or_equal(const std::vector& vec, IndexType idx, FN_HIGHER_EQUAL fn_higher_equal) -{ - return Layer::idx_higher_or_equal(vec.begin(), vec.end(), idx, fn_higher_equal); -} - -// FN_LOWER_EQUAL: the provided object pointer has a Z value <= of an internal threshold. -// Find the first item with Z value <= of an internal threshold of fn_lower_equal. -// If no vec item with Z value <= of an internal threshold of fn_lower_equal is found, return -1. -// If the initial idx is < -1, then use binary search. -// Otherwise search linearly downwards. -template -int idx_lower_or_equal(IT begin, IT end, int idx, FN_LOWER_EQUAL fn_lower_equal) -{ - auto size = int(end - begin); - if (size == 0) { - idx = -1; - } else if (idx < -1) { - // First of the batch of layers per thread pool invocation. Use binary search. - int idx_low = 0; - int idx_high = std::max(0, size - 1); - while (idx_low + 1 < idx_high) { - int idx_mid = (idx_low + idx_high) / 2; - if (fn_lower_equal(begin[idx_mid])) - idx_low = idx_mid; - else - idx_high = idx_mid; - } - idx = fn_lower_equal(begin[idx_high]) ? idx_high : - (fn_lower_equal(begin[idx_low ]) ? idx_low : -1); - } else { - // For the other layers of this batch of layers, search incrementally, which is cheaper than the binary search. - while (idx >= 0 && ! fn_lower_equal(begin[idx])) - -- idx; - } - return idx; -} -template -int idx_lower_or_equal(const std::vector &vec, int idx, FN_LOWER_EQUAL fn_lower_equal) -{ - return idx_lower_or_equal(vec.begin(), vec.end(), idx, fn_lower_equal); -} - // Trim the top_contacts layers with the bottom_contacts layers if they overlap, so there would not be enough vertical space for both of them. void PrintObjectSupportMaterial::trim_top_contacts_by_bottom_contacts( - const PrintObject &object, const MyLayersPtr &bottom_contacts, MyLayersPtr &top_contacts) const + const PrintObject &object, const SupportGeneratorLayersPtr &bottom_contacts, SupportGeneratorLayersPtr &top_contacts) const { tbb::parallel_for(tbb::blocked_range(0, int(top_contacts.size())), [&bottom_contacts, &top_contacts](const tbb::blocked_range& range) { int idx_bottom_overlapping_first = -2; // For all top contact layers, counting downwards due to the way idx_higher_or_equal caches the last index to avoid repeated binary search. for (int idx_top = range.end() - 1; idx_top >= range.begin(); -- idx_top) { - MyLayer &layer_top = *top_contacts[idx_top]; + SupportGeneratorLayer &layer_top = *top_contacts[idx_top]; // Find the first bottom layer overlapping with layer_top. - idx_bottom_overlapping_first = idx_lower_or_equal(bottom_contacts, idx_bottom_overlapping_first, [&layer_top](const MyLayer *layer_bottom){ return layer_bottom->bottom_print_z() - EPSILON <= layer_top.bottom_z; }); + idx_bottom_overlapping_first = idx_lower_or_equal(bottom_contacts, idx_bottom_overlapping_first, [&layer_top](const SupportGeneratorLayer *layer_bottom){ return layer_bottom->bottom_print_z() - EPSILON <= layer_top.bottom_z; }); // For all top contact layers overlapping with the thick bottom contact layer: for (int idx_bottom_overlapping = idx_bottom_overlapping_first; idx_bottom_overlapping >= 0; -- idx_bottom_overlapping) { - const MyLayer &layer_bottom = *bottom_contacts[idx_bottom_overlapping]; + const SupportGeneratorLayer &layer_bottom = *bottom_contacts[idx_bottom_overlapping]; assert(layer_bottom.bottom_print_z() - EPSILON <= layer_top.bottom_z); if (layer_top.print_z < layer_bottom.print_z + EPSILON) { // Layers overlap. Trim layer_top with layer_bottom. @@ -2904,16 +2775,16 @@ void PrintObjectSupportMaterial::trim_top_contacts_by_bottom_contacts( }); } -PrintObjectSupportMaterial::MyLayersPtr PrintObjectSupportMaterial::raft_and_intermediate_support_layers( +SupportGeneratorLayersPtr PrintObjectSupportMaterial::raft_and_intermediate_support_layers( const PrintObject &object, - const MyLayersPtr &bottom_contacts, - const MyLayersPtr &top_contacts, - MyLayerStorage &layer_storage) const + const SupportGeneratorLayersPtr &bottom_contacts, + const SupportGeneratorLayersPtr &top_contacts, + SupportGeneratorLayerStorage &layer_storage) const { - MyLayersPtr intermediate_layers; + SupportGeneratorLayersPtr intermediate_layers; // Collect and sort the extremes (bottoms of the top contacts and tops of the bottom contacts). - MyLayersPtr extremes; + SupportGeneratorLayersPtr extremes; extremes.reserve(top_contacts.size() + bottom_contacts.size()); for (size_t i = 0; i < top_contacts.size(); ++ i) // Bottoms of the top contact layers. In case of non-soluble supports, @@ -2925,18 +2796,18 @@ PrintObjectSupportMaterial::MyLayersPtr PrintObjectSupportMaterial::raft_and_int if (extremes.empty()) return intermediate_layers; - auto layer_extreme_lower = [](const MyLayer *l1, const MyLayer *l2) { + auto layer_extreme_lower = [](const SupportGeneratorLayer *l1, const SupportGeneratorLayer *l2) { coordf_t z1 = l1->extreme_z(); coordf_t z2 = l2->extreme_z(); // If the layers are aligned, return the top contact surface first. - return z1 < z2 || (z1 == z2 && l1->layer_type == PrintObjectSupportMaterial::sltTopContact && l2->layer_type == PrintObjectSupportMaterial::sltBottomContact); + return z1 < z2 || (z1 == z2 && l1->layer_type == SupporLayerType::TopContact && l2->layer_type == SupporLayerType::BottomContact); }; std::sort(extremes.begin(), extremes.end(), layer_extreme_lower); assert(extremes.empty() || (extremes.front()->extreme_z() > m_slicing_params.raft_interface_top_z - EPSILON && (m_slicing_params.raft_layers() == 1 || // only raft contact layer - extremes.front()->layer_type == sltTopContact || // first extreme is a top contact layer + extremes.front()->layer_type == SupporLayerType::TopContact || // first extreme is a top contact layer extremes.front()->extreme_z() > m_slicing_params.first_print_layer_height - EPSILON))); bool synchronize = this->synchronize_layers(); @@ -2948,7 +2819,7 @@ PrintObjectSupportMaterial::MyLayersPtr PrintObjectSupportMaterial::raft_and_int extremes[i]->extreme_z() - extremes[i-1]->extreme_z() > m_support_params.support_layer_height_min - EPSILON); assert(extremes[i]->extreme_z() - extremes[i-1]->extreme_z() > 0. || extremes[i]->layer_type == extremes[i-1]->layer_type || - (extremes[i]->layer_type == sltBottomContact && extremes[i - 1]->layer_type == sltTopContact)); + (extremes[i]->layer_type == SupporLayerType::BottomContact && extremes[i - 1]->layer_type == SupporLayerType::TopContact)); } #endif @@ -2961,19 +2832,19 @@ PrintObjectSupportMaterial::MyLayersPtr PrintObjectSupportMaterial::raft_and_int if (! extremes.empty() && std::abs(extremes.front()->extreme_z() - m_slicing_params.raft_interface_top_z) < EPSILON) { // This is a raft contact layer, its height has been decided in this->top_contact_layers(). // Ignore this layer when calculating the intermediate support layers. - assert(extremes.front()->layer_type == sltTopContact); + assert(extremes.front()->layer_type == SupporLayerType::TopContact); ++ idx_extreme_first; } for (size_t idx_extreme = idx_extreme_first; idx_extreme < extremes.size(); ++ idx_extreme) { - MyLayer *extr2 = extremes[idx_extreme]; + SupportGeneratorLayer *extr2 = extremes[idx_extreme]; coordf_t extr2z = extr2->extreme_z(); if (std::abs(extr2z - m_slicing_params.first_print_layer_height) < EPSILON) { // This is a bottom of a synchronized (or soluble) top contact layer, its height has been decided in this->top_contact_layers(). - assert(extr2->layer_type == sltTopContact); + assert(extr2->layer_type == SupporLayerType::TopContact); assert(std::abs(extr2->bottom_z - m_slicing_params.first_print_layer_height) < EPSILON); assert(extr2->print_z >= m_slicing_params.first_print_layer_height + m_support_params.support_layer_height_min - EPSILON); if (intermediate_layers.empty() || intermediate_layers.back()->print_z < m_slicing_params.first_print_layer_height) { - MyLayer &layer_new = layer_allocate(layer_storage, sltIntermediate); + SupportGeneratorLayer &layer_new = layer_storage.allocate(SupporLayerType::Intermediate); layer_new.bottom_z = 0.; layer_new.print_z = m_slicing_params.first_print_layer_height; layer_new.height = m_slicing_params.first_print_layer_height; @@ -2983,11 +2854,11 @@ PrintObjectSupportMaterial::MyLayersPtr PrintObjectSupportMaterial::raft_and_int } assert(extr2z >= m_slicing_params.raft_interface_top_z + EPSILON); assert(extr2z >= m_slicing_params.first_print_layer_height + EPSILON); - MyLayer *extr1 = (idx_extreme == idx_extreme_first) ? nullptr : extremes[idx_extreme - 1]; + SupportGeneratorLayer *extr1 = (idx_extreme == idx_extreme_first) ? nullptr : extremes[idx_extreme - 1]; // Fuse a support layer firmly to the raft top interface (not to the raft contacts). coordf_t extr1z = (extr1 == nullptr) ? m_slicing_params.raft_interface_top_z : extr1->extreme_z(); assert(extr2z >= extr1z); - assert(extr2z > extr1z || (extr1 != nullptr && extr2->layer_type == sltBottomContact)); + assert(extr2z > extr1z || (extr1 != nullptr && extr2->layer_type == SupporLayerType::BottomContact)); if (std::abs(extr1z) < EPSILON) { // This layer interval starts with the 1st layer. Print the 1st layer using the prescribed 1st layer thickness. // assert(! m_slicing_params.has_raft()); RaftingEdition: unclear where the issue is: assert fails with 1-layer raft & base supports @@ -2995,7 +2866,7 @@ PrintObjectSupportMaterial::MyLayersPtr PrintObjectSupportMaterial::raft_and_int // At this point only layers above first_print_layer_heigth + EPSILON are expected as the other cases were captured earlier. assert(extr2z >= m_slicing_params.first_print_layer_height + EPSILON); // Generate a new intermediate layer. - MyLayer &layer_new = layer_allocate(layer_storage, sltIntermediate); + SupportGeneratorLayer &layer_new = layer_storage.allocate(SupporLayerType::Intermediate); layer_new.bottom_z = 0.; layer_new.print_z = extr1z = m_slicing_params.first_print_layer_height; layer_new.height = extr1z; @@ -3015,7 +2886,7 @@ PrintObjectSupportMaterial::MyLayersPtr PrintObjectSupportMaterial::raft_and_int ++ idx_layer_object; if (idx_layer_object == 0 && extr1z == m_slicing_params.raft_interface_top_z) { // Insert one base support layer below the object. - MyLayer &layer_new = layer_allocate(layer_storage, sltIntermediate); + SupportGeneratorLayer &layer_new = layer_storage.allocate(SupporLayerType::Intermediate); layer_new.print_z = m_slicing_params.object_print_z_min; layer_new.bottom_z = m_slicing_params.raft_interface_top_z; layer_new.height = layer_new.print_z - layer_new.bottom_z; @@ -3023,7 +2894,7 @@ PrintObjectSupportMaterial::MyLayersPtr PrintObjectSupportMaterial::raft_and_int } // Emit all intermediate support layers synchronized with object layers up to extr2z. for (; idx_layer_object < object.layers().size() && object.layers()[idx_layer_object]->print_z < extr2z + EPSILON; ++ idx_layer_object) { - MyLayer &layer_new = layer_allocate(layer_storage, sltIntermediate); + SupportGeneratorLayer &layer_new = layer_storage.allocate(SupporLayerType::Intermediate); layer_new.print_z = object.layers()[idx_layer_object]->print_z; layer_new.height = object.layers()[idx_layer_object]->height; layer_new.bottom_z = (idx_layer_object > 0) ? object.layers()[idx_layer_object - 1]->print_z : (layer_new.print_z - layer_new.height); @@ -3035,13 +2906,13 @@ PrintObjectSupportMaterial::MyLayersPtr PrintObjectSupportMaterial::raft_and_int size_t n_layers_extra = size_t(ceil(dist / m_slicing_params.max_suport_layer_height)); assert(n_layers_extra > 0); coordf_t step = dist / coordf_t(n_layers_extra); - if (extr1 != nullptr && extr1->layer_type == sltTopContact && + if (extr1 != nullptr && extr1->layer_type == SupporLayerType::TopContact && extr1->print_z + m_support_params.support_layer_height_min > extr1->bottom_z + step) { // The bottom extreme is a bottom of a top surface. Ensure that the gap // between the 1st intermediate layer print_z and extr1->print_z is not too small. assert(extr1->bottom_z + m_support_params.support_layer_height_min < extr1->print_z + EPSILON); // Generate the first intermediate layer. - MyLayer &layer_new = layer_allocate(layer_storage, sltIntermediate); + SupportGeneratorLayer &layer_new = layer_storage.allocate(SupporLayerType::Intermediate); layer_new.bottom_z = extr1->bottom_z; layer_new.print_z = extr1z = extr1->print_z; layer_new.height = extr1->height; @@ -3053,7 +2924,7 @@ PrintObjectSupportMaterial::MyLayersPtr PrintObjectSupportMaterial::raft_and_int // Continue printing the other layers up to extr2z. step = dist / coordf_t(n_layers_extra); } - if (! m_slicing_params.soluble_interface && extr2->layer_type == sltTopContact) { + if (! m_slicing_params.soluble_interface && extr2->layer_type == SupporLayerType::TopContact) { // This is a top interface layer, which does not have a height assigned yet. Do it now. assert(extr2->height == 0.); assert(extr1z > m_slicing_params.first_print_layer_height - EPSILON); @@ -3065,7 +2936,7 @@ PrintObjectSupportMaterial::MyLayersPtr PrintObjectSupportMaterial::raft_and_int coordf_t extr2z_large_steps = extr2z; // Take the largest allowed step in the Z axis until extr2z_large_steps is reached. for (size_t i = 0; i < n_layers_extra; ++ i) { - MyLayer &layer_new = layer_allocate(layer_storage, sltIntermediate); + SupportGeneratorLayer &layer_new = layer_storage.allocate(SupporLayerType::Intermediate); if (i + 1 == n_layers_extra) { // Last intermediate layer added. Align the last entered layer with extr2z_large_steps exactly. layer_new.bottom_z = (i == 0) ? extr1z : intermediate_layers.back()->print_z; @@ -3126,9 +2997,9 @@ PrintObjectSupportMaterial::MyLayersPtr PrintObjectSupportMaterial::raft_and_int // Also the bottom/top_contacts shall have a layer thickness assigned already. void PrintObjectSupportMaterial::generate_base_layers( const PrintObject &object, - const MyLayersPtr &bottom_contacts, - const MyLayersPtr &top_contacts, - MyLayersPtr &intermediate_layers, + const SupportGeneratorLayersPtr &bottom_contacts, + const SupportGeneratorLayersPtr &top_contacts, + SupportGeneratorLayersPtr &intermediate_layers, const std::vector &layer_support_areas) const { #ifdef SLIC3R_DEBUG @@ -3152,7 +3023,7 @@ void PrintObjectSupportMaterial::generate_base_layers( { BOOST_LOG_TRIVIAL(trace) << "Support generator - generate_base_layers - creating layer " << idx_intermediate << " of " << intermediate_layers.size(); - MyLayer &layer_intermediate = *intermediate_layers[idx_intermediate]; + SupportGeneratorLayer &layer_intermediate = *intermediate_layers[idx_intermediate]; // Layers must be sorted by print_z. assert(idx_intermediate == 0 || layer_intermediate.print_z >= intermediate_layers[idx_intermediate - 1]->print_z); @@ -3175,10 +3046,10 @@ void PrintObjectSupportMaterial::generate_base_layers( // 4) base.print_z > top.bottom_z && base.bottom_z < top.bottom_z -> Base overlaps with top.bottom_z. This must not happen. // 5) base.print_z <= top.print_z && base.bottom_z >= top.bottom_z -> Base is fully inside top. Trim base by top. idx_top_contact_above = idx_lower_or_equal(top_contacts, idx_top_contact_above, - [&layer_intermediate](const MyLayer *layer){ return layer->bottom_z <= layer_intermediate.print_z - EPSILON; }); + [&layer_intermediate](const SupportGeneratorLayer *layer){ return layer->bottom_z <= layer_intermediate.print_z - EPSILON; }); // Collect all the top_contact layer intersecting with this layer. for (int idx_top_contact_overlapping = idx_top_contact_above; idx_top_contact_overlapping >= 0; -- idx_top_contact_overlapping) { - MyLayer &layer_top_overlapping = *top_contacts[idx_top_contact_overlapping]; + SupportGeneratorLayer &layer_top_overlapping = *top_contacts[idx_top_contact_overlapping]; if (layer_top_overlapping.print_z < layer_intermediate.bottom_z + EPSILON) break; // Base must not overlap with top.bottom_z. @@ -3195,7 +3066,7 @@ void PrintObjectSupportMaterial::generate_base_layers( polygons_new = layer_support_areas.front(); double first_layer_z = object.layers().front()->print_z; for (int i = idx_top_contact_above + 1; i < int(top_contacts.size()); ++ i) { - MyLayer &contacts = *top_contacts[i]; + SupportGeneratorLayer &contacts = *top_contacts[i]; if (contacts.print_z > first_layer_z + EPSILON) break; assert(contacts.bottom_z > layer_intermediate.print_z - EPSILON); @@ -3212,10 +3083,10 @@ void PrintObjectSupportMaterial::generate_base_layers( // 4) base.print_z > bottom.print_z && base.bottom_z >= bottom.print_z -> Base overlaps with bottom.print_z. This must not happen. // 5) base.print_z <= bottom.print_z && base.bottom_z >= bottom.bottom_z -> Base is fully inside top. Trim base by top. idx_bottom_contact_overlapping = idx_lower_or_equal(bottom_contacts, idx_bottom_contact_overlapping, - [&layer_intermediate](const MyLayer *layer){ return layer->bottom_print_z() <= layer_intermediate.print_z - EPSILON; }); + [&layer_intermediate](const SupportGeneratorLayer *layer){ return layer->bottom_print_z() <= layer_intermediate.print_z - EPSILON; }); // Collect all the bottom_contacts layer intersecting with this layer. for (int i = idx_bottom_contact_overlapping; i >= 0; -- i) { - MyLayer &layer_bottom_overlapping = *bottom_contacts[i]; + SupportGeneratorLayer &layer_bottom_overlapping = *bottom_contacts[i]; if (layer_bottom_overlapping.print_z < layer_intermediate.bottom_print_z() + EPSILON) break; // Base must not overlap with bottom.top_z. @@ -3245,7 +3116,7 @@ void PrintObjectSupportMaterial::generate_base_layers( polygons_new, polygons_trimming, ApplySafetyOffset::Yes); // safety offset to merge the touching source polygons - layer_intermediate.layer_type = sltBase; + layer_intermediate.layer_type = SupporLayerType::Base; #if 0 // coordf_t fillet_radius_scaled = scale_(m_object_config->support_base_pattern_spacing); @@ -3267,7 +3138,7 @@ void PrintObjectSupportMaterial::generate_base_layers( BOOST_LOG_TRIVIAL(debug) << "PrintObjectSupportMaterial::generate_base_layers() in parallel - end"; #ifdef SLIC3R_DEBUG - for (MyLayersPtr::const_iterator it = intermediate_layers.begin(); it != intermediate_layers.end(); ++it) + for (SupportGeneratorLayersPtr::const_iterator it = intermediate_layers.begin(); it != intermediate_layers.end(); ++it) ::Slic3r::SVG::export_expolygons( debug_out_path("support-intermediate-layers-untrimmed-%d-%lf.svg", iRun, (*it)->print_z), union_ex((*it)->polygons)); @@ -3279,7 +3150,7 @@ void PrintObjectSupportMaterial::generate_base_layers( void PrintObjectSupportMaterial::trim_support_layers_by_object( const PrintObject &object, - MyLayersPtr &support_layers, + SupportGeneratorLayersPtr &support_layers, const coordf_t gap_extra_above, const coordf_t gap_extra_below, const coordf_t gap_xy) const @@ -3288,10 +3159,10 @@ void PrintObjectSupportMaterial::trim_support_layers_by_object( // Collect non-empty layers to be processed in parallel. // This is a good idea as pulling a thread from a thread pool for an empty task is expensive. - MyLayersPtr nonempty_layers; + SupportGeneratorLayersPtr nonempty_layers; nonempty_layers.reserve(support_layers.size()); for (size_t idx_layer = 0; idx_layer < support_layers.size(); ++ idx_layer) { - MyLayer *support_layer = support_layers[idx_layer]; + SupportGeneratorLayer *support_layer = support_layers[idx_layer]; if (! support_layer->polygons.empty() && support_layer->print_z >= m_slicing_params.raft_contact_top_z + EPSILON) // Non-empty support layer and not a raft layer. nonempty_layers.push_back(support_layer); @@ -3304,7 +3175,7 @@ void PrintObjectSupportMaterial::trim_support_layers_by_object( [this, &object, &nonempty_layers, gap_extra_above, gap_extra_below, gap_xy_scaled](const tbb::blocked_range& range) { size_t idx_object_layer_overlapping = size_t(-1); - auto is_layers_overlap = [](const MyLayer& support_layer, const Layer& object_layer, coordf_t bridging_height = 0.f) -> bool { + auto is_layers_overlap = [](const SupportGeneratorLayer& support_layer, const Layer& object_layer, coordf_t bridging_height = 0.f) -> bool { if (std::abs(support_layer.print_z - object_layer.print_z) < EPSILON) return true; @@ -3318,7 +3189,7 @@ void PrintObjectSupportMaterial::trim_support_layers_by_object( return false; }; for (size_t idx_layer = range.begin(); idx_layer < range.end(); ++ idx_layer) { - MyLayer &support_layer = *nonempty_layers[idx_layer]; + SupportGeneratorLayer &support_layer = *nonempty_layers[idx_layer]; // BOOST_LOG_TRIVIAL(trace) << "Support generator - trim_support_layers_by_object - trimmming non-empty layer " << idx_layer << " of " << nonempty_layers.size(); assert(! support_layer.polygons.empty() && support_layer.print_z >= m_slicing_params.raft_contact_top_z + EPSILON); // Find the overlapping object layers including the extra above / below gap. @@ -3378,13 +3249,13 @@ void PrintObjectSupportMaterial::trim_support_layers_by_object( BOOST_LOG_TRIVIAL(debug) << "PrintObjectSupportMaterial::trim_support_layers_by_object() in parallel - end"; } -PrintObjectSupportMaterial::MyLayersPtr PrintObjectSupportMaterial::generate_raft_base( +SupportGeneratorLayersPtr PrintObjectSupportMaterial::generate_raft_base( const PrintObject &object, - const MyLayersPtr &top_contacts, - const MyLayersPtr &interface_layers, - const MyLayersPtr &base_interface_layers, - const MyLayersPtr &base_layers, - MyLayerStorage &layer_storage) const + const SupportGeneratorLayersPtr &top_contacts, + const SupportGeneratorLayersPtr &interface_layers, + const SupportGeneratorLayersPtr &base_interface_layers, + const SupportGeneratorLayersPtr &base_layers, + SupportGeneratorLayerStorage &layer_storage) const { // If there is brim to be generated, calculate the trimming regions. Polygons brim; @@ -3420,10 +3291,10 @@ PrintObjectSupportMaterial::MyLayersPtr PrintObjectSupportMaterial::generate_raf // How much to inflate the support columns to be stable. This also applies to the 1st layer, if no raft layers are to be printed. const float inflate_factor_fine = float(scale_((m_slicing_params.raft_layers() > 1) ? 0.5 : EPSILON)); const float inflate_factor_1st_layer = std::max(0.f, float(scale_(object.config().raft_first_layer_expansion)) - inflate_factor_fine); - MyLayer *contacts = top_contacts .empty() ? nullptr : top_contacts .front(); - MyLayer *interfaces = interface_layers .empty() ? nullptr : interface_layers .front(); - MyLayer *base_interfaces = base_interface_layers.empty() ? nullptr : base_interface_layers.front(); - MyLayer *columns_base = base_layers .empty() ? nullptr : base_layers .front(); + SupportGeneratorLayer *contacts = top_contacts .empty() ? nullptr : top_contacts .front(); + SupportGeneratorLayer *interfaces = interface_layers .empty() ? nullptr : interface_layers .front(); + SupportGeneratorLayer *base_interfaces = base_interface_layers.empty() ? nullptr : base_interface_layers.front(); + SupportGeneratorLayer *columns_base = base_layers .empty() ? nullptr : base_layers .front(); if (contacts != nullptr && contacts->print_z > std::max(m_slicing_params.first_print_layer_height, m_slicing_params.raft_contact_top_z) + EPSILON) // This is not the raft contact layer. contacts = nullptr; @@ -3446,7 +3317,7 @@ PrintObjectSupportMaterial::MyLayersPtr PrintObjectSupportMaterial::generate_raf polygons_append(interface_polygons, expand(base_interfaces->polygons, inflate_factor_fine, SUPPORT_SURFACES_OFFSET_PARAMETERS)); // Output vector. - MyLayersPtr raft_layers; + SupportGeneratorLayersPtr raft_layers; if (m_slicing_params.raft_layers() > 1) { Polygons base; @@ -3465,7 +3336,7 @@ PrintObjectSupportMaterial::MyLayersPtr PrintObjectSupportMaterial::generate_raf // Do not add the raft contact layer, only add the raft layers below the contact layer. // Insert the 1st layer. { - MyLayer &new_layer = layer_allocate(layer_storage, (m_slicing_params.base_raft_layers > 0) ? sltRaftBase : sltRaftInterface); + SupportGeneratorLayer &new_layer = layer_storage.allocate((m_slicing_params.base_raft_layers > 0) ? SupporLayerType::RaftBase : SupporLayerType::RaftInterface); raft_layers.push_back(&new_layer); new_layer.print_z = m_slicing_params.first_print_layer_height; new_layer.height = m_slicing_params.first_print_layer_height; @@ -3475,7 +3346,7 @@ PrintObjectSupportMaterial::MyLayersPtr PrintObjectSupportMaterial::generate_raf // Insert the base layers. for (size_t i = 1; i < m_slicing_params.base_raft_layers; ++ i) { coordf_t print_z = raft_layers.back()->print_z; - MyLayer &new_layer = layer_allocate(layer_storage, sltRaftBase); + SupportGeneratorLayer &new_layer = layer_storage.allocate(SupporLayerType::RaftBase); raft_layers.push_back(&new_layer); new_layer.print_z = print_z + m_slicing_params.base_raft_layer_height; new_layer.height = m_slicing_params.base_raft_layer_height; @@ -3485,7 +3356,7 @@ PrintObjectSupportMaterial::MyLayersPtr PrintObjectSupportMaterial::generate_raf // Insert the interface layers. for (size_t i = 1; i < m_slicing_params.interface_raft_layers; ++ i) { coordf_t print_z = raft_layers.back()->print_z; - MyLayer &new_layer = layer_allocate(layer_storage, sltRaftInterface); + SupportGeneratorLayer &new_layer = layer_storage.allocate(SupporLayerType::RaftInterface); raft_layers.push_back(&new_layer); new_layer.print_z = print_z + m_slicing_params.interface_raft_layer_height; new_layer.height = m_slicing_params.interface_raft_layer_height; @@ -3531,17 +3402,17 @@ PrintObjectSupportMaterial::MyLayersPtr PrintObjectSupportMaterial::generate_raf } // Convert some of the intermediate layers into top/bottom interface layers as well as base interface layers. -std::pair PrintObjectSupportMaterial::generate_interface_layers( - const MyLayersPtr &bottom_contacts, - const MyLayersPtr &top_contacts, - MyLayersPtr &intermediate_layers, - MyLayerStorage &layer_storage) const +std::pair PrintObjectSupportMaterial::generate_interface_layers( + const SupportGeneratorLayersPtr &bottom_contacts, + const SupportGeneratorLayersPtr &top_contacts, + SupportGeneratorLayersPtr &intermediate_layers, + SupportGeneratorLayerStorage &layer_storage) const { // my $area_threshold = $self->interface_flow->scaled_spacing ** 2; - std::pair base_and_interface_layers; - MyLayersPtr &interface_layers = base_and_interface_layers.first; - MyLayersPtr &base_interface_layers = base_and_interface_layers.second; + std::pair base_and_interface_layers; + SupportGeneratorLayersPtr &interface_layers = base_and_interface_layers.first; + SupportGeneratorLayersPtr &base_interface_layers = base_and_interface_layers.second; // distinguish between interface and base interface layers // Contact layer is considered an interface layer, therefore run the following block only if support_interface_top_layers > 1. @@ -3577,10 +3448,9 @@ std::pair(m_object_config->support_closing_radius.value); - tbb::spin_mutex layer_storage_mutex; // Insert a new layer into base_interface_layers, if intersection with base exists. - auto insert_layer = [&layer_storage, &layer_storage_mutex, snug_supports, closing_distance, smoothing_distance, minimum_island_radius]( - MyLayer &intermediate_layer, Polygons &bottom, Polygons &&top, const Polygons *subtract, SupporLayerType type) -> MyLayer* { + auto insert_layer = [&layer_storage, snug_supports, closing_distance, smoothing_distance, minimum_island_radius]( + SupportGeneratorLayer &intermediate_layer, Polygons &bottom, Polygons &&top, const Polygons *subtract, SupporLayerType type) -> SupportGeneratorLayer* { assert(! bottom.empty() || ! top.empty()); // Merge top into bottom, unite them with a safety offset. append(bottom, std::move(top)); @@ -3594,7 +3464,7 @@ std::pair::max() : intermediate_layers[std::min(num_intermediate - 1, idx_intermediate_layer + num_interface_layers_only_top - 1)]->print_z; // Move idx_top_contact_first up until above the current print_z. - idx_top_contact_first = idx_higher_or_equal(top_contacts, idx_top_contact_first, [&intermediate_layer](const MyLayer *layer){ return layer->print_z >= intermediate_layer.print_z; }); // - EPSILON + idx_top_contact_first = idx_higher_or_equal(top_contacts, idx_top_contact_first, [&intermediate_layer](const SupportGeneratorLayer *layer){ return layer->print_z >= intermediate_layer.print_z; }); // - EPSILON // Collect the top contact areas above this intermediate layer, below top_z. for (int idx_top_contact = idx_top_contact_first; idx_top_contact < int(top_contacts.size()); ++ idx_top_contact) { - const MyLayer &top_contact_layer = *top_contacts[idx_top_contact]; + const SupportGeneratorLayer &top_contact_layer = *top_contacts[idx_top_contact]; //FIXME maybe this adds one interface layer in excess? if (top_contact_layer.bottom_z - EPSILON > top_z) break; @@ -3664,26 +3534,26 @@ std::pair::max() : intermediate_layers[std::max(0, idx_intermediate_layer - num_interface_layers_only_bottom)]->bottom_z; // Move idx_bottom_contact_first up until touching bottom_z. - idx_bottom_contact_first = idx_higher_or_equal(bottom_contacts, idx_bottom_contact_first, [bottom_z](const MyLayer *layer){ return layer->print_z >= bottom_z - EPSILON; }); + idx_bottom_contact_first = idx_higher_or_equal(bottom_contacts, idx_bottom_contact_first, [bottom_z](const SupportGeneratorLayer *layer){ return layer->print_z >= bottom_z - EPSILON; }); // Collect the top contact areas above this intermediate layer, below top_z. for (int idx_bottom_contact = idx_bottom_contact_first; idx_bottom_contact < int(bottom_contacts.size()); ++ idx_bottom_contact) { - const MyLayer &bottom_contact_layer = *bottom_contacts[idx_bottom_contact]; + const SupportGeneratorLayer &bottom_contact_layer = *bottom_contacts[idx_bottom_contact]; if (bottom_contact_layer.print_z - EPSILON > intermediate_layer.bottom_z) break; polygons_append(bottom_contact_layer.print_z - EPSILON > bottom_interface_z ? polygons_bottom_contact_projected_interface : polygons_bottom_contact_projected_base, bottom_contact_layer.polygons); } } - MyLayer *interface_layer = nullptr; + SupportGeneratorLayer *interface_layer = nullptr; if (! polygons_bottom_contact_projected_interface.empty() || ! polygons_top_contact_projected_interface.empty()) { interface_layer = insert_layer( intermediate_layer, polygons_bottom_contact_projected_interface, std::move(polygons_top_contact_projected_interface), nullptr, - polygons_top_contact_projected_interface.empty() ? sltBottomInterface : sltTopInterface); + polygons_top_contact_projected_interface.empty() ? SupporLayerType::BottomInterface : SupporLayerType::TopInterface); interface_layers[idx_intermediate_layer] = interface_layer; } if (! polygons_bottom_contact_projected_base.empty() || ! polygons_top_contact_projected_base.empty()) base_interface_layers[idx_intermediate_layer] = insert_layer( intermediate_layer, polygons_bottom_contact_projected_base, std::move(polygons_top_contact_projected_base), - interface_layer ? &interface_layer->polygons : nullptr, sltBase); + interface_layer ? &interface_layer->polygons : nullptr, SupporLayerType::Base); } }); @@ -3859,7 +3729,7 @@ struct MyLayerExtruded } // The source layer. It carries the height and extrusion type (bridging / non bridging, extrusion height). - PrintObjectSupportMaterial::MyLayer *layer { nullptr }; + SupportGeneratorLayer *layer { nullptr }; // Collect extrusions. They will be exported sorted by the bottom height. ExtrusionEntitiesPtr extrusions; @@ -4127,9 +3997,9 @@ static std::string dbg_index_to_color(int idx) void modulate_extrusion_by_overlapping_layers( // Extrusions generated for this_layer. ExtrusionEntitiesPtr &extrusions_in_out, - const PrintObjectSupportMaterial::MyLayer &this_layer, + const SupportGeneratorLayer &this_layer, // Multiple layers overlapping with this_layer, sorted bottom up. - const PrintObjectSupportMaterial::MyLayersPtr &overlapping_layers) + const SupportGeneratorLayersPtr &overlapping_layers) { size_t n_overlapping_layers = overlapping_layers.size(); if (n_overlapping_layers == 0 || extrusions_in_out.empty()) @@ -4166,7 +4036,7 @@ void modulate_extrusion_by_overlapping_layers( ++ iRun; BoundingBox bbox; for (size_t i_overlapping_layer = 0; i_overlapping_layer < n_overlapping_layers; ++ i_overlapping_layer) { - const PrintObjectSupportMaterial::MyLayer &overlapping_layer = *overlapping_layers[i_overlapping_layer]; + const SupportGeneratorLayer &overlapping_layer = *overlapping_layers[i_overlapping_layer]; bbox.merge(get_extents(overlapping_layer.polygons)); } for (ExtrusionEntitiesPtr::const_iterator it = extrusions_in_out.begin(); it != extrusions_in_out.end(); ++ it) { @@ -4179,13 +4049,13 @@ void modulate_extrusion_by_overlapping_layers( // Filled polygons for the overlapping regions. svg.draw(union_ex(this_layer.polygons), dbg_index_to_color(-1), transparency); for (size_t i_overlapping_layer = 0; i_overlapping_layer < n_overlapping_layers; ++ i_overlapping_layer) { - const PrintObjectSupportMaterial::MyLayer &overlapping_layer = *overlapping_layers[i_overlapping_layer]; + const SupportGeneratorLayer &overlapping_layer = *overlapping_layers[i_overlapping_layer]; svg.draw(union_ex(overlapping_layer.polygons), dbg_index_to_color(int(i_overlapping_layer)), transparency); } // Contours of the overlapping regions. svg.draw(to_polylines(this_layer.polygons), dbg_index_to_color(-1), scale_(0.2)); for (size_t i_overlapping_layer = 0; i_overlapping_layer < n_overlapping_layers; ++ i_overlapping_layer) { - const PrintObjectSupportMaterial::MyLayer &overlapping_layer = *overlapping_layers[i_overlapping_layer]; + const SupportGeneratorLayer &overlapping_layer = *overlapping_layers[i_overlapping_layer]; svg.draw(to_polylines(overlapping_layer.polygons), dbg_index_to_color(int(i_overlapping_layer)), scale_(0.1)); } // Fill extrusion, the source. @@ -4226,7 +4096,7 @@ void modulate_extrusion_by_overlapping_layers( // Fragment the path segments by overlapping layers. The overlapping layers are sorted by an increasing print_z. // Trim by the highest overlapping layer first. for (int i_overlapping_layer = int(n_overlapping_layers) - 1; i_overlapping_layer >= 0; -- i_overlapping_layer) { - const PrintObjectSupportMaterial::MyLayer &overlapping_layer = *overlapping_layers[i_overlapping_layer]; + const SupportGeneratorLayer &overlapping_layer = *overlapping_layers[i_overlapping_layer]; ExtrusionPathFragment &frag = path_fragments[i_overlapping_layer]; Polygons polygons_trimming = offset(union_ex(overlapping_layer.polygons), float(scale_(0.5*extrusion_width))); frag.polylines = intersection_pl(path_fragments.back().polylines, polygons_trimming); @@ -4317,7 +4187,7 @@ void modulate_extrusion_by_overlapping_layers( ExtrusionPath *path = multipath.paths.empty() ? nullptr : &multipath.paths.back(); if (path != nullptr) { // Verify whether the path is compatible with the current fragment. - assert(this_layer.layer_type == PrintObjectSupportMaterial::sltBottomContact || path->height != frag.height || path->mm3_per_mm != frag.mm3_per_mm); + assert(this_layer.layer_type == SupporLayerType::BottomContact || path->height != frag.height || path->mm3_per_mm != frag.mm3_per_mm); if (path->height != frag.height || path->mm3_per_mm != frag.mm3_per_mm) { path = nullptr; } @@ -4366,12 +4236,12 @@ void modulate_extrusion_by_overlapping_layers( void PrintObjectSupportMaterial::generate_toolpaths( SupportLayerPtrs &support_layers, - const MyLayersPtr &raft_layers, - const MyLayersPtr &bottom_contacts, - const MyLayersPtr &top_contacts, - const MyLayersPtr &intermediate_layers, - const MyLayersPtr &interface_layers, - const MyLayersPtr &base_interface_layers) const + const SupportGeneratorLayersPtr &raft_layers, + const SupportGeneratorLayersPtr &bottom_contacts, + const SupportGeneratorLayersPtr &top_contacts, + const SupportGeneratorLayersPtr &intermediate_layers, + const SupportGeneratorLayersPtr &interface_layers, + const SupportGeneratorLayersPtr &base_interface_layers) const { // loop_interface_processor with a given circle radius. LoopInterfaceProcessor loop_interface_processor(1.5 * m_support_params.support_material_interface_flow.scaled_width()); @@ -4424,7 +4294,7 @@ void PrintObjectSupportMaterial::generate_toolpaths( assert(support_layer_id < raft_layers.size()); SupportLayer &support_layer = *support_layers[support_layer_id]; assert(support_layer.support_fills.entities.empty()); - MyLayer &raft_layer = *raft_layers[support_layer_id]; + SupportGeneratorLayer &raft_layer = *raft_layers[support_layer_id]; std::unique_ptr filler_interface = std::unique_ptr(Fill::new_from_type(m_support_params.interface_fill_pattern)); std::unique_ptr filler_support = std::unique_ptr(Fill::new_from_type(m_support_params.base_fill_pattern)); @@ -4493,7 +4363,7 @@ void PrintObjectSupportMaterial::generate_toolpaths( struct LayerCacheItem { LayerCacheItem(MyLayerExtruded *layer_extruded = nullptr) : layer_extruded(layer_extruded) {} MyLayerExtruded *layer_extruded; - std::vector overlapping; + std::vector overlapping; }; struct LayerCache { MyLayerExtruded bottom_contact_layer; @@ -4556,7 +4426,7 @@ void PrintObjectSupportMaterial::generate_toolpaths( MyLayerExtruded &base_interface_layer = layer_cache.base_interface_layer; // Increment the layer indices to find a layer at support_layer.print_z. { - auto fun = [&support_layer](const MyLayer *l){ return l->print_z >= support_layer.print_z - EPSILON; }; + auto fun = [&support_layer](const SupportGeneratorLayer *l){ return l->print_z >= support_layer.print_z - EPSILON; }; idx_layer_bottom_contact = idx_higher_or_equal(bottom_contacts, idx_layer_bottom_contact, fun); idx_layer_top_contact = idx_higher_or_equal(top_contacts, idx_layer_top_contact, fun); idx_layer_intermediate = idx_higher_or_equal(intermediate_layers, idx_layer_intermediate, fun); @@ -4706,7 +4576,7 @@ void PrintObjectSupportMaterial::generate_toolpaths( // Filler and its parameters filler_interface.get(), fill_params, // Extrusion parameters - erSupportMaterialInterface, interface_flow); + interface_as_base ? erSupportMaterial : erSupportMaterialInterface, interface_flow); } // Base interface layers under soluble interfaces @@ -4798,12 +4668,12 @@ void PrintObjectSupportMaterial::generate_toolpaths( // Collect overlapping top/bottom surfaces. layer_cache_item.overlapping.reserve(20); coordf_t bottom_z = layer_cache_item.layer_extruded->layer->bottom_print_z() + EPSILON; - auto add_overlapping = [&layer_cache_item, bottom_z](const MyLayersPtr &layers, size_t idx_top) { + auto add_overlapping = [&layer_cache_item, bottom_z](const SupportGeneratorLayersPtr &layers, size_t idx_top) { for (int i = int(idx_top) - 1; i >= 0 && layers[i]->print_z > bottom_z; -- i) layer_cache_item.overlapping.push_back(layers[i]); }; add_overlapping(top_contacts, idx_layer_top_contact); - if (layer_cache_item.layer_extruded->layer->layer_type == sltBottomContact) { + if (layer_cache_item.layer_extruded->layer->layer_type == SupporLayerType::BottomContact) { // Bottom contact layer may overlap with a base layer, which may be changed to interface layer. add_overlapping(intermediate_layers, idx_layer_intermediate); add_overlapping(interface_layers, idx_layer_interface); diff --git a/src/libslic3r/Support/SupportMaterial.hpp b/src/libslic3r/Support/SupportMaterial.hpp index 861126fcbd..809f9b1611 100644 --- a/src/libslic3r/Support/SupportMaterial.hpp +++ b/src/libslic3r/Support/SupportMaterial.hpp @@ -4,7 +4,8 @@ #include "Flow.hpp" #include "PrintConfig.hpp" #include "Slicing.hpp" - +#include "Fill/FillBase.hpp" +#include "SupportLayer.hpp" namespace Slic3r { class PrintObject; @@ -18,107 +19,6 @@ class PrintObjectConfig; class PrintObjectSupportMaterial { public: - // Support layer type to be used by MyLayer. This type carries a much more detailed information - // about the support layer type than the final support layers stored in a PrintObject. - enum SupporLayerType { - sltUnknown = 0, - // Ratft base layer, to be printed with the support material. - sltRaftBase, - // Raft interface layer, to be printed with the support interface material. - sltRaftInterface, - // Bottom contact layer placed over a top surface of an object. To be printed with a support interface material. - sltBottomContact, - // Dense interface layer, to be printed with the support interface material. - // This layer is separated from an object by an sltBottomContact layer. - sltBottomInterface, - // Sparse base support layer, to be printed with a support material. - sltBase, - // Dense interface layer, to be printed with the support interface material. - // This layer is separated from an object with sltTopContact layer. - sltTopInterface, - // Top contact layer directly supporting an overhang. To be printed with a support interface material. - sltTopContact, - // Some undecided type yet. It will turn into sltBase first, then it may turn into sltBottomInterface or sltTopInterface. - sltIntermediate, - }; - - // A support layer type used internally by the SupportMaterial class. This class carries a much more detailed - // information about the support layer than the layers stored in the PrintObject, mainly - // the MyLayer is aware of the bridging flow and the interface gaps between the object and the support. - class MyLayer - { - public: - void reset() { - *this = MyLayer(); - } - - bool operator==(const MyLayer &layer2) const { - return print_z == layer2.print_z && height == layer2.height && bridging == layer2.bridging; - } - - // Order the layers by lexicographically by an increasing print_z and a decreasing layer height. - bool operator<(const MyLayer &layer2) const { - if (print_z < layer2.print_z) { - return true; - } else if (print_z == layer2.print_z) { - if (height > layer2.height) - return true; - else if (height == layer2.height) { - // Bridging layers first. - return bridging && ! layer2.bridging; - } else - return false; - } else - return false; - } - - void merge(MyLayer &&rhs) { - // The union_() does not support move semantic yet, but maybe one day it will. - this->polygons = union_(this->polygons, std::move(rhs.polygons)); - auto merge = [](std::unique_ptr &dst, std::unique_ptr &src) { - if (! dst || dst->empty()) - dst = std::move(src); - else if (src && ! src->empty()) - *dst = union_(*dst, std::move(*src)); - }; - merge(this->contact_polygons, rhs.contact_polygons); - merge(this->overhang_polygons, rhs.overhang_polygons); - merge(this->enforcer_polygons, rhs.enforcer_polygons); - rhs.reset(); - } - - // For the bridging flow, bottom_print_z will be above bottom_z to account for the vertical separation. - // For the non-bridging flow, bottom_print_z will be equal to bottom_z. - coordf_t bottom_print_z() const { return print_z - height; } - - // To sort the extremes of top / bottom interface layers. - coordf_t extreme_z() const { return (this->layer_type == sltTopContact) ? this->bottom_z : this->print_z; } - - SupporLayerType layer_type { sltUnknown }; - // Z used for printing, in unscaled coordinates. - coordf_t print_z { 0 }; - // Bottom Z of this layer. For soluble layers, bottom_z + height = print_z, - // otherwise bottom_z + gap + height = print_z. - coordf_t bottom_z { 0 }; - // Layer height in unscaled coordinates. - coordf_t height { 0 }; - // Index of a PrintObject layer_id supported by this layer. This will be set for top contact layers. - // If this is not a contact layer, it will be set to size_t(-1). - size_t idx_object_layer_above { size_t(-1) }; - // Index of a PrintObject layer_id, which supports this layer. This will be set for bottom contact layers. - // If this is not a contact layer, it will be set to size_t(-1). - size_t idx_object_layer_below { size_t(-1) }; - // Use a bridging flow when printing this support layer. - bool bridging { false }; - - // Polygons to be filled by the support pattern. - Polygons polygons; - // Currently for the contact layers only. - std::unique_ptr contact_polygons; - std::unique_ptr overhang_polygons; - // Enforcers need to be propagated independently in case the "support on build plate only" option is enabled. - std::unique_ptr enforcer_polygons; - }; struct SupportParams { Flow first_layer_flow; @@ -147,12 +47,6 @@ public: bool with_sheath; }; - // Layers are allocated and owned by a deque. Once a layer is allocated, it is maintained - // up to the end of a generate() method. The layer storage may be replaced by an allocator class in the future, - // which would allocate layers by multiple chunks. - typedef std::deque MyLayerStorage; - typedef std::vector MyLayersPtr; - public: PrintObjectSupportMaterial(const PrintObject *object, const SlicingParameters &slicing_params); @@ -176,58 +70,58 @@ private: // Generate top contact layers supporting overhangs. // For a soluble interface material synchronize the layer heights with the object, otherwise leave the layer height undefined. // If supports over bed surface only are requested, don't generate contact layers over an object. - MyLayersPtr top_contact_layers(const PrintObject &object, const std::vector &buildplate_covered, MyLayerStorage &layer_storage) const; + SupportGeneratorLayersPtr top_contact_layers(const PrintObject &object, const std::vector &buildplate_covered, SupportGeneratorLayerStorage &layer_storage) const; // Generate bottom contact layers supporting the top contact layers. // For a soluble interface material synchronize the layer heights with the object, // otherwise set the layer height to a bridging flow of a support interface nozzle. - MyLayersPtr bottom_contact_layers_and_layer_support_areas( - const PrintObject &object, const MyLayersPtr &top_contacts, std::vector &buildplate_covered, - MyLayerStorage &layer_storage, std::vector &layer_support_areas) const; + SupportGeneratorLayersPtr bottom_contact_layers_and_layer_support_areas( + const PrintObject &object, const SupportGeneratorLayersPtr &top_contacts, std::vector &buildplate_covered, + SupportGeneratorLayerStorage &layer_storage, std::vector &layer_support_areas) const; // Trim the top_contacts layers with the bottom_contacts layers if they overlap, so there would not be enough vertical space for both of them. - void trim_top_contacts_by_bottom_contacts(const PrintObject &object, const MyLayersPtr &bottom_contacts, MyLayersPtr &top_contacts) const; + void trim_top_contacts_by_bottom_contacts(const PrintObject &object, const SupportGeneratorLayersPtr &bottom_contacts, SupportGeneratorLayersPtr &top_contacts) const; // Generate raft layers and the intermediate support layers between the bottom contact and top contact surfaces. - MyLayersPtr raft_and_intermediate_support_layers( + SupportGeneratorLayersPtr raft_and_intermediate_support_layers( const PrintObject &object, - const MyLayersPtr &bottom_contacts, - const MyLayersPtr &top_contacts, - MyLayerStorage &layer_storage) const; + const SupportGeneratorLayersPtr &bottom_contacts, + const SupportGeneratorLayersPtr &top_contacts, + SupportGeneratorLayerStorage &layer_storage) const; // Fill in the base layers with polygons. void generate_base_layers( const PrintObject &object, - const MyLayersPtr &bottom_contacts, - const MyLayersPtr &top_contacts, - MyLayersPtr &intermediate_layers, + const SupportGeneratorLayersPtr &bottom_contacts, + const SupportGeneratorLayersPtr &top_contacts, + SupportGeneratorLayersPtr &intermediate_layers, const std::vector &layer_support_areas) const; // Generate raft layers, also expand the 1st support layer // in case there is no raft layer to improve support adhesion. - MyLayersPtr generate_raft_base( + SupportGeneratorLayersPtr generate_raft_base( const PrintObject &object, - const MyLayersPtr &top_contacts, - const MyLayersPtr &interface_layers, - const MyLayersPtr &base_interface_layers, - const MyLayersPtr &base_layers, - MyLayerStorage &layer_storage) const; + const SupportGeneratorLayersPtr &top_contacts, + const SupportGeneratorLayersPtr &interface_layers, + const SupportGeneratorLayersPtr &base_interface_layers, + const SupportGeneratorLayersPtr &base_layers, + SupportGeneratorLayerStorage &layer_storage) const; // Turn some of the base layers into base interface layers. // For soluble interfaces with non-soluble bases, print maximum two first interface layers with the base // extruder to improve adhesion of the soluble filament to the base. - std::pair generate_interface_layers( - const MyLayersPtr &bottom_contacts, - const MyLayersPtr &top_contacts, - MyLayersPtr &intermediate_layers, - MyLayerStorage &layer_storage) const; + std::pair generate_interface_layers( + const SupportGeneratorLayersPtr &bottom_contacts, + const SupportGeneratorLayersPtr &top_contacts, + SupportGeneratorLayersPtr &intermediate_layers, + SupportGeneratorLayerStorage &layer_storage) const; // Trim support layers by an object to leave a defined gap between // the support volume and the object. void trim_support_layers_by_object( const PrintObject &object, - MyLayersPtr &support_layers, + SupportGeneratorLayersPtr &support_layers, const coordf_t gap_extra_above, const coordf_t gap_extra_below, const coordf_t gap_xy) const; @@ -240,12 +134,12 @@ private: // Produce the actual G-code. void generate_toolpaths( SupportLayerPtrs &support_layers, - const MyLayersPtr &raft_layers, - const MyLayersPtr &bottom_contacts, - const MyLayersPtr &top_contacts, - const MyLayersPtr &intermediate_layers, - const MyLayersPtr &interface_layers, - const MyLayersPtr &base_interface_layers) const; + const SupportGeneratorLayersPtr &raft_layers, + const SupportGeneratorLayersPtr &bottom_contacts, + const SupportGeneratorLayersPtr &top_contacts, + const SupportGeneratorLayersPtr &intermediate_layers, + const SupportGeneratorLayersPtr &interface_layers, + const SupportGeneratorLayersPtr &base_interface_layers) const; // Following objects are not owned by SupportMaterial class. const PrintObject *m_object; diff --git a/src/libslic3r/Support/TreeModelVolumes.cpp b/src/libslic3r/Support/TreeModelVolumes.cpp index f082115ea3..9c49c813a9 100644 --- a/src/libslic3r/Support/TreeModelVolumes.cpp +++ b/src/libslic3r/Support/TreeModelVolumes.cpp @@ -66,6 +66,7 @@ TreeModelVolumes::TreeModelVolumes( #endif // SLIC3R_TREESUPPORTS_PROGRESS m_machine_border{ calculateMachineBorderCollision(build_volume.polygon()) } { + m_bed_area = build_volume.polygon(); #if 0 std::unordered_map mesh_to_layeroutline_idx; for (size_t mesh_idx = 0; mesh_idx < storage.meshes.size(); ++ mesh_idx) { @@ -180,7 +181,8 @@ void TreeModelVolumes::precalculate(const PrintObject& print_object, const coord m_ignorable_radii.emplace_back(radius_eval); } - throw_on_cancel(); + if (throw_on_cancel) + throw_on_cancel(); // it may seem that the required avoidance can be of a smaller radius when going to model (no initial layer diameter for to model branches) // but as for every branch going towards the bp, the to model avoidance is required to check for possible merges with to model branches, this assumption is in-fact wrong. @@ -203,7 +205,8 @@ void TreeModelVolumes::precalculate(const PrintObject& print_object, const coord update_radius_until_layer(ceilRadius(config.recommendedMinRadius(current_layer) + m_current_min_xy_dist_delta)); } - throw_on_cancel(); + if (throw_on_cancel) + throw_on_cancel(); // Copy to deque to use in parallel for later. std::vector relevant_avoidance_radiis{ radius_until_layer.begin(), radius_until_layer.end() }; @@ -365,8 +368,7 @@ const Polygons& TreeModelVolumes::getPlaceableAreas(const coord_t orig_radius, L if (orig_radius == 0) // Placable areas for radius 0 are calculated in the general collision code. return this->getCollision(0, layer_idx, true); - else - const_cast(this)->calculatePlaceables(radius, layer_idx, throw_on_cancel); + const_cast(this)->calculatePlaceables(radius, layer_idx, throw_on_cancel); return getPlaceableAreas(orig_radius, layer_idx, throw_on_cancel); } @@ -461,7 +463,8 @@ void TreeModelVolumes::calculateCollision(const coord_t radius, const LayerIndex collision_areas_offsetted[layer_idx] = offset_value == 0 ? union_(collision_areas) : offset(union_ex(collision_areas), offset_value, ClipperLib::jtMiter, 1.2); - throw_on_cancel(); + if(throw_on_cancel) + throw_on_cancel(); } }); @@ -524,7 +527,8 @@ void TreeModelVolumes::calculateCollision(const coord_t radius, const LayerIndex dst = polygons_simplify(collisions, min_resolution, polygons_strictly_simple); } else append(dst, std::move(collisions)); - throw_on_cancel(); + if (throw_on_cancel) + throw_on_cancel(); } }); @@ -551,7 +555,8 @@ void TreeModelVolumes::calculateCollision(const coord_t radius, const LayerIndex dst = polygons_simplify(placable, min_resolution, polygons_strictly_simple); } else append(dst, placable); - throw_on_cancel(); + if (throw_on_cancel) + throw_on_cancel(); } }); } else { @@ -567,7 +572,8 @@ void TreeModelVolumes::calculateCollision(const coord_t radius, const LayerIndex } } #endif - throw_on_cancel(); + if (throw_on_cancel) + throw_on_cancel(); m_collision_cache.insert(std::move(data), radius); if (calculate_placable) m_placeable_areas_cache.insert(std::move(data_placeable), radius); @@ -597,7 +603,8 @@ void TreeModelVolumes::calculateCollisionHolefree(const std::vectorgetCollision(m_increase_until_radius, layer_idx, false)), 5 - increase_radius_ceil, ClipperLib::jtRound, m_min_resolution), m_min_resolution, polygons_strictly_simple)); - throw_on_cancel(); + if (throw_on_cancel) + throw_on_cancel(); } } m_collision_cache_holefree.insert(std::move(data)); @@ -640,7 +647,8 @@ void TreeModelVolumes::calculateAvoidance(const std::vector &ke avoidance_tasks.emplace_back(task); } - throw_on_cancel(); + if(throw_on_cancel) + throw_on_cancel(); tbb::parallel_for(tbb::blocked_range(0, avoidance_tasks.size(), 1), [this, &avoidance_tasks, &throw_on_cancel](const tbb::blocked_range &range) { @@ -685,7 +693,8 @@ void TreeModelVolumes::calculateAvoidance(const std::vector &ke latest_avoidance = diff(latest_avoidance, getPlaceableAreas(task.radius, layer_idx, throw_on_cancel)); latest_avoidance = polygons_simplify(latest_avoidance, m_min_resolution, polygons_strictly_simple); data.emplace_back(RadiusLayerPair{task.radius, layer_idx}, latest_avoidance); - throw_on_cancel(); + if (throw_on_cancel) + throw_on_cancel(); } #ifdef SLIC3R_TREESUPPORTS_PROGRESS { @@ -736,7 +745,8 @@ void TreeModelVolumes::calculatePlaceables(const coord_t radius, const LayerInde // xy_distance that cant support it. Making the area smaller by xy_distance fixes this. - (radius + m_current_min_xy_dist + m_current_min_xy_dist_delta), jtMiter, 1.2); - throw_on_cancel(); + if(throw_on_cancel) + throw_on_cancel(); } }); #ifdef SLIC3R_TREESUPPORTS_PROGRESS @@ -810,7 +820,8 @@ void TreeModelVolumes::calculateWallRestrictions(const std::vectorceilRadius(radius + m_current_min_xy_dist_delta) - m_current_min_xy_dist_delta; } + Polygon m_bed_area; + private: // Caching polygons for a range of layers. class LayerPolygonCache { diff --git a/src/libslic3r/Support/TreeSupport.cpp b/src/libslic3r/Support/TreeSupport.cpp index df81041213..6d6e25ef2b 100644 --- a/src/libslic3r/Support/TreeSupport.cpp +++ b/src/libslic3r/Support/TreeSupport.cpp @@ -669,6 +669,7 @@ static Point bounding_box_middle(const BoundingBox &bbox) TreeSupport::TreeSupport(PrintObject& object, const SlicingParameters &slicing_params) : m_object(&object), m_slicing_params(slicing_params), m_object_config(&object.config()) { + m_print_config = &m_object->print()->config(); m_raft_layers = slicing_params.base_raft_layers + slicing_params.interface_raft_layers; support_type = m_object_config->support_type; support_style = m_object_config->support_style; @@ -705,8 +706,7 @@ TreeSupport::TreeSupport(PrintObject& object, const SlicingParameters &slicing_p tree_support_branch_diameter_angle = 5.0;//is_slim ? 10.0 : 5.0; // by default tree support needs no infill, unless it's tree hybrid which contains normal nodes. with_infill = support_pattern != smpNone && support_pattern != smpDefault; - const PrintConfig& print_config = m_object->print()->config(); - m_machine_border.contour = get_bed_shape_with_excluded_area(print_config); + m_machine_border.contour = get_bed_shape_with_excluded_area(*m_print_config); Vec3d plate_offset = m_object->print()->get_plate_origin(); // align with the centered object in current plate (may not be the 1st plate, so need to add the plate offset) m_machine_border.translate(Point(scale_(plate_offset(0)), scale_(plate_offset(1))) - m_object->instances().front().shift); @@ -1404,10 +1404,9 @@ static void make_perimeter_and_infill(ExtrusionEntitiesPtr& dst, const Print& pr void TreeSupport::generate_toolpaths() { - const PrintConfig &print_config = m_object->print()->config(); const PrintObjectConfig &object_config = m_object->config(); coordf_t support_extrusion_width = m_support_params.support_extrusion_width; - coordf_t nozzle_diameter = print_config.nozzle_diameter.get_at(object_config.support_filament - 1); + coordf_t nozzle_diameter = m_print_config->nozzle_diameter.get_at(object_config.support_filament - 1); coordf_t layer_height = object_config.layer_height.value; const size_t wall_count = object_config.tree_support_wall_count.value; @@ -1882,7 +1881,7 @@ Polygons TreeSupport::contact_nodes_to_polygon(const std::vector& contact void TreeSupport::generate() { if (support_style == smsOrganic) { - generate_tree_support_3D(*m_object, this->throw_on_cancel); + generate_tree_support_3D(*m_object, this, this->throw_on_cancel); return; } diff --git a/src/libslic3r/Support/TreeSupport.hpp b/src/libslic3r/Support/TreeSupport.hpp index 17e146ddcd..2ad8dc1cdb 100644 --- a/src/libslic3r/Support/TreeSupport.hpp +++ b/src/libslic3r/Support/TreeSupport.hpp @@ -403,6 +403,13 @@ public: std::unordered_map printZ_to_lightninglayer; std::function throw_on_cancel; + const PrintConfig* m_print_config; + /*! + * \brief Polygons representing the limits of the printable area of the + * machine + */ + ExPolygon m_machine_border; + private: /*! * \brief Generator for model collision, avoidance and internal guide volumes @@ -429,11 +436,6 @@ private: bool with_infill = false; - /*! - * \brief Polygons representing the limits of the printable area of the - * machine - */ - ExPolygon m_machine_border; /*! * \brief Draws circles around each node of the tree into the final support. diff --git a/src/libslic3r/Support/TreeSupport3D.cpp b/src/libslic3r/Support/TreeSupport3D.cpp index c96801e008..98dc41f486 100644 --- a/src/libslic3r/Support/TreeSupport3D.cpp +++ b/src/libslic3r/Support/TreeSupport3D.cpp @@ -7,8 +7,6 @@ // CuraEngine is released under the terms of the AGPLv3 or higher. #include "TreeSupport3D.hpp" -#include "TreeSupportCommon.hpp" -#include "SupportCommon.hpp" #include "../AABBTreeIndirect.hpp" #include "../BuildVolume.hpp" @@ -21,6 +19,9 @@ #include "../Polygon.hpp" #include "../Polyline.hpp" #include "../MutablePolygon.hpp" +#include "TreeSupportCommon.hpp" +#include "SupportCommon.hpp" +#include "TreeSupport.hpp" #include "libslic3r.h" #include @@ -34,6 +35,7 @@ #include #include +#include #if defined(TREE_SUPPORT_SHOW_ERRORS) && defined(_WIN32) #define TREE_SUPPORT_SHOW_ERRORS_WIN32 @@ -239,7 +241,7 @@ static std::vector>> group_me for (const LayerRegion *layerm : lower_layer.regions()) external_perimeter_width += layerm->flow(frExternalPerimeter).scaled_width(); external_perimeter_width /= lower_layer.region_count(); - lower_layer_offset = float(0.5 * external_perimeter_width); + lower_layer_offset = external_perimeter_width - float(scale_(config.support_threshold_overlap.get_abs_value(unscale_(external_perimeter_width)))); } else lower_layer_offset = scaled(lower_layer.height / tan_threshold); overhangs = lower_layer_offset == 0 ? @@ -4106,13 +4108,14 @@ static void generate_support_areas(Print &print, const BuildVolume &build_volume continue; // Produce the support G-code. - // Used by both classic and tree supports. - SupportGeneratorLayersPtr raft_layers = generate_raft_base(print_object, support_params, print_object.slicing_parameters(), - top_contacts, interface_layers, base_interface_layers, intermediate_layers, layer_storage); -#if 1 //#ifdef SLIC3R_DEBUG - SupportGeneratorLayersPtr layers_sorted = -#endif // SLIC3R_DEBUG - generate_support_layers(print_object, raft_layers, bottom_contacts, top_contacts, intermediate_layers, interface_layers, base_interface_layers); + SupportGeneratorLayersPtr raft_layers = generate_raft_base(print_object, support_params, print_object.slicing_parameters(), top_contacts, interface_layers, base_interface_layers, intermediate_layers, layer_storage); + SupportGeneratorLayersPtr layers_sorted = generate_support_layers(print_object, raft_layers, bottom_contacts, top_contacts, intermediate_layers, interface_layers, base_interface_layers); + + // BBS: This is a hack to avoid the support being generated outside the bed area. See #4769. + tbb::parallel_for_each(layers_sorted.begin(), layers_sorted.end(), [&](SupportGeneratorLayer *layer) { + if (layer) layer->polygons = intersection(layer->polygons, volumes.m_bed_area); + }); + // Don't fill in the tree supports, make them hollow with just a single sheath line. generate_support_toolpaths(print_object.support_layers(), print_object.config(), support_params, print_object.slicing_parameters(), raft_layers, bottom_contacts, top_contacts, intermediate_layers, interface_layers, base_interface_layers); @@ -4363,9 +4366,10 @@ void organic_draw_branches( std::vector slices = slice_mesh(partial_mesh, slice_z, mesh_slicing_params, throw_on_cancel); bottom_contacts.clear(); //FIXME parallelize? - for (LayerIndex i = 0; i < LayerIndex(slices.size()); ++ i) - slices[i] = diff_clipped(slices[i], volumes.getCollision(0, layer_begin + i, true)); //FIXME parent_uses_min || draw_area.element->state.use_min_xy_dist); - + for (LayerIndex i = 0; i < LayerIndex(slices.size()); ++i) { + slices[i] = diff_clipped(slices[i], volumes.getCollision(0, layer_begin + i, true)); // FIXME parent_uses_min || draw_area.element->state.use_min_xy_dist); + slices[i] = intersection(slices[i], volumes.m_bed_area); + } size_t num_empty = 0; if (slices.front().empty()) { // Some of the initial layers are empty. @@ -4568,7 +4572,7 @@ void organic_draw_branches( } // namespace TreeSupport3D -void generate_tree_support_3D(PrintObject &print_object, std::function throw_on_cancel) +void generate_tree_support_3D(PrintObject &print_object, TreeSupport* tree_support, std::function throw_on_cancel) { size_t idx = 0; for (const PrintObject *po : print_object.print()->objects()) { @@ -4576,9 +4580,13 @@ void generate_tree_support_3D(PrintObject &print_object, std::function t break; ++idx; } - TreeSupport3D::generate_support_areas(*print_object.print(), - BuildVolume(Pointfs{ Vec2d{ -300., -300. }, Vec2d{ -300., +300. }, Vec2d{ +300., +300. }, Vec2d{ +300., -300. } }, 0.), { idx }, - throw_on_cancel); + + Points bedpts = tree_support->m_machine_border.contour.points; + Pointfs bedptsf; + std::transform(bedpts.begin(), bedpts.end(), std::back_inserter(bedptsf), [](const Point &p) { return unscale(p); }); + BuildVolume build_volume{ bedptsf, tree_support->m_print_config->printable_height }; + + TreeSupport3D::generate_support_areas(*print_object.print(), build_volume, { idx }, throw_on_cancel); } } // namespace Slic3r diff --git a/src/libslic3r/Support/TreeSupport3D.hpp b/src/libslic3r/Support/TreeSupport3D.hpp index 46e8141231..311df504b7 100644 --- a/src/libslic3r/Support/TreeSupport3D.hpp +++ b/src/libslic3r/Support/TreeSupport3D.hpp @@ -310,7 +310,7 @@ void organic_draw_branches( } // namespace TreeSupport3D -void generate_tree_support_3D(PrintObject &print_object, std::function throw_on_cancel = []{}); +void generate_tree_support_3D(PrintObject &print_object, TreeSupport* tree_support, std::function throw_on_cancel = []{}); } // namespace Slic3r diff --git a/src/libslic3r/Surface.hpp b/src/libslic3r/Surface.hpp index 4fd0350602..b63c283251 100644 --- a/src/libslic3r/Surface.hpp +++ b/src/libslic3r/Surface.hpp @@ -13,12 +13,16 @@ enum SurfaceType { stBottom, // Bottom horizontal surface, visible from the bottom, unsupported, printed with a bridging extrusion flow. stBottomBridge, + // Second bridge surface above a bottom bridge. + stInternalAfterExternalBridge, // Normal sparse infill. stInternal, // Full infill, supporting the top surfaces and/or defining the verticall wall thickness. stInternalSolid, // 1st layer of dense infill over sparse infill, printed with a bridging extrusion flow. stInternalBridge, + // 2nd layer of dense infill over sparse infill, printed with a bridging extrusion flow. + stSecondInternalBridge, // stInternal turns into void surfaces if the sparse infill is used for supports only, // or if sparse infill layers get combined into a single layer. stInternalVoid, diff --git a/src/libslic3r/libslic3r.h b/src/libslic3r/libslic3r.h index 798ea77d76..9df346e708 100644 --- a/src/libslic3r/libslic3r.h +++ b/src/libslic3r/libslic3r.h @@ -65,9 +65,8 @@ static constexpr double LARGE_BED_THRESHOLD = 2147; static constexpr size_t MAXIMUM_EXTRUDER_NUMBER = 64; extern double SCALING_FACTOR; -// for creating circles (for brim_ear) -#define POLY_SIDES 24 static constexpr double PI = 3.141592653589793238; +#define POLY_SIDE_COUNT 24 // for brim ear circle // When extruding a closed loop, the loop is interrupted and shortened a bit to reduce the seam. // SoftFever: replaced by seam_gap now // static constexpr double LOOP_CLIPPING_LENGTH_OVER_NOZZLE_DIAMETER = 0.15; diff --git a/src/platform/unix/OrcaSlicer.desktop b/src/platform/unix/OrcaSlicer.desktop index 9a46c4f24f..c28ce56d44 100644 --- a/src/platform/unix/OrcaSlicer.desktop +++ b/src/platform/unix/OrcaSlicer.desktop @@ -5,7 +5,7 @@ Icon=OrcaSlicer Exec=orca-slicer %U Terminal=false Type=Application -MimeType=model/stl;model/3mf;application/vnd.ms-3mfdocument;application/prs.wavefront-obj;application/x-amf; +MimeType=model/stl;model/3mf;application/vnd.ms-3mfdocument;application/prs.wavefront-obj;application/x-amf;x-scheme-handler/orcaslicer; Categories=Graphics;3DGraphics;Engineering; Keywords=3D;Printing;Slicer;slice;3D;printer;convert;gcode;stl;obj;amf;SLA StartupNotify=false diff --git a/src/slic3r/CMakeLists.txt b/src/slic3r/CMakeLists.txt index 10d3f37648..1e5ae34510 100644 --- a/src/slic3r/CMakeLists.txt +++ b/src/slic3r/CMakeLists.txt @@ -145,6 +145,8 @@ set(SLIC3R_GUI_SOURCES #GUI/Gizmos/GLGizmoFaceDetector.hpp GUI/Gizmos/GLGizmoMeasure.cpp GUI/Gizmos/GLGizmoMeasure.hpp + GUI/Gizmos/GLGizmoBrimEars.cpp + GUI/Gizmos/GLGizmoBrimEars.hpp GUI/Gizmos/GLGizmoAssembly.cpp GUI/Gizmos/GLGizmoAssembly.hpp GUI/Gizmos/GLGizmoSeam.cpp @@ -567,6 +569,9 @@ set(SLIC3R_GUI_SOURCES GUI/Jobs/OAuthJob.hpp Utils/SimplyPrint.cpp Utils/SimplyPrint.hpp + Utils/ElegooLink.hpp + Utils/ElegooLink.cpp + Utils/WebSocketClient.hpp ) if (WIN32) @@ -616,7 +621,8 @@ source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES ${SLIC3R_GUI_SOURCES}) encoding_check(libslic3r_gui) -target_link_libraries(libslic3r_gui libslic3r cereal::cereal imgui imguizmo minilzo GLEW::GLEW OpenGL::GL hidapi ${wxWidgets_LIBRARIES} glfw libcurl OpenSSL::SSL OpenSSL::Crypto) +find_package(libnoise REQUIRED) +target_link_libraries(libslic3r_gui libslic3r cereal::cereal imgui imguizmo minilzo GLEW::GLEW OpenGL::GL hidapi ${wxWidgets_LIBRARIES} glfw libcurl OpenSSL::SSL OpenSSL::Crypto noise::noise) if (MSVC) target_link_libraries(libslic3r_gui Setupapi.lib) diff --git a/src/slic3r/GUI/3DBed.cpp b/src/slic3r/GUI/3DBed.cpp index 9d73383096..5c843f4cbe 100644 --- a/src/slic3r/GUI/3DBed.cpp +++ b/src/slic3r/GUI/3DBed.cpp @@ -246,7 +246,7 @@ void Bed3D::Axes::render() //BBS: add part plate logic bool Bed3D::set_shape(const Pointfs& printable_area, const double printable_height, const std::string& custom_model, bool force_as_custom, - const Vec2d position, bool with_reset) + const Vec2d& position, bool with_reset) { /*auto check_texture = [](const std::string& texture) { boost::system::error_code ec; // so the exists call does not throw (e.g. after a permission problem) @@ -612,7 +612,7 @@ void Bed3D::render_system(GLCanvas3D& canvas, const Transform3d& view_matrix, co void Bed3D::update_model_offset() { // move the model so that its origin (0.0, 0.0, 0.0) goes into the bed shape center and a bit down to avoid z-fighting with the texture quad - Vec3d shift = m_extended_bounding_box.center(); + Vec3d shift = m_build_volume.bounding_volume().center(); shift(2) = -0.03; Vec3d* model_offset_ptr = const_cast(&m_model_offset); *model_offset_ptr = shift; diff --git a/src/slic3r/GUI/3DBed.hpp b/src/slic3r/GUI/3DBed.hpp index ed19e24b53..1f3d3aab8a 100644 --- a/src/slic3r/GUI/3DBed.hpp +++ b/src/slic3r/GUI/3DBed.hpp @@ -121,7 +121,7 @@ public: // as this class does not use it, thus there is no need to update the UI. // BBS bool set_shape(const Pointfs& printable_area, const double printable_height, const std::string& custom_model, bool force_as_custom = false, - const Vec2d position = Vec2d::Zero(), bool with_reset = true); + const Vec2d& position = Vec2d::Zero(), bool with_reset = true); void set_position(Vec2d& position); void set_axes_mode(bool origin); diff --git a/src/slic3r/GUI/AMSMaterialsSetting.cpp b/src/slic3r/GUI/AMSMaterialsSetting.cpp index 2ceab92c1b..95ea0c7650 100644 --- a/src/slic3r/GUI/AMSMaterialsSetting.cpp +++ b/src/slic3r/GUI/AMSMaterialsSetting.cpp @@ -258,7 +258,7 @@ void AMSMaterialsSetting::create_panel_normal(wxWindow* parent) m_panel_SN->Fit(); wxBoxSizer* m_tip_sizer = new wxBoxSizer(wxHORIZONTAL); - m_tip_readonly = new Label(parent, _L("Setting AMS slot information while printing is not supported")); + m_tip_readonly = new Label(parent, L""); m_tip_readonly->SetForegroundColour(*wxBLACK); m_tip_readonly->SetBackgroundColour(*wxWHITE); m_tip_readonly->SetMinSize(wxSize(FromDIP(380), -1)); @@ -413,20 +413,27 @@ void AMSMaterialsSetting::update() void AMSMaterialsSetting::enable_confirm_button(bool en) { - m_button_confirm->Show(en); + m_tip_readonly->SetLabelText(wxEmptyString); + + if (!en) { + m_button_confirm->Show(obj->is_support_filament_setting_inprinting); + } + else { + m_button_confirm->Show(en); + } + if (!m_is_third) { m_tip_readonly->Hide(); } else { - //m_comboBox_filament->Show(en); - //m_readonly_filament->Show(!en); + if (!obj->is_support_filament_setting_inprinting) { + if (!is_virtual_tray()) { + m_tip_readonly->SetLabelText(_L("Setting AMS slot information while printing is not supported")); + } else { + m_tip_readonly->SetLabelText(_L("Setting Virtual slot information while printing is not supported")); + } + } - if ( !is_virtual_tray() ) { - m_tip_readonly->SetLabelText(_L("Setting AMS slot information while printing is not supported")); - } - else { - m_tip_readonly->SetLabelText(_L("Setting Virtual slot information while printing is not supported")); - } m_tip_readonly->Wrap(FromDIP(380)); m_tip_readonly->Show(!en); } @@ -705,9 +712,14 @@ void AMSMaterialsSetting::on_picker_color(wxCommandEvent& event) void AMSMaterialsSetting::on_clr_picker(wxMouseEvent &event) { - if(!m_is_third || obj->is_in_printing() || obj->can_resume()) + if(!m_is_third) return; + if (obj->is_in_printing() || obj->can_resume()) { + if (!obj->is_support_filament_setting_inprinting) { + return; + } + } std::vector ams_colors; for (auto ams_it = obj->amsList.begin(); ams_it != obj->amsList.end(); ++ams_it) { @@ -922,8 +934,8 @@ void AMSMaterialsSetting::Popup(wxString filament, wxString sn, wxString temp_mi } m_button_reset->Show(); - m_button_confirm->Show(); - } + //m_button_confirm->Show(); + } m_comboBox_filament->Set(filament_items); m_comboBox_filament->SetSelection(selection_idx); diff --git a/src/slic3r/GUI/AboutDialog.cpp b/src/slic3r/GUI/AboutDialog.cpp index 435cc62bb4..c11da9858d 100644 --- a/src/slic3r/GUI/AboutDialog.cpp +++ b/src/slic3r/GUI/AboutDialog.cpp @@ -219,7 +219,7 @@ AboutDialog::AboutDialog() std::string icon_path = (boost::format("%1%/images/OrcaSlicerTitle.ico") % resources_dir()).str(); SetIcon(wxIcon(encode_path(icon_path.c_str()), wxBITMAP_TYPE_ICO)); - wxPanel *m_panel = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxSize(FromDIP(560), FromDIP(237)), wxTAB_TRAVERSAL); + wxPanel* m_panel = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxSize(FromDIP(560), FromDIP(125)), wxTAB_TRAVERSAL); wxBoxSizer *panel_versizer = new wxBoxSizer(wxVERTICAL); wxBoxSizer *vesizer = new wxBoxSizer(wxVERTICAL); @@ -232,8 +232,10 @@ AboutDialog::AboutDialog() main_sizer->Add(m_panel, 1, wxEXPAND | wxALL, 0); main_sizer->Add(ver_sizer, 0, wxEXPAND | wxALL, 0); + bool is_dark = wxGetApp().app_config->get("dark_color_mode") == "1"; + // logo - m_logo_bitmap = ScalableBitmap(this, "OrcaSlicer_about", 250); + m_logo_bitmap = ScalableBitmap(this, is_dark ? "OrcaSlicer_about_dark" : "OrcaSlicer_about", FromDIP(125)); m_logo = new wxStaticBitmap(this, wxID_ANY, m_logo_bitmap.bmp(), wxDefaultPosition,wxDefaultSize, 0); m_logo->SetSizer(vesizer); @@ -242,33 +244,31 @@ AboutDialog::AboutDialog() // version { - auto _build_string_font = Label::Body_10; + auto _build_string_font = Label::Body_12; // _build_string_font.SetStyle(wxFONTSTYLE_ITALIC); - vesizer->Add(0, FromDIP(165), 1, wxEXPAND, FromDIP(5)); - auto version_string = _L("Orca Slicer") + " " + std::string(SoftFever_VERSION); + vesizer->Add(0, 0, 1, wxEXPAND, FromDIP(5)); + auto version_string = std::string(SoftFever_VERSION); // _L("Orca Slicer ") + " " + std::string(SoftFever_VERSION); wxStaticText* version = new wxStaticText(this, wxID_ANY, version_string.c_str(), wxDefaultPosition, wxDefaultSize); - wxStaticText* credits_string = new wxStaticText(this, wxID_ANY, - wxString::Format("Build %s.\nOrcaSlicer is based on PrusaSlicer and BambuStudio", - std::string(GIT_COMMIT_HASH)), - wxDefaultPosition, wxDefaultSize); + wxStaticText* credits_string = new wxStaticText(this, wxID_ANY, wxString::Format("Build %s", std::string(GIT_COMMIT_HASH)), wxDefaultPosition, wxDefaultSize); credits_string->SetFont(_build_string_font); wxFont version_font = GetFont(); #ifdef __WXMSW__ - version_font.SetPointSize(version_font.GetPointSize()-1); + version_font.SetPointSize(version_font.GetPointSize()-1); #else version_font.SetPointSize(11); #endif - version_font.SetPointSize(FromDIP(16)); + version_font.SetPointSize(FromDIP(20)); version->SetFont(version_font); - version->SetForegroundColour(wxColour("#FFFFFD")); - credits_string->SetForegroundColour(wxColour("#FFFFFD")); - version->SetBackgroundColour(wxColour("#4d4d4d")); - credits_string->SetBackgroundColour(wxColour("#4d4d4d")); + version->SetForegroundColour(wxColour("#949494")); + credits_string->SetForegroundColour(wxColour("#949494")); + version->SetBackgroundColour(wxColour("#FFFFFF")); + credits_string->SetBackgroundColour(wxColour("#FFFFFF")); - vesizer->Add(version, 0, wxALL | wxALIGN_CENTER_HORIZONTAL, FromDIP(5)); - vesizer->Add(credits_string, 0, wxALL | wxALIGN_CENTER_HORIZONTAL, FromDIP(5)); -// #if BBL_INTERNAL_TESTING + vesizer->Add(version, 0, wxRIGHT | wxALIGN_RIGHT, FromDIP(20)); + vesizer->AddSpacer(FromDIP(5)); + vesizer->Add(credits_string, 0, wxRIGHT | wxALIGN_RIGHT, FromDIP(20)); + // #if BBL_INTERNAL_TESTING // wxString build_time = wxString::Format("Build Time: %s", std::string(SLIC3R_BUILD_TIME)); // wxStaticText* build_time_text = new wxStaticText(this, wxID_ANY, build_time, wxDefaultPosition, wxDefaultSize); // build_time_text->SetForegroundColour(wxColour("#FFFFFE")); diff --git a/src/slic3r/GUI/AmsMappingPopup.cpp b/src/slic3r/GUI/AmsMappingPopup.cpp index 492926b952..3403f1ec51 100644 --- a/src/slic3r/GUI/AmsMappingPopup.cpp +++ b/src/slic3r/GUI/AmsMappingPopup.cpp @@ -907,7 +907,7 @@ AmsHumidityTipPopup::AmsHumidityTipPopup(wxWindow* parent) close_img = ScalableBitmap(this, "hum_popup_close", 24); - m_staticText = new Label(this, _L("Current Cabin humidity")); + m_staticText = new Label(this, _L("Current AMS humidity")); m_staticText->SetFont(::Label::Head_24); humidity_level_list = new AmsHumidityLevelList(this); diff --git a/src/slic3r/GUI/BindDialog.cpp b/src/slic3r/GUI/BindDialog.cpp index 1536da840f..3f4d3562b7 100644 --- a/src/slic3r/GUI/BindDialog.cpp +++ b/src/slic3r/GUI/BindDialog.cpp @@ -2,10 +2,10 @@ #include "GUI_App.hpp" #include +#include #include #include #include "wx/evtloop.h" -#include #include #include #include @@ -760,7 +760,7 @@ PingCodeBindDialog::~PingCodeBindDialog() { json j = json::parse(str.utf8_string()); if (j.contains("err_code")) { int error_code = j["err_code"].get(); - extra = wxGetApp().get_hms_query()->query_print_error_msg(error_code); + wxGetApp().get_hms_query()->query_print_error_msg(error_code, extra); } } catch (...) { diff --git a/src/slic3r/GUI/ConfigManipulation.cpp b/src/slic3r/GUI/ConfigManipulation.cpp index 4bfcf18cf0..deb8f66da9 100644 --- a/src/slic3r/GUI/ConfigManipulation.cpp +++ b/src/slic3r/GUI/ConfigManipulation.cpp @@ -527,6 +527,8 @@ void ConfigManipulation::toggle_print_fff_options(DynamicPrintConfig *config, co bool has_spiral_vase = config->opt_bool("spiral_mode"); toggle_line("spiral_mode_smooth", has_spiral_vase); toggle_line("spiral_mode_max_xy_smoothing", has_spiral_vase && config->opt_bool("spiral_mode_smooth")); + toggle_line("spiral_starting_flow_ratio", has_spiral_vase); + toggle_line("spiral_finishing_flow_ratio", has_spiral_vase); bool has_top_solid_infill = config->opt_int("top_shell_layers") > 0; bool has_bottom_solid_infill = config->opt_int("bottom_shell_layers") > 0; bool has_solid_infill = has_top_solid_infill || has_bottom_solid_infill; @@ -535,7 +537,7 @@ void ConfigManipulation::toggle_print_fff_options(DynamicPrintConfig *config, co toggle_field(el, has_solid_infill); for (auto el : { "infill_direction", "sparse_infill_line_width", - "sparse_infill_speed", "bridge_speed", "internal_bridge_speed", "bridge_angle","solid_infill_direction", "rotate_solid_infill_direction" }) + "sparse_infill_speed", "bridge_speed", "internal_bridge_speed", "bridge_angle","internal_bridge_angle","solid_infill_direction", "rotate_solid_infill_direction" }) toggle_field(el, have_infill || has_solid_infill); toggle_field("top_shell_thickness", ! has_spiral_vase && has_top_solid_infill); @@ -567,7 +569,8 @@ void ConfigManipulation::toggle_print_fff_options(DynamicPrintConfig *config, co bool have_brim = (config->opt_enum("brim_type") != btNoBrim); toggle_field("brim_object_gap", have_brim); - bool have_brim_width = (config->opt_enum("brim_type") != btNoBrim) && config->opt_enum("brim_type") != btAutoBrim; + bool have_brim_width = (config->opt_enum("brim_type") != btNoBrim) && config->opt_enum("brim_type") != btAutoBrim && + config->opt_enum("brim_type") != btPainted; toggle_field("brim_width", have_brim_width); // wall_filament uses the same logic as in Print::extruders() toggle_field("wall_filament", have_perimeters || have_brim); @@ -599,6 +602,7 @@ void ConfigManipulation::toggle_print_fff_options(DynamicPrintConfig *config, co "support_object_xy_distance"/*, "independent_support_layer_height"*/}) toggle_field(el, have_support_material); toggle_field("support_threshold_angle", have_support_material && is_auto(support_type)); + toggle_field("support_threshold_overlap", config->opt_int("support_threshold_angle") == 0 && have_support_material && is_auto(support_type)); //toggle_field("support_closing_radius", have_support_material && support_style == smsSnug); bool support_is_tree = config->opt_bool("enable_support") && is_tree(support_type); @@ -707,9 +711,14 @@ void ConfigManipulation::toggle_print_fff_options(DynamicPrintConfig *config, co toggle_line("support_interface_not_for_body",config->opt_int("support_interface_filament")&&!config->opt_int("support_filament")); bool has_fuzzy_skin = (config->opt_enum("fuzzy_skin") != FuzzySkinType::None); - for (auto el : { "fuzzy_skin_thickness", "fuzzy_skin_point_distance", "fuzzy_skin_first_layer"}) + for (auto el : { "fuzzy_skin_thickness", "fuzzy_skin_point_distance", "fuzzy_skin_first_layer", "fuzzy_skin_noise_type"}) toggle_line(el, has_fuzzy_skin); + NoiseType fuzzy_skin_noise_type = config->opt_enum("fuzzy_skin_noise_type"); + toggle_line("fuzzy_skin_scale", has_fuzzy_skin && fuzzy_skin_noise_type != NoiseType::Classic); + toggle_line("fuzzy_skin_octaves", has_fuzzy_skin && fuzzy_skin_noise_type != NoiseType::Classic && fuzzy_skin_noise_type != NoiseType::Voronoi); + toggle_line("fuzzy_skin_persistence", has_fuzzy_skin && (fuzzy_skin_noise_type == NoiseType::Perlin || fuzzy_skin_noise_type == NoiseType::Billow)); + bool have_arachne = config->opt_enum("wall_generator") == PerimeterGeneratorType::Arachne; for (auto el : { "wall_transition_length", "wall_transition_filter_deviation", "wall_transition_angle", "min_feature_size", "min_length_factor", "min_bead_width", "wall_distribution_count", "initial_layer_min_bead_width"}) @@ -776,6 +785,10 @@ void ConfigManipulation::toggle_print_fff_options(DynamicPrintConfig *config, co toggle_line("interlocking_beam_layer_count", use_beam_interlocking); toggle_line("interlocking_depth", use_beam_interlocking); toggle_line("interlocking_boundary_avoidance", use_beam_interlocking); + + bool lattice_options = config->opt_enum("sparse_infill_pattern") == InfillPattern::ip2DLattice; + for (auto el : { "lattice_angle_1", "lattice_angle_2"}) + toggle_line(el, lattice_options); } void ConfigManipulation::update_print_sla_config(DynamicPrintConfig* config, const bool is_global_config/* = false*/) diff --git a/src/slic3r/GUI/ConfigWizard.cpp b/src/slic3r/GUI/ConfigWizard.cpp index 1768d8cd47..f6c059e540 100644 --- a/src/slic3r/GUI/ConfigWizard.cpp +++ b/src/slic3r/GUI/ConfigWizard.cpp @@ -123,18 +123,18 @@ BundleMap BundleMap::load() const auto vendor_dir = (boost::filesystem::path(Slic3r::data_dir()) / PRESET_SYSTEM_DIR).make_preferred(); const auto rsrc_vendor_dir = (boost::filesystem::path(resources_dir()) / "profiles").make_preferred(); - //BBS: add BBL as default - //BBS: add json logic for vendor bundle - auto bbl_bundle_path = (vendor_dir / PresetBundle::BBL_BUNDLE).replace_extension(".json"); - auto bbl_bundle_rsrc = false; - if (!boost::filesystem::exists(bbl_bundle_path)) { - bbl_bundle_path = (rsrc_vendor_dir / PresetBundle::BBL_BUNDLE).replace_extension(".json"); - bbl_bundle_rsrc = true; + //Orca: add custom as default + //Orca: add json logic for vendor bundle + auto orca_bundle_path = (vendor_dir / PresetBundle::ORCA_DEFAULT_BUNDLE).replace_extension(".json"); + auto orca_bundle_rsrc = false; + if (!boost::filesystem::exists(orca_bundle_path)) { + orca_bundle_path = (rsrc_vendor_dir / PresetBundle::ORCA_DEFAULT_BUNDLE).replace_extension(".json"); + orca_bundle_rsrc = true; } { Bundle bbl_bundle; - if (bbl_bundle.load(std::move(bbl_bundle_path), bbl_bundle_rsrc, true)) - res.emplace(PresetBundle::BBL_BUNDLE, std::move(bbl_bundle)); + if (bbl_bundle.load(std::move(orca_bundle_path), orca_bundle_rsrc, true)) + res.emplace(PresetBundle::ORCA_DEFAULT_BUNDLE, std::move(bbl_bundle)); } // Load the other bundles in the datadir/vendor directory @@ -163,10 +163,10 @@ BundleMap BundleMap::load() Bundle& BundleMap::bbl_bundle() { - //BBS: add BBL as default - auto it = find(PresetBundle::BBL_BUNDLE); + //Orca: add custom as default + auto it = find(PresetBundle::ORCA_DEFAULT_BUNDLE); if (it == end()) { - throw Slic3r::RuntimeError("ConfigWizard: Internal error in BundleMap: BBL_BUNDLE not loaded"); + throw Slic3r::RuntimeError("ConfigWizard: Internal error in BundleMap: ORCA_DEFAULT_BUNDLE not loaded"); } return it->second; @@ -625,12 +625,11 @@ std::set PagePrinters::get_selected_models() void PagePrinters::set_run_reason(ConfigWizard::RunReason run_reason) { - //BBS: add BBL as default + //Orca: add custom as default if (is_primary_printer_page && (run_reason == ConfigWizard::RR_DATA_EMPTY || run_reason == ConfigWizard::RR_DATA_LEGACY) && printer_pickers.size() > 0 - && printer_pickers[0]->vendor_id == PresetBundle::BBL_BUNDLE) { - //BBS: select alll bbs machine by default + && printer_pickers[0]->vendor_id == PresetBundle::ORCA_DEFAULT_BUNDLE) { //printer_pickers[0]->select_one(0, true); printer_pickers[0]->select_all(true); } @@ -1941,8 +1940,8 @@ void ConfigWizard::priv::create_3rdparty_pages() { for (const auto &pair : bundles) { const VendorProfile *vendor = pair.second.vendor_profile; - //BBS: add BBL as default - if (vendor->id == PresetBundle::BBL_BUNDLE) { continue; } + //Orca: add custom as default + if (vendor->id == PresetBundle::ORCA_DEFAULT_BUNDLE) { continue; } bool is_fff_technology = false; bool is_sla_technology = false; diff --git a/src/slic3r/GUI/DeviceManager.cpp b/src/slic3r/GUI/DeviceManager.cpp index 1ce29c28a3..66bcb7ca82 100644 --- a/src/slic3r/GUI/DeviceManager.cpp +++ b/src/slic3r/GUI/DeviceManager.cpp @@ -18,6 +18,7 @@ #include #include #include "fast_float/fast_float.h" +#include #define CALI_DEBUG #define MINUTE_30 1800000 //ms @@ -430,7 +431,7 @@ std::string MachineObject::get_ftp_folder() return DeviceManager::get_ftp_folder(printer_type); } -std::string MachineObject::get_access_code() +std::string MachineObject::get_access_code() const { if (get_user_access_code().empty()) return access_code; @@ -444,6 +445,7 @@ void MachineObject::set_access_code(std::string code, bool only_refresh) AppConfig* config = GUI::wxGetApp().app_config; if (config && !code.empty()) { GUI::wxGetApp().app_config->set_str("access_code", dev_id, code); + DeviceManager::update_local_machine(*this); } } } @@ -465,11 +467,12 @@ void MachineObject::set_user_access_code(std::string code, bool only_refresh) AppConfig* config = GUI::wxGetApp().app_config; if (config && !code.empty()) { GUI::wxGetApp().app_config->set_str("user_access_code", dev_id, code); + DeviceManager::update_local_machine(*this); } } } -std::string MachineObject::get_user_access_code() +std::string MachineObject::get_user_access_code() const { AppConfig* config = GUI::wxGetApp().app_config; if (config) { @@ -478,7 +481,7 @@ std::string MachineObject::get_user_access_code() return ""; } -bool MachineObject::is_lan_mode_printer() +bool MachineObject::is_lan_mode_printer() const { bool result = false; if (!dev_connection_type.empty() && dev_connection_type == "lan") @@ -1430,7 +1433,9 @@ void MachineObject::parse_status(int flag) sdcard_state = MachineObject::SdcardState((flag >> 8) & 0x11); - network_wired = ((flag >> 18) & 0x1) != 0; + is_support_agora = ((flag >> 30) & 0x1) != 0; + if (is_support_agora) + is_support_tunnel_mqtt = false; } PrintingSpeedLevel MachineObject::_parse_printing_speed_lvl(int lvl) @@ -1845,7 +1850,8 @@ int MachineObject::command_ams_calibrate(int ams_id) int MachineObject::command_ams_filament_settings(int ams_id, int tray_id, std::string filament_id, std::string setting_id, std::string tray_color, std::string tray_type, int nozzle_temp_min, int nozzle_temp_max) { BOOST_LOG_TRIVIAL(info) << "command_ams_filament_settings, ams_id = " << ams_id << ", tray_id = " << tray_id << ", tray_color = " << tray_color - << ", tray_type = " << tray_type << ", setting_id = " << setting_id << ", temp_min: = " << nozzle_temp_min << ", temp_max: = " << nozzle_temp_max; + << ", tray_type = " << tray_type << ", filament_id = " << filament_id + << ", setting_id = " << setting_id << ", temp_min: = " << nozzle_temp_min << ", temp_max: = " << nozzle_temp_max; json j; j["print"]["command"] = "ams_filament_setting"; j["print"]["sequence_id"] = std::to_string(MachineObject::m_sequence_id++); @@ -2664,7 +2670,6 @@ std::string MachineObject::setting_id_to_type(std::string setting_id, std::strin if (type.empty()) { type = tray_type; } BOOST_LOG_TRIVIAL(info) << "The values of tray_info_idx and tray_type do not match tray_info_idx " << setting_id << " tray_type " << tray_type << " system_type" << type; } - return type; } @@ -2696,7 +2701,6 @@ int MachineObject::parse_json(std::string payload, bool key_field_only) if (j_pre.empty()) { return 0; } - if (j_pre.contains("print")) { if (m_active_state == NotActive) m_active_state = Active; if (j_pre["print"].contains("command")) { @@ -2902,7 +2906,7 @@ int MachineObject::parse_json(std::string payload, bool key_field_only) } if (!key_field_only) { - if (!DeviceManager::EnableMultiMachine) { + if (!DeviceManager::EnableMultiMachine && !is_support_agora) { if (jj.contains("support_tunnel_mqtt")) { if (jj["support_tunnel_mqtt"].is_boolean()) { is_support_tunnel_mqtt = jj["support_tunnel_mqtt"].get(); @@ -3079,9 +3083,7 @@ int MachineObject::parse_json(std::string payload, bool key_field_only) } } - if (jj.contains("command")) { - if (jj["command"].get() == "ams_change_filament") { if (jj.contains("errno")) { if (jj["errno"].is_number()) { @@ -3113,8 +3115,6 @@ int MachineObject::parse_json(std::string payload, bool key_field_only) } } } - - if (jj["command"].get() == "push_status") { m_push_count++; last_push_time = last_update_time; @@ -3167,6 +3167,19 @@ int MachineObject::parse_json(std::string payload, bool key_field_only) mc_print_line_number = atoi(jj["mc_print_line_number"].get().c_str()); } } + if (!key_field_only) { + if (jj.contains("flag3")) { + int flag3 = jj["flag3"].get(); + is_support_filament_setting_inprinting = get_flag_bits(flag3, 3); + } + } + if (!key_field_only) { + if (jj.contains("net")) { + if (jj["net"].contains("conf")) { + network_wired = (jj["net"]["conf"].get() & (0x1)) != 0; + } + } + } #pragma endregion #pragma region online @@ -3266,7 +3279,7 @@ int MachineObject::parse_json(std::string payload, bool key_field_only) if (jj.contains("project_id") && jj.contains("profile_id") && jj.contains("subtask_id") - ){ + ) { obj_subtask_id = jj["subtask_id"].get(); int plate_index = -1; @@ -3297,7 +3310,6 @@ int MachineObject::parse_json(std::string payload, bool key_field_only) } } - #pragma endregion #pragma region status @@ -3567,13 +3579,14 @@ int MachineObject::parse_json(std::string payload, bool key_field_only) && jj["upgrade_state"]["dis_state"].get() == 3) { GUI::wxGetApp().CallAfter([this] { this->command_get_version(); - }); + }); } if (upgrade_display_hold_count > 0) upgrade_display_hold_count--; else upgrade_display_state = jj["upgrade_state"]["dis_state"].get(); - } else { + } + else { if (upgrade_display_hold_count > 0) upgrade_display_hold_count--; else { @@ -3624,7 +3637,8 @@ int MachineObject::parse_json(std::string payload, bool key_field_only) new_ver_list.insert(std::make_pair(ver_info.name, ver_info)); } - } else { + } + else { new_ver_list.clear(); } } @@ -3687,11 +3701,18 @@ int MachineObject::parse_json(std::string payload, bool key_field_only) if (ipcam.contains("liveview")) { char const *local_protos[] = {"none", "disabled", "local", "rtsps", "rtsp"}; liveview_local = enum_index_of(ipcam["liveview"].value("local", "none").c_str(), local_protos, 5, LiveviewLocal::LVL_None); - liveview_remote = ipcam["liveview"].value("remote", "disabled") == "enabled"; + char const *remote_protos[] = {"none", "tutk", "agora", "tutk_agaro"}; + liveview_remote = enum_index_of(ipcam["liveview"].value("remote", "none").c_str(), remote_protos, 4, LiveviewRemote::LVR_None); + if (is_support_agora) + liveview_remote = liveview_remote == LVR_None ? LVR_Agora : liveview_remote == LVR_Tutk ? LVR_TutkAgora : liveview_remote; } if (ipcam.contains("file")) { - file_local = ipcam["file"].value("local", "disabled") == "enabled"; - file_remote = ipcam["file"].value("remote", "disabled") == "enabled"; + char const *local_protos[] = {"none", "local"}; + file_local = enum_index_of(ipcam["file"].value("local", "none").c_str(), local_protos, 2, FileLocal::FL_None); + char const *remote_protos[] = {"none", "tutk", "agora", "tutk_agaro"}; + file_remote = enum_index_of(ipcam["file"].value("remote", "none").c_str(), remote_protos, 4, FileRemote::FR_None); + if (is_support_agora) + file_remote = file_remote == FR_None ? FR_Agora : file_remote == FR_Tutk ? FR_TutkAgora : file_remote; file_model_download = ipcam["file"].value("model_download", "disabled") == "enabled"; } virtual_camera = ipcam.value("virtual_camera", "disabled") == "enabled"; @@ -3804,11 +3825,13 @@ int MachineObject::parse_json(std::string payload, bool key_field_only) ; } PresetBundle *preset_bundle = Slic3r::GUI::wxGetApp().preset_bundle; - std::map> filament_list = preset_bundle->filaments.get_filament_presets(); std::ostringstream stream; stream << std::fixed << std::setprecision(1) << nozzle_diameter; std::string nozzle_diameter_str = stream.str(); - + if (m_printer_preset_name.find(nozzle_diameter_str + " nozzle") == std::string::npos) + update_printer_preset_name(nozzle_diameter_str); + update_filament_list(); + std::set need_checked_filament_id; if (jj.contains("ams")) { if (jj["ams"].contains("ams")) { long int last_ams_exist_bits = ams_exist_bits; @@ -3970,15 +3993,24 @@ int MachineObject::parse_json(std::string payload, bool key_field_only) } else { curr_tray->type = type; } - if (filament_list.find(curr_tray->setting_id) == filament_list.end()) { - wxColour color = *wxWHITE; - char col_buf[10]; - sprintf(col_buf, "%02X%02X%02XFF", (int) color.Red(), (int) color.Green(), (int) color.Blue()); - try { - this->command_ams_filament_settings(std::stoi(ams_id), std::stoi(tray_id), "", "", std::string(col_buf), "", 0, 0); - continue; - } catch (...) { - BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << " " << __LINE__ << " stoi error and ams_id: " << ams_id << " tray_id" << tray_id; + // settings_id is not exist in filament_list + if (curr_tray->setting_id.size() == 8 && curr_tray->setting_id[0] == 'P' && + m_filament_list.find(curr_tray->setting_id) == m_filament_list.end()) { + if (m_checked_filament.find(curr_tray->setting_id) == m_checked_filament.end()) { + need_checked_filament_id.insert(curr_tray->setting_id); + wxColour color = *wxWHITE; + char col_buf[10]; + sprintf(col_buf, "%02X%02X%02XFF", (int) color.Red(), (int) color.Green(), (int) color.Blue()); + try { + BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << " " << __LINE__ + << " ams settings_id is not exist in filament_list and reset, ams_id: " << ams_id + << " tray_id" << tray_id << "filament_id: " << curr_tray->setting_id; + this->command_ams_filament_settings(std::stoi(ams_id), std::stoi(tray_id), "", "", std::string(col_buf), "", 0, 0); + continue; + } catch (...) { + BOOST_LOG_TRIVIAL(info) + << __FUNCTION__ << " " << __LINE__ << " stoi error and ams_id: " << ams_id << " tray_id" << tray_id; + } } } } else { @@ -4028,20 +4060,27 @@ int MachineObject::parse_json(std::string payload, bool key_field_only) curr_tray->nozzle_temp_min = (*tray_it)["nozzle_temp_min"].get(); else curr_tray->nozzle_temp_min = ""; - if (curr_tray->nozzle_temp_min != "" && curr_tray->nozzle_temp_max != "") { - try { - std::string preset_setting_id; - bool is_equation = preset_bundle->check_filament_temp_equation_by_printer_type_and_nozzle_for_mas_tray( - MachineObject::get_preset_printer_model_name(this->printer_type), nozzle_diameter_str, curr_tray->setting_id, - curr_tray->tag_uid, curr_tray->nozzle_temp_min, curr_tray->nozzle_temp_max, preset_setting_id); - if (!is_equation) { - command_ams_filament_settings(std::stoi(ams_id), std::stoi(tray_id), curr_tray->setting_id, preset_setting_id, - curr_tray->color, curr_tray->type, - std::stoi(curr_tray->nozzle_temp_min), - std::stoi(curr_tray->nozzle_temp_max)); + if (curr_tray->setting_id.size() == 8 && curr_tray->setting_id[0] == 'P' && curr_tray->nozzle_temp_min != "" && curr_tray->nozzle_temp_max != "") { + if (m_checked_filament.find(vt_tray.setting_id) == m_checked_filament.end()) { + need_checked_filament_id.insert(vt_tray.setting_id); + try { + std::string preset_setting_id; + bool is_equation = preset_bundle->check_filament_temp_equation_by_printer_type_and_nozzle_for_mas_tray( + MachineObject::get_preset_printer_model_name(this->printer_type), nozzle_diameter_str, curr_tray->setting_id, + curr_tray->tag_uid, curr_tray->nozzle_temp_min, curr_tray->nozzle_temp_max, preset_setting_id); + if (!is_equation) { + BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << " " << __LINE__ + << " ams filament is not match min max temp and reset, ams_id: " << ams_id + << " tray_id" << tray_id << "filament_id: " << curr_tray->setting_id; + command_ams_filament_settings(std::stoi(ams_id), std::stoi(tray_id), curr_tray->setting_id, preset_setting_id, + curr_tray->color, curr_tray->type, + std::stoi(curr_tray->nozzle_temp_min), + std::stoi(curr_tray->nozzle_temp_max)); + } + continue; + } catch (...) { + BOOST_LOG_TRIVIAL(info) << "check fail and curr_tray ams_id" << ams_id << " curr_tray tray_id"<contains("xcam_info")) @@ -4165,15 +4204,19 @@ int MachineObject::parse_json(std::string payload, bool key_field_only) else { vt_tray.type = type; } - if (filament_list.find(vt_tray.setting_id) == filament_list.end()) { - wxColour color = *wxWHITE; - char col_buf[10]; - sprintf(col_buf, "%02X%02X%02XFF", (int) color.Red(), (int) color.Green(), (int) color.Blue()); - try { - BOOST_LOG_TRIVIAL(info) << "no filament_id in filament_list and reset vt_tray and the filament_id is: " << vt_tray.setting_id; - this->command_ams_filament_settings(255, std::stoi(vt_tray.id), "", "", std::string(col_buf), "", 0, 0); - } catch (...) { - BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << " " << __LINE__ << " stoi error and tray_id" << vt_tray.id; + if (vt_tray.setting_id.size() == 8 && vt_tray.setting_id[0] == 'P' && + m_filament_list.find(vt_tray.setting_id) == m_filament_list.end()) { + if (m_checked_filament.find(vt_tray.setting_id) == m_checked_filament.end()) { + need_checked_filament_id.insert(vt_tray.setting_id); + wxColour color = *wxWHITE; + char col_buf[10]; + sprintf(col_buf, "%02X%02X%02XFF", (int) color.Red(), (int) color.Green(), (int) color.Blue()); + try { + BOOST_LOG_TRIVIAL(info) << "vt_tray.setting_id is not exist in filament_list and reset vt_tray and the filament_id is: " << vt_tray.setting_id; + this->command_ams_filament_settings(255, std::stoi(vt_tray.id), "", "", std::string(col_buf), "", 0, 0); + } catch (...) { + BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << " " << __LINE__ << " stoi error and tray_id" << vt_tray.id; + } } } } @@ -4223,21 +4266,23 @@ int MachineObject::parse_json(std::string payload, bool key_field_only) vt_tray.nozzle_temp_min = jj["vt_tray"]["nozzle_temp_min"].get(); else vt_tray.nozzle_temp_min = ""; - if (vt_tray.nozzle_temp_min != "" && vt_tray.nozzle_temp_max != "") { - try { - std::string preset_setting_id; - bool is_equation = preset_bundle->check_filament_temp_equation_by_printer_type_and_nozzle_for_mas_tray( - MachineObject::get_preset_printer_model_name(this->printer_type), nozzle_diameter_str, vt_tray.setting_id, vt_tray.tag_uid, - vt_tray.nozzle_temp_min, vt_tray.nozzle_temp_max, preset_setting_id); - if (!is_equation) { - command_ams_filament_settings(255, std::stoi(vt_tray.id), vt_tray.setting_id, preset_setting_id, vt_tray.color, vt_tray.type, - std::stoi(vt_tray.nozzle_temp_min), std::stoi(vt_tray.nozzle_temp_max)); + if (vt_tray.setting_id.size() == 8 && vt_tray.setting_id[0] == 'P' && vt_tray.nozzle_temp_min != "" && vt_tray.nozzle_temp_max != "") { + if (m_checked_filament.find(vt_tray.setting_id) == m_checked_filament.end()) { + need_checked_filament_id.insert(vt_tray.setting_id); + try { + std::string preset_setting_id; + bool is_equation = preset_bundle->check_filament_temp_equation_by_printer_type_and_nozzle_for_mas_tray( + MachineObject::get_preset_printer_model_name(this->printer_type), nozzle_diameter_str, vt_tray.setting_id, vt_tray.tag_uid, + vt_tray.nozzle_temp_min, vt_tray.nozzle_temp_max, preset_setting_id); + if (!is_equation) { + BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << " " << __LINE__ << " vt_tray filament is not match min max temp and reset, filament_id: " << vt_tray.setting_id; + command_ams_filament_settings(255, std::stoi(vt_tray.id), vt_tray.setting_id, preset_setting_id, vt_tray.color, vt_tray.type, + std::stoi(vt_tray.nozzle_temp_min), std::stoi(vt_tray.nozzle_temp_max)); + } + } catch (...) { + BOOST_LOG_TRIVIAL(info) << "check fail and vt_tray.id" << vt_tray.id; } } - catch(...) { - BOOST_LOG_TRIVIAL(info) << "check fail and vt_tray.id" << vt_tray.id; - } - } if (jj["vt_tray"].contains("xcam_info")) vt_tray.xcam_info = jj["vt_tray"]["xcam_info"].get(); @@ -4277,8 +4322,9 @@ int MachineObject::parse_json(std::string payload, bool key_field_only) ; } } + for (auto &filament_id : need_checked_filament_id) + m_checked_filament.insert(filament_id); #pragma endregion - } else if (jj["command"].get() == "gcode_line") { //ack of gcode_line BOOST_LOG_TRIVIAL(debug) << "parse_json, ack of gcode_line = " << j.dump(4); @@ -4303,6 +4349,14 @@ int MachineObject::parse_json(std::string payload, bool key_field_only) } } } else if (jj["command"].get() == "ams_filament_setting" && !key_field_only) { + if (jj.contains("result") && jj.contains("reason")) { + if (jj["result"].get() == "fail") { + auto err_code = jj["err_code"].get(); + print_error = err_code; + } + } + + // BBS trigger ams UI update ams_version = -1; @@ -4436,6 +4490,12 @@ int MachineObject::parse_json(std::string payload, bool key_field_only) } } } else if (jj["command"].get() == "extrusion_cali_set") { + if (jj.contains("result") && jj.contains("reason")) { + if (jj["result"].get() == "fail") { + auto err_code = jj["err_code"].get(); + print_error = err_code; + } + } #ifdef CALI_DEBUG std::string str = jj.dump(); BOOST_LOG_TRIVIAL(info) << "extrusion_cali_set: " << str; @@ -4480,6 +4540,13 @@ int MachineObject::parse_json(std::string payload, bool key_field_only) extrusion_cali_set_hold_start = std::chrono::system_clock::now(); } else if (jj["command"].get() == "extrusion_cali_sel") { + if (jj.contains("result") && jj.contains("reason")) { + if (jj["result"].get() == "fail") { + auto err_code = jj["err_code"].get(); + print_error = err_code; + } + } + #ifdef CALI_DEBUG std::string str = jj.dump(); BOOST_LOG_TRIVIAL(info) << "extrusion_cali_sel: " << str; @@ -4521,6 +4588,13 @@ int MachineObject::parse_json(std::string payload, bool key_field_only) } } else if (jj["command"].get() == "extrusion_cali_get") { + if (jj.contains("result") && jj.contains("reason")) { + if (jj["result"].get() == "fail") { + auto err_code = jj["err_code"].get(); + print_error = err_code; + } + } + reset_pa_cali_history_result(); has_get_pa_calib_tab = true; @@ -4584,6 +4658,13 @@ int MachineObject::parse_json(std::string payload, bool key_field_only) // notify cali history to update } else if (jj["command"].get() == "extrusion_cali_get_result") { + if (jj.contains("result") && jj.contains("reason")) { + if (jj["result"].get() == "fail") { + auto err_code = jj["err_code"].get(); + print_error = err_code; + } + } + reset_pa_cali_result(); get_pa_calib_result = true; @@ -4743,6 +4824,7 @@ int MachineObject::parse_json(std::string payload, bool key_field_only) if (diff.count() > 10.0f) { BOOST_LOG_TRIVIAL(trace) << "parse_json timeout = " << diff.count(); } + DeviceManager::update_local_machine(*this); return 0; } @@ -5091,12 +5173,142 @@ std::string MachineObject::get_string_from_fantype(FanType type) return ""; } +void MachineObject::update_filament_list() +{ + PresetBundle *preset_bundle = Slic3r::GUI::wxGetApp().preset_bundle; + + // custom filament + std::map> filament_list; + for (auto &preset : preset_bundle->filaments()) { + if (preset.is_user() && preset.inherits() == "") { + ConfigOption * printer_opt = const_cast(preset).config.option("compatible_printers"); + ConfigOptionStrings *printer_strs = dynamic_cast(printer_opt); + for (const std::string &printer_str : printer_strs->values) { + if (printer_str == m_printer_preset_name) { + ConfigOption *opt_min = const_cast(preset).config.option("nozzle_temperature_range_low"); + int min_temp = -1; + if (opt_min) { + ConfigOptionInts *opt_min_ints = dynamic_cast(opt_min); + min_temp = opt_min_ints->get_at(0); + } + ConfigOption *opt_max = const_cast(preset).config.option("nozzle_temperature_range_high"); + int max_temp = -1; + if (opt_max) { + ConfigOptionInts *opt_max_ints = dynamic_cast(opt_max); + max_temp = opt_max_ints->get_at(0); + } + filament_list[preset.filament_id] = std::make_pair(min_temp, max_temp); + break; + } + } + } + } + + for (auto it = filament_list.begin(); it != filament_list.end(); it++) { + if (m_filament_list.find(it->first) != m_filament_list.end()) { + assert(it->first.size() == 8 && it->first[0] == 'P'); + + if (it->second.first != m_filament_list[it->first].first) { + BOOST_LOG_TRIVIAL(info) << "old min temp is not equal to new min temp and filament id: " << it->first; + continue; + } + + if (it->second.second != m_filament_list[it->first].second) { + BOOST_LOG_TRIVIAL(info) << "old max temp is not equal to new max temp and filament id: " << it->first; + continue; + } + + m_filament_list.erase(it->first); + } + } + + for (auto it = m_filament_list.begin(); it != m_filament_list.end(); it++) { + m_checked_filament.erase(it->first); + } + + m_filament_list = filament_list; +} + +int MachineObject::get_flag_bits(std::string str, int start, int count) +{ + int decimal_value = std::stoi(str, nullptr, 16); + int mask = 0; + for (int i = 0; i < count; i++) { mask += 1 << (start + i); } + + int flag = (decimal_value & (mask)) >> start; + return flag; +} + +int MachineObject::get_flag_bits(int num, int start, int count) +{ + int decimal_value = num; + int mask = 0; + for (int i = 0; i < count; i++) { mask += 1 << (start + i); } + + int flag = (decimal_value & (mask)) >> start; + return flag; +} + +void MachineObject::update_printer_preset_name(const std::string &nozzle_diameter_str) +{ + BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << " " << __LINE__ << "start update preset_name"; + auto preset_boundle = Slic3r::GUI::wxGetApp().preset_bundle; + auto printer_set = preset_boundle->get_printer_names_by_printer_type_and_nozzle(MachineObject::get_preset_printer_model_name(this->printer_type), nozzle_diameter_str); + if (printer_set.size() > 0) + m_printer_preset_name = *printer_set.begin(); + else + BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << " " << __LINE__ << " update printer preset name failed "; +} + bool DeviceManager::EnableMultiMachine = false; bool DeviceManager::key_field_only = false; DeviceManager::DeviceManager(NetworkAgent* agent) { m_agent = agent; + + // Load saved local machines + if (agent) { + AppConfig* config = GUI::wxGetApp().app_config; + const auto local_machines = config->get_local_machines(); + for (auto& it : local_machines) { + const auto& m = it.second; + MachineObject* obj = new MachineObject(m_agent, m.dev_name, m.dev_id, m.dev_ip); + obj->printer_type = m.printer_type; + obj->dev_connection_type = "lan"; + obj->bind_state = "free"; + obj->bind_sec_link = "secure"; + obj->m_is_online = true; + obj->last_alive = Slic3r::Utils::get_current_time_utc(); + obj->set_access_code(config->get("access_code", m.dev_id), false); + obj->set_user_access_code(config->get("user_access_code", m.dev_id), false); + if (obj->has_access_right()) { + localMachineList.insert(std::make_pair(m.dev_id, obj)); + } else { + config->erase_local_machine(m.dev_id); + delete obj; + } + } + } +} + +void DeviceManager::update_local_machine(const MachineObject& m) +{ + AppConfig* config = GUI::wxGetApp().app_config; + if (config) { + if (m.is_lan_mode_printer()) { + if (m.has_access_right()) { + BBLocalMachine local_machine; + local_machine.dev_id = m.dev_id; + local_machine.dev_name = m.dev_name; + local_machine.dev_ip = m.dev_ip; + local_machine.printer_type = m.printer_type; + config->update_local_machine(local_machine); + } + } else { + config->erase_local_machine(m.dev_id); + } + } } DeviceManager::~DeviceManager() @@ -5160,6 +5372,8 @@ void DeviceManager::check_pushing() } } + + void DeviceManager::on_machine_alive(std::string json_str) { try { @@ -5172,6 +5386,12 @@ void DeviceManager::on_machine_alive(std::string json_str) std::string printer_signal = j["dev_signal"].get(); std::string connect_type = j["connect_type"].get(); std::string bind_state = j["bind_state"].get(); + + if (connect_type == "farm") { + connect_type ="lan"; + bind_state = "free"; + } + std::string sec_link = ""; std::string ssdp_version = ""; if (j.contains("sec_link")) { @@ -5269,12 +5489,38 @@ void DeviceManager::on_machine_alive(std::string json_str) BOOST_LOG_TRIVIAL(info) << "SsdpDiscovery::New Machine, ip = " << Slic3r::GUI::wxGetApp().format_IP(dev_ip) << ", printer_name= " << dev_name << ", printer_type = " << printer_type_str << ", signal = " << printer_signal; } + update_local_machine(*obj); } catch (...) { ; } } +MachineObject* DeviceManager::insert_local_device(const BBLocalMachine& machine, std::string connection_type, std::string bind_state, std::string version, std::string access_code) +{ + MachineObject* obj; + auto it = localMachineList.find(machine.dev_id); + if (it != localMachineList.end()) { + obj = it->second; + } else { + obj = new MachineObject(m_agent, machine.dev_name, machine.dev_id, machine.dev_ip); + localMachineList.insert(std::make_pair(machine.dev_id, obj)); + } + obj->printer_type = MachineObject::parse_printer_type(machine.printer_type); + obj->dev_connection_type = connection_type; + obj->bind_state = bind_state; + obj->bind_sec_link = "secure"; + obj->bind_ssdp_version = version; + obj->m_is_online = true; + obj->last_alive = Slic3r::Utils::get_current_time_utc(); + obj->set_access_code(access_code, false); + obj->set_user_access_code(access_code, false); + + update_local_machine(*obj); + + return obj; +} + void DeviceManager::disconnect_all() { @@ -5469,6 +5715,7 @@ bool DeviceManager::set_selected_machine(std::string dev_id, bool need_disconnec } } } + it->second->m_checked_filament.clear(); } selected_machine = dev_id; return true; @@ -5662,7 +5909,7 @@ void DeviceManager::parse_user_print_info(std::string body) } } } - catch (std::exception&) { + catch (std::exception& e) { ; } } @@ -5697,8 +5944,13 @@ std::map DeviceManager::get_local_machine_list() void DeviceManager::load_last_machine() { - if (userMachineList.empty()) return; - + if (userMachineList.empty()) { + // Orca: connect LAN printers instead + const auto local_machine = std::find_if(localMachineList.begin(), localMachineList.end(), [](const std::pair& it) -> bool { return it.second->has_access_right();}); + if (local_machine != localMachineList.end()) { + this->set_selected_machine(local_machine->second->dev_id); + } + } else if (userMachineList.size() == 1) { this->set_selected_machine(userMachineList.begin()->second->dev_id); } else { @@ -5761,6 +6013,7 @@ std::string DeviceManager::get_printer_ams_img(std::string type_str) bool DeviceManager::get_printer_is_enclosed(std::string type_str) { return get_value_from_config(type_str, "printer_is_enclosed"); } + std::vector DeviceManager::get_resolution_supported(std::string type_str) { std::vector resolution_supported; @@ -5806,6 +6059,49 @@ std::vector DeviceManager::get_compatible_machine(std::string type_ return compatible_machine; } +boost::bimaps::bimap DeviceManager::get_all_model_id_with_name() +{ + boost::bimaps::bimap models; + std::vector m_files; + + wxDir dir(Slic3r::resources_dir() + "/printers/"); + if (!dir.IsOpened()) { + return models; + } + + wxString filename; + bool hasFile = dir.GetFirst(&filename, wxEmptyString, wxDIR_FILES); + while (hasFile) { + m_files.push_back(filename); + hasFile = dir.GetNext(&filename); + } + + for (wxString file : m_files) { + std::string config_file = Slic3r::resources_dir() + "/printers/" + file.ToStdString(); + boost::nowide::ifstream json_file(config_file.c_str()); + + try { + json jj; + if (json_file.is_open()) { + json_file >> jj; + if (jj.contains("00.00.00.00")) { + json const &printer = jj["00.00.00.00"]; + + std::string model_id; + std::string display_name; + if (printer.contains("model_id")) {model_id = printer["model_id"].get();} + if (printer.contains("display_name")) {display_name = printer["display_name"].get();} + + if (!model_id.empty() && !display_name.empty()) { + models.left.insert(make_pair(model_id, display_name)); + } + } + } + } catch (...) {} + } + + return models; +} bool DeviceManager::load_filaments_blacklist_config() { @@ -5857,15 +6153,11 @@ void DeviceManager::check_filaments_in_blacklist(std::string tag_vendor, std::st { vendor = prohibited_filament["vendor"].get(); type = prohibited_filament["type"].get(); - - if (GUI::wxGetApp().app_config->get("skip_ams_blacklist_check") == "true") { - - action = "warning"; - } - else { - - action = prohibited_filament["action"].get(); - } + if (GUI::wxGetApp().app_config->get("skip_ams_blacklist_check") == "true") { + action = "warning"; + } else { + action = prohibited_filament["action"].get(); + } description = prohibited_filament["description"].get(); description = blacklist_prompt[description].ToUTF8().data(); diff --git a/src/slic3r/GUI/DeviceManager.hpp b/src/slic3r/GUI/DeviceManager.hpp index be177bba5a..0d86d3e265 100644 --- a/src/slic3r/GUI/DeviceManager.hpp +++ b/src/slic3r/GUI/DeviceManager.hpp @@ -2,17 +2,18 @@ #define slic3r_DeviceManager_hpp_ #include +#include #include #include #include #include -#include #include #include #include "nlohmann/json.hpp" #include "libslic3r/ProjectTask.hpp" #include "slic3r/Utils/json_diff.hpp" #include "slic3r/Utils/NetworkAgent.hpp" +#include "boost/bimap/bimap.hpp" #include "CameraPopup.hpp" #include "libslic3r/calib.hpp" #include "libslic3r/Utils.hpp" @@ -53,6 +54,7 @@ using namespace nlohmann; namespace Slic3r { +struct BBLocalMachine; class SecondaryCheckDialog; enum PrinterArch { ARCH_CORE_XY, @@ -313,6 +315,7 @@ struct DisValue { bool is_type_match = true; }; +class Preset; class MachineObject { private: @@ -424,14 +427,14 @@ public: std::string dev_connection_name; /* lan | eth */ void set_dev_ip(std::string ip) {dev_ip = ip;} std::string get_ftp_folder(); - bool has_access_right() { return !get_access_code().empty(); } - std::string get_access_code(); + bool has_access_right() const { return !get_access_code().empty(); } + std::string get_access_code() const; void set_access_code(std::string code, bool only_refresh = true); void set_user_access_code(std::string code, bool only_refresh = true); void erase_user_access_code(); - std::string get_user_access_code(); - bool is_lan_mode_printer(); + std::string get_user_access_code() const; + bool is_lan_mode_printer() const; //PRINTER_TYPE printer_type = PRINTER_3DPrinter_UKNOWN; std::string printer_type; /* model_id */ @@ -708,9 +711,22 @@ public: LVL_Rtsps, LVL_Rtsp } liveview_local{ LVL_None }; - bool liveview_remote{false}; - bool file_local{false}; - bool file_remote{false}; + enum LiveviewRemote { + LVR_None, + LVR_Tutk, + LVR_Agora, + LVR_TutkAgora + } liveview_remote{ LVR_None }; + enum FileLocal { + FL_None, + FL_Local + } file_local{ FL_None }; + enum FileRemote { + FR_None, + FR_Tutk, + FR_Agora, + FR_TutkAgora + } file_remote{ FR_None }; bool file_model_download{false}; bool virtual_camera{false}; @@ -762,6 +778,8 @@ public: bool is_support_p1s_plus{false}; bool is_support_nozzle_blob_detection{false}; bool is_support_air_print_detection{false}; + bool is_support_filament_setting_inprinting{false}; + bool is_support_agora{false}; int nozzle_max_temperature = -1; int bed_temperature_limit = -1; @@ -958,6 +976,15 @@ public: void get_firmware_info(); bool is_firmware_info_valid(); std::string get_string_from_fantype(FanType type); + + /* Device Filament Check */ + std::set m_checked_filament; + std::string m_printer_preset_name; + std::map> m_filament_list; // filament_id, pair + void update_filament_list(); + int get_flag_bits(std::string str, int start, int count = 1); + int get_flag_bits(int num, int start, int count = 1); + void update_printer_preset_name(const std::string &nozzle_diameter_str); }; class DeviceManager @@ -1006,7 +1033,7 @@ public: /* create machine or update machine properties */ void on_machine_alive(std::string json_str); - + MachineObject* insert_local_device(const BBLocalMachine& machine, std::string connection_type, std::string bind_state, std::string version, std::string access_code); /* disconnect all machine connections */ void disconnect_all(); int query_bind_status(std::string &msg); @@ -1052,12 +1079,15 @@ public: static std::string get_printer_ams_img(std::string type_str); static PrinterArch get_printer_arch(std::string type_str); static std::string get_ftp_folder(std::string type_str); - static bool get_printer_is_enclosed(std::string type_str); - static std::vector get_resolution_supported(std::string type_str); - static std::vector get_compatible_machine(std::string type_str); + static bool get_printer_is_enclosed(std::string type_str); static bool load_filaments_blacklist_config(); static void check_filaments_in_blacklist(std::string tag_vendor, std::string tag_type, bool& in_blacklist, std::string& ac, std::string& info); + static std::vector get_resolution_supported(std::string type_str); + static std::vector get_compatible_machine(std::string type_str); + static boost::bimaps::bimap get_all_model_id_with_name(); static std::string load_gcode(std::string type_str, std::string gcode_file); + + static void update_local_machine(const MachineObject& m); }; // change the opacity diff --git a/src/slic3r/GUI/Field.cpp b/src/slic3r/GUI/Field.cpp index 7846949071..6c4ff935bd 100644 --- a/src/slic3r/GUI/Field.cpp +++ b/src/slic3r/GUI/Field.cpp @@ -1064,16 +1064,7 @@ void SpinCtrl::BUILD() { break; } - const int min_val = m_opt.min == INT_MIN -#ifdef __WXOSX__ - // We will forcibly set the input value for SpinControl, since the value - // inserted from the keyboard is not updated under OSX. - // So, we can't set min control value bigger then 0. - // Otherwise, it couldn't be possible to input from keyboard value - // less then min_val. - || m_opt.min > 0 -#endif - ? 0 : m_opt.min; + const int min_val = m_opt.min == INT_MIN ? 0 : m_opt.min; const int max_val = m_opt.max < 2147483647 ? m_opt.max : 2147483647; static Builder builder; @@ -1170,14 +1161,6 @@ void SpinCtrl::propagate_value() if (!m_value.empty()) // BBS: null value on_kill_focus(); } else { -#ifdef __WXOSX__ - // check input value for minimum - if (m_opt.min > 0 && tmp_value < m_opt.min) { - SpinInput* spin = static_cast(window); - spin->SetValue(m_opt.min); - // spin->GetText()->SetInsertionPointEnd(); // BBS - } -#endif auto ctrl = dynamic_cast(window); if (m_value.empty() ? !ctrl->GetTextCtrl()->GetLabel().IsEmpty() diff --git a/src/slic3r/GUI/GCodeViewer.cpp b/src/slic3r/GUI/GCodeViewer.cpp index 00b9685861..31eb38b728 100644 --- a/src/slic3r/GUI/GCodeViewer.cpp +++ b/src/slic3r/GUI/GCodeViewer.cpp @@ -845,7 +845,7 @@ void GCodeViewer::init(ConfigOptionMode mode, PresetBundle* preset_bundle) } if (filename.empty()) { - filename = preset_bundle->get_hotend_model_for_printer_model(PresetBundle::BBL_DEFAULT_PRINTER_MODEL); + filename = preset_bundle->get_hotend_model_for_printer_model(PresetBundle::ORCA_DEFAULT_PRINTER_MODEL); } } } @@ -1056,8 +1056,6 @@ void GCodeViewer::load(const GCodeProcessorResult& gcode_result, const Print& pr set_view_type(EViewType::ColorPrint); } - m_fold = false; - bool only_gcode_3mf = false; PartPlate* current_plate = wxGetApp().plater()->get_partplate_list().get_curr_plate(); bool current_has_print_instances = current_plate->has_printable_instances(); @@ -4644,15 +4642,15 @@ void GCodeViewer::render_legend(float &legend_height, int canvas_width, int canv ImGui::SameLine(); std::wstring btn_name; if (m_fold) - btn_name = ImGui::UnfoldButtonIcon + boost::nowide::widen(std::string("")); + btn_name = ImGui::UnfoldButtonIcon; else - btn_name = ImGui::FoldButtonIcon + boost::nowide::widen(std::string("")); + btn_name = ImGui::FoldButtonIcon; ImGui::PushStyleColor(ImGuiCol_Button, ImVec4(0, 0, 0, 0)); ImGui::PushStyleColor(ImGuiCol_ButtonHovered, ImVec4(0.0f, 0.59f, 0.53f, 1.00f)); ImGui::PushStyleColor(ImGuiCol_ButtonActive, ImVec4(0.0f, 0.59f, 0.53f, 0.78f)); ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(0.0f, 0.0f)); //ImGui::PushItemWidth( - float button_width = ImGui::CalcTextSize(into_u8(btn_name).c_str()).x; + float button_width = 34.0f; if (ImGui::Button(into_u8(btn_name).c_str(), ImVec2(button_width, 0))) { m_fold = !m_fold; } diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp index 9724e8c241..26688a2383 100644 --- a/src/slic3r/GUI/GLCanvas3D.cpp +++ b/src/slic3r/GUI/GLCanvas3D.cpp @@ -1441,6 +1441,8 @@ void GLCanvas3D::toggle_model_objects_visibility(bool visible, const ModelObject && !vol->is_modifier) { vol->force_neutral_color = true; } + else if (gizmo_type == GLGizmosManager::BrimEars) + vol->force_neutral_color = false; else if (gizmo_type == GLGizmosManager::MmuSegmentation) vol->is_active = false; else @@ -1893,6 +1895,7 @@ void GLCanvas3D::render(bool only_init) //BBS add partplater rendering logic bool only_current = false, only_body = false, show_axes = true, no_partplate = false; + bool show_grid = true; GLGizmosManager::EType gizmo_type = m_gizmos.get_current_type(); if (!m_main_toolbar.is_enabled()) { //only_body = true; @@ -1900,6 +1903,8 @@ void GLCanvas3D::render(bool only_init) } else if ((gizmo_type == GLGizmosManager::FdmSupports) || (gizmo_type == GLGizmosManager::Seam) || (gizmo_type == GLGizmosManager::MmuSegmentation)) no_partplate = true; + else if (gizmo_type == GLGizmosManager::BrimEars && !camera.is_looking_downward()) + show_grid = false; /* view3D render*/ int hover_id = (m_hover_plate_idxs.size() > 0)?m_hover_plate_idxs.front():-1; @@ -1911,7 +1916,7 @@ void GLCanvas3D::render(bool only_init) if (!no_partplate) _render_bed(camera.get_view_matrix(), camera.get_projection_matrix(), !camera.is_looking_downward(), show_axes); if (!no_partplate) //BBS: add outline logic - _render_platelist(camera.get_view_matrix(), camera.get_projection_matrix(), !camera.is_looking_downward(), only_current, only_body, hover_id, true); + _render_platelist(camera.get_view_matrix(), camera.get_projection_matrix(), !camera.is_looking_downward(), only_current, only_body, hover_id, true, show_grid); _render_objects(GLVolumeCollection::ERenderType::Transparent, !m_gizmos.is_running()); } /* preview render */ @@ -3519,6 +3524,12 @@ void GLCanvas3D::on_key(wxKeyEvent& evt) m_dirty = true; } // set_cursor(Standard); +#ifdef __WXMSW__ + if (m_camera_movement && m_is_touchpad_navigation) { + m_camera_movement = false; + m_mouse.set_start_position_3D_as_invalid(); + } +#endif } else if (keyCode == WXK_CONTROL) m_dirty = true; @@ -3873,6 +3884,12 @@ std::string format_mouse_event_debug_message(const wxMouseEvent &evt) out += "RightUp "; if (evt.RightDClick()) out += "RightDClick "; + if (evt.AltDown()) + out += "AltDown "; + if (evt.ShiftDown()) + out += "ShiftDown "; + if (evt.ControlDown()) + out += "ControlDown "; sprintf(buf, "(%d, %d)", evt.GetX(), evt.GetY()); out += buf; @@ -6767,7 +6784,7 @@ void GLCanvas3D::_picking_pass() case SceneRaycaster::EType::Bed: { // BBS: add plate picking logic - int plate_hover_id = PartPlate::PLATE_BASE_ID - hit.raycaster_id; + int plate_hover_id = hit.raycaster_id; if (plate_hover_id >= 0 && plate_hover_id < PartPlateList::MAX_PLATES_COUNT * PartPlate::GRABBER_COUNT) { wxGetApp().plater()->get_partplate_list().set_hover_id(plate_hover_id); m_hover_plate_idxs.emplace_back(plate_hover_id); @@ -7150,9 +7167,9 @@ void GLCanvas3D::_render_bed(const Transform3d& view_matrix, const Transform3d& m_bed.render(*this, view_matrix, projection_matrix, bottom, scale_factor, show_axes); } -void GLCanvas3D::_render_platelist(const Transform3d& view_matrix, const Transform3d& projection_matrix, bool bottom, bool only_current, bool only_body, int hover_id, bool render_cali) +void GLCanvas3D::_render_platelist(const Transform3d& view_matrix, const Transform3d& projection_matrix, bool bottom, bool only_current, bool only_body, int hover_id, bool render_cali, bool show_grid) { - wxGetApp().plater()->get_partplate_list().render(view_matrix, projection_matrix, bottom, only_current, only_body, hover_id, render_cali); + wxGetApp().plater()->get_partplate_list().render(view_matrix, projection_matrix, bottom, only_current, only_body, hover_id, render_cali, show_grid); } void GLCanvas3D::_render_plane() const @@ -7419,7 +7436,7 @@ void GLCanvas3D::_check_and_update_toolbar_icon_scale() return; } - float scale = wxGetApp().toolbar_icon_scale(); + float scale = wxGetApp().toolbar_icon_scale() * get_scale(); Size cnv_size = get_canvas_size(); //BBS: GUI refactor: GLToolbar @@ -7430,26 +7447,12 @@ void GLCanvas3D::_check_and_update_toolbar_icon_scale() float size = size_i; // Set current size for all top toolbars. It will be used for next calculations -#if ENABLE_RETINA_GL - const float sc = m_retina_helper->get_scale_factor() * scale; - //BBS: GUI refactor: GLToolbar - m_main_toolbar.set_scale(sc); - m_assemble_view_toolbar.set_scale(sc); - m_separator_toolbar.set_scale(sc); - collapse_toolbar.set_scale(sc / 2.0); - size *= m_retina_helper->get_scale_factor(); - - auto* m_notification = wxGetApp().plater()->get_notification_manager(); - m_notification->set_scale(sc); - m_gizmos.set_overlay_scale(sc); -#else //BBS: GUI refactor: GLToolbar m_main_toolbar.set_icons_size(size); m_assemble_view_toolbar.set_icons_size(size); m_separator_toolbar.set_icons_size(size); collapse_toolbar.set_icons_size(size / 2.0); m_gizmos.set_overlay_icon_size(size); -#endif // ENABLE_RETINA_GL //BBS: GUI refactor: GLToolbar #if BBS_TOOLBAR_ON_TOP @@ -7486,9 +7489,7 @@ void GLCanvas3D::_check_and_update_toolbar_icon_scale() // set minimum scale as a auto scale for the toolbars float new_scale = std::min(new_h_scale, new_v_scale); -#if ENABLE_RETINA_GL - new_scale /= m_retina_helper->get_scale_factor(); -#endif + new_scale /= get_scale(); if (fabs(new_scale - scale) > 0.05) // scale is changed by 5% and more wxGetApp().set_auto_toolbar_icon_scale(new_scale); } diff --git a/src/slic3r/GUI/GLCanvas3D.hpp b/src/slic3r/GUI/GLCanvas3D.hpp index 34e050c369..c2a5b9d00d 100644 --- a/src/slic3r/GUI/GLCanvas3D.hpp +++ b/src/slic3r/GUI/GLCanvas3D.hpp @@ -1161,7 +1161,7 @@ private: void _render_background(); void _render_bed(const Transform3d& view_matrix, const Transform3d& projection_matrix, bool bottom, bool show_axes); //BBS: add part plate related logic - void _render_platelist(const Transform3d& view_matrix, const Transform3d& projection_matrix, bool bottom, bool only_current, bool only_body = false, int hover_id = -1, bool render_cali = false); + void _render_platelist(const Transform3d& view_matrix, const Transform3d& projection_matrix, bool bottom, bool only_current, bool only_body = false, int hover_id = -1, bool render_cali = false, bool show_grid = true); //BBS: add outline drawing logic void _render_objects(GLVolumeCollection::ERenderType type, bool with_outline = true); //BBS: GUI refactor: add canvas size as parameters diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index 2cbbd21683..287f72a082 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -1024,8 +1024,10 @@ void GUI_App::post_init() for (auto& it : boost::filesystem::directory_iterator(log_folder)) { auto temp_path = it.path(); try { - std::time_t lw_t = boost::filesystem::last_write_time(temp_path) ; - files_vec.push_back({ lw_t, temp_path.filename().string() }); + if (it.status().type() == boost::filesystem::regular_file) { + std::time_t lw_t = boost::filesystem::last_write_time(temp_path) ; + files_vec.push_back({ lw_t, temp_path.filename().string() }); + } } catch (const std::exception &) { } } @@ -1569,6 +1571,33 @@ void GUI_App::init_networking_callbacks() // GUI::wxGetApp().request_user_handle(online_login); // }); + m_agent->set_server_callback([this](std::string url, int status) { + + CallAfter([this]() { + if (!m_server_error_dialog) { + /*m_server_error_dialog->EndModal(wxCLOSE); + m_server_error_dialog->Destroy(); + m_server_error_dialog = nullptr;*/ + m_server_error_dialog = new NetworkErrorDialog(mainframe); + } + + if(plater()->get_select_machine_dialog() && plater()->get_select_machine_dialog()->IsShown()){ + return; + } + + if (m_server_error_dialog->m_show_again) { + return; + } + + if (m_server_error_dialog->IsShown()) { + return; + } + + m_server_error_dialog->ShowModal(); + }); + }); + + m_agent->set_on_server_connected_fn([this](int return_code, int reason_code) { if (m_is_closing) { return; @@ -1666,11 +1695,11 @@ void GUI_App::init_networking_callbacks() event.SetString(obj->dev_id); GUI::wxGetApp().sidebar().load_ams_list(obj->dev_id, obj); } else if (state == ConnectStatus::ConnectStatusFailed) { - obj->set_access_code(""); - obj->erase_user_access_code(); m_device_manager->set_selected_machine("", true); wxString text; if (msg == "5") { + obj->set_access_code(""); + obj->erase_user_access_code(); text = wxString::Format(_L("Incorrect password")); wxGetApp().show_dialog(text); } else { @@ -1679,9 +1708,6 @@ void GUI_App::init_networking_callbacks() } event.SetInt(-1); } else if (state == ConnectStatus::ConnectStatusLost) { - obj->set_access_code(""); - obj->erase_user_access_code(); - m_device_manager->localMachineList.erase(obj->dev_id); m_device_manager->set_selected_machine("", true); event.SetInt(-1); BOOST_LOG_TRIVIAL(info) << "set_on_local_connect_fn: state = lost"; @@ -3225,6 +3251,23 @@ void GUI_App::link_to_network_check() wxLaunchDefaultBrowser(url); } +void GUI_App::link_to_lan_only_wiki() +{ + std::string url; + std::string country_code = app_config->get_country_code(); + + if (country_code == "US") { + url = "https://wiki.bambulab.com/en/knowledge-sharing/enable-lan-mode"; + } + else if (country_code == "CN") { + url = "https://wiki.bambulab.com/zh/knowledge-sharing/enable-lan-mode"; + } + else { + url = "https://wiki.bambulab.com/en/knowledge-sharing/enable-lan-mode"; + } + wxLaunchDefaultBrowser(url); +} + bool GUI_App::tabs_as_menu() const { return false; @@ -3684,7 +3727,7 @@ void GUI_App::request_user_logout() { if (m_agent && m_agent->is_user_login()) { // Update data first before showing dialogs - m_agent->user_logout(); + m_agent->user_logout(true); m_agent->set_user_selected_machine(""); /* delete old user settings */ bool transfer_preset_changes = false; @@ -4736,7 +4779,7 @@ void GUI_App::start_sync_user_preset(bool with_progress_dlg) m_sync_update_thread = Slic3r::create_thread( [this, progressFn, cancelFn, finishFn, t = std::weak_ptr(m_user_sync_token)] { // get setting list, update setting list - std::string version = preset_bundle->get_vendor_profile_version(PresetBundle::BBL_BUNDLE).to_string(); + std::string version = preset_bundle->get_vendor_profile_version(PresetBundle::ORCA_DEFAULT_BUNDLE).to_string(); int ret = m_agent->get_setting_list2(version, [this](auto info) { auto type = info[BBL_JSON_KEY_TYPE]; auto name = info[BBL_JSON_KEY_NAME]; diff --git a/src/slic3r/GUI/GUI_App.hpp b/src/slic3r/GUI/GUI_App.hpp index e4d735448c..5358795595 100644 --- a/src/slic3r/GUI/GUI_App.hpp +++ b/src/slic3r/GUI/GUI_App.hpp @@ -1,13 +1,6 @@ #ifndef slic3r_GUI_App_hpp_ #define slic3r_GUI_App_hpp_ -#include -#include -#include -#include -#include -#include - #include #include #include "ImGuiWrapper.hpp" @@ -26,6 +19,13 @@ #include "slic3r/GUI/HttpServer.hpp" #include "../Utils/PrintHost.hpp" +#include +#include +#include +#include +#include +#include + #include #include @@ -81,6 +81,7 @@ class ParamsDialog; class HMSQuery; class ModelMallDialog; class PingCodeBindDialog; +class NetworkErrorDialog; enum FileType @@ -274,7 +275,7 @@ private: std::unique_ptr m_other_instance_message_handler; std::unique_ptr m_single_instance_checker; std::string m_instance_hash_string; - size_t m_instance_hash_int; + size_t m_instance_hash_int; std::unique_ptr m_downloader; @@ -309,8 +310,8 @@ private: HttpServer m_http_server; bool m_show_gcode_window{true}; boost::thread m_check_network_thread; - public: - //try again when subscription fails +public: + //try again when subscription fails void on_start_subscribe_again(std::string dev_id); void check_filaments_in_blacklist(std::string tag_supplier, std::string tag_material, bool& in_blacklist, std::string& action, std::string& info); std::string get_local_models_path(); @@ -393,9 +394,9 @@ private: bool get_side_menu_popup_status(); void set_side_menu_popup_status(bool status); void link_to_network_check(); - + void link_to_lan_only_wiki(); - const wxColour& get_label_clr_modified(){ return m_color_label_modified; } + const wxColour& get_label_clr_modified() { return m_color_label_modified; } const wxColour& get_label_clr_sys() { return m_color_label_sys; } const wxColour& get_label_clr_default() { return m_color_label_default; } const wxColour& get_window_default_clr(){ return m_color_window_default; } @@ -556,7 +557,7 @@ private: #endif /* __APPLE */ Sidebar& sidebar(); - GizmoObjectManipulation* obj_manipul(); + GizmoObjectManipulation *obj_manipul(); ObjectSettings* obj_settings(); ObjectList* obj_list(); ObjectLayers* obj_layers(); @@ -574,6 +575,8 @@ private: ModelMallDialog* m_mall_publish_dialog{ nullptr }; PingCodeBindDialog* m_ping_code_binding_dialog{ nullptr }; + NetworkErrorDialog* m_server_error_dialog { nullptr }; + void set_download_model_url(std::string url) {m_mall_model_download_url = url;} void set_download_model_name(std::string name) {m_mall_model_download_name = name;} std::string get_download_model_url() {return m_mall_model_download_url;} diff --git a/src/slic3r/GUI/GUI_Factories.cpp b/src/slic3r/GUI/GUI_Factories.cpp index 8d1452a0fa..7010046925 100644 --- a/src/slic3r/GUI/GUI_Factories.cpp +++ b/src/slic3r/GUI/GUI_Factories.cpp @@ -61,7 +61,7 @@ static SettingsFactory::Bundle FREQ_SETTINGS_BUNDLE_FFF = { L("Shell"), { "wall_loops", "top_shell_layers", "bottom_shell_layers"} }, { L("Infill") , { "sparse_infill_density", "sparse_infill_pattern" } }, // BBS - { L("Support") , { "enable_support", "support_type", "support_threshold_angle", + { L("Support") , { "enable_support", "support_type", "support_threshold_angle", "support_threshold_overlap", "support_base_pattern", "support_on_build_plate_only","support_critical_regions_only", "support_remove_small_overhang", "support_base_pattern_spacing", "support_expansion"}}, @@ -88,7 +88,7 @@ std::map> SettingsFactory::OBJECT_C }}, { L("Support"), {{"brim_type", "",1},{"brim_width", "",2},{"brim_object_gap", "",3}, - {"enable_support", "",4},{"support_type", "",5},{"support_threshold_angle", "",6},{"support_on_build_plate_only", "",7}, + {"enable_support", "",4},{"support_type", "",5},{"support_threshold_angle", "",6}, {"support_threshold_overlap", "",6}, {"support_on_build_plate_only", "",7}, {"support_filament", "",8},{"support_interface_filament", "",9},{"support_expansion", "",24},{"support_style", "",25}, {"tree_support_brim_width", "",26}, {"tree_support_branch_angle", "",10},{"tree_support_branch_angle_organic","",10}, {"tree_support_wall_count", "",11},//tree support {"support_top_z_distance", "",13},{"support_bottom_z_distance", "",12},{"support_base_pattern", "",14},{"support_base_pattern_spacing", "",15}, @@ -105,8 +105,8 @@ std::map> SettingsFactory::PART_CAT }}, { L("Strength"), {{"wall_loops", "",1},{"top_shell_layers", L("Top Solid Layers"),1},{"top_shell_thickness", L("Top Minimum Shell Thickness"),1}, {"bottom_shell_layers", L("Bottom Solid Layers"),1}, {"bottom_shell_thickness", L("Bottom Minimum Shell Thickness"),1}, - {"sparse_infill_density", "",1},{"sparse_infill_pattern", "",1},{"infill_anchor", "",1},{"infill_anchor_max", "",1},{"top_surface_pattern", "",1},{"bottom_surface_pattern", "",1}, {"internal_solid_infill_pattern", "",1}, - {"infill_combination", "",1}, {"infill_combination_max_layer_height", "",1}, {"infill_wall_overlap", "",1},{"top_bottom_infill_wall_overlap", "",1}, {"solid_infill_direction", "",1}, {"rotate_solid_infill_direction", "",1}, {"infill_direction", "",1}, {"bridge_angle", "",1}, {"minimum_sparse_infill_area", "",1} + {"sparse_infill_density", "",1},{"sparse_infill_pattern", "",1},{"lattice_angle_1", "",1},{"lattice_angle_2", "",1},{"infill_anchor", "",1},{"infill_anchor_max", "",1},{"top_surface_pattern", "",1},{"bottom_surface_pattern", "",1}, {"internal_solid_infill_pattern", "",1}, + {"infill_combination", "",1}, {"infill_combination_max_layer_height", "",1}, {"infill_wall_overlap", "",1},{"top_bottom_infill_wall_overlap", "",1}, {"solid_infill_direction", "",1}, {"rotate_solid_infill_direction", "",1}, {"infill_direction", "",1}, {"bridge_angle", "",1}, {"internal_bridge_angle", "",1}, {"minimum_sparse_infill_area", "",1} }}, { L("Speed"), {{"outer_wall_speed", "",1},{"inner_wall_speed", "",2},{"sparse_infill_speed", "",3},{"top_surface_speed", "",4}, {"internal_solid_infill_speed", "",5}, {"enable_overhang_speed", "",6}, {"overhang_speed_classic", "",6}, {"overhang_1_4_speed", "",7}, {"overhang_2_4_speed", "",8}, {"overhang_3_4_speed", "",9}, {"overhang_4_4_speed", "",10}, @@ -150,7 +150,7 @@ std::vector SettingsFactory::get_visible_options(const std::s //Quality "layer_height", "initial_layer_print_height", "adaptive_layer_height", "seam_position", "xy_hole_compensation", "xy_contour_compensation", "elefant_foot_compensation", "support_line_width", //Support - "enable_support", "support_type", "support_threshold_angle", "support_on_build_plate_only", "support_critical_regions_only", "enforce_support_layers", + "enable_support", "support_type", "support_threshold_angle", "support_threshold_overlap", "support_on_build_plate_only", "support_critical_regions_only", "enforce_support_layers", //tree support "tree_support_wall_count", //support diff --git a/src/slic3r/GUI/Gizmos/GLGizmoBase.cpp b/src/slic3r/GUI/Gizmos/GLGizmoBase.cpp index 97875ee606..089dd1d454 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoBase.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoBase.cpp @@ -74,11 +74,11 @@ PickingModel GLGizmoBase::Grabber::s_cone; GLGizmoBase::Grabber::~Grabber() { - if (s_cube.model.is_initialized()) - s_cube.model.reset(); + //if (s_cube.model.is_initialized()) + // s_cube.model.reset(); - if (s_cone.model.is_initialized()) - s_cone.model.reset(); + //if (s_cone.model.is_initialized()) + // s_cone.model.reset(); } float GLGizmoBase::Grabber::get_half_size(float size) const diff --git a/src/slic3r/GUI/Gizmos/GLGizmoBase.hpp b/src/slic3r/GUI/Gizmos/GLGizmoBase.hpp index e78da31501..ed7426dd2f 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoBase.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoBase.hpp @@ -32,6 +32,7 @@ class ImGuiWrapper; class GLCanvas3D; enum class CommonGizmosDataID; class CommonGizmosDataPool; +class Selection; class GLGizmoBase { diff --git a/src/slic3r/GUI/Gizmos/GLGizmoBrimEars.cpp b/src/slic3r/GUI/Gizmos/GLGizmoBrimEars.cpp new file mode 100644 index 0000000000..5ee7bab7c8 --- /dev/null +++ b/src/slic3r/GUI/Gizmos/GLGizmoBrimEars.cpp @@ -0,0 +1,1167 @@ +#include "GLGizmoBrimEars.hpp" +#include +#include "slic3r/GUI/GLCanvas3D.hpp" +#include "slic3r/GUI/Camera.hpp" +#include "slic3r/GUI/Gizmos/GLGizmosCommon.hpp" +#include "slic3r/GUI/GUI_App.hpp" +#include "slic3r/GUI/Plater.hpp" +#include "libslic3r/ClipperUtils.hpp" +#include "libslic3r/ExPolygon.hpp" + +namespace Slic3r { namespace GUI { + +static const ColorRGBA DEF_COLOR = {0.7f, 0.7f, 0.7f, 1.f}; +static const ColorRGBA SELECTED_COLOR = {0.0f, 0.5f, 0.5f, 1.0f}; +static const ColorRGBA ERR_COLOR = {1.0f, 0.3f, 0.3f, 0.5f}; +static const ColorRGBA HOVER_COLOR = {0.7f, 0.7f, 0.7f, 0.5f}; + +static ModelVolume *get_model_volume(const Selection &selection, Model &model) +{ + const Selection::IndicesList &idxs = selection.get_volume_idxs(); + // only one selected volume + if (idxs.size() != 1) return nullptr; + const GLVolume *selected_volume = selection.get_volume(*idxs.begin()); + if (selected_volume == nullptr) return nullptr; + + const GLVolume::CompositeID &cid = selected_volume->composite_id; + const ModelObjectPtrs &objs = model.objects; + if (cid.object_id < 0 || objs.size() <= static_cast(cid.object_id)) return nullptr; + const ModelObject *obj = objs[cid.object_id]; + if (cid.volume_id < 0 || obj->volumes.size() <= static_cast(cid.volume_id)) return nullptr; + return obj->volumes[cid.volume_id]; +} + +GLGizmoBrimEars::GLGizmoBrimEars(GLCanvas3D &parent, const std::string &icon_filename, unsigned int sprite_id) : GLGizmoBase(parent, icon_filename, sprite_id) +{ + GLModel::Geometry cylinder_geometry = smooth_cylinder(16, 1.0f, 1.0f); + m_cylinder.mesh_raycaster = std::make_unique(std::make_shared(cylinder_geometry.get_as_indexed_triangle_set())); + m_cylinder.model.init_from(std::move(cylinder_geometry)); +} + +bool GLGizmoBrimEars::on_init() +{ + + m_new_point_head_diameter = get_brim_default_radius(); + + m_shortcut_key = WXK_CONTROL_L; + + m_desc["head_diameter"] = _L("Head diameter"); + m_desc["max_angle"] = _L("Max angle"); + m_desc["detection_radius"] = _L("Detection radius"); + m_desc["remove_selected"] = _L("Remove selected points"); + m_desc["remove_all"] = _L("Remove all"); + m_desc["auto_generate"] = _L("Auto-generate points"); + m_desc["section_view"] = _L("Section view"); + + m_desc["left_click_caption"] = _L("Left click"); + m_desc["left_click"] = _L("Add a brim ear"); + m_desc["right_click_caption"] = _L("Right click"); + m_desc["right_click"] = _L("Delete a brim ear"); + m_desc["ctrl_mouse_wheel_caption"] = _L("Ctrl+Mouse wheel"); + m_desc["ctrl_mouse_wheel"] = _L("Adjust section view"); + + return true; +} + +void GLGizmoBrimEars::set_brim_data() +{ + if (!m_c->selection_info()) return; + + ModelObject *mo = m_c->selection_info()->model_object(); + + if (m_state == On && mo && mo->id() != m_old_mo_id) { + reload_cache(); + m_old_mo_id = mo->id(); + } +} + +void GLGizmoBrimEars::on_render() +{ + ModelObject *mo = m_c->selection_info()->model_object(); + const Selection &selection = m_parent.get_selection(); + + // If current m_c->m_model_object does not match selection, ask GLCanvas3D to turn us off + if (m_state == On && (mo != selection.get_model()->objects[selection.get_object_idx()] || m_c->selection_info()->get_active_instance() != selection.get_instance_idx())) { + m_parent.post_event(SimpleEvent(EVT_GLCANVAS_RESETGIZMOS)); + return; + } + + glsafe(::glEnable(GL_BLEND)); + glsafe(::glEnable(GL_DEPTH_TEST)); + + if (selection.is_from_single_instance()) render_points(selection); + + m_selection_rectangle.render(m_parent); + m_c->object_clipper()->render_cut(); + + glsafe(::glDisable(GL_BLEND)); +} + +void GLGizmoBrimEars::render_points(const Selection &selection) +{ + auto editing_cache = m_editing_cache; + if (render_hover_point != nullptr) { editing_cache.push_back(*render_hover_point); } + + size_t cache_size = editing_cache.size(); + + bool has_points = (cache_size != 0); + + if (!has_points) return; + + GLShaderProgram *shader = wxGetApp().get_shader("gouraud_light"); + if (shader != nullptr) shader->start_using(); + ScopeGuard guard([shader]() { + if (shader != nullptr) shader->stop_using(); + }); + + const Camera& camera = wxGetApp().plater()->get_camera(); + const Transform3d& view_matrix = camera.get_view_matrix(); + const GLVolume *vol = selection.get_volume(*selection.get_volume_idxs().begin()); + const Transform3d &instance_scaling_matrix_inverse = vol->get_instance_transformation().get_scaling_factor_matrix().inverse(); + const Transform3d &instance_matrix = vol->get_instance_transformation().get_matrix(); + + ColorRGBA render_color; + for (size_t i = 0; i < cache_size; ++i) { + const BrimPoint &brim_point = editing_cache[i].brim_point; + const bool &point_selected = editing_cache[i].selected; + const bool &hover = editing_cache[i].is_hover; + const bool &error = editing_cache[i].is_error; + // keep show brim ear + // if (is_mesh_point_clipped(brim_point.pos.cast())) + // continue; + + // First decide about the color of the point. + if (hover) { + render_color = HOVER_COLOR; + } else { + if (size_t(m_hover_id) == i) // ignore hover state unless editing mode is active + render_color = {0.f, 1.f, 1.f, 1.f}; + else { // neigher hover nor picking + if (point_selected) + render_color = SELECTED_COLOR; + else { + if (error) + render_color = ERR_COLOR; + else + render_color = DEF_COLOR; + } + } + } + + m_cylinder.model.set_color(render_color); + if (shader) shader->set_uniform("emission_factor", 0.5f); + + if (vol->is_left_handed()) glFrontFace(GL_CW); + + // Matrices set, we can render the point mark now. + // If in editing mode, we'll also render a cone pointing to the sphere. + if (editing_cache[i].normal == Vec3f::Zero()) m_c->raycaster()->raycaster()->get_closest_point(editing_cache[i].brim_point.pos, &editing_cache[i].normal); + + Eigen::Quaterniond q; + q.setFromTwoVectors(Vec3d{0., 0., 1.}, instance_scaling_matrix_inverse * editing_cache[i].normal.cast()); + + double radius = (double) brim_point.head_front_radius * RenderPointScale; + const Transform3d center_matrix = + instance_matrix + * Geometry::translation_transform(brim_point.pos.cast()) + // Inverse matrix of the instance scaling is applied so that the mark does not scale with the object. + * instance_scaling_matrix_inverse + * q + * Geometry::scale_transform(Vec3d{radius, radius, .2}); + if (i < m_grabbers.size()) { + m_grabbers[i].raycasters[0]->set_transform(center_matrix); + } + shader->set_uniform("view_model_matrix", view_matrix * center_matrix); + m_cylinder.model.render(); + + if (vol->is_left_handed()) glFrontFace(GL_CCW); + } +} + +bool GLGizmoBrimEars::is_mesh_point_clipped(const Vec3d &point) const +{ + if (m_c->object_clipper()->get_position() == 0.) return false; + + auto sel_info = m_c->selection_info(); + int active_inst = m_c->selection_info()->get_active_instance(); + const ModelInstance *mi = sel_info->model_object()->instances[active_inst]; + const Transform3d &trafo = mi->get_transformation().get_matrix(); + + Vec3d transformed_point = trafo * point; + transformed_point(2) += sel_info->get_sla_shift(); + return m_c->object_clipper()->get_clipping_plane()->is_point_clipped(transformed_point); +} + +bool GLGizmoBrimEars::unproject_on_mesh2(const Vec2d &mouse_pos, std::pair &pos_and_normal) +{ + const Camera &camera = wxGetApp().plater()->get_camera(); + double clp_dist = m_c->object_clipper()->get_position(); + const ClippingPlane *clp = m_c->object_clipper()->get_clipping_plane(); + bool mouse_on_object = false; + Vec3f position_on_model; + Vec3f normal_on_model; + double closest_hit_distance = std::numeric_limits::max(); + + for (auto item : m_mesh_raycaster_map) { + auto raycaster = item.second->get_raycaster(); + auto& world_tran = item.second->get_transform(); + Vec3f normal = Vec3f::Zero(); + Vec3f hit = Vec3f::Zero(); + if (raycaster->unproject_on_mesh(mouse_pos, world_tran, camera, hit, normal, clp_dist != 0. ? clp : nullptr)) { + double hit_squared_distance = (camera.get_position() - world_tran * hit.cast()).norm(); + if (hit_squared_distance < closest_hit_distance) { + closest_hit_distance = hit_squared_distance; + mouse_on_object = true; + m_last_hit_volume = item.first; + auto volum_trsf = m_last_hit_volume->get_volume_transformation().get_matrix(); + position_on_model = (m_last_hit_volume->get_volume_transformation().get_matrix() * hit.cast()).cast(); + normal_on_model = normal; + } + } + } + pos_and_normal = std::make_pair(position_on_model, normal_on_model); + return mouse_on_object; +} +// Unprojects the mouse position on the mesh and saves hit point and normal of the facet into pos_and_normal +// Return false if no intersection was found, true otherwise. +bool GLGizmoBrimEars::unproject_on_mesh(const Vec2d &mouse_pos, std::pair &pos_and_normal) +{ + if (m_c->raycaster()->raycasters().size() != 1) return false; + if (!m_c->raycaster()->raycaster()) return false; + + const Camera &camera = wxGetApp().plater()->get_camera(); + const Selection &selection = m_parent.get_selection(); + const GLVolume *volume = selection.get_volume(*selection.get_volume_idxs().begin()); + Geometry::Transformation trafo = volume->get_instance_transformation(); + // trafo.set_offset(trafo.get_offset() + Vec3d(0., 0., m_c->selection_info()->get_sla_shift()));//sla shift看起来可以删掉 + + double clp_dist = m_c->object_clipper()->get_position(); + const ClippingPlane *clp = m_c->object_clipper()->get_clipping_plane(); + + // The raycaster query + Vec3f hit; + Vec3f normal; + if (m_c->raycaster()->raycaster()->unproject_on_mesh(mouse_pos, trafo.get_matrix(), camera, hit, normal, clp_dist != 0. ? clp : nullptr)) { + pos_and_normal = std::make_pair(hit, normal); + return true; + } + + return false; +} + +void GLGizmoBrimEars::data_changed(bool is_serializing) +{ + if (!m_c->selection_info()) return; + + ModelObject *mo = m_c->selection_info()->model_object(); + if (mo) { + reset_all_pick(); + register_single_mesh_pick(); + } + + set_brim_data(); +} + + +bool GLGizmoBrimEars::on_mouse(const wxMouseEvent& mouse_event) +{ + if (use_grabbers(mouse_event)) { + return true; + } + + // wxCoord == int --> wx/types.h + Vec2i32 mouse_coord(mouse_event.GetX(), mouse_event.GetY()); + Vec2d mouse_pos = mouse_coord.cast(); + + if (mouse_event.Moving()) { + return gizmo_event(SLAGizmoEventType::Moving, mouse_pos, mouse_event.ShiftDown(), mouse_event.AltDown(), false); + } + + // when control is down we allow scene pan and rotation even when clicking + // over some object + bool control_down = mouse_event.CmdDown(); + bool grabber_contains_mouse = (get_hover_id() != -1); + + const Selection &selection = m_parent.get_selection(); + int selected_object_idx = selection.get_object_idx(); + if (mouse_event.LeftDown()) { + if ((!control_down || grabber_contains_mouse) && + gizmo_event(SLAGizmoEventType::LeftDown, mouse_pos, mouse_event.ShiftDown(), mouse_event.AltDown(), false)) + // the gizmo got the event and took some action, there is no need + // to do anything more + return true; + } else if (mouse_event.RightDown()){ + if (!control_down && selected_object_idx != -1 && + gizmo_event(SLAGizmoEventType::RightDown, mouse_pos, false, false, false)) + // event was taken care of + return true; + } else if (mouse_event.Dragging()) { + if (m_parent.get_move_volume_id() != -1) + // don't allow dragging objects with the Sla gizmo on + return true; + if (!control_down && gizmo_event(SLAGizmoEventType::Dragging, + mouse_pos, mouse_event.ShiftDown(), + mouse_event.AltDown(), false)) { + // the gizmo got the event and took some action, no need to do + // anything more here + m_parent.set_as_dirty(); + return true; + } + if(control_down && (mouse_event.LeftIsDown() || mouse_event.RightIsDown())) + { + // CTRL has been pressed while already dragging -> stop current action + if (mouse_event.LeftIsDown()) + gizmo_event(SLAGizmoEventType::LeftUp, mouse_pos, mouse_event.ShiftDown(), mouse_event.AltDown(), true); + else if (mouse_event.RightIsDown()) + gizmo_event(SLAGizmoEventType::RightUp, mouse_pos, mouse_event.ShiftDown(), mouse_event.AltDown(), true); + return false; + } + } else if (mouse_event.LeftUp()) { + if (!m_parent.is_mouse_dragging()) { + // in case SLA/FDM gizmo is selected, we just pass the LeftUp + // event and stop processing - neither object moving or selecting + // is suppressed in that case + gizmo_event(SLAGizmoEventType::LeftUp, mouse_pos, mouse_event.ShiftDown(), mouse_event.AltDown(), control_down); + return true; + } + } + return false; +} + +// Following function is called from GLCanvas3D to inform the gizmo about a mouse/keyboard event. +// The gizmo has an opportunity to react - if it does, it should return true so that the Canvas3D is +// aware that the event was reacted to and stops trying to make different sense of it. If the gizmo +// concludes that the event was not intended for it, it should return false. +bool GLGizmoBrimEars::gizmo_event(SLAGizmoEventType action, const Vec2d &mouse_position, bool shift_down, bool alt_down, bool control_down) +{ + ModelObject *mo = m_c->selection_info()->model_object(); + int active_inst = m_c->selection_info()->get_active_instance(); + + if (action == SLAGizmoEventType::Moving) { + // First check that the mouse pointer is on an object. + const Selection &selection = m_parent.get_selection(); + const ModelInstance *mi = mo->instances[0]; + Plater *plater = wxGetApp().plater(); + if (!plater) return false; + const Camera &camera = wxGetApp().plater()->get_camera(); + const GLVolume *volume = selection.get_volume(*selection.get_volume_idxs().begin()); + Transform3d inverse_trsf = volume->get_instance_transformation().get_matrix_no_offset().inverse(); + std::pair pos_and_normal; + if (unproject_on_mesh2(mouse_position, pos_and_normal)) { + render_hover_point = new CacheEntry(BrimPoint(pos_and_normal.first, m_new_point_head_diameter / 2.f), false, (inverse_trsf * m_world_normal).cast(), true); + } else { + delete render_hover_point; + render_hover_point = nullptr; + } + } else if (action == SLAGizmoEventType::LeftDown && (shift_down || alt_down || control_down)) { + // left down with shift - show the selection rectangle: + if (m_hover_id == -1) { + if (shift_down || alt_down) { m_selection_rectangle.start_dragging(mouse_position, shift_down ? GLSelectionRectangle::Select : GLSelectionRectangle::Deselect); } + } else { + if (m_editing_cache[m_hover_id].selected) + unselect_point(m_hover_id); + else { + if (!alt_down) select_point(m_hover_id); + } + } + + return true; + } + + // left down without selection rectangle - place point on the mesh: + if (action == SLAGizmoEventType::LeftDown && !m_selection_rectangle.is_dragging() && !shift_down) { + // If any point is in hover state, this should initiate its move - return control back to GLCanvas: + if (m_hover_id != -1) return false; + + // If there is some selection, don't add new point and deselect everything instead. + if (m_selection_empty) { + std::pair pos_and_normal; + if (unproject_on_mesh2(mouse_position, pos_and_normal)) { + // we got an intersection + const Selection &selection = m_parent.get_selection(); + const GLVolume *volume = selection.get_volume(*selection.get_volume_idxs().begin()); + Transform3d trsf = volume->get_instance_transformation().get_matrix(); + Transform3d inverse_trsf = volume->get_instance_transformation().get_matrix_no_offset().inverse(); + // BBS brim ear postion is placed on the bottom side + Vec3d world_pos = trsf * pos_and_normal.first.cast(); + world_pos[2] = -0.0001; + Vec3d object_pos = trsf.inverse() * world_pos; + // brim ear always face up + Plater::TakeSnapshot snapshot(wxGetApp().plater(), "Add brim ear"); + add_point_to_cache(object_pos.cast(), m_new_point_head_diameter / 2.f, false, (inverse_trsf * m_world_normal).cast()); + m_parent.set_as_dirty(); + m_wait_for_up_event = true; + find_single(); + } else + return false; + } else + select_point(NoPoints); + + return true; + } + + // left up with selection rectangle - select points inside the rectangle: + if ((action == SLAGizmoEventType::LeftUp || action == SLAGizmoEventType::ShiftUp || action == SLAGizmoEventType::AltUp) && m_selection_rectangle.is_dragging()) { + // Is this a selection or deselection rectangle? + GLSelectionRectangle::EState rectangle_status = m_selection_rectangle.get_state(); + + // First collect positions of all the points in world coordinates. + Geometry::Transformation trafo = mo->instances[active_inst]->get_transformation(); + // trafo.set_offset(trafo.get_offset() + Vec3d(0., 0., m_c->selection_info()->get_sla_shift())); + std::vector points; + for (unsigned int i = 0; i < m_editing_cache.size(); ++i) points.push_back(trafo.get_matrix() * m_editing_cache[i].brim_point.pos.cast()); + + // Now ask the rectangle which of the points are inside. + std::vector points_inside; + std::vector points_idxs = m_selection_rectangle.contains(points); + m_selection_rectangle.stop_dragging(); + for (size_t idx : points_idxs) points_inside.push_back(points[idx].cast()); + + // Only select/deselect points that are actually visible. We want to check not only + // the point itself, but also the center of base of its cone, so the points don't hide + // under every miniature irregularity on the model. Remember the actual number and + // append the cone bases. + size_t orig_pts_num = points_inside.size(); + for (size_t idx : points_idxs) + points_inside.emplace_back((trafo.get_matrix().cast() * (m_editing_cache[idx].brim_point.pos + m_editing_cache[idx].normal)).cast()); + + for (size_t idx : + m_c->raycaster()->raycaster()->get_unobscured_idxs(trafo, wxGetApp().plater()->get_camera(), points_inside, m_c->object_clipper()->get_clipping_plane())) { + if (idx >= orig_pts_num) // this is a cone-base, get index of point it belongs to + idx -= orig_pts_num; + if (rectangle_status == GLSelectionRectangle::Deselect) + unselect_point(points_idxs[idx]); + else + select_point(points_idxs[idx]); + } + return true; + } + + // left up with no selection rectangle + if (action == SLAGizmoEventType::LeftUp) { + if (m_wait_for_up_event) { m_wait_for_up_event = false; } + return true; + } + + // dragging the selection rectangle: + if (action == SLAGizmoEventType::Dragging) { + if (m_wait_for_up_event) + return true; // point has been placed and the button not released yet + // this prevents GLCanvas from starting scene rotation + + if (m_selection_rectangle.is_dragging()) { + m_selection_rectangle.dragging(mouse_position); + return true; + } + + return false; + } + + if (action == SLAGizmoEventType::Delete) { + // delete key pressed + delete_selected_points(); + return true; + } + + if (action == SLAGizmoEventType::RightDown) { + if (m_hover_id != -1) { + select_point(NoPoints); + select_point(m_hover_id); + delete_selected_points(); + return true; + } + return false; + } + + if (action == SLAGizmoEventType::SelectAll) { + select_point(AllPoints); + return true; + } + + // mouse wheel up + if (action == SLAGizmoEventType::MouseWheelUp && control_down) { + double pos = m_c->object_clipper()->get_position(); + pos = std::min(1., pos + 0.01); + m_c->object_clipper()->set_position_by_ratio(pos, false, true); + return true; + } + + if (action == SLAGizmoEventType::MouseWheelDown && control_down) { + double pos = m_c->object_clipper()->get_position(); + pos = std::max(0., pos - 0.01); + m_c->object_clipper()->set_position_by_ratio(pos, false, true); + return true; + } + + // reset clipper position + if (action == SLAGizmoEventType::ResetClippingPlane) { + m_c->object_clipper()->set_position_by_ratio(-1., false); + return true; + } + + return false; +} + +void GLGizmoBrimEars::delete_selected_points() +{ + Plater::TakeSnapshot snapshot(wxGetApp().plater(), "Delete brim ear"); + + for (unsigned int idx = 0; idx < m_editing_cache.size(); ++idx) { + if (m_editing_cache[idx].selected) { m_editing_cache.erase(m_editing_cache.begin() + (idx--)); } + } + + select_point(NoPoints); + find_single(); +} + +void GLGizmoBrimEars::on_dragging(const UpdateData& data) +{ + if (m_hover_id != -1) { + std::pair pos_and_normal; + if (!unproject_on_mesh2(data.mouse_pos.cast(), pos_and_normal)) return; + m_editing_cache[m_hover_id].brim_point.pos[0] = pos_and_normal.first.x(); + m_editing_cache[m_hover_id].brim_point.pos[1] = pos_and_normal.first.y(); + //m_editing_cache[m_hover_id].normal = pos_and_normal.second; + m_editing_cache[m_hover_id].normal = Vec3f(0, 0, 1); + find_single(); + } +} + +std::vector GLGizmoBrimEars::get_config_options(const std::vector &keys) const +{ + std::vector out; + const ModelObject *mo = m_c->selection_info()->model_object(); + + if (!mo) return out; + + const DynamicPrintConfig &object_cfg = mo->config.get(); + const DynamicPrintConfig &print_cfg = wxGetApp().preset_bundle->sla_prints.get_edited_preset().config; + std::unique_ptr default_cfg = nullptr; + + for (const std::string &key : keys) { + if (object_cfg.has(key)) + out.push_back(object_cfg.option(key)); + else if (print_cfg.has(key)) + out.push_back(print_cfg.option(key)); + else { // we must get it from defaults + if (default_cfg == nullptr) default_cfg.reset(DynamicPrintConfig::new_from_defaults_keys(keys)); + out.push_back(default_cfg->option(key)); + } + } + + return out; +} + +void GLGizmoBrimEars::on_render_input_window(float x, float y, float bottom_limit) +{ + static float last_y = 0.0f; + static float last_h = 0.0f; + + ModelObject *mo = m_c->selection_info()->model_object(); + + if (!mo) return; + + const DynamicPrintConfig& obj_cfg = mo->config.get(); + const DynamicPrintConfig& glb_cfg = wxGetApp().preset_bundle->prints.get_edited_preset().config; + const float win_h = ImGui::GetWindowHeight(); + y = std::min(y, bottom_limit - win_h); + GizmoImguiSetNextWIndowPos(x, y, ImGuiCond_Always, 0.0f, 0.0f); + + const float currt_scale = m_parent.get_scale(); + ImGuiWrapper::push_toolbar_style(currt_scale); + ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(4.0 * currt_scale, 5.0 * currt_scale)); + ImGui::PushStyleVar(ImGuiStyleVar_ScrollbarSize, 4.0f * currt_scale); + GizmoImguiBegin(get_name(), + ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoTitleBar); + + float space_size = m_imgui->get_style_scaling() * 8; + std::vector text_list = {m_desc["head_diameter"], m_desc["max_angle"], m_desc["detection_radius"], m_desc["clipping_of_view"]}; + float widest_text = m_imgui->find_widest_text(text_list); + float caption_size = widest_text + space_size + ImGui::GetStyle().WindowPadding.x; + float input_text_size = m_imgui->scaled(10.0f); + float button_size = ImGui::GetFrameHeight(); + + float list_width = input_text_size + ImGui::GetStyle().ScrollbarSize + 2 * currt_scale; + + const float slider_icon_width = m_imgui->get_slider_icon_size().x; + const float slider_width = list_width - space_size; + const float drag_left_width = caption_size + slider_width + space_size; + + // adjust window position to avoid overlap the view toolbar + if (last_h != win_h || last_y != y) { + // ask canvas for another frame to render the window in the correct position + m_imgui->set_requires_extra_frame(); + if (last_h != win_h) last_h = win_h; + if (last_y != y) last_y = y; + } + + ImGui::AlignTextToFramePadding(); + + // Following is a nasty way to: + // - save the initial value of the slider before one starts messing with it + // - keep updating the head radius during sliding so it is continuosly refreshed in 3D scene + // - take correct undo/redo snapshot after the user is done with moving the slider + float initial_value = m_new_point_head_diameter; + m_imgui->text(m_desc["head_diameter"]); + ImGui::SameLine(caption_size); + ImGui::PushItemWidth(slider_width); + auto update_cache_radius = [this]() { + for (auto &cache_entry : m_editing_cache) + if (cache_entry.selected) { + cache_entry.brim_point.head_front_radius = m_new_point_head_diameter / 2.f; + find_single(); + } + }; + m_imgui->bbl_slider_float_style("##head_diameter", &m_new_point_head_diameter, 5, 20, "%.1f", 1.0f, true); + if (m_imgui->get_last_slider_status().clicked) { + if (m_old_point_head_diameter == 0.f) m_old_point_head_diameter = initial_value; + } + if (m_imgui->get_last_slider_status().edited) + update_cache_radius(); + if (m_imgui->get_last_slider_status().deactivated_after_edit) { + // momentarily restore the old value to take snapshot + for (auto &cache_entry : m_editing_cache) + if (cache_entry.selected) cache_entry.brim_point.head_front_radius = m_old_point_head_diameter / 2.f; + float backup = m_new_point_head_diameter; + m_new_point_head_diameter = m_old_point_head_diameter; + Plater::TakeSnapshot snapshot(wxGetApp().plater(), "Change point head diameter"); + m_new_point_head_diameter = backup; + update_cache_radius(); + m_old_point_head_diameter = 0.f; + } + ImGui::SameLine(drag_left_width); + ImGui::PushItemWidth(1.5 * slider_icon_width); + ImGui::BBLDragFloat("##head_diameter_input", &m_new_point_head_diameter, 0.05f, 0.0f, 0.0f, "%.1f"); + ImGui::AlignTextToFramePadding(); + + m_imgui->text(m_desc["max_angle"]); + ImGui::SameLine(caption_size); + ImGui::PushItemWidth(slider_width); + m_imgui->bbl_slider_float_style("##max_angle", &m_max_angle, 0, 180, "%.1f", 1.0f, true); + ImGui::SameLine(drag_left_width); + ImGui::PushItemWidth(1.5 * slider_icon_width); + ImGui::BBLDragFloat("##max_angle_input", &m_max_angle, 0.05f, 0.0f, 180.0f, "%.1f"); + ImGui::AlignTextToFramePadding(); + + m_imgui->text(m_desc["detection_radius"]); + ImGui::SameLine(caption_size); + ImGui::PushItemWidth(slider_width); + m_imgui->bbl_slider_float_style("##detection_radius", &m_detection_radius, 0, static_cast(m_detection_radius_max), "%.1f", 1.0f, true); + ImGui::SameLine(drag_left_width); + ImGui::PushItemWidth(1.5 * slider_icon_width); + ImGui::BBLDragFloat("##detection_radius_input", &m_detection_radius, 0.05f, 0.0f, static_cast(m_detection_radius_max), "%.1f"); + ImGui::Separator(); + + float clp_dist = float(m_c->object_clipper()->get_position()); + m_imgui->text(m_desc["section_view"]); + ImGui::SameLine(caption_size); + ImGui::PushItemWidth(slider_width); + bool slider_clp_dist = m_imgui->bbl_slider_float_style("##section_view", &clp_dist, 0.f, 1.f, "%.2f", 1.0f, true); + ImGui::SameLine(drag_left_width); + ImGui::PushItemWidth(1.5 * slider_icon_width); + bool b_clp_dist_input = ImGui::BBLDragFloat("##section_view_input", &clp_dist, 0.05f, 0.0f, 0.0f, "%.2f"); + if (slider_clp_dist || b_clp_dist_input) { m_c->object_clipper()->set_position_by_ratio(clp_dist, false, true); } + ImGui::Separator(); + + // ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(6.0f, 10.0f)); + + float f_scale = m_parent.get_gizmos_manager().get_layout_scale(); + ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(6.0f, 4.0f * f_scale)); + if (m_imgui->button(m_desc["auto_generate"])) { auto_generate(); } + + if (m_imgui->button(m_desc["remove_selected"])) { delete_selected_points(); } + float font_size = ImGui::GetFontSize(); + //ImGui::Dummy(ImVec2(font_size * 1, font_size * 1.3)); + ImGui::SameLine(); + if (m_imgui->button(m_desc["remove_all"])) { + if (m_editing_cache.size() > 0) { + select_point(AllPoints); + delete_selected_points(); + } + } + ImGui::PopStyleVar(1); + + float get_cur_y = ImGui::GetContentRegionMax().y + ImGui::GetFrameHeight() + y; + show_tooltip_information(x, get_cur_y); + + if (glb_cfg.opt_enum("brim_type") != btPainted) { + ImGui::SameLine(); + auto link_text = [&]() { + ImColor HyperColor = ImGuiWrapper::COL_ORCA; + ImGui::PushStyleColor(ImGuiCol_Text, ImGuiWrapper::to_ImVec4(ColorRGB::WARNING())); + float parent_width = ImGui::GetContentRegionAvail().x; + m_imgui->text_wrapped(_L("Warning: The brim type is not set to \"painted\",the brim ears will not take effect !"), parent_width); + ImGui::PopStyleColor(); + ImGui::PushStyleColor(ImGuiCol_Text, HyperColor.Value); + ImGui::Dummy(ImVec2(font_size * 1.8, font_size * 1.3)); + ImGui::SameLine(); + m_imgui->bold_text(_u8L("Set the brim type to \"painted\"")); + ImGui::PopStyleColor(); + // underline + ImVec2 lineEnd = ImGui::GetItemRectMax(); + lineEnd.y -= 2.0f; + ImVec2 lineStart = lineEnd; + lineStart.x = ImGui::GetItemRectMin().x; + ImGui::GetWindowDrawList()->AddLine(lineStart, lineEnd, HyperColor); + if (ImGui::IsMouseHoveringRect(ImGui::GetItemRectMin(), ImGui::GetItemRectMax(), true)) { + m_link_text_hover = true; + if (ImGui::IsMouseClicked(ImGuiMouseButton_Left)) { + DynamicPrintConfig new_conf = obj_cfg; + new_conf.set_key_value("brim_type", new ConfigOptionEnum(btPainted)); + mo->config.assign_config(new_conf); + } + }else { + m_link_text_hover = false; + } + }; + + if (obj_cfg.option("brim_type")) { + if (obj_cfg.opt_enum("brim_type") != btPainted) { + link_text(); + } + }else { + link_text(); + } + + } + + if (!m_single_brim.empty()) { + wxString out = _L("Warning") + ": " + std::to_string(m_single_brim.size()) + _L(" invalid brim ears"); + m_imgui->warning_text(out); + } + + GizmoImguiEnd(); + ImGui::PopStyleVar(2); + ImGuiWrapper::pop_toolbar_style(); +} + +void GLGizmoBrimEars::show_tooltip_information(float x, float y) +{ + std::array info_array = std::array{"left_click", "right_click", "ctrl_mouse_wheel"}; + float caption_max = 0.f; + for (const auto &t : info_array) { caption_max = std::max(caption_max, m_imgui->calc_text_size(m_desc[t + "_caption"]).x); } + + ImTextureID normal_id = m_parent.get_gizmos_manager().get_icon_texture_id(GLGizmosManager::MENU_ICON_NAME::IC_TOOLBAR_TOOLTIP); + ImTextureID hover_id = m_parent.get_gizmos_manager().get_icon_texture_id(GLGizmosManager::MENU_ICON_NAME::IC_TOOLBAR_TOOLTIP_HOVER); + + caption_max += m_imgui->calc_text_size(": "sv).x + 35.f; + + float scale = m_parent.get_scale(); + ImVec2 button_size = ImVec2(25 * scale, 25 * scale); // ORCA: Use exact resolution will prevent blur on icon + ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 0.0f); + ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, {0, 0}); // ORCA: Dont add padding + ImGui::ImageButton3(normal_id, hover_id, button_size); + + if (ImGui::IsItemHovered()) { + ImGui::BeginTooltip2(ImVec2(x, y)); + auto draw_text_with_caption = [this, &caption_max](const wxString &caption, const wxString &text) { + m_imgui->text_colored(ImGuiWrapper::COL_ACTIVE, caption); + ImGui::SameLine(caption_max); + m_imgui->text_colored(ImGuiWrapper::COL_WINDOW_BG, text); + }; + + for (const auto &t : info_array) draw_text_with_caption(m_desc.at(t + "_caption") + ": ", m_desc.at(t)); + ImGui::EndTooltip(); + } + ImGui::PopStyleVar(2); +} + +bool GLGizmoBrimEars::on_is_activable() const +{ + const Selection &selection = m_parent.get_selection(); + + if (!selection.is_single_full_instance()) return false; + + // Check that none of the selected volumes is outside. Only SLA auxiliaries (supports) are allowed outside. + // const Selection::IndicesList &list = selection.get_volume_idxs(); + // for (const auto &idx : list) + // if (selection.get_volume(idx)->is_outside && selection.get_volume(idx)->composite_id.volume_id >= 0) return false; + + return true; +} + +std::string GLGizmoBrimEars::on_get_name() const +{ + if (!on_is_activable() && m_state == EState::Off) { + return _u8L("Brim Ears") + ":\n" + _u8L("Please select single object."); + } else { + return _u8L("Brim Ears"); + } +} + +CommonGizmosDataID GLGizmoBrimEars::on_get_requirements() const +{ + return CommonGizmosDataID(int(CommonGizmosDataID::SelectionInfo) | int(CommonGizmosDataID::InstancesHider) | int(CommonGizmosDataID::Raycaster) | + int(CommonGizmosDataID::ObjectClipper)); +} + +void GLGizmoBrimEars::save_model() +{ + ModelObject* mo = m_c->selection_info()->model_object(); + if (mo) { + mo->brim_points.clear(); + for (const CacheEntry& ce : m_editing_cache) mo->brim_points.emplace_back(ce.brim_point); + wxGetApp().plater()->set_plater_dirty(true); + } +} + +// switch gizmos +void GLGizmoBrimEars::on_set_state() +{ + if (m_state == m_old_state) return; + + if (m_state == On && m_old_state != On) { + // the gizmo was just turned on + wxGetApp().plater()->enter_gizmos_stack(); + first_layer_slicer(); + } + if (m_state == Off && m_old_state != Off) { + // the gizmo was just turned Off + Plater::TakeSnapshot snapshot(wxGetApp().plater(), "Brim ears edit"); + save_model(); + m_parent.post_event(SimpleEvent(EVT_GLCANVAS_SCHEDULE_BACKGROUND_PROCESS)); + wxGetApp().plater()->leave_gizmos_stack(); + // wxGetApp().mainframe->update_slice_print_status(MainFrame::SlicePrintEventType::eEventSliceUpdate, true, true); + } + m_old_state = m_state; +} + +void GLGizmoBrimEars::on_start_dragging() +{ + if (m_hover_id != -1) { + select_point(NoPoints); + select_point(m_hover_id); + m_point_before_drag = m_editing_cache[m_hover_id]; + } else + m_point_before_drag = CacheEntry(); +} + +void GLGizmoBrimEars::on_stop_dragging() +{ + if (m_hover_id != -1) { + CacheEntry backup = m_editing_cache[m_hover_id]; + + if (m_point_before_drag.brim_point.pos != Vec3f::Zero() // some point was touched + && backup.brim_point.pos != m_point_before_drag.brim_point.pos) // and it was moved, not just selected + { + m_editing_cache[m_hover_id] = m_point_before_drag; + Plater::TakeSnapshot snapshot(wxGetApp().plater(), "Move support point"); + m_editing_cache[m_hover_id] = backup; + } + } + m_point_before_drag = CacheEntry(); +} + +void GLGizmoBrimEars::on_load(cereal::BinaryInputArchive &ar) { ar(m_new_point_head_diameter, m_editing_cache, m_selection_empty); } + +void GLGizmoBrimEars::on_save(cereal::BinaryOutputArchive &ar) const { ar(m_new_point_head_diameter, m_editing_cache, m_selection_empty); } + +void GLGizmoBrimEars::select_point(int i) +{ + if (i == AllPoints || i == NoPoints) { + for (auto &point_and_selection : m_editing_cache) point_and_selection.selected = (i == AllPoints); + m_selection_empty = (i == NoPoints); + + if (i == AllPoints) m_new_point_head_diameter = m_editing_cache[0].brim_point.head_front_radius * 2.f; + } else { + m_editing_cache[i].selected = true; + m_selection_empty = false; + m_new_point_head_diameter = m_editing_cache[i].brim_point.head_front_radius * 2.f; + } +} + +void GLGizmoBrimEars::unselect_point(int i) +{ + m_editing_cache[i].selected = false; + m_selection_empty = true; + for (const CacheEntry &ce : m_editing_cache) { + if (ce.selected) { + m_selection_empty = false; + break; + } + } +} + +void GLGizmoBrimEars::reload_cache() +{ + const ModelObject *mo = m_c->selection_info()->model_object(); + m_editing_cache.clear(); + for (const BrimPoint &point : mo->brim_points) m_editing_cache.emplace_back(point); + find_single(); +} + +Points GLGizmoBrimEars::generate_points(Polygon &obj_polygon, float ear_detection_length, float brim_ears_max_angle, bool is_outer) +{ + const coordf_t angle_threshold = (180 - brim_ears_max_angle) * PI / 180.0; + Points pt_ears; + if (ear_detection_length > 0) { + double detect_length = ear_detection_length / SCALING_FACTOR; + Points points = obj_polygon.points; + points.push_back(points.front()); + points = MultiPoint::_douglas_peucker(points, detect_length); + if (points.size() > 4) { + points.erase(points.end() - 1); + } + obj_polygon.points = points; + } + append(pt_ears, is_outer ? obj_polygon.convex_points(angle_threshold) : obj_polygon.concave_points(angle_threshold)); + return pt_ears; +} + +void GLGizmoBrimEars::first_layer_slicer() +{ + const Selection &selection = m_parent.get_selection(); + const Selection::IndicesList &idxs = selection.get_volume_idxs(); + if (idxs.size() <= 0) return; + std::vector slice_height(1, 0.1); + MeshSlicingParamsEx params; + params.mode = MeshSlicingParams::SlicingMode::Regular; + params.closing_radius = 0.1f; + params.extra_offset = 0.05f; + params.resolution = 0.01; + ExPolygons part_ex; + ExPolygons negative_ex; + for (auto idx : idxs) { + const GLVolume *volume = selection.get_volume(idx); + const ModelVolume *model_volume = get_model_volume(*volume, wxGetApp().model()); + if (model_volume == nullptr) continue; + if (model_volume->type() == ModelVolumeType::MODEL_PART || model_volume->type() == ModelVolumeType::NEGATIVE_VOLUME) { + indexed_triangle_set volume_its = model_volume->mesh().its; + if (volume_its.indices.size() <= 0) continue; + Transform3d trsf = volume->get_instance_transformation().get_matrix() * volume->get_volume_transformation().get_matrix(); + MeshSlicingParamsEx params_ex(params); + params_ex.trafo = params_ex.trafo * trsf; + if (params_ex.trafo.rotation().determinant() < 0.) its_flip_triangles(volume_its); + ExPolygons sliced_layer = slice_mesh_ex(volume_its, slice_height, params_ex).front(); + if (model_volume->type() == ModelVolumeType::MODEL_PART) { + part_ex = union_ex(part_ex, sliced_layer); + } else { + negative_ex = union_ex(negative_ex, sliced_layer); + } + } + } + m_first_layer = diff_ex(part_ex, negative_ex); + get_detection_radius_max(); +} + +void GLGizmoBrimEars::auto_generate() +{ + const Selection &selection = m_parent.get_selection(); + const GLVolume *volume = selection.get_volume(*selection.get_volume_idxs().begin()); + Transform3d trsf = volume->get_instance_transformation().get_matrix(); + Vec3f normal = (volume->get_instance_transformation().get_matrix_no_offset().inverse() * m_world_normal).cast(); + auto add_point = [this, &trsf, &normal](const Point &p) { + Vec3d world_pos = {float(p.x() * SCALING_FACTOR), float(p.y() * SCALING_FACTOR), -0.0001}; + Vec3d object_pos = trsf.inverse() * world_pos; + // m_editing_cache.emplace_back(BrimPoint(object_pos.cast(), m_new_point_head_diameter / 2), false, normal); + add_point_to_cache(object_pos.cast(), m_new_point_head_diameter / 2, false, normal); + }; + for (const ExPolygon &ex_poly : m_first_layer) { + Polygon out_poly = ex_poly.contour; + Polygons inner_poly = ex_poly.holes; + polygons_reverse(inner_poly); + Plater::TakeSnapshot snapshot(wxGetApp().plater(), "Auto generate brim ear"); + Points out_points = generate_points(out_poly, m_detection_radius, m_max_angle, true); + for (Point &p : out_points) { add_point(p); } + for (Polygon &pl : inner_poly) { + Points inner_points = generate_points(pl, m_detection_radius, m_max_angle, false); + for (Point &p : inner_points) { add_point(p); } + } + } + find_single(); +} + +void GLGizmoBrimEars::get_detection_radius_max() +{ + double max_dist = 0.0; + int min_points_num = 0; + for (const ExPolygon &ex_poly : m_first_layer) { + Polygon out_poly = ex_poly.contour; + Polygons inner_poly = ex_poly.holes; + polygons_reverse(inner_poly); + + Points out_points = out_poly.points; + out_points.push_back(out_points.front()); + double tolerance = 0.0; + min_points_num = MultiPoint::_douglas_peucker(out_points, 0).size(); + int repeat = 0; + int loop_protect = 0; + for (;;) { + loop_protect++; + tolerance += 10; + int num = MultiPoint::_douglas_peucker(out_points, tolerance / SCALING_FACTOR).size(); + if (num == min_points_num) { + repeat++; + if (repeat > 1) + break; + } + min_points_num = num; + if (loop_protect > 100) break; + } + loop_protect = 0; + for (;;) { + loop_protect++; + tolerance -= 1; + int num = MultiPoint::_douglas_peucker(out_points, tolerance / SCALING_FACTOR).size(); + if (num <= min_points_num) { + min_points_num = num; + }else{ + break; + } + if (loop_protect > 100) break; + } + tolerance += 1; + if (tolerance > max_dist) + max_dist = tolerance; + } + if (max_dist > 100 || max_dist <= 0) { + m_detection_radius_max = 100; + } else { + m_detection_radius_max = max_dist; + } +} + +bool GLGizmoBrimEars::add_point_to_cache(Vec3f pos, float head_radius, bool selected, Vec3f normal) +{ + BrimPoint point(pos, head_radius); + for (int i = 0; i < m_editing_cache.size(); i++) { + if (m_editing_cache[i].brim_point == point) { return false; } + } + m_editing_cache.emplace_back(point, selected, normal); + return true; +} + + +void GLGizmoBrimEars::on_register_raycasters_for_picking() { + update_raycasters(); +} + +void GLGizmoBrimEars::on_unregister_raycasters_for_picking() +{ + m_parent.remove_raycasters_for_picking(SceneRaycaster::EType::Gizmo); + m_grabbers.clear(); +} + +void GLGizmoBrimEars::update_raycasters() +{ + // Remove extra raycasters + if (m_editing_cache.size() < m_grabbers.size()) { + for (auto it = m_grabbers.begin() + m_editing_cache.size(); it != m_grabbers.end(); ++it) { + if (it->picking_id >= 0) { + it->unregister_raycasters_for_picking(); + } + } + m_grabbers.erase(m_grabbers.begin() + m_editing_cache.size(), m_grabbers.end()); + } else if (m_editing_cache.size() > m_grabbers.size()) { + auto remaining = m_editing_cache.size() - m_grabbers.size(); + while (remaining > 0) { + const auto id = m_grabbers.size(); + auto& g = m_grabbers.emplace_back(); + g.register_raycasters_for_picking(id); + g.raycasters[0] = m_parent.add_raycaster_for_picking(SceneRaycaster::EType::Gizmo, id, + *m_cylinder.mesh_raycaster, Transform3d::Identity()); + remaining--; + } + } +} + +void GLGizmoBrimEars::register_single_mesh_pick() +{ + Selection &selection = m_parent.get_selection(); + const Selection::IndicesList &idxs = selection.get_volume_idxs(); + if (idxs.size() > 0) { + for (unsigned int idx : idxs) { + GLVolume *v = const_cast(selection.get_volume(idx)); + const ModelVolume* mv = get_model_volume(*v, wxGetApp().model()); + if (!mv->is_model_part()) continue; + auto world_tran = v->get_instance_transformation() * v->get_volume_transformation(); + if (m_mesh_raycaster_map.find(v) != m_mesh_raycaster_map.end()) { + m_mesh_raycaster_map[v]->set_transform(world_tran.get_matrix()); + } else { + auto mesh = mv->mesh_ptr(); + m_mesh_raycaster_map[v] = std::make_shared(-1, *v->mesh_raycaster, world_tran.get_matrix()); + m_mesh_raycaster_map[v]->set_transform(world_tran.get_matrix()); + } + } + } +} + +//void GLGizmoBrimEars::update_single_mesh_pick(GLVolume *v) +//{ +// if (m_mesh_raycaster_map.find(v) != m_mesh_raycaster_map.end()) { +// auto world_tran = v->get_instance_transformation() * v->get_volume_transformation(); +// m_mesh_raycaster_map[v]->world_tran.set_from_transform(world_tran.get_matrix()); +// } +//} + +void GLGizmoBrimEars::reset_all_pick() { std::map>().swap(m_mesh_raycaster_map); } + +float GLGizmoBrimEars::get_brim_default_radius() const +{ + const double nozzle_diameter = wxGetApp().preset_bundle->printers.get_edited_preset().config.option("nozzle_diameter")->get_at(0); + const DynamicPrintConfig &pring_cfg = wxGetApp().preset_bundle->prints.get_edited_preset().config; + return pring_cfg.get_abs_value("initial_layer_line_width", nozzle_diameter) * 16.0f; +} + +ExPolygon GLGizmoBrimEars::make_polygon(BrimPoint point, const Geometry::Transformation &trsf) +{ + ExPolygon point_round; + Transform3d model_trsf = trsf.get_matrix(); + Vec3f world_pos = point.transform(trsf.get_matrix()); + coord_t size_ear = scale_(point.head_front_radius); + for (size_t i = 0; i < POLY_SIDE_COUNT; i++) { + double angle = (2.0 * PI * i) / POLY_SIDE_COUNT; + point_round.contour.points.emplace_back(size_ear * cos(angle), size_ear * sin(angle)); + } + Vec3f pos = point.transform(model_trsf); + int32_t pt_x = scale_(pos.x()); + int32_t pt_y = scale_(pos.y()); + point_round.translate(Point(pt_x, pt_y)); + return point_round; +} + +void GLGizmoBrimEars::find_single() +{ + update_raycasters(); + + if (m_editing_cache.size() == 0) { + m_single_brim.clear(); + return; + } + const Selection &selection = m_parent.get_selection(); + const GLVolume *volume = selection.get_volume(*selection.get_volume_idxs().begin()); + Geometry::Transformation trsf = volume->get_instance_transformation(); + ExPolygons model_pl = m_first_layer; + + m_single_brim.clear(); + for (int i = 0; i < m_editing_cache.size(); i++) + m_single_brim[i] = m_editing_cache[i]; + unsigned int index = 0; + bool cyc = true; + while (cyc) { + index++; + if (index > 99999999) break; // cycle protection + if (m_single_brim.empty()) { + break; + } + auto end = --m_single_brim.end(); + for (auto it = m_single_brim.begin(); it != m_single_brim.end(); ++it) { + ExPolygon point_pl = make_polygon(it->second.brim_point, trsf); + if (overlaps(model_pl, point_pl)) { + model_pl.emplace_back(point_pl); + model_pl = union_ex(model_pl); + it = m_single_brim.erase(it); + break; + } else { + if (it == end) cyc = false; + } + } + } + for (auto& it : m_editing_cache) { + it.is_error = false; + } + for (auto &it : m_single_brim) { + m_editing_cache[it.first].is_error = true; + } +} +}} // namespace Slic3r::GUI diff --git a/src/slic3r/GUI/Gizmos/GLGizmoBrimEars.hpp b/src/slic3r/GUI/Gizmos/GLGizmoBrimEars.hpp new file mode 100644 index 0000000000..e316861dbd --- /dev/null +++ b/src/slic3r/GUI/Gizmos/GLGizmoBrimEars.hpp @@ -0,0 +1,180 @@ +#ifndef slic3r_GLGizmoBrimEars_hpp_ +#define slic3r_GLGizmoBrimEars_hpp_ + +#include "GLGizmoBase.hpp" +#include "slic3r/GUI/GLSelectionRectangle.hpp" +#include "libslic3r/BrimEarsPoint.hpp" +#include "libslic3r/ObjectID.hpp" + + +namespace Slic3r { + +class ConfigOption; + +namespace GUI { + +enum class SLAGizmoEventType : unsigned char; + +class GLGizmoBrimEars : public GLGizmoBase +{ +private: + using PickRaycaster = SceneRaycasterItem; + + bool unproject_on_mesh(const Vec2d& mouse_pos, std::pair& pos_and_normal); + bool unproject_on_mesh2(const Vec2d& mouse_pos, std::pair& pos_and_normal); + + const float RenderPointScale = 1.f; + + class CacheEntry { + public: + CacheEntry() : + brim_point(BrimPoint()), + selected(false), + normal(Vec3f(0, 0, 1)), + is_hover(false), + is_error(false) + {} + + CacheEntry(const BrimPoint &point, bool sel = false, const Vec3f &norm = Vec3f(0, 0, 1), bool hover = false, bool error = false) + : brim_point(point), selected(sel), normal(norm), is_hover(hover), is_error(error) + {} + + bool operator==(const CacheEntry& rhs) const { + return (brim_point == rhs.brim_point); + } + + bool operator!=(const CacheEntry& rhs) const { + return ! ((*this) == rhs); + } + + inline bool pos_is_zero() { + return brim_point.pos.isZero(); + } + + void set_empty() { + brim_point = BrimPoint(); + selected = false; + normal.setZero(); + is_hover = false; + is_error = false; + } + + BrimPoint brim_point; + bool selected; // whether the point is selected + bool is_hover; // show mouse hover cylinder + bool is_error; + Vec3f normal; + + template + void serialize(Archive & ar) + { + ar(brim_point, selected, normal); + } + }; + +public: + GLGizmoBrimEars(GLCanvas3D& parent, const std::string& icon_filename, unsigned int sprite_id); + virtual ~GLGizmoBrimEars() = default; + void data_changed(bool is_serializing) override; + void set_brim_data(); + bool on_mouse(const wxMouseEvent& mouse_event) override; + bool gizmo_event(SLAGizmoEventType action, const Vec2d& mouse_position, bool shift_down, bool alt_down, bool control_down); + void delete_selected_points(); + void save_model(); + //ClippingPlane get_sla_clipping_plane() const; + + bool is_selection_rectangle_dragging() const { return m_selection_rectangle.is_dragging(); } + + bool wants_enter_leave_snapshots() const override { return true; } + std::string get_gizmo_entering_text() const override { return "Entering Brim Ears"; } + std::string get_gizmo_leaving_text() const override { return "Leaving Brim Ears"; } + +private: + bool on_init() override; + void on_dragging(const UpdateData& data) override; + void on_render() override; + + void render_points(const Selection& selection); + + float m_new_point_head_diameter; // Size of a new point. + float m_max_angle = 125.f; + float m_detection_radius = 1.f; + double m_detection_radius_max = .0f; + CacheEntry m_point_before_drag; // undo/redo - so we know what state was edited + float m_old_point_head_diameter = 0.; // the same + mutable std::vector m_editing_cache; // a support point and whether it is currently selectedchanges or undo/redo + std::map m_single_brim; + ObjectID m_old_mo_id; + const Vec3d m_world_normal = {0, 0, 1}; + std::map> m_mesh_raycaster_map; + GLVolume* m_last_hit_volume; + CacheEntry* render_hover_point = nullptr; + + bool m_link_text_hover = false; + + PickingModel m_cylinder; + + // This map holds all translated description texts, so they can be easily referenced during layout calculations + // etc. When language changes, GUI is recreated and this class constructed again, so the change takes effect. + std::map m_desc; + + GLSelectionRectangle m_selection_rectangle; + + ExPolygons m_first_layer; + + bool m_wait_for_up_event = false; + bool m_selection_empty = true; + EState m_old_state = Off; // to be able to see that the gizmo has just been closed (see on_set_state) + + std::vector get_config_options(const std::vector& keys) const; + bool is_mesh_point_clipped(const Vec3d& point) const; + + // Methods that do the model_object and editing cache synchronization, + // editing mode selection, etc: + enum { + AllPoints = -2, + NoPoints, + }; + void select_point(int i); + void unselect_point(int i); + void reload_cache(); + Points generate_points(Polygon &obj_polygon, float ear_detection_length, float brim_ears_max_angle, bool is_outer); + void auto_generate(); + void first_layer_slicer(); + void get_detection_radius_max(); + void update_raycasters(); + +protected: + void on_set_state() override; + void on_set_hover_id() override + + { + if ((int)m_editing_cache.size() <= m_hover_id) + m_hover_id = -1; + } + void on_start_dragging() override; + void on_stop_dragging() override; + void on_render_input_window(float x, float y, float bottom_limit) override; + void show_tooltip_information(float x, float y); + + std::string on_get_name() const override; + bool on_is_activable() const override; + //bool on_is_selectable() const override; + virtual CommonGizmosDataID on_get_requirements() const override; + void on_load(cereal::BinaryInputArchive& ar) override; + void on_save(cereal::BinaryOutputArchive& ar) const override; + virtual void on_register_raycasters_for_picking() override; + virtual void on_unregister_raycasters_for_picking() override; + void register_single_mesh_pick(); + //void update_single_mesh_pick(GLVolume* v); + void reset_all_pick(); + bool add_point_to_cache(Vec3f pos, float head_radius, bool selected, Vec3f normal); + float get_brim_default_radius() const; + ExPolygon make_polygon(BrimPoint point, const Geometry::Transformation &trsf); + void find_single(); +}; + +} // namespace GUI +} // namespace Slic3r + +#endif // slic3r_GLGizmoBrimEars_hpp_ diff --git a/src/slic3r/GUI/Gizmos/GLGizmoEmboss.cpp b/src/slic3r/GUI/Gizmos/GLGizmoEmboss.cpp index 2f101b09e3..03077677a2 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoEmboss.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoEmboss.cpp @@ -3598,7 +3598,7 @@ GuiCfg create_gui_configuration() float space = line_height_with_spacing - line_height; const ImGuiStyle &style = ImGui::GetStyle(); - cfg.max_style_name_width = ImGui::CalcTextSize("Maximal font name, extended").x; + cfg.max_style_name_width = ImGui::CalcTextSize("Maximal style name..").x; cfg.icon_width = static_cast(std::ceil(line_height)); // make size pair number @@ -3692,11 +3692,11 @@ GuiCfg create_gui_configuration() // "Text is to object" + radio buttons cfg.height_of_volume_type_selector = separator_height + line_height_with_spacing + input_height; - int max_style_image_width = static_cast(std::round(cfg.max_style_name_width/2 - 2 * style.FramePadding.x)); + int max_style_image_width = static_cast(std::round(cfg.max_style_name_width - 2 * style.FramePadding.x)); int max_style_image_height = static_cast(std::round(input_height)); cfg.max_style_image_size = Vec2i32(max_style_image_width, line_height); cfg.face_name_size = Vec2i32(cfg.input_width, line_height_with_spacing); - cfg.face_name_texture_offset_x = cfg.face_name_size.x() + space; + cfg.face_name_texture_offset_x = cfg.face_name_size.x() + style.WindowPadding.x + space; cfg.max_tooltip_width = ImGui::GetFontSize() * 20.0f; diff --git a/src/slic3r/GUI/Gizmos/GLGizmoFlatten.cpp b/src/slic3r/GUI/Gizmos/GLGizmoFlatten.cpp index 264e1d629e..5475e75520 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoFlatten.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoFlatten.cpp @@ -143,7 +143,9 @@ void GLGizmoFlatten::set_flattening_data(const ModelObject* model_object, int in { if (model_object != m_old_model_object || instance_id != m_old_instance_id) { m_planes.clear(); - on_unregister_raycasters_for_picking(); + if (get_state() == On) { // Only touch the raycasters if it's current + on_unregister_raycasters_for_picking(); + } } } diff --git a/src/slic3r/GUI/Gizmos/GLGizmosCommon.cpp b/src/slic3r/GUI/Gizmos/GLGizmosCommon.cpp index 56c3d1714b..fdcd417796 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmosCommon.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmosCommon.cpp @@ -312,6 +312,11 @@ void ObjectClipper::render_cut(const std::vector* ignore_idxs) const } } +void ObjectClipper::set_position_to_init_layer() +{ + m_clp.reset(new ClippingPlane({0, 0, 1}, 0.1)); + get_pool()->get_canvas()->set_as_dirty(); +} int ObjectClipper::get_number_of_contours() const { @@ -351,17 +356,22 @@ std::vector ObjectClipper::point_per_contour() const } -void ObjectClipper::set_position_by_ratio(double pos, bool keep_normal) +void ObjectClipper::set_position_by_ratio(double pos, bool keep_normal, bool vertical_normal) { const ModelObject* mo = get_pool()->selection_info()->model_object(); int active_inst = get_pool()->selection_info()->get_active_instance(); double z_shift = get_pool()->selection_info()->get_sla_shift(); - //Vec3d camera_dir = wxGetApp().plater()->get_camera().get_dir_forward(); - //if (abs(camera_dir(0)) > EPSILON || abs(camera_dir(1)) > EPSILON) - // camera_dir(2) = 0; + Vec3d normal; + if(vertical_normal) { + normal = {0, 0, 1}; + }else { + //Vec3d camera_dir = wxGetApp().plater()->get_camera().get_dir_forward(); + //if (abs(camera_dir(0)) > EPSILON || abs(camera_dir(1)) > EPSILON) + // camera_dir(2) = 0; - Vec3d normal = (keep_normal && m_clp) ? m_clp->get_normal() : /*-camera_dir;*/ -wxGetApp().plater()->get_camera().get_dir_forward(); + normal = (keep_normal && m_clp) ? m_clp->get_normal() : /*-camera_dir;*/ -wxGetApp().plater()->get_camera().get_dir_forward(); + } Vec3d center; if (get_pool()->get_canvas()->get_canvas_type() == GLCanvas3D::CanvasAssembleView) { diff --git a/src/slic3r/GUI/Gizmos/GLGizmosCommon.hpp b/src/slic3r/GUI/Gizmos/GLGizmosCommon.hpp index c14f2feeba..cad77c7e5d 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmosCommon.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmosCommon.hpp @@ -232,9 +232,10 @@ public: CommonGizmosDataID get_dependencies() const override { return CommonGizmosDataID::SelectionInfo; } #endif // NDEBUG double get_position() const { return m_clp_ratio; } + void set_position_to_init_layer(); const ClippingPlane* get_clipping_plane(bool ignore_hide_clipped = false) const; void render_cut(const std::vector* ignore_idxs = nullptr) const; - void set_position_by_ratio(double pos, bool keep_normal); + void set_position_by_ratio(double pos, bool keep_normal, bool vertical_normal=false); void set_range_and_pos(const Vec3d& cpl_normal, double cpl_offset, double pos); void set_behavior(bool hide_clipped, bool fill_cut, double contour_width); diff --git a/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp b/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp index 2b55fb6a6a..91918fa147 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp @@ -15,6 +15,7 @@ #include "slic3r/GUI/Gizmos/GLGizmoFlatten.hpp" //#include "slic3r/GUI/Gizmos/GLGizmoSlaSupports.hpp" #include "slic3r/GUI/Gizmos/GLGizmoFdmSupports.hpp" +#include "slic3r/GUI/Gizmos/GLGizmoBrimEars.hpp" #include "slic3r/GUI/Gizmos/GLGizmoCut.hpp" //#include "slic3r/GUI/Gizmos/GLGizmoFaceDetector.hpp" //#include "slic3r/GUI/Gizmos/GLGizmoHollow.hpp" @@ -206,6 +207,7 @@ bool GLGizmosManager::init() m_gizmos.emplace_back(new GLGizmoMeasure(m_parent, m_is_dark ? "toolbar_measure_dark.svg" : "toolbar_measure.svg", EType::Measure)); m_gizmos.emplace_back(new GLGizmoAssembly(m_parent, m_is_dark ? "toolbar_assembly_dark.svg" : "toolbar_assembly.svg", EType::Assembly)); m_gizmos.emplace_back(new GLGizmoSimplify(m_parent, "reduce_triangles.svg", EType::Simplify)); + m_gizmos.emplace_back(new GLGizmoBrimEars(m_parent, m_is_dark ? "toolbar_brimears_dark.svg" : "toolbar_brimears.svg", EType::BrimEars)); //m_gizmos.emplace_back(new GLGizmoSlaSupports(m_parent, "sla_supports.svg", sprite_id++)); //m_gizmos.emplace_back(new GLGizmoFaceDetector(m_parent, "face recognition.svg", sprite_id++)); //m_gizmos.emplace_back(new GLGizmoHollow(m_parent, "hollow.svg", sprite_id++)); @@ -375,6 +377,9 @@ void GLGizmosManager::update_data() : CommonGizmosDataID(0)); if (m_current != Undefined) m_gizmos[m_current]->data_changed(m_serializing); + // Orca: hack: Fix issue that flatten gizmo faces not updated after reload from disk + if (m_current != Flatten && !m_gizmos.empty()) m_gizmos[Flatten]->data_changed(m_serializing); + //BBS: GUI refactor: add object manipulation in gizmo m_object_manipulation.update_ui_from_settings(); m_object_manipulation.UpdateAndShow(true); @@ -450,6 +455,8 @@ bool GLGizmosManager::gizmo_event(SLAGizmoEventType action, const Vec2d& mouse_p return dynamic_cast(m_gizmos[Cut].get())->gizmo_event(action, mouse_position, shift_down, alt_down, control_down); else if (m_current == MeshBoolean) return dynamic_cast(m_gizmos[MeshBoolean].get())->gizmo_event(action, mouse_position, shift_down, alt_down, control_down); + else if (m_current == BrimEars) + return dynamic_cast(m_gizmos[BrimEars].get())->gizmo_event(action, mouse_position, shift_down, alt_down, control_down); else return false; } @@ -540,7 +547,7 @@ bool GLGizmosManager::on_mouse_wheel(const wxMouseEvent &evt) { bool processed = false; - if (/*m_current == SlaSupports || m_current == Hollow ||*/ m_current == FdmSupports || m_current == Seam || m_current == MmuSegmentation) { + if (/*m_current == SlaSupports || m_current == Hollow ||*/ m_current == FdmSupports || m_current == Seam || m_current == MmuSegmentation || m_current == BrimEars) { float rot = (float)evt.GetWheelRotation() / (float)evt.GetWheelDelta(); if (gizmo_event((rot > 0.f ? SLAGizmoEventType::MouseWheelUp : SLAGizmoEventType::MouseWheelDown), Vec2d::Zero(), evt.ShiftDown(), evt.AltDown() // BBS @@ -810,21 +817,25 @@ bool GLGizmosManager::on_key(wxKeyEvent& evt) int keyCode = evt.GetKeyCode(); bool processed = false; - if (evt.GetEventType() == wxEVT_KEY_UP) { - /*if (m_current == SlaSupports || m_current == Hollow) + if (evt.GetEventType() == wxEVT_KEY_UP) + { + if (/*m_current == SlaSupports || m_current == Hollow ||*/ m_current == BrimEars) { bool is_editing = true; bool is_rectangle_dragging = false; - if (m_current == SlaSupports) { + /*if (m_current == SlaSupports) { GLGizmoSlaSupports* gizmo = dynamic_cast(get_current()); is_editing = gizmo->is_in_editing_mode(); is_rectangle_dragging = gizmo->is_selection_rectangle_dragging(); - } - else { - GLGizmoHollow* gizmo = dynamic_cast(get_current()); + } else*/ if (m_current == BrimEars) { + GLGizmoBrimEars* gizmo = dynamic_cast(get_current()); is_rectangle_dragging = gizmo->is_selection_rectangle_dragging(); } + /*else { + GLGizmoHollow* gizmo = dynamic_cast(get_current()); + is_rectangle_dragging = gizmo->is_selection_rectangle_dragging(); + }*/ if (keyCode == WXK_SHIFT) { @@ -844,7 +855,7 @@ bool GLGizmosManager::on_key(wxKeyEvent& evt) // capture number key processed = true; } - }*/ + } if (m_current == Measure || m_current == Assembly) { if (keyCode == WXK_CONTROL) gizmo_event(SLAGizmoEventType::CtrlUp, Vec2d::Zero(), evt.ShiftDown(), evt.AltDown(), evt.CmdDown()); @@ -862,7 +873,12 @@ bool GLGizmosManager::on_key(wxKeyEvent& evt) // m_parent.set_cursor(GLCanvas3D::Cross); processed = true; } - else*/ if (m_current == Cut) { + else*/ if ((m_current == BrimEars) && ((keyCode == WXK_SHIFT) || (keyCode == WXK_ALT))) + { + processed = true; + } + else if (m_current == Cut) + { auto do_move = [this, &processed](double delta_z) { GLGizmoCut3D* cut = dynamic_cast(get_current()); cut->shift_cut(delta_z); @@ -1321,11 +1337,15 @@ bool GLGizmosManager::grabber_contains_mouse() const bool GLGizmosManager::is_in_editing_mode(bool error_notification) const { - //if (m_current != SlaSupports || ! dynamic_cast(get_current())->is_in_editing_mode()) + /*if (m_current == SlaSupports && dynamic_cast(get_current())->is_in_editing_mode()) { + return true; + } else*/ if (m_current == BrimEars) { + dynamic_cast(get_current())->save_model(); return false; + } else { + return false; + } - // BBS: remove SLA editing notification - //return true; } diff --git a/src/slic3r/GUI/Gizmos/GLGizmosManager.hpp b/src/slic3r/GUI/Gizmos/GLGizmosManager.hpp index 305c767f43..06b0f69210 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmosManager.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmosManager.hpp @@ -88,6 +88,7 @@ public: Measure, Assembly, Simplify, + BrimEars, //SlaSupports, // BBS //FaceRecognition, diff --git a/src/slic3r/GUI/HMS.cpp b/src/slic3r/GUI/HMS.cpp index be5effc74c..f98b9fbb8c 100644 --- a/src/slic3r/GUI/HMS.cpp +++ b/src/slic3r/GUI/HMS.cpp @@ -243,14 +243,15 @@ wxString HMSQuery::_query_hms_msg(std::string long_error_code, std::string lang_ return wxEmptyString; } -wxString HMSQuery::_query_error_msg(std::string error_code, std::string lang_code) +bool HMSQuery::_query_error_msg(wxString &error_msg, std::string error_code, std::string lang_code) { if (m_hms_info_json.contains("device_error")) { if (m_hms_info_json["device_error"].contains(lang_code)) { for (auto item = m_hms_info_json["device_error"][lang_code].begin(); item != m_hms_info_json["device_error"][lang_code].end(); item++) { if (item->contains("ecode") && boost::to_upper_copy((*item)["ecode"].get()) == error_code) { if (item->contains("intro")) { - return wxString::FromUTF8((*item)["intro"].get()); + error_msg = wxString::FromUTF8((*item)["intro"].get()); + return true; } } } @@ -263,7 +264,8 @@ wxString HMSQuery::_query_error_msg(std::string error_code, std::string lang_cod for (auto item = lang.begin(); item != lang.end(); item++) { if (item->contains("ecode") && boost::to_upper_copy((*item)["ecode"].get()) == error_code) { if (item->contains("intro")) { - return wxString::FromUTF8((*item)["intro"].get()); + error_msg = wxString::FromUTF8((*item)["intro"].get()); + return true; } } } @@ -273,9 +275,11 @@ wxString HMSQuery::_query_error_msg(std::string error_code, std::string lang_cod } else { BOOST_LOG_TRIVIAL(info) << "device_error is not exists"; - return wxEmptyString; + error_msg = wxEmptyString; + return false; } - return wxEmptyString; + error_msg = wxEmptyString; + return false; } wxString HMSQuery::_query_error_url_action(std::string long_error_code, std::string dev_id, std::vector& button_action) @@ -305,12 +309,12 @@ wxString HMSQuery::_query_error_url_action(std::string long_error_code, std::str } -wxString HMSQuery::query_print_error_msg(int print_error) +bool HMSQuery::query_print_error_msg(int print_error, wxString &error_msg) { char buf[32]; ::sprintf(buf, "%08X", print_error); std::string lang_code = HMSQuery::hms_language_code(); - return _query_error_msg(std::string(buf), lang_code); + return _query_error_msg(error_msg, std::string(buf), lang_code); } wxString HMSQuery::query_print_error_url_action(int print_error, std::string dev_id, std::vector& button_action) diff --git a/src/slic3r/GUI/HMS.hpp b/src/slic3r/GUI/HMS.hpp index 01df19ed38..f2455f3c5f 100644 --- a/src/slic3r/GUI/HMS.hpp +++ b/src/slic3r/GUI/HMS.hpp @@ -28,13 +28,13 @@ protected: int save_to_local(std::string lang, std::string hms_type,json save_json); std::string get_hms_file(std::string hms_type, std::string lang = std::string("en")); wxString _query_hms_msg(std::string long_error_code, std::string lang_code = std::string("en")); - wxString _query_error_msg(std::string long_error_code, std::string lang_code = std::string("en")); + bool _query_error_msg(wxString &error_msg, std::string long_error_code, std::string lang_code = std::string("en")); wxString _query_error_url_action(std::string long_error_code, std::string dev_id, std::vector& button_action); public: HMSQuery() {} int check_hms_info(); wxString query_hms_msg(std::string long_error_code); - wxString query_print_error_msg(int print_error); + bool query_print_error_msg(int print_error, wxString &error_msg); wxString query_print_error_url_action(int print_error, std::string dev_id, std::vector& button_action); static std::string hms_language_code(); static std::string build_query_params(std::string& lang); diff --git a/src/slic3r/GUI/ImGuiWrapper.cpp b/src/slic3r/GUI/ImGuiWrapper.cpp index 39f2da71da..d70700b9cf 100644 --- a/src/slic3r/GUI/ImGuiWrapper.cpp +++ b/src/slic3r/GUI/ImGuiWrapper.cpp @@ -416,7 +416,7 @@ void ImGuiWrapper::set_language(const std::string &language) } else if (lang == "en") { ranges = ImGui::GetIO().Fonts->GetGlyphRangesEnglish(); // Basic Latin - } + } else{ ranges = ImGui::GetIO().Fonts->GetGlyphRangesOthers(); } @@ -560,6 +560,15 @@ ImVec2 ImGuiWrapper::calc_text_size(const wxString &text, return size; } +float ImGuiWrapper::find_widest_text(std::vector &text_list) +{ + float width = .0f; + for(const wxString &text : text_list) { + width = std::max(width, this->calc_text_size(text).x); + } + return width; +} + ImVec2 ImGuiWrapper::calc_button_size(const wxString &text, const ImVec2 &button_size) const { const ImVec2 text_size = this->calc_text_size(text); @@ -1598,9 +1607,9 @@ bool begin_menu(const char *label, bool enabled) return menu_is_open; } -void end_menu() -{ - ImGui::EndMenu(); +void end_menu() +{ + ImGui::EndMenu(); } bool menu_item_with_icon(const char *label, const char *shortcut, ImVec2 icon_size /* = ImVec2(0, 0)*/, ImU32 icon_color /* = 0*/, bool selected /* = false*/, bool enabled /* = true*/, bool* hovered/* = nullptr*/) diff --git a/src/slic3r/GUI/ImGuiWrapper.hpp b/src/slic3r/GUI/ImGuiWrapper.hpp index 7ecf5bbe65..cd1b3d98e4 100644 --- a/src/slic3r/GUI/ImGuiWrapper.hpp +++ b/src/slic3r/GUI/ImGuiWrapper.hpp @@ -107,7 +107,7 @@ public: static ImVec2 calc_text_size(const std::string& text, bool hide_text_after_double_hash = false, float wrap_width = -1.0f); static ImVec2 calc_text_size(const wxString &text, bool hide_text_after_double_hash = false, float wrap_width = -1.0f); ImVec2 calc_button_size(const wxString &text, const ImVec2 &button_size = ImVec2(0, 0)) const; - + float find_widest_text(std::vector &text_list); ImVec2 get_item_spacing() const; float get_slider_float_height() const; const LastSliderStatus& get_last_slider_status() const { return m_last_slider_status; } diff --git a/src/slic3r/GUI/Jobs/ArrangeJob.cpp b/src/slic3r/GUI/Jobs/ArrangeJob.cpp index 7215a71127..1cac3b51e9 100644 --- a/src/slic3r/GUI/Jobs/ArrangeJob.cpp +++ b/src/slic3r/GUI/Jobs/ArrangeJob.cpp @@ -775,7 +775,6 @@ arrangement::ArrangeParams init_arrange_params(Plater *p) params.printable_height = print_config.printable_height.value; params.allow_rotations = settings.enable_rotation; params.nozzle_height = print_config.nozzle_height.value; - params.all_objects_are_short = print.is_all_objects_are_short(); params.align_center = print_config.best_object_pos.value; params.allow_multi_materials_on_same_plate = settings.allow_multi_materials_on_same_plate; params.avoid_extrusion_cali_region = settings.avoid_extrusion_cali_region; diff --git a/src/slic3r/GUI/Jobs/BindJob.cpp b/src/slic3r/GUI/Jobs/BindJob.cpp index 5809b8be7e..fa4057214c 100644 --- a/src/slic3r/GUI/Jobs/BindJob.cpp +++ b/src/slic3r/GUI/Jobs/BindJob.cpp @@ -105,7 +105,9 @@ void BindJob::process(Ctl &ctl) try { error_code = stoi(result_info); - result_info = wxGetApp().get_hms_query()->query_print_error_msg(error_code).ToStdString(); + wxString error_msg; + wxGetApp().get_hms_query()->query_print_error_msg(error_code, error_msg); + result_info = error_msg.ToStdString(); } catch (...) { ; diff --git a/src/slic3r/GUI/Jobs/CreateFontNameImageJob.cpp b/src/slic3r/GUI/Jobs/CreateFontNameImageJob.cpp index 417eb0ea4c..c452018a7f 100644 --- a/src/slic3r/GUI/Jobs/CreateFontNameImageJob.cpp +++ b/src/slic3r/GUI/Jobs/CreateFontNameImageJob.cpp @@ -142,8 +142,9 @@ void CreateFontImageJob::finalize(bool canceled, std::exception_ptr &) glsafe(::glBindTexture(target, m_input.texture_id)); GLsizei w = m_tex_size.x(), h = m_tex_size.y(); - GLint xoffset = m_input.size.x() - m_tex_size.x(), // arrange right - yoffset = m_input.size.y() * m_input.index; + GLint xoffset = 0; // align to left + // GLint xoffset = m_input.size.x() - m_tex_size.x(); // align right + GLint yoffset = m_input.size.y() * m_input.index; glsafe(::glTexSubImage2D(target, m_input.level, xoffset, yoffset, w, h, m_input.format, m_input.type, m_result.data())); diff --git a/src/slic3r/GUI/Jobs/CreateFontStyleImagesJob.cpp b/src/slic3r/GUI/Jobs/CreateFontStyleImagesJob.cpp index 8b25b183dc..f988f622ce 100644 --- a/src/slic3r/GUI/Jobs/CreateFontStyleImagesJob.cpp +++ b/src/slic3r/GUI/Jobs/CreateFontStyleImagesJob.cpp @@ -42,12 +42,12 @@ void CreateFontStyleImagesJob::process(Ctl &ctl) // create image description StyleManager::StyleImage &image = m_images[index]; BoundingBox &bounding_box = image.bounding_box; - for (ExPolygon &shape : shapes) + for (const ExPolygon &shape : shapes) bounding_box.merge(BoundingBox(shape.contour.points)); for (ExPolygon &shape : shapes) shape.translate(-bounding_box.min); // calculate conversion from FontPoint to screen pixels by size of font - double scale = get_text_shape_scale(item.prop, *item.font.font_file); + double scale = get_text_shape_scale(item.prop, *item.font.font_file) * m_input.ppm; scales[index] = scale; //double scale = font_prop.size_in_mm * SCALING_FACTOR; diff --git a/src/slic3r/GUI/Jobs/FillBedJob.cpp b/src/slic3r/GUI/Jobs/FillBedJob.cpp index e594f98ae1..b4aa69c4e9 100644 --- a/src/slic3r/GUI/Jobs/FillBedJob.cpp +++ b/src/slic3r/GUI/Jobs/FillBedJob.cpp @@ -56,7 +56,6 @@ void FillBedJob::prepare() ArrangePolygon ap = get_instance_arrange_poly(mo->instances[inst_idx], global_config); BoundingBox ap_bb = ap.transformed_poly().contour.bounding_box(); - ap.height = 1; ap.name = mo->name; if (selected) @@ -173,7 +172,6 @@ void FillBedJob::prepare() ArrangePolygon ap = template_ap; ap.poly = m_selected.front().poly; ap.bed_idx = PartPlateList::MAX_PLATES_COUNT; - ap.height = 1; ap.itemid = -1; ap.setter = [this, mi](const ArrangePolygon &p) { ModelObject *mo = m_plater->model().objects[m_object_idx]; diff --git a/src/slic3r/GUI/Jobs/PrintJob.cpp b/src/slic3r/GUI/Jobs/PrintJob.cpp index bb21337e6b..5ae4a2dc84 100644 --- a/src/slic3r/GUI/Jobs/PrintJob.cpp +++ b/src/slic3r/GUI/Jobs/PrintJob.cpp @@ -269,7 +269,16 @@ void PrintJob::process(Ctl &ctl) auto model_name = model_info->metadata_items.find(BBL_DESIGNER_MODEL_TITLE_TAG); if (model_name != model_info->metadata_items.end()) { try { - params.project_name = model_name->second; + + std::string mall_model_name = model_name->second; + std::replace(mall_model_name.begin(), mall_model_name.end(), ' ', '_'); + const char* unusable_symbols = "<>[]:/\\|?*\" "; + for (const char* symbol = unusable_symbols; *symbol != '\0'; ++symbol) { + std::replace(mall_model_name.begin(), mall_model_name.end(), *symbol, '_'); + } + + std::regex pattern("_+"); + params.project_name = std::regex_replace(mall_model_name, pattern, "_"); } catch (...) {} } diff --git a/src/slic3r/GUI/MainFrame.cpp b/src/slic3r/GUI/MainFrame.cpp index 123939efb0..945e8b493e 100644 --- a/src/slic3r/GUI/MainFrame.cpp +++ b/src/slic3r/GUI/MainFrame.cpp @@ -66,6 +66,7 @@ #ifdef _WIN32 #include #include +#include #endif // _WIN32 #include @@ -634,8 +635,64 @@ void MainFrame::bind_diff_dialog() #ifdef __WIN32__ +// Orca: Fix maximized window overlaps taskbar when taskbar auto hide is enabled (#8085) +// Adopted from https://gist.github.com/MortenChristiansen/6463580 +static void AdjustWorkingAreaForAutoHide(const HWND hWnd, MINMAXINFO* mmi) +{ + const auto taskbarHwnd = FindWindowA("Shell_TrayWnd", nullptr); + if (!taskbarHwnd) { + return; + } + const auto monitorContainingApplication = MonitorFromWindow(hWnd, MONITOR_DEFAULTTONULL); + const auto monitorWithTaskbarOnIt = MonitorFromWindow(taskbarHwnd, MONITOR_DEFAULTTONULL); + if (monitorContainingApplication != monitorWithTaskbarOnIt) { + return; + } + APPBARDATA abd; + abd.cbSize = sizeof(APPBARDATA); + abd.hWnd = taskbarHwnd; + + // Find if task bar has auto-hide enabled + const auto uState = (UINT) SHAppBarMessage(ABM_GETSTATE, &abd); + if ((uState & ABS_AUTOHIDE) != ABS_AUTOHIDE) { + return; + } + + RECT borderThickness; + SetRectEmpty(&borderThickness); + AdjustWindowRectEx(&borderThickness, GetWindowLongPtr(hWnd, GWL_STYLE) & ~WS_CAPTION, FALSE, 0); + + // Determine taskbar position + SHAppBarMessage(ABM_GETTASKBARPOS, &abd); + const auto& rc = abd.rc; + if (rc.top == rc.left && rc.bottom > rc.right) { + // Left + const auto offset = borderThickness.left + 2; + mmi->ptMaxPosition.x += offset; + mmi->ptMaxTrackSize.x -= offset; + mmi->ptMaxSize.x -= offset; + } else if (rc.top == rc.left && rc.bottom < rc.right) { + // Top + const auto offset = borderThickness.top + 2; + mmi->ptMaxPosition.y += offset; + mmi->ptMaxTrackSize.y -= offset; + mmi->ptMaxSize.y -= offset; + } else if (rc.top > rc.left) { + // Bottom + const auto offset = borderThickness.bottom + 2; + mmi->ptMaxSize.y -= offset; + mmi->ptMaxTrackSize.y -= offset; + } else { + // Right + const auto offset = borderThickness.right + 2; + mmi->ptMaxSize.x -= offset; + mmi->ptMaxTrackSize.x -= offset; + } +} + WXLRESULT MainFrame::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam) { + HWND hWnd = GetHandle(); /* When we have a custom titlebar in the window, we don't need the non-client area of a normal window * to be painted. In order to achieve this, we handle the "WM_NCCALCSIZE" which is responsible for the * size of non-client area of a window and set the return value to 0. Also we have to tell the @@ -654,7 +711,6 @@ WXLRESULT MainFrame::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam its wParam value is TRUE and the return value is 0 */ case WM_NCCALCSIZE: if (wParam) { - HWND hWnd = GetHandle(); /* Detect whether window is maximized or not. We don't need to change the resize border when win is * maximized because all resize borders are gone automatically */ WINDOWPLACEMENT wPos; @@ -677,6 +733,13 @@ WXLRESULT MainFrame::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam } } break; + + case WM_GETMINMAXINFO: { + auto mmi = (MINMAXINFO*) lParam; + HandleGetMinMaxInfo(mmi); + AdjustWorkingAreaForAutoHide(hWnd, mmi); + return 0; + } } return wxFrame::MSWWindowProc(nMsg, wParam, lParam); } diff --git a/src/slic3r/GUI/MediaFilePanel.cpp b/src/slic3r/GUI/MediaFilePanel.cpp index 672ea696b6..dcc31d27ee 100644 --- a/src/slic3r/GUI/MediaFilePanel.cpp +++ b/src/slic3r/GUI/MediaFilePanel.cpp @@ -219,10 +219,10 @@ void MediaFilePanel::SetMachineObject(MachineObject* obj) m_lan_ip = obj->dev_ip; m_lan_passwd = obj->get_access_code(); m_dev_ver = obj->get_ota_version(); - m_device_busy = obj->is_camera_busy_off(); + m_device_busy = obj->is_camera_busy_off(); m_sdcard_exist = obj->has_sdcard(); - m_local_support = obj->file_local; - m_remote_support = obj->file_remote; + m_local_proto = obj->file_local; + m_remote_proto = obj->file_remote; m_model_download_support = obj->file_model_download; } else { m_lan_mode = false; @@ -231,13 +231,13 @@ void MediaFilePanel::SetMachineObject(MachineObject* obj) m_dev_ver.clear(); m_sdcard_exist = false; m_device_busy = false; - m_local_support = false; - m_remote_support = false; + m_local_proto = 0; + m_remote_proto = 0; m_model_download_support = false; } Enable(obj && obj->is_connected() && obj->m_push_count > 0); if (machine == m_machine) { - if ((m_waiting_enable && IsEnabled()) || (m_waiting_support && (m_local_support || m_remote_support))) { + if ((m_waiting_enable && IsEnabled()) || (m_waiting_support && (m_local_proto || m_remote_proto))) { auto fs = m_image_grid->GetFileSystem(); if (fs) fs->Retry(); } @@ -255,7 +255,7 @@ void MediaFilePanel::SetMachineObject(MachineObject* obj) m_button_management->Enable(false); SetSelecting(false); if (m_machine.empty()) { - m_image_grid->SetStatus(m_bmp_failed, _L("No printers.")); + m_image_grid->SetStatus(m_bmp_failed, _L("Please confirm if the printer is connected.")); } else { boost::shared_ptr fs(new PrinterFileSystem); fs->Attached(); @@ -296,7 +296,7 @@ void MediaFilePanel::SetMachineObject(MachineObject* obj) switch (status) { case PrinterFileSystem::Initializing: icon = m_bmp_loading; msg = _L("Initializing..."); break; case PrinterFileSystem::Connecting: icon = m_bmp_loading; msg = _L("Connecting..."); break; - case PrinterFileSystem::Failed: icon = m_bmp_failed; if (extra != 1) msg = _L("Connect failed [%d]!"); break; + case PrinterFileSystem::Failed: icon = m_bmp_failed; if (extra != 1) msg = _L("Please check the network and try again, You can restart or update the printer if the issue persists."); break; case PrinterFileSystem::ListSyncing: icon = m_bmp_loading; msg = _L("Loading file list..."); break; case PrinterFileSystem::ListReady: icon = extra == 0 ? m_bmp_empty : m_bmp_failed; msg = extra == 0 ? _L("No files") : _L("Load failed"); break; } @@ -310,7 +310,6 @@ void MediaFilePanel::SetMachineObject(MachineObject* obj) if (e.GetInt() == PrinterFileSystem::Initializing) fetchUrl(boost::weak_ptr(fs)); - err = fs->GetLastError(); if ((status == PrinterFileSystem::Failed && m_last_errors.find(err) == m_last_errors.end()) || status == PrinterFileSystem::ListReady) { m_last_errors.insert(fs->GetLastError()); @@ -421,6 +420,7 @@ void MediaFilePanel::modeChanged(wxCommandEvent& e1) } extern wxString hide_passwd(wxString url, std::vector const &passwords); +extern void refresh_agora_url(char const *device, char const *dev_ver, char const *channel, void *context, void (*callback)(void *context, char const *url)); void MediaFilePanel::fetchUrl(boost::weak_ptr wfs) { @@ -428,19 +428,19 @@ void MediaFilePanel::fetchUrl(boost::weak_ptr wfs) if (!fs || fs != m_image_grid->GetFileSystem()) return; if (!IsEnabled()) { m_waiting_enable = true; - m_image_grid->SetStatus(m_bmp_failed, _L("Initialize failed (Device connection not ready)!")); + m_image_grid->SetStatus(m_bmp_failed, _L("Please confirm if the printer is connected.")); fs->SetUrl("0"); return; } m_waiting_enable = false; - if (!m_local_support && !m_remote_support) { + if (!m_local_proto && !m_remote_proto) { m_waiting_support = true; m_image_grid->SetStatus(m_bmp_failed, _L("Browsing file in SD card is not supported in current firmware. Please update the printer firmware.")); fs->SetUrl("0"); return; } if (!m_sdcard_exist) { - m_image_grid->SetStatus(m_bmp_failed, _L("Initialize failed (Storage unavailable, insert SD card.)!")); + m_image_grid->SetStatus(m_bmp_failed, _L("Please check if the SD card is inserted into the printer.\nIf it still cannot be read, you can try formatting the SD card.")); fs->SetUrl("0"); return; } @@ -452,7 +452,7 @@ void MediaFilePanel::fetchUrl(boost::weak_ptr wfs) m_waiting_support = false; NetworkAgent *agent = wxGetApp().getAgent(); std::string agent_version = agent ? agent->get_version() : ""; - if ((m_lan_mode || !m_remote_support) && m_local_support && !m_lan_ip.empty()) { + if ((m_lan_mode || !m_remote_proto) && m_local_proto && !m_lan_ip.empty()) { std::string url = "bambu:///local/" + m_lan_ip + ".?port=6000&user=" + m_lan_user + "&passwd=" + m_lan_passwd; url += "&device=" + m_machine; url += "&net_ver=" + agent_version; @@ -462,7 +462,7 @@ void MediaFilePanel::fetchUrl(boost::weak_ptr wfs) fs->SetUrl(url); return; } - if (!m_remote_support && m_local_support) { // not support tutk + if (!m_remote_proto && m_local_proto) { // not support tutk m_image_grid->SetStatus(m_bmp_failed, _L("Please enter the IP of printer to connect.")); fs->SetUrl("0"); fs.reset(); @@ -478,12 +478,14 @@ void MediaFilePanel::fetchUrl(boost::weak_ptr wfs) return; } if (agent) { - agent->get_camera_url(m_machine, + std::string protocols[] = {"", "\"tutk\"", "\"agora\"", "\"tutk\",\"agora\""}; + agent->get_camera_url(m_machine + "|" + m_dev_ver + "|" + protocols[m_remote_proto], [this, wfs, m = m_machine, v = agent->get_version(), dv = m_dev_ver](std::string url) { if (boost::algorithm::starts_with(url, "bambu:///")) { url += "&device=" + m; url += "&net_ver=" + v; url += "&dev_ver=" + dv; + url += "&refresh_url=" + boost::lexical_cast(&refresh_agora_url); url += "&cli_id=" + wxGetApp().app_config->get("slicer_uuid"); url += "&cli_ver=" + std::string(SLIC3R_VERSION); } @@ -492,9 +494,9 @@ void MediaFilePanel::fetchUrl(boost::weak_ptr wfs) boost::shared_ptr fs(wfs.lock()); if (!fs || fs != m_image_grid->GetFileSystem()) return; if (boost::algorithm::starts_with(url, "bambu:///")) { - fs->SetUrl(url + "&device=" + m + "&dev_ver=" + v); + fs->SetUrl(url); } else { - m_image_grid->SetStatus(m_bmp_failed, wxString::Format(_L("Initialize failed (%s)!"), url.empty() ? _L("Network unreachable") : from_u8(url))); + m_image_grid->SetStatus(m_bmp_failed, _L("Connection Failed. Please check the network and try again")); fs->SetUrl("3"); } }); diff --git a/src/slic3r/GUI/MediaFilePanel.h b/src/slic3r/GUI/MediaFilePanel.h index 0b64cdb5d6..270542c5d9 100644 --- a/src/slic3r/GUI/MediaFilePanel.h +++ b/src/slic3r/GUI/MediaFilePanel.h @@ -8,9 +8,11 @@ #ifndef MediaFilePanel_h #define MediaFilePanel_h +#include + #include "GUI_Utils.hpp" #include "wxExtensions.hpp" -#include + #include class Button; @@ -83,8 +85,8 @@ private: std::string m_dev_ver; bool m_lan_mode = false; bool m_sdcard_exist = false; - bool m_local_support = false; - bool m_remote_support = false; + int m_local_proto = false; + int m_remote_proto = false; bool m_model_download_support = false; bool m_device_busy = false; bool m_waiting_enable = false; diff --git a/src/slic3r/GUI/MediaPlayCtrl.cpp b/src/slic3r/GUI/MediaPlayCtrl.cpp index 208182b9a1..92367a5975 100644 --- a/src/slic3r/GUI/MediaPlayCtrl.cpp +++ b/src/slic3r/GUI/MediaPlayCtrl.cpp @@ -150,7 +150,7 @@ void MediaPlayCtrl::SetMachineObject(MachineObject* obj) m_dev_ver = obj->get_ota_version(); m_lan_mode = obj->is_lan_mode_printer(); m_lan_proto = obj->liveview_local; - m_remote_support = obj->liveview_remote; + m_remote_proto = obj->liveview_remote; m_lan_ip = obj->dev_ip; m_lan_passwd = obj->get_access_code(); m_device_busy = obj->is_camera_busy_off(); @@ -163,7 +163,7 @@ void MediaPlayCtrl::SetMachineObject(MachineObject* obj) m_lan_passwd.clear(); m_dev_ver.clear(); m_tutk_state.clear(); - m_remote_support = true; + m_remote_proto = 0; m_device_busy = false; } Enable(obj && obj->is_connected() && obj->m_push_count > 0); @@ -212,6 +212,7 @@ wxString hide_id_middle_string(wxString const &str, size_t offset = 0, size_t le wxString hide_passwd(wxString url, std::vector const &passwords) { +#if BBL_RELEASE_TO_PUBLIC for (auto &p : passwords) { auto i = url.find(p); if (i == wxString::npos) @@ -228,9 +229,22 @@ wxString hide_passwd(wxString url, std::vector const &passwords) else if (j == url.length() || url[j] == '@' || url[j] == '&') url.replace(i, l, l, wxUniChar('*')); } +#endif return url; } +void refresh_agora_url(char const* device, char const* dev_ver, char const* channel, void* context, void (*callback)(void* context, char const* url)) +{ + std::string device2 =device; + device2 += "|"; + device2 += dev_ver; + device2 += "|\"agora\"|"; + device2 += channel; + wxGetApp().getAgent()->get_camera_url(device2, [context, callback](std::string url) { + callback(context, url.c_str()); + }); +} + void MediaPlayCtrl::Play() { if (!m_next_retry.IsValid() || wxDateTime::Now() < m_next_retry) @@ -259,11 +273,10 @@ void MediaPlayCtrl::Play() return; } - m_button_play->SetIcon("media_stop"); NetworkAgent *agent = wxGetApp().getAgent(); std::string agent_version = agent ? agent->get_version() : ""; - if (m_lan_proto > MachineObject::LVL_Disable && (m_lan_mode || !m_remote_support) && !m_disable_lan && !m_lan_ip.empty()) { - m_disable_lan = m_remote_support && !m_lan_mode; // try remote next time + if (m_lan_proto > MachineObject::LVL_Disable && (m_lan_mode || !m_remote_proto) && !m_disable_lan && !m_lan_ip.empty()) { + m_disable_lan = m_remote_proto && !m_lan_mode; // try remote next time std::string url; if (m_lan_proto == MachineObject::LVL_Local) url = "bambu:///local/" + m_lan_ip + ".?port=6000&user=" + m_lan_user + "&passwd=" + m_lan_passwd; @@ -279,18 +292,19 @@ void MediaPlayCtrl::Play() BOOST_LOG_TRIVIAL(info) << "MediaPlayCtrl: " << hide_passwd(hide_id_middle_string(url, url.find(m_lan_ip), m_lan_ip.length()), {m_lan_passwd}); m_url = url; load(); + m_button_play->SetIcon("media_stop"); return; } // m_lan_mode && m_lan_proto > LVL_Disable (use local tunnel) // m_lan_mode && m_lan_proto == LVL_Disable (*) // m_lan_mode && m_lan_proto == LVL_None (x) - // !m_lan_mode && m_remote_support (go on) - // !m_lan_mode && !m_remote_support && m_lan_proto > LVL_None (use local tunnel) - // !m_lan_mode && !m_remote_support && m_lan_proto == LVL_Disable (*) - // !m_lan_mode && !m_remote_support && m_lan_proto == LVL_None (x) + // !m_lan_mode && m_remote_proto (go on) + // !m_lan_mode && !m_remote_proto && m_lan_proto > LVL_None (use local tunnel) + // !m_lan_mode && !m_remote_proto && m_lan_proto == LVL_Disable (*) + // !m_lan_mode && !m_remote_proto && m_lan_proto == LVL_None (x) - if (m_lan_proto <= MachineObject::LVL_Disable && (m_lan_mode || !m_remote_support)) { + if (m_lan_proto <= MachineObject::LVL_Disable && (m_lan_mode || !m_remote_proto)) { Stop(m_lan_proto == MachineObject::LVL_None ? _L("Problem occurred. Please update the printer firmware and try again.") : _L("LAN Only Liveview is off. Please turn on the liveview on printer screen.")); @@ -300,8 +314,9 @@ void MediaPlayCtrl::Play() m_disable_lan = false; m_failed_code = 0; m_last_state = MEDIASTATE_INITIALIZING; - - if (!m_remote_support) { // not support tutk + m_button_play->SetIcon("media_stop"); + + if (!m_remote_proto) { // not support tutk m_failed_code = -1; m_url = "bambu:///local/"; Stop(_L("Please enter the IP of printer to connect.")); @@ -312,12 +327,14 @@ void MediaPlayCtrl::Play() SetStatus(_L("Initializing...")); if (agent) { - agent->get_camera_url(m_machine, + std::string protocols[] = {"", "\"tutk\"", "\"agora\"", "\"tutk\",\"agora\""}; + agent->get_camera_url(m_machine + "|" + m_dev_ver + "|" + protocols[m_remote_proto], [this, m = m_machine, v = agent_version, dv = m_dev_ver](std::string url) { if (boost::algorithm::starts_with(url, "bambu:///")) { url += "&device=" + into_u8(m); url += "&net_ver=" + v; url += "&dev_ver=" + dv; + url += "&refresh_url=" + boost::lexical_cast(&refresh_agora_url); url += "&cli_id=" + wxGetApp().app_config->get("slicer_uuid"); url += "&cli_ver=" + std::string(SLIC3R_VERSION); } @@ -331,7 +348,7 @@ void MediaPlayCtrl::Play() if (m_last_state == MEDIASTATE_INITIALIZING) { if (url.empty() || !boost::algorithm::starts_with(url, "bambu:///")) { m_failed_code = 3; - Stop(_L("Connection Failed. Please check the network and try again")); + Stop(_L("Connection Failed. Please check the network and try again"), from_u8(url)); } else { m_url = url; load(); @@ -346,7 +363,7 @@ void MediaPlayCtrl::Play() void start_ping_test(); -void MediaPlayCtrl::Stop(wxString const &msg) +void MediaPlayCtrl::Stop(wxString const &msg, wxString const &msg2) { int last_state = m_last_state; @@ -375,7 +392,7 @@ void MediaPlayCtrl::Stop(wxString const &msg) #endif SetStatus(msg2); } else - SetStatus(_L("Stopped."), false); + SetStatus(_L("Video Stopped."), false); m_last_state = MEDIASTATE_IDLE; bool auto_retry = wxGetApp().app_config->get("liveview", "auto_retry") != "false"; if (!auto_retry || m_failed_code >= 100 || m_failed_code == 1) // not keep retry on local error or EOS @@ -493,7 +510,7 @@ void MediaPlayCtrl::ToggleStream() wxGetApp().app_config->set("not_show_vcamera_stop_prev", "1"); if (res == wxID_CANCEL) return; } - if (m_lan_proto > MachineObject::LVL_Disable && (m_lan_mode || !m_remote_support) && !m_disable_lan && !m_lan_ip.empty()) { + if (m_lan_proto > MachineObject::LVL_Disable && (m_lan_mode || !m_remote_proto) && !m_disable_lan && !m_lan_ip.empty()) { std::string url; if (m_lan_proto == MachineObject::LVL_Local) url = "bambu:///local/" + m_lan_ip + ".?port=6000&user=" + m_lan_user + "&passwd=" + m_lan_passwd; @@ -519,6 +536,7 @@ void MediaPlayCtrl::ToggleStream() url += "&device=" + m; url += "&net_ver=" + v; url += "&dev_ver=" + dv; + url += "&refresh_url=" + boost::lexical_cast(&refresh_agora_url); url += "&cli_id=" + wxGetApp().app_config->get("slicer_uuid"); url += "&cli_ver=" + std::string(SLIC3R_VERSION); } diff --git a/src/slic3r/GUI/MediaPlayCtrl.h b/src/slic3r/GUI/MediaPlayCtrl.h index f6e8d0dbec..d8c29b729f 100644 --- a/src/slic3r/GUI/MediaPlayCtrl.h +++ b/src/slic3r/GUI/MediaPlayCtrl.h @@ -49,7 +49,7 @@ protected: void Play(); - void Stop(wxString const &msg = {}); + void Stop(wxString const &msg = {}, wxString const &msg2 = {}); void TogglePlay(); @@ -83,7 +83,7 @@ private: std::string m_tutk_state; bool m_camera_exists = false; bool m_lan_mode = false; - bool m_remote_support = false; + int m_remote_proto = 0; bool m_device_busy = false; bool m_disable_lan = false; wxString m_url; diff --git a/src/slic3r/GUI/MsgDialog.cpp b/src/slic3r/GUI/MsgDialog.cpp index 3d67c5c2e5..f6190d24ca 100644 --- a/src/slic3r/GUI/MsgDialog.cpp +++ b/src/slic3r/GUI/MsgDialog.cpp @@ -638,7 +638,7 @@ wxBoxSizer *Newer3mfVersionDialog::get_btn_sizer() } }); } - + if (!file_version_newer) { m_later_btn = new Button(this, _L("Not for now")); m_later_btn->SetBackgroundColor(btn_bg_white); @@ -660,6 +660,109 @@ wxBoxSizer *Newer3mfVersionDialog::get_btn_sizer() return horizontal_sizer; } +NetworkErrorDialog::NetworkErrorDialog(wxWindow* parent) + : DPIDialog(parent ? parent : nullptr, wxID_ANY, _L("Server Exception"), wxDefaultPosition, wxDefaultSize, wxCAPTION | wxCLOSE_BOX) +{ + this->SetBackgroundColour(*wxWHITE); + std::string icon_path = (boost::format("%1%/images/BambuStudioTitle.ico") % resources_dir()).str(); + SetIcon(wxIcon(encode_path(icon_path.c_str()), wxBITMAP_TYPE_ICO)); + + wxBoxSizer* sizer_main = new wxBoxSizer(wxVERTICAL); + + auto m_line_top = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxSize(-1, 1), wxTAB_TRAVERSAL); + m_line_top->SetBackgroundColour(wxColour(166, 169, 170)); + + wxBoxSizer* sizer_bacis_text = new wxBoxSizer(wxVERTICAL); + + m_text_basic = new Label(this, _L("The server is unable to respond. Please click the link below to check the server status.")); + m_text_basic->SetForegroundColour(0x323A3C); + m_text_basic->SetMinSize(wxSize(FromDIP(470), -1)); + m_text_basic->SetMaxSize(wxSize(FromDIP(470), -1)); + m_text_basic->Wrap(FromDIP(470)); + m_text_basic->SetFont(::Label::Body_14); + sizer_bacis_text->Add(m_text_basic, 0, wxALL, 0); + + + wxBoxSizer* sizer_link = new wxBoxSizer(wxVERTICAL); + + m_link_server_state = new wxHyperlinkCtrl(this, wxID_ANY, _L("Check the status of current system services"), ""); + m_link_server_state->SetFont(::Label::Body_13); + m_link_server_state->Bind(wxEVT_LEFT_DOWN, [this](auto& e) {wxGetApp().link_to_network_check(); }); + m_link_server_state->Bind(wxEVT_ENTER_WINDOW, [this](auto& e) {SetCursor(wxCURSOR_HAND); }); + m_link_server_state->Bind(wxEVT_LEAVE_WINDOW, [this](auto& e) {SetCursor(wxCURSOR_ARROW); }); + + sizer_link->Add(m_link_server_state, 0, wxALL, 0); + + + wxBoxSizer* sizer_help = new wxBoxSizer(wxVERTICAL); + + m_text_proposal = new Label(this, _L("If the server is in a fault state, you can temporarily use offline printing or local network printing.")); + m_text_proposal->SetMinSize(wxSize(FromDIP(470), -1)); + m_text_proposal->SetMaxSize(wxSize(FromDIP(470), -1)); + m_text_proposal->Wrap(FromDIP(470)); + m_text_proposal->SetFont(::Label::Body_14); + m_text_proposal->SetForegroundColour(0x323A3C); + + m_text_wiki = new wxHyperlinkCtrl(this, wxID_ANY, _L("How to use LAN only mode"), ""); + m_text_wiki->SetFont(::Label::Body_13); + m_text_wiki->Bind(wxEVT_LEFT_DOWN, [this](auto& e) {wxGetApp().link_to_lan_only_wiki(); }); + m_text_wiki->Bind(wxEVT_ENTER_WINDOW, [this](auto& e) {SetCursor(wxCURSOR_HAND); }); + m_text_wiki->Bind(wxEVT_LEAVE_WINDOW, [this](auto& e) {SetCursor(wxCURSOR_ARROW); }); + + sizer_help->Add(m_text_proposal, 0, wxEXPAND, 0); + sizer_help->Add(m_text_wiki, 0, wxALL, 0); + + wxBoxSizer* sizer_button = new wxBoxSizer(wxHORIZONTAL); + + /*dont show again*/ + auto checkbox = new ::CheckBox(this); + checkbox->SetValue(false); + + + auto checkbox_title = new Label(this, _L("Don't show this dialog again")); + checkbox_title->SetForegroundColour(0x323A3C); + checkbox_title->SetFont(::Label::Body_14); + checkbox_title->Wrap(-1); + + checkbox->Bind(wxEVT_TOGGLEBUTTON, [this, checkbox](wxCommandEvent &e) { + m_show_again = checkbox->GetValue(); + e.Skip(); + }); + + auto bt_enable = StateColor(std::pair(wxColour(27, 136, 68), StateColor::Pressed), std::pair(wxColour(61, 203, 115), StateColor::Hovered), + std::pair(wxColour(0, 174, 66), StateColor::Normal)); + + m_button_confirm = new Button(this, _L("Confirm")); + m_button_confirm->SetBackgroundColor(bt_enable); + m_button_confirm->SetBorderColor(bt_enable); + m_button_confirm->SetTextColor(StateColor::darkModeColorFor("#FFFFFE")); + m_button_confirm->SetMinSize(wxSize(FromDIP(68), FromDIP(23))); + m_button_confirm->SetMinSize(wxSize(FromDIP(68), FromDIP(23))); + m_button_confirm->SetCornerRadius(12); + m_button_confirm->Bind(wxEVT_LEFT_DOWN, [this](auto& e) {EndModal(wxCLOSE);}); + + sizer_button->Add(checkbox, 0, wxALL, 5); + sizer_button->Add(checkbox_title, 0, wxALL, 5); + sizer_button->Add(0, 0, 1, wxEXPAND, 5); + sizer_button->Add(m_button_confirm, 0, wxALL, 5); + + sizer_main->Add(m_line_top, 0, wxEXPAND, 0); + sizer_main->Add(0, 0, 0, wxTOP, 20); + sizer_main->Add(sizer_bacis_text, 0, wxEXPAND | wxLEFT | wxRIGHT, 15); + sizer_main->Add(0, 0, 0, wxTOP, 6); + sizer_main->Add(sizer_link, 0, wxLEFT | wxRIGHT, 15); + sizer_main->Add(0, 0, 0, wxEXPAND | wxTOP, FromDIP(20)); + sizer_main->Add(sizer_help, 1, wxLEFT | wxRIGHT, 15); + sizer_main->Add(0, 0, 0, wxEXPAND | wxTOP, FromDIP(20)); + sizer_main->Add(sizer_button, 1, wxEXPAND | wxLEFT | wxRIGHT, 15); + sizer_main->Add(0, 0, 0, wxTOP, 18); + + SetSizer(sizer_main); + Layout(); + sizer_main->Fit(this); + Centre(wxBOTH); +} + } // namespace GUI } // namespace Slic3r diff --git a/src/slic3r/GUI/MsgDialog.hpp b/src/slic3r/GUI/MsgDialog.hpp index e62251af7d..84a71b3758 100644 --- a/src/slic3r/GUI/MsgDialog.hpp +++ b/src/slic3r/GUI/MsgDialog.hpp @@ -410,6 +410,25 @@ private: wxStaticText *m_msg_text = nullptr; }; + +class NetworkErrorDialog : public DPIDialog +{ +public: + NetworkErrorDialog(wxWindow* parent); + ~NetworkErrorDialog() {}; + virtual void on_dpi_changed(const wxRect& suggested_rect) {}; + +private: + Label* m_text_basic; + wxHyperlinkCtrl* m_link_server_state; + Label* m_text_proposal; + wxHyperlinkCtrl* m_text_wiki; + Button * m_button_confirm; + +public: + bool m_show_again{false}; +}; + } } diff --git a/src/slic3r/GUI/NotificationManager.cpp b/src/slic3r/GUI/NotificationManager.cpp index 08ef8c7493..c2152f97f5 100644 --- a/src/slic3r/GUI/NotificationManager.cpp +++ b/src/slic3r/GUI/NotificationManager.cpp @@ -304,10 +304,10 @@ void NotificationManager::PopNotification::render(GLCanvas3D& canvas, float init bbl_render_left_sign(imgui, win_size.x, win_size.y, win_pos.x, win_pos.y); render_left_sign(imgui); render_text(imgui, win_size.x, win_size.y, win_pos.x, win_pos.y); - render_close_button(imgui, win_size.x, win_size.y, win_pos.x, win_pos.y); m_minimize_b_visible = false; if (m_multiline && m_lines_count > 3) render_minimize_button(imgui, win_pos.x, win_pos.y); + render_close_button(imgui, win_size.x, win_size.y, win_pos.x, win_pos.y); // ORCA draw it after minimize button since its position related to minimize button } imgui.end(); diff --git a/src/slic3r/GUI/ParamsPanel.cpp b/src/slic3r/GUI/ParamsPanel.cpp index 9c18c06b30..629537420d 100644 --- a/src/slic3r/GUI/ParamsPanel.cpp +++ b/src/slic3r/GUI/ParamsPanel.cpp @@ -225,7 +225,7 @@ ParamsPanel::ParamsPanel( wxWindow* parent, wxWindowID id, const wxPoint& pos, c m_tips_arrow = new ScalableButton(m_top_panel, wxID_ANY, "tips_arrow"); m_tips_arrow->Hide(); - m_title_view = new Label(m_top_panel, _L("Advance")); + m_title_view = new Label(m_top_panel, Label::Body_12, _L("Advance")); // ORCA match size with advanced toggle on tab.cpp m_static_title m_mode_view = new SwitchButton(m_top_panel, wxID_ABOUT); // BBS: new layout diff --git a/src/slic3r/GUI/PartPlate.cpp b/src/slic3r/GUI/PartPlate.cpp index 1f052706c9..ffd01e48d9 100644 --- a/src/slic3r/GUI/PartPlate.cpp +++ b/src/slic3r/GUI/PartPlate.cpp @@ -1348,8 +1348,7 @@ void PartPlate::register_raycasters_for_picking(GLCanvas3D &canvas) int PartPlate::picking_id_component(int idx) const { - unsigned int id = PLATE_BASE_ID - this->m_plate_index * GRABBER_COUNT - idx; - return id; + return this->m_plate_index * GRABBER_COUNT + idx; } std::vector PartPlate::get_extruders(bool conside_custom_gcode) const @@ -2725,7 +2724,7 @@ bool PartPlate::intersects(const BoundingBoxf3& bb) const return print_volume.intersects(bb); } -void PartPlate::render(const Transform3d& view_matrix, const Transform3d& projection_matrix, bool bottom, bool only_body, bool force_background_color, HeightLimitMode mode, int hover_id, bool render_cali) +void PartPlate::render(const Transform3d& view_matrix, const Transform3d& projection_matrix, bool bottom, bool only_body, bool force_background_color, HeightLimitMode mode, int hover_id, bool render_cali, bool show_grid) { glsafe(::glEnable(GL_DEPTH_TEST)); @@ -2745,7 +2744,8 @@ void PartPlate::render(const Transform3d& view_matrix, const Transform3d& projec render_exclude_area(force_background_color); } - render_grid(bottom); + if (show_grid) + render_grid(bottom); render_height_limit(mode); @@ -4782,7 +4782,7 @@ void PartPlateList::postprocess_arrange_polygon(arrangement::ArrangePolygon& arr /*rendering related functions*/ //render -void PartPlateList::render(const Transform3d& view_matrix, const Transform3d& projection_matrix, bool bottom, bool only_current, bool only_body, int hover_id, bool render_cali) +void PartPlateList::render(const Transform3d& view_matrix, const Transform3d& projection_matrix, bool bottom, bool only_current, bool only_body, int hover_id, bool render_cali, bool show_grid) { const std::lock_guard local_lock(m_plates_mutex); std::vector::iterator it = m_plate_list.begin(); @@ -4807,15 +4807,15 @@ void PartPlateList::render(const Transform3d& view_matrix, const Transform3d& pr if (current_index == m_current_plate) { PartPlate::HeightLimitMode height_mode = (only_current)?PartPlate::HEIGHT_LIMIT_NONE:m_height_limit_mode; if (plate_hover_index == current_index) - (*it)->render(view_matrix, projection_matrix, bottom, only_body, false, height_mode, plate_hover_action, render_cali); + (*it)->render(view_matrix, projection_matrix, bottom, only_body, false, height_mode, plate_hover_action, render_cali, show_grid); else - (*it)->render(view_matrix, projection_matrix, bottom, only_body, false, height_mode, -1, render_cali); + (*it)->render(view_matrix, projection_matrix, bottom, only_body, false, height_mode, -1, render_cali, show_grid); } else { if (plate_hover_index == current_index) - (*it)->render(view_matrix, projection_matrix, bottom, only_body, false, PartPlate::HEIGHT_LIMIT_NONE, plate_hover_action, render_cali); + (*it)->render(view_matrix, projection_matrix, bottom, only_body, false, PartPlate::HEIGHT_LIMIT_NONE, plate_hover_action, render_cali, show_grid); else - (*it)->render(view_matrix, projection_matrix, bottom, only_body, false, PartPlate::HEIGHT_LIMIT_NONE, -1, render_cali); + (*it)->render(view_matrix, projection_matrix, bottom, only_body, false, PartPlate::HEIGHT_LIMIT_NONE, -1, render_cali, show_grid); } } } diff --git a/src/slic3r/GUI/PartPlate.hpp b/src/slic3r/GUI/PartPlate.hpp index bfe73ab59a..6bed8c7f0f 100644 --- a/src/slic3r/GUI/PartPlate.hpp +++ b/src/slic3r/GUI/PartPlate.hpp @@ -198,7 +198,6 @@ private: int picking_id_component(int idx) const; public: - static const unsigned int PLATE_BASE_ID = 255 * 255 * 253; static const unsigned int PLATE_NAME_HOVER_ID = 6; static const unsigned int GRABBER_COUNT = 8; @@ -364,7 +363,7 @@ public: bool contains(const BoundingBoxf3& bb) const; bool intersects(const BoundingBoxf3& bb) const; - void render(const Transform3d& view_matrix, const Transform3d& projection_matrix, bool bottom, bool only_body = false, bool force_background_color = false, HeightLimitMode mode = HEIGHT_LIMIT_NONE, int hover_id = -1, bool render_cali = false); + void render(const Transform3d& view_matrix, const Transform3d& projection_matrix, bool bottom, bool only_body = false, bool force_background_color = false, HeightLimitMode mode = HEIGHT_LIMIT_NONE, int hover_id = -1, bool render_cali = false, bool show_grid = true); void set_selected(); void set_unselected(); @@ -693,11 +692,6 @@ public: m_height_limit_mode = mode; } - // SoftFever - const std::string& get_logo_texture_filename() const { - return m_logo_texture_filename; - } - int get_curr_plate_index() const { return m_current_plate; } PartPlate* get_curr_plate() { return m_plate_list[m_current_plate]; } const PartPlate* get_curr_plate() const { return m_plate_list[m_current_plate]; } @@ -787,7 +781,7 @@ public: /*rendering related functions*/ void on_change_color_mode(bool is_dark) { m_is_dark = is_dark; } - void render(const Transform3d& view_matrix, const Transform3d& projection_matrix, bool bottom, bool only_current = false, bool only_body = false, int hover_id = -1, bool render_cali = false); + void render(const Transform3d& view_matrix, const Transform3d& projection_matrix, bool bottom, bool only_current = false, bool only_body = false, int hover_id = -1, bool render_cali = false, bool show_grid = true); void set_render_option(bool bedtype_texture, bool plate_settings); void set_render_cali(bool value = true) { render_cali_logo = value; } void register_raycasters_for_picking(GLCanvas3D& canvas) diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index eb017db695..f141755688 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -852,7 +852,7 @@ Sidebar::Sidebar(Plater *parent) p->m_panel_filament_title->SetBackgroundColor2(0xF1F1F1); p->m_panel_filament_title->Bind(wxEVT_LEFT_UP, [this](wxMouseEvent &e) { if (e.GetPosition().x > (p->m_flushing_volume_btn->IsShown() - ? p->m_flushing_volume_btn->GetPosition().x : p->m_bpButton_add_filament->GetPosition().x)) + ? p->m_flushing_volume_btn->GetPosition().x : (p->m_bpButton_add_filament->GetPosition().x - FromDIP(30)))) // ORCA exclude area of del button from titlebar collapse/expand feature to fix undesired collapse when user spams del filament button return; if (p->m_panel_filament_content->GetMaxHeight() == 0) p->m_panel_filament_content->SetMaxSize({-1, -1}); @@ -957,8 +957,7 @@ Sidebar::Sidebar(Plater *parent) }); p->m_bpButton_add_filament = add_btn; - bSizer39->Add(add_btn, 0, wxALIGN_CENTER|wxALL, FromDIP(5)); - bSizer39->Add(FromDIP(10), 0, 0, 0, 0 ); + // ORCA Moved add button after delete button to prevent add button position change when remove icon automatically hidden ScalableButton* del_btn = new ScalableButton(p->m_panel_filament_title, wxID_ANY, "delete_filament"); del_btn->SetToolTip(_L("Remove last filament")); @@ -983,8 +982,15 @@ Sidebar::Sidebar(Plater *parent) p->m_bpButton_del_filament = del_btn; bSizer39->Add(del_btn, 0, wxALIGN_CENTER_VERTICAL, FromDIP(5)); + bSizer39->Add(FromDIP(10), 0, 0, 0, 0); + bSizer39->Add(add_btn, 0, wxALIGN_CENTER | wxALL, FromDIP(5)); // ORCA Moved add button after delete button to prevent add button position change when remove icon automatically hidden bSizer39->Add(FromDIP(20), 0, 0, 0, 0); + if (p->combos_filament.size() <= 1) { // ORCA Fix Flushing button and Delete filament button not hidden on launch while only 1 filament exist + bSizer39->Hide(p->m_flushing_volume_btn); + bSizer39->Hide(p->m_bpButton_del_filament); // ORCA: Hide delete filament button if there is only one filament + } + ams_btn = new ScalableButton(p->m_panel_filament_title, wxID_ANY, "ams_fila_sync", wxEmptyString, wxDefaultSize, wxDefaultPosition, wxBU_EXACTFIT | wxNO_BORDER, false, 18); ams_btn->SetToolTip(_L("Synchronize filament list from AMS")); @@ -1301,8 +1307,9 @@ void Sidebar::update_all_preset_comboboxes() } } } else { - // Orca: combobox don't have the btDefault option, so we need to -1 - m_bed_type_list->SelectAndNotify(btPEI - 1); + // m_bed_type_list->SelectAndNotify(btPEI - 1); + BedType bed_type = preset_bundle.printers.get_edited_preset().get_default_bed_type(&preset_bundle); + m_bed_type_list->SelectAndNotify((int) bed_type - 1); m_bed_type_list->Disable(); } @@ -1632,10 +1639,13 @@ void Sidebar::on_filaments_change(size_t num_filaments) auto sizer = p->m_panel_filament_title->GetSizer(); if (p->m_flushing_volume_btn != nullptr && sizer != nullptr) { - if (num_filaments > 1) + if (num_filaments > 1) { sizer->Show(p->m_flushing_volume_btn); - else + sizer->Show(p->m_bpButton_del_filament); // ORCA: Show delete filament button if multiple filaments + } else { sizer->Hide(p->m_flushing_volume_btn); + sizer->Hide(p->m_bpButton_del_filament); // ORCA: Hide delete filament button if there is only one filament + } } Layout(); @@ -1751,6 +1761,11 @@ void Sidebar::load_ams_list(std::string const &device, MachineObject* obj) void Sidebar::sync_ams_list() { + // Force load ams list + auto obj = wxGetApp().getDeviceManager()->get_selected_machine(); + if (obj) + GUI::wxGetApp().sidebar().load_ams_list(obj->dev_id, obj); + auto & list = wxGetApp().preset_bundle->filament_ams_list; if (list.empty()) { MessageDialog dlg(this, @@ -1851,9 +1866,9 @@ void Sidebar::show_SEMM_buttons(bool bshow) { if(p->m_bpButton_add_filament) p->m_bpButton_add_filament->Show(bshow); - if(p->m_bpButton_del_filament) + if (p->m_bpButton_del_filament && p->combos_filament.size() > 1) // ORCA add filament count as condition to prevent showing Flushing volumes and Del Filament icon visible while only 1 filament exist p->m_bpButton_del_filament->Show(bshow); - if (p->m_flushing_volume_btn) + if (p->m_flushing_volume_btn && p->combos_filament.size() > 1) // ORCA add filament count as condition to prevent showing Flushing volumes and Del Filament icon visible while only 1 filament exist p->m_flushing_volume_btn->Show(bshow); Layout(); } @@ -3342,22 +3357,23 @@ wxColour Plater::get_next_color_for_filament() static int curr_color_filamenet = 0; // refs to https://www.ebaomonthly.com/window/photo/lesson/colorList.htm wxColour colors[FILAMENT_SYSTEM_COLORS_NUM] = { - *wxYELLOW, - * wxRED, - *wxBLUE, - *wxCYAN, - *wxLIGHT_GREY, - *wxWHITE, - *wxBLACK, - wxColour(0,127,255), - wxColour(139,0,255), - wxColour(102,255,0), - wxColour(255,215,0), - wxColour(0,35,100), - wxColour(255,0,255), - wxColour(8,37,103), - wxColour(127,255,212), - wxColour(255,191,0) + // ORCA updated all color palette + wxColour("#00C1AE"), + wxColour("#F4E2C1"), + wxColour("#ED1C24"), + wxColour("#00FF7F"), + wxColour("#F26722"), + wxColour("#FFEB31"), + wxColour("#7841CE"), + wxColour("#115877"), + wxColour("#ED1E79"), + wxColour("#2EBDEF"), + wxColour("#345B2F"), + wxColour("#800080"), + wxColour("#FA8173"), + wxColour("#800000"), + wxColour("#F7B763"), + wxColour("#A4C41E"), }; return colors[curr_color_filamenet++ % FILAMENT_SYSTEM_COLORS_NUM]; } @@ -4396,7 +4412,9 @@ std::vector Plater::priv::load_files(const std::vector& input_ cur_plate->translate_all_instance(new_origin - cur_origin); } + view3D->get_canvas3d()->remove_raycasters_for_picking(SceneRaycaster::EType::Bed); partplate_list.reset_size(current_width, current_depth, current_height, true, true); + partplate_list.register_raycasters_for_picking(*view3D->get_canvas3d()); } //BBS: add gcode loading logic in the end @@ -5972,6 +5990,11 @@ void Plater::priv::reload_from_disk() } } if (found) break; + // BBS: step model,object loaded as a volume. GUI_ObfectList.cpp load_modifier() + if (obj->name == old_volume->name) { + new_object_idx = (int) o; + break; + } } } @@ -5980,22 +6003,30 @@ void Plater::priv::reload_from_disk() continue; } ModelObject *new_model_object = new_model.objects[new_object_idx]; - if (new_volume_idx < 0 || int(new_model_object->volumes.size()) <= new_volume_idx) { + if (int(new_model_object->volumes.size()) <= new_volume_idx) { fail_list.push_back(from_u8(has_source ? old_volume->source.input_file : old_volume->name)); continue; } - old_model_object->add_volume(*new_model_object->volumes[new_volume_idx]); - ModelVolume *new_volume = old_model_object->volumes.back(); + ModelVolume *new_volume = nullptr; + // BBS: step model + if (new_volume_idx < 0 && new_object_idx >= 0) { + TriangleMesh mesh = new_model_object->mesh(); + new_volume = old_model_object->add_volume(std::move(mesh)); + new_volume->name = new_model_object->name; + new_volume->source.input_file = new_model_object->input_file; + }else { + new_volume = old_model_object->add_volume(*new_model_object->volumes[new_volume_idx]); + // new_volume = old_model_object->volumes.back(); + } + new_volume->set_new_unique_id(); new_volume->config.apply(old_volume->config); new_volume->set_type(old_volume->type()); new_volume->set_material_id(old_volume->material_id()); - Transform3d transform = Transform3d::Identity(); - transform.translate(new_volume->source.mesh_offset - old_volume->source.mesh_offset); - new_volume->set_transformation(old_volume->get_transformation().get_matrix() * old_volume->source.transform.get_matrix_no_offset() * - transform * new_volume->source.transform.get_matrix_no_offset().inverse()); + new_volume->source.mesh_offset = old_volume->source.mesh_offset; + new_volume->set_transformation(old_volume->get_transformation()); new_volume->source.object_idx = old_volume->source.object_idx; new_volume->source.volume_idx = old_volume->source.volume_idx; @@ -8147,13 +8178,14 @@ void Plater::priv::set_bed_shape(const Pointfs& shape, const Pointfs& exclude_ar float prev_height_lid, prev_height_rod; partplate_list.get_height_limits(prev_height_lid, prev_height_rod); - auto prev_logo = partplate_list.get_logo_texture_filename(); double height_to_lid = config->opt_float("extruder_clearance_height_to_lid"); double height_to_rod = config->opt_float("extruder_clearance_height_to_rod"); - auto custom_bed_texture = config->opt_string("bed_custom_texture"); Pointfs prev_exclude_areas = partplate_list.get_exclude_area(); - new_shape |= (height_to_lid != prev_height_lid) || (height_to_rod != prev_height_rod) || (prev_exclude_areas != exclude_areas) || (prev_logo != custom_bed_texture); + new_shape |= (height_to_lid != prev_height_lid) || (height_to_rod != prev_height_rod) || (prev_exclude_areas != exclude_areas); + if (!new_shape && partplate_list.get_logo_texture_filename() != custom_texture) { + partplate_list.update_logo_texture_filename(custom_texture); + } if (new_shape) { if (view3D) view3D->bed_shape_changed(); if (preview) preview->bed_shape_changed(); @@ -8895,7 +8927,7 @@ int Plater::new_project(bool skip_confirm, bool silent, const wxString& project_ return wxID_YES; } - +LoadType determine_load_type(std::string filename, std::string override_setting = ""); // BBS: FIXME, missing resotre logic void Plater::load_project(wxString const& filename2, @@ -8947,8 +8979,16 @@ void Plater::load_project(wxString const& filename2, auto strategy = LoadStrategy::LoadModel | LoadStrategy::LoadConfig; if (originfile == "") { strategy = strategy | LoadStrategy::Silence; + } else if (originfile == "") { + // Do nothing } else if (originfile != "-") { strategy = strategy | LoadStrategy::Restore; + } else { + switch (determine_load_type(filename.ToStdString())) { + case LoadType::OpenProject: break; // Do nothing + case LoadType::LoadGeometry:; strategy = LoadStrategy::LoadModel; break; + default: return; // User cancelled + } } bool load_restore = strategy & LoadStrategy::Restore; @@ -9698,6 +9738,8 @@ auto print_config = &wxGetApp().preset_bundle->prints.get_edited_preset().config _obj->config.set_key_value("wall_loops", new ConfigOptionInt(1)); _obj->config.set_key_value("only_one_wall_top", new ConfigOptionBool(true)); _obj->config.set_key_value("thick_internal_bridges", new ConfigOptionBool(false)); + _obj->config.set_key_value("enable_extra_bridge_layer", new ConfigOptionEnum(eblDisabled)); + _obj->config.set_key_value("internal_bridge_density", new ConfigOptionPercent(100)); _obj->config.set_key_value("sparse_infill_density", new ConfigOptionPercent(35)); _obj->config.set_key_value("min_width_top_surface", new ConfigOptionFloatOrPercent(100,true)); _obj->config.set_key_value("bottom_shell_layers", new ConfigOptionInt(2)); @@ -10410,7 +10452,7 @@ private: wxColour m_def_color = wxColour(255, 255, 255); RadioSelectorList m_radio_group; int m_action{1}; - bool m_show_again; + bool m_remember_choice{false}; public: ProjectDropDialog(const std::string &filename); @@ -10433,7 +10475,7 @@ public: int get_action() const { return m_action; } void set_action(int index) { m_action = index; } - wxBoxSizer *create_item_checkbox(wxString title, wxWindow *parent, wxString tooltip, std::string param); + wxBoxSizer *create_remember_checkbox(wxString title, wxWindow* parent, wxString tooltip); wxBoxSizer *create_item_radiobox(wxString title, wxWindow *parent, int select_id, int groupid); protected: @@ -10527,14 +10569,12 @@ ProjectDropDialog::ProjectDropDialog(const std::string &filename) m_sizer_main->Add(0, 0, 0, wxEXPAND | wxTOP, 10); wxBoxSizer *m_sizer_bottom = new wxBoxSizer(wxHORIZONTAL); - // hide the "Don't show again" checkbox - //wxBoxSizer *m_sizer_left = new wxBoxSizer(wxHORIZONTAL); + wxBoxSizer *m_sizer_left = new wxBoxSizer(wxHORIZONTAL); - //auto dont_show_again = create_item_checkbox(_L("Don't show again"), this, _L("Don't show again"), "show_drop_project_dialog"); - //m_sizer_left->Add(dont_show_again, 0, wxALL, 5); - - //m_sizer_bottom->Add(m_sizer_left, 0, wxEXPAND, 5); + auto dont_show_again = create_remember_checkbox(_L("Remember my choice."), this, _L("This option can be changed later in preferences, under 'Load Behaviour'.")); + m_sizer_left->Add(dont_show_again, 0, wxALL, 5); + m_sizer_bottom->Add(m_sizer_left, 0, wxEXPAND, 5); m_sizer_bottom->Add(0, 0, 1, wxEXPAND, 5); wxBoxSizer *m_sizer_right = new wxBoxSizer(wxHORIZONTAL); @@ -10623,13 +10663,14 @@ wxBoxSizer *ProjectDropDialog ::create_item_radiobox(wxString title, wxWindow *p return sizer; } -wxBoxSizer *ProjectDropDialog::create_item_checkbox(wxString title, wxWindow *parent, wxString tooltip, std::string param) +wxBoxSizer *ProjectDropDialog::create_remember_checkbox(wxString title, wxWindow *parent, wxString tooltip) { wxBoxSizer *m_sizer_checkbox = new wxBoxSizer(wxHORIZONTAL); - m_sizer_checkbox->Add(0, 0, 0, wxEXPAND | wxLEFT, 5); auto checkbox = new ::CheckBox(parent); + checkbox->SetValue(m_remember_choice); + checkbox->SetToolTip(tooltip); m_sizer_checkbox->Add(checkbox, 0, wxALIGN_CENTER, 0); m_sizer_checkbox->Add(0, 0, 0, wxEXPAND | wxLEFT, 8); @@ -10637,13 +10678,11 @@ wxBoxSizer *ProjectDropDialog::create_item_checkbox(wxString title, wxWindow *pa checkbox_title->SetForegroundColour(wxColour(144,144,144)); checkbox_title->SetFont(::Label::Body_13); checkbox_title->Wrap(-1); + checkbox_title->SetToolTip(tooltip); m_sizer_checkbox->Add(checkbox_title, 0, wxALIGN_CENTER | wxALL, 3); - m_show_again = wxGetApp().app_config->get(param) == "true" ? true : false; - checkbox->SetValue(m_show_again); - - checkbox->Bind(wxEVT_TOGGLEBUTTON, [this, checkbox, param](wxCommandEvent &e) { - m_show_again = m_show_again ? false : true; + checkbox->Bind(wxEVT_TOGGLEBUTTON, [this, checkbox](wxCommandEvent &e) { + m_remember_choice = checkbox->GetValue(); e.Skip(); }); @@ -10709,7 +10748,19 @@ void ProjectDropDialog::on_select_radio(wxMouseEvent &event) void ProjectDropDialog::on_select_ok(wxMouseEvent &event) { - wxGetApp().app_config->set_bool("show_drop_project_dialog", m_show_again); + if (m_remember_choice) { + LoadType load_type = static_cast(get_action()); + switch (load_type) + { + case LoadType::OpenProject: + wxGetApp().app_config->set(SETTING_PROJECT_LOAD_BEHAVIOUR, OPTION_PROJECT_LOAD_BEHAVIOUR_LOAD_ALL); + break; + case LoadType::LoadGeometry: + wxGetApp().app_config->set(SETTING_PROJECT_LOAD_BEHAVIOUR, OPTION_PROJECT_LOAD_BEHAVIOUR_LOAD_GEOMETRY); + break; + } + } + EndModal(wxID_OK); } @@ -10889,6 +10940,35 @@ bool Plater::load_files(const wxArrayString& filenames) return res; } +LoadType determine_load_type(std::string filename, std::string override_setting) +{ + std::string setting; + + if (override_setting != "") { + setting = override_setting; + } else { + setting = wxGetApp().app_config->get(SETTING_PROJECT_LOAD_BEHAVIOUR); + } + + if (setting == OPTION_PROJECT_LOAD_BEHAVIOUR_LOAD_GEOMETRY) { + return LoadType::LoadGeometry; + } else if (setting == OPTION_PROJECT_LOAD_BEHAVIOUR_ALWAYS_ASK) { + ProjectDropDialog dlg(filename); + if (dlg.ShowModal() == wxID_OK) { + int choice = dlg.get_action(); + LoadType load_type = static_cast(choice); + wxGetApp().app_config->set("import_project_action", std::to_string(choice)); + + // BBS: jump to plater panel + wxGetApp().mainframe->select_tab(MainFrame::tp3DEditor); + return load_type; + } + + return LoadType::Unknown; // Cancel + } else { + return LoadType::OpenProject; + } +} bool Plater::open_3mf_file(const fs::path &file_path) { @@ -10897,31 +10977,16 @@ bool Plater::open_3mf_file(const fs::path &file_path) return false; } - LoadType load_type = LoadType::Unknown; - if (!model().objects.empty()) { - bool show_drop_project_dialog = true; - if (show_drop_project_dialog) { - ProjectDropDialog dlg(filename); - if (dlg.ShowModal() == wxID_OK) { - int choice = dlg.get_action(); - load_type = static_cast(choice); - wxGetApp().app_config->set("import_project_action", std::to_string(choice)); - - // BBS: jump to plater panel - wxGetApp().mainframe->select_tab(MainFrame::tp3DEditor); - } - } else - load_type = static_cast( - std::clamp(std::stoi(wxGetApp().app_config->get("import_project_action")), static_cast(LoadType::OpenProject), static_cast(LoadType::LoadConfig))); - } else - load_type = LoadType::OpenProject; + bool not_empty_plate = !model().objects.empty(); + bool load_setting_ask_when_relevant = wxGetApp().app_config->get(SETTING_PROJECT_LOAD_BEHAVIOUR) == OPTION_PROJECT_LOAD_BEHAVIOUR_ASK_WHEN_RELEVANT; + LoadType load_type = determine_load_type(filename, (not_empty_plate && load_setting_ask_when_relevant) ? OPTION_PROJECT_LOAD_BEHAVIOUR_ALWAYS_ASK : ""); if (load_type == LoadType::Unknown) return false; switch (load_type) { case LoadType::OpenProject: { if (wxGetApp().can_load_project()) - load_project(from_path(file_path)); + load_project(from_path(file_path), ""); break; } case LoadType::LoadGeometry: { @@ -12596,38 +12661,58 @@ void Plater::send_gcode_legacy(int plate_idx, Export3mfProgressFn proFn, bool us } } - auto config = get_app_config(); - PrintHostSendDialog dlg(default_output_file, upload_job.printhost->get_post_upload_actions(), groups, storage_paths, storage_names, config->get_bool("open_device_tab_post_upload")); - if (dlg.ShowModal() == wxID_OK) { - config->set_bool("open_device_tab_post_upload", dlg.switch_to_device_tab()); - upload_job.switch_to_device_tab = dlg.switch_to_device_tab(); - upload_job.upload_data.upload_path = dlg.filename(); - upload_job.upload_data.post_action = dlg.post_action(); - upload_job.upload_data.group = dlg.group(); - upload_job.upload_data.storage = dlg.storage(); + { + auto preset_bundle = wxGetApp().preset_bundle; + const auto opt = physical_printer_config->option>("host_type"); + const auto host_type = opt != nullptr ? opt->value : htElegooLink; + auto config = get_app_config(); - // Show "Is printer clean" dialog for PrusaConnect - Upload and print. - if (std::string(upload_job.printhost->get_name()) == "PrusaConnect" && upload_job.upload_data.post_action == PrintHostPostUploadAction::StartPrint) { - GUI::MessageDialog dlg(nullptr, _L("Is the printer ready? Is the print sheet in place, empty and clean?"), _L("Upload and Print"), wxOK | wxCANCEL); - if (dlg.ShowModal() != wxID_OK) - return; + std::unique_ptr pDlg; + if (host_type == htElegooLink) { + pDlg = std::make_unique(default_output_file, upload_job.printhost->get_post_upload_actions(), groups, + storage_paths, storage_names, + config->get_bool("open_device_tab_post_upload")); + } else { + pDlg = std::make_unique(default_output_file, upload_job.printhost->get_post_upload_actions(), groups, + storage_paths, storage_names, config->get_bool("open_device_tab_post_upload")); } - if (use_3mf) { - // Process gcode - const int result = send_gcode(plate_idx, nullptr); - - if (result < 0) { - wxString msg = _L("Abnormal print file data. Please slice again"); - show_error(this, msg, false); - return; - } - - upload_job.upload_data.source_path = p->m_print_job_data._3mf_path; + pDlg->init(); + if (pDlg->ShowModal() != wxID_OK) { + return; } - p->export_gcode(fs::path(), false, std::move(upload_job)); + config->set_bool("open_device_tab_post_upload", pDlg->switch_to_device_tab()); + // PrintHostUpload upload_data; + upload_job.switch_to_device_tab = pDlg->switch_to_device_tab(); + upload_job.upload_data.upload_path = pDlg->filename(); + upload_job.upload_data.post_action = pDlg->post_action(); + upload_job.upload_data.group = pDlg->group(); + upload_job.upload_data.storage = pDlg->storage(); + upload_job.upload_data.extended_info = pDlg->extendedInfo(); } + + // Show "Is printer clean" dialog for PrusaConnect - Upload and print. + if (std::string(upload_job.printhost->get_name()) == "PrusaConnect" && upload_job.upload_data.post_action == PrintHostPostUploadAction::StartPrint) { + GUI::MessageDialog dlg(nullptr, _L("Is the printer ready? Is the print sheet in place, empty and clean?"), _L("Upload and Print"), wxOK | wxCANCEL); + if (dlg.ShowModal() != wxID_OK) + return; + } + + if (use_3mf) { + // Process gcode + const int result = send_gcode(plate_idx, nullptr); + + if (result < 0) { + wxString msg = _L("Abnormal print file data. Please slice again"); + show_error(this, msg, false); + return; + } + + upload_job.upload_data.source_path = p->m_print_job_data._3mf_path; + } + + p->export_gcode(fs::path(), false, std::move(upload_job)); } int Plater::send_gcode(int plate_idx, Export3mfProgressFn proFn) { diff --git a/src/slic3r/GUI/Preferences.cpp b/src/slic3r/GUI/Preferences.cpp index 125183a675..8bc00295bf 100644 --- a/src/slic3r/GUI/Preferences.cpp +++ b/src/slic3r/GUI/Preferences.cpp @@ -67,7 +67,7 @@ wxBoxSizer *PreferencesDialog::create_item_title(wxString title, wxWindow *paren return m_sizer_title; } -wxBoxSizer *PreferencesDialog::create_item_combobox(wxString title, wxWindow *parent, wxString tooltip, std::string param, std::vector vlist) +std::tuple PreferencesDialog::create_item_combobox_base(wxString title, wxWindow* parent, wxString tooltip, std::string param, std::vector vlist, unsigned int current_index) { wxBoxSizer *m_sizer_combox = new wxBoxSizer(wxHORIZONTAL); m_sizer_combox->Add(0, 0, 0, wxEXPAND | wxLEFT, 23); @@ -84,20 +84,58 @@ wxBoxSizer *PreferencesDialog::create_item_combobox(wxString title, wxWindow *pa combobox->GetDropDown().SetFont(::Label::Body_13); std::vector::iterator iter; - for (iter = vlist.begin(); iter != vlist.end(); iter++) { combobox->Append(*iter); } + for (iter = vlist.begin(); iter != vlist.end(); iter++) { + combobox->Append(*iter); + } - - auto use_inch = app_config->get(param); - if (!use_inch.empty()) { combobox->SetSelection(atoi(use_inch.c_str())); } + combobox->SetSelection(current_index); m_sizer_combox->Add(combobox, 0, wxALIGN_CENTER, 0); + return {m_sizer_combox, combobox}; +} + +wxBoxSizer* PreferencesDialog::create_item_combobox(wxString title, wxWindow* parent, wxString tooltip, std::string param, std::vector vlist) +{ + unsigned int current_index = 0; + + auto current_setting = app_config->get(param); + if (!current_setting.empty()) { + current_index = atoi(current_setting.c_str()); + } + + auto [sizer, combobox] = create_item_combobox_base(title, parent, tooltip, param, vlist, current_index); + //// save config - combobox->GetDropDown().Bind(wxEVT_COMBOBOX, [this, param](wxCommandEvent &e) { + combobox->GetDropDown().Bind(wxEVT_COMBOBOX, [this, param](wxCommandEvent& e) { app_config->set(param, std::to_string(e.GetSelection())); e.Skip(); }); - return m_sizer_combox; + + return sizer; +} + +wxBoxSizer *PreferencesDialog::create_item_combobox(wxString title, wxWindow *parent, wxString tooltip, std::string param, std::vector vlist, std::vector config_name_index) +{ + assert(vlist.size() == config_name_index.size()); + unsigned int current_index = 0; + + auto current_setting = app_config->get(param); + if (!current_setting.empty()) { + auto compare = [current_setting](string possible_setting) { return current_setting == possible_setting; }; + auto iterator = find_if(config_name_index.begin(), config_name_index.end(), compare); + current_index = iterator - config_name_index.begin(); + } + + auto [sizer, combobox] = create_item_combobox_base(title, parent, tooltip, param, vlist, current_index); + + //// save config + combobox->GetDropDown().Bind(wxEVT_COMBOBOX, [this, param, config_name_index](wxCommandEvent& e) { + app_config->set(param, config_name_index[e.GetSelection()]); + e.Skip(); + }); + + return sizer; } wxBoxSizer *PreferencesDialog::create_item_language_combobox( @@ -1166,6 +1204,11 @@ wxWindow* PreferencesDialog::create_general_page() // auto item_modelmall = create_item_checkbox(_L("Show online staff-picked models on the home page"), page, _L("Show online staff-picked models on the home page"), 50, "staff_pick_switch"); auto title_project = create_item_title(_L("Project"), page, ""); + + std::vector projectLoadSettingsBehaviourOptions = {_L("Load All"), _L("Ask When Relevant"), _L("Always Ask"), _L("Load Geometry Only")}; + std::vector projectLoadSettingsConfigOptions = { OPTION_PROJECT_LOAD_BEHAVIOUR_LOAD_ALL, OPTION_PROJECT_LOAD_BEHAVIOUR_ASK_WHEN_RELEVANT, OPTION_PROJECT_LOAD_BEHAVIOUR_ALWAYS_ASK, OPTION_PROJECT_LOAD_BEHAVIOUR_LOAD_GEOMETRY }; + auto item_project_load_behaviour = create_item_combobox(_L("Load Behaviour"), page, _L("Should printer/filament/process settings be loaded when opening a .3mf?"), SETTING_PROJECT_LOAD_BEHAVIOUR, projectLoadSettingsBehaviourOptions, projectLoadSettingsConfigOptions); + auto item_max_recent_count = create_item_input(_L("Maximum recent projects"), "", page, _L("Maximum count of recent projects"), "max_recent_count", [](wxString value) { long max = 0; if (value.ToLong(&max)) @@ -1241,6 +1284,7 @@ wxWindow* PreferencesDialog::create_general_page() // update_modelmall(eee); // item_region->GetItem(size_t(2))->GetWindow()->Bind(wxEVT_COMBOBOX, update_modelmall); sizer_page->Add(title_project, 0, wxTOP| wxEXPAND, FromDIP(20)); + sizer_page->Add(item_project_load_behaviour, 0, wxTOP, FromDIP(3)); sizer_page->Add(item_max_recent_count, 0, wxTOP, FromDIP(3)); sizer_page->Add(item_save_choise, 0, wxTOP, FromDIP(3)); sizer_page->Add(item_gcodes_warning, 0, wxTOP, FromDIP(3)); diff --git a/src/slic3r/GUI/Preferences.hpp b/src/slic3r/GUI/Preferences.hpp index 29649be719..c0df651cb4 100644 --- a/src/slic3r/GUI/Preferences.hpp +++ b/src/slic3r/GUI/Preferences.hpp @@ -105,6 +105,7 @@ public: wxBoxSizer *create_item_title(wxString title, wxWindow *parent, wxString tooltip); wxBoxSizer *create_item_combobox(wxString title, wxWindow *parent, wxString tooltip, std::string param, std::vector vlist); + wxBoxSizer *create_item_combobox(wxString title, wxWindow *parent, wxString tooltip, std::string param, std::vector vlist, std::vector config_name_index); wxBoxSizer *create_item_region_combobox(wxString title, wxWindow *parent, wxString tooltip, std::vector vlist); wxBoxSizer *create_item_language_combobox(wxString title, wxWindow *parent, wxString tooltip, int padding_left, std::string param, std::vector vlist); wxBoxSizer *create_item_loglevel_combobox(wxString title, wxWindow *parent, wxString tooltip, std::vector vlist); @@ -140,6 +141,9 @@ public: protected: void OnSelectTabel(wxCommandEvent &event); void OnSelectRadio(wxMouseEvent &event); + +private: + std::tuple create_item_combobox_base(wxString title, wxWindow* parent, wxString tooltip, std::string param, std::vector vlist, unsigned int current_index); }; wxDECLARE_EVENT(EVT_PREFERENCES_SELECT_TAB, wxCommandEvent); diff --git a/src/slic3r/GUI/PrintHostDialogs.cpp b/src/slic3r/GUI/PrintHostDialogs.cpp index 14a5866635..86b43f3ee8 100644 --- a/src/slic3r/GUI/PrintHostDialogs.cpp +++ b/src/slic3r/GUI/PrintHostDialogs.cpp @@ -47,11 +47,22 @@ PrintHostSendDialog::PrintHostSendDialog(const fs::path &path, PrintHostPostUplo , post_upload_action(PrintHostPostUploadAction::None) , m_paths(storage_paths) , m_switch_to_device_tab(switch_to_device_tab) + , m_path(path) + , m_post_actions(post_actions) + , m_storage_names(storage_names) { #ifdef __APPLE__ txt_filename->OSXDisableAllSmartSubstitutions(); #endif - const AppConfig *app_config = wxGetApp().app_config; +} +void PrintHostSendDialog::init() +{ + const auto& path = m_path; + const auto& storage_paths = m_paths; + const auto& post_actions = m_post_actions; + const auto& storage_names = m_storage_names; + + const AppConfig* app_config = wxGetApp().app_config; auto *label_dir_hint = new wxStaticText(this, wxID_ANY, _L("Use forward slashes ( / ) as a directory separator if needed.")); label_dir_hint->Wrap(CONTENT_WIDTH * wxGetApp().em_unit()); @@ -614,4 +625,331 @@ bool PrintHostQueueDialog::load_user_data(int udt, std::vector& vector) } return true; } + +ElegooPrintHostSendDialog::ElegooPrintHostSendDialog(const fs::path& path, + PrintHostPostUploadActions post_actions, + const wxArrayString& groups, + const wxArrayString& storage_paths, + const wxArrayString& storage_names, + bool switch_to_device_tab) + : PrintHostSendDialog(path, post_actions, groups, storage_paths, storage_names, switch_to_device_tab) + , m_timeLapse(0) + , m_heatedBedLeveling(0) + , m_BedType(BedType::btPTE) +{} + +void ElegooPrintHostSendDialog::init() { + + auto preset_bundle = wxGetApp().preset_bundle; + auto model_id = preset_bundle->printers.get_edited_preset().get_printer_type(preset_bundle); + + if (!(model_id == "Elegoo-CC" || model_id == "Elegoo-C")) { + PrintHostSendDialog::init(); + return; + } + + const auto& path = m_path; + const auto& storage_paths = m_paths; + const auto& post_actions = m_post_actions; + const auto& storage_names = m_storage_names; + + this->SetMinSize(wxSize(500, 300)); + const AppConfig* app_config = wxGetApp().app_config; + + std::string uploadAndPrint = app_config->get("recent", CONFIG_KEY_UPLOADANDPRINT); + if (!uploadAndPrint.empty()) + post_upload_action = static_cast(std::stoi(uploadAndPrint)); + + std::string timeLapse = app_config->get("recent", CONFIG_KEY_TIMELAPSE); + if (!timeLapse.empty()) + m_timeLapse = std::stoi(timeLapse); + std::string heatedBedLeveling = app_config->get("recent", CONFIG_KEY_HEATEDBEDLEVELING); + if (!heatedBedLeveling.empty()) + m_heatedBedLeveling = std::stoi(heatedBedLeveling); + std::string bedType = app_config->get("recent", CONFIG_KEY_BEDTYPE); + if (!bedType.empty()) + m_BedType = static_cast(std::stoi(bedType)); + + auto* label_dir_hint = new wxStaticText(this, wxID_ANY, _L("Use forward slashes ( / ) as a directory separator if needed.")); + label_dir_hint->Wrap(CONTENT_WIDTH * wxGetApp().em_unit()); + + wxSizerFlags flags = wxSizerFlags().Border(wxRIGHT, 16).Expand(); + + content_sizer->Add(txt_filename, flags); + content_sizer->AddSpacer(4); + content_sizer->Add(label_dir_hint); + content_sizer->AddSpacer(VERT_SPACING); + + if (combo_groups != nullptr) { + // Repetier specific: Show a selection of file groups. + auto* label_group = new wxStaticText(this, wxID_ANY, _L("Group")); + content_sizer->Add(label_group); + content_sizer->Add(combo_groups, 0, wxBOTTOM, 2 * VERT_SPACING); + wxString recent_group = from_u8(app_config->get("recent", CONFIG_KEY_GROUP)); + if (!recent_group.empty()) + combo_groups->SetValue(recent_group); + } + + if (combo_storage != nullptr) { + // PrusaLink specific: User needs to choose a storage + auto* label_group = new wxStaticText(this, wxID_ANY, _L("Upload to storage") + ":"); + content_sizer->Add(label_group); + content_sizer->Add(combo_storage, 0, wxBOTTOM, 2 * VERT_SPACING); + combo_storage->SetValue(storage_names.front()); + wxString recent_storage = from_u8(app_config->get("recent", CONFIG_KEY_STORAGE)); + if (!recent_storage.empty()) + combo_storage->SetValue(recent_storage); + } else if (storage_names.GetCount() == 1) { + // PrusaLink specific: Show which storage has been detected. + auto* label_group = new wxStaticText(this, wxID_ANY, _L("Upload to storage") + ": " + storage_names.front()); + content_sizer->Add(label_group); + m_preselected_storage = m_paths.front(); + } + + wxString recent_path = from_u8(app_config->get("recent", CONFIG_KEY_PATH)); + if (recent_path.Length() > 0 && recent_path[recent_path.Length() - 1] != '/') { + recent_path += '/'; + } + const auto recent_path_len = recent_path.Length(); + recent_path += path.filename().wstring(); + wxString stem(path.stem().wstring()); + const auto stem_len = stem.Length(); + + txt_filename->SetValue(recent_path); + + { + auto checkbox_sizer = new wxBoxSizer(wxHORIZONTAL); + auto checkbox = new ::CheckBox(this, wxID_APPLY); + checkbox->SetValue(m_switch_to_device_tab); + checkbox->Bind(wxEVT_TOGGLEBUTTON, [this](wxCommandEvent& e) { + m_switch_to_device_tab = e.IsChecked(); + e.Skip(); + }); + checkbox_sizer->Add(checkbox, 0, wxALL | wxALIGN_CENTER, FromDIP(2)); + + auto checkbox_text = new wxStaticText(this, wxID_ANY, _L("Switch to Device tab after upload."), wxDefaultPosition, wxDefaultSize, 0); + checkbox_sizer->Add(checkbox_text, 0, wxALL | wxALIGN_CENTER, FromDIP(2)); + checkbox_text->SetFont(::Label::Body_13); + checkbox_text->SetForegroundColour(StateColor::darkModeColorFor(wxColour("#323A3D"))); + content_sizer->Add(checkbox_sizer); + content_sizer->AddSpacer(VERT_SPACING); + } + warning_text = new wxStaticText(this, wxID_ANY, + _L("The selected bed type does not match the file. Please confirm before starting the print."), + wxDefaultPosition, wxDefaultSize, 0); + uploadandprint_sizer = new wxBoxSizer(wxVERTICAL); + { + auto checkbox_sizer = new wxBoxSizer(wxHORIZONTAL); + auto checkbox = new ::CheckBox(this); + checkbox->SetValue(post_upload_action == PrintHostPostUploadAction::StartPrint); + checkbox->Bind(wxEVT_TOGGLEBUTTON, [this](wxCommandEvent& e) { + if (e.IsChecked()) { + post_upload_action = PrintHostPostUploadAction::StartPrint; + } else { + post_upload_action = PrintHostPostUploadAction::None; + } + refresh(); + e.Skip(); + }); + checkbox_sizer->Add(checkbox, 0, wxALL | wxALIGN_CENTER, FromDIP(2)); + + auto checkbox_text = new wxStaticText(this, wxID_ANY, _L("Upload and Print"), wxDefaultPosition, wxDefaultSize, 0); + checkbox_sizer->Add(checkbox_text, 0, wxALL | wxALIGN_CENTER, FromDIP(2)); + checkbox_text->SetFont(::Label::Body_13); + checkbox_text->SetForegroundColour(StateColor::darkModeColorFor(wxColour("#323A3D"))); + content_sizer->Add(checkbox_sizer); + content_sizer->AddSpacer(VERT_SPACING); + } + + { + auto checkbox_sizer = new wxBoxSizer(wxHORIZONTAL); + auto checkbox = new ::CheckBox(this); + checkbox->SetValue(m_timeLapse == 1); + checkbox->Bind(wxEVT_TOGGLEBUTTON, [this](wxCommandEvent& e) { + m_timeLapse = e.IsChecked() ? 1 : 0; + e.Skip(); + }); + checkbox_sizer->AddSpacer(16); + checkbox_sizer->Add(checkbox, 0, wxALL | wxALIGN_CENTER, FromDIP(2)); + + auto checkbox_text = new wxStaticText(this, wxID_ANY, _L("Time-lapse"), wxDefaultPosition, wxDefaultSize, 0); + checkbox_sizer->Add(checkbox_text, 0, wxALL | wxALIGN_CENTER, FromDIP(2)); + checkbox_text->SetFont(::Label::Body_13); + checkbox_text->SetForegroundColour(StateColor::darkModeColorFor(wxColour("#323A3D"))); + uploadandprint_sizer->Add(checkbox_sizer); + uploadandprint_sizer->AddSpacer(VERT_SPACING); + } + + { + auto checkbox_sizer = new wxBoxSizer(wxHORIZONTAL); + auto checkbox = new ::CheckBox(this); + checkbox->SetValue(m_heatedBedLeveling == 1); + checkbox->Bind(wxEVT_TOGGLEBUTTON, [this](wxCommandEvent& e) { + m_heatedBedLeveling = e.IsChecked() ? 1 : 0; + e.Skip(); + }); + checkbox_sizer->AddSpacer(16); + checkbox_sizer->Add(checkbox, 0, wxALL | wxALIGN_CENTER, FromDIP(2)); + + auto checkbox_text = new wxStaticText(this, wxID_ANY, _L("Heated Bed Leveling"), wxDefaultPosition, wxDefaultSize, 0); + checkbox_sizer->Add(checkbox_text, 0, wxALL | wxALIGN_CENTER, FromDIP(2)); + checkbox_text->SetFont(::Label::Body_13); + checkbox_text->SetForegroundColour(StateColor::darkModeColorFor(wxColour("#323A3D"))); + uploadandprint_sizer->Add(checkbox_sizer); + uploadandprint_sizer->AddSpacer(VERT_SPACING); + } + + { + auto radioBoxA = new ::RadioBox(this); + auto radioBoxB = new ::RadioBox(this); + if (m_BedType == BedType::btPC) + radioBoxB->SetValue(true); + else + radioBoxA->SetValue(true); + + radioBoxA->Bind(wxEVT_LEFT_DOWN, [this, radioBoxA, radioBoxB](wxMouseEvent& e) { + radioBoxA->SetValue(true); + radioBoxB->SetValue(false); + m_BedType = BedType::btPTE; + refresh(); + }); + radioBoxB->Bind(wxEVT_LEFT_DOWN, [this, radioBoxA, radioBoxB](wxMouseEvent& e) { + radioBoxA->SetValue(false); + radioBoxB->SetValue(true); + m_BedType = BedType::btPC; + refresh(); + }); + + { + auto radio_sizer = new wxBoxSizer(wxHORIZONTAL); + radio_sizer->AddSpacer(16); + radio_sizer->Add(radioBoxA, 0, wxALL | wxALIGN_CENTER, FromDIP(2)); + + auto checkbox_text = new wxStaticText(this, wxID_ANY, _L("Textured Build Plate (Side A)"), wxDefaultPosition, wxDefaultSize, 0); + radio_sizer->Add(checkbox_text, 0, wxALL | wxALIGN_CENTER, FromDIP(2)); + checkbox_text->SetFont(::Label::Body_13); + checkbox_text->SetForegroundColour(StateColor::darkModeColorFor(wxColour("#323A3D"))); + uploadandprint_sizer->Add(radio_sizer); + uploadandprint_sizer->AddSpacer(VERT_SPACING); + } + { + auto radio_sizer = new wxBoxSizer(wxHORIZONTAL); + radio_sizer->AddSpacer(16); + radio_sizer->Add(radioBoxB, 0, wxALL | wxALIGN_CENTER, FromDIP(2)); + + auto checkbox_text = new wxStaticText(this, wxID_ANY, _L("Smooth Build Plate (Side B)"), wxDefaultPosition, wxDefaultSize, 0); + radio_sizer->Add(checkbox_text, 0, wxALL | wxALIGN_CENTER, FromDIP(2)); + checkbox_text->SetFont(::Label::Body_13); + checkbox_text->SetForegroundColour(StateColor::darkModeColorFor(wxColour("#323A3D"))); + uploadandprint_sizer->Add(radio_sizer); + uploadandprint_sizer->AddSpacer(VERT_SPACING); + } + } + { + auto h_sizer = new wxBoxSizer(wxHORIZONTAL); + warning_text->SetFont(::Label::Body_13); + warning_text->SetForegroundColour(StateColor::darkModeColorFor(wxColour("#FF1001"))); + // wrapping the text + warning_text->Wrap(350); + h_sizer->AddSpacer(16); + h_sizer->Add(warning_text); + + uploadandprint_sizer->Add(h_sizer); + uploadandprint_sizer->AddSpacer(VERT_SPACING); + } + + content_sizer->Add(uploadandprint_sizer); + uploadandprint_sizer->Show(post_upload_action == PrintHostPostUploadAction::StartPrint); + warning_text->Show(post_upload_action == PrintHostPostUploadAction::StartPrint && appBedType() != m_BedType); + + uploadandprint_sizer->Layout(); + + if (size_t extension_start = recent_path.find_last_of('.'); extension_start != std::string::npos) + m_valid_suffix = recent_path.substr(extension_start); + // .gcode suffix control + auto validate_path = [this](const wxString& path) -> bool { + if (!path.Lower().EndsWith(m_valid_suffix.Lower())) { + MessageDialog msg_wingow(this, + wxString::Format(_L("Upload filename doesn't end with \"%s\". Do you wish to continue?"), + m_valid_suffix), + wxString(SLIC3R_APP_NAME), wxYES | wxNO); + if (msg_wingow.ShowModal() == wxID_NO) + return false; + } + return true; + }; + + auto* btn_ok = add_button(wxID_OK, true, _L("Upload")); + btn_ok->Bind(wxEVT_BUTTON, [this, validate_path](wxCommandEvent&) { + if (validate_path(txt_filename->GetValue())) { + // post_upload_action = PrintHostPostUploadAction::None; + EndDialog(wxID_OK); + } + }); + txt_filename->SetFocus(); + + add_button(wxID_CANCEL, false, _L("Cancel")); + finalize(); + +#ifdef __linux__ + // On Linux with GTK2 when text control lose the focus then selection (colored background) disappears but text color stay white + // and as a result the text is invisible with light mode + // see https://github.com/prusa3d/PrusaSlicer/issues/4532 + // Workaround: Unselect text selection explicitly on kill focus + txt_filename->Bind( + wxEVT_KILL_FOCUS, + [this](wxEvent& e) { + e.Skip(); + txt_filename->SetInsertionPoint(txt_filename->GetLastPosition()); + }, + txt_filename->GetId()); +#endif /* __linux__ */ + + Bind(wxEVT_SHOW, [=](const wxShowEvent&) { + // Another similar case where the function only works with EVT_SHOW + CallAfter, + // this time on Mac. + CallAfter([=]() { + txt_filename->SetInsertionPoint(0); + txt_filename->SetSelection(recent_path_len, recent_path_len + stem_len); + }); + }); +} + +void ElegooPrintHostSendDialog::EndModal(int ret) +{ + if (ret == wxID_OK) { + + AppConfig* app_config = wxGetApp().app_config; + app_config->set("recent", CONFIG_KEY_UPLOADANDPRINT, std::to_string(static_cast(post_upload_action))); + app_config->set("recent", CONFIG_KEY_TIMELAPSE, std::to_string(m_timeLapse)); + app_config->set("recent", CONFIG_KEY_HEATEDBEDLEVELING, std::to_string(m_heatedBedLeveling)); + app_config->set("recent", CONFIG_KEY_BEDTYPE, std::to_string(static_cast(m_BedType))); + } + + PrintHostSendDialog::EndModal(ret); +} + +BedType ElegooPrintHostSendDialog::appBedType() const +{ + std::string str_bed_type = wxGetApp().app_config->get("curr_bed_type"); + int bed_type_value = atoi(str_bed_type.c_str()); + return static_cast(bed_type_value); +} + +void ElegooPrintHostSendDialog::refresh() +{ + if (uploadandprint_sizer) { + if (post_upload_action == PrintHostPostUploadAction::StartPrint) { + uploadandprint_sizer->Show(true); + } else { + uploadandprint_sizer->Show(false); + } + } + if (warning_text) { + warning_text->Show(post_upload_action == PrintHostPostUploadAction::StartPrint && appBedType() != m_BedType); + } + this->Layout(); + this->Fit(); +} + }} diff --git a/src/slic3r/GUI/PrintHostDialogs.hpp b/src/slic3r/GUI/PrintHostDialogs.hpp index 8befa21d98..e648537ccb 100644 --- a/src/slic3r/GUI/PrintHostDialogs.hpp +++ b/src/slic3r/GUI/PrintHostDialogs.hpp @@ -12,7 +12,7 @@ #include "GUI_Utils.hpp" #include "MsgDialog.hpp" #include "../Utils/PrintHost.hpp" - +#include "libslic3r/PrintConfig.hpp" class wxButton; class wxTextCtrl; class wxChoice; @@ -27,6 +27,7 @@ class PrintHostSendDialog : public GUI::MsgDialog { public: PrintHostSendDialog(const boost::filesystem::path &path, PrintHostPostUploadActions post_actions, const wxArrayString& groups, const wxArrayString& storage_paths, const wxArrayString& storage_names, bool switch_to_device_tab); + virtual ~PrintHostSendDialog() {} boost::filesystem::path filename() const; PrintHostPostUploadAction post_action() const; std::string group() const; @@ -34,7 +35,10 @@ public: bool switch_to_device_tab() const {return m_switch_to_device_tab;} virtual void EndModal(int ret) override; -private: + virtual void init(); + virtual std::map extendedInfo() const { return {}; } + +protected: wxTextCtrl *txt_filename; wxComboBox *combo_groups; wxComboBox* combo_storage; @@ -43,6 +47,10 @@ private: wxString m_preselected_storage; wxArrayString m_paths; bool m_switch_to_device_tab; + + boost::filesystem::path m_path; + PrintHostPostUploadActions m_post_actions; + wxArrayString m_storage_names; }; @@ -131,6 +139,47 @@ private: bool load_user_data(int, std::vector&); }; +class ElegooPrintHostSendDialog : public PrintHostSendDialog +{ +public: + ElegooPrintHostSendDialog(const boost::filesystem::path& path, + PrintHostPostUploadActions post_actions, + const wxArrayString& groups, + const wxArrayString& storage_paths, + const wxArrayString& storage_names, + bool switch_to_device_tab); + + virtual void EndModal(int ret) override; + int timeLapse() const { return m_timeLapse; } + int heatedBedLeveling() const { return m_heatedBedLeveling; } + BedType bedType() const { return m_BedType; } + + virtual void init() override; + virtual std::map extendedInfo() const + { + return {{"bedType", std::to_string(static_cast(m_BedType))}, + {"timeLapse", std::to_string(m_timeLapse)}, + {"heatedBedLeveling", std::to_string(m_heatedBedLeveling)}}; + } + +private: + BedType appBedType() const; + void refresh(); + + const char* CONFIG_KEY_UPLOADANDPRINT = "elegoolink_upload_and_print"; + const char* CONFIG_KEY_TIMELAPSE = "elegoolink_timelapse"; + const char* CONFIG_KEY_HEATEDBEDLEVELING = "elegoolink_heated_bed_leveling"; + const char* CONFIG_KEY_BEDTYPE = "elegoolink_bed_type"; + +private: + wxStaticText* warning_text{nullptr}; + wxBoxSizer* uploadandprint_sizer{nullptr}; + + int m_timeLapse; + int m_heatedBedLeveling; + BedType m_BedType; +}; + wxDECLARE_EVENT(EVT_PRINTHOST_PROGRESS, PrintHostQueueDialog::Event); wxDECLARE_EVENT(EVT_PRINTHOST_ERROR, PrintHostQueueDialog::Event); wxDECLARE_EVENT(EVT_PRINTHOST_CANCEL, PrintHostQueueDialog::Event); diff --git a/src/slic3r/GUI/Printer/PrinterFileSystem.cpp b/src/slic3r/GUI/Printer/PrinterFileSystem.cpp index 8d272057f8..f97ea156bc 100644 --- a/src/slic3r/GUI/Printer/PrinterFileSystem.cpp +++ b/src/slic3r/GUI/Printer/PrinterFileSystem.cpp @@ -1239,6 +1239,8 @@ void PrinterFileSystem::Reconnect(boost::unique_lock &l, int resul if (c) c(result, r, nullptr); } m_messages.clear(); + if (result) + m_cond.timed_wait(l, boost::posix_time::seconds(10)); while (true) { while (m_stopped) { if (m_session.owner == nullptr) diff --git a/src/slic3r/GUI/ReleaseNote.cpp b/src/slic3r/GUI/ReleaseNote.cpp index a2a805a39f..520a4bba2c 100644 --- a/src/slic3r/GUI/ReleaseNote.cpp +++ b/src/slic3r/GUI/ReleaseNote.cpp @@ -36,11 +36,13 @@ wxDEFINE_EVENT(EVT_CHECKBOX_CHANGE, wxCommandEvent); wxDEFINE_EVENT(EVT_ENTER_IP_ADDRESS, wxCommandEvent); wxDEFINE_EVENT(EVT_CLOSE_IPADDRESS_DLG, wxCommandEvent); wxDEFINE_EVENT(EVT_CHECK_IP_ADDRESS_FAILED, wxCommandEvent); +wxDEFINE_EVENT(EVT_CHECK_IP_ADDRESS_LAYOUT, wxCommandEvent); wxDEFINE_EVENT(EVT_SECONDARY_CHECK_RETRY, wxCommandEvent); wxDEFINE_EVENT(EVT_PRINT_ERROR_STOP, wxCommandEvent); wxDEFINE_EVENT(EVT_UPDATE_NOZZLE, wxCommandEvent); wxDEFINE_EVENT(EVT_JUMP_TO_HMS, wxCommandEvent); wxDEFINE_EVENT(EVT_JUMP_TO_LIVEVIEW, wxCommandEvent); +wxDEFINE_EVENT(EVT_UPDATE_TEXT_MSG, wxCommandEvent); ReleaseNoteDialog::ReleaseNoteDialog(Plater *plater /*= nullptr*/) : DPIDialog(static_cast(wxGetApp().mainframe), wxID_ANY, _L("Release Note"), wxDefaultPosition, wxDefaultSize, wxCAPTION | wxCLOSE_BOX) @@ -896,7 +898,7 @@ PrintErrorDialog::PrintErrorDialog(wxWindow* parent, wxWindowID id, const wxStri bottom_sizer->Add(m_sizer_button, 0, wxEXPAND | wxRIGHT | wxLEFT, 0); - m_sizer_right->Add(bottom_sizer, 0, wxEXPAND | wxRIGHT | wxLEFT, FromDIP(15)); + m_sizer_right->Add(bottom_sizer, 0, wxEXPAND | wxRIGHT | wxLEFT, FromDIP(20)); m_sizer_right->Add(0, 0, 0, wxTOP, FromDIP(10)); m_sizer_main->Add(m_sizer_right, 0, wxBOTTOM | wxEXPAND, FromDIP(5)); @@ -952,20 +954,34 @@ void PrintErrorDialog::on_webrequest_state(wxWebRequestEvent& evt) } } -void PrintErrorDialog::update_text_image(wxString text, wxString image_url) +void PrintErrorDialog::update_text_image(const wxString& text, const wxString& error_code, const wxString& image_url) { //if (!m_sizer_text_release_note) { // m_sizer_text_release_note = new wxBoxSizer(wxVERTICAL); //} wxBoxSizer* sizer_text_release_note = new wxBoxSizer(wxVERTICAL); - + wxString error_code_msg = error_code; + if (!error_code.IsEmpty()) { + wxDateTime now = wxDateTime::Now(); + wxString show_time = now.Format("%H%M%d"); + error_code_msg = wxString::Format("[%S %S]", error_code, show_time); + } + if (!m_staticText_release_note) { m_staticText_release_note = new Label(m_vebview_release_note, text, LB_AUTO_WRAP); sizer_text_release_note->Add(m_error_prompt_pic_static, 0, wxALIGN_CENTER, FromDIP(5)); + sizer_text_release_note->AddSpacer(10); sizer_text_release_note->Add(m_staticText_release_note, 0, wxALIGN_CENTER , FromDIP(5)); - m_vebview_release_note->SetSizer(sizer_text_release_note); } + if (!m_staticText_error_code) { + m_staticText_error_code = new Label(m_vebview_release_note, error_code_msg, LB_AUTO_WRAP); + sizer_text_release_note->AddSpacer(5); + sizer_text_release_note->Add(m_staticText_error_code, 0, wxALIGN_CENTER, FromDIP(5)); + } + + m_vebview_release_note->SetSizer(sizer_text_release_note); + if (!image_url.empty()) { web_request = wxWebSession::GetDefault().CreateRequest(this, image_url); BOOST_LOG_TRIVIAL(trace) << "monitor: create new webrequest, state = " << web_request.GetState() << ", url = " << image_url; @@ -982,6 +998,9 @@ void PrintErrorDialog::update_text_image(wxString text, wxString image_url) m_staticText_release_note->SetMaxSize(wxSize(FromDIP(300), -1)); m_staticText_release_note->SetMinSize(wxSize(FromDIP(300), -1)); m_staticText_release_note->SetLabelText(text); + m_staticText_error_code->SetMaxSize(wxSize(FromDIP(300), -1)); + m_staticText_error_code->SetMinSize(wxSize(FromDIP(300), -1)); + m_staticText_error_code->SetLabelText(error_code_msg); m_vebview_release_note->Layout(); auto text_size = m_staticText_release_note->GetBestSize(); @@ -1048,7 +1067,8 @@ void PrintErrorDialog::update_title_style(wxString title, std::vector butto } -void PrintErrorDialog::init_button(PrintErrorButton style,wxString buton_text) { +void PrintErrorDialog::init_button(PrintErrorButton style,wxString buton_text) +{ Button* print_error_button = new Button(this, buton_text); print_error_button->SetBackgroundColor(btn_bg_white); print_error_button->SetBorderColor(wxColour(38, 46, 48)); @@ -1062,8 +1082,8 @@ void PrintErrorDialog::init_button(PrintErrorButton style,wxString buton_text) { } -void PrintErrorDialog::init_button_list() { - +void PrintErrorDialog::init_button_list() +{ init_button(RESUME_PRINTING, _L("Resume Printing")); m_button_list[RESUME_PRINTING]->Bind(wxEVT_LEFT_DOWN, [this](wxMouseEvent& e) { post_event(wxCommandEvent(EVT_SECONDARY_CHECK_RESUME)); @@ -1436,55 +1456,71 @@ void ConfirmBeforeSendDialog::rescale() m_button_cancel->Rescale(); } -InputIpAddressDialog::InputIpAddressDialog(wxWindow* parent) - :DPIDialog(static_cast(wxGetApp().mainframe), wxID_ANY, _L("LAN Connection Failed (Sending print file)"), wxDefaultPosition, wxDefaultSize, wxCAPTION | wxCLOSE_BOX) +InputIpAddressDialog::InputIpAddressDialog(wxWindow *parent) + : DPIDialog(static_cast(wxGetApp().mainframe), + wxID_ANY, + _L("Connect the printer using IP and access code"), + wxDefaultPosition, + wxDefaultSize, + wxCAPTION | wxCLOSE_BOX) { std::string icon_path = (boost::format("%1%/images/OrcaSlicerTitle.ico") % resources_dir()).str(); SetIcon(wxIcon(encode_path(icon_path.c_str()), wxBITMAP_TYPE_ICO)); SetBackgroundColour(*wxWHITE); - m_result = -1; - wxBoxSizer* m_sizer_body = new wxBoxSizer(wxVERTICAL); - wxBoxSizer* m_sizer_main = new wxBoxSizer(wxHORIZONTAL); - wxBoxSizer* m_sizer_main_left = new wxBoxSizer(wxVERTICAL); - wxBoxSizer* m_sizer_main_right = new wxBoxSizer(wxVERTICAL); - wxBoxSizer* m_sizer_msg = new wxBoxSizer(wxHORIZONTAL); - auto m_line_top = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxSize(-1, 1)); + m_result = -1; + wxBoxSizer *m_sizer_body = new wxBoxSizer(wxVERTICAL); + wxBoxSizer *m_sizer_main = new wxBoxSizer(wxHORIZONTAL); + wxBoxSizer *m_sizer_main_left = new wxBoxSizer(wxVERTICAL); + wxBoxSizer *m_sizer_main_right = new wxBoxSizer(wxVERTICAL); + wxBoxSizer *m_sizer_msg = new wxBoxSizer(wxHORIZONTAL); + auto m_line_top = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxSize(-1, 1)); m_line_top->SetBackgroundColour(wxColour(166, 169, 170)); - comfirm_before_enter_text = _L("Step 1, please confirm Orca Slicer and your printer are in the same LAN."); - comfirm_after_enter_text = _L("Step 2, if the IP and Access Code below are different from the actual values on your printer, please correct them."); - + comfirm_before_enter_text = _L("Step 1. Please confirm Orca Slicer and your printer are in the same LAN."); + comfirm_after_enter_text = _L("Step 2. If the IP and Access Code below are different from the actual values on your printer, please correct them."); + comfirm_last_enter_text = _L("Step 3. Please obtain the device SN from the printer side; it is usually found in the device information on the printer screen."); m_tip1 = new Label(this, ::Label::Body_13, comfirm_before_enter_text, LB_AUTO_WRAP); m_tip1->SetMinSize(wxSize(FromDIP(352), -1)); m_tip1->SetMaxSize(wxSize(FromDIP(352), -1)); m_tip1->Wrap(FromDIP(352)); - auto m_line_tips = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxSize(-1, 1)); - m_line_tips->SetBackgroundColour(wxColour(0xEEEEEE)); - m_tip2 = new Label(this, ::Label::Body_13, comfirm_after_enter_text, LB_AUTO_WRAP); m_tip2->SetMinSize(wxSize(FromDIP(352), -1)); m_tip2->SetMaxSize(wxSize(FromDIP(352), -1)); - auto m_input_tip_area = new wxBoxSizer(wxHORIZONTAL); - auto m_input_area = new wxBoxSizer(wxHORIZONTAL); + m_tip3 = new Label(this, ::Label::Body_13, comfirm_last_enter_text, LB_AUTO_WRAP); + m_tip3->SetMinSize(wxSize(FromDIP(352), -1)); + m_tip3->SetMaxSize(wxSize(FromDIP(352), -1)); - m_tips_ip = new Label(this, _L("IP")); + ip_input_top_panel = new wxPanel(this); + ip_input_bot_panel = new wxPanel(this); + + ip_input_top_panel->SetBackgroundColour(*wxWHITE); + ip_input_bot_panel->SetBackgroundColour(*wxWHITE); + + auto m_input_top_sizer = new wxBoxSizer(wxVERTICAL); + auto m_input_bot_sizer = new wxBoxSizer(wxVERTICAL); + + /*top input*/ + auto m_input_tip_area = new wxBoxSizer(wxHORIZONTAL); + auto m_input_area = new wxBoxSizer(wxHORIZONTAL); + + m_tips_ip = new Label(ip_input_top_panel, _L("IP")); m_tips_ip->SetMinSize(wxSize(FromDIP(168), -1)); m_tips_ip->SetMaxSize(wxSize(FromDIP(168), -1)); - m_input_ip = new TextInput(this, wxEmptyString, wxEmptyString); + m_input_ip = new TextInput(ip_input_top_panel, wxEmptyString, wxEmptyString); m_input_ip->Bind(wxEVT_TEXT, &InputIpAddressDialog::on_text, this); m_input_ip->SetMinSize(wxSize(FromDIP(168), FromDIP(28))); m_input_ip->SetMaxSize(wxSize(FromDIP(168), FromDIP(28))); - m_tips_access_code = new Label(this, _L("Access Code")); - m_tips_access_code->SetMinSize(wxSize(FromDIP(168),-1)); - m_tips_access_code->SetMaxSize(wxSize(FromDIP(168),-1)); + m_tips_access_code = new Label(ip_input_top_panel, _L("Access Code")); + m_tips_access_code->SetMinSize(wxSize(FromDIP(168), -1)); + m_tips_access_code->SetMaxSize(wxSize(FromDIP(168), -1)); - m_input_access_code = new TextInput(this, wxEmptyString, wxEmptyString); + m_input_access_code = new TextInput(ip_input_top_panel, wxEmptyString, wxEmptyString); m_input_access_code->Bind(wxEVT_TEXT, &InputIpAddressDialog::on_text, this); m_input_access_code->SetMinSize(wxSize(FromDIP(168), FromDIP(28))); m_input_access_code->SetMaxSize(wxSize(FromDIP(168), FromDIP(28))); @@ -1492,42 +1528,101 @@ InputIpAddressDialog::InputIpAddressDialog(wxWindow* parent) m_input_tip_area->Add(m_tips_ip, 0, wxALIGN_CENTER, 0); m_input_tip_area->Add(0, 0, 0, wxLEFT, FromDIP(16)); m_input_tip_area->Add(m_tips_access_code, 0, wxALIGN_CENTER, 0); - + m_input_area->Add(m_input_ip, 0, wxALIGN_CENTER, 0); m_input_area->Add(0, 0, 0, wxLEFT, FromDIP(16)); m_input_area->Add(m_input_access_code, 0, wxALIGN_CENTER, 0); + m_input_top_sizer->Add(m_input_tip_area, 0, wxRIGHT | wxEXPAND, FromDIP(18)); + m_input_top_sizer->Add(0, 0, 0, wxTOP, FromDIP(4)); + m_input_top_sizer->Add(m_input_area, 0, wxRIGHT | wxEXPAND, FromDIP(18)); + + ip_input_top_panel->SetSizer(m_input_top_sizer); + ip_input_top_panel->Layout(); + ip_input_top_panel->Fit(); + + /*bom input*/ + auto m_input_sn_area = new wxBoxSizer(wxHORIZONTAL); + auto m_input_modelID_area = new wxBoxSizer(wxHORIZONTAL); + + m_tips_sn = new Label(ip_input_bot_panel, "SN"); + m_tips_sn->SetMinSize(wxSize(FromDIP(168), -1)); + m_tips_sn->SetMaxSize(wxSize(FromDIP(168), -1)); + + m_input_sn = new TextInput(ip_input_bot_panel, wxEmptyString, wxEmptyString); + m_input_sn->Bind(wxEVT_TEXT, &InputIpAddressDialog::on_text, this); + m_input_sn->SetMinSize(wxSize(FromDIP(168), FromDIP(28))); + m_input_sn->SetMaxSize(wxSize(FromDIP(168), FromDIP(28))); + + m_tips_modelID = new Label(ip_input_bot_panel, _L("Printer model")); + m_tips_modelID->SetMinSize(wxSize(FromDIP(168), -1)); + m_tips_modelID->SetMaxSize(wxSize(FromDIP(168), -1)); + + m_input_modelID = new ComboBox(ip_input_bot_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize(FromDIP(168), FromDIP(28)), 0, nullptr, wxCB_READONLY); + // m_input_modelID->Bind(wxEVT_TEXT, &InputIpAddressDialog::on_text, this); + m_input_modelID->SetMinSize(wxSize(FromDIP(168), FromDIP(28))); + m_input_modelID->SetMaxSize(wxSize(FromDIP(168), FromDIP(28))); + + m_models_map = DeviceManager::get_all_model_id_with_name(); + for (auto it = m_models_map.begin(); it != m_models_map.end(); ++it) { + m_input_modelID->Append(it->right); + m_input_modelID->SetSelection(0); + } + + m_input_sn_area->Add(m_tips_sn, 0, wxALIGN_CENTER, 0); + m_input_sn_area->Add(0, 0, 0, wxLEFT, FromDIP(16)); + m_input_sn_area->Add(m_tips_modelID, 0, wxALIGN_CENTER, 0); + + m_input_modelID_area->Add(m_input_sn, 0, wxALIGN_CENTER, 0); + m_input_modelID_area->Add(0, 0, 0, wxLEFT, FromDIP(16)); + m_input_modelID_area->Add(m_input_modelID, 0, wxALIGN_CENTER, 0); + + auto* tips_printer_name = new Label(ip_input_bot_panel, _L("Printer name")); + + m_input_printer_name = new TextInput(ip_input_bot_panel, wxEmptyString, wxEmptyString); + m_input_printer_name->Bind(wxEVT_TEXT, &InputIpAddressDialog::on_text, this); + m_input_printer_name->SetMinSize(wxSize(FromDIP(352), FromDIP(28))); + m_input_printer_name->SetMaxSize(wxSize(FromDIP(352), FromDIP(28))); + + m_input_bot_sizer->Add(tips_printer_name, 0, wxRIGHT | wxEXPAND, FromDIP(18)); + m_input_bot_sizer->Add(0, 0, 0, wxTOP, FromDIP(4)); + m_input_bot_sizer->Add(m_input_printer_name, 0, wxRIGHT | wxEXPAND, FromDIP(18)); + m_input_bot_sizer->Add(0, 0, 0, wxTOP, FromDIP(4)); + + m_input_bot_sizer->Add(m_input_sn_area, 0, wxRIGHT | wxEXPAND, FromDIP(18)); + m_input_bot_sizer->Add(0, 0, 0, wxTOP, FromDIP(4)); + m_input_bot_sizer->Add(m_input_modelID_area, 0, wxRIGHT | wxEXPAND, FromDIP(18)); + + ip_input_bot_panel->SetSizer(m_input_bot_sizer); + ip_input_bot_panel->Layout(); + ip_input_bot_panel->Fit(); + + /*other*/ m_test_right_msg = new Label(this, Label::Body_13, wxEmptyString, LB_AUTO_WRAP); m_test_right_msg->SetForegroundColour(wxColour(38, 166, 154)); m_test_right_msg->Hide(); - m_test_wrong_msg = new Label(this, Label::Body_13, wxEmptyString, LB_AUTO_WRAP); m_test_wrong_msg->SetForegroundColour(wxColour(208, 27, 27)); m_test_wrong_msg->Hide(); - m_tip3 = new Label(this, Label::Body_12, _L("Where to find your printer's IP and Access Code?"), LB_AUTO_WRAP); - m_tip3->SetMinSize(wxSize(FromDIP(352), -1)); - m_tip3->SetMaxSize(wxSize(FromDIP(352), -1)); - - m_tip4 = new Label(this, ::Label::Body_13, _L("Step 3: Ping the IP address to check for packet loss and latency."), LB_AUTO_WRAP); + m_tip4 = new Label(this, Label::Body_12, _L("Where to find your printer's IP and Access Code?"), LB_AUTO_WRAP); m_tip4->SetMinSize(wxSize(FromDIP(352), -1)); m_tip4->SetMaxSize(wxSize(FromDIP(352), -1)); - + m_trouble_shoot = new wxHyperlinkCtrl(this, wxID_ANY, "How to trouble shooting", ""); m_img_help = new wxStaticBitmap(this, wxID_ANY, create_scaled_bitmap("input_access_code_x1_en", this, 198), wxDefaultPosition, wxSize(FromDIP(352), -1), 0); - auto m_sizer_button = new wxBoxSizer(wxHORIZONTAL); StateColor btn_bg_green(std::pair(wxColour(38, 166, 154), StateColor::Pressed), std::pair(wxColour(38, 166, 154), StateColor::Hovered), - std::pair(AMS_CONTROL_BRAND_COLOUR, StateColor::Normal)); + std::pair(AMS_CONTROL_BRAND_COLOUR, StateColor::Normal)); StateColor btn_bg_white(std::pair(wxColour(206, 206, 206), StateColor::Pressed), std::pair(wxColour(238, 238, 238), StateColor::Hovered), - std::pair(*wxWHITE, StateColor::Normal)); + std::pair(*wxWHITE, StateColor::Normal)); - m_button_ok = new Button(this, _L("Test")); + m_button_ok = new Button(this, _L("Connect")); m_button_ok->SetBackgroundColor(btn_bg_green); m_button_ok->SetBorderColor(*wxWHITE); m_button_ok->SetTextColor(wxColour(0xFFFFFE)); @@ -1535,11 +1630,30 @@ InputIpAddressDialog::InputIpAddressDialog(wxWindow* parent) m_button_ok->SetSize(wxSize(FromDIP(58), FromDIP(24))); m_button_ok->SetMinSize(wxSize(FromDIP(58), FromDIP(24))); m_button_ok->SetCornerRadius(FromDIP(12)); - - m_button_ok->Bind(wxEVT_LEFT_DOWN, &InputIpAddressDialog::on_ok, this); + m_button_ok->Enable(false); + m_button_ok->SetBackgroundColor(wxColour(0x90, 0x90, 0x90)); + m_button_ok->SetBorderColor(wxColour(0x90, 0x90, 0x90)); - auto m_button_cancel = new Button(this, _L("Close")); + m_button_manual_setup = new Button(this, _L("Manual Setup")); + m_button_manual_setup->SetBackgroundColor(btn_bg_green); + m_button_manual_setup->SetBorderColor(*wxWHITE); + m_button_manual_setup->SetTextColor(wxColour(0xFFFFFE)); + m_button_manual_setup->SetFont(Label::Body_12); + m_button_manual_setup->SetSize(wxSize(FromDIP(58), FromDIP(24))); + m_button_manual_setup->SetMinSize(wxSize(FromDIP(58), FromDIP(24))); + m_button_manual_setup->SetCornerRadius(FromDIP(12)); + m_button_manual_setup->Bind(wxEVT_LEFT_DOWN, [this](wxMouseEvent&) { + wxCommandEvent event(EVT_CHECK_IP_ADDRESS_LAYOUT); + event.SetEventObject(this); + event.SetInt(1); + wxPostEvent(this, event); + }); + m_button_manual_setup->SetBackgroundColor(wxColour(0x90, 0x90, 0x90)); + m_button_manual_setup->SetBorderColor(wxColour(0x90, 0x90, 0x90)); + m_button_manual_setup->Hide(); + + /*auto m_button_cancel = new Button(this, _L("Close")); m_button_cancel->SetBackgroundColor(btn_bg_white); m_button_cancel->SetBorderColor(wxColour(38, 46, 48)); m_button_cancel->SetFont(Label::Body_12); @@ -1549,40 +1663,32 @@ InputIpAddressDialog::InputIpAddressDialog(wxWindow* parent) m_button_cancel->Bind(wxEVT_LEFT_DOWN, [this](wxMouseEvent& e) { on_cancel(); - }); + });*/ m_sizer_button->AddStretchSpacer(); - //m_sizer_button->Add(m_button_ok, 0, wxALL, FromDIP(5)); - m_sizer_button->Add(m_button_cancel, 0, wxALL, FromDIP(5)); + m_sizer_button->Add(m_button_manual_setup, 0, wxALL, FromDIP(5)); + m_sizer_button->Add(m_button_ok, 0, wxALL, FromDIP(5)); + // m_sizer_button->Add(m_button_cancel, 0, wxALL, FromDIP(5)); m_sizer_button->Layout(); - - m_status_bar = std::make_shared(this); + m_status_bar = std::make_shared(this); m_status_bar->get_panel()->Hide(); - m_worker = std::make_unique>(this, m_status_bar, "send_worker"); - auto m_step_icon_panel1 = new wxWindow(this, wxID_ANY); auto m_step_icon_panel2 = new wxWindow(this, wxID_ANY); - + m_step_icon_panel3 = new wxWindow(this, wxID_ANY); + m_step_icon_panel1->SetBackgroundColour(*wxWHITE); m_step_icon_panel2->SetBackgroundColour(*wxWHITE); - + m_step_icon_panel3->SetBackgroundColour(*wxWHITE); auto m_sizer_step_icon_panel1 = new wxBoxSizer(wxVERTICAL); auto m_sizer_step_icon_panel2 = new wxBoxSizer(wxVERTICAL); - - + auto m_sizer_step_icon_panel3 = new wxBoxSizer(wxVERTICAL); m_img_step1 = new wxStaticBitmap(m_step_icon_panel1, wxID_ANY, create_scaled_bitmap("ip_address_step", this, 6), wxDefaultPosition, wxSize(FromDIP(6), FromDIP(6)), 0); - - auto m_line_tips_left = new wxPanel(m_step_icon_panel1, wxID_ANY, wxDefaultPosition, wxSize(-1, 1)); - m_line_tips_left->SetBackgroundColour(wxColour(0xEEEEEE)); m_img_step2 = new wxStaticBitmap(m_step_icon_panel2, wxID_ANY, create_scaled_bitmap("ip_address_step", this, 6), wxDefaultPosition, wxSize(FromDIP(6), FromDIP(6)), 0); - m_img_step3 = new wxStaticBitmap(this, wxID_ANY, create_scaled_bitmap("ip_address_step", this, 6), wxDefaultPosition, wxSize(FromDIP(6), FromDIP(6)), 0); - - m_sizer_step_icon_panel1->Add(m_img_step1, 0, wxALIGN_CENTER|wxALL, FromDIP(5)); - + m_img_step3 = new wxStaticBitmap(m_step_icon_panel3, wxID_ANY, create_scaled_bitmap("ip_address_step", this, 6), wxDefaultPosition, wxSize(FromDIP(6), FromDIP(6)), 0); m_step_icon_panel1->SetSizer(m_sizer_step_icon_panel1); m_step_icon_panel1->Layout(); @@ -1592,52 +1698,52 @@ InputIpAddressDialog::InputIpAddressDialog(wxWindow* parent) m_step_icon_panel2->Layout(); m_step_icon_panel2->Fit(); + m_step_icon_panel3->SetSizer(m_sizer_step_icon_panel3); + m_step_icon_panel3->Layout(); + m_step_icon_panel3->Fit(); - - m_sizer_step_icon_panel2->Add(m_img_step2, 0, wxALIGN_CENTER|wxALL, FromDIP(5)); - //m_sizer_step_icon_panel3->Add(m_img_step3, 0, wxALIGN_CENTER|wxALL, FromDIP(5)); + m_sizer_step_icon_panel1->Add(m_img_step1, 0, wxALIGN_CENTER | wxALL, FromDIP(5)); + m_sizer_step_icon_panel2->Add(m_img_step2, 0, wxALIGN_CENTER | wxALL, FromDIP(5)); + m_sizer_step_icon_panel3->Add(m_img_step3, 0, wxALIGN_CENTER | wxALL, FromDIP(5)); m_step_icon_panel1->SetMinSize(wxSize(-1, m_tip1->GetBestSize().y)); m_step_icon_panel1->SetMaxSize(wxSize(-1, m_tip1->GetBestSize().y)); - m_sizer_msg->Add(0, 0, 0, wxALIGN_CENTER, FromDIP(20)); - m_sizer_msg->Add(m_img_step3, 0, wxALL, FromDIP(5)); - m_sizer_msg->Add(0, 0, 0, wxALIGN_CENTER, FromDIP(8)); - m_sizer_msg->Add(m_tip4, 0, wxALIGN_CENTER | wxEXPAND | wxLEFT, FromDIP(5)); - m_img_step3->Hide(); - m_tip4->Hide(); + m_step_icon_panel2->SetMinSize(wxSize(-1, m_tip2->GetBestSize().y)); + m_step_icon_panel2->SetMaxSize(wxSize(-1, m_tip2->GetBestSize().y)); + + m_sizer_msg->Layout(); m_sizer_main_left->Add(m_step_icon_panel1, 0, wxEXPAND, 0); m_sizer_main_left->Add(0, 0, 0, wxTOP, FromDIP(20)); - m_sizer_main_left->Add(m_line_tips_left, 1, wxEXPAND, 0); - m_sizer_main_left->Add(0, 0, 0, wxTOP, FromDIP(20)); m_sizer_main_left->Add(m_step_icon_panel2, 0, wxEXPAND, 0); + m_sizer_main_left->Add(0, 0, 0, wxTOP, FromDIP(20)); + m_sizer_main_left->Add(m_step_icon_panel3, 0, wxEXPAND, 0); m_sizer_main_left->Layout(); - + m_trouble_shoot->Hide(); - - m_sizer_main_right->Add(m_tip1, 0, wxRIGHT|wxEXPAND, FromDIP(18)); + + m_sizer_main_right->Add(m_tip1, 0, wxRIGHT | wxEXPAND, FromDIP(18)); m_sizer_main_right->Add(0, 0, 0, wxTOP, FromDIP(20)); - m_sizer_main_right->Add(m_line_tips, 0, wxRIGHT|wxEXPAND, FromDIP(18)); - m_sizer_main_right->Add(0, 0, 0, wxTOP, FromDIP(20)); - m_sizer_main_right->Add(m_tip2, 0, wxRIGHT|wxEXPAND, FromDIP(18)); + m_sizer_main_right->Add(m_tip2, 0, wxRIGHT | wxEXPAND, FromDIP(18)); + m_sizer_main_right->Add(0, 0, 0, wxTOP, FromDIP(2)); + m_sizer_main_right->Add(m_tip3, 0, wxTOP|wxRIGHT|wxEXPAND, FromDIP(18)); m_sizer_main_right->Add(0, 0, 0, wxTOP, FromDIP(12)); - m_sizer_main_right->Add(m_tip3, 0, wxRIGHT | wxEXPAND, FromDIP(18)); - m_sizer_main_right->Add(0, 0, 0, wxTOP, FromDIP(4)); + m_sizer_main_right->Add(m_tip4, 0, wxRIGHT | wxEXPAND, FromDIP(18)); + m_sizer_main_right->Add(0, 0, 0, wxTOP, FromDIP(3)); m_sizer_main_right->Add(m_img_help, 0, 0, 0); m_sizer_main_right->Add(0, 0, 0, wxTOP, FromDIP(12)); - m_sizer_main_right->Add(m_input_tip_area, 0, wxRIGHT|wxEXPAND, FromDIP(18)); + m_sizer_main_right->Add(ip_input_top_panel, 0, wxRIGHT|wxEXPAND, FromDIP(18)); + m_sizer_main_right->Add(ip_input_bot_panel, 0, wxRIGHT|wxEXPAND, FromDIP(18)); m_sizer_main_right->Add(0, 0, 0, wxTOP, FromDIP(4)); - m_sizer_main_right->Add(m_input_area, 0, wxRIGHT|wxEXPAND, FromDIP(18)); - m_sizer_main_right->Add(0, 0, 0, wxTOP, FromDIP(4)); - m_sizer_main_right->Add(m_button_ok, 0, wxRIGHT, FromDIP(18)); + //m_sizer_main_right->Add(m_button_ok, 0, wxRIGHT, FromDIP(18)); m_sizer_main_right->Add(0, 0, 0, wxTOP, FromDIP(4)); m_sizer_main_right->Add(m_test_right_msg, 0, wxRIGHT|wxEXPAND, FromDIP(18)); m_sizer_main_right->Add(m_test_wrong_msg, 0, wxRIGHT|wxEXPAND, FromDIP(18)); - m_sizer_main_right->Add(0, 0, 0, wxTOP, FromDIP(16)); + m_sizer_main_right->Add(0, 0, 0, wxTOP, FromDIP(4)); m_sizer_main_right->Add(m_status_bar->get_panel(), 0,wxRIGHT|wxEXPAND, FromDIP(18)); m_sizer_main_right->Layout(); @@ -1646,17 +1752,19 @@ InputIpAddressDialog::InputIpAddressDialog(wxWindow* parent) m_sizer_main->Layout(); m_sizer_body->Add(m_line_top, 0, wxEXPAND, 0); - m_sizer_body->Add(0, 0, 0, wxTOP, FromDIP(20)); - m_sizer_body->Add(m_sizer_main, 0, wxEXPAND, 0); + m_sizer_body->Add(0, 0, 0, wxTOP, FromDIP(10)); + m_sizer_body->Add(m_sizer_main, 0, wxRIGHT, FromDIP(10)); m_sizer_body->Add(0, 0, 0, wxTOP, FromDIP(4)); m_sizer_body->Add(m_sizer_msg, 0, wxLEFT|wxEXPAND, FromDIP(18)); m_sizer_body->Add(0, 0, 0, wxTOP, FromDIP(4)); m_sizer_body->Add(m_trouble_shoot, 0, wxLEFT | wxRIGHT | wxEXPAND, FromDIP(40)); - m_sizer_body->Add(0, 0, 0, wxTOP, FromDIP(8)); m_sizer_body->Add(m_sizer_button, 0, wxRIGHT | wxEXPAND, FromDIP(25)); + m_sizer_body->Add(0, 0, 0, wxTOP, FromDIP(10)); m_sizer_body->Layout(); + switch_input_panel(0); + SetSizer(m_sizer_body); Layout(); Fit(); @@ -1665,24 +1773,62 @@ InputIpAddressDialog::InputIpAddressDialog(wxWindow* parent) Move(wxPoint(GetScreenPosition().x, GetScreenPosition().y - FromDIP(50))); wxGetApp().UpdateDlgDarkUI(this); - Bind(EVT_CHECK_IP_ADDRESS_FAILED, &InputIpAddressDialog::on_check_ip_address_failed, this); + closeTimer = new wxTimer(); + closeTimer->SetOwner(this); + Bind(wxEVT_TIMER, &InputIpAddressDialog::OnTimer, this); + + //Bind(EVT_CHECK_IP_ADDRESS_FAILED, &InputIpAddressDialog::on_check_ip_address_failed, this); Bind(EVT_CLOSE_IPADDRESS_DLG, [this](auto& e) { m_status_bar->reset(); EndModal(wxID_YES); }); - Bind(wxEVT_CLOSE_WINDOW, [this](auto& e) {on_cancel();}); + Bind(wxEVT_CLOSE_WINDOW, [this](auto& e) { + on_cancel(); + closeTimer->Stop(); + }); + Bind(EVT_UPDATE_TEXT_MSG, &InputIpAddressDialog::update_test_msg_event, this); + Bind(EVT_CHECK_IP_ADDRESS_LAYOUT, [this](auto& e) { + int mode = e.GetInt(); + update_test_msg(wxEmptyString, true); + switch_input_panel(mode); + Layout(); + Fit(); + }); +} + +void InputIpAddressDialog::switch_input_panel(int index) +{ + m_button_manual_setup->Hide(); + if (index == 0) { + ip_input_top_panel->Show(); + ip_input_bot_panel->Hide(); + m_step_icon_panel3->Hide(); + m_tip3->Hide(); + } else { + ip_input_top_panel->Hide(); + ip_input_bot_panel->Show(); + m_step_icon_panel3->Show(); + m_tip3->Show(); + + m_button_ok->Enable(false); + m_button_ok->SetBackgroundColor(wxColour(0x90, 0x90, 0x90)); + m_button_ok->SetBorderColor(wxColour(0x90, 0x90, 0x90)); + } + current_input_index = index; } void InputIpAddressDialog::on_cancel() { - m_worker->cancel_all(); - if (m_result == 0){ - this->EndModal(wxID_YES); - }else { - this->EndModal(wxID_CANCEL); + if (m_thread) { + m_thread->interrupt(); + m_thread->detach(); + delete m_thread; + m_thread = nullptr; } + + EndModal(wxID_CANCEL); } @@ -1696,6 +1842,7 @@ void InputIpAddressDialog::set_machine_obj(MachineObject* obj) m_obj = obj; m_input_ip->GetTextCtrl()->SetLabelText(m_obj->dev_ip); m_input_access_code->GetTextCtrl()->SetLabelText(m_obj->get_access_code()); + m_input_printer_name->GetTextCtrl()->SetLabelText(m_obj->dev_name); std::string img_str = DeviceManager::get_printer_diagram_img(m_obj->printer_type); auto diagram_bmp = create_scaled_bitmap(img_str + "_en", this, 198); @@ -1739,9 +1886,13 @@ void InputIpAddressDialog::update_test_msg(wxString msg,bool connected) m_test_wrong_msg->SetLabelText(msg); m_test_wrong_msg->SetMinSize(wxSize(FromDIP(352), -1)); m_test_wrong_msg->SetMaxSize(wxSize(FromDIP(352), -1)); - } - - + if (current_input_index == 0) { + m_button_manual_setup->Show(); + m_button_manual_setup->Enable(); + } + wxCommandEvent e; + on_text(e); + } } Layout(); @@ -1768,79 +1919,141 @@ void InputIpAddressDialog::on_ok(wxMouseEvent& evt) { m_test_right_msg->Hide(); m_test_wrong_msg->Hide(); - m_img_step3->Hide(); - m_tip4->Hide(); m_trouble_shoot->Hide(); - Layout(); - Fit(); - wxString ip = m_input_ip->GetTextCtrl()->GetValue(); - wxString str_access_code = m_input_access_code->GetTextCtrl()->GetValue(); + std::string str_ip = m_input_ip->GetTextCtrl()->GetValue().ToStdString(); + std::string str_access_code = m_input_access_code->GetTextCtrl()->GetValue().ToStdString(); + std::string str_name = m_input_printer_name->GetTextCtrl()->GetValue().Strip(wxString::both).ToStdString(); + // Serial number should not contain lower case letters, and bambu_network plugin crashes + // if user entered the wrong serial number, so we call `Upper()` here. + std::string str_sn = m_input_sn->GetTextCtrl()->GetValue().Strip(wxString::both).Upper().ToStdString(); + std::string str_model_id = ""; - //check support function - if (!m_obj) return; - if (!m_obj->is_support_send_to_sdcard) { - wxString input_str = wxString::Format("%s|%s", ip, str_access_code); - auto event = wxCommandEvent(EVT_ENTER_IP_ADDRESS); - event.SetString(input_str); - event.SetEventObject(this); - wxPostEvent(this, event); - - auto event_close = wxCommandEvent(EVT_CLOSE_IPADDRESS_DLG); - event_close.SetEventObject(this); - wxPostEvent(this, event_close); - return; + auto it = m_models_map.right.find(m_input_modelID->GetStringSelection().ToStdString()); + if (it != m_models_map.right.end()) { + str_model_id = it->get_left(); } + m_button_manual_setup->Enable(false); + m_button_manual_setup->SetBackgroundColor(wxColour(0x90, 0x90, 0x90)); + m_button_manual_setup->SetBorderColor(wxColour(0x90, 0x90, 0x90)); m_button_ok->Enable(false); m_button_ok->SetBackgroundColor(wxColour(0x90, 0x90, 0x90)); m_button_ok->SetBorderColor(wxColour(0x90, 0x90, 0x90)); - m_worker->wait_for_idle(); + Refresh(); + Layout(); + Fit(); + m_thread = new boost::thread(boost::bind(&InputIpAddressDialog::workerThreadFunc, this, str_ip, str_access_code, str_sn, str_model_id, str_name)); +} - m_status_bar->reset(); - m_status_bar->set_prog_block(); - m_status_bar->set_cancel_callback_fina([this]() { - BOOST_LOG_TRIVIAL(info) << "print_job: enter canceled"; - m_worker->cancel_all(); - }); +void InputIpAddressDialog::update_test_msg_event(wxCommandEvent& evt) +{ + wxString text = evt.GetString(); + bool beconnect = evt.GetInt(); + update_test_msg(text, beconnect); + Layout(); + Fit(); +} +void InputIpAddressDialog::post_update_test_msg(wxString text, bool beconnect) +{ + wxCommandEvent event(EVT_UPDATE_TEXT_MSG); + event.SetEventObject(this); + event.SetString(text); + event.SetInt(beconnect); + wxPostEvent(this, event); +} - auto m_send_job = std::make_unique(m_obj->dev_id); - m_send_job->m_dev_ip = ip.ToStdString(); - m_send_job->m_access_code = str_access_code.ToStdString(); +void InputIpAddressDialog::workerThreadFunc(std::string str_ip, std::string str_access_code, std::string sn, std::string model_id, std::string name) +{ + post_update_test_msg(_L("connecting..."), true); + detectResult detectData; + auto result = -1; + if (current_input_index == 0) { -#if !BBL_RELEASE_TO_PUBLIC - m_send_job->m_local_use_ssl_for_mqtt = wxGetApp().app_config->get("enable_ssl_for_mqtt") == "true" ? true : false; - m_send_job->m_local_use_ssl_for_ftp = wxGetApp().app_config->get("enable_ssl_for_ftp") == "true" ? true : false; +#ifdef __APPLE__ + result = -3; #else - m_send_job->m_local_use_ssl_for_mqtt = m_obj->local_use_ssl_for_mqtt; - m_send_job->m_local_use_ssl_for_ftp = m_obj->local_use_ssl_for_ftp; + result = wxGetApp().getAgent()->bind_detect(str_ip, "secure", detectData); #endif - m_send_job->connection_type = m_obj->connection_type(); - m_send_job->cloud_print_only = true; - m_send_job->has_sdcard = m_obj->has_sdcard(); - m_send_job->set_check_mode(); - m_send_job->set_project_name("verify_job"); + } else { + result = 0; + detectData.model_id = model_id; + detectData.dev_name = name; + detectData.dev_id = sn; + detectData.connect_type = "lan"; + detectData.bind_state = "free"; + } - m_send_job->on_check_ip_address_fail([this](int result) { - this->check_ip_address_failed(result); - }); + if (result < 0) { + post_update_test_msg(wxEmptyString, true); + if (result == -1) { + post_update_test_msg(_L("Failed to connect to printer."), false); + } + else if (result == -2) { + post_update_test_msg(_L("Failed to publish login request."), false); + } + else if (result == -3) { + wxCommandEvent event(EVT_CHECK_IP_ADDRESS_LAYOUT); + event.SetEventObject(this); + event.SetInt(1); + wxPostEvent(this, event); + } + return; + } - m_send_job->on_check_ip_address_success([this, ip, str_access_code]() { - wxString input_str = wxString::Format("%s|%s", ip, str_access_code); - auto event = wxCommandEvent(EVT_ENTER_IP_ADDRESS); - event.SetString(input_str); - event.SetEventObject(this); + if (detectData.bind_state == "occupied") { + post_update_test_msg(wxEmptyString, true); + post_update_test_msg(_L("The printer has already been bound."), false); + return; + } + + if (detectData.connect_type == "cloud") { + post_update_test_msg(wxEmptyString, true); + post_update_test_msg(_L("The printer mode is incorrect, please switch to LAN Only."), false); + return; + } + + CallAfter([this, detectData, str_ip, str_access_code]() { + DeviceManager* dev = wxGetApp().getDeviceManager(); + BBLocalMachine machine; + machine.dev_name = detectData.dev_name; + machine.dev_ip = str_ip; + machine.dev_id = detectData.dev_id; + machine.printer_type = detectData.model_id; + m_obj = dev->insert_local_device(machine, detectData.connect_type, detectData.bind_state, detectData.version, str_access_code); + + + if (m_obj) { + m_obj->set_user_access_code(str_access_code); + wxGetApp().getDeviceManager()->set_selected_machine(m_obj->dev_id, true); + } + + + closeCount = 1; + + post_update_test_msg(wxEmptyString, true); + post_update_test_msg(wxString::Format(_L("Connecting to printer... The dialog will close later"), closeCount), true); + +#ifdef __APPLE__ + wxCommandEvent event(EVT_CLOSE_IPADDRESS_DLG); wxPostEvent(this, event); - m_result = 0; - - update_test_msg(_L("IP and Access Code Verified! You may close the window"), true); - +#else + closeTimer->Start(1000); +#endif }); +} - replace_job(*m_worker, std::move(m_send_job)); +void InputIpAddressDialog::OnTimer(wxTimerEvent& event) { + if (closeCount > 0) { + closeCount--; + } + else { + closeTimer->Stop(); + EndModal(wxID_CLOSE); + } } void InputIpAddressDialog::check_ip_address_failed(int result) @@ -1858,9 +2071,6 @@ void InputIpAddressDialog::on_check_ip_address_failed(wxCommandEvent& evt) } else { update_test_msg(_L("Connection failed! If your IP and Access Code is correct, \nplease move to step 3 for troubleshooting network issues"), false); - m_img_step3->Show(); - m_tip4->Show(); - //m_trouble_shoot->Show(); Layout(); Fit(); } @@ -1872,22 +2082,48 @@ void InputIpAddressDialog::on_check_ip_address_failed(wxCommandEvent& evt) m_button_ok->SetBackgroundColor(btn_bg_green); } -void InputIpAddressDialog::on_text(wxCommandEvent& evt) +void InputIpAddressDialog::on_text(wxCommandEvent &evt) { - auto str_ip = m_input_ip->GetTextCtrl()->GetValue(); - auto str_access_code = m_input_access_code->GetTextCtrl()->GetValue(); + auto str_ip = m_input_ip->GetTextCtrl()->GetValue(); + auto str_access_code = m_input_access_code->GetTextCtrl()->GetValue(); + auto str_name = m_input_printer_name->GetTextCtrl()->GetValue().Strip(wxString::both); + auto str_sn = m_input_sn->GetTextCtrl()->GetValue().Strip(wxString::both); + bool invalid_access_code = true; - if (isIp(str_ip.ToStdString()) && str_access_code.Length() == 8) { - m_button_ok->Enable(true); - StateColor btn_bg_green(std::pair(wxColour(0, 137, 123), StateColor::Pressed), std::pair(wxColour(38, 166, 154), StateColor::Hovered), - std::pair(AMS_CONTROL_BRAND_COLOUR, StateColor::Normal)); - m_button_ok->SetTextColor(StateColor::darkModeColorFor("#FFFFFE")); - m_button_ok->SetBackgroundColor(btn_bg_green); + for (char c : str_access_code) { + if (!('0' <= c && c <= '9' || 'a' <= c && c <= 'z' || 'A' <= c && c <= 'Z')) { + invalid_access_code = false; + return; + } } - else { - m_button_ok->Enable(false); - m_button_ok->SetBackgroundColor(wxColour(0x90, 0x90, 0x90)); - m_button_ok->SetBorderColor(wxColour(0x90, 0x90, 0x90)); + + const auto enable_btn = [](Button* btn, bool enabled) { + btn->Enable(enabled); + if (enabled) { + StateColor btn_bg_green(std::pair(wxColour(0, 137, 123), StateColor::Pressed), std::pair(wxColour(38, 166, 154), StateColor::Hovered), + std::pair(AMS_CONTROL_BRAND_COLOUR, StateColor::Normal)); + btn->SetTextColor(StateColor::darkModeColorFor("#FFFFFE")); + btn->SetBackgroundColor(btn_bg_green); + } else { + btn->SetBackgroundColor(wxColour(0x90, 0x90, 0x90)); + btn->SetBorderColor(wxColour(0x90, 0x90, 0x90)); + } + }; + + if (isIp(str_ip.ToStdString()) && str_access_code.Length() == 8 && invalid_access_code) { + enable_btn(m_button_manual_setup, true); + enable_btn(m_button_ok, true); + } else { + enable_btn(m_button_manual_setup, false); + enable_btn(m_button_ok, false); + } + + if (current_input_index == 1){ + if (!str_name.IsEmpty() && str_sn.length() == 15) { + enable_btn(m_button_ok, true); + } else { + enable_btn(m_button_ok, false); + } } } diff --git a/src/slic3r/GUI/ReleaseNote.hpp b/src/slic3r/GUI/ReleaseNote.hpp index d8ad66644c..9f211c86db 100644 --- a/src/slic3r/GUI/ReleaseNote.hpp +++ b/src/slic3r/GUI/ReleaseNote.hpp @@ -38,8 +38,6 @@ #include #include -#include "Jobs/Worker.hpp" - namespace Slic3r { namespace GUI { wxDECLARE_EVENT(EVT_SECONDARY_CHECK_CONFIRM, wxCommandEvent); @@ -52,6 +50,7 @@ wxDECLARE_EVENT(EVT_UPDATE_NOZZLE, wxCommandEvent); wxDECLARE_EVENT(EVT_LOAD_VAMS_TRAY, wxCommandEvent); wxDECLARE_EVENT(EVT_JUMP_TO_HMS, wxCommandEvent); wxDECLARE_EVENT(EVT_JUMP_TO_LIVEVIEW, wxCommandEvent); +wxDECLARE_EVENT(EVT_UPDATE_TEXT_MSG, wxCommandEvent); class ReleaseNoteDialog : public DPIDialog { @@ -191,7 +190,7 @@ public: const wxSize& size = wxDefaultSize, long style = wxCLOSE_BOX | wxCAPTION ); - void update_text_image(wxString text, wxString image_url); + void update_text_image(const wxString& text, const wxString& error_code,const wxString& image_url); void on_show(); void on_hide(); void update_title_style(wxString title, std::vector style, wxWindow* parent = nullptr); @@ -208,6 +207,7 @@ public: wxWebRequest web_request; wxStaticBitmap* m_error_prompt_pic_static; Label* m_staticText_release_note{ nullptr }; + Label* m_staticText_error_code{ nullptr }; wxBoxSizer* m_sizer_main; wxBoxSizer* m_sizer_button; wxScrolledWindow* m_vebview_release_note{ nullptr }; @@ -276,8 +276,12 @@ class InputIpAddressDialog : public DPIDialog public: wxString comfirm_before_enter_text; wxString comfirm_after_enter_text; + wxString comfirm_last_enter_text; + + boost::thread* m_thread{nullptr}; std::string m_ip; + wxWindow* m_step_icon_panel3{ nullptr }; Label* m_tip1{ nullptr }; Label* m_tip2{ nullptr }; Label* m_tip3{ nullptr }; @@ -286,23 +290,35 @@ public: ~InputIpAddressDialog(); MachineObject* m_obj{nullptr}; + wxPanel * ip_input_top_panel{ nullptr }; + wxPanel * ip_input_bot_panel{ nullptr }; Button* m_button_ok{ nullptr }; + Button* m_button_manual_setup{ nullptr }; Label* m_tips_ip{ nullptr }; Label* m_tips_access_code{ nullptr }; + Label* m_tips_sn{nullptr}; + Label* m_tips_modelID{nullptr}; Label* m_test_right_msg{ nullptr }; Label* m_test_wrong_msg{ nullptr }; TextInput* m_input_ip{ nullptr }; TextInput* m_input_access_code{ nullptr }; + TextInput* m_input_printer_name{ nullptr }; + TextInput* m_input_sn{ nullptr }; + ComboBox* m_input_modelID{ nullptr }; wxStaticBitmap* m_img_help{ nullptr }; wxStaticBitmap* m_img_step1{ nullptr }; wxStaticBitmap* m_img_step2{ nullptr }; wxStaticBitmap* m_img_step3{ nullptr }; wxHyperlinkCtrl* m_trouble_shoot{ nullptr }; + wxTimer* closeTimer{ nullptr }; + int closeCount{3}; bool m_show_access_code{ false }; int m_result; - std::shared_ptr m_status_bar; - std::unique_ptr m_worker; + int current_input_index {0}; + std::shared_ptr m_status_bar; + boost::bimaps::bimap m_models_map; + void switch_input_panel(int index); void on_cancel(); void update_title(wxString title); void set_machine_obj(MachineObject* obj); @@ -311,6 +327,10 @@ public: void check_ip_address_failed(int result); void on_check_ip_address_failed(wxCommandEvent& evt); void on_ok(wxMouseEvent& evt); + void update_test_msg_event(wxCommandEvent &evt); + void post_update_test_msg(wxString text, bool beconnect); + void workerThreadFunc(std::string str_ip, std::string str_access_code, std::string sn, std::string model_id, std::string name); + void OnTimer(wxTimerEvent& event); void on_text(wxCommandEvent& evt); void on_dpi_changed(const wxRect& suggested_rect) override; }; @@ -320,6 +340,7 @@ wxDECLARE_EVENT(EVT_CLOSE_IPADDRESS_DLG, wxCommandEvent); wxDECLARE_EVENT(EVT_CHECKBOX_CHANGE, wxCommandEvent); wxDECLARE_EVENT(EVT_ENTER_IP_ADDRESS, wxCommandEvent); wxDECLARE_EVENT(EVT_CHECK_IP_ADDRESS_FAILED, wxCommandEvent); +wxDECLARE_EVENT(EVT_CHECK_IP_ADDRESS_LAYOUT, wxCommandEvent); }} // namespace Slic3r::GUI diff --git a/src/slic3r/GUI/SceneRaycaster.hpp b/src/slic3r/GUI/SceneRaycaster.hpp index 5b36efc0ea..3d4473197c 100644 --- a/src/slic3r/GUI/SceneRaycaster.hpp +++ b/src/slic3r/GUI/SceneRaycaster.hpp @@ -52,7 +52,7 @@ public: enum class EIdBase { Bed = 0, - Volume = 1000, + Volume = 1000, // Must be smaller than PartPlateList::MAX_PLATES_COUNT * PartPlate::GRABBER_COUNT Gizmo = 1000000, FallbackGizmo = 2000000 }; diff --git a/src/slic3r/GUI/SelectMachine.cpp b/src/slic3r/GUI/SelectMachine.cpp index e6b2ac81c5..e10f6c051d 100644 --- a/src/slic3r/GUI/SelectMachine.cpp +++ b/src/slic3r/GUI/SelectMachine.cpp @@ -400,11 +400,13 @@ SelectMachinePopup::SelectMachinePopup(wxWindow *parent) m_sizer_other_devices = new wxBoxSizer(wxVERTICAL); - m_panel_ping_code = new PinCodePanel(m_scrolledWindow, wxID_ANY, wxDefaultPosition, SELECT_MACHINE_ITEM_SIZE); + m_panel_ping_code = new PinCodePanel(m_scrolledWindow, 0, wxID_ANY, wxDefaultPosition, SELECT_MACHINE_ITEM_SIZE); + m_panel_direct_connection = new PinCodePanel(m_scrolledWindow, 1, wxID_ANY, wxDefaultPosition, SELECT_MACHINE_ITEM_SIZE); m_sizxer_scrolledWindow->Add(own_title, 0, wxEXPAND | wxLEFT, FromDIP(15)); m_sizxer_scrolledWindow->Add(m_sizer_my_devices, 0, wxEXPAND, 0); m_sizxer_scrolledWindow->Add(m_panel_ping_code, 0, wxEXPAND, 0); + m_sizxer_scrolledWindow->Add(m_panel_direct_connection, 0, wxEXPAND, 0); m_sizxer_scrolledWindow->Add(other_title, 0, wxEXPAND | wxLEFT, FromDIP(15)); m_sizxer_scrolledWindow->Add(m_sizer_other_devices, 0, wxEXPAND, 0); @@ -640,6 +642,7 @@ void SelectMachinePopup::update_other_devices() wxBoxSizer* placeholder_sizer = new wxBoxSizer(wxVERTICAL); m_hyperlink = new wxHyperlinkCtrl(m_placeholder_panel, wxID_ANY, _L("Can't find my devices?"), wxT("https://wiki.bambulab.com/en/software/bambu-studio/failed-to-connect-printer"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE); + m_hyperlink->SetNormalColour(StateColor::darkModeColorFor("#009789")); placeholder_sizer->Add(m_hyperlink, 0, wxALIGN_CENTER | wxALL, 5); @@ -738,6 +741,11 @@ void SelectMachinePopup::update_user_devices() op->Bind(EVT_UNBIND_MACHINE, [this, dev, mobj](wxCommandEvent& e) { dev->set_selected_machine(""); if (mobj) { + AppConfig* config = wxGetApp().app_config; + if (config) { + config->erase_local_machine(mobj->dev_id); + } + mobj->set_access_code(""); mobj->erase_user_access_code(); } @@ -879,14 +887,16 @@ void SelectMachinePopup::OnLeftUp(wxMouseEvent &event) //pin code auto pc_rect = m_panel_ping_code->ClientToScreen(wxPoint(0, 0)); if (mouse_pos.x > pc_rect.x && mouse_pos.y > pc_rect.y && mouse_pos.x < (pc_rect.x + m_panel_ping_code->GetSize().x) && mouse_pos.y < (pc_rect.y + m_panel_ping_code->GetSize().y)) { - /*wxMouseEvent event(wxEVT_LEFT_UP); - auto tag_pos = m_panel_ping_code->ScreenToClient(mouse_pos); - event.SetPosition(tag_pos); - event.SetEventObject(m_panel_ping_code); - wxPostEvent(m_panel_ping_code, event);*/ wxGetApp().popup_ping_bind_dialog(); } + //bind with access code + auto dc_rect = m_panel_direct_connection->ClientToScreen(wxPoint(0, 0)); + if (mouse_pos.x > dc_rect.x && mouse_pos.y > dc_rect.y && mouse_pos.x < (dc_rect.x + m_panel_direct_connection->GetSize().x) && mouse_pos.y < (dc_rect.y + m_panel_direct_connection->GetSize().y)) { + InputIpAddressDialog dlgo; + dlgo.ShowModal(); + } + //hyper link auto h_rect = m_hyperlink->ClientToScreen(wxPoint(0, 0)); if (mouse_pos.x > h_rect.x && mouse_pos.y > h_rect.y && mouse_pos.x < (h_rect.x + m_hyperlink->GetSize().x) && mouse_pos.y < (h_rect.y + m_hyperlink->GetSize().y)) { @@ -1450,30 +1460,6 @@ void SelectMachineDialog::init_bind() m_comboBox_printer->SetValue(obj->dev_name + "(LAN)"); } } - /*else if (e.GetInt() == 1 && (m_print_type == PrintFromType::FROM_SDCARD_VIEW)) { - on_send_print(); - } - else if (e.GetInt() == -2 && (m_print_type == PrintFromType::FROM_SDCARD_VIEW)) { - show_status(PrintDialogStatus::PrintStatusInit); - prepare_mode(); - MessageDialog msg_wingow(nullptr, _L("Printer local connection failed, please try again."), "", wxAPPLY | wxOK); - msg_wingow.ShowModal(); - } - else if (e.GetInt() == 5 && (m_print_type == PrintFromType::FROM_SDCARD_VIEW)) { - show_status(PrintDialogStatus::PrintStatusInit); - prepare_mode(); - - DeviceManager* dev = Slic3r::GUI::wxGetApp().getDeviceManager(); - if (!dev) return; - ConnectPrinterDialog dlg(wxGetApp().mainframe, wxID_ANY, _L("Input access code")); - dlg.go_connect_printer(false); - if (dev->get_selected_machine()) { - dlg.set_machine_object(dev->get_selected_machine()); - if (dlg.ShowModal() == wxID_OK) { - this->connect_printer_mqtt(); - } - } - }*/ }); m_bitmap_last_plate->Bind(wxEVT_LEFT_DOWN, [this](auto& e) { @@ -1566,10 +1552,10 @@ wxWindow *SelectMachineDialog::create_ams_checkbox(wxString title, wxWindow *par sizer_check->Add(check, 0, wxBOTTOM | wxEXPAND | wxTOP, FromDIP(5)); sizer_checkbox->Add(sizer_check, 0, wxEXPAND, FromDIP(5)); - sizer_checkbox->Add(0, 0, 0, wxEXPAND | wxLEFT, FromDIP(11)); + sizer_checkbox->Add(0, 0, 0, wxEXPAND | wxLEFT, FromDIP(7)); auto text = new wxStaticText(checkbox, wxID_ANY, title, wxDefaultPosition, wxDefaultSize, 0); - text->SetFont(::Label::Body_13); + text->SetFont(::Label::Body_12); text->SetForegroundColour(StateColor::darkModeColorFor(wxColour("#323A3C"))); text->Wrap(-1); sizer_checkbox->Add(text, 0, wxALIGN_CENTER, 0); @@ -4579,16 +4565,21 @@ void SelectMachineDialog::sys_color_changed() bool SelectMachineDialog::Show(bool show) { - show_status(PrintDialogStatus::PrintStatusInit); - // set default value when show this dialog if (show) { + m_refresh_timer->Start(LIST_REFRESH_INTERVAL); + show_status(PrintDialogStatus::PrintStatusInit); wxGetApp().UpdateDlgDarkUI(this); wxGetApp().reset_to_active(); set_default(); update_user_machine_list(); + + Layout(); + Fit(); + CenterOnParent(); } else { + m_refresh_timer->Stop(); DeviceManager* dev = Slic3r::GUI::wxGetApp().getDeviceManager(); if (dev) { MachineObject* obj_ = dev->get_selected_machine(); @@ -4600,15 +4591,6 @@ bool SelectMachineDialog::Show(bool show) } } } - - if (show) { - m_refresh_timer->Start(LIST_REFRESH_INTERVAL); - } else { - m_refresh_timer->Stop(); - } - Layout(); - Fit(); - if (show) { CenterOnParent(); } return DPIDialog::Show(show); } @@ -4854,7 +4836,7 @@ void EditDevNameDialog::on_edit_name(wxCommandEvent &e) ThumbnailPanel::~ThumbnailPanel() {} - PinCodePanel::PinCodePanel(wxWindow* parent, wxWindowID winid /*= wxID_ANY*/, const wxPoint& pos /*= wxDefaultPosition*/, const wxSize& size /*= wxDefaultSize*/) + PinCodePanel::PinCodePanel(wxWindow* parent, int type, wxWindowID winid /*= wxID_ANY*/, const wxPoint& pos /*= wxDefaultPosition*/, const wxSize& size /*= wxDefaultSize*/) { wxPanel::Create(parent, winid, pos, SELECT_MACHINE_ITEM_SIZE); Bind(wxEVT_PAINT, &PinCodePanel::OnPaint, this); @@ -4862,6 +4844,7 @@ void EditDevNameDialog::on_edit_name(wxCommandEvent &e) SetMaxSize(SELECT_MACHINE_ITEM_SIZE); SetMinSize(SELECT_MACHINE_ITEM_SIZE); + m_type = type; m_bitmap = ScalableBitmap(this, "bind_device_ping_code",10); this->Bind(wxEVT_ENTER_WINDOW, &PinCodePanel::on_mouse_enter, this); @@ -4899,12 +4882,15 @@ void EditDevNameDialog::on_edit_name(wxCommandEvent &e) void PinCodePanel::doRender(wxDC& dc) { auto size = GetSize(); - dc.DrawBitmap(m_bitmap.bmp(), wxPoint(FromDIP(20), (size.y - m_bitmap.GetBmpSize().y) / 2)); + dc.DrawBitmap(m_bitmap.bmp(), wxPoint(FromDIP(12), (size.y - m_bitmap.GetBmpSize().y) / 2)); dc.SetFont(::Label::Head_13); dc.SetTextForeground(StateColor::darkModeColorFor(wxColour("#262E30"))); // ORCA fix text not visible on dark theme - wxString txt = _L("Bind with Pin Code"); + wxString txt; + if (m_type == 0) { txt = _L("Bind with Pin Code"); } + else if (m_type == 1) { txt = _L("Bind with Access Code"); } + auto txt_size = dc.GetTextExtent(txt); - dc.DrawText(txt, wxPoint(FromDIP(40), (size.y - txt_size.y) / 2)); + dc.DrawText(txt, wxPoint(FromDIP(28), (size.y - txt_size.y) / 2)); if (m_hover) { dc.SetPen(SELECT_MACHINE_BRAND); @@ -4927,7 +4913,13 @@ void EditDevNameDialog::on_edit_name(wxCommandEvent &e) void PinCodePanel::on_mouse_left_up(wxMouseEvent& evt) { - wxGetApp().popup_ping_bind_dialog(); + if (m_type == 0) { + wxGetApp().popup_ping_bind_dialog(); + } + else if (m_type == 1) { + InputIpAddressDialog dlgo; + dlgo.ShowModal(); + } } }} // namespace Slic3r::GUI diff --git a/src/slic3r/GUI/SelectMachine.hpp b/src/slic3r/GUI/SelectMachine.hpp index 16da5e05d5..6752e2a869 100644 --- a/src/slic3r/GUI/SelectMachine.hpp +++ b/src/slic3r/GUI/SelectMachine.hpp @@ -195,7 +195,7 @@ protected: #define SELECT_MACHINE_POPUP_SIZE wxSize(FromDIP(216), FromDIP(364)) #define SELECT_MACHINE_LIST_SIZE wxSize(FromDIP(212), FromDIP(360)) -#define SELECT_MACHINE_ITEM_SIZE wxSize(FromDIP(182), FromDIP(35)) +#define SELECT_MACHINE_ITEM_SIZE wxSize(FromDIP(190), FromDIP(35)) #define SELECT_MACHINE_GREY900 wxColour(38, 46, 48) #define SELECT_MACHINE_GREY600 wxColour(144,144,144) #define SELECT_MACHINE_GREY400 wxColour(206, 206, 206) @@ -214,6 +214,7 @@ class PinCodePanel : public wxPanel { public: PinCodePanel(wxWindow* parent, + int type, wxWindowID winid = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize); @@ -221,6 +222,7 @@ public: ScalableBitmap m_bitmap; bool m_hover{false}; + int m_type{0}; void OnPaint(wxPaintEvent& event); void render(wxDC& dc); @@ -254,6 +256,7 @@ private: int m_my_devices_count{0}; int m_other_devices_count{0}; PinCodePanel* m_panel_ping_code{nullptr}; + PinCodePanel* m_panel_direct_connection{nullptr}; wxWindow* m_placeholder_panel{nullptr}; wxHyperlinkCtrl* m_hyperlink{nullptr}; Label* m_ping_code_text{nullptr}; diff --git a/src/slic3r/GUI/Selection.cpp b/src/slic3r/GUI/Selection.cpp index 79feb0e1fc..68f1387492 100644 --- a/src/slic3r/GUI/Selection.cpp +++ b/src/slic3r/GUI/Selection.cpp @@ -2077,6 +2077,7 @@ void Selection::copy_to_clipboard() dst_object->sla_support_points = src_object->sla_support_points; dst_object->sla_points_status = src_object->sla_points_status; dst_object->sla_drain_holes = src_object->sla_drain_holes; + dst_object->brim_points = src_object->brim_points; dst_object->layer_config_ranges = src_object->layer_config_ranges; // #ys_FIXME_experiment dst_object->layer_height_profile.assign(src_object->layer_height_profile); dst_object->origin_translation = src_object->origin_translation; diff --git a/src/slic3r/GUI/StatusPanel.cpp b/src/slic3r/GUI/StatusPanel.cpp index 8a7a37c17a..486f971b00 100644 --- a/src/slic3r/GUI/StatusPanel.cpp +++ b/src/slic3r/GUI/StatusPanel.cpp @@ -2176,9 +2176,9 @@ void StatusPanel::show_recenter_dialog() { obj->command_go_home(); } -void StatusPanel::show_error_message(MachineObject* obj, wxString msg, std::string print_error_str, wxString image_url, std::vector used_button) +void StatusPanel::show_error_message(MachineObject *obj, bool is_exist, wxString msg, std::string print_error_str, wxString image_url, std::vector used_button) { - if (msg.IsEmpty()) { + if (is_exist && msg.IsEmpty()) { error_info_reset(); } else { m_project_task_panel->show_error_msg(msg); @@ -2190,7 +2190,7 @@ void StatusPanel::show_error_message(MachineObject* obj, wxString msg, std::stri } m_print_error_dlg->update_title_style(_L("Error"), used_button, this); - m_print_error_dlg->update_text_image(msg, image_url); + m_print_error_dlg->update_text_image(msg, print_error_str, image_url); m_print_error_dlg->Bind(EVT_SECONDARY_CHECK_CONFIRM, [this, obj](wxCommandEvent& e) { if (obj) { obj->command_clean_print_error(obj->subtask_id_, obj->print_error); @@ -2212,6 +2212,11 @@ void StatusPanel::show_error_message(MachineObject* obj, wxString msg, std::stri auto it_resume = std::find(message_containing_resume.begin(), message_containing_resume.end(), print_error_str); BOOST_LOG_TRIVIAL(info) << "show print error! error_msg = " << msg; + + wxDateTime now = wxDateTime::Now(); + wxString show_time = now.Format("%H%M%d"); + wxString error_code_msg = wxString::Format("%S\n[%S %S]", msg, print_error_str, show_time); + if (m_print_error_dlg_no_action == nullptr) { m_print_error_dlg_no_action = new SecondaryCheckDialog(this->GetParent(), wxID_ANY, _L("Warning"), SecondaryCheckDialog::ButtonStyle::ONLY_CONFIRM); } @@ -2231,7 +2236,7 @@ void StatusPanel::show_error_message(MachineObject* obj, wxString msg, std::stri else { m_print_error_dlg_no_action->update_title_style(_L("Warning"), SecondaryCheckDialog::ButtonStyle::ONLY_CONFIRM, this); } - m_print_error_dlg_no_action->update_text(msg); + m_print_error_dlg_no_action->update_text(error_code_msg); m_print_error_dlg_no_action->Bind(EVT_SECONDARY_CHECK_CONFIRM, [this, obj](wxCommandEvent& e) { if (obj) { obj->command_clean_print_error(obj->subtask_id_, obj->print_error); @@ -2254,7 +2259,7 @@ void StatusPanel::update_error_message() { if (obj->print_error <= 0) { before_error_code = obj->print_error; - show_error_message(obj, wxEmptyString); + show_error_message(obj, true, wxEmptyString); return; } else if (before_error_code != obj->print_error && obj->print_error != skip_print_error) { before_error_code = obj->print_error; @@ -2263,27 +2268,17 @@ void StatusPanel::update_error_message() char buf[32]; ::sprintf(buf, "%08X", obj->print_error); std::string print_error_str = std::string(buf); - if (print_error_str.size() > 4) { - print_error_str.insert(4, " "); - } + if (print_error_str.size() > 4) { print_error_str.insert(4, " "); } - wxString error_msg = wxGetApp().get_hms_query()->query_print_error_msg(obj->print_error); + wxString error_msg; + bool is_errocode_exist = wxGetApp().get_hms_query()->query_print_error_msg(obj->print_error, error_msg); std::vector used_button; - wxString error_image_url = wxGetApp().get_hms_query()->query_print_error_url_action(obj->print_error,obj->dev_id, used_button); + wxString error_image_url = wxGetApp().get_hms_query()->query_print_error_url_action(obj->print_error, obj->dev_id, used_button); // special case - if (print_error_str == "0300 8003" || print_error_str == "0300 8002" || print_error_str == "0300 800A") + if (print_error_str == "0300 8003" || print_error_str == "0300 8002" || print_error_str == "0300 800A") { used_button.emplace_back(PrintErrorDialog::PrintErrorButton::JUMP_TO_LIVEVIEW); - if (!error_msg.IsEmpty()) { - wxDateTime now = wxDateTime::Now(); - wxString show_time = now.Format("%Y-%m-%d %H:%M:%S"); - - error_msg = wxString::Format("%s\n[%s %s]", - error_msg, - print_error_str, show_time); - show_error_message(obj, error_msg, print_error_str,error_image_url,used_button); - } else { - BOOST_LOG_TRIVIAL(info) << "show print error! error_msg is empty, print error = " << obj->print_error; } + show_error_message(obj, is_errocode_exist, error_msg, print_error_str, error_image_url, used_button); } } } @@ -3127,6 +3122,20 @@ void StatusPanel::update_subtask(MachineObject *obj) } else { m_project_task_panel->enable_pause_resume_button(true, "pause"); } + + // update printing stage + m_project_task_panel->update_left_time(obj->mc_left_time); + if (obj->subtask_) { + m_project_task_panel->update_stage_value(obj->get_curr_stage(), obj->subtask_->task_progress); + m_project_task_panel->update_progress_percent(wxString::Format("%d", obj->subtask_->task_progress), "%"); + m_project_task_panel->update_layers_num(true, wxString::Format(_L("Layer: %d/%d"), obj->curr_layer, obj->total_layers)); + + } else { + m_project_task_panel->update_stage_value(obj->get_curr_stage(), 0); + m_project_task_panel->update_progress_percent(NA_STR, wxEmptyString); + m_project_task_panel->update_layers_num(true, wxString::Format(_L("Layer: %s"), NA_STR)); + } + if (obj->is_printing_finished()) { obj->update_model_task(); m_project_task_panel->enable_abort_button(false); @@ -3171,19 +3180,6 @@ void StatusPanel::update_subtask(MachineObject *obj) m_project_task_panel->market_scoring_hide(); m_project_task_panel->get_request_failed_panel()->Hide(); } - // update printing stage - - m_project_task_panel->update_left_time(obj->mc_left_time); - if (obj->subtask_) { - m_project_task_panel->update_stage_value(obj->get_curr_stage(), obj->subtask_->task_progress); - m_project_task_panel->update_progress_percent(wxString::Format("%d", obj->subtask_->task_progress), "%"); - m_project_task_panel->update_layers_num(true, wxString::Format(_L("Layer: %d/%d"), obj->curr_layer, obj->total_layers)); - - } else { - m_project_task_panel->update_stage_value(obj->get_curr_stage(), 0); - m_project_task_panel->update_progress_percent(NA_STR, wxEmptyString); - m_project_task_panel->update_layers_num(true, wxString::Format(_L("Layer: %s"), NA_STR)); - } } m_project_task_panel->update_subtask_name(wxString::Format("%s", GUI::from_u8(obj->subtask_name))); @@ -3207,7 +3203,7 @@ void StatusPanel::update_subtask(MachineObject *obj) reset_printing_values(); } - this->Layout(); + Layout(); } void StatusPanel::update_cloud_subtask(MachineObject *obj) diff --git a/src/slic3r/GUI/StatusPanel.hpp b/src/slic3r/GUI/StatusPanel.hpp index 517367d7f3..e34bf908aa 100644 --- a/src/slic3r/GUI/StatusPanel.hpp +++ b/src/slic3r/GUI/StatusPanel.hpp @@ -527,7 +527,8 @@ protected: void on_subtask_pause_resume(wxCommandEvent &event); void on_subtask_abort(wxCommandEvent &event); void on_print_error_clean(wxCommandEvent &event); - void show_error_message(MachineObject* obj, wxString msg, std::string print_error_str = "",wxString image_url="",std::vector used_button=std::vector()); + void show_error_message( + MachineObject *obj, bool is_exist, wxString msg, std::string print_error_str = "", wxString image_url = "", std::vector used_button = std::vector()); void error_info_reset(); void show_recenter_dialog(); diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index 27a85e0276..3e710bed79 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -1665,6 +1665,13 @@ void Tab::on_value_change(const std::string& opt_key, const boost::any& value) wxGetApp().preset_bundle->export_selections(*wxGetApp().app_config); } + //Orca: disable purge_in_prime_tower if single_extruder_multi_material is disabled + if (opt_key == "single_extruder_multi_material" && m_config->opt_bool("single_extruder_multi_material") == false){ + DynamicPrintConfig new_conf = *m_config; + new_conf.set_key_value("purge_in_prime_tower", new ConfigOptionBool(false)); + m_config_manipulation.apply(m_config, &new_conf); + } + if (m_postpone_update_ui) { // It means that not all values are rolled to the system/last saved values jet. // And call of the update() can causes a redundant check of the config values, @@ -2105,8 +2112,10 @@ void TabPrint::build() optgroup->append_single_option_line("bridge_flow"); optgroup->append_single_option_line("internal_bridge_flow"); optgroup->append_single_option_line("bridge_density"); + optgroup->append_single_option_line("internal_bridge_density"); optgroup->append_single_option_line("thick_bridges"); optgroup->append_single_option_line("thick_internal_bridges"); + optgroup->append_single_option_line("enable_extra_bridge_layer"); optgroup->append_single_option_line("dont_filter_internal_bridges"); optgroup->append_single_option_line("counterbore_hole_bridging","counterbore-hole-bridging"); @@ -2138,6 +2147,8 @@ void TabPrint::build() optgroup = page->new_optgroup(L("Infill"), L"param_infill"); optgroup->append_single_option_line("sparse_infill_density"); optgroup->append_single_option_line("sparse_infill_pattern", "fill-patterns#infill types and their properties of sparse"); + optgroup->append_single_option_line("lattice_angle_1"); + optgroup->append_single_option_line("lattice_angle_2"); optgroup->append_single_option_line("infill_anchor_max"); optgroup->append_single_option_line("infill_anchor"); optgroup->append_single_option_line("internal_solid_infill_pattern"); @@ -2150,6 +2161,7 @@ void TabPrint::build() optgroup->append_single_option_line("solid_infill_direction"); optgroup->append_single_option_line("rotate_solid_infill_direction"); optgroup->append_single_option_line("bridge_angle"); + optgroup->append_single_option_line("internal_bridge_angle"); // ORCA: Internal bridge angle override optgroup->append_single_option_line("minimum_sparse_infill_area"); optgroup->append_single_option_line("infill_combination"); optgroup->append_single_option_line("infill_combination_max_layer_height"); @@ -2227,6 +2239,7 @@ void TabPrint::build() optgroup->append_single_option_line("support_type", "support#support-types"); optgroup->append_single_option_line("support_style", "support#support-styles"); optgroup->append_single_option_line("support_threshold_angle", "support#threshold-angle"); + optgroup->append_single_option_line("support_threshold_overlap", "support#threshold-angle"); optgroup->append_single_option_line("raft_first_layer_density"); optgroup->append_single_option_line("raft_first_layer_expansion"); optgroup->append_single_option_line("support_on_build_plate_only"); @@ -2315,6 +2328,7 @@ void TabPrint::build() optgroup->append_single_option_line("flush_into_support", "reduce-wasting-during-filament-change#wipe-into-support-enabled-by-default"); optgroup = page->new_optgroup(L("Advanced"), L"advanced"); optgroup->append_single_option_line("interlocking_beam"); + optgroup->append_single_option_line("interface_shells"); optgroup->append_single_option_line("mmu_segmented_region_max_width"); optgroup->append_single_option_line("mmu_segmented_region_interlocking_depth"); optgroup->append_single_option_line("interlocking_beam_width"); @@ -2348,11 +2362,18 @@ page = add_options_page(L("Others"), "custom-gcode_other"); // ORCA: icon only v optgroup->append_single_option_line("spiral_mode", "spiral-vase"); optgroup->append_single_option_line("spiral_mode_smooth", "spiral-vase#smooth"); optgroup->append_single_option_line("spiral_mode_max_xy_smoothing", "spiral-vase#max-xy-smoothing"); + optgroup->append_single_option_line("spiral_starting_flow_ratio", "spiral-vase#starting-flow-ratio"); + optgroup->append_single_option_line("spiral_finishing_flow_ratio", "spiral-vase#finishing-flow-ratio"); + optgroup->append_single_option_line("timelapse_type", "Timelapse"); optgroup->append_single_option_line("fuzzy_skin"); + optgroup->append_single_option_line("fuzzy_skin_noise_type"); optgroup->append_single_option_line("fuzzy_skin_point_distance"); optgroup->append_single_option_line("fuzzy_skin_thickness"); + optgroup->append_single_option_line("fuzzy_skin_scale"); + optgroup->append_single_option_line("fuzzy_skin_octaves"); + optgroup->append_single_option_line("fuzzy_skin_persistence"); optgroup->append_single_option_line("fuzzy_skin_first_layer"); optgroup = page->new_optgroup(L("G-code output"), L"param_gcode"); @@ -2381,20 +2402,19 @@ page = add_options_page(L("Others"), "custom-gcode_other"); // ORCA: icon only v option.opt.height = 25;//250; optgroup->append_single_option_line(option); -#if 1 - page = add_options_page(L("Dependencies"), "custom-gcode_advanced"); - optgroup = page->new_optgroup(L("Profile dependencies")); + // Orca: hide the dependencies tab for process for now. The UI is not ready yet. + // page = add_options_page(L("Dependencies"), "custom-gcode_advanced"); + // optgroup = page->new_optgroup(L("Profile dependencies")); - create_line_with_widget(optgroup.get(), "compatible_printers", "", [this](wxWindow* parent) { - return compatible_widget_create(parent, m_compatible_printers); - }); + // create_line_with_widget(optgroup.get(), "compatible_printers", "", [this](wxWindow* parent) { + // return compatible_widget_create(parent, m_compatible_printers); + // }); - option = optgroup->get_option("compatible_printers_condition"); - option.opt.full_width = true; - optgroup->append_single_option_line(option); + // option = optgroup->get_option("compatible_printers_condition"); + // option.opt.full_width = true; + // optgroup->append_single_option_line(option); - build_preset_description_line(optgroup.get()); -#endif + // build_preset_description_line(optgroup.get()); } // Reload current config (aka presets->edited_preset->config) into the UI fields. @@ -2638,14 +2658,14 @@ void TabPrintModel::update_model_config() } else { replace(m_all_keys.begin(), m_all_keys.end(), std::string("first_layer_print_sequence"), std::string("first_layer_sequence_choice")); - m_config->set_key_value("first_layer_sequence_choice", new ConfigOptionEnum(flsCutomize)); + m_config->set_key_value("first_layer_sequence_choice", new ConfigOptionEnum(flsCustomize)); } if (!plate_config.has("other_layers_print_sequence")) { m_config->set_key_value("other_layers_sequence_choice", new ConfigOptionEnum(flsAuto)); } else { replace(m_all_keys.begin(), m_all_keys.end(), std::string("other_layers_print_sequence"), std::string("other_layers_sequence_choice")); - m_config->set_key_value("other_layers_sequence_choice", new ConfigOptionEnum(flsCutomize)); + m_config->set_key_value("other_layers_sequence_choice", new ConfigOptionEnum(flsCustomize)); } notify_changed(plate_item.first); } @@ -2885,7 +2905,7 @@ void TabPrintPlate::on_value_change(const std::string& opt_key, const boost::any if (first_layer_seq_choice == LayerSeq::flsAuto) { plate->set_first_layer_print_sequence({}); } - else if (first_layer_seq_choice == LayerSeq::flsCutomize) { + else if (first_layer_seq_choice == LayerSeq::flsCustomize) { const DynamicPrintConfig& plate_config = plate_item.second->get(); if (!plate_config.has("first_layer_print_sequence")) { std::vector initial_sequence; @@ -2906,7 +2926,7 @@ void TabPrintPlate::on_value_change(const std::string& opt_key, const boost::any if (other_layer_seq_choice == LayerSeq::flsAuto) { plate->set_other_layers_print_sequence({}); } - else if (other_layer_seq_choice == LayerSeq::flsCutomize) { + else if (other_layer_seq_choice == LayerSeq::flsCustomize) { const DynamicPrintConfig& plate_config = plate_item.second->get(); if (!plate_config.has("other_layers_print_sequence")) { std::vector initial_sequence; @@ -3442,6 +3462,7 @@ void TabFilament::build() optgroup->append_single_option_line("enable_overhang_bridge_fan", "auto-cooling"); optgroup->append_single_option_line("overhang_fan_threshold", "auto-cooling"); optgroup->append_single_option_line("overhang_fan_speed", "auto-cooling"); + optgroup->append_single_option_line("internal_bridge_fan_speed"); // ORCA: Add support for separate internal bridge fan speed control optgroup->append_single_option_line("support_material_interface_fan_speed"); optgroup = page->new_optgroup(L("Auxiliary part cooling fan"), L"param_cooling_aux_fan"); @@ -3527,14 +3548,6 @@ void TabFilament::build() optgroup->append_single_option_line("filament_multitool_ramming_volume"); optgroup->append_single_option_line("filament_multitool_ramming_flow"); - page = add_options_page(L("Notes"), "custom-gcode_note"); // ORCA: icon only visible on placeholders - optgroup = page->new_optgroup(L("Notes"),"note", 0); - optgroup->label_width = 0; - option = optgroup->get_option("filament_notes"); - option.opt.full_width = true; - option.opt.height = notes_field_height;// 250; - optgroup->append_single_option_line(option); -#if 1 page = add_options_page(L("Dependencies"), "advanced"); optgroup = page->new_optgroup(L("Profile dependencies")); create_line_with_widget(optgroup.get(), "compatible_printers", "", [this](wxWindow* parent) { @@ -3553,8 +3566,15 @@ void TabFilament::build() option.opt.full_width = true; optgroup->append_single_option_line(option); + page = add_options_page(L("Notes"), "custom-gcode_note"); // ORCA: icon only visible on placeholders + optgroup = page->new_optgroup(L("Notes"),"note", 0); + optgroup->label_width = 0; + option = optgroup->get_option("filament_notes"); + option.opt.full_width = true; + option.opt.height = notes_field_height;// 250; + optgroup->append_single_option_line(option); + //build_preset_description_line(optgroup.get()); -#endif } // Reload current config (aka presets->edited_preset->config) into the UI fields. @@ -3603,7 +3623,7 @@ void TabFilament::toggle_options() auto cfg = m_preset_bundle->printers.get_edited_preset().config; if (m_active_page->title() == L("Cooling")) { bool has_enable_overhang_bridge_fan = m_config->opt_bool("enable_overhang_bridge_fan", 0); - for (auto el : {"overhang_fan_speed", "overhang_fan_threshold"}) + for (auto el : {"overhang_fan_speed", "overhang_fan_threshold", "internal_bridge_fan_speed"}) // ORCA: Add support for separate internal bridge fan speed control toggle_option(el, has_enable_overhang_bridge_fan); toggle_option("additional_cooling_fan_speed", cfg.opt_bool("auxiliary_fan")); @@ -3616,13 +3636,29 @@ void TabFilament::toggle_options() { bool pa = m_config->opt_bool("enable_pressure_advance", 0); toggle_option("pressure_advance", pa); - // Orca: Enable the plates that should be visible when multi bed support is enabled or a BBL printer is selected - auto support_multi_bed_types = is_BBL_printer || cfg.opt_bool("support_multi_bed_types"); - toggle_line("supertack_plate_temp_initial_layer", support_multi_bed_types ); - toggle_line("cool_plate_temp_initial_layer", support_multi_bed_types ); - toggle_line("textured_cool_plate_temp_initial_layer", support_multi_bed_types); - toggle_line("eng_plate_temp_initial_layer", support_multi_bed_types); - toggle_line("textured_plate_temp_initial_layer", support_multi_bed_types); + + //Orca: Enable the plates that should be visible when multi bed support is enabled or a BBL printer is selected; otherwise, enable only the plate visible for the selected bed type. + DynamicConfig& proj_cfg = m_preset_bundle->project_config; + std::string bed_temp_1st_layer_key = ""; + if (proj_cfg.has("curr_bed_type")) + { + bed_temp_1st_layer_key = get_bed_temp_1st_layer_key(proj_cfg.opt_enum("curr_bed_type")); + } + + const std::vector bed_temp_keys = {"supertack_plate_temp_initial_layer", "cool_plate_temp_initial_layer", + "textured_cool_plate_temp_initial_layer", "eng_plate_temp_initial_layer", + "textured_plate_temp_initial_layer", "hot_plate_temp_initial_layer"}; + + bool support_multi_bed_types = std::find(bed_temp_keys.begin(), bed_temp_keys.end(), bed_temp_1st_layer_key) == + bed_temp_keys.end() || + is_BBL_printer || cfg.opt_bool("support_multi_bed_types"); + + for (const auto& key : bed_temp_keys) + { + toggle_line(key, support_multi_bed_types || bed_temp_1st_layer_key == key); + } + + // Orca: adaptive pressure advance and calibration model // If PA is not enabled, disable adaptive pressure advance and hide the model section @@ -5118,13 +5154,12 @@ bool Tab::select_preset(std::string preset_name, bool delete_current /*=false*/, apply_config_from_cache(); // Orca: update presets for the selected printer - load_current_preset(); - if (m_type == Preset::TYPE_PRINTER && wxGetApp().app_config->get_bool("remember_printer_config")) { m_preset_bundle->update_selections(*wxGetApp().app_config); wxGetApp().plater()->sidebar().on_filaments_change(m_preset_bundle->filament_presets.size()); } - + load_current_preset(); + if (delete_third_printer) { wxGetApp().CallAfter([filament_presets, process_presets]() { diff --git a/src/slic3r/GUI/WebGuideDialog.cpp b/src/slic3r/GUI/WebGuideDialog.cpp index f8994ff929..3cc8374bcf 100644 --- a/src/slic3r/GUI/WebGuideDialog.cpp +++ b/src/slic3r/GUI/WebGuideDialog.cpp @@ -1,9 +1,13 @@ #include "WebGuideDialog.hpp" #include "ConfigWizard.hpp" +#include +#include +#include #include #include "I18N.hpp" #include "libslic3r/AppConfig.hpp" +#include "libslic3r/PresetBundle.hpp" #include "slic3r/GUI/wxExtensions.hpp" #include "slic3r/GUI/GUI_App.hpp" #include "libslic3r_version.h" @@ -174,7 +178,11 @@ GuideFrame::GuideFrame(GUI_App *pGUI, long style) // Bind(wxEVT_IDLE, &GuideFrame::OnIdle, this); // Bind(wxEVT_CLOSE_WINDOW, &GuideFrame::OnClose, this); + auto start = std::chrono::high_resolution_clock::now(); LoadProfile(); + auto end = std::chrono::high_resolution_clock::now(); + auto duration = std::chrono::duration_cast(end - start); + BOOST_LOG_TRIVIAL(debug) << __FUNCTION__ << ": LoadProfile() took " << duration.count() << " milliseconds"; // UI SetStartPage(BBL_REGION); @@ -576,13 +584,6 @@ void GuideFrame::OnError(wxWebViewEvent &evt) void GuideFrame::OnScriptResponseMessage(wxCommandEvent &WXUNUSED(evt)) { - // if (!m_response_js.empty()) - //{ - // RunScript(m_response_js); - //} - - // RunScript("This is a message to Web!"); - // RunScript("postMessage(\"AABBCCDD\");"); } bool GuideFrame::IsFirstUse() @@ -592,30 +593,12 @@ bool GuideFrame::IsFirstUse() if (strVal == "1") return false; - if (bbl_bundle_rsrc == true) + if (orca_bundle_rsrc == true) return true; return true; } -/*int GuideFrame::CopyDir(const boost::filesystem::path &from_dir, const boost::filesystem::path &to_dir) -{ - if (!boost::filesystem::is_directory(from_dir)) return -1; - // i assume to_dir.parent surely exists - if (!boost::filesystem::is_directory(to_dir)) boost::filesystem::create_directory(to_dir); - for (auto &dir_entry : boost::filesystem::directory_iterator(from_dir)) { - if (!boost::filesystem::is_directory(dir_entry.path())) { - std::string em; - CopyFileResult cfr = copy_file(dir_entry.path().string(), (to_dir / dir_entry.path().filename()).string(), em, false); - if (cfr != SUCCESS) { BOOST_LOG_TRIVIAL(error) << "Error when copying files from " << from_dir << " to " << to_dir << ": " << em; } - } else { - CopyDir(dir_entry.path(), to_dir / dir_entry.path().filename()); - } - } - - return 0; -}*/ - int GuideFrame::SaveProfile() { // SoftFever: don't collect info @@ -633,77 +616,6 @@ int GuideFrame::SaveProfile() m_MainPtr->app_config->save(); - //Load BBS Conf - /*wxString strConfPath = wxGetApp().app_config->config_path(); - json jCfg; - std::ifstream(w2s(strConfPath)) >> jCfg; - - //model - jCfg["models"] = json::array(); - int nM = m_ProfileJson["model"].size(); - int nModelChoose = 0; - for (int m = 0; m < nM; m++) - { - json amodel = m_ProfileJson["model"][m]; - - amodel["nozzle_diameter"] = amodel["nozzle_selected"]; - amodel.erase("nozzle_selected"); - amodel.erase("preview"); - amodel.erase("sub_path"); - amodel.erase("cover"); - amodel.erase("materials"); - - std::string ss = amodel["nozzle_diameter"]; - if (ss.compare("") != 0) { - nModelChoose++; - jCfg["models"].push_back(amodel); - } - } - if (nModelChoose == 0) - jCfg.erase("models"); - - if (nModelChoose > 0) { - // filament - jCfg["filaments"] = json::array(); - for (auto it = m_ProfileJson["filament"].begin(); it != m_ProfileJson["filament"].end(); ++it) { - if (it.value()["selected"] == 1) { jCfg["filaments"].push_back(it.key()); } - } - - // Preset - jCfg["presets"]["filaments"] = json::array(); - jCfg["presets"]["filaments"].push_back(jCfg["filaments"][0]); - - std::string PresetMachine = m_ProfileJson["machine"][0]["name"]; - jCfg["presets"]["machine"] = PresetMachine; - - int nTotal = m_ProfileJson["process"].size(); - int nSet = nTotal / 2; - if (nSet > 0) nSet--; - - std::string sMode = m_ProfileJson["process"][nSet]["name"]; - jCfg["presets"]["process"] = sMode; - - } else { - jCfg["presets"]["filaments"] = json::array(); - jCfg["presets"]["filaments"].push_back("Default Filament"); - - jCfg["presets"]["machine"] = "Default Printer"; - - jCfg["presets"]["process"] = "Default Setting"; - } - - std::string sOut = jCfg.dump(4, ' ', false); - - std::ofstream output_file(w2s(strConfPath)); - output_file << sOut; - output_file.close(); - - //Copy Profiles - if (bbl_bundle_rsrc) - { - CopyDir(rsrc_vendor_dir,vendor_dir); - }*/ - std::string strAll = m_ProfileJson.dump(-1, ' ', false, json::error_handler_t::ignore); BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << "before save to app_config: "<< std::endl<set_variant(PresetBundle::BBL_BUNDLE, - PresetBundle::BBL_DEFAULT_PRINTER_MODEL, PresetBundle::BBL_DEFAULT_PRINTER_VARIANT, "true"); + app.app_config->set_variant(PresetBundle::ORCA_DEFAULT_BUNDLE, + PresetBundle::ORCA_DEFAULT_PRINTER_MODEL, PresetBundle::ORCA_DEFAULT_PRINTER_VARIANT, "true"); app.app_config->clear_section(AppConfig::SECTION_FILAMENTS); - app.preset_bundle->load_selections(*app.app_config, {PresetBundle::BBL_DEFAULT_PRINTER_MODEL, PresetBundle::BBL_DEFAULT_PRINTER_VARIANT, PresetBundle::BBL_DEFAULT_FILAMENT, std::string()}); + app.preset_bundle->load_selections(*app.app_config, {PresetBundle::ORCA_DEFAULT_PRINTER_MODEL, PresetBundle::ORCA_DEFAULT_PRINTER_VARIANT, PresetBundle::ORCA_DEFAULT_FILAMENT, std::string()}); app.app_config->set_legacy_datadir(false); app.update_mode(); @@ -1025,6 +937,8 @@ int GuideFrame::GetFilamentInfo( std::string VendorDirectory, json & pFilaList, BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << " Before Format Inherits Path: VendorDirectory - " << VendorDirectory << ", sub_path - " << FPath; wxString strNewFile = wxString::Format("%s%c%s", wxString(VendorDirectory.c_str(), wxConvUTF8), boost::filesystem::path::preferred_separator, FPath); boost::filesystem::path inherits_path(w2s(strNewFile)); + if (!boost::filesystem::exists(inherits_path)) + inherits_path = (boost::filesystem::path(m_OrcaFilaLibPath) / boost::filesystem::path(FPath)).make_preferred(); //boost::filesystem::path nf(strNewFile.c_str()); if (boost::filesystem::exists(inherits_path)) @@ -1066,31 +980,7 @@ int GuideFrame::GetFilamentInfo( std::string VendorDirectory, json & pFilaList, int GuideFrame::LoadProfile() { try { - //wxString ExePath = boost::dll::program_location().parent_path().string(); - //wxString TargetFolder = ExePath + "\\resources\\profiles\\"; - //wxString TargetFolderSearch = ExePath + "\\resources\\profiles\\*.json"; - - //intptr_t handle; - //_finddata_t findData; - - //handle = _findfirst(TargetFolderSearch.mb_str(), &findData); // ??????????? - //if (handle == -1) { return -1; } - - //do { - // if (findData.attrib & _A_SUBDIR && strcmp(findData.name, ".") == 0 && strcmp(findData.name, "..") == 0) // ??????????"."?".." - // { - // // cout << findData.name << "\t\n"; - // } else { - // wxString strVendor = wxString(findData.name).BeforeLast('.'); - // LoadProfileFamily(strVendor, TargetFolder + findData.name); - // } - - //} while (_findnext(handle, &findData) == 0); // ??????????? - - // BBS: change directories by design - //BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format(", will load config from %1%.") % bbl_bundle_path; m_ProfileJson = json::parse("{}"); - //m_ProfileJson["configpath"] = Slic3r::data_dir(); m_ProfileJson["model"] = json::array(); m_ProfileJson["machine"] = json::object(); m_ProfileJson["filament"] = json::object(); @@ -1099,76 +989,63 @@ int GuideFrame::LoadProfile() vendor_dir = (boost::filesystem::path(Slic3r::data_dir()) / PRESET_SYSTEM_DIR ).make_preferred(); rsrc_vendor_dir = (boost::filesystem::path(resources_dir()) / "profiles").make_preferred(); - // BBS: add BBL as default - // BBS: add json logic for vendor bundle - auto bbl_bundle_path = vendor_dir; - bbl_bundle_rsrc = false; - if (!boost::filesystem::exists((vendor_dir / PresetBundle::BBL_BUNDLE).replace_extension(".json"))) { - bbl_bundle_path = rsrc_vendor_dir; - bbl_bundle_rsrc = true; - } + // Orca: add custom as default + // Orca: add json logic for vendor bundle + orca_bundle_rsrc = true; - // intptr_t handle; - //_finddata_t findData; - - //handle = _findfirst((bbl_bundle_path / "*.json").make_preferred().string().c_str(), &findData); // ??????????? - // if (handle == -1) { return -1; } - - // do { - // if (findData.attrib & _A_SUBDIR && strcmp(findData.name, ".") == 0 && strcmp(findData.name, "..") == 0) // ??????????"."?".." - // { - // // cout << findData.name << "\t\n"; - // } else { - // wxString strVendor = wxString(findData.name).BeforeLast('.'); - // LoadProfileFamily(w2s(strVendor), vendor_dir.make_preferred().string() + "\\"+ findData.name); - // } - - //} while (_findnext(handle, &findData) == 0); // ??????????? - - - //load BBL bundle from user data path - string targetPath = bbl_bundle_path.make_preferred().string(); - boost::filesystem::path myPath(targetPath); - boost::filesystem::directory_iterator endIter; - for (boost::filesystem::directory_iterator iter(myPath); iter != endIter; iter++) { - if (boost::filesystem::is_directory(*iter)) { - //cout << "is dir" << endl; - //cout << iter->path().string() << endl; - } else { - //cout << "is a file" << endl; - //cout << iter->path().string() << endl; - - wxString strVendor = from_u8(iter->path().string()).BeforeLast('.'); - strVendor = strVendor.AfterLast('\\'); - strVendor = strVendor.AfterLast('/'); - wxString strExtension = from_u8(iter->path().string()).AfterLast('.').Lower(); - - if (w2s(strVendor) == PresetBundle::BBL_BUNDLE && strExtension.CmpNoCase("json") == 0) - LoadProfileFamily(w2s(strVendor), iter->path().string()); + // search if there exists a .json file in vendor_dir folder, if exists, set orca_bundle_rsrc to false + for (const auto& entry : boost::filesystem::directory_iterator(vendor_dir)) { + if (!boost::filesystem::is_directory(entry) && boost::iequals(entry.path().extension().string(), ".json") && !boost::iequals(entry.path().stem().string(), PresetBundle::ORCA_FILAMENT_LIBRARY)) { + orca_bundle_rsrc = false; + break; + } + } + + // load the default filament library first + std::set loaded_vendors; + auto filament_library_name = boost::filesystem::path(PresetBundle::ORCA_FILAMENT_LIBRARY).replace_extension(".json"); + if (boost::filesystem::exists(vendor_dir / filament_library_name)) { + LoadProfileFamily(PresetBundle::ORCA_FILAMENT_LIBRARY, (vendor_dir / filament_library_name).string()); + m_OrcaFilaLibPath = (vendor_dir / PresetBundle::ORCA_FILAMENT_LIBRARY).string(); + } else { + LoadProfileFamily(PresetBundle::ORCA_FILAMENT_LIBRARY, (rsrc_vendor_dir / filament_library_name).string()); + m_OrcaFilaLibPath = (rsrc_vendor_dir / PresetBundle::ORCA_FILAMENT_LIBRARY).string(); + } + loaded_vendors.insert(PresetBundle::ORCA_FILAMENT_LIBRARY); + + //load custom bundle from user data path + boost::filesystem::directory_iterator endIter; + for (boost::filesystem::directory_iterator iter(vendor_dir); iter != endIter; iter++) { + if (!boost::filesystem::is_directory(*iter)) { + wxString strVendor = from_u8(iter->path().string()).BeforeLast('.'); + strVendor = strVendor.AfterLast('\\'); + strVendor = strVendor.AfterLast('/'); + + wxString strExtension = from_u8(iter->path().string()).AfterLast('.').Lower(); + if(strExtension.CmpNoCase("json") != 0 || loaded_vendors.find(w2s(strVendor)) != loaded_vendors.end()) + continue; + + LoadProfileFamily(w2s(strVendor), iter->path().string()); + loaded_vendors.insert(w2s(strVendor)); } } - //string others_targetPath = rsrc_vendor_dir.string(); boost::filesystem::directory_iterator others_endIter; for (boost::filesystem::directory_iterator iter(rsrc_vendor_dir); iter != others_endIter; iter++) { - if (boost::filesystem::is_directory(*iter)) { - //cout << "is dir" << endl; - //cout << iter->path().string() << endl; - } else { - //cout << "is a file" << endl; - //cout << iter->path().string() << endl; + if (!boost::filesystem::is_directory(*iter)) { wxString strVendor = from_u8(iter->path().string()).BeforeLast('.'); strVendor = strVendor.AfterLast('\\'); strVendor = strVendor.AfterLast('/'); wxString strExtension = from_u8(iter->path().string()).AfterLast('.').Lower(); + if (strExtension.CmpNoCase("json") != 0 || loaded_vendors.find(w2s(strVendor)) != loaded_vendors.end()) + continue; - if (w2s(strVendor) != PresetBundle::BBL_BUNDLE && strExtension.CmpNoCase("json")==0) - LoadProfileFamily(w2s(strVendor), iter->path().string()); + LoadProfileFamily(w2s(strVendor), iter->path().string()); + loaded_vendors.insert(w2s(strVendor)); } } - //LoadProfileFamily(PresetBundle::BBL_BUNDLE, bbl_bundle_path.string()); const auto enabled_filaments = wxGetApp().app_config->has_section(AppConfig::SECTION_FILAMENTS) ? wxGetApp().app_config->get_section(AppConfig::SECTION_FILAMENTS) : std::map(); m_appconfig_new.set_vendors(*wxGetApp().app_config); @@ -1239,13 +1116,10 @@ int GuideFrame::LoadProfile() m_ProfileJson["stealth_mode"] = StealthMode; } catch (std::exception &e) { - //wxLogMessage("GUIDE: load_profile_error %s ", e.what()); - // wxMessageBox(e.what(), "", MB_OK); BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << ", error: "<< e.what() < +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include + +#include "slic3r/GUI/GUI.hpp" +#include "slic3r/GUI/I18N.hpp" +#include "slic3r/GUI/GUI_App.hpp" +#include "slic3r/GUI/format.hpp" +#include "Http.hpp" +#include "libslic3r/AppConfig.hpp" +#include "Bonjour.hpp" +#include "slic3r/GUI/BonjourDialog.hpp" + +namespace fs = boost::filesystem; +namespace pt = boost::property_tree; +#define MAX_UPLOAD_PACKAGE_LENGTH 1048576 //(1024*1024) + +namespace Slic3r { + + enum ElegooLinkCommand { + //get status + ELEGOO_GET_STATUS = 0, + //get properties + ELEGOO_GET_PROPERTIES = 1, + //start print + ELEGOO_START_PRINT = 128, + }; + + typedef enum + { + SDCP_PRINT_CTRL_ACK_OK = 0, // OK + SDCP_PRINT_CTRL_ACK_BUSY = 1 , // 设备忙 device is busy + SDCP_PRINT_CTRL_ACK_NOT_FOUND = 2, // 未找到目标文件 file not found + SDCP_PRINT_CTRL_ACK_MD5_FAILED = 3, // MD5校验失败 MD5 check failed + SDCP_PRINT_CTRL_ACK_FILEIO_FAILED = 4, // 文件读取失败 file I/O error + SDCP_PRINT_CTRL_ACK_INVLAID_RESOLUTION = 5, // 文件分辨率不匹配 file resolution is invalid + SDCP_PRINT_CTRL_ACK_UNKNOW_FORMAT = 6, // 无法识别的文件格式 file format is invalid + SDCP_PRINT_CTRL_ACK_UNKNOW_MODEL = 7, // 文件机型不匹配 file model is invalid + } ElegooLinkStartPrintAck; + + + namespace { + + std::string get_host_from_url(const std::string& url_in) + { + std::string url = url_in; + // add http:// if there is no scheme + size_t double_slash = url.find("//"); + if (double_slash == std::string::npos) + url = "http://" + url; + std::string out = url; + CURLU* hurl = curl_url(); + if (hurl) { + // Parse the input URL. + CURLUcode rc = curl_url_set(hurl, CURLUPART_URL, url.c_str(), 0); + if (rc == CURLUE_OK) { + // Replace the address. + char* host; + rc = curl_url_get(hurl, CURLUPART_HOST, &host, 0); + if (rc == CURLUE_OK) { + char* port; + rc = curl_url_get(hurl, CURLUPART_PORT, &port, 0); + if (rc == CURLUE_OK && port != nullptr) { + out = std::string(host) + ":" + port; + curl_free(port); + } else { + out = host; + curl_free(host); + } + } + else + BOOST_LOG_TRIVIAL(error) << "ElegooLink get_host_from_url: failed to get host form URL " << url; + } + else + BOOST_LOG_TRIVIAL(error) << "ElegooLink get_host_from_url: failed to parse URL " << url; + curl_url_cleanup(hurl); + } + else + BOOST_LOG_TRIVIAL(error) << "ElegooLink get_host_from_url: failed to allocate curl_url"; + return out; + } + + std::string get_host_from_url_no_port(const std::string& url_in) + { + std::string url = url_in; + // add http:// if there is no scheme + size_t double_slash = url.find("//"); + if (double_slash == std::string::npos) + url = "http://" + url; + std::string out = url; + CURLU* hurl = curl_url(); + if (hurl) { + // Parse the input URL. + CURLUcode rc = curl_url_set(hurl, CURLUPART_URL, url.c_str(), 0); + if (rc == CURLUE_OK) { + // Replace the address. + char* host; + rc = curl_url_get(hurl, CURLUPART_HOST, &host, 0); + if (rc == CURLUE_OK) { + out = host; + curl_free(host); + } + else + BOOST_LOG_TRIVIAL(error) << "ElegooLink get_host_from_url: failed to get host form URL " << url; + } + else + BOOST_LOG_TRIVIAL(error) << "ElegooLink get_host_from_url: failed to parse URL " << url; + curl_url_cleanup(hurl); + } + else + BOOST_LOG_TRIVIAL(error) << "ElegooLink get_host_from_url: failed to allocate curl_url"; + return out; + } + + #ifdef WIN32 + // Workaround for Windows 10/11 mDNS resolve issue, where two mDNS resolves in succession fail. + std::string substitute_host(const std::string& orig_addr, std::string sub_addr) + { + // put ipv6 into [] brackets + if (sub_addr.find(':') != std::string::npos && sub_addr.at(0) != '[') + sub_addr = "[" + sub_addr + "]"; + + #if 0 + //URI = scheme ":"["//"[userinfo "@"] host [":" port]] path["?" query]["#" fragment] + std::string final_addr = orig_addr; + // http + size_t double_dash = orig_addr.find("//"); + size_t host_start = (double_dash == std::string::npos ? 0 : double_dash + 2); + // userinfo + size_t at = orig_addr.find("@"); + host_start = (at != std::string::npos && at > host_start ? at + 1 : host_start); + // end of host, could be port(:), subpath(/) (could be query(?) or fragment(#)?) + // or it will be ']' if address is ipv6 ) + size_t potencial_host_end = orig_addr.find_first_of(":/", host_start); + // if there are more ':' it must be ipv6 + if (potencial_host_end != std::string::npos && orig_addr[potencial_host_end] == ':' && orig_addr.rfind(':') != potencial_host_end) { + size_t ipv6_end = orig_addr.find(']', host_start); + // DK: Uncomment and replace orig_addr.length() if we want to allow subpath after ipv6 without [] parentheses. + potencial_host_end = (ipv6_end != std::string::npos ? ipv6_end + 1 : orig_addr.length()); //orig_addr.find('/', host_start)); + } + size_t host_end = (potencial_host_end != std::string::npos ? potencial_host_end : orig_addr.length()); + // now host_start and host_end should mark where to put resolved addr + // check host_start. if its nonsense, lets just use original addr (or resolved addr?) + if (host_start >= orig_addr.length()) { + return final_addr; + } + final_addr.replace(host_start, host_end - host_start, sub_addr); + return final_addr; + #else + // Using the new CURL API for handling URL. https://everything.curl.dev/libcurl/url + // If anything fails, return the input unchanged. + std::string out = orig_addr; + CURLU *hurl = curl_url(); + if (hurl) { + // Parse the input URL. + CURLUcode rc = curl_url_set(hurl, CURLUPART_URL, orig_addr.c_str(), 0); + if (rc == CURLUE_OK) { + // Replace the address. + rc = curl_url_set(hurl, CURLUPART_HOST, sub_addr.c_str(), 0); + if (rc == CURLUE_OK) { + // Extract a string fromt the CURL URL handle. + char *url; + rc = curl_url_get(hurl, CURLUPART_URL, &url, 0); + if (rc == CURLUE_OK) { + out = url; + curl_free(url); + } else + BOOST_LOG_TRIVIAL(error) << "ElegooLink substitute_host: failed to extract the URL after substitution"; + } else + BOOST_LOG_TRIVIAL(error) << "ElegooLink substitute_host: failed to substitute host " << sub_addr << " in URL " << orig_addr; + } else + BOOST_LOG_TRIVIAL(error) << "ElegooLink substitute_host: failed to parse URL " << orig_addr; + curl_url_cleanup(hurl); + } else + BOOST_LOG_TRIVIAL(error) << "ElegooLink substitute_host: failed to allocate curl_url"; + return out; + #endif + } + #endif // WIN32 + std::string escape_string(const std::string& unescaped) + { + std::string ret_val; + CURL* curl = curl_easy_init(); + if (curl) { + char* decoded = curl_easy_escape(curl, unescaped.c_str(), unescaped.size()); + if (decoded) { + ret_val = std::string(decoded); + curl_free(decoded); + } + curl_easy_cleanup(curl); + } + return ret_val; + } + std::string escape_path_by_element(const boost::filesystem::path& path) + { + std::string ret_val = escape_string(path.filename().string()); + boost::filesystem::path parent(path.parent_path()); + while (!parent.empty() && parent.string() != "/") // "/" check is for case "/file.gcode" was inserted. Then boost takes "/" as parent_path. + { + ret_val = escape_string(parent.filename().string()) + "/" + ret_val; + parent = parent.parent_path(); + } + return ret_val; + } + + } //namespace + + + ElegooLink::ElegooLink(DynamicPrintConfig *config): + OctoPrint(config) { + + } + + const char* ElegooLink::get_name() const { return "ElegooLink"; } + + bool ElegooLink::elegoo_test(wxString& msg) const{ + + const char *name = get_name(); + bool res = true; + auto url = make_url(""); + // Here we do not have to add custom "Host" header - the url contains host filled by user and libCurl will set the header by itself. + auto http = Http::get(std::move(url)); + set_auth(http); + http.on_error([&](std::string body, std::string error, unsigned status) { + BOOST_LOG_TRIVIAL(error) << boost::format("%1%: Error getting version: %2%, HTTP %3%, body: `%4%`") % name % error % status % body; + res = false; + msg = format_error(body, error, status); + }) + .on_complete([&, this](std::string body, unsigned) { + BOOST_LOG_TRIVIAL(debug) << boost::format("%1%: Got version: %2%") % name % body; + // Check if the response contains "ELEGOO" in any case. + // This is a simple check to see if the response is from an ElegooLink server. + std::regex re("ELEGOO", std::regex::icase); + std::smatch match; + if (std::regex_search(body, match, re)) { + res = true; + } else { + msg = format_error(body, "ElegooLink not detected", 0); + res = false; + } + }) +#ifdef WIN32 + .ssl_revoke_best_effort(m_ssl_revoke_best_effort) + .on_ip_resolve([&](std::string address) { + // Workaround for Windows 10/11 mDNS resolve issue, where two mDNS resolves in succession fail. + // Remember resolved address to be reused at successive REST API call. + msg = GUI::from_u8(address); + }) +#endif // WIN32 + .perform_sync(); + return res; + } + bool ElegooLink::test(wxString &curl_msg) const{ + if(OctoPrint::test(curl_msg)){ + return true; + } + curl_msg=""; + return elegoo_test(curl_msg); + } + +#ifdef WIN32 + bool ElegooLink::elegoo_test_with_resolved_ip(wxString& msg) const + { + // Since the request is performed synchronously here, + // it is ok to refer to `msg` from within the closure + const char* name = get_name(); + bool res = true; + // Msg contains ip string. + auto url = substitute_host(make_url(""), GUI::into_u8(msg)); + msg.Clear(); + std::string host = get_host_from_url(m_host); + auto http = Http::get(url); // std::move(url)); + // "Host" header is necessary here. We have resolved IP address and subsituted it into "url" variable. + // And when creating Http object above, libcurl automatically includes "Host" header from address it got. + // Thus "Host" is set to the resolved IP instead of host filled by user. We need to change it back. + // Not changing the host would work on the most cases (where there is 1 service on 1 hostname) but would break when f.e. reverse + // proxy is used (issue #9734). Also when allow_ip_resolve = 0, this is not needed, but it should not break anything if it stays. + // https://www.rfc-editor.org/rfc/rfc7230#section-5.4 + http.header("Host", host); + set_auth(http); + http.on_error([&](std::string body, std::string error, unsigned status) { + BOOST_LOG_TRIVIAL(error) << boost::format("%1%: Error getting version at %2% : %3%, HTTP %4%, body: `%5%`") % name % url % + error % status % body; + res = false; + msg = format_error(body, error, status); + }) + .on_complete([&, this](std::string body, unsigned) { + // Check if the response contains "ELEGOO" in any case. + // This is a simple check to see if the response is from an ElegooLink server. + std::regex re("ELEGOO", std::regex::icase); + std::smatch match; + if (std::regex_search(body, match, re)) { + res = true; + } else { + msg = format_error(body, "ElegooLink not detected", 0); + res = false; + } + }) + .ssl_revoke_best_effort(m_ssl_revoke_best_effort) + .perform_sync(); + + return res; + } + bool ElegooLink::test_with_resolved_ip(wxString& msg) const + { + // Elegoo supports both otcoprint and Elegoo link + if (OctoPrint::test_with_resolved_ip(msg)) { + return true; + } + msg = ""; + return elegoo_test_with_resolved_ip(msg); + } +#endif // WIN32 + + + wxString ElegooLink::get_test_ok_msg() const + { + return _L("Connection to ElegooLink works correctly."); + } + + wxString ElegooLink::get_test_failed_msg(wxString& msg) const + { + return GUI::format_wxstr("%s: %s", _L("Could not connect to ElegooLink"), msg); + } + + #ifdef WIN32 + bool ElegooLink::upload_inner_with_resolved_ip(PrintHostUpload upload_data, ProgressFn prorgess_fn, ErrorFn error_fn, InfoFn info_fn, const boost::asio::ip::address& resolved_addr) const + { + wxString test_msg_or_host_ip = ""; + + info_fn(L"resolve", boost::nowide::widen(resolved_addr.to_string())); + // If test fails, test_msg_or_host_ip contains the error message. + // Otherwise on Windows it contains the resolved IP address of the host. + // Test_msg already contains resolved ip and will be cleared on start of test(). + test_msg_or_host_ip = GUI::from_u8(resolved_addr.to_string()); + //Elegoo supports both otcoprint and Elegoo link + if(OctoPrint::test_with_resolved_ip(test_msg_or_host_ip)){ + return OctoPrint::upload_inner_with_host(upload_data, prorgess_fn, error_fn, info_fn); + } + + test_msg_or_host_ip = GUI::from_u8(resolved_addr.to_string()); + if(!elegoo_test_with_resolved_ip(test_msg_or_host_ip)){ + error_fn(std::move(test_msg_or_host_ip)); + return false; + } + + + std::string url = substitute_host(make_url("uploadFile/upload"), resolved_addr.to_string()); + info_fn(L"resolve", boost::nowide::widen(url)); + + bool res = loopUpload(url, upload_data, prorgess_fn, error_fn, info_fn); + return res; + } + #endif //WIN32 + + bool ElegooLink::upload_inner_with_host(PrintHostUpload upload_data, ProgressFn prorgess_fn, ErrorFn error_fn, InfoFn info_fn) const + { + // If test fails, test_msg_or_host_ip contains the error message. + // Otherwise on Windows it contains the resolved IP address of the host. + wxString test_msg_or_host_ip; + //Elegoo supports both otcoprint and Elegoo link + if(OctoPrint::test(test_msg_or_host_ip)){ + return OctoPrint::upload_inner_with_host(upload_data, prorgess_fn, error_fn, info_fn); + } + test_msg_or_host_ip=""; + if(!elegoo_test(test_msg_or_host_ip)){ + error_fn(std::move(test_msg_or_host_ip)); + return false; + } + + std::string url; + #ifdef WIN32 + // Workaround for Windows 10/11 mDNS resolve issue, where two mDNS resolves in succession fail. + if (m_host.find("https://") == 0 || test_msg_or_host_ip.empty() || !GUI::get_app_config()->get_bool("allow_ip_resolve")) + #endif // _WIN32 + { + // If https is entered we assume signed ceritificate is being used + // IP resolving will not happen - it could resolve into address not being specified in cert + url = make_url("uploadFile/upload"); + } + #ifdef WIN32 + else { + // Workaround for Windows 10/11 mDNS resolve issue, where two mDNS resolves in succession fail. + // Curl uses easy_getinfo to get ip address of last successful transaction. + // If it got the address use it instead of the stored in "host" variable. + // This new address returns in "test_msg_or_host_ip" variable. + // Solves troubles of uploades failing with name address. + // in original address (m_host) replace host for resolved ip + info_fn(L"resolve", test_msg_or_host_ip); + url = substitute_host(make_url("uploadFile/upload"), GUI::into_u8(test_msg_or_host_ip)); + BOOST_LOG_TRIVIAL(info) << "Upload address after ip resolve: " << url; + } + #endif // _WIN32 + + bool res = loopUpload(url, upload_data, prorgess_fn, error_fn, info_fn); + return res; + } + + bool ElegooLink::validate_version_text(const boost::optional &version_text) const + { + return true; + } + bool ElegooLink::uploadPart(Http &http,std::string md5,std::string uuid,std::string path, + std::string filename,size_t filesize,size_t offset,size_t length, + ProgressFn prorgess_fn,ErrorFn error_fn,InfoFn info_fn)const + { + const char* name = get_name(); + bool result = false; + http.form_clear(); + http.form_add("Check", "1") + .form_add("S-File-MD5", md5) + .form_add("Offset", std::to_string(offset)) + .form_add("Uuid", uuid) + .form_add("TotalSize", std::to_string(filesize)) + .form_add_file("File", path, filename, offset, length) + .on_complete([&](std::string body, unsigned status) { + BOOST_LOG_TRIVIAL(debug) << boost::format("%1%: File uploaded: HTTP %2%: %3%") % name % status % body; + if (status == 200) { + try { + pt::ptree root; + std::istringstream is(body); + pt::read_json(is, root); + std::string code = root.get("code"); + if (code == "000000") { + // info_fn(L"complete", wxString()); + result = true; + } else { + // get error messages + pt::ptree messages = root.get_child("messages"); + std::string error_message = "ErrorCode : " + code + "\n"; + for (pt::ptree::value_type& message : messages) { + std::string field = message.second.get("field"); + std::string msg = message.second.get("message"); + error_message += field + ":" + msg + "\n"; + } + error_fn(wxString::FromUTF8(error_message)); + } + } catch (...) { + BOOST_LOG_TRIVIAL(error) << boost::format("%1%: Error parsing response: %2%") % name % body; + error_fn(wxString::FromUTF8("Error parsing response")); + } + } else { + error_fn(format_error(body, "upload failed", status)); + } + }) + .on_error([&](std::string body, std::string error, unsigned status) { + BOOST_LOG_TRIVIAL(error) << boost::format("%1%: Error uploading file: %2%, HTTP %3%, body: `%4%`") % name % error % status % + body; + error_fn(format_error(body, error, status)); + }) + .on_progress([&](Http::Progress progress, bool& cancel) { + // If upload is finished, do not call progress_fn + // on_complete will be called after some time, so we do not need to call it here + // Because some devices will call on_complete after the upload progress reaches 100%, + // so we need to process it here, based on on_complete + if (progress.ultotal == progress.ulnow) { + // Upload is finished + return; + } + prorgess_fn(std::move(progress), cancel); + if (cancel) { + // Upload was canceled + BOOST_LOG_TRIVIAL(info) << name << ": Upload canceled"; + } + }) +#ifdef WIN32 + .ssl_revoke_best_effort(m_ssl_revoke_best_effort) +#endif + .perform_sync(); + return result; + } + + bool ElegooLink::loopUpload(std::string url, PrintHostUpload upload_data, ProgressFn progress_fn, ErrorFn error_fn, InfoFn info_fn) const + { + const char* name = get_name(); + const auto upload_filename = upload_data.upload_path.filename().string(); + std::string source_path = upload_data.source_path.string(); + + // calc file size + std::ifstream file(source_path, std::ios::binary | std::ios::ate); + std::streamsize size = file.tellg(); + file.close(); + const std::string fileSize = std::to_string(size); + + // generate uuid + boost::uuids::random_generator generator; + boost::uuids::uuid uuid = generator(); + std::string uuid_string = to_string(uuid); + + std::string md5; + bbl_calc_md5(source_path, md5); + + auto http = Http::post(url); +#ifdef WIN32 + // "Host" header is necessary here. In the workaround above (two mDNS..) we have got IP address from test connection and subsituted + // it into "url" variable. And when creating Http object above, libcurl automatically includes "Host" header from address it got. + // Thus "Host" is set to the resolved IP instead of host filled by user. We need to change it back. Not changing the host would work + // on the most cases (where there is 1 service on 1 hostname) but would break when f.e. reverse proxy is used (issue #9734). Also + // when allow_ip_resolve = 0, this is not needed, but it should not break anything if it stays. + // https://www.rfc-editor.org/rfc/rfc7230#section-5.4 + std::string host = get_host_from_url(m_host); + http.header("Host", host); + http.header("Accept", "application/json, text/plain, */*"); +#endif // _WIN32 + set_auth(http); + + bool res = false; + const int packageCount = (size + MAX_UPLOAD_PACKAGE_LENGTH - 1) / MAX_UPLOAD_PACKAGE_LENGTH; + + for (size_t i = 0; i < packageCount; i++) { + BOOST_LOG_TRIVIAL(info) << boost::format("%1%: Uploading file %2%/%3%") % name % (i + 1) % packageCount; + const size_t offset = MAX_UPLOAD_PACKAGE_LENGTH * i; + size_t length = MAX_UPLOAD_PACKAGE_LENGTH; + // if it is the last package, the length is the remainder of the file size divided by MAX_UPLOAD_PACKAGE_LENGTH + if ((i == packageCount - 1) && (size % MAX_UPLOAD_PACKAGE_LENGTH > 0)) { + length = size % MAX_UPLOAD_PACKAGE_LENGTH; + } + res = uploadPart( + http, md5, uuid_string, source_path, upload_filename, size, offset, length, + [size, i, progress_fn](Http::Progress progress, bool& cancel) { + Http::Progress p(0, 0, size, i * MAX_UPLOAD_PACKAGE_LENGTH + progress.ulnow, progress.buffer); + progress_fn(p, cancel); + }, + error_fn, info_fn); + if (!res) { + break; + } + } + + if (res) { + if (upload_data.post_action == PrintHostPostUploadAction::StartPrint) { + // connect to websocket, since the upload is successful, the file will be printed + std::string wsUrl = get_host_from_url_no_port(m_host); + WebSocketClient client; + try { + client.connect(wsUrl, "3030", "/websocket"); + } catch (std::exception& e) { + const auto errorString = std::string(e.what()); + if (errorString.find("The WebSocket handshake was declined by the remote peer") != std::string::npos) { + // error_fn( + // _L("The number of printer connections has exceeded the limit. Please disconnect other connections, restart the " + // "printer and slicer, and then try again.")); + error_fn(_L("The file has been transferred, but some unknown errors occurred. Please check the device page for the file and try to start printing again.")); + } else { + error_fn(std::string("\n") + wxString::FromUTF8(e.what())); + } + return false; + } + std::string timeLapse = "0"; + std::string heatedBedLeveling = "0"; + std::string bedType = "0"; + timeLapse = upload_data.extended_info["timeLapse"]; + heatedBedLeveling = upload_data.extended_info["heatedBedLeveling"]; + bedType = upload_data.extended_info["bedType"]; + + std::this_thread::sleep_for(std::chrono::seconds(1)); + if (checkResult(client, error_fn)) { + // send print command + std::this_thread::sleep_for(std::chrono::seconds(1)); + res = print(client, timeLapse, heatedBedLeveling, bedType, upload_filename, error_fn); + }else{ + res = false; + } + } + } + return res; + } + + bool ElegooLink::upload(PrintHostUpload upload_data, ProgressFn prorgess_fn, ErrorFn error_fn, InfoFn info_fn) const + { + #ifndef WIN32 + return upload_inner_with_host(std::move(upload_data), prorgess_fn, error_fn, info_fn); + #else + std::string host = get_host_from_url(m_host); + + // decide what to do based on m_host - resolve hostname or upload to ip + std::vector resolved_addr; + boost::system::error_code ec; + boost::asio::ip::address host_ip = boost::asio::ip::make_address(host, ec); + if (!ec) { + resolved_addr.push_back(host_ip); + } else if ( GUI::get_app_config()->get_bool("allow_ip_resolve") && boost::algorithm::ends_with(host, ".local")){ + Bonjour("octoprint") + .set_hostname(host) + .set_retries(5) // number of rounds of queries send + .set_timeout(1) // after each timeout, if there is any answer, the resolving will stop + .on_resolve([&ra = resolved_addr](const std::vector& replies) { + for (const auto & rpl : replies) { + boost::asio::ip::address ip(rpl.ip); + ra.emplace_back(ip); + BOOST_LOG_TRIVIAL(info) << "Resolved IP address: " << rpl.ip; + } + }) + .resolve_sync(); + } + if (resolved_addr.empty()) { + // no resolved addresses - try system resolving + BOOST_LOG_TRIVIAL(error) << "ElegooLink failed to resolve hostname " << m_host << " into the IP address. Starting upload with system resolving."; + return upload_inner_with_host(std::move(upload_data), prorgess_fn, error_fn, info_fn); + } else if (resolved_addr.size() == 1) { + // one address resolved - upload there + return upload_inner_with_resolved_ip(std::move(upload_data), prorgess_fn, error_fn, info_fn, resolved_addr.front()); + } else if (resolved_addr.size() == 2 && resolved_addr[0].is_v4() != resolved_addr[1].is_v4()) { + // there are just 2 addresses and 1 is ip_v4 and other is ip_v6 + // try sending to both. (Then if both fail, show both error msg after second try) + wxString error_message; + if (!upload_inner_with_resolved_ip(std::move(upload_data), prorgess_fn + , [&msg = error_message, resolved_addr](wxString error) { msg = GUI::format_wxstr("%1%: %2%", resolved_addr.front(), error); } + , info_fn, resolved_addr.front()) + && + !upload_inner_with_resolved_ip(std::move(upload_data), prorgess_fn + , [&msg = error_message, resolved_addr](wxString error) { msg += GUI::format_wxstr("\n%1%: %2%", resolved_addr.back(), error); } + , info_fn, resolved_addr.back()) + ) { + + error_fn(error_message); + return false; + } + return true; + } else { + // There are multiple addresses - user needs to choose which to use. + size_t selected_index = resolved_addr.size(); + IPListDialog dialog(nullptr, boost::nowide::widen(m_host), resolved_addr, selected_index); + if (dialog.ShowModal() == wxID_OK && selected_index < resolved_addr.size()) { + return upload_inner_with_resolved_ip(std::move(upload_data), prorgess_fn, error_fn, info_fn, resolved_addr[selected_index]); + } + } + return false; + #endif // WIN32 + } + + bool ElegooLink::print(WebSocketClient& client, + std::string timeLapse, + std::string heatedBedLeveling, + std::string bedType, + const std::string filename, + ErrorFn error_fn) const + { + + // convert bedType to 0 or 1, 0 is PTE, 1 is PC + if (bedType == std::to_string((int)BedType::btPC)){ + bedType = "1"; + }else{ + bedType = "0"; + } + bool res = false; + // create a random UUID generator + boost::uuids::random_generator generator; + // generate a UUID + boost::uuids::uuid uuid = generator(); + std::string uuid_string = to_string(uuid); + try { + std::string requestID = uuid_string; + auto now = std::chrono::system_clock::now(); + auto duration = now.time_since_epoch(); + auto milliseconds = std::chrono::duration_cast(duration).count(); + std::string timestamp = std::to_string(milliseconds); + std::string jsonString = R"({ + "Id":"", + "Data":{ + "Cmd":)"+std::to_string(ElegooLinkCommand::ELEGOO_START_PRINT)+R"(, + "Data":{ + "Filename":"/local/)" + filename + R"(", + "StartLayer":0, + "Calibration_switch":)" + heatedBedLeveling + R"(, + "PrintPlatformType":)" + bedType + R"(, + "Tlp_Switch":)" + timeLapse + R"( + }, + "RequestID":")"+ uuid_string + R"(", + "MainboardID":"", + "TimeStamp":)" + timestamp + R"(, + "From":1 + } + })"; + std::cout << "send: " << jsonString << std::endl; + BOOST_LOG_TRIVIAL(info) << "start print, param: " << jsonString; + client.send(jsonString); + // wait 30s + auto start_time = std::chrono::steady_clock::now(); + do{ + std::string response = client.receive(); + std::cout << "Received: " << response << std::endl; + BOOST_LOG_TRIVIAL(info) << "Received: " << response; + + //sample response + // {"Id":"979d4C788A4a78bC777A870F1A02867A","Data":{"Cmd":128,"Data":{"Ack":1},"RequestID":"5223de52cc7642ae8d7924f9dd46f6ad","MainboardID":"1c7319d30105041800009c0000000000","TimeStamp":1735032553},"Topic":"sdcp/response/1c7319d30105041800009c0000000000"} + pt::ptree root; + std::istringstream is(response); + pt::read_json(is, root); + + auto data = root.get_child_optional("Data"); + if(!data){ + BOOST_LOG_TRIVIAL(info) << "wait for start print response"; + continue; + } + auto cmd = data->get_optional("Cmd"); + if(!cmd){ + BOOST_LOG_TRIVIAL(info) << "wait for start print response"; + continue; + } + if(*cmd == ElegooLinkCommand::ELEGOO_START_PRINT){ + auto _ack = data->get_optional("Data.Ack"); + if(!_ack){ + BOOST_LOG_TRIVIAL(error) << "start print failed, ack not found"; + error_fn(_L("Error code not found")); + break; + } + auto ack = static_cast(*_ack); + if(ack == ElegooLinkStartPrintAck::SDCP_PRINT_CTRL_ACK_OK){ + res = true; + }else{ + res = false; + BOOST_LOG_TRIVIAL(error) << "start print failed: ack: " << ack; + wxString error_message = ""; + switch(ack){ + case ElegooLinkStartPrintAck::SDCP_PRINT_CTRL_ACK_BUSY: + { + error_message =_L("The printer is busy, Please check the device page for the file and try to start printing again."); + break; + } + case ElegooLinkStartPrintAck::SDCP_PRINT_CTRL_ACK_NOT_FOUND: + { + error_message =_(L("The file is lost, please check and try again.")); + break; + } + case ElegooLinkStartPrintAck::SDCP_PRINT_CTRL_ACK_MD5_FAILED: + { + error_message =_(L("The file is corrupted, please check and try again.")); + break; + } + case ElegooLinkStartPrintAck::SDCP_PRINT_CTRL_ACK_FILEIO_FAILED: + case ElegooLinkStartPrintAck::SDCP_PRINT_CTRL_ACK_INVLAID_RESOLUTION: + case ElegooLinkStartPrintAck::SDCP_PRINT_CTRL_ACK_UNKNOW_FORMAT: + { + error_message =_(L("Transmission abnormality, please check and try again.")); + break; + } + case ElegooLinkStartPrintAck::SDCP_PRINT_CTRL_ACK_UNKNOW_MODEL: + { + error_message =_(L("The file does not match the printer, please check and try again.")); + break; + } + default: + { + error_message =_L("Unknown error"); + break; + } + } + + error_message += " " + wxString::Format(_L("Error code: %d"),ack); + error_fn(error_message); + } + break; + } + } while (std::chrono::steady_clock::now() - start_time < std::chrono::seconds(30)); + if (std::chrono::steady_clock::now() - start_time >= std::chrono::seconds(30)) { + res = false; + error_fn(_L("Start print timeout")); + } + } catch (const std::exception& e) { + std::cerr << "Error: " << e.what() << std::endl; + BOOST_LOG_TRIVIAL(error) << "start print error: " << e.what(); + error_fn(_L("Start print failed") +"\n" +GUI::from_u8(e.what())); + res=false; + } + return res; + } + + bool ElegooLink::checkResult(WebSocketClient& client, ErrorFn error_fn) const + { + bool res = true; + // create a random UUID generator + boost::uuids::random_generator generator; + // generate a UUID + boost::uuids::uuid uuid = generator(); + std::string uuid_string = to_string(uuid); + try { + std::string requestID = uuid_string; + auto now = std::chrono::system_clock::now(); + auto duration = now.time_since_epoch(); + auto milliseconds = std::chrono::duration_cast(duration).count(); + std::string timestamp = std::to_string(milliseconds); + std::string jsonString = R"({ + "Id":"", + "Data":{ + "Cmd":)" + + std::to_string(ElegooLinkCommand::ELEGOO_GET_STATUS) + R"(, + "Data":{}, + "RequestID":")" + + uuid_string + R"(", + "MainboardID":"", + "TimeStamp":)" + + timestamp + R"(, + "From":1 + } + })"; + std::cout << "send: " << jsonString << std::endl; + BOOST_LOG_TRIVIAL(info) << "start print, param: " << jsonString; + bool needWrite = true; + // wait 60s + auto start_time = std::chrono::steady_clock::now(); + do { + if (needWrite) { + client.send(jsonString); + needWrite = false; + } + std::string response = client.receive(); + std::cout << "Received: " << response << std::endl; + BOOST_LOG_TRIVIAL(info) << "Received: " << response; + pt::ptree root; + std::istringstream is(response); + pt::read_json(is, root); + auto status = root.get_child_optional("Status"); + if (status) { + auto currentStatus = status->get_child_optional("CurrentStatus"); + if (currentStatus) { + std::vector status; + for (auto& item : *currentStatus) { + status.push_back(item.second.get_value()); + } + if (std::find(status.begin(), status.end(), 8) != status.end()) { + // 8 is check file status, need to wait + needWrite = true; + // sleep 1s + std::this_thread::sleep_for(std::chrono::seconds(1)); + } else { + break; + } + } else { + break; + } + } + } while (std::chrono::steady_clock::now() - start_time < std::chrono::seconds(60)); + if (std::chrono::steady_clock::now() - start_time >= std::chrono::seconds(60)) { + res = false; + error_fn(_L("Start print timeout")); + } + } catch (const std::exception& e) { + std::cerr << "Error: " << e.what() << std::endl; + BOOST_LOG_TRIVIAL(error) << "start print error: " << e.what(); + error_fn(_L("Start print failed") + "\n" + GUI::from_u8(e.what())); + res = false; + } + return res; + } + } diff --git a/src/slic3r/Utils/ElegooLink.hpp b/src/slic3r/Utils/ElegooLink.hpp new file mode 100644 index 0000000000..b0c379c29f --- /dev/null +++ b/src/slic3r/Utils/ElegooLink.hpp @@ -0,0 +1,72 @@ +#ifndef slic3r_ElegooLink_hpp_ +#define slic3r_ElegooLink_hpp_ + +#include +#include +#include +#include + +#include "PrintHost.hpp" +#include "libslic3r/PrintConfig.hpp" +#include "OctoPrint.hpp" +#include "WebSocketClient.hpp" +namespace Slic3r { + +class DynamicPrintConfig; +class Http; + +class ElegooLink : public OctoPrint +{ +public: + ElegooLink(DynamicPrintConfig *config); + ~ElegooLink() override = default; + const char* get_name() const override; + virtual bool test(wxString &curl_msg) const override; + wxString get_test_ok_msg() const override; + wxString get_test_failed_msg(wxString& msg) const override; + bool upload(PrintHostUpload upload_data, ProgressFn prorgess_fn, ErrorFn error_fn, InfoFn info_fn) const override; + bool has_auto_discovery() const override { return false; } + bool can_test() const override { return true; } + PrintHostPostUploadActions get_post_upload_actions() const override { return PrintHostPostUploadAction::StartPrint; } +protected: +#ifdef WIN32 + virtual bool upload_inner_with_resolved_ip(PrintHostUpload upload_data, ProgressFn prorgess_fn, ErrorFn error_fn, InfoFn info_fn, const boost::asio::ip::address& resolved_addr) const; +#endif + virtual bool validate_version_text(const boost::optional &version_text) const; + virtual bool upload_inner_with_host(PrintHostUpload upload_data, ProgressFn prorgess_fn, ErrorFn error_fn, InfoFn info_fn) const; + +#ifdef WIN32 + virtual bool test_with_resolved_ip(wxString& curl_msg) const override; + bool elegoo_test_with_resolved_ip(wxString& curl_msg) const; +#endif + +private: + bool elegoo_test(wxString& curl_msg) const; + bool print(WebSocketClient& client, + std::string timeLapse, + std::string heatedBedLeveling, + std::string bedType, + const std::string filename, ErrorFn error_fn) const; + bool checkResult(WebSocketClient& client, + ErrorFn error_fn) const; + + bool loopUpload(std::string url, PrintHostUpload upload_data, + ProgressFn prorgess_fn, + ErrorFn error_fn, + InfoFn info_fn) const; + + bool uploadPart(Http &http, + std::string md5, + std::string uuid, + std::string path, + std::string filename, + size_t filesize, + size_t offset, + size_t length, + ProgressFn prorgess_fn, + ErrorFn error_fn, + InfoFn info_fn) const; +}; +} + +#endif diff --git a/src/slic3r/Utils/Http.cpp b/src/slic3r/Utils/Http.cpp index bfd9eab2f0..4127d3fd29 100644 --- a/src/slic3r/Utils/Http.cpp +++ b/src/slic3r/Utils/Http.cpp @@ -192,6 +192,11 @@ Http::priv::priv(const std::string &url) ::curl_easy_setopt(curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4); ::curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L); ::curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L); + + // https://everything.curl.dev/http/post/expect100.html + // remove the Expect: header, it will add a second delay to each request, + // if the file is uploaded in packets, it will cause the upload time to be longer + headerlist = curl_slist_append(headerlist, "Expect:"); } Http::priv::~priv() @@ -599,6 +604,21 @@ Http& Http::ca_file(const std::string &name) return *this; } +Http& Http::form_clear() { + if (p) { + if (p->form) { + ::curl_formfree(p->form); + p->form = nullptr; + p->form_end = nullptr; + } + for (auto &f : p->form_files) { + f.ifs.close(); + } + p->form_files.clear(); + + } + return *this; +} Http& Http::form_add(const std::string &name, const std::string &contents) { diff --git a/src/slic3r/Utils/Http.hpp b/src/slic3r/Utils/Http.hpp index 872ec6cbdf..fbded8eab2 100644 --- a/src/slic3r/Utils/Http.hpp +++ b/src/slic3r/Utils/Http.hpp @@ -119,6 +119,7 @@ public: // See also ca_file_supported(). Http& ca_file(const std::string &filename); + Http& form_clear(); // Add a HTTP multipart form field Http& form_add(const std::string &name, const std::string &contents); // Add a HTTP multipart form file data contents, `name` is the name of the part diff --git a/src/slic3r/Utils/NetworkAgent.cpp b/src/slic3r/Utils/NetworkAgent.cpp index 1ffdf0464e..47c3a7068e 100644 --- a/src/slic3r/Utils/NetworkAgent.cpp +++ b/src/slic3r/Utils/NetworkAgent.cpp @@ -75,6 +75,8 @@ func_build_logout_cmd NetworkAgent::build_logout_cmd_ptr = nullptr func_build_login_info NetworkAgent::build_login_info_ptr = nullptr; func_get_model_id_from_desgin_id NetworkAgent::get_model_id_from_desgin_id_ptr = nullptr; func_ping_bind NetworkAgent::ping_bind_ptr = nullptr; +func_bind_detect NetworkAgent::bind_detect_ptr = nullptr; +func_set_server_callback NetworkAgent::set_server_callback_ptr = nullptr; func_bind NetworkAgent::bind_ptr = nullptr; func_unbind NetworkAgent::unbind_ptr = nullptr; func_get_bambulab_host NetworkAgent::get_bambulab_host_ptr = nullptr; @@ -145,6 +147,31 @@ NetworkAgent::~NetworkAgent() BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format(", this %1%, network_agent=%2%, destroy_agent_ptr=%3%, ret %4%")%this %network_agent %destroy_agent_ptr %ret; } +std::string NetworkAgent::get_libpath_in_current_directory(std::string library_name) +{ + std::string lib_path; +#if defined(_MSC_VER) || defined(_WIN32) + wchar_t file_name[512]; + DWORD ret = GetModuleFileNameW(NULL, file_name, 512); + if (!ret) { + BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format(", GetModuleFileNameW return error, can not Load Library for %1%") % library_name; + return lib_path; + } + int size_needed = ::WideCharToMultiByte(0, 0, file_name, wcslen(file_name), nullptr, 0, nullptr, nullptr); + std::string file_name_string(size_needed, 0); + ::WideCharToMultiByte(0, 0, file_name, wcslen(file_name), file_name_string.data(), size_needed, nullptr, nullptr); + + std::size_t found = file_name_string.find("bambu-studio.exe"); + if (found == (file_name_string.size() - 16)) { + lib_path = library_name + ".dll"; + lib_path = file_name_string.replace(found, 16, lib_path); + } +#else +#endif + return lib_path; +} + + int NetworkAgent::initialize_network_module(bool using_backup) { //int ret = -1; @@ -159,7 +186,7 @@ int NetworkAgent::initialize_network_module(bool using_backup) //first load the library #if defined(_MSC_VER) || defined(_WIN32) - library = plugin_folder.string() + "/" + std::string(BAMBU_NETWORK_LIBRARY) + ".dll"; + library = plugin_folder.string() + "\\" + std::string(BAMBU_NETWORK_LIBRARY) + ".dll"; wchar_t lib_wstr[128]; memset(lib_wstr, 0, sizeof(lib_wstr)); ::MultiByteToWideChar(CP_UTF8, NULL, library.c_str(), strlen(library.c_str())+1, lib_wstr, sizeof(lib_wstr) / sizeof(lib_wstr[0])); @@ -170,6 +197,19 @@ int NetworkAgent::initialize_network_module(bool using_backup) ::MultiByteToWideChar(CP_UTF8, NULL, library.c_str(), strlen(library.c_str()) + 1, lib_wstr, sizeof(lib_wstr) / sizeof(lib_wstr[0])); netwoking_module = LoadLibrary(lib_wstr); }*/ + if (!netwoking_module) { + BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format(", try load library directly from current directory"); + + std::string library_path = get_libpath_in_current_directory(std::string(BAMBU_NETWORK_LIBRARY)); + if (library_path.empty()) { + BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format(", can not get path in current directory for %1%") % BAMBU_NETWORK_LIBRARY; + return -1; + } + BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format(", current path %1%")%library_path; + memset(lib_wstr, 0, sizeof(lib_wstr)); + ::MultiByteToWideChar(CP_UTF8, NULL, library_path.c_str(), strlen(library_path.c_str())+1, lib_wstr, sizeof(lib_wstr) / sizeof(lib_wstr[0])); + netwoking_module = LoadLibrary(lib_wstr); + } #else #if defined(__WXMAC__) library = plugin_folder.string() + "/" + std::string("lib") + std::string(BAMBU_NETWORK_LIBRARY) + ".dylib"; @@ -246,6 +286,8 @@ int NetworkAgent::initialize_network_module(bool using_backup) build_logout_cmd_ptr = reinterpret_cast(get_network_function("bambu_network_build_logout_cmd")); build_login_info_ptr = reinterpret_cast(get_network_function("bambu_network_build_login_info")); ping_bind_ptr = reinterpret_cast(get_network_function("bambu_network_ping_bind")); + bind_detect_ptr = reinterpret_cast(get_network_function("bambu_network_bind_detect")); + set_server_callback_ptr = reinterpret_cast(get_network_function("bambu_network_set_server_callback")); get_model_id_from_desgin_id_ptr = reinterpret_cast(get_network_function("bambu_network_get_model_id_from_desgin_id")); bind_ptr = reinterpret_cast(get_network_function("bambu_network_bind")); unbind_ptr = reinterpret_cast(get_network_function("bambu_network_unbind")); @@ -298,7 +340,7 @@ int NetworkAgent::initialize_network_module(bool using_backup) get_model_mall_rating_result_ptr = reinterpret_cast(get_network_function("bambu_network_get_model_mall_rating")); get_mw_user_preference_ptr = reinterpret_cast(get_network_function("bambu_network_get_mw_user_preference")); - get_mw_user_4ulist_ptr = reinterpret_cast(get_network_function("bambu_network_get_mw_user_4ulist")); + get_mw_user_4ulist_ptr = reinterpret_cast(get_network_function("bambu_network_get_mw_user_4ulist")); return 0; } @@ -417,7 +459,7 @@ int NetworkAgent::unload_network_module() put_rating_picture_oss_ptr = nullptr; put_model_mall_rating_url_ptr = nullptr; get_model_mall_rating_result_ptr = nullptr; - + get_mw_user_preference_ptr = nullptr; get_mw_user_4ulist_ptr = nullptr; @@ -446,12 +488,18 @@ void* NetworkAgent::get_bambu_source_entry() memset(lib_wstr, 0, sizeof(lib_wstr)); ::MultiByteToWideChar(CP_UTF8, NULL, library.c_str(), strlen(library.c_str())+1, lib_wstr, sizeof(lib_wstr) / sizeof(lib_wstr[0])); source_module = LoadLibrary(lib_wstr); - /*if (!source_module) { - library = std::string(BAMBU_SOURCE_LIBRARY) + ".dll"; + if (!source_module) { + BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format(", try load BambuSource directly from current directory"); + std::string library_path = get_libpath_in_current_directory(std::string(BAMBU_SOURCE_LIBRARY)); + if (library_path.empty()) { + BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format(", can not get path in current directory for %1%") % BAMBU_SOURCE_LIBRARY; + return source_module; + } + BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format(", current path %1%")%library_path; memset(lib_wstr, 0, sizeof(lib_wstr)); - ::MultiByteToWideChar(CP_UTF8, NULL, library.c_str(), strlen(library.c_str()) + 1, lib_wstr, sizeof(lib_wstr) / sizeof(lib_wstr[0])); + ::MultiByteToWideChar(CP_UTF8, NULL, library_path.c_str(), strlen(library_path.c_str()) + 1, lib_wstr, sizeof(lib_wstr) / sizeof(lib_wstr[0])); source_module = LoadLibrary(lib_wstr); - }*/ + } #else #if defined(__WXMAC__) library = plugin_folder.string() + "/" + std::string("lib") + std::string(BAMBU_SOURCE_LIBRARY) + ".dylib"; @@ -881,11 +929,11 @@ bool NetworkAgent::is_user_login() return ret; } -int NetworkAgent::user_logout() +int NetworkAgent::user_logout(bool request) { int ret = 0; if (network_agent && user_logout_ptr) { - ret = user_logout_ptr(network_agent); + ret = user_logout_ptr(network_agent, request); if (ret) BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << boost::format(" error: network_agent=%1%, ret=%2%")%network_agent %ret; } @@ -979,6 +1027,30 @@ int NetworkAgent::ping_bind(std::string ping_code) return ret; } +int NetworkAgent::bind_detect(std::string dev_ip, std::string sec_link, detectResult& detect) +{ + int ret = 0; + if (network_agent && bind_detect_ptr) { + ret = bind_detect_ptr(network_agent, dev_ip, sec_link, detect); + if (ret) + BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << boost::format(" error: network_agent=%1%, ret=%2%, dev_ip=%3%") + % network_agent % ret % dev_ip; + } + return ret; +} + +int NetworkAgent::set_server_callback(OnServerErrFn fn) +{ + int ret = 0; + if (network_agent && set_server_callback_ptr) { + ret = set_server_callback_ptr(network_agent, fn); + if (ret) + BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << boost::format(" error: network_agent=%1%, ret=%2%") + % network_agent % ret; + } + return ret; +} + int NetworkAgent::bind(std::string dev_ip, std::string dev_id, std::string sec_link, std::string timezone, bool improved, OnUpdateStatusFn update_fn) { int ret = 0; diff --git a/src/slic3r/Utils/NetworkAgent.hpp b/src/slic3r/Utils/NetworkAgent.hpp index 59663fcb0b..fc006c8e09 100644 --- a/src/slic3r/Utils/NetworkAgent.hpp +++ b/src/slic3r/Utils/NetworkAgent.hpp @@ -45,7 +45,7 @@ typedef int (*func_send_message_to_printer)(void *agent, std::string dev_id, std typedef bool (*func_start_discovery)(void *agent, bool start, bool sending); typedef int (*func_change_user)(void *agent, std::string user_info); typedef bool (*func_is_user_login)(void *agent); -typedef int (*func_user_logout)(void *agent); +typedef int (*func_user_logout)(void *agent, bool request); typedef std::string (*func_get_user_id)(void *agent); typedef std::string (*func_get_user_name)(void *agent); typedef std::string (*func_get_user_avatar)(void *agent); @@ -55,6 +55,8 @@ typedef std::string (*func_build_logout_cmd)(void *agent); typedef std::string (*func_build_login_info)(void *agent); typedef int (*func_get_model_id_from_desgin_id)(void *agent, std::string& desgin_id, std::string& model_id); typedef int (*func_ping_bind)(void *agent, std::string ping_code); +typedef int (*func_bind_detect)(void *agent, std::string dev_ip, std::string sec_link, detectResult& detect); +typedef int (*func_set_server_callback)(void *agent, OnServerErrFn fn); typedef int (*func_bind)(void *agent, std::string dev_ip, std::string dev_id, std::string sec_link, std::string timezone, bool improved, OnUpdateStatusFn update_fn); typedef int (*func_unbind)(void *agent, std::string dev_id); typedef std::string (*func_get_bambulab_host)(void *agent); @@ -115,6 +117,7 @@ class NetworkAgent { public: + static std::string get_libpath_in_current_directory(std::string library_name); static int initialize_network_module(bool using_backup = false); static int unload_network_module(); #if defined(_MSC_VER) || defined(_WIN32) @@ -161,7 +164,7 @@ public: bool start_discovery(bool start, bool sending); int change_user(std::string user_info); bool is_user_login(); - int user_logout(); + int user_logout(bool request = false); std::string get_user_id(); std::string get_user_name(); std::string get_user_avatar(); @@ -171,6 +174,8 @@ public: std::string build_login_info(); int get_model_id_from_desgin_id(std::string& desgin_id, std::string& model_id); int ping_bind(std::string ping_code); + int bind_detect(std::string dev_ip, std::string sec_link, detectResult& detect); + int set_server_callback(OnServerErrFn fn); int bind(std::string dev_ip, std::string dev_id, std::string sec_link, std::string timezone, bool improved, OnUpdateStatusFn update_fn); int unbind(std::string dev_id); std::string get_bambulab_host(); @@ -224,6 +229,7 @@ public: int get_mw_user_preference(std::function callback); int get_mw_user_4ulist(int seed, int limit, std::function callback); + void *get_network_agent() { return network_agent; } private: bool enable_track = false; @@ -277,6 +283,8 @@ private: static func_build_login_info build_login_info_ptr; static func_get_model_id_from_desgin_id get_model_id_from_desgin_id_ptr; static func_ping_bind ping_bind_ptr; + static func_bind_detect bind_detect_ptr; + static func_set_server_callback set_server_callback_ptr; static func_bind bind_ptr; static func_unbind unbind_ptr; static func_get_bambulab_host get_bambulab_host_ptr; diff --git a/src/slic3r/Utils/OctoPrint.hpp b/src/slic3r/Utils/OctoPrint.hpp index d9172f3225..ad7e8c411e 100644 --- a/src/slic3r/Utils/OctoPrint.hpp +++ b/src/slic3r/Utils/OctoPrint.hpp @@ -49,9 +49,8 @@ protected: virtual void set_auth(Http &http) const; std::string make_url(const std::string &path) const; -private: #ifdef WIN32 - bool test_with_resolved_ip(wxString& curl_msg) const; + virtual bool test_with_resolved_ip(wxString& curl_msg) const; #endif }; diff --git a/src/slic3r/Utils/PresetUpdater.cpp b/src/slic3r/Utils/PresetUpdater.cpp index cdd91eb22e..89a7b58f90 100644 --- a/src/slic3r/Utils/PresetUpdater.cpp +++ b/src/slic3r/Utils/PresetUpdater.cpp @@ -226,7 +226,7 @@ struct PresetUpdater::priv bool get_cached_plugins_version(std::string &cached_version, bool& force); //BBS: refine preset update logic - bool install_bundles_rsrc(std::vector bundles, bool snapshot) const; + bool install_bundles_rsrc(const std::vector& bundles, bool snapshot) const; void check_installed_vendor_profiles() const; Updates get_printer_config_updates(bool update = false) const; Updates get_config_updates(const Semver& old_slic3r_version) const; @@ -1042,7 +1042,7 @@ void PresetUpdater::priv::sync_printer_config(std::string http_url) } } -bool PresetUpdater::priv::install_bundles_rsrc(std::vector bundles, bool snapshot) const +bool PresetUpdater::priv::install_bundles_rsrc(const std::vector& bundles, bool snapshot) const { Updates updates; @@ -1071,8 +1071,7 @@ bool PresetUpdater::priv::install_bundles_rsrc(std::vector bundles, } -//BBS: refine preset update logic -// Install indicies from resources. Only installs those that are either missing or older than in resources. +// Orca: copy/update the vendor profiles from resource to system folder void PresetUpdater::priv::check_installed_vendor_profiles() const { BOOST_LOG_TRIVIAL(info) << "[Orca Updater]:Checking whether the profile from resource is newer"; @@ -1080,8 +1079,9 @@ void PresetUpdater::priv::check_installed_vendor_profiles() const AppConfig *app_config = GUI::wxGetApp().app_config; const auto enabled_vendors = app_config->vendors(); - //BBS: refine the init check logic - std::vector bundles; + std::set bundles; + // Orca: always install filament library + bundles.insert(PresetBundle::ORCA_FILAMENT_LIBRARY); for (auto &dir_entry : boost::filesystem::directory_iterator(rsrc_path)) { const auto &path = dir_entry.path(); std::string file_path = path.string(); @@ -1090,9 +1090,13 @@ void PresetUpdater::priv::check_installed_vendor_profiles() const std::string vendor_name = path.filename().string(); // Remove the .json suffix. vendor_name.erase(vendor_name.size() - 5); + if (bundles.find(vendor_name) != bundles.end())continue; + + const auto is_vendor_enabled = (vendor_name == PresetBundle::ORCA_DEFAULT_BUNDLE) // always update configs from resource to vendor for ORCA_DEFAULT_BUNDLE + || (enabled_vendors.find(vendor_name) != enabled_vendors.end()); if (enabled_config_update) { if ( fs::exists(path_in_vendor)) { - if (enabled_vendors.find(vendor_name) != enabled_vendors.end()) { + if (is_vendor_enabled) { Semver resource_ver = get_version_from_json(file_path); Semver vendor_ver = get_version_from_json(path_in_vendor.string()); @@ -1100,7 +1104,7 @@ void PresetUpdater::priv::check_installed_vendor_profiles() const if (!version_match || (vendor_ver < resource_ver)) { BOOST_LOG_TRIVIAL(info) << "[Orca Updater]:found vendor "< 0) - install_bundles_rsrc(bundles, false); + if (bundles.size() > 0) { + install_bundles_rsrc(std::vector(bundles.begin(), bundles.end()), false); + } } Updates PresetUpdater::priv::get_printer_config_updates(bool update) const diff --git a/src/slic3r/Utils/PrintHost.cpp b/src/slic3r/Utils/PrintHost.cpp index 256b764133..097d26d4c0 100644 --- a/src/slic3r/Utils/PrintHost.cpp +++ b/src/slic3r/Utils/PrintHost.cpp @@ -26,6 +26,7 @@ #include "Obico.hpp" #include "Flashforge.hpp" #include "SimplyPrint.hpp" +#include "ElegooLink.hpp" namespace fs = boost::filesystem; using boost::optional; @@ -65,6 +66,7 @@ PrintHost* PrintHost::get_print_host(DynamicPrintConfig *config) case htObico: return new Obico(config); case htFlashforge: return new Flashforge(config); case htSimplyPrint: return new SimplyPrint(config); + case htElegooLink: return new ElegooLink(config); default: return nullptr; } } else { @@ -78,7 +80,16 @@ wxString PrintHost::format_error(const std::string &body, const std::string &err auto wxbody = wxString::FromUTF8(body.data()); return wxString::Format("HTTP %u: %s", status, wxbody); } else { - return wxString::FromUTF8(error.data()); + if (error.find("curl:Timeout was reached") != std::string::npos) { + return _L("Connection timed out. Please check if the printer and computer network are functioning properly, and confirm that they are on the same network."); + }else if(error.find("curl:Couldn't resolve host name")!= std::string::npos){ + return _L("The Hostname/IP/URL could not be parsed, please check it and try again."); + } else if (error.find("Connection was reset") != std::string::npos){ + return _L("File/data transfer interrupted. Please check the printer and network, then try it again."); + } + else { + return wxString::FromUTF8(error.data()); + } } } diff --git a/src/slic3r/Utils/PrintHost.hpp b/src/slic3r/Utils/PrintHost.hpp index 83bd730e42..2b5e300008 100644 --- a/src/slic3r/Utils/PrintHost.hpp +++ b/src/slic3r/Utils/PrintHost.hpp @@ -11,7 +11,7 @@ #include #include "Http.hpp" - +#include class wxArrayString; namespace Slic3r { @@ -37,6 +37,9 @@ struct PrintHostUpload std::string storage; PrintHostPostUploadAction post_action { PrintHostPostUploadAction::None }; + + // Some extended parameters for different upload methods. + std::map extended_info; }; class PrintHost diff --git a/src/slic3r/Utils/WebSocketClient.hpp b/src/slic3r/Utils/WebSocketClient.hpp new file mode 100644 index 0000000000..2660231794 --- /dev/null +++ b/src/slic3r/Utils/WebSocketClient.hpp @@ -0,0 +1,101 @@ +#ifndef _WEB_SOCKET_CLIENT_HPP_ +#define _WEB_SOCKET_CLIENT_HPP_ +#include +#include +#include +#include +#include +#include +#include +namespace beast = boost::beast; // from +namespace http = beast::http; // from +namespace websocket = beast::websocket; // from +namespace net = boost::asio; // from +using tcp = net::ip::tcp; // from + +class WebSocketClient { +public: +//服务器是ws://echo.websocket.org:80/websocket + WebSocketClient(): + resolver_(ioc_), ws_(ioc_),is_connect(false) { + + } + + ~WebSocketClient() { + if(!is_connect){ + return; + } + try { + // Close the WebSocket connection + ws_.close(websocket::close_code::normal); + } catch (const std::exception& e) { + std::cerr << "Error: " << e.what() << std::endl; + } + } + void connect(const std::string& host, const std::string& port, const std::string& path="/"){ + if(is_connect){ + return; + } + // Look up the domain name + auto const results = resolver_.resolve(host, port); + + // Make the connection on the IP address we get from a lookup + auto ep = net::connect(ws_.next_layer(), results); + std::string _host = host; + //if _host last char is '/', remove it + if(_host.size()>0&&_host[host.size()-1] == '/'){ + _host[host.size()-1] = '\0'; + } + + // _host += ':' + std::to_string(ep.port()); + // Set a decorator to change the User-Agent of the handshake + ws_.set_option(websocket::stream_base::decorator( + [](websocket::request_type& req) + { + req.set(http::field::user_agent,"ElegooSlicer"); + })); + // Perform the WebSocket handshake + ws_.handshake(_host, path); + is_connect = true; + } + + void send(const std::string& message){ + // Send a message + ws_.write(net::buffer(message)); + } + + std::string receive(int timeout = 0){ + // This buffer will hold the incoming message + beast::flat_buffer buffer; + + // Read a message into our buffer + ws_.read(buffer); + + // Return the message as a string + return beast::buffers_to_string(buffer.data()); + } + + +private: + net::io_context ioc_; + tcp::resolver resolver_; + websocket::stream ws_; + bool is_connect; +}; + +// int main() { +// try { +// WebSocketClient client("echo.websocket.org", "80"); + +// client.send("Hello, world!"); +// std::string response = client.receive(); + +// std::cout << "Received: " << response << std::endl; +// } catch (const std::exception& e) { +// std::cerr << "Error: " << e.what() << std::endl; +// return EXIT_FAILURE; +// } + +// return EXIT_SUCCESS; +// } +#endif // _WEB_SOCKET_CLIENT_HPP \ No newline at end of file diff --git a/src/slic3r/Utils/bambu_networking.hpp b/src/slic3r/Utils/bambu_networking.hpp index c4d992bcf1..0c7b4fddb1 100644 --- a/src/slic3r/Utils/bambu_networking.hpp +++ b/src/slic3r/Utils/bambu_networking.hpp @@ -95,7 +95,7 @@ namespace BBL { #define BAMBU_NETWORK_LIBRARY "bambu_networking" #define BAMBU_NETWORK_AGENT_NAME "bambu_network_agent" -#define BAMBU_NETWORK_AGENT_VERSION "01.09.02.05" +#define BAMBU_NETWORK_AGENT_VERSION "01.10.01.01" //iot preset type strings #define IOT_PRINTER_TYPE_STRING "printer" @@ -138,6 +138,9 @@ typedef std::function ResultFn; typedef std::function CancelFn; typedef std::function info)> CheckFn; +//err callbacks +typedef std::function OnServerErrFn; + enum SendingPrintJobStage { PrintingStageCreate = 0, PrintingStageUpload = 1, @@ -172,6 +175,17 @@ enum ConnectStatus { ConnectStatusLost = 2, }; +struct detectResult { + std::string result_msg; + std::string command; + std::string dev_id; + std::string model_id; + std::string dev_name; + std::string version; + std::string bind_state; + std::string connect_type; +}; + /* print job*/ struct PrintParams { /* basic info */ diff --git a/version.inc b/version.inc index 7eb37fdde4..a7f65e3ffe 100644 --- a/version.inc +++ b/version.inc @@ -17,4 +17,4 @@ set(ORCA_VERSION_MAJOR ${CMAKE_MATCH_1}) set(ORCA_VERSION_MINOR ${CMAKE_MATCH_2}) set(ORCA_VERSION_PATCH ${CMAKE_MATCH_3}) -set(SLIC3R_VERSION "01.09.05.51") +set(SLIC3R_VERSION "01.10.01.50")