diff --git a/README.md b/README.md index 88bae970bf..855503c1ef 100644 --- a/README.md +++ b/README.md @@ -133,7 +133,7 @@ Support me [![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/G2G5IP3CP) ## Some background -OrcaSlicer is originaly forked from Bambu Studio, it was previously known as BambuStudio-SoftFever. +OrcaSlicer is originally forked from Bambu Studio, it was previously known as BambuStudio-SoftFever. Bambu Studio is forked from [PrusaSlicer](https://github.com/prusa3d/PrusaSlicer) by Prusa Research, which is from [Slic3r](https://github.com/Slic3r/Slic3r) by Alessandro Ranellucci and the RepRap community. Orca Slicer incorporates a lot of features from SuperSlicer by @supermerill diff --git a/localization/i18n/OrcaSlicer.pot b/localization/i18n/OrcaSlicer.pot index b2092dbb2e..69d4c8023d 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: 2024-05-29 00:28+0800\n" +"POT-Creation-Date: 2024-06-21 20:03+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -2730,10 +2730,12 @@ msgstr "" msgid "You need to select the material type and color first." msgstr "" -msgid "Please input a valid value (K in 0~0.3)" +#, possible-c-format, possible-boost-format +msgid "Please input a valid value (K in %.1f~%.1f)" msgstr "" -msgid "Please input a valid value (K in 0~0.3, N in 0.6~2.0)" +#, possible-c-format, possible-boost-format +msgid "Please input a valid value (K in %.1f~%.1f, N in %.1f~%.1f)" msgstr "" msgid "Other Color" @@ -3095,11 +3097,11 @@ msgstr "" msgid "Edit multiple printers" msgstr "" -msgid "Select connected printetrs (0/6)" +msgid "Select connected printers (0/6)" msgstr "" #, possible-c-format, possible-boost-format -msgid "Select Connected Printetrs (%d/6)" +msgid "Select Connected Printers (%d/6)" msgstr "" #, possible-c-format, possible-boost-format @@ -3161,7 +3163,7 @@ msgstr "" msgid "Printing Failed" msgstr "" -msgid "PrintingPause" +msgid "Printing Pause" msgstr "" msgid "Prepare" @@ -3260,7 +3262,7 @@ msgstr "" msgid "Send Options" msgstr "" -msgid "Send" +msgid "Send to" msgstr "" msgid "" @@ -3275,6 +3277,9 @@ msgid "" "minute each batch.(It depends on how long it takes to complete the heating.)" msgstr "" +msgid "Send" +msgstr "" + msgid "Name is invalid;" msgstr "" @@ -3764,6 +3769,18 @@ msgid "" "NO for %s %s." msgstr "" +#, possible-boost-format +msgid "" +"Invalid input format. Expected vector of dimensions in the following format: " +"\"%1%\"" +msgstr "" + +msgid "Input value is out of range" +msgstr "" + +msgid "Some extension in the input is invalid" +msgstr "" + #, possible-boost-format msgid "Invalid format. Expected vector format: \"%1%\"" msgstr "" @@ -6671,9 +6688,6 @@ msgstr "" msgid "Error code" msgstr "" -msgid "Printer local connection failed, please try again." -msgstr "" - msgid "No login account, only printers in LAN mode are displayed" msgstr "" @@ -7299,6 +7313,14 @@ msgstr "" msgid "Printable space" msgstr "" +#. TRN: First argument is parameter name, the second one is the value. +#, possible-boost-format +msgid "Invalid value provided for parameter %1%: %2%" +msgstr "" + +msgid "G-code flavor is switched" +msgstr "" + msgid "Cooling Fan" msgstr "" @@ -7643,6 +7665,56 @@ msgstr "" msgid "The configuration is up to date." msgstr "" +msgid "Obj file Import color" +msgstr "" + +msgid "Specify number of colors:" +msgstr "" + +#, possible-c-format, possible-boost-format +msgid "The color count should be in range [%d, %d]." +msgstr "" + +msgid "Recommended " +msgstr "" + +msgid "Current filament colors:" +msgstr "" + +msgid "Quick set:" +msgstr "" + +msgid "Color match" +msgstr "" + +msgid "Approximate color matching." +msgstr "" + +msgid "Append" +msgstr "" + +msgid "Add consumable extruder after existing extruders." +msgstr "" + +msgid "Reset mapped extruders." +msgstr "" + +msgid "Cluster colors" +msgstr "" + +msgid "Map Filament" +msgstr "" + +msgid "" +"Note:The color has been selected, you can choose OK \n" +" to continue or manually adjust it." +msgstr "" + +msgid "" +"Waring:The count of newly added and \n" +" current extruders exceeds 16." +msgstr "" + msgid "Ramming customization" msgstr "" @@ -7716,6 +7788,32 @@ msgstr "" msgid "To" msgstr "" +msgid "" +"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" +msgstr "" + +msgid "" +"Missing BambuSource component registered for media playing! Please re-" +"install BambuStutio 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." +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?)" +msgstr "" + msgid "Bambu Network plug-in not detected." msgstr "" @@ -9589,6 +9687,22 @@ msgid "" "at least at minimum speed to reduce the frequency of starting and stoping" msgstr "" +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" +"\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 " +"artefacts that appear like z banding \n" +"3. To avoid printing at speeds which cause VFAs (fine artefacts) on the " +"external walls\n" +"\n" +msgstr "" + msgid "Layer time" msgstr "" @@ -10055,6 +10169,9 @@ msgid "" "maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1." msgstr "" +msgid "layer" +msgstr "" + msgid "Support interface fan speed" msgstr "" @@ -12700,10 +12817,10 @@ msgid "" "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 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" "\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 " @@ -12798,20 +12915,13 @@ msgstr "" msgid "" "Only one of the results with the same name will be saved. Are you sure you " -"want to overrides the other results?" -msgstr "" - -#, possible-c-format, possible-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?" +"want to override the other results?" msgstr "" msgid "Please find the best line on your plate" msgstr "" -msgid "Please find the cornor with perfect degree of extrusion" +msgid "Please find the corner with perfect degree of extrusion" msgstr "" msgid "Input Value" @@ -13054,6 +13164,9 @@ msgstr "" msgid "PETG" msgstr "" +msgid "PCTG" +msgstr "" + msgid "TPU" msgstr "" @@ -13138,6 +13251,9 @@ msgstr "" msgid "Upload to storage" msgstr "" +msgid "Switch to Device tab after upload." +msgstr "" + #, possible-c-format, possible-boost-format msgid "Upload filename doesn't end with \"%s\". Do you wish to continue?" msgstr "" @@ -13399,12 +13515,6 @@ msgstr "" msgid "Printable Space" msgstr "" -msgid "X" -msgstr "" - -msgid "Y" -msgstr "" - msgid "Hot Bed STL" msgstr "" @@ -13747,6 +13857,12 @@ msgstr "" msgid "Refresh Printers" msgstr "" +msgid "View print host webui in Device tab" +msgstr "" + +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." @@ -14078,17 +14194,15 @@ msgstr "" msgid "Could not connect to SimplyPrint" msgstr "" -msgid "SimplyPrint account not linked. Go to Connect options to set it up." -msgstr "" - -msgid "" -"File size exceeds the 100MB upload limit. Please upload your file through " -"the panel." +msgid "Internel error" msgstr "" msgid "Unknown error" msgstr "" +msgid "SimplyPrint account not linked. Go to Connect options to set it up." +msgstr "" + msgid "Connection to Flashforge works correctly." msgstr "" @@ -14106,151 +14220,151 @@ msgstr "" msgid "User cancelled." msgstr "" - -#: resources/data/hints.ini: [hint:Precise wall] -msgid "Precise wall\nDid you know that turning on precise wall can improve precision and layer consistency?" -msgstr "" - -#: resources/data/hints.ini: [hint:Sandwich mode] -msgid "Sandwich mode\nDid 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 "" - -#: resources/data/hints.ini: [hint:Chamber temperature] -msgid "Chamber temperature\nDid you know that OrcaSlicer supports chamber temperature?" -msgstr "" - -#: resources/data/hints.ini: [hint:Calibration] -msgid "Calibration\nDid you know that calibrating your printer can do wonders? Check out our beloved calibration solution in OrcaSlicer." -msgstr "" - -#: resources/data/hints.ini: [hint:Auxiliary fan] -msgid "Auxiliary fan\nDid you know that OrcaSlicer supports Auxiliary part cooling fan?" -msgstr "" - -#: resources/data/hints.ini: [hint:Air filtration] -msgid "Air filtration/Exhaust Fan\nDid you know that OrcaSlicer can support Air filtration/Exhaust Fan?" -msgstr "" - -#: resources/data/hints.ini: [hint:G-code window] -msgid "G-code window\nYou can turn on/off the G-code window by pressing the C key." -msgstr "" - -#: resources/data/hints.ini: [hint:Switch workspaces] -msgid "Switch workspaces\nYou can switch between Prepare and Preview workspaces by pressing the Tab key." -msgstr "" - -#: resources/data/hints.ini: [hint:How to use keyboard shortcuts] -msgid "How to use keyboard shortcuts\nDid you know that Orca Slicer offers a wide range of keyboard shortcuts and 3D scene operations." -msgstr "" - -#: resources/data/hints.ini: [hint:Reverse on odd] -msgid "Reverse on odd\nDid you know that Reverse on odd feature can significantly improve the surface quality of your overhangs?" -msgstr "" - -#: resources/data/hints.ini: [hint:Cut Tool] -msgid "Cut Tool\nDid you know that you can cut a model at any angle and position with the cutting tool?" -msgstr "" - -#: resources/data/hints.ini: [hint:Fix Model] -msgid "Fix Model\nDid you know that you can fix a corrupted 3D model to avoid a lot of slicing problems on the Windows system?" -msgstr "" - -#: resources/data/hints.ini: [hint:Timelapse] -msgid "Timelapse\nDid you know that you can generate a timelapse video during each print?" -msgstr "" - -#: resources/data/hints.ini: [hint:Auto-Arrange] -msgid "Auto-Arrange\nDid you know that you can auto-arrange all objects in your project?" -msgstr "" - -#: resources/data/hints.ini: [hint:Auto-Orient] -msgid "Auto-Orient\nDid you know that you can rotate objects to an optimal orientation for printing by a simple click?" -msgstr "" - -#: resources/data/hints.ini: [hint:Lay on Face] -msgid "Lay on Face\nDid 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 "" - -#: resources/data/hints.ini: [hint:Object List] -msgid "Object List\nDid you know that you can view all objects/parts in a list and change settings for each object/part?" -msgstr "" - -#: resources/data/hints.ini: [hint:Search Functionality] -msgid "Search Functionality\nDid you know that you use the Search tool to quickly find a specific Orca Slicer setting?" -msgstr "" - -#: resources/data/hints.ini: [hint:Simplify Model] -msgid "Simplify Model\nDid 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." -msgstr "" - -#: resources/data/hints.ini: [hint:Slicing Parameter Table] -msgid "Slicing Parameter Table\nDid you know that you can view all objects/parts on a table and change settings for each object/part?" -msgstr "" - -#: resources/data/hints.ini: [hint:Split to Objects/Parts] -msgid "Split to Objects/Parts\nDid you know that you can split a big object into small ones for easy colorizing or printing?" -msgstr "" - -#: resources/data/hints.ini: [hint:Subtract a Part] -msgid "Subtract a Part\nDid 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 "" - -#: resources/data/hints.ini: [hint:STEP] -msgid "STEP\nDid you know that you can improve your print quality by slicing a STEP file instead of an STL?\nOrca Slicer supports slicing STEP files, providing smoother results than a lower resolution STL. Give it a try!" -msgstr "" - -#: resources/data/hints.ini: [hint:Z seam location] -msgid "Z seam location\nDid 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 "" - -#: resources/data/hints.ini: [hint:Fine-tuning for flow rate] -msgid "Fine-tuning for flow rate\nDid 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 "" - -#: resources/data/hints.ini: [hint:Split your prints into plates] -msgid "Split your prints into plates\nDid 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 "" - -#: resources/data/hints.ini: [hint:Speed up your print with Adaptive Layer Height] -msgid "Speed up your print with Adaptive Layer Height\nDid you know that you can print a model even faster, by using the Adaptive Layer Height option? Check it out!" -msgstr "" - -#: resources/data/hints.ini: [hint:Support painting] -msgid "Support painting\nDid 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 "" - -#: resources/data/hints.ini: [hint:Different types of supports] -msgid "Different types of supports\nDid 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 "" - -#: resources/data/hints.ini: [hint:Printing Silk Filament] -msgid "Printing Silk Filament\nDid you know that Silk filament needs special consideration to print it successfully? Higher temperature and lower speed are always recommended for the best results." -msgstr "" - -#: resources/data/hints.ini: [hint:Brim for better adhesion] -msgid "Brim for better adhesion\nDid you know that when printing models have a small contact interface with the printing surface, it's recommended to use a brim?" -msgstr "" - -#: resources/data/hints.ini: [hint:Set parameters for multiple objects] -msgid "Set parameters for multiple objects\nDid you know that you can set slicing parameters for all selected objects at one time?" -msgstr "" - -#: resources/data/hints.ini: [hint:Stack objects] -msgid "Stack objects\nDid you know that you can stack objects as a whole one?" -msgstr "" - -#: resources/data/hints.ini: [hint:Flush into support/objects/infill] -msgid "Flush into support/objects/infill\nDid you know that you can save the wasted filament by flushing them into support/objects/infill during filament change?" -msgstr "" - -#: resources/data/hints.ini: [hint:Improve strength] -msgid "Improve strength\nDid you know that you can use more wall loops and higher sparse infill density to improve the strength of the model?" -msgstr "" - -#: resources/data/hints.ini: [hint:When need to print with the printer door opened] -msgid "When need to print with the printer door opened\nDid 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 "" - -#: resources/data/hints.ini: [hint:Avoid warping] -msgid "Avoid warping\nDid 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 "" + +#: resources/data/hints.ini: [hint:Precise wall] +msgid "Precise wall\nDid you know that turning on precise wall can improve precision and layer consistency?" +msgstr "" + +#: resources/data/hints.ini: [hint:Sandwich mode] +msgid "Sandwich mode\nDid 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 "" + +#: resources/data/hints.ini: [hint:Chamber temperature] +msgid "Chamber temperature\nDid you know that OrcaSlicer supports chamber temperature?" +msgstr "" + +#: resources/data/hints.ini: [hint:Calibration] +msgid "Calibration\nDid you know that calibrating your printer can do wonders? Check out our beloved calibration solution in OrcaSlicer." +msgstr "" + +#: resources/data/hints.ini: [hint:Auxiliary fan] +msgid "Auxiliary fan\nDid you know that OrcaSlicer supports Auxiliary part cooling fan?" +msgstr "" + +#: resources/data/hints.ini: [hint:Air filtration] +msgid "Air filtration/Exhaust Fan\nDid you know that OrcaSlicer can support Air filtration/Exhaust Fan?" +msgstr "" + +#: resources/data/hints.ini: [hint:G-code window] +msgid "G-code window\nYou can turn on/off the G-code window by pressing the C key." +msgstr "" + +#: resources/data/hints.ini: [hint:Switch workspaces] +msgid "Switch workspaces\nYou can switch between Prepare and Preview workspaces by pressing the Tab key." +msgstr "" + +#: resources/data/hints.ini: [hint:How to use keyboard shortcuts] +msgid "How to use keyboard shortcuts\nDid you know that Orca Slicer offers a wide range of keyboard shortcuts and 3D scene operations." +msgstr "" + +#: resources/data/hints.ini: [hint:Reverse on odd] +msgid "Reverse on odd\nDid you know that Reverse on odd feature can significantly improve the surface quality of your overhangs?" +msgstr "" + +#: resources/data/hints.ini: [hint:Cut Tool] +msgid "Cut Tool\nDid you know that you can cut a model at any angle and position with the cutting tool?" +msgstr "" + +#: resources/data/hints.ini: [hint:Fix Model] +msgid "Fix Model\nDid you know that you can fix a corrupted 3D model to avoid a lot of slicing problems on the Windows system?" +msgstr "" + +#: resources/data/hints.ini: [hint:Timelapse] +msgid "Timelapse\nDid you know that you can generate a timelapse video during each print?" +msgstr "" + +#: resources/data/hints.ini: [hint:Auto-Arrange] +msgid "Auto-Arrange\nDid you know that you can auto-arrange all objects in your project?" +msgstr "" + +#: resources/data/hints.ini: [hint:Auto-Orient] +msgid "Auto-Orient\nDid you know that you can rotate objects to an optimal orientation for printing by a simple click?" +msgstr "" + +#: resources/data/hints.ini: [hint:Lay on Face] +msgid "Lay on Face\nDid 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 "" + +#: resources/data/hints.ini: [hint:Object List] +msgid "Object List\nDid you know that you can view all objects/parts in a list and change settings for each object/part?" +msgstr "" + +#: resources/data/hints.ini: [hint:Search Functionality] +msgid "Search Functionality\nDid you know that you use the Search tool to quickly find a specific Orca Slicer setting?" +msgstr "" + +#: resources/data/hints.ini: [hint:Simplify Model] +msgid "Simplify Model\nDid 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." +msgstr "" + +#: resources/data/hints.ini: [hint:Slicing Parameter Table] +msgid "Slicing Parameter Table\nDid you know that you can view all objects/parts on a table and change settings for each object/part?" +msgstr "" + +#: resources/data/hints.ini: [hint:Split to Objects/Parts] +msgid "Split to Objects/Parts\nDid you know that you can split a big object into small ones for easy colorizing or printing?" +msgstr "" + +#: resources/data/hints.ini: [hint:Subtract a Part] +msgid "Subtract a Part\nDid 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 "" + +#: resources/data/hints.ini: [hint:STEP] +msgid "STEP\nDid you know that you can improve your print quality by slicing a STEP file instead of an STL?\nOrca Slicer supports slicing STEP files, providing smoother results than a lower resolution STL. Give it a try!" +msgstr "" + +#: resources/data/hints.ini: [hint:Z seam location] +msgid "Z seam location\nDid 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 "" + +#: resources/data/hints.ini: [hint:Fine-tuning for flow rate] +msgid "Fine-tuning for flow rate\nDid 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 "" + +#: resources/data/hints.ini: [hint:Split your prints into plates] +msgid "Split your prints into plates\nDid 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 "" + +#: resources/data/hints.ini: [hint:Speed up your print with Adaptive Layer Height] +msgid "Speed up your print with Adaptive Layer Height\nDid you know that you can print a model even faster, by using the Adaptive Layer Height option? Check it out!" +msgstr "" + +#: resources/data/hints.ini: [hint:Support painting] +msgid "Support painting\nDid 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 "" + +#: resources/data/hints.ini: [hint:Different types of supports] +msgid "Different types of supports\nDid 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 "" + +#: resources/data/hints.ini: [hint:Printing Silk Filament] +msgid "Printing Silk Filament\nDid you know that Silk filament needs special consideration to print it successfully? Higher temperature and lower speed are always recommended for the best results." +msgstr "" + +#: resources/data/hints.ini: [hint:Brim for better adhesion] +msgid "Brim for better adhesion\nDid you know that when printing models have a small contact interface with the printing surface, it's recommended to use a brim?" +msgstr "" + +#: resources/data/hints.ini: [hint:Set parameters for multiple objects] +msgid "Set parameters for multiple objects\nDid you know that you can set slicing parameters for all selected objects at one time?" +msgstr "" + +#: resources/data/hints.ini: [hint:Stack objects] +msgid "Stack objects\nDid you know that you can stack objects as a whole one?" +msgstr "" + +#: resources/data/hints.ini: [hint:Flush into support/objects/infill] +msgid "Flush into support/objects/infill\nDid you know that you can save the wasted filament by flushing them into support/objects/infill during filament change?" +msgstr "" + +#: resources/data/hints.ini: [hint:Improve strength] +msgid "Improve strength\nDid you know that you can use more wall loops and higher sparse infill density to improve the strength of the model?" +msgstr "" + +#: resources/data/hints.ini: [hint:When need to print with the printer door opened] +msgid "When need to print with the printer door opened\nDid 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 "" + +#: resources/data/hints.ini: [hint:Avoid warping] +msgid "Avoid warping\nDid 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 "" diff --git a/localization/i18n/ca/OrcaSlicer_ca.po b/localization/i18n/ca/OrcaSlicer_ca.po index 7071c341d7..96bb9ded26 100644 --- a/localization/i18n/ca/OrcaSlicer_ca.po +++ b/localization/i18n/ca/OrcaSlicer_ca.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-05-29 00:28+0800\n" -"PO-Revision-Date: 2024-05-23 23:00+0200\n" +"POT-Creation-Date: 2024-06-21 20:03+0800\n" +"PO-Revision-Date: 2024-06-15 11:02+0200\n" "Last-Translator: \n" "Language-Team: \n" "Language: ca\n" @@ -252,10 +252,10 @@ msgid "Set Scale" msgstr "Establir Escala" msgid "Reset Position" -msgstr "Restableix la posició" +msgstr "Restableix la Posició" msgid "Reset Rotation" -msgstr "Reinicialitza la Rotació" +msgstr "Restableix la Rotació" msgid "World coordinates" msgstr "Coordenades cartesianes" @@ -280,7 +280,7 @@ msgid "Planar" msgstr "Planar" msgid "Dovetail" -msgstr "Encadellat" +msgstr "Matxembrat" msgid "Auto" msgstr "Automàtic" @@ -1493,7 +1493,7 @@ msgstr "" "perfils d'impressora no es veuran afectats." msgid "Rebuild" -msgstr "Recomposició" +msgstr "Reconstruint" msgid "Loading current presets" msgstr "Carregant els valors perfils actuals" @@ -2873,11 +2873,13 @@ msgstr "Estàs segur que vols esborrar la informació del filament?" msgid "You need to select the material type and color first." msgstr "Primer heu de seleccionar el tipus de material i el color." -msgid "Please input a valid value (K in 0~0.3)" -msgstr "Introduïu un valor vàlid ( K en 0 ~ 0.3 )" +#, c-format, boost-format +msgid "Please input a valid value (K in %.1f~%.1f)" +msgstr "" -msgid "Please input a valid value (K in 0~0.3, N in 0.6~2.0)" -msgstr "Introduïu un valor vàlid ( K a 0 ~ 0.3, N a 0.6 ~ 2.0 )" +#, c-format, boost-format +msgid "Please input a valid value (K in %.1f~%.1f, N in %.1f~%.1f)" +msgstr "" msgid "Other Color" msgstr "Un altre color" @@ -3307,12 +3309,12 @@ msgstr "Tasca enviada" msgid "Edit multiple printers" msgstr "Editar diverses impressores" -msgid "Select connected printetrs (0/6)" -msgstr "Seleccionar impressores connectades (0/6)" +msgid "Select connected printers (0/6)" +msgstr "" #, c-format, boost-format -msgid "Select Connected Printetrs (%d/6)" -msgstr "Seleccionar Impressores Connectades (%d/6)" +msgid "Select Connected Printers (%d/6)" +msgstr "" #, c-format, boost-format msgid "The maximum number of printers that can be selected is %d" @@ -3374,8 +3376,8 @@ msgstr "Finalitzar Impressió" msgid "Printing Failed" msgstr "Impressió Fallida" -msgid "PrintingPause" -msgstr "Pausar Impressió" +msgid "Printing Pause" +msgstr "" msgid "Prepare" msgstr "Preparació" @@ -3473,8 +3475,8 @@ msgstr "Calibratge de Dinàmiques de Flux" msgid "Send Options" msgstr "Opcions d'Enviament" -msgid "Send" -msgstr "Enviar" +msgid "Send to" +msgstr "Enviar a" msgid "" "printers at the same time.(It depends on how many devices can undergo " @@ -3491,6 +3493,9 @@ msgid "" msgstr "" "minut cada lot. (Depèn del temps que es trigui a completar la calefacció.)" +msgid "Send" +msgstr "Enviar" + msgid "Name is invalid;" msgstr "El nom no és vàlid;" @@ -4075,6 +4080,20 @@ msgstr "" "SÍ per %s%%. \n" "NO per %s %s." +#, boost-format +msgid "" +"Invalid input format. Expected vector of dimensions in the following format: " +"\"%1%\"" +msgstr "" +"Format d'entrada invàlid. Esperat vector de dimensions en el format següent: " +"\"%1%\"" + +msgid "Input value is out of range" +msgstr "El valor introduït és fora de rang" + +msgid "Some extension in the input is invalid" +msgstr "Alguna extensió de l'entrada no és vàlida" + #, boost-format msgid "Invalid format. Expected vector format: \"%1%\"" msgstr "Format no vàlid. Format vectorial esperat: \"%1%\"" @@ -6788,10 +6807,10 @@ msgstr "" "obrir fitxers .step" msgid "Associate web links to OrcaSlicer" -msgstr "" +msgstr "Associar enllaços web a OrcaSlicer" msgid "Associate URLs to OrcaSlicer" -msgstr "" +msgstr "Associeu URLs a OrcaSlicer" msgid "Current association: " msgstr "Associació actual: " @@ -6806,22 +6825,28 @@ msgid "" "Associate OrcaSlicer with prusaslicer:// links so that Orca can open models " "from Printable.com" msgstr "" +"Associar OrcaSlicer amb els enllaços prusaslicer:// perquè Orca pugui obrir " +"models des de Printable.com" msgid "Associate bambustudio://" -msgstr "" +msgstr "Associar bambustudio://" msgid "" "Associate OrcaSlicer with bambustudio:// links so that Orca can open models " "from makerworld.com" msgstr "" +"Associar OrcaSlicer amb els enllaços bambustudio:// perquè Orca pugui obrir " +"models des de makerworld.com" msgid "Associate cura://" -msgstr "" +msgstr "Associar cura://" msgid "" "Associate OrcaSlicer with cura:// links so that Orca can open models from " "thingiverse.com" msgstr "" +"Associar OrcaSlicer amb els enllaços cura:// perquè Orca pugui obrir models " +"des de thingiverse.com" msgid "Maximum recent projects" msgstr "Màxim projectes recents" @@ -7200,9 +7225,6 @@ msgstr "enviament completat" msgid "Error code" msgstr "Codi d'error" -msgid "Printer local connection failed, please try again." -msgstr "La connexió local de la impressora ha fallat, torneu-ho a provar." - msgid "No login account, only printers in LAN mode are displayed" msgstr "" "No hi ha compte d'inici de sessió, només es mostren impressores en mode LAN" @@ -7969,6 +7991,14 @@ msgstr "Paràmetres del canvi d'eina per a impressores multi-extrusor MM" msgid "Printable space" msgstr "Espai imprimible" +#. TRN: First argument is parameter name, the second one is the value. +#, boost-format +msgid "Invalid value provided for parameter %1%: %2%" +msgstr "Valor no vàlid proporcionat per al paràmetre %1%: %2%" + +msgid "G-code flavor is switched" +msgstr "El tipus de codi-G s'ha canviat" + msgid "Cooling Fan" msgstr "Ventilador de refrigeració" @@ -8347,6 +8377,56 @@ msgstr "No hi ha actualitzacions disponibles." msgid "The configuration is up to date." msgstr "La configuració està actualitzada." +msgid "Obj file Import color" +msgstr "" + +msgid "Specify number of colors:" +msgstr "" + +#, c-format, boost-format +msgid "The color count should be in range [%d, %d]." +msgstr "" + +msgid "Recommended " +msgstr "" + +msgid "Current filament colors:" +msgstr "" + +msgid "Quick set:" +msgstr "" + +msgid "Color match" +msgstr "" + +msgid "Approximate color matching." +msgstr "" + +msgid "Append" +msgstr "" + +msgid "Add consumable extruder after existing extruders." +msgstr "" + +msgid "Reset mapped extruders." +msgstr "" + +msgid "Cluster colors" +msgstr "" + +msgid "Map Filament" +msgstr "" + +msgid "" +"Note:The color has been selected, you can choose OK \n" +" to continue or manually adjust it." +msgstr "" + +msgid "" +"Waring:The count of newly added and \n" +" current extruders exceeds 16." +msgstr "" + msgid "Ramming customization" msgstr "Configuració de Moldejat de punta( Ramming )" @@ -8434,6 +8514,43 @@ msgstr "Des de" msgid "To" msgstr "A" +msgid "" +"Windows Media Player is required for this task! Do you want to enable " +"'Windows Media Player' for your operation system?" +msgstr "" +"El Windows Media Player és necessari per a aquesta tasca. Voleu habilitar el " +"\"Windows Media Player\" per al vostre sistema operatiu?" + +msgid "" +"BambuSource has not correctly been registered for media playing! Press Yes " +"to re-register it. You will be promoted twice" +msgstr "" +"BambuSource no s'ha registrat correctament per a la reproducció multimèdia! " +"Premeu Sí per tornar-lo a registrar. Seràs promocionat dues vegades" + +msgid "" +"Missing BambuSource component registered for media playing! Please re-" +"install BambuStutio or seek after-sales help." +msgstr "" +"Falta el component BambuSource registrat per a la reproducció multimèdia! " +"Torneu a instal·lar BambuStutio o busqueu ajuda postvenda." + +msgid "" +"Using a BambuSource from a different install, video play may not work " +"correctly! Press Yes to fix it." +msgstr "" +"Utilitzar un BambuSource des d'una instal·lació diferent, la reproducció de " +"vídeo pot no funcionar correctament! Premeu Sí per solucionar-ho." + +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 "" +"Al vostre sistema li falten còdecs H.264 per al GStreamer, necessaris per " +"reproduir vídeo. (Proveu d'instal·lar els paquets gstreamer1.0-plugins-bad " +"o gstreamer1.0-libav i, a continuació, reinicieu Orca Slicer?)" + msgid "Bambu Network plug-in not detected." msgstr "No s'ha detectat el Plug-In de Xarxa Bambu." @@ -10565,6 +10682,15 @@ msgid "" "external surface finish. It can also cause the infill to shine through the " "external surfaces of the part." msgstr "" +"Ordre de perímetre/farciment. Quan es desmarca la casella, primer " +"s'imprimeixen els perímetres, cosa que funciona millor en la majoria dels " +"casos.\n" +"\n" +"Imprimir el farciment primer pot ajudar amb voladissos extrems, ja que els " +"perímetres tenen el farciment veí per adherir-s'hi. Tanmateix, el farciment " +"empenyerà lleugerament les parets impreses on s'uneix, cosa que provocarà un " +"pitjor acabat superficial extern. També pot fer que el farciment ressalti a " +"través de les superfícies externes de la peça." msgid "Wall loop direction" msgstr "Direcció del bucle de perímetre" @@ -10751,6 +10877,22 @@ msgstr "" "s'aturarà mai i funcionarà almenys a una velocitat mínima per reduir la " "freqüència d'arrencada i aturada" +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" +"\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 " +"artefacts that appear like z banding \n" +"3. To avoid printing at speeds which cause VFAs (fine artefacts) on the " +"external walls\n" +"\n" +msgstr "" + msgid "Layer time" msgstr "Temps de capa" @@ -11336,6 +11478,9 @@ msgstr "" "\"close_fan_the_first_x_layers\", en aquest cas el ventilador funcionarà a " "la velocitat màxima permesa a la capa \"close_fan_the_first_x_layers\" + 1." +msgid "layer" +msgstr "capa" + msgid "Support interface fan speed" msgstr "Velocitat del ventilador a la interfície de suport" @@ -14690,36 +14835,15 @@ msgid "" "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 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" "\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 "" -"Consulteu els detalls del Calibratge de les Dinàmiques de Flux al nostre " -"wiki.\n" -"\n" -"Normalment el calibratge és innecessari. Quan inicieu una impressió d'un sol " -"color/material, amb l'opció \"Calibratge de les Dinàmiques de Flux\" marcada " -"al menú d'inici d'impressió, la impressora seguirà la forma antiga, " -"calibrarà el filament abans de la impressió; Quan s'inicia una impressió " -"multicolor/multimaterial, la impressora utilitzarà el paràmetre de " -"compensació predeterminat per al filament durant cada canvi de filament, el " -"qual tindrà un bon resultat en la majoria dels casos.\n" -"\n" -"Tingueu en compte que hi ha alguns casos que faran que el resultat del " -"calibratge no sigui fiable: utilitzar una placa de textura per fer el " -"calibratge; si la placa d'impressió no té una bona adherència ( renteu la " -"placa d'impressió o apliqueu adhesiu! ) ... Podeu trobar més informació a la " -"nostra wiki.\n" -"\n" -"Els resultats del calibratge tenen al voltant d'un 10 per cent de fluctuació " -"en la nostra prova, la qual cosa pot fer que el resultat no sigui exactament " -"el mateix en cada calibratge. Encara estem investigant la causa arrel per " -"fer millores amb noves actualitzacions." msgid "When to use Flow Rate Calibration" msgstr "Quan s'ha d'utilitzar el Calibratge del Ratio de Flux" @@ -14852,26 +14976,14 @@ msgstr "El nom no pot superar els 40 caràcters." msgid "" "Only one of the results with the same name will be saved. Are you sure you " -"want to overrides the other results?" +"want to override the other results?" msgstr "" -"Només es desarà un dels resultats amb el mateix nom. Estàs segur que vols " -"sobreescriure els altres resultats?" - -#, 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 "" -"Ja hi ha un resultat històric de calibratge amb el mateix nom: %s. Només es " -"pot guardar un dels resultats amb el mateix nom. Estàs segur que vols " -"sobreescriure el resultat històric?" msgid "Please find the best line on your plate" msgstr "Busqueu la millor línia a la placa" -msgid "Please find the cornor with perfect degree of extrusion" -msgstr "Busqueu la cantonada amb un grau d'extrusió perfecte" +msgid "Please find the corner with perfect degree of extrusion" +msgstr "" msgid "Input Value" msgstr "Valor d'entrada" @@ -15132,6 +15244,9 @@ msgstr "ABS/ASA" msgid "PETG" msgstr "PETG" +msgid "PCTG" +msgstr "" + msgid "TPU" msgstr "TPU" @@ -15229,6 +15344,9 @@ msgstr "" msgid "Upload to storage" msgstr "Pujar a l'emmagatzematge" +msgid "Switch to Device tab after upload." +msgstr "" + #, c-format, boost-format msgid "Upload filename doesn't end with \"%s\". Do you wish to continue?" msgstr "El nom del fitxer que vol pujar no acaba amb \"%s\". Voleu continuar?" @@ -15513,12 +15631,6 @@ msgstr "Rectangle" msgid "Printable Space" msgstr "Espai Imprimible" -msgid "X" -msgstr "X" - -msgid "Y" -msgstr "Y" - msgid "Hot Bed STL" msgstr "STL del Llit" @@ -15889,7 +16001,7 @@ msgstr "Consells diaris" #, c-format, boost-format msgid "nozzle memorized: %.1f %s" -msgstr "" +msgstr "broquet memoritzat: %.1f %s" msgid "" "Your nozzle diameter in preset is not consistent with memorized nozzle " @@ -15935,6 +16047,12 @@ msgstr "Estàs segur de tancar sessió?" msgid "Refresh Printers" msgstr "Refrescar Impressores" +msgid "View print host webui in Device tab" +msgstr "" + +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." @@ -16387,21 +16505,17 @@ msgstr "Connectat a SimplyPrint amb èxit!" msgid "Could not connect to SimplyPrint" msgstr "No s'ha pogut connectar a SimplyPrint" +msgid "Internel error" +msgstr "" + +msgid "Unknown error" +msgstr "Error desconegut" + msgid "SimplyPrint account not linked. Go to Connect options to set it up." msgstr "" "No s'ha enllaçat el compte de SimplyPrint. Aneu a Opcions de Connexió per " "configurar-lo." -msgid "" -"File size exceeds the 100MB upload limit. Please upload your file through " -"the panel." -msgstr "" -"La mida del fitxer supera el límit de pujada de 100 MB. Si us plau, " -"carregueu el vostre fitxer a través del panell." - -msgid "Unknown error" -msgstr "Error desconegut" - msgid "Connection to Flashforge works correctly." msgstr "La connexió amb Flashforge funciona correctament." @@ -16812,31 +16926,17 @@ msgstr "" "deformació." #~ msgid "" -#~ "Associate OrcaSlicer with prusaslicer:// links so that Orca can open " -#~ "PrusaSlicer links from Printable.com" +#~ "File size exceeds the 100MB upload limit. Please upload your file through " +#~ "the panel." #~ msgstr "" -#~ "Associar OrcaSlicer amb els enllaços prusaslicer:// perquè Orca pugui " -#~ "obrir enllaços PrusaSlicer des de Printable.com" +#~ "La mida del fitxer supera el límit de pujada de 100 MB. Si us plau, " +#~ "carregueu el vostre fitxer a través del panell." -#~ msgid "" -#~ "Order of wall/infill. When the tickbox is unchecked the walls are printed " -#~ "first, which works best in most cases.\n" -#~ "\n" -#~ "Printing walls first may help with extreme overhangs as the walls have " -#~ "the neighbouring infill to adhere to. However, the infill will slighly " -#~ "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 "" -#~ "Ordre de Perímetre/Farciment. Quan es desmarca la casella, primer " -#~ "s'imprimeixen els perímetres, cosa que funciona millor en la majoria dels " -#~ "casos.\n" -#~ "\n" -#~ "Imprimir primer els perímetres pot ajudar amb voladissos extrems, ja que " -#~ "els perímetres tenen el farciment veí al qual adherir-se. Tanmateix, el " -#~ "farciment empenyerà lleugerament els perímetres impresos als que " -#~ "s'adhereix, cosa que provocarà un pitjor acabat superficial extern. També " -#~ "pot fer que el farciment brilli a les superfícies externes de la peça." +#~ msgid "Please input a valid value (K in 0~0.3)" +#~ msgstr "Introduïu un valor vàlid ( K en 0 ~ 0.3 )" + +#~ msgid "Please input a valid value (K in 0~0.3, N in 0.6~2.0)" +#~ msgstr "Introduïu un valor vàlid ( K a 0 ~ 0.3, N a 0.6 ~ 2.0 )" #~ msgid "V" #~ msgstr "V" @@ -16903,22 +17003,27 @@ msgstr "" #~ msgstr "HMS" #, fuzzy +#~| msgid "Unsaved Changes" #~ msgid "Actions For Unsaved Changes" #~ msgstr "Canvis no desats" #, fuzzy +#~| msgid "Reset scale" #~ msgid "Preset Value" #~ msgstr "Valor predefinit esquerre" #, fuzzy +#~| msgid "Modified G-codes" #~ msgid "Modified Value" #~ msgstr "Valor modificat" #, fuzzy +#~| msgid "User Preset" #~ msgid "Use Preset Value" #~ msgstr "Perfil d'usuari" #, fuzzy +#~| msgid "Save file as:" #~ msgid "Save Modified Value" #~ msgstr "Desa el fitxer com a:" @@ -16931,6 +17036,10 @@ msgstr "" #~ "Voleu desar aquests paràmetres canviats (valor modificat)?" #, fuzzy +#~| msgid "" +#~| "You have changed some preset settings. \n" +#~| "Would you like to keep these changed settings (new value) after " +#~| "switching preset?" #~ msgid "" #~ "\n" #~ "Would you like to keep these changed settings(modified value) after " diff --git a/localization/i18n/cs/OrcaSlicer_cs.po b/localization/i18n/cs/OrcaSlicer_cs.po index 1097a874af..22cd302d8a 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: 2024-05-29 00:28+0800\n" +"POT-Creation-Date: 2024-06-21 20:03+0800\n" "PO-Revision-Date: 2023-09-30 15:15+0200\n" "Last-Translator: René Mošner \n" "Language-Team: \n" @@ -2835,10 +2835,12 @@ msgstr "Jste si jistý, že chcete vymazat informace o filamentu?" msgid "You need to select the material type and color first." msgstr "Nejprve musíte vybrat typ materiálu a barvu." -msgid "Please input a valid value (K in 0~0.3)" +#, c-format, boost-format +msgid "Please input a valid value (K in %.1f~%.1f)" msgstr "" -msgid "Please input a valid value (K in 0~0.3, N in 0.6~2.0)" +#, c-format, boost-format +msgid "Please input a valid value (K in %.1f~%.1f, N in %.1f~%.1f)" msgstr "" msgid "Other Color" @@ -3251,11 +3253,11 @@ msgstr "" msgid "Edit multiple printers" msgstr "" -msgid "Select connected printetrs (0/6)" +msgid "Select connected printers (0/6)" msgstr "" #, c-format, boost-format -msgid "Select Connected Printetrs (%d/6)" +msgid "Select Connected Printers (%d/6)" msgstr "" #, c-format, boost-format @@ -3317,7 +3319,7 @@ msgstr "" msgid "Printing Failed" msgstr "" -msgid "PrintingPause" +msgid "Printing Pause" msgstr "" msgid "Prepare" @@ -3416,8 +3418,8 @@ msgstr "" msgid "Send Options" msgstr "" -msgid "Send" -msgstr "Odeslat" +msgid "Send to" +msgstr "" msgid "" "printers at the same time.(It depends on how many devices can undergo " @@ -3431,6 +3433,9 @@ msgid "" "minute each batch.(It depends on how long it takes to complete the heating.)" msgstr "" +msgid "Send" +msgstr "Odeslat" + msgid "Name is invalid;" msgstr "Jméno je neplatné;" @@ -3990,6 +3995,20 @@ msgstr "" "ANO pro %s%%, \n" "NE pro %s %s." +#, boost-format +msgid "" +"Invalid input format. Expected vector of dimensions in the following format: " +"\"%1%\"" +msgstr "" +"Neplatný vstupní formát. Očekává se vektor rozměrů v následujícím formátu: " +"\"%1%\"" + +msgid "Input value is out of range" +msgstr "Zadaná hodnota je mimo rozsah" + +msgid "Some extension in the input is invalid" +msgstr "Některá přípona ve vstupu je neplatná" + #, boost-format msgid "Invalid format. Expected vector format: \"%1%\"" msgstr "Neplatný formát. Očekávaný vektorový formát: \"%1%\"" @@ -7030,9 +7049,6 @@ msgstr "odeslat dokončeno" msgid "Error code" msgstr "Chybový kód" -msgid "Printer local connection failed, please try again." -msgstr "Lokální připojení k tiskárně selhalo, zkuste to znovu." - msgid "No login account, only printers in LAN mode are displayed" msgstr "Žádný přihlašovací účet, jsou zobrazeny pouze tiskárny v režimu LAN" @@ -7752,6 +7768,14 @@ msgstr "Parametry při výměně (Multi Material s více extrudery)" msgid "Printable space" msgstr "Prostor pro tisk" +#. TRN: First argument is parameter name, the second one is the value. +#, boost-format +msgid "Invalid value provided for parameter %1%: %2%" +msgstr "Neplatná hodnota zadaná pro parametr %1%: %2%" + +msgid "G-code flavor is switched" +msgstr "G-code flavor je přepnutá" + msgid "Cooling Fan" msgstr "Ventilátor chlazení" @@ -8115,6 +8139,56 @@ msgstr "Žádné aktualizace nejsou dostupné." msgid "The configuration is up to date." msgstr "Konfigurace je aktuální." +msgid "Obj file Import color" +msgstr "" + +msgid "Specify number of colors:" +msgstr "" + +#, c-format, boost-format +msgid "The color count should be in range [%d, %d]." +msgstr "" + +msgid "Recommended " +msgstr "" + +msgid "Current filament colors:" +msgstr "" + +msgid "Quick set:" +msgstr "" + +msgid "Color match" +msgstr "" + +msgid "Approximate color matching." +msgstr "" + +msgid "Append" +msgstr "" + +msgid "Add consumable extruder after existing extruders." +msgstr "" + +msgid "Reset mapped extruders." +msgstr "" + +msgid "Cluster colors" +msgstr "" + +msgid "Map Filament" +msgstr "" + +msgid "" +"Note:The color has been selected, you can choose OK \n" +" to continue or manually adjust it." +msgstr "" + +msgid "" +"Waring:The count of newly added and \n" +" current extruders exceeds 16." +msgstr "" + msgid "Ramming customization" msgstr "Přizpůsobení rapidní extruze" @@ -8199,6 +8273,32 @@ msgstr "Z" msgid "To" msgstr "Do" +msgid "" +"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" +msgstr "" + +msgid "" +"Missing BambuSource component registered for media playing! Please re-" +"install BambuStutio 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." +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?)" +msgstr "" + msgid "Bambu Network plug-in not detected." msgstr "" @@ -10284,6 +10384,22 @@ msgstr "" "nezastaví a poběží alespoň na minimální rychlost, aby se snížila frekvence " "spouštění a zastavování" +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" +"\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 " +"artefacts that appear like z banding \n" +"3. To avoid printing at speeds which cause VFAs (fine artefacts) on the " +"external walls\n" +"\n" +msgstr "" + msgid "Layer time" msgstr "Čas vrstvy" @@ -10839,6 +10955,9 @@ msgstr "" "\"close_fan_first_layers\", v takovém případě se bude ventilátor točit na " "maximální povolenou hodnotu ve vrstvě \"close_fan_first_layers\" + 1." +msgid "layer" +msgstr "" + msgid "Support interface fan speed" msgstr "Rychlost ventilátoru kontaktních vrstev podpěr" @@ -13909,32 +14028,15 @@ msgid "" "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 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" "\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 "" -"Najdete podrobnosti o kalibraci průtoku dynamiky v naší wiki.\n" -"\n" -"Obvykle kalibrace není potřebná. Při spuštění tisku s jednobarevným/" -"materiálovým filamentem a zaškrtnutou volbou \"kalibrace průtoku dynamiky\" " -"v menu spuštění tisku, tiskárna bude postupovat podle staré metody a " -"zkalibruje filament před tiskem. Při spuštění tisku s vícebarevným/" -"materiálovým filamentem bude tiskárna při každé změně filamentu používat " -"výchozí kompenzační parametr pro filament, což má většinou dobrý výsledek.\n" -"\n" -"Všimněte si, že existují některé případy, které mohou způsobit, že výsledek " -"kalibrace nebude spolehlivý: použití texturované podložky pro kalibraci; " -"podložka nemá dobrou adhezi (prosím umyjte podložku nebo naneste " -"lepidlo!) ... Více informací najdete v naší wiki.\n" -"\n" -"Výsledky kalibrace mají v našich testech asi 10% fluktuaci, což může " -"způsobit, že výsledek nebude přesně stejný u každé kalibrace. Stále zkoumáme " -"kořenovou příčinu, abychom mohli provést zlepšení v nových aktualizacích." msgid "When to use Flow Rate Calibration" msgstr "Kdy použít kalibraci průtoku" @@ -14063,26 +14165,14 @@ msgstr "Název nemůže překročit 40 znaků." msgid "" "Only one of the results with the same name will be saved. Are you sure you " -"want to overrides the other results?" +"want to override the other results?" msgstr "" -"Bude uložen pouze jeden z výsledků se stejným názvem. Opravdu chcete přepsat " -"ostatní výsledky?" - -#, 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 "" -"Už existuje historický kalibrační výsledek se stejným názvem: %s. Bude " -"uložen pouze jeden z výsledků se stejným názvem. Opravdu chcete přepsat " -"historický výsledek?" msgid "Please find the best line on your plate" msgstr "Najděte nejlepší linku na své podložce" -msgid "Please find the cornor with perfect degree of extrusion" -msgstr "Prosím, najděte roh s dokonalým stupněm extruze" +msgid "Please find the corner with perfect degree of extrusion" +msgstr "" msgid "Input Value" msgstr "Vstupní hodnota" @@ -14336,6 +14426,9 @@ msgstr "ABS/ASA" msgid "PETG" msgstr "PETG" +msgid "PCTG" +msgstr "" + msgid "TPU" msgstr "TPU" @@ -14432,6 +14525,9 @@ msgstr "Pokud je to nutné, použijte pro oddělení složek lomítko (/)." msgid "Upload to storage" msgstr "Nahrát do úložiště" +msgid "Switch to Device tab after upload." +msgstr "" + #, c-format, boost-format msgid "Upload filename doesn't end with \"%s\". Do you wish to continue?" msgstr "Název nahrávaného souboru neskončí s \"%s\". Přejete si pokračovat?" @@ -14693,12 +14789,6 @@ msgstr "" msgid "Printable Space" msgstr "" -msgid "X" -msgstr "" - -msgid "Y" -msgstr "" - msgid "Hot Bed STL" msgstr "" @@ -15044,6 +15134,12 @@ msgstr "" msgid "Refresh Printers" msgstr "Obnovit tiskárny" +msgid "View print host webui in Device tab" +msgstr "" + +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." @@ -15394,17 +15490,15 @@ msgstr "" msgid "Could not connect to SimplyPrint" msgstr "" -msgid "SimplyPrint account not linked. Go to Connect options to set it up." -msgstr "" - -msgid "" -"File size exceeds the 100MB upload limit. Please upload your file through " -"the panel." +msgid "Internel error" msgstr "" msgid "Unknown error" msgstr "" +msgid "SimplyPrint account not linked. Go to Connect options to set it up." +msgstr "" + msgid "Connection to Flashforge works correctly." msgstr "" @@ -15760,6 +15854,69 @@ msgid "" "probability of warping." msgstr "" +#~ msgid "Printer local connection failed, please try again." +#~ msgstr "Lokální připojení k tiskárně selhalo, zkuste to znovu." + +#~ 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 "" +#~ "Najdete podrobnosti o kalibraci průtoku dynamiky v naší wiki.\n" +#~ "\n" +#~ "Obvykle kalibrace není potřebná. Při spuštění tisku s jednobarevným/" +#~ "materiálovým filamentem a zaškrtnutou volbou \"kalibrace průtoku dynamiky" +#~ "\" v menu spuštění tisku, tiskárna bude postupovat podle staré metody a " +#~ "zkalibruje filament před tiskem. Při spuštění tisku s vícebarevným/" +#~ "materiálovým filamentem bude tiskárna při každé změně filamentu používat " +#~ "výchozí kompenzační parametr pro filament, což má většinou dobrý " +#~ "výsledek.\n" +#~ "\n" +#~ "Všimněte si, že existují některé případy, které mohou způsobit, že " +#~ "výsledek kalibrace nebude spolehlivý: použití texturované podložky pro " +#~ "kalibraci; podložka nemá dobrou adhezi (prosím umyjte podložku nebo " +#~ "naneste lepidlo!) ... Více informací najdete v naší wiki.\n" +#~ "\n" +#~ "Výsledky kalibrace mají v našich testech asi 10% fluktuaci, což může " +#~ "způsobit, že výsledek nebude přesně stejný u každé kalibrace. Stále " +#~ "zkoumáme kořenovou příčinu, abychom mohli provést zlepšení v nových " +#~ "aktualizacích." + +#~ msgid "" +#~ "Only one of the results with the same name will be saved. Are you sure " +#~ "you want to overrides the other results?" +#~ msgstr "" +#~ "Bude uložen pouze jeden z výsledků se stejným názvem. Opravdu chcete " +#~ "přepsat ostatní výsledky?" + +#, 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 "" +#~ "Už existuje historický kalibrační výsledek se stejným názvem: %s. Bude " +#~ "uložen pouze jeden z výsledků se stejným názvem. Opravdu chcete přepsat " +#~ "historický výsledek?" + +#~ msgid "Please find the cornor with perfect degree of extrusion" +#~ msgstr "Prosím, najděte roh s dokonalým stupněm extruze" + #~ msgid "V" #~ msgstr "V" diff --git a/localization/i18n/de/OrcaSlicer_de.po b/localization/i18n/de/OrcaSlicer_de.po index 1c6db4586b..6150a2ba9b 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: 2024-05-29 00:28+0800\n" +"POT-Creation-Date: 2024-06-21 20:03+0800\n" "PO-Revision-Date: \n" "Last-Translator: Heiko Liebscher \n" "Language-Team: \n" @@ -2895,11 +2895,14 @@ msgstr "Sind Sie sicher, dass Sie die Filamentinformationen löschen möchten?" msgid "You need to select the material type and color first." msgstr "Sie müssen zuerst den Materialtyp und die Farbe auswählen." -msgid "Please input a valid value (K in 0~0.3)" -msgstr "Bitte geben Sie einen gültigen Wert ein (K in 0~0.3)" +#, c-format, boost-format +msgid "Please input a valid value (K in %.1f~%.1f)" +msgstr "" -msgid "Please input a valid value (K in 0~0.3, N in 0.6~2.0)" -msgstr "Bitte geben Sie einen gültigen Wert ein (K in 0~0.3, N in 0.6~2.0)" +#, c-format, boost-format +msgid "Please input a valid value (K in %.1f~%.1f, N in %.1f~%.1f)" +msgstr "" +"Bitte geben Sie einen gültigen Wert ein (K in %.1f~%.1f, N in %.1f~%.1f)" msgid "Other Color" msgstr "Andere Farbe" @@ -3337,12 +3340,12 @@ msgstr "Aufgabe gesendet" msgid "Edit multiple printers" msgstr "Mehrere Drucker bearbeiten" -msgid "Select connected printetrs (0/6)" -msgstr "Wählen die verbundenen Drucker (0/6)" +msgid "Select connected printers (0/6)" +msgstr "" #, c-format, boost-format -msgid "Select Connected Printetrs (%d/6)" -msgstr "Wählen die verbundenen Drucker (%d/6)" +msgid "Select Connected Printers (%d/6)" +msgstr "" #, c-format, boost-format msgid "The maximum number of printers that can be selected is %d" @@ -3405,8 +3408,8 @@ msgstr "Druck beendet" msgid "Printing Failed" msgstr "Druck fehlgeschlagen" -msgid "PrintingPause" -msgstr "Druckpause" +msgid "Printing Pause" +msgstr "Druck pausiert" msgid "Prepare" msgstr "Vorbereiten" @@ -3505,8 +3508,8 @@ msgstr "Dynamische Flusskalibrierung" msgid "Send Options" msgstr "Senden-Optionen" -msgid "Send" -msgstr "Senden" +msgid "Send to" +msgstr "Senden an" msgid "" "printers at the same time.(It depends on how many devices can undergo " @@ -3524,6 +3527,9 @@ msgstr "" "Minute pro Charge.(Es hängt davon ab, wie lange es dauert, die Erhitzung " "abzuschließen.)" +msgid "Send" +msgstr "Senden" + msgid "Name is invalid;" msgstr "Der Name ist ungültig;" @@ -4118,6 +4124,20 @@ msgstr "" "Ja für %s%%, \n" "Nein für %s %s." +#, boost-format +msgid "" +"Invalid input format. Expected vector of dimensions in the following format: " +"\"%1%\"" +msgstr "" +"Ungültiges Eingabeformat. Erwarteter Vektor der Abmessungen im folgenden " +"Format: \"%1%\"" + +msgid "Input value is out of range" +msgstr "Der Eingabewert ist nicht im gültigen Bereich" + +msgid "Some extension in the input is invalid" +msgstr "Erweiterung in der Eingabe ist ungültig" + #, boost-format msgid "Invalid format. Expected vector format: \"%1%\"" msgstr "Ungültiges Format. Erwartetes Vektorformat: \"%1%\"" @@ -6861,8 +6881,8 @@ msgid "" "Associate OrcaSlicer with prusaslicer:// links so that Orca can open models " "from Printable.com" msgstr "" -"Verknüpfen Sie OrcaSlicer mit prusaslicer://-Links, damit Orca Modelle " -"von Printable.com öffnen kann." +"Verknüpfen Sie OrcaSlicer mit prusaslicer://-Links, damit Orca Modelle von " +"Printable.com öffnen kann." msgid "Associate bambustudio://" msgstr "Verknüpfen mit bambustudio://" @@ -7265,11 +7285,6 @@ msgstr "Senden abgeschlossen" msgid "Error code" msgstr "Fehlercode" -msgid "Printer local connection failed, please try again." -msgstr "" -"Die lokale Verbindung des Druckers ist fehlgeschlagen. Bitte versuchen Sie " -"es erneut." - msgid "No login account, only printers in LAN mode are displayed" msgstr "Kein Login-Konto, nur Drucker im LAN-Modus werden angezeigt" @@ -8049,6 +8064,14 @@ msgstr "Toolchange-Parameter bei Multi-Extruder-MM-Druckern" msgid "Printable space" msgstr "Druckbarer Raum" +#. TRN: First argument is parameter name, the second one is the value. +#, boost-format +msgid "Invalid value provided for parameter %1%: %2%" +msgstr "Ungültiger Wert für Parameter %1%: %2% angegeben" + +msgid "G-code flavor is switched" +msgstr "G-Code-Variante wird umgeschaltet" + msgid "Cooling Fan" msgstr "Kühlung" @@ -8438,6 +8461,60 @@ msgstr "Keine Updates verfügbar." msgid "The configuration is up to date." msgstr "Die Konfiguration ist auf dem neuesten Stand." +msgid "Obj file Import color" +msgstr "Obj file Import color" + +msgid "Specify number of colors:" +msgstr "Specify number of colors:" + +#, c-format, boost-format +msgid "The color count should be in range [%d, %d]." +msgstr "The color count should be in range [%d, %d]." + +msgid "Recommended " +msgstr "Recommended " + +msgid "Current filament colors:" +msgstr "Current filament colors:" + +msgid "Quick set:" +msgstr "Quick set:" + +msgid "Color match" +msgstr "Color match" + +msgid "Approximate color matching." +msgstr "Approximate color matching." + +msgid "Append" +msgstr "Append" + +msgid "Add consumable extruder after existing extruders." +msgstr "Add consumable extruder after existing extruders." + +msgid "Reset mapped extruders." +msgstr "Reset mapped extruders." + +msgid "Cluster colors" +msgstr "Cluster colors" + +msgid "Map Filament" +msgstr "Map Filament" + +msgid "" +"Note:The color has been selected, you can choose OK \n" +" to continue or manually adjust it." +msgstr "" +"Note:The color has been selected, you can choose OK \n" +" to continue or manually adjust it." + +msgid "" +"Waring:The count of newly added and \n" +" current extruders exceeds 16." +msgstr "" +"Warning: The count of newly added and \n" +" current extruders exceeds 16." + msgid "Ramming customization" msgstr "Ramming-Anpassung" @@ -8521,6 +8598,45 @@ msgstr "Von" msgid "To" msgstr "Zu" +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 wird für diese Aufgabe benötigt! Möchten Sie 'Windows " +"Media Player' für Ihr Betriebssystem aktivieren?" + +msgid "" +"BambuSource has not correctly been registered for media playing! Press Yes " +"to re-register it. You will be promoted twice" +msgstr "" +"BambuSource wurde nicht korrekt für das Abspielen von Medien registriert! " +"Drücken Sie Ja, um es erneut zu registrieren. Sie werden zweimal aufgefordert" + +msgid "" +"Missing BambuSource component registered for media playing! Please re-" +"install BambuStutio or seek after-sales help." +msgstr "" +"Fehlendes BambuSource-Komponente für das Abspielen von Medien registriert! " +"Bitte installieren Sie BambuStudio erneut oder suchen Sie nach " +"Kundendiensthilfe." + +msgid "" +"Using a BambuSource from a different install, video play may not work " +"correctly! Press Yes to fix it." +msgstr "" +"Verwendung eines BambuSource aus einer anderen Installation, das Abspielen " +"von Videos funktioniert möglicherweise nicht korrekt! Drücken Sie Ja, um es " +"zu beheben." + +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 "" +"Ihr System fehlt H.264-Codecs für GStreamer, die zum Abspielen von Videos " +"erforderlich sind. (Versuchen Sie, die Pakete gstreamer1.0-plugins-bad oder " +"gstreamer1.0-libav zu installieren und starten Sie Orca Slicer neu?)" + msgid "Bambu Network plug-in not detected." msgstr "Bambu Network Plugin nicht erkannt." @@ -10846,6 +10962,33 @@ msgstr "" "und läuft zumindest mit minimaler Geschwindigkeit, um die Häufigkeit des " "Ein- und Ausschaltens zu reduzieren" +msgid "Don't slow down outer walls" +msgstr "Äußere Wände nicht verlangsamen" + +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 " +"artefacts that appear like z banding \n" +"3. To avoid printing at speeds which cause VFAs (fine artefacts) on the " +"external walls\n" +"\n" +msgstr "" +"Wenn diese Einstellung aktiviert ist, wird sichergestellt, dass die externen " +"Umfänge nicht verlangsamt werden, um die Mindestschichtzeit zu erreichen. " +"Dies ist besonders hilfreich in den folgenden Szenarien:\n" +"\n" +" 1. Um Änderungen im Glanz beim Drucken von glänzenden Filamenten zu " +"vermeiden\n" +"2. Um Änderungen in der Geschwindigkeit der äußeren Wand zu vermeiden, die " +"leichte Wandartefakte erzeugen können, die wie Z-Banding aussehen\n" +"3. Um das Drucken mit Geschwindigkeiten zu vermeiden, die VFAs (feine " +"Artefakte) an den äußeren Wänden verursachen\n" +"\n" + msgid "Layer time" msgstr "Schichtdauer" @@ -11433,6 +11576,9 @@ msgstr "" "läuft der Lüfter bei Schicht \"close_fan_the_first_x_layers\"+ 1 mit maximal " "zulässiger Geschwindigkeit." +msgid "layer" +msgstr "Schicht" + msgid "Support interface fan speed" msgstr "Stützstruktur-Schnittstelle" @@ -14782,35 +14928,35 @@ msgid "" "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 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" "\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 "" -"Sie finden die Details der Dynamischen-Kalibrierung in unserem Wiki.\n" +"Bitte finden Sie die Details zur Flussdynamik-Kalibrierung in unserem Wiki.\n" "\n" -"Normalerweise ist die Kalibrierung nicht erforderlich. Wenn Sie einen Einzel-" -"Farb-/Materialdruck mit der Option \"Flussdynamik-Kalibrierung\" im " -"Druckstartmenü starten, wird der Drucker den alten Weg gehen und das " -"Filament vor dem Druck kalibrieren; Wenn Sie einen Mehrfarben-/Materialdruck " -"starten, verwendet der Drucker den Standard-Kompensationsparameter für das " -"Filament während jedes Filamentwechsels, was in den meisten Fällen zu einem " -"guten Ergebnis führt.\n" +"Normalerweise ist die Kalibrierung nicht erforderlich. Wenn Sie einen Druck " +"mit einer einzigen Farbe/einem einzigen Material starten und die Option " +"\"Flussdynamik-Kalibrierung\" im Druckstartmenü aktiviert ist, folgt der " +"Drucker dem alten Weg, kalibriert das Filament vor dem Druck; Wenn Sie einen " +"Druck mit mehreren Farben/Materialien starten, verwendet der Drucker den " +"Standardkompensationsparameter für das Filament bei jedem Filamentwechsel, " +"was in den meisten Fällen zu einem guten Ergebnis führt.\n" "\n" -"Bitte beachten Sie, dass es einige Fälle gibt, in denen das Kalibrierungs-" -"Ergebnis nicht zuverlässig ist: Verwendung einer Texturplatte zur " -"Kalibrierung; Die Bauplatte hat keine gute Haftung (bitte waschen Sie die " -"Bauplatte oder tragen Sie Klebestift auf!) ... Sie finden mehr in unserem " -"Wiki.\n" +"Bitte beachten Sie, dass es einige Fälle gibt, die die " +"Kalibrierungsergebnisse unzuverlässig machen können, wie z.B. unzureichende " +"Haftung auf dem Druckbett. Eine Verbesserung der Haftung kann durch Waschen " +"des Druckbetts oder Auftragen von Klebstoff erreicht werden. Weitere " +"Informationen zu diesem Thema finden Sie in unserem Wiki.\n" "\n" -"Die Kalibrierungsergebnisse haben in unserem Test etwa 10 Prozent " -"Schwankungen, was dazu führen kann, dass das Ergebnis nicht genau bei jeder " -"Kalibrierung gleich ist. Wir untersuchen immer noch die Ursache, um mit " -"neuen Updates Verbesserungen vorzunehmen." +"Die Kalibrierungsergebnisse haben in unserem Test etwa 10 Prozent Jitter, " +"was dazu führen kann, dass das Ergebnis bei jeder Kalibrierung nicht genau " +"dasselbe ist. Wir untersuchen immer noch die Ursache, um mit neuen Updates " +"Verbesserungen vorzunehmen." msgid "When to use Flow Rate Calibration" msgstr "Wann soll die Flussratenkalibrierung verwendet werden" @@ -14944,26 +15090,16 @@ msgstr "Der Name darf 40 Zeichen nicht überschreiten." msgid "" "Only one of the results with the same name will be saved. Are you sure you " -"want to overrides the other results?" +"want to override the other results?" msgstr "" -"Nur eines der Ergebnisse mit dem gleichen Namen wird gespeichert. Sind Sie " +"Es wird nur eines der Ergebnisse mit demselben Namen gespeichert. Sind Sie " "sicher, dass Sie die anderen Ergebnisse überschreiben möchten?" -#, 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 "" -"Es gibt bereits ein historisches Kalibrierungsergebnis mit dem gleichen " -"Namen: %s. Nur eines der Ergebnisse mit dem gleichen Namen wird gespeichert. " -"Sind Sie sicher, dass Sie das historische Ergebnis überschreiben möchten?" - msgid "Please find the best line on your plate" msgstr "Bitte finden Sie die beste Linie auf Ihrer Platte" -msgid "Please find the cornor with perfect degree of extrusion" -msgstr "Bitte finden Sie die Ecke mit perfektem Extrusionsgrad" +msgid "Please find the corner with perfect degree of extrusion" +msgstr "Bitte finden Sie die Ecke mit dem perfekten Extrusionsgrad" msgid "Input Value" msgstr "Eingabewert" @@ -15222,6 +15358,9 @@ msgstr "ABS/ASA" msgid "PETG" msgstr "PETG" +msgid "PCTG" +msgstr "" + msgid "TPU" msgstr "TPU" @@ -15319,6 +15458,9 @@ msgstr "" msgid "Upload to storage" msgstr "Hochladen in den Speicher" +msgid "Switch to Device tab after upload." +msgstr "" + #, c-format, boost-format msgid "Upload filename doesn't end with \"%s\". Do you wish to continue?" msgstr "" @@ -15608,12 +15750,6 @@ msgstr "Rechteck" msgid "Printable Space" msgstr "Druckbarer Raum" -msgid "X" -msgstr "X" - -msgid "Y" -msgstr "Y" - msgid "Hot Bed STL" msgstr "Hot Bed STL" @@ -16030,6 +16166,12 @@ msgstr "Sind Sie sicher, dass Sie sich abmelden möchten?" msgid "Refresh Printers" msgstr "Drucker aktualisieren" +msgid "View print host webui in Device tab" +msgstr "" + +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." @@ -16476,21 +16618,17 @@ msgstr "Erfolgreich mit SimplyPrint verbunden!" msgid "Could not connect to SimplyPrint" msgstr "Konnte keine Verbindung zu SimplyPrint herstellen" +msgid "Internel error" +msgstr "" + +msgid "Unknown error" +msgstr "Unbekannter Fehler" + msgid "SimplyPrint account not linked. Go to Connect options to set it up." msgstr "" "SimplyPrint-Konto nicht verknüpft. Gehen Sie zu den Verbindungsoptionen, um " "es einzurichten." -msgid "" -"File size exceeds the 100MB upload limit. Please upload your file through " -"the panel." -msgstr "" -"Die Dateigröße überschreitet das 100-MB-Upload-Limit. Bitte laden Sie Ihre " -"Datei über das Panel hoch." - -msgid "Unknown error" -msgstr "Unbekannter Fehler" - msgid "Connection to Flashforge works correctly." msgstr "Verbindung zu Flashforge funktioniert korrekt." @@ -16906,6 +17044,102 @@ msgstr "" "wie z.B. ABS, durch eine entsprechende Erhöhung der Heizbetttemperatur die " "Wahrscheinlichkeit von Verwerfungen verringert werden kann." +#~ msgid "" +#~ "File size exceeds the 100MB upload limit. Please upload your file through " +#~ "the panel." +#~ msgstr "" +#~ "Die Dateigröße überschreitet das 100-MB-Upload-Limit. Bitte laden Sie " +#~ "Ihre Datei über das Panel hoch." + +#~ msgid "Please input a valid value (K in 0~0.3)" +#~ msgstr "Bitte geben Sie einen gültigen Wert ein (K in 0~0.3)" + +#~ msgid "Please input a valid value (K in 0~0.3, N in 0.6~2.0)" +#~ msgstr "Bitte geben Sie einen gültigen Wert ein (K in 0~0.3, N in 0.6~2.0)" + +#~ msgid "Select connected printetrs (0/6)" +#~ msgstr "Wählen die verbundenen Drucker (0/6)" + +#, c-format, boost-format +#~ msgid "Select Connected Printetrs (%d/6)" +#~ msgstr "Wählen die verbundenen Drucker (%d/6)" + +#~ msgid "PrintingPause" +#~ msgstr "Druckpause" + +#~ msgid "Printer local connection failed, please try again." +#~ msgstr "" +#~ "Die lokale Verbindung des Druckers ist fehlgeschlagen. Bitte versuchen " +#~ "Sie es erneut." + +#~ 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 "" +#~ "Sie finden die Details der Dynamischen-Kalibrierung in unserem Wiki.\n" +#~ "\n" +#~ "Normalerweise ist die Kalibrierung nicht erforderlich. Wenn Sie einen " +#~ "Einzel-Farb-/Materialdruck mit der Option \"Flussdynamik-Kalibrierung\" " +#~ "im Druckstartmenü starten, wird der Drucker den alten Weg gehen und das " +#~ "Filament vor dem Druck kalibrieren; Wenn Sie einen Mehrfarben-/" +#~ "Materialdruck starten, verwendet der Drucker den Standard-" +#~ "Kompensationsparameter für das Filament während jedes Filamentwechsels, " +#~ "was in den meisten Fällen zu einem guten Ergebnis führt.\n" +#~ "\n" +#~ "Bitte beachten Sie, dass es einige Fälle gibt, in denen das Kalibrierungs-" +#~ "Ergebnis nicht zuverlässig ist: Verwendung einer Texturplatte zur " +#~ "Kalibrierung; Die Bauplatte hat keine gute Haftung (bitte waschen Sie die " +#~ "Bauplatte oder tragen Sie Klebestift auf!) ... Sie finden mehr in unserem " +#~ "Wiki.\n" +#~ "\n" +#~ "Die Kalibrierungsergebnisse haben in unserem Test etwa 10 Prozent " +#~ "Schwankungen, was dazu führen kann, dass das Ergebnis nicht genau bei " +#~ "jeder Kalibrierung gleich ist. Wir untersuchen immer noch die Ursache, um " +#~ "mit neuen Updates Verbesserungen vorzunehmen." + +#~ msgid "" +#~ "Only one of the results with the same name will be saved. Are you sure " +#~ "you want to overrides the other results?" +#~ msgstr "" +#~ "Nur eines der Ergebnisse mit dem gleichen Namen wird gespeichert. Sind " +#~ "Sie sicher, dass Sie die anderen Ergebnisse überschreiben möchten?" + +#, 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 "" +#~ "Es gibt bereits ein historisches Kalibrierungsergebnis mit dem gleichen " +#~ "Namen: %s. Nur eines der Ergebnisse mit dem gleichen Namen wird " +#~ "gespeichert. Sind Sie sicher, dass Sie das historische Ergebnis " +#~ "überschreiben möchten?" + +#~ msgid "Please find the cornor with perfect degree of extrusion" +#~ msgstr "Bitte finden Sie die Ecke mit perfektem Extrusionsgrad" + +#~ msgid "X" +#~ msgstr "X" + +#~ msgid "Y" +#~ msgstr "Y" + #~ msgid "" #~ "Associate OrcaSlicer with prusaslicer:// links so that Orca can open " #~ "PrusaSlicer links from Printable.com" diff --git a/localization/i18n/en/OrcaSlicer_en.po b/localization/i18n/en/OrcaSlicer_en.po index 9854ec3bc7..733bbaae89 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: 2024-05-29 00:28+0800\n" +"POT-Creation-Date: 2024-06-21 20:03+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -2788,11 +2788,13 @@ msgstr "Are you sure you want to clear the filament information?" msgid "You need to select the material type and color first." msgstr "You need to select the material type and color first." -msgid "Please input a valid value (K in 0~0.3)" -msgstr "Please input a valid value (K in 0~0.3)" +#, c-format, boost-format +msgid "Please input a valid value (K in %.1f~%.1f)" +msgstr "" -msgid "Please input a valid value (K in 0~0.3, N in 0.6~2.0)" -msgstr "Please input a valid value (K in 0~0.3, N in 0.6~2.0)" +#, c-format, boost-format +msgid "Please input a valid value (K in %.1f~%.1f, N in %.1f~%.1f)" +msgstr "" msgid "Other Color" msgstr "Other Color" @@ -3202,11 +3204,11 @@ msgstr "Task Sent" msgid "Edit multiple printers" msgstr "" -msgid "Select connected printetrs (0/6)" +msgid "Select connected printers (0/6)" msgstr "" #, c-format, boost-format -msgid "Select Connected Printetrs (%d/6)" +msgid "Select Connected Printers (%d/6)" msgstr "" #, c-format, boost-format @@ -3268,7 +3270,7 @@ msgstr "" msgid "Printing Failed" msgstr "" -msgid "PrintingPause" +msgid "Printing Pause" msgstr "" msgid "Prepare" @@ -3367,8 +3369,8 @@ msgstr "" msgid "Send Options" msgstr "Send Options" -msgid "Send" -msgstr "Send" +msgid "Send to" +msgstr "" msgid "" "printers at the same time.(It depends on how many devices can undergo " @@ -3385,6 +3387,9 @@ msgid "" msgstr "" "minute each batch. (It depends on how long it takes to complete heating.)" +msgid "Send" +msgstr "Send" + msgid "Name is invalid;" msgstr "Name is invalid;" @@ -3948,6 +3953,18 @@ msgstr "" "YES for %s%%, \n" "NO for %s %s." +#, boost-format +msgid "" +"Invalid input format. Expected vector of dimensions in the following format: " +"\"%1%\"" +msgstr "" + +msgid "Input value is out of range" +msgstr "" + +msgid "Some extension in the input is invalid" +msgstr "" + #, boost-format msgid "Invalid format. Expected vector format: \"%1%\"" msgstr "Invalid format. Expected vector format: \"%1%\"" @@ -6981,9 +6998,6 @@ msgstr "Send complete" msgid "Error code" msgstr "Error code" -msgid "Printer local connection failed, please try again." -msgstr "Printer local connection failed; please try again." - msgid "No login account, only printers in LAN mode are displayed" msgstr "No login account, only printers in LAN mode are displayed" @@ -7719,6 +7733,14 @@ msgstr "" msgid "Printable space" msgstr "Printable space" +#. TRN: First argument is parameter name, the second one is the value. +#, boost-format +msgid "Invalid value provided for parameter %1%: %2%" +msgstr "" + +msgid "G-code flavor is switched" +msgstr "" + msgid "Cooling Fan" msgstr "" @@ -8086,6 +8108,60 @@ msgstr "No updates available." msgid "The configuration is up to date." msgstr "The configuration is up to date." +msgid "Obj file Import color" +msgstr "Obj file Import color" + +msgid "Specify number of colors:" +msgstr "Specify number of colors:" + +#, c-format, boost-format +msgid "The color count should be in range [%d, %d]." +msgstr "The color count should be in range [%d, %d]." + +msgid "Recommended " +msgstr "Recommended " + +msgid "Current filament colors:" +msgstr "Current filament colors:" + +msgid "Quick set:" +msgstr "Quick set:" + +msgid "Color match" +msgstr "Color match" + +msgid "Approximate color matching." +msgstr "Approximate color matching." + +msgid "Append" +msgstr "Append" + +msgid "Add consumable extruder after existing extruders." +msgstr "Add consumable extruder after existing extruders." + +msgid "Reset mapped extruders." +msgstr "Reset mapped extruders." + +msgid "Cluster colors" +msgstr "Cluster colors" + +msgid "Map Filament" +msgstr "Map Filament" + +msgid "" +"Note:The color has been selected, you can choose OK \n" +" to continue or manually adjust it." +msgstr "" +"Note:The color has been selected, you can choose OK \n" +" to continue or manually adjust it." + +msgid "" +"Waring:The count of newly added and \n" +" current extruders exceeds 16." +msgstr "" +"Warning: The count of newly added and \n" +" current extruders exceeds 16." + msgid "Ramming customization" msgstr "" @@ -8159,6 +8235,32 @@ msgstr "From" msgid "To" msgstr "To" +msgid "" +"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" +msgstr "" + +msgid "" +"Missing BambuSource component registered for media playing! Please re-" +"install BambuStutio 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." +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?)" +msgstr "" + msgid "Bambu Network plug-in not detected." msgstr "Bambu Network plug-in not detected." @@ -10203,6 +10305,22 @@ msgstr "" "and will instead run at least at minimum speed to reduce the frequency of " "starting and stopping." +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" +"\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 " +"artefacts that appear like z banding \n" +"3. To avoid printing at speeds which cause VFAs (fine artefacts) on the " +"external walls\n" +"\n" +msgstr "" + msgid "Layer time" msgstr "Layer time" @@ -10705,6 +10823,9 @@ msgid "" "maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1." msgstr "" +msgid "layer" +msgstr "" + msgid "Support interface fan speed" msgstr "" @@ -13615,32 +13736,15 @@ msgid "" "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 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" "\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 "" -"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." msgid "When to use Flow Rate Calibration" msgstr "When to use Flow Rate Calibration" @@ -13767,25 +13871,15 @@ msgstr "The name cannot exceed 40 characters." msgid "" "Only one of the results with the same name will be saved. Are you sure you " -"want to overrides the other results?" +"want to override the other results?" msgstr "" "Only one of the results with the same name will be saved. Are you sure you " "want to replace the other results?" -#, 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 "" -"There is already a previous calibration result with the same name: %s. Only " -"one of the results with the same name is saved. Are you sure you want to " -"replace the previous result?" - msgid "Please find the best line on your plate" msgstr "Please find the best line on your plate" -msgid "Please find the cornor with perfect degree of extrusion" +msgid "Please find the corner with perfect degree of extrusion" msgstr "Please find the corner with the perfect degree of extrusion" msgid "Input Value" @@ -14037,6 +14131,9 @@ msgstr "ABS/ASA" msgid "PETG" msgstr "PETG" +msgid "PCTG" +msgstr "" + msgid "TPU" msgstr "TPU" @@ -14121,6 +14218,9 @@ msgstr "Use forward slashes ( / ) as a directory separator if needed." msgid "Upload to storage" msgstr "" +msgid "Switch to Device tab after upload." +msgstr "" + #, c-format, boost-format msgid "Upload filename doesn't end with \"%s\". Do you wish to continue?" msgstr "Upload filename doesn't end with \"%s\". Do you wish to continue?" @@ -14391,12 +14491,6 @@ msgstr "Rectangle" msgid "Printable Space" msgstr "Printable Space" -msgid "X" -msgstr "" - -msgid "Y" -msgstr "" - msgid "Hot Bed STL" msgstr "Hot Bed STL" @@ -14742,7 +14836,7 @@ msgstr "Daily Tips" #, c-format, boost-format msgid "nozzle memorized: %.1f %s" -msgstr "" +msgstr "nozzle memorized: %.1f %s" msgid "" "Your nozzle diameter in preset is not consistent with memorized nozzle " @@ -14787,6 +14881,12 @@ msgstr "" msgid "Refresh Printers" msgstr "Refresh Printers" +msgid "View print host webui in Device tab" +msgstr "" + +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." @@ -15216,17 +15316,15 @@ msgstr "" msgid "Could not connect to SimplyPrint" msgstr "" -msgid "SimplyPrint account not linked. Go to Connect options to set it up." -msgstr "" - -msgid "" -"File size exceeds the 100MB upload limit. Please upload your file through " -"the panel." +msgid "Internel error" msgstr "" msgid "Unknown error" msgstr "" +msgid "SimplyPrint account not linked. Go to Connect options to set it up." +msgstr "" + msgid "Connection to Flashforge works correctly." msgstr "" @@ -15587,6 +15685,74 @@ msgstr "" "ABS, appropriately increasing the heatbed temperature can reduce the " "probability of warping?" +#~ msgid "Please input a valid value (K in 0~0.3)" +#~ msgstr "Please input a valid value (K in 0~0.3)" + +#~ msgid "Please input a valid value (K in 0~0.3, N in 0.6~2.0)" +#~ msgstr "Please input a valid value (K in 0~0.3, N in 0.6~2.0)" + +#~ msgid "Printer local connection failed, please try again." +#~ msgstr "Printer local connection failed; please try again." + +#~ 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 "" +#~ "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." + +#~ msgid "" +#~ "Only one of the results with the same name will be saved. Are you sure " +#~ "you want to overrides the other results?" +#~ msgstr "" +#~ "Only one of the results with the same name will be saved. Are you sure " +#~ "you want to replace the other results?" + +#, 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 "" +#~ "There is already a previous calibration result with the same name: %s. " +#~ "Only one of the results with the same name is saved. Are you sure you " +#~ "want to replace the previous result?" + +#~ msgid "Please find the cornor with perfect degree of extrusion" +#~ msgstr "Please find the corner with the perfect degree of extrusion" + #~ msgid "V" #~ msgstr "V" diff --git a/localization/i18n/es/OrcaSlicer_es.po b/localization/i18n/es/OrcaSlicer_es.po index b54737847e..aa723bf2bb 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: 2024-05-29 00:28+0800\n" +"POT-Creation-Date: 2024-06-21 20:03+0800\n" "PO-Revision-Date: \n" "Last-Translator: Carlos Fco. Caruncho Serrano \n" "Language-Team: \n" @@ -1638,7 +1638,7 @@ msgid "Infill" msgstr "Relleno" msgid "Support" -msgstr "Soporte" +msgstr "Soportes" msgid "Flush options" msgstr "Opciones de caudal" @@ -1972,31 +1972,31 @@ msgid "Select All" msgstr "Seleccionar Todo" msgid "select all objects on current plate" -msgstr "seleccionar todos los objetos de la bandeja actual" +msgstr "Seleccionar todos los objetos de la bandeja actual" msgid "Delete All" msgstr "Borrar todo" msgid "delete all objects on current plate" -msgstr "eliminar todos los objetos de la bandeja actual" +msgstr "Eliminar todos los objetos de la bandeja actual" msgid "Arrange" msgstr "Organizar" msgid "arrange current plate" -msgstr "posicionar la bandeja actual" +msgstr "Posicionar la bandeja actual" msgid "Reload All" msgstr "Recargar todo" msgid "reload all from disk" -msgstr "recargar todo desde disco" +msgstr "Recargar todo desde disco" msgid "Auto Rotate" msgstr "Rotación Automática" msgid "auto rotate current plate" -msgstr "auto rotar la bandeja actual" +msgstr "Auto rotar la bandeja actual" msgid "Delete Plate" msgstr "Borrar Bandeja" @@ -2416,16 +2416,18 @@ msgid "Failed to connect to the server" msgstr "No se ha podido conectar con el servidor" msgid "Check the status of current system services" -msgstr "Check the status of current system services" +msgstr "Comprobar el estado de los servicios actuales del sistema" msgid "code" -msgstr "code" +msgstr "código" msgid "Failed to connect to cloud service" -msgstr "Failed to connect to cloud service" +msgstr "Error al conectar con el servicio en la nube" msgid "Please click on the hyperlink above to view the cloud service status" -msgstr "Please click on the hyperlink above to view the cloud service status" +msgstr "" +"Haga clic en el hipervínculo anterior para ver el estado del servicio en la " +"nube" msgid "Failed to connect to the printer" msgstr "No se ha podido conectar a la impresora" @@ -2434,7 +2436,7 @@ msgid "Connection to printer failed" msgstr "Connection to printer failed" msgid "Please check the network connection of the printer and Orca." -msgstr "Please check the network connection of the printer and Orca." +msgstr "Compruebe la conexión de red de la impresora y Orca." msgid "Connecting..." msgstr "Conectando…" @@ -2458,7 +2460,7 @@ msgid "AMS not connected" msgstr "AMS no conectado" msgid "Load" -msgstr "Load" +msgstr "Carga" msgid "Unload" msgstr "Descarga" @@ -2517,7 +2519,7 @@ msgid "Check filament location" msgstr "Probar localización de filamento" msgid "Grab new filament" -msgstr "Grab new filament" +msgstr "Cargar nuevo filamento" msgid "" "Choose an AMS slot then press \"Load\" or \"Unload\" button to automatically " @@ -2607,10 +2609,10 @@ msgid "Filling" msgstr "Relleno" msgid "Bed filling canceled." -msgstr "Bed filling canceled." +msgstr "Relleno de cama cancelado." msgid "Bed filling done." -msgstr "Bed filling done." +msgstr "Relleno de cama hecho." msgid "Searching for optimal orientation" msgstr "Buscando una orientación óptima" @@ -2628,16 +2630,18 @@ msgid "Login failed" msgstr "Fallo en el inicio de sesión" msgid "Please check the printer network connection." -msgstr "Por favor, comprueba la conexión de área local." +msgstr "Por favor, compruebe la conexión de área local." msgid "Abnormal print file data. Please slice again." -msgstr "Abnormal print file data: please slice again." +msgstr "Datos de archivo de impresión anormales. Vuelva a laminar." msgid "Task canceled." -msgstr "Task canceled." +msgstr "Tarea cancelada." msgid "Upload task timed out. Please check the network status and try again." -msgstr "Upload task timed out. Please check the network status and try again." +msgstr "" +"Se ha agotado el tiempo de carga. Compruebe el estado de la red e inténtelo " +"de nuevo." msgid "Cloud service connection failed. Please try again." msgstr "" @@ -2645,43 +2649,47 @@ msgstr "" "nuevo." msgid "Print file not found. please slice again." -msgstr "Print file not found; please slice again." +msgstr "" +"No se ha encontrado el archivo de impresión; por favor, lamine de nuevo." msgid "" "The print file exceeds the maximum allowable size (1GB). Please simplify the " "model and slice again." msgstr "" -"The print file exceeds the maximum allowable size (1GB). Please simplify the " -"model and slice again." +"El archivo de impresión supera el tamaño máximo permitido (1 GB). Por favor, " +"simplifique el modelo y vuelva a laminarlo" msgid "Failed to send the print job. Please try again." msgstr "Fallo enviando el trabajo de impresión. Por favor inténtelo otra vez." msgid "Failed to upload file to ftp. Please try again." -msgstr "Failed to upload file to ftp. Please try again." +msgstr "" +"No se ha podido cargar el archivo en el ftp. Por favor, inténtelo de nuevo." msgid "" "Check the current status of the bambu server by clicking on the link above." msgstr "" -"Check the current status of the Bambu Lab server by clicking on the link " -"above." +"Compruebe el estado actual del servidor Bambú haciendo clic en el enlace " +"anterior." msgid "" "The size of the print file is too large. Please adjust the file size and try " "again." msgstr "" -"The size of the print file is too large. Please adjust the file size and try " -"again." +"El tamaño del archivo de impresión es demasiado grande. Ajuste el tamaño del " +"archivo e inténtalo de nuevo." msgid "Print file not found, Please slice it again and send it for printing." -msgstr "Print file not found; please slice it again and send it for printing." +msgstr "" +"Archivo de impresión no encontrado; por favor, laminelo de nuevo y envíelo " +"para imprimir." msgid "" "Failed to upload print file to FTP. Please check the network status and try " "again." msgstr "" -"Failed to upload print file via FTP. Please check the network status and try " -"again." +"No se ha podido cargar el archivo de impresión a través de FTP. Compruebe el " +"estado de la red e inténtelo de nuevo." msgid "Sending print job over LAN" msgstr "Enviando el trabajo de impresión a través de la LAN" @@ -2891,11 +2899,13 @@ msgstr "¿Estás seguro que quieres limpiar la información de filamento?" msgid "You need to select the material type and color first." msgstr "Necesitas seleccionar el tipo y el color del material primero." -msgid "Please input a valid value (K in 0~0.3)" -msgstr "Por favor, introduzca un valor válido (K en 0~0.3)" +#, c-format, boost-format +msgid "Please input a valid value (K in %.1f~%.1f)" +msgstr "Por favor, introduzca un valor válido (K en %.1f~%.1f)" -msgid "Please input a valid value (K in 0~0.3, N in 0.6~2.0)" -msgstr "Por favor, introduzca un valor válido (K en 0~0.3, N en 0.6~2.0))" +#, c-format, boost-format +msgid "Please input a valid value (K in %.1f~%.1f, N in %.1f~%.1f)" +msgstr "Introduzca un valor válido (K en %.1f~%.1f, N en %.1f~%.1f)" msgid "Other Color" msgstr "Otro color" @@ -3319,20 +3329,20 @@ msgid "Device" msgstr "Dispositivo" msgid "Task Sending" -msgstr "Task Sending" +msgstr "Envío de tareas" msgid "Task Sent" -msgstr "Task Sent" +msgstr "Tarea enviada" msgid "Edit multiple printers" msgstr "Editar varias impresoras" -msgid "Select connected printetrs (0/6)" +msgid "Select connected printers (0/6)" msgstr "Seleccionar impresoras conectadas (0/6)" #, c-format, boost-format -msgid "Select Connected Printetrs (%d/6)" -msgstr "Seleccionar impresoras conectadas (%d/6)" +msgid "Select Connected Printers (%d/6)" +msgstr "Seleccionar Impresoras Conectadas (%d/6)" #, c-format, boost-format msgid "The maximum number of printers that can be selected is %d" @@ -3342,7 +3352,7 @@ msgid "Offline" msgstr "Fuera de línea" msgid "No task" -msgstr "No task" +msgstr "Ninguna tarea" msgid "View" msgstr "Vista" @@ -3354,16 +3364,16 @@ msgid "Edit Printers" msgstr "Editar Impresoras" msgid "Device Name" -msgstr "Device Name" +msgstr "Nombre del dispositivo" msgid "Task Name" -msgstr "Task Name" +msgstr "Nombre de la tarea" msgid "Device Status" -msgstr "Device Status" +msgstr "Estado del dispositivo" msgid "Actions" -msgstr "Actions" +msgstr "Acciones" msgid "" "Please select the devices you would like to manage here (up to 6 devices)" @@ -3394,8 +3404,8 @@ msgstr "Impresión Finalizada" msgid "Printing Failed" msgstr "Impresión fallida" -msgid "PrintingPause" -msgstr "Impresión Pausada" +msgid "Printing Pause" +msgstr "Pausa de Impresión" msgid "Prepare" msgstr "Preparar" @@ -3419,7 +3429,7 @@ msgid "Sending Failed" msgstr "Envío fallido" msgid "Print Success" -msgstr "Imprimir Éxito" +msgstr "Impresión exitosa" msgid "Print Failed" msgstr "Error de impresión" @@ -3434,25 +3444,25 @@ msgid "Stop" msgstr "Detener" msgid "Task Status" -msgstr "Task Status" +msgstr "Estado de la tarea" msgid "Sent Time" -msgstr "Sent Time" +msgstr "Hora de envío" msgid "There are no tasks to be sent!" -msgstr "There are no tasks to be sent!" +msgstr "No hay tareas que enviar." msgid "No historical tasks!" -msgstr "No historical tasks!" +msgstr "Sin tareas históricas" msgid "Loading..." msgstr "Cargando..." msgid "No AMS" -msgstr "No AMS" +msgstr "Sin AMS" msgid "Send to Multi-device" -msgstr "Send to Multi-device" +msgstr "Enviar a multidispositivo" msgid "Preparing print job" msgstr "Preparando el trabajo de impresión" @@ -3467,19 +3477,19 @@ msgid "The number of printers in use simultaneously cannot be equal to 0." msgstr "El número de impresoras en uso simultáneamente no puede ser igual a 0." msgid "Use External Spool" -msgstr "Use External Spool" +msgstr "Utilizar carrete externo" msgid "Use AMS" -msgstr "Use AMS" +msgstr "Usar AMS" msgid "Select Printers" -msgstr "Select Printers" +msgstr "Seleccionar impresoras" msgid "Ams Status" -msgstr "AMS Status" +msgstr "Estado del AMS" msgid "Printing Options" -msgstr "Printing Options" +msgstr "Opciones de impresión" msgid "Bed Leveling" msgstr "Nivelación de la cama" @@ -3491,25 +3501,28 @@ msgid "Flow Dynamic Calibration" msgstr "Calibración dinámica del caudal" msgid "Send Options" -msgstr "Send Options" +msgstr "Opciones de envío" -msgid "Send" -msgstr "Enviar" +msgid "Send to" +msgstr "Mandar a" msgid "" "printers at the same time.(It depends on how many devices can undergo " "heating at the same time.)" msgstr "" -"printers at the same time. (It depends on how many devices can undergo " -"heating at the same time.)" +"impresoras al mismo tiempo.(Depende de cuántos aparatos puedan calentarse al " +"mismo tiempo)." msgid "Wait" -msgstr "Wait" +msgstr "Espere" msgid "" "minute each batch.(It depends on how long it takes to complete the heating.)" msgstr "" -"minute each batch. (It depends on how long it takes to complete heating.)" +"minuto cada tanda. (Depende de lo que tarde en terminar de calentarse)." + +msgid "Send" +msgstr "Enviar" msgid "Name is invalid;" msgstr "El nombre no es válido;" @@ -3530,7 +3543,7 @@ msgid "The name is not allowed to end with space character." msgstr "No se permite que el nombre termine con un espacio." msgid "The name length exceeds the limit." -msgstr "The name length exceeds the limit." +msgstr "La longitud del nombre supera el límite." msgid "Origin" msgstr "Origen" @@ -3615,8 +3628,8 @@ msgid "" "The recommended minimum temperature cannot be higher than the recommended " "maximum temperature.\n" msgstr "" -"The recommended minimum temperature cannot be higher than the recommended " -"maximum temperature.\n" +"La temperatura mínima recomendada no puede ser superior a la temperatura " +"máxima recomendada.\\n\n" msgid "Please check.\n" msgstr "Por favor, compruébalo.\n" @@ -4084,7 +4097,7 @@ msgstr "Validación de parámetros" #, c-format, boost-format msgid "Value %s is out of range. The valid range is from %d to %d." -msgstr "Value %s is out of range. The valid range is from %d to %d." +msgstr "El valor %s está fuera de rango. El rango válido es de %d a %d." msgid "Value is out of range." msgstr "El valor está fuera de rango." @@ -4099,6 +4112,20 @@ msgstr "" "SÍ para %s%%, \n" "NO para %s %s." +#, boost-format +msgid "" +"Invalid input format. Expected vector of dimensions in the following format: " +"\"%1%\"" +msgstr "" +"Formato de entrada no válido. Se espera un vector de dimensiones con el " +"siguiente formato: \"%1%\"" + +msgid "Input value is out of range" +msgstr "Valor de entrada fuera de rango" + +msgid "Some extension in the input is invalid" +msgstr "Alguna extensión de la entrada no es válida" + #, boost-format msgid "Invalid format. Expected vector format: \"%1%\"" msgstr "Formato inválido. Formato de vector esperado: \"%1%\"" @@ -4275,10 +4302,10 @@ msgid "Normal mode" msgstr "Modo normal" msgid "Total Filament" -msgstr "Total Filament" +msgstr "Filamento total" msgid "Model Filament" -msgstr "Model Filament" +msgstr "Modelo Filamento" msgid "Prepare time" msgstr "Planificar tiempo" @@ -4374,7 +4401,7 @@ msgid "Spacing" msgstr "Separación" msgid "0 means auto spacing." -msgstr "0 means auto spacing." +msgstr "0 significa auto separación." msgid "Auto rotate for arrangement" msgstr "Rotación automática para el posicionamiento" @@ -4861,7 +4888,7 @@ msgid "Show &Overhang" msgstr "Show &Overhang" msgid "Show object overhang highlight in 3D scene" -msgstr "Show object overhang highlight in 3D scene" +msgstr "Mostrar resalte de voladizos de objeto en escena 3D" msgid "Preferences" msgstr "Preferencias" @@ -4921,7 +4948,7 @@ msgid "Open a G-code file" msgstr "Abrir un archivo G-Code" msgid "Re&load from Disk" -msgstr "Re&cargar desde el Disco" +msgstr "Recargar desde el Disco" msgid "Reload the plater from disk" msgstr "Cargar la base del disco" @@ -5396,7 +5423,7 @@ msgid "Control" msgstr "Control" msgid "Printer Parts" -msgstr "Printer Parts" +msgstr "Partes de la Impresora" msgid "Print Options" msgstr "Opciones de Impresora" @@ -5525,10 +5552,10 @@ msgid "Number of images successfully uploaded" msgstr "Número de imágenes cargadas satisfactoriamente" msgid " upload failed" -msgstr " carga fallida" +msgstr " Carga fallida" msgid " upload config prase failed\n" -msgstr " error en la carga de configuración\n" +msgstr " Error en la carga de configuración\n" msgid " No corresponding storage bucket\n" msgstr " Sin cubo de almacenamiento correspondiente\n" @@ -5570,7 +5597,7 @@ msgstr "" " código de error: " msgid "error message: " -msgstr "mensaje de error: " +msgstr "Mensaje de error: " msgid "" "\n" @@ -5857,13 +5884,15 @@ msgid "Filament Tangle Detect" msgstr "Detección de Enredos de Filamentos" msgid "Nozzle Clumping Detection" -msgstr "Nozzle Clumping Detection" +msgstr "Detección de Atascos de Boquilla" msgid "Check if the nozzle is clumping by filament or other foreign objects." -msgstr "Check if the nozzle is clumping by filament or other foreign objects." +msgstr "" +"Compruebe si la boquilla está atascada por el filamento u otros objetos " +"extraños." msgid "Nozzle Type" -msgstr "Nozzle Type" +msgstr "Tipo de Boquilla" msgid "Stainless Steel" msgstr "Acero Inoxidable" @@ -6400,7 +6429,7 @@ msgid "Can not add models when in preview mode!" msgstr "No se pueden añadir modelos en el modo de vista previa!" msgid "All objects will be removed, continue?" -msgstr "Todos los objetos serán eliminados, deseas continuar?" +msgstr "Todos los objetos serán eliminados, ¿desea continuar?" msgid "The current project has unsaved changes, save it before continue?" msgstr "" @@ -6732,10 +6761,13 @@ msgstr "Si está activado, auto calcula en cada cambio de color." msgid "" "Flushing volumes: Auto-calculate every time when the filament is changed." -msgstr "Flushing volumes: Auto-calculate every time the filament is changed." +msgstr "" +"Volúmenes de descarga: Cálculo automático cada vez que se cambia el " +"filamento." msgid "If enabled, auto-calculate every time when filament is changed" -msgstr "If enabled, auto-calculate every time filament is changed" +msgstr "" +"Si está activada, calcula automáticamente cada vez que se cambia el filamento" msgid "Remember printer configuration" msgstr "Recordar la configuración de la impresora" @@ -6754,8 +6786,8 @@ msgid "" "With this option enabled, you can send a task to multiple devices at the " "same time and manage multiple devices." msgstr "" -"With this option enabled, you can send a task to multiple devices at the " -"same time and manage multiple devices." +"Con esta opción activada, puede enviar una tarea a varios dispositivos al " +"mismo tiempo y gestionar varios dispositivos." msgid "Network" msgstr "Red" @@ -6868,7 +6900,7 @@ msgstr "" "ocasional." msgid "every" -msgstr "todo" +msgstr "Todo" msgid "The peroid of backup in seconds." msgstr "El periodo de copia de seguridad en segundos." @@ -7021,16 +7053,16 @@ msgid "The selected preset is null!" msgstr "¡El ajuste seleccionado es nulo!" msgid "End" -msgstr "End" +msgstr "Final" msgid "Customize" msgstr "Personalizar" msgid "Other layer filament sequence" -msgstr "Other layer filament sequence" +msgstr "Secuencia de filamentos de otras capas" msgid "Please input layer value (>= 2)." -msgstr "Please input layer value (>= 2)." +msgstr "Introduzca el valor de la capa (>= 2)." msgid "Plate name" msgstr "Nombre de Bandeja" @@ -7042,10 +7074,10 @@ msgid "Print sequence" msgstr "Secuencia de impresión" msgid "Same as Global" -msgstr "Same as Global" +msgstr "Igual que Global" msgid "Disable" -msgstr "Disable" +msgstr "Desactivar" msgid "Spiral vase" msgstr "Vaso en espiral" @@ -7054,7 +7086,7 @@ msgid "First layer filament sequence" msgstr "Secuencia de primera capa de filamento" msgid "Same as Global Plate Type" -msgstr "Same as Global Plate Type" +msgstr "Igual que el tipo de placa global" msgid "Same as Global Bed Type" msgstr "Lo mismo que el Tipo de Cama Global" @@ -7073,7 +7105,7 @@ msgstr "Desconectarse" msgid "Slice all plate to obtain time and filament estimation" msgstr "" -"Rebana todas las piezas para obtener una estimación del tiempo y del " +"Lamina todas las piezas para obtener una estimación del tiempo y del " "filamento" msgid "Packing project data into 3mf file" @@ -7096,7 +7128,7 @@ msgid "Publish was cancelled" msgstr "La publicación fue cancelada" msgid "Slicing Plate 1" -msgstr "Bandeja de corte 1" +msgstr "Bandeja de Laminado 1" msgid "Packing data to 3mf" msgstr "Empaquetando datos a 3mf" @@ -7225,9 +7257,6 @@ msgstr "envío completo" msgid "Error code" msgstr "Error code" -msgid "Printer local connection failed, please try again." -msgstr "Printer local connection failed; please try again." - msgid "No login account, only printers in LAN mode are displayed" msgstr "Sin cuenta de acceso, sólo se muestran las impresoras en modo LAN" @@ -7315,8 +7344,8 @@ msgid "" "The selected printer (%s) is incompatible with the chosen printer profile in " "the slicer (%s)." msgstr "" -"The selected printer (%s) is incompatible with the chosen printer profile in " -"the slicer (%s)." +"La impresora seleccionada (%s) es incompatible con el perfil de impresora " +"elegido en la cortadora (%s)." msgid "An SD card needs to be inserted to record timelapse." msgstr "Es necesario insertar una tarjeta SD para guardar el timelapse." @@ -7368,8 +7397,8 @@ msgid "" "start printing." msgstr "" "Hay algunos filamentos desconocidos en los mapeados AMS. Por favor, " -"compruebe si son los filamentos requeriso. Si lo son, presione \"Confirmar\" " -"para empezar a imprimir." +"compruebe si son los filamentos requeridos. Si lo son, presione \"Confirmar" +"\" para empezar a imprimir." #, c-format, boost-format msgid "nozzle in preset: %s %s" @@ -7384,20 +7413,22 @@ msgid "" "If you changed your nozzle lately, please go to Device > Printer Parts to " "change settings." msgstr "" -"Your nozzle diameter in sliced file is not consistent with the saved nozzle. " -"If you changed your nozzle lately, please go to Device > Printer Parts to " -"change settings." +"El diámetro de la boquilla en el archivo laminado no coincide con la " +"boquilla guardada. Si ha cambiado la boquilla últimamente, vaya a " +"Dispositivo > Piezas de la impresora para cambiar la configuración." #, c-format, boost-format msgid "" "Printing high temperature material(%s material) with %s may cause nozzle " "damage" msgstr "" -"Printing high temperature material(%s material) with %s may cause nozzle " -"damage" +"La impresión de material de alta temperatura (%s material) con %s puede " +"causar daños en la boquilla" msgid "Please fix the error above, otherwise printing cannot continue." -msgstr "Please fix the error above, otherwise printing cannot continue." +msgstr "" +"Por favor, corrija el error anterior, de lo contrario la impresión no podrá " +"continuar." msgid "" "Please click the confirm button if you still want to proceed with printing." @@ -7413,17 +7444,17 @@ msgid "" "Caution to use! Flow calibration on Textured PEI Plate may fail due to the " "scattered surface." msgstr "" -"¡Precaución! La calibración del caudal en la bandeja PEI texturizada puede " +"¡Precaución! La calibración del flujo en la bandeja PEI texturizada puede " "fallar debido a la superficie dispersa." msgid "Automatic flow calibration using Micro Lidar" -msgstr "Calibración automática de caudal usando Micro Lidar" +msgstr "Calibración automática de flujo usando Micro Lidar" msgid "Modifying the device name" msgstr "Modificar el nombre del dispositivo" msgid "Bind with Pin Code" -msgstr "Bind with Pin Code" +msgstr "Vincular con código PIN" msgid "Send to Printer SD card" msgstr "Enviar a la tarjeta SD de la impresora" @@ -7456,28 +7487,28 @@ msgid "View all Daily tips" msgstr "Mostrar todos los consejos del día" msgid "Failed to create socket" -msgstr "Failed to create socket" +msgstr "Fallo al crear socket" msgid "Failed to connect socket" -msgstr "Failed to connect socket" +msgstr "Error al conectar el socket" msgid "Failed to publish login request" -msgstr "Failed to publish login request" +msgstr "Error al publicar la solicitud de inicio de sesión" msgid "Get ticket from device timeout" -msgstr "Timeout getting ticket from device" +msgstr "Tiempo de espera para obtener el ticket del dispositivo" msgid "Get ticket from server timeout" -msgstr "Timeout getting ticket from server" +msgstr "Tiempo de espera para obtener el ticket del servidor" msgid "Failed to post ticket to server" -msgstr "Failed to post ticket to server" +msgstr "Error al enviar el ticket al servidor" msgid "Failed to parse login report reason" -msgstr "Failed to parse login report reason" +msgstr "Error al analizar el motivo del informe de inicio de sesión" msgid "Receive login report timeout" -msgstr "Receive login report timeout" +msgstr "Tiempo de espera para recibir el informe de inicio de sesión" msgid "Unknown Failure" msgstr "Error Desconocido" @@ -7486,23 +7517,23 @@ msgid "" "Please Find the Pin Code in Account page on printer screen,\n" " and type in the Pin Code below." msgstr "" -"Please Find the Pin Code in Account page on printer screen,\n" -" and type in the Pin Code below." +"Busque el código PIN en la página Cuenta en la pantalla de la impresora \n" +"e introdúzcalo a continuación." msgid "Can't find Pin Code?" -msgstr "Can't find Pin Code?" +msgstr "¿No encuentra el código PIN?" msgid "Pin Code" -msgstr "Pin Code" +msgstr "Código Pin" msgid "Binding..." -msgstr "Binding..." +msgstr "Vinculando..." msgid "Please confirm on the printer screen" -msgstr "Please confirm on the printer screen" +msgstr "Confirme en la pantalla de la impresora" msgid "Log in failed. Please check the Pin Code." -msgstr "Log in failed. Please check the Pin Code." +msgstr "No se ha podido iniciar sesión. Por favor, compruebe el código PIN." msgid "Log in printer" msgstr "Iniciar sesión en la impresora" @@ -7511,13 +7542,13 @@ msgid "Would you like to log in this printer with current account?" msgstr "¿Desea iniciar sesión en esta impresora con la cuenta actual?" msgid "Check the reason" -msgstr "Check the reason" +msgstr "Compruebe el motivo" msgid "Read and accept" -msgstr "Read and accept" +msgstr "Leer y aceptar" msgid "Terms and Conditions" -msgstr "Terms and Conditions" +msgstr "Condiciones generales" msgid "" "Thank you for purchasing a Bambu Lab device.Before using your Bambu Lab " @@ -7526,23 +7557,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 "" -"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." +"Gracias por adquirir un dispositivo Bambu Lab. Antes de utilizar su " +"dispositivo Bambu Lab, lea los términos y condiciones. Al hacer clic para " +"aceptar el uso de su dispositivo Bambu Lab, acepta cumplir la Política de " +"privacidad y las Condiciones de uso (colectivamente, las \"Condiciones\"). " +"Si no cumple o no acepta la Política de privacidad de Bambu Lab, le rogamos " +"que no utilice los equipos y servicios de Bambu Lab." msgid "and" -msgstr "and" +msgstr "y" msgid "Privacy Policy" -msgstr "Privacy Policy" +msgstr "Política de privacidad" msgid "We ask for your help to improve everyone's printer" -msgstr "We ask for your help to improve everyone's printer" +msgstr "Te pedimos ayuda para mejorar las impresoras de todos" msgid "Statement about User Experience Improvement Program" -msgstr "Statement about User Experience Improvement Program" +msgstr "Declaración sobre el Programa de Mejora de la Experiencia del Usuario" #, c-format, boost-format msgid "" @@ -7558,20 +7590,21 @@ msgid "" "payment information, or phone numbers. By enabling this service, you agree " "to these terms and the statement about Privacy Policy." msgstr "" -"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." +"En la comunidad de impresión 3D, aprendemos de los éxitos y fracasos de los " +"demás para ajustar nuestros propios parámetros y ajustes de corte. %s sigue " +"el mismo principio y utiliza el aprendizaje automático para mejorar su " +"rendimiento a partir de los éxitos y fracasos del gran número de impresiones " +"de nuestros usuarios. Estamos entrenando a %s para que sea más inteligente " +"alimentándole con los datos del mundo real. Si usted lo desea, este servicio " +"accederá a la información de sus registros de errores y de uso, que pueden " +"incluir información descrita en la Política de Privacidad. No recopilaremos " +"ningún Dato Personal por el cual un individuo pueda ser identificado directa " +"o indirectamente, incluyendo sin limitación nombres, direcciones, " +"información de pago o números de teléfono. Al habilitar este servicio, usted " +"acepta estos términos y la declaración sobre la Política de Privacidad." msgid "Statement on User Experience Improvement Plan" -msgstr "Statement on User Experience Improvement Plan" +msgstr "Declaración sobre el Plan de mejora de la experiencia de los usuarios" msgid "Log in successful." msgstr "Inicio de sesión con éxito." @@ -7662,7 +7695,7 @@ msgid "" msgstr "" "Cuando se use material de soporte para las interfaces de soporte, " "recomendamos los siguientes ajustes:\n" -"distancia z0, espaciado de interfaz 0, patrón concéntrico y desactivar " +"distancia z0, separación de interfaz 0, patrón concéntrico y desactivar " "altura de soporte independiente de altura de capa" msgid "" @@ -7710,10 +7743,10 @@ msgid "" "reduce flush, it may also elevate the risk of nozzle clogs or other " "printing complications." msgstr "" -"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." +"Característica experimental: Retraer y cortar el filamento a mayor distancia " +"durante los cambios de filamento para minimizar el flujo. Aunque puede " +"reducir notablemente el flujo, también puede elevar el riesgo de atascos de " +"boquillas u otras complicaciones de impresión." msgid "" "Experimental feature: Retracting and cutting off the filament at a greater " @@ -7721,16 +7754,17 @@ msgid "" "reduce flush, it may also elevate the risk of nozzle clogs or other printing " "complications.Please use with the latest printer firmware." msgstr "" -"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." +"Característica experimental: Retraer y cortar el filamento a mayor distancia " +"durante los cambios de filamento para minimizar el flujo. Aunque puede " +"reducir notablemente el flujo, también puede elevar el riesgo de atascos de " +"la boquilla u otras complicaciones de impresión. Utilizar con el último " +"firmware de la impresora." 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\"." +"by right-click the empty position of build plate and choose \"Add Primitive" +"\"->\"Timelapse Wipe Tower\"." msgstr "" "Cuando grabamos timelapse sin cabezal de impresión, es recomendable añadir " "un \"Torre de Purga de Intervalo\" \n" @@ -7799,7 +7833,7 @@ msgid "Jerk(XY)" msgstr "Jerk(XY)" msgid "Raft" -msgstr "Base de impresión" +msgstr "Balsa/capa base de impresión" msgid "Support filament" msgstr "Filamento de soporte" @@ -7998,6 +8032,14 @@ msgstr "" msgid "Printable space" msgstr "Espacio imprimible" +#. TRN: First argument is parameter name, the second one is the value. +#, boost-format +msgid "Invalid value provided for parameter %1%: %2%" +msgstr "Valor no válido proporcionado para el parámetro %1%: %2%" + +msgid "G-code flavor is switched" +msgstr "Se cambia tipo de G-Code" + msgid "Cooling Fan" msgstr "Ventilador de enfriamento" @@ -8135,7 +8177,7 @@ msgid "Are you sure to %1% the selected preset?" msgstr "¿Está seguro de %1% el perfil seleccionado?" msgid "All" -msgstr "Todo" +msgstr "Todas" msgid "Set" msgstr "Ajuste" @@ -8232,14 +8274,14 @@ msgstr "" #, boost-format msgid "You have changed some settings of preset \"%1%\". " -msgstr "You have changed some settings of preset \"%1%\". " +msgstr "Ha cambiado algunos ajustes del preajuste \"%1%\"." msgid "" "\n" "You can save or discard the preset values you have modified." msgstr "" "\n" -"You can save or discard the preset values you have modified." +"Puede guardar o descartar los valores preestablecidos que haya modificado." msgid "" "\n" @@ -8251,7 +8293,7 @@ msgstr "" "elegir transferir los valores que ha modificado al nuevo preestablecido." msgid "You have previously modified your settings." -msgstr "You have previously modified your settings." +msgstr "Ha modificado previamente su configuración." msgid "" "\n" @@ -8378,6 +8420,60 @@ msgstr "No hay actualizaciones disponibles." msgid "The configuration is up to date." msgstr "La configuración está actualizada." +msgid "Obj file Import color" +msgstr "Obj file Import color" + +msgid "Specify number of colors:" +msgstr "Specify number of colors:" + +#, c-format, boost-format +msgid "The color count should be in range [%d, %d]." +msgstr "The color count should be in range [%d, %d]." + +msgid "Recommended " +msgstr "Recommended " + +msgid "Current filament colors:" +msgstr "Current filament colors:" + +msgid "Quick set:" +msgstr "Quick set:" + +msgid "Color match" +msgstr "Color match" + +msgid "Approximate color matching." +msgstr "Approximate color matching." + +msgid "Append" +msgstr "Append" + +msgid "Add consumable extruder after existing extruders." +msgstr "Add consumable extruder after existing extruders." + +msgid "Reset mapped extruders." +msgstr "Reset mapped extruders." + +msgid "Cluster colors" +msgstr "Cluster colors" + +msgid "Map Filament" +msgstr "Map Filament" + +msgid "" +"Note:The color has been selected, you can choose OK \n" +" to continue or manually adjust it." +msgstr "" +"Note:The color has been selected, you can choose OK \n" +" to continue or manually adjust it." + +msgid "" +"Waring:The count of newly added and \n" +" current extruders exceeds 16." +msgstr "" +"Warning: The count of newly added and \n" +" current extruders exceeds 16." + msgid "Ramming customization" msgstr "Personalización de Ramming" @@ -8411,7 +8507,7 @@ msgid "Ramming line width" msgstr "Ancho de línea de Ramming" msgid "Ramming line spacing" -msgstr "Espaciado de línea de moldeado de extremo" +msgstr "Separación de línea de moldeado de extremo" msgid "Auto-Calc" msgstr "Auto-Calc" @@ -8461,6 +8557,43 @@ msgstr "Desde" msgid "To" msgstr "A" +msgid "" +"Windows Media Player is required for this task! Do you want to enable " +"'Windows Media Player' for your operation system?" +msgstr "" +"Para esta tarea se necesita el Reproductor de Windows Media. ¿Desea activar " +"el \"Reproductor de Windows Media\" en su sistema operativo?" + +msgid "" +"BambuSource has not correctly been registered for media playing! Press Yes " +"to re-register it. You will be promoted twice" +msgstr "" +"BambuSource no se ha registrado correctamente para la reproducción " +"multimedia. Pulse Sí para volver a registrarlo. Será promocionado dos veces" + +msgid "" +"Missing BambuSource component registered for media playing! Please re-" +"install BambuStutio or seek after-sales help." +msgstr "" +"Falta el componente BambuSource registrado para la reproducción multimedia. " +"Vuelva a instalar BambuStudio o solicite ayuda posventa." + +msgid "" +"Using a BambuSource from a different install, video play may not work " +"correctly! Press Yes to fix it." +msgstr "" +"Si utiliza una BambuSource de una instalación diferente, es posible que la " +"reproducción de vídeo no funcione correctamente. Pulsa Sí para solucionarlo." + +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 "" +"A tu sistema le faltan los codecs H.264 para GStreamer, necesarios para " +"reproducir vídeo. (Prueba a instalar los paquetes gstreamer1.0-plugins-bad " +"o gstreamer1.0-libav y, a continuación, reinicia Orca Slicer...)." + msgid "Bambu Network plug-in not detected." msgstr "Plugin Red Bambú no detectado." @@ -8655,16 +8788,16 @@ msgid "Gizmo Text emboss / engrave" msgstr "Gizmo Texto en relieve / grabado" msgid "Zoom in" -msgstr "Acercarse" +msgstr "Acercar" msgid "Zoom out" -msgstr "Alejarse" +msgstr "Alejar" msgid "Switch between Prepare/Preview" msgstr "Cambiar entre Preparar/Previsualizar" msgid "Plater" -msgstr "Plataforma" +msgstr "Bandeja" msgid "Move: press to snap by 1mm" msgstr "Mover: pulsar para ajustar 1mm" @@ -8773,40 +8906,40 @@ msgid "Done" msgstr "Hecho" msgid "resume" -msgstr "resume" +msgstr "Continuar" msgid "Resume Printing" -msgstr "Resume Printing" +msgstr "Continuar Imprimiendo" msgid "Resume Printing(defects acceptable)" -msgstr "Resume Printing (defects acceptable)" +msgstr "Continuar Imprimiendo (defectos aceptables)" msgid "Resume Printing(problem solved)" -msgstr "Resume Printing (problem solved)" +msgstr "Continuar Imprimiendo (problema solucionado)" msgid "Stop Printing" -msgstr "Stop Printing" +msgstr "Dejar de imprimir" msgid "Check Assistant" -msgstr "Check Assistant" +msgstr "Asistente de Pruebas" msgid "Filament Extruded, Continue" -msgstr "Filament Extruded, Continue" +msgstr "Filamento extruido, Continuar" msgid "Not Extruded Yet, Retry" -msgstr "Not Extruded Yet, Retry" +msgstr "Aún no extruido, reintentar" msgid "Finished, Continue" -msgstr "Finished, Continue" +msgstr "Terminado, Continuar" msgid "Load Filament" msgstr "Cargar" msgid "Filament Loaded, Resume" -msgstr "Filament Loaded, Resume" +msgstr "Filamento cargado, reanudar" msgid "View Liveview" -msgstr "View Liveview" +msgstr "Ver Vista en Directo" msgid "Confirm and Update Nozzle" msgstr "Confirmar y Actualizar la Boquilla" @@ -8974,7 +9107,7 @@ msgid "Configuration package: " msgstr "Paquete de configuración: " msgid " updated to " -msgstr " actualizado a " +msgstr " Actualizado a " msgid "Open G-code file:" msgstr "Abrir archivo G-Code:" @@ -9066,8 +9199,8 @@ msgid "" "Invalid spacing supplied to Flow::with_spacing(), check your layer height " "and extrusion width" msgstr "" -"Espaciado no válido suministrado a Flow::with_spacing(), comprueba la altura " -"de su capa y el ancho de extrusión." +"Separación no válido suministrado a Flow::with_spacing(), comprueba la " +"altura de su capa y el ancho de extrusión." msgid "undefined error" msgstr "error no definido" @@ -9303,7 +9436,7 @@ msgid "" "of raft layers" msgstr "" "La torre de purga requiere que todos los objetos se impriman sobre el mismo " -"número de capas de base de impresión" +"número de capas de balsa( base de impresión)" msgid "" "The prime tower requires that all objects are sliced with the same layer " @@ -9472,7 +9605,7 @@ msgid "Bed custom model" msgstr "Modelo personalizado de cama" msgid "Elephant foot compensation" -msgstr "Compensación del pie de elefante" +msgstr "Compensación del pata de elefante" msgid "" "Shrink the initial layer on build plate to compensate for elephant foot " @@ -9541,7 +9674,7 @@ msgid "" msgstr "" "OrcaSlicer puede subir archivos G-Code a una impresora. Este campo debería " "contener el nombre de host, la dirección IP o la URL de la instancia de la " -"impresora. Se puede acceder a la impresora detrás de un proxy con la " +"impresora. Se puede acceder a la impresora detrás de un proX-Y con la " "autenticación básica activada por un nombre de usuario y contraseña en la " "URL en el siguiente formato: https://nombredeusuario:" "contraseña@tudirecciondeoctopi/" @@ -9862,7 +9995,7 @@ msgid "" "material for bridge, to improve sag" msgstr "" "Disminuya este valor ligeramente (por ejemplo 0,9) para reducir la cantidad " -"de material para el puente, para mejorar el hundimiento" +"de material para mejorar o evitar el hundimiento de puentes." msgid "Internal bridge flow ratio" msgstr "Ratio de flujo de puentes internos" @@ -9873,9 +10006,9 @@ msgid "" "0.9) to improve surface quality over sparse infill." msgstr "" "Este valor regula el grosor de la capa puente interna. Es la primera capa " -"sobre el relleno poco denso. Disminuya ligeramente este valor (por ejemplo, " -"0,9) para mejorar la calidad de la superficie sobre el relleno de baja " -"densidad." +"sobre el relleno de baja densidad. Disminuya ligeramente este valor (por " +"ejemplo, 0,9) para mejorar la calidad de la superficie sobre el relleno de " +"baja densidad." msgid "Top surface flow ratio" msgstr "Ratio de caudal en superficie superior" @@ -9904,7 +10037,7 @@ msgid "" "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 el espaciado entre perímetros " +"Mejore la precisión de la cubierta ajustando la separación entre perímetros " "exteriores. Esto también mejora la consistencia de la capa. \n" "Nota: Este ajuste sólo tendrá efecto si la secuencia de el perímetro está " "configurada como Interior-Exterior" @@ -10032,8 +10165,7 @@ msgstr "" " 1. Ninguno: No se crea ningún puente. \n" "2. Parcialmente Puenteado: Sólo se puentea una parte de la zona sin " "soporte. \n" -"3. Capa de Sacrificio: Se crea una capa de sacrificio. Capa de sacrificio: " -"Se crea una capa de puente de sacrificio completa." +"3. Capa de Sacrificio: Se crea una capa de sacrificio completa." msgid "Partially bridged" msgstr "Parcialmente puenteado" @@ -10276,8 +10408,8 @@ 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" msgstr "" -"No apoye todo el área del puente que hace el apoyo muy grande. El puente " -"normalmente puede imprimirse directamente sin soporte si no es muy largo" +"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" @@ -10358,7 +10490,7 @@ msgstr "" "evitando crear puentes internos innecesarios. Funciona bien en la mayoría de " "los modelos difíciles.\n" "\n" -"Sin filtro: crea puentes interiores en todos los posibles salientes " +"Sin filtro: crea puentes interiores en todos los posibles voladizos " "interiores. 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." @@ -10404,7 +10536,7 @@ msgid "End G-code when finish the printing of this filament" msgstr "Terminar el G-Code cuando se termine de imprimir este filamento" msgid "Ensure vertical shell thickness" -msgstr "Detección de cubiertas delgadas" +msgstr "Detección de perímetros delgados" msgid "" "Add solid infill near sloping surfaces to guarantee the vertical shell " @@ -10417,13 +10549,14 @@ msgid "" "Default value is All." msgstr "" "Añadir relleno sólido cerca de superficies inclinadas para garantizar el " -"grosor vertical de la cubierta (capas sólidas superior+inferior)\n" +"grosor vertical del perímetro (capas sólidas superior+inferior)\n" "Ninguno: No se añadirá relleno sólido en ninguna parte.\n" "Precaución: Utilice esta opción con cuidado si su modelo tiene superficies " "inclinadas\n" "Sólo crítico: Evite añadir relleno sólido en perímetros\n" -"Moderado: Añadir relleno sólido sólo para superficies muy inclinadas Todas: " -"Añadir relleno sólido para todas las superficies inclinadas adecuadas\n" +"Moderado: Añadir relleno sólido sólo para superficies muy inclinadas \n" +"Todas: Añadir relleno sólido para todas las superficies inclinadas " +"adecuadas\n" "El valor por defecto es Todas." msgid "Critical Only" @@ -10433,7 +10566,7 @@ msgid "Moderate" msgstr "Moderado" msgid "Top surface pattern" -msgstr "Patrón de relleno superior" +msgstr "Patrón de relleno cubierta superior" msgid "Line pattern of top surface infill" msgstr "Patrón de líneas del relleno de la superficie superior" @@ -10448,7 +10581,7 @@ msgid "Monotonic" msgstr "Monotónico" msgid "Monotonic line" -msgstr "Linea continua" +msgstr "Línea Contínua" msgid "Aligned Rectilinear" msgstr "Alineación Rectilinea" @@ -10457,18 +10590,18 @@ msgid "Hilbert Curve" msgstr "Curva Hilbert" msgid "Archimedean Chords" -msgstr "Arcodes de Arquímedes" +msgstr "Acordes de Arquímedes" msgid "Octagram Spiral" msgstr "Octograma en Espiral" msgid "Bottom surface pattern" -msgstr "Patrón de la superficie inferior" +msgstr "Patrón de relleno de cubierta inferior" msgid "Line pattern of bottom surface infill, not bridge infill" msgstr "" -"Patrón de líneas del relleno de la superficie inferior, no del relleno del " -"puente" +"Patrón de líneas del relleno de la superficie de la cubierta inferior, no " +"del relleno del puente" msgid "Internal solid infill pattern" msgstr "Patrón de relleno sólido interno" @@ -10791,6 +10924,32 @@ msgstr "" "Si se activa este ajuste, el ventilador nunca se detendrá y funcionará al " "menos a la velocidad mínima para reducir la frecuencia de arranque y parada" +msgid "Don't slow down outer walls" +msgstr "No frenar en los perímetros externos" + +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 " +"artefacts that appear like z banding \n" +"3. To avoid printing at speeds which cause VFAs (fine artefacts) on the " +"external walls\n" +"\n" +msgstr "" +"Si está activada, esta configuración garantizará que los perímetros externos " +"no se ralenticen para cumplir el tiempo de capa mínimo. Esto es " +"especialmente útil en los siguientes escenarios:\n" +"\n" +" 1. Para evitar cambios de brillo al imprimir filamentos brillantes\n" +"2. Para evitar cambios en la velocidad de la pared externa que pueden crear " +"ligeros artefactos de pared que aparecen como z banding\n" +"3. Para evitar imprimir a velocidades que provoquen VFA (artefactos finos) " +"en las paredes externas\n" +"\n" + msgid "Layer time" msgstr "Tiempo de capa" @@ -10875,7 +11034,7 @@ msgid "" msgstr "" "Introduzca el porcentaje de encogimiento que tendrá el filamento después de " "enfriarse ('94% i' si mide 94mm en lugar de 100mm). La pieza se escalará en " -"xy para compensar. Sólo se tiene en cuenta el filamento utilizado para el " +"X-Y para compensar. Sólo se tiene en cuenta el filamento utilizado para el " "perímetro.\n" "Asegúrese de dejar suficiente espacio entre los objetos, ya que esta " "compensación se realiza después de las comprobaciones." @@ -11105,13 +11264,13 @@ msgstr "" "dirección principal de la línea" msgid "Rotate solid infill direction" -msgstr "Girar la dirección del relleno sólido" +msgstr "Cambiar la dirección del relleno sólido" msgid "Rotate the solid infill direction by 90° for each layer." -msgstr "Gire 90° la dirección del relleno sólido para cada capa." +msgstr "Cambiar 90° la dirección del relleno sólido para cada capa." msgid "Sparse infill density" -msgstr "Densidad de relleno" +msgstr "Densidad de relleno de baja densidad" #, no-c-format, no-boost-format msgid "" @@ -11159,7 +11318,7 @@ msgid "Lightning" msgstr "Rayo" msgid "Cross Hatch" -msgstr "Cross Hatch" +msgstr "Escotilla Transversal" msgid "Sparse infill anchor length" msgstr "Longitud del anclaje de relleno de baja densidad" @@ -11194,7 +11353,7 @@ msgid "1000 (unlimited)" msgstr "1000 (ilimitada)" msgid "Maximum length of the infill anchor" -msgstr "Máxima longitud del relleno del anclaje" +msgstr "Máxima longitud de relleno del anclaje" msgid "" "Connect an infill line to an internal perimeter with a short segment of an " @@ -11365,10 +11524,10 @@ msgstr "Velocidad máxima del ventilador en la capa" 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 "" "La velocidad de ventilador se incrementará linealmente de cero a " "\"close_fan_the_first_x_layers\" al máximo de capa \"full_fan_speed_layer\". " @@ -11376,6 +11535,9 @@ msgstr "" "\"close_fan_the_first_x_layers\", en cuyo caso el ventilador funcionará al " "máximo permitido de capa \"close_fan_the_first_x_layers\" + 1." +msgid "layer" +msgstr "Capa" + msgid "Support interface fan speed" msgstr "Velocidad de ventilador de interfaz de soporte" @@ -11450,16 +11612,16 @@ msgstr "" "irregular y debe imprimirse más lentamente" msgid "Precise Z height" -msgstr "Precise Z height" +msgstr "Altura Z Precisa (Experimental)" 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 "" -"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." +"Habilite esta opción para obtener la altura Z precisa del objeto después del " +"corte. Obtendrá la altura precisa del objeto ajustando las alturas de las " +"últimas capas. Tenga en cuenta que se trata de un parámetro experimental." msgid "Arc fitting" msgstr "Activar movimientos en arco" @@ -11740,26 +11902,26 @@ msgid "" "appearance of pinholes. The percentage value is relative to line width of " "sparse infill" msgstr "" -"El área de relleno sólido superior se amplía ligeramente para solaparse con " -"la pared y mejorar la adherencia y minimizar la aparición de agujeros de " -"alfiler donde el relleno superior se une a las paredes. Un valor del 25-30% " -"es un buen punto de partida para minimizar la aparición de agujeros. El " -"valor porcentual es relativo a la anchura de la línea de relleno de baja " -"densidad" +"El área de relleno sólido de cubierta superior se amplía ligeramente para " +"solaparse con la pared y mejorar la adherencia y minimizar la aparición de " +"agujeros de alfiler donde el relleno de cubierta superior se une a las " +"paredes. Un valor del 25-30% es un buen punto de partida para minimizar la " +"aparición de agujeros. El valor porcentual es relativo a la anchura de la " +"línea de relleno de baja densidad" msgid "Speed of internal sparse infill" -msgstr "Velocidad del relleno interno disperso" +msgstr "Velocidad del relleno interno de baja densidad" msgid "Interface shells" -msgstr "Cubiertas de interfaz" +msgstr "Perímetros de interfaz" msgid "" "Force the generation of solid shells between adjacent materials/volumes. " "Useful for multi-extruder prints with translucent materials or manual " "soluble support material" msgstr "" -"Fuerza la generación de cubiertas sólidas entre materiales/volúmenes " -"adyacentes. Útil para impresiones multiextrusoras con materiales " +"Fuerza la generación de perímetro sólidos entre materiales/volúmenes " +"adyacentes. Útil para impresiones con varios extrusores, con materiales " "translúcidos o material de soporte soluble manualmente" msgid "Maximum width of a segmented region" @@ -11881,7 +12043,7 @@ msgid "Small area flow compensation (beta)" msgstr "Compensación de flujo en áreas pequeñas (beta)" msgid "Enable flow compensation for small infill areas" -msgstr "Permitir la compensación de flujos en pequeñas zonas de relleno" +msgstr "Permitir la compensación de flujo en zonas con poco relleno" msgid "Flow Compensation Model" msgstr "Modelo de compensación de caudal" @@ -12055,10 +12217,10 @@ msgstr "" "(alta velocidad/ancho mayor) a una extrusión de menor caudal (menor " "velocidad/ancho menor) y viceversa.\n" "\n" -"Define la velocidad máxima a la que el flujo volumétrico extruido en mm3/seg " -"puede cambiar con el tiempo. Valores más altos significan que se permiten " -"cambios de velocidad de extrusión más altos, lo que resulta en transiciones " -"de velocidad más rápidas.\n" +"Define la velocidad máxima a la que el flujo volumétrico extruido en mm3/" +"seg2 puede cambiar con el tiempo. Valores más altos significan que se " +"permiten cambios de velocidad de extrusión más altos, lo que resulta en " +"transiciones de velocidad más rápidas.\n" "\n" "Un valor de 0 desactiva la función. \n" "\n" @@ -12066,7 +12228,7 @@ msgstr "" "(como la Bambu lab o la Voron) este valor no suele ser necesario. Sin " "embargo, puede proporcionar algún beneficio marginal en ciertos casos en los " "que las velocidades de las características varían mucho. Por ejemplo, cuando " -"hay ralentizaciones agresivas debidas a salientes. En estos casos, se " +"hay ralentizaciones agresivas debidas a voladizos. En estos casos, se " "recomienda un valor alto de alrededor de 300-350 mm3/s2, ya que esto permite " "el suavizado suficiente para ayudar al avance de presión a lograr una " "transición de flujo más suave.\n" @@ -12332,10 +12494,10 @@ msgstr "" "resultado impresiones más resistentes.\n" "\n" "Cuando esta opción está activada, es necesario desactivar la opción de " -"asegurar el grosor de la cubierta vertical.\n" +"asegurar el grosor del perímetro vertical.\n" "\n" -"No se recomienda utilizar el relleno relámpago junto con esta opción, ya que " -"el relleno es limitado para anclar los perímetros adicionales." +"No se recomienda utilizar el relleno rayo junto con esta opción, ya que el " +"relleno es limitado para anclar los perímetros adicionales." msgid "" "If you want to process the output G-code through custom scripts, just list " @@ -12357,42 +12519,42 @@ msgid "You can put your notes regarding the printer here." msgstr "Puede colocar sus notas acerca de la impresora aquí." msgid "Raft contact Z distance" -msgstr "Distancia Z de contacto de la base de impresión" +msgstr "Distancia Z de contacto de la balsa(base de impresión)" msgid "Z gap between object and raft. Ignored for soluble interface" msgstr "" -"Espacio Z entre el objeto y la base de impresión. Se ignora para la interfaz " -"soluble" +"Espacio Z entre el objeto y la balsa(base de impresión). Se ignora para la " +"interfaz soluble" msgid "Raft expansion" -msgstr "Expansión de la base de impresión" +msgstr "Expansión de la balsa(base de impresión)" msgid "Expand all raft layers in XY plane" -msgstr "Expandir todas las capas de la base de impresión en el plano XY" +msgstr "Expandir todas las capas de la balsa(base de impresión) en el plano XY" msgid "Initial layer density" msgstr "Densidad de la primera capa" msgid "Density of the first raft or support layer" -msgstr "Densidad de la primera base de impresión o capa de soporte" +msgstr "Densidad de la balsa(base de impresión)" msgid "Initial layer expansion" msgstr "Expansión de la primera capa" msgid "Expand the first raft or support layer to improve bed plate adhesion" msgstr "" -"Expandir la primera base de impresión o capa de soporte para mejorar la " +"Expandir la primera base de impresión o capa de soporte base para mejorar la " "adherencia de la cama de la bandeja" msgid "Raft layers" -msgstr "Capas de base de impresión" +msgstr "Capas de balsa (base de impresión)" msgid "" "Object will be raised by this number of support layers. Use this function to " "avoid wrapping when print ABS" msgstr "" "El objeto será elevado por este número de capas de soporte. Utilice esta " -"función para evitar la envoltura al imprimir ABS" +"función para evitar deformaciones al imprimir ABS" msgid "" "G-code path is genereated after simplifing the contour of model to avoid too " @@ -12414,7 +12576,7 @@ msgstr "" "este umbral" msgid "Retract amount before wipe" -msgstr "Retracta cantidad antes de limpiar" +msgstr "Retrae cantidad antes de limpiar" msgid "" "The length of fast retraction before wipe, relative to retraction length" @@ -12440,7 +12602,7 @@ msgstr "" "retracción" msgid "Long retraction when cut(experimental)" -msgstr "Long retraction when cut (experimental)" +msgstr "Retracción larga al cortar (experimental)" msgid "" "Experimental feature.Retracting and cutting off the filament at a longer " @@ -12448,20 +12610,20 @@ msgid "" "significantly, it may also raise the risk of nozzle clogs or other printing " "problems." msgstr "" -"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." +"Característica experimental. Retraer y cortar el filamento a mayor distancia " +"durante los cambios para minimizar la purga. Si bien esto reduce " +"significativamente la purga, también puede aumentar el riesgo de atascos de " +"boquillas u otros problemas de impresión." msgid "Retraction distance when cut" -msgstr "Retraction distance when cut" +msgstr "Distancia de retracción al cortar" msgid "" "Experimental feature.Retraction length before cutting off during filament " "change" msgstr "" -"Experimental feature. Retraction length before cutting off during filament " -"change" +"Característica experimental. Longitud de retracción antes del corte durante " +"el cambio de filamento" msgid "Z hop when retract" msgstr "Salto en Z al retraerse" @@ -12810,23 +12972,13 @@ msgstr "" "perímetro externo al imprimir con el orden de impresión de perímetro " "Exterior/Interior o Interior/Exterior/Interior, la desretracción se realiza " "ligeramente en el interior desde el inicio del perímetro externo. De esta " -"manera, cualquier potencial de sobreextrusión queda oculto desde la " -"superficie exterior.\n" +"forma, cualquier posible sobreextrusión queda oculta desde la superficie " +"exterior.\n" "\n" -"Esto es útil cuando se imprime con el orden de impresión de perímetro " -"Exterior/Interior o Interior/Exterior/Interior, ya que en estos modos es más " -"probable que se imprima un perímetro externo inmediatamente después de un " -"movimiento de destracción.Para minimizar la visibilidad de una posible " -"sobreextrusión al inicio de un perímetro exterior cuando se imprime con " -"orden de impresión Exterior/Interior o Interior/Exterior/Interior, la " -"desetracción se realiza ligeramente en el interior desde el inicio del " -"perímetro exterior. De esta forma, cualquier posible sobreextrusión queda " -"oculta desde la superficie exterior.\n" -"\n" -"Esto es útil cuando se imprime con orden de impresión exterior/interior o " -"interior/exterior/perímetro interior, ya que en estos modos es más probable " -"que se imprima un perímetro exterior inmediatamente después de un movimiento " -"de desetracción." +"Esto es útil cuando se imprime con orden de impresión Exterior/Interior o " +"Interior/Exterior/Interior ya que en estos modos es más probable que se " +"imprima un perímetro exterior inmediatamente después de un movimiento de " +"desretracción." msgid "Wipe speed" msgstr "Velocidad de limpieza" @@ -13047,7 +13199,7 @@ msgid "Enable filament ramming" msgstr "Activar el moldeado de extremo del filamento" msgid "No sparse layers (beta)" -msgstr "Sin capas dispersas (beta)" +msgstr "Sin capas de baja densidad (beta)" msgid "" "If enabled, the wipe tower will not be printed on layers with no " @@ -13144,7 +13296,7 @@ msgid "tree(manual)" msgstr "Árbol(manual)" msgid "Support/object xy distance" -msgstr "Distancia soporte/objeto xy" +msgstr "Distancia soporte/objeto X-Y" msgid "XY separation between an object and its support" msgstr "Separación XY entre un objeto y su soporte" @@ -13192,13 +13344,13 @@ msgid "The z gap between the bottom support interface and object" msgstr "La distancia z entre la interfaz de apoyo inferior y el objeto" msgid "Support/raft base" -msgstr "Soporte/plataforma base" +msgstr "Capa base/balsa" msgid "" "Filament to print support base and raft. \"Default\" means no specific " "filament for support and current filament is used" msgstr "" -"Filamento para imprimir la base de soporte y la base de impresión. \"Por " +"Filamento para imprimir la base de soporte y la balsa de impresión. \"Por " "defecto\" significa que no hay filamento específico para el soporte y se " "utiliza el filamento actual" @@ -13228,7 +13380,7 @@ msgstr "" "por defecto." msgid "Support/raft interface" -msgstr "Interfaz de soporte/base de impresión" +msgstr "Interfaz de soporte/balsa" msgid "" "Filament to print support interface. \"Default\" means no specific filament " @@ -13299,19 +13451,19 @@ msgid "Rectilinear Interlaced" msgstr "Entrelazado rectilíneo" msgid "Base pattern spacing" -msgstr "Espaciamiento del patrón base" +msgstr "Separación del patrón base" msgid "Spacing between support lines" msgstr "Espacio entre las líneas de apoyo" msgid "Normal Support expansion" -msgstr "Expasión de Soporte Normal" +msgstr "Expansión de Soporte Normal" msgid "Expand (+) or shrink (-) the horizontal span of normal support" msgstr "Ampliar (+) o reducir (-) la expansión horizontal del soporte normal" msgid "Speed of support" -msgstr "Velocidad de la asistencia" +msgstr "Velocidad en soportes" msgid "" "Style and shape of the support. For normal support, projecting the supports " @@ -13347,7 +13499,7 @@ msgid "Organic" msgstr "Orgánico" msgid "Independent support layer height" -msgstr "Altura de la capa de soporte independiente" +msgstr "Altura independiente de la capa de soporte " msgid "" "Support layer uses layer height independent with object layer. This is to " @@ -13495,7 +13647,7 @@ msgid "This setting specify the count of walls around support" msgstr "Este ajuste especifica el número de perímetros alrededor del soporte" msgid "Tree support with infill" -msgstr "Soporte para árboles con relleno" +msgstr "Soporte de árbol con relleno" msgid "" "This setting specifies whether to add infill inside large hollows of tree " @@ -13546,9 +13698,9 @@ 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" msgstr "" -"Detectar los perímetros delgados que no puede contener dos líneas de ancho. " -"Y utilizar una sola línea para imprimir. Tal vez no se imprime muy bien, " -"porque no es de bucle cerrado" +"Detectar los perímetros delgados que no pueden contener dos líneas de ancho, " +"y utilizar una sola línea para imprimir. Tal vez no se imprima muy bien, " +"debido a que no es de bucle cerrado" msgid "" "This gcode is inserted when change filament, including T command to trigger " @@ -13689,10 +13841,10 @@ msgstr "" "Un angulo mayor significa una base más ancha." msgid "Wipe tower purge lines spacing" -msgstr "Espaciado de las líneas de la torre de purga" +msgstr "Separación de las líneas de la torre de purga" msgid "Spacing of purge lines on the wipe tower." -msgstr "Espaciado de las líneas de la torre de purga." +msgstr "Separación de las líneas de la torre de purga." msgid "Maximum wipe tower print speed" msgstr "Velocidad máxima de impresión de la torre de purga" @@ -13914,7 +14066,7 @@ msgid "Classic" msgstr "Clásico" msgid "Arachne" -msgstr "Aracne" +msgstr "Arachne" msgid "Wall transition length" msgstr "Anchura de transición de perímetro" @@ -14004,17 +14156,16 @@ msgid "" "top-surface. 'One wall threshold' is only visibile 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 se impriman perímetros cortas y no " -"cerradas, lo que podría aumentar el tiempo de impresión. Los valores más " +"Ajuste este valor para evitar que se impriman perímetros cortos y no " +"cerrados, lo que podría aumentar el tiempo de impresión. Los valores más " "altos eliminan más perímetros y más largos.\n" "\n" "NOTA: Las superficies inferior y superior no se verán afectadas por este " "valor para evitar huecos visuales en el exterior del modelo. Ajuste \"Umbral " -"de una perímetro\" en la configuración avanzada para ajustar la sensibilidad " -"de lo que se considera una superficie superior. El \"Umbral de una " -"perímetro\" sólo es visible si este valor es superior al valor " -"predeterminado de 0,5, o si las superficies superiores de una soel perímetro " -"están activadas." +"de perímetro\" en la configuración avanzada para ajustar la sensibilidad de " +"lo que se considera una superficie superior. El \"Umbral de un solo perímetro" +"\" sólo es visible si este valor es superior al valor predeterminado de 0,5, " +"o si las superficies superiores de un solo perímetro están activados." msgid "First layer minimum wall width" msgstr "Ancho mínimo del perímetro de la primera capa" @@ -14457,9 +14608,9 @@ msgid "" "painted.\n" "XY Size compensation can not be combined with color-painting." msgstr "" -"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." +"La compensación de tamaño XY de un objeto no se utilizará porque también " +"está pintado en color.\n" +"La compensación de tamaño XY no puede combinarse con el pintado en color." #, c-format, boost-format msgid "Support: generate toolpath at layer %d" @@ -14495,38 +14646,40 @@ msgstr "Soporte: propagar ramas en la capa %d" msgid "" "Unknown file format. Input file must have .stl, .obj, .amf(.xml) extension." msgstr "" -"Unknown file format: input file must have .stl, .obj, or .amf(.xml) " -"extension." +"Formato de archivo desconocido: el archivo de entrada debe tener extensión ." +"stl, .obj o .amf(.xml)." msgid "Loading of a model file failed." -msgstr "Loading of model file failed." +msgstr "Error en la carga del fichero modelo." msgid "The supplied file couldn't be read because it's empty" msgstr "El archivo proporcionado no puede ser leído debido a que está vacío" msgid "Unknown file format. Input file must have .3mf or .zip.amf extension." -msgstr "Unknown file format: input file must have .3mf or .zip.amf extension." +msgstr "" +"Formato de archivo desconocido: el archivo de entrada debe tener " +"extensión .3mf o .zip.amf." msgid "Canceled" -msgstr "Canceled" +msgstr "Cancelado" msgid "load_obj: failed to parse" -msgstr "load_obj: failed to parse" +msgstr "load_obj: fallo al parsear" msgid "load mtl in obj: failed to parse" -msgstr "load mtl in obj: failed to parse" +msgstr "load mtl in obj: fallo parseando" msgid "The file contains polygons with more than 4 vertices." -msgstr "The file contains polygons with more than 4 vertices." +msgstr "El archivo contiene polígonos con más de 4 vértices." msgid "The file contains polygons with less than 2 vertices." -msgstr "The file contains polygons with less than 2 vertices." +msgstr "El archivo contiene polígonos con menos de 2 vértices." msgid "The file contains invalid vertex index." -msgstr "The file contains invalid vertex index." +msgstr "El archivo contiene un índice de vértices no válido." msgid "This OBJ file couldn't be read because it's empty." -msgstr "This OBJ file couldn't be read because it's empty." +msgstr "Este archivo OBJ no se ha podido leer porque está vacío." msgid "Flow Rate Calibration" msgstr "Calibración de Ratio de Flujo" @@ -14735,36 +14888,36 @@ msgid "" "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 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" "\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 "" -"Consulte los detalles de la Calibración de las Dinámicas de Flujo en nuestra " +"Consulte los detalles de la Calibración de la Dinámica de Flujo en nuestra " "wiki.\n" "\n" "Normalmente la calibración es innecesaria. Cuando se inicia una impresión de " -"un solo color/material, con la opción \"Calibración de la dinámica de " -"caudal\" marcada en el menú de inicio de impresión, la impresora seguirá el " -"método antiguo, calibrar el filamento antes de la impresión; Cuando se " -"inicia una impresión de varios colores/materiales, la impresora utilizará el " -"parámetro de compensación por defecto para el filamento durante cada cambio " -"de filamento que tendrá un buen resultado en la mayoría de los casos.\n" +"un solo color/material, con la opción \"calibración de la dinámica de flujo" +"\" marcada en el menú de inicio de impresión, la impresora seguirá el camino " +"antiguo, calibrar el filamento antes de la impresión; cuando se inicia una " +"impresión de varios colores/materiales, la impresora utilizará el parámetro " +"de compensación por defecto para el filamento durante cada cambio de " +"filamento que tendrá un buen resultado en la mayoría de los casos.\n" "\n" -"Tenga en cuenta que hay algunos casos en los que el resultado de la " -"calibración no es fiable: el uso de una placa de textura para hacer la " -"calibración; la bandeja no tiene buena adherencia (por favor, lave la " -"bandeja o aplique pegamento) ... Puede encontrar más información en nuestra " -"wiki.\n" +"Tenga en cuenta que hay algunos casos que pueden hacer que los resultados de " +"la calibración no sean fiables, como una adhesión insuficiente en la placa " +"de impresión. Se puede mejorar la adherencia lavando la placa de impresión o " +"aplicando pegamento. Para obtener más información sobre este tema, consulte " +"nuestra Wiki.\n" "\n" "Los resultados de la calibración tienen alrededor de un 10 por ciento de " "fluctuación en nuestra prueba, lo que puede causar que el resultado no sea " -"exactamente el mismo en cada calibración. Todavía estamos investigando la " -"causa raíz para hacer mejoras con nuevas actualizaciones." +"exactamente el mismo en cada calibración. Seguimos investigando la causa " +"para realizar mejoras con nuevas actualizaciones." msgid "When to use Flow Rate Calibration" msgstr "Cuando usar la Calibración de Ratio de Flujo" @@ -14897,26 +15050,16 @@ msgstr "El nombre no puede exceder de 40 caracteres." msgid "" "Only one of the results with the same name will be saved. Are you sure you " -"want to overrides the other results?" +"want to override the other results?" msgstr "" -"Solo se va a guardar uno de los resultados con el mismo nombre. ¿Está seguro " -"que desea sobrescribir el otro resultado?" - -#, 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 "" -"Hay ya un resultado histórico de calibración con el mismo nombre: %s. Solo " -"se guardará uno de los resultados con el mismo nombre. ¿·Está seguro que " -"quiere sobrescribir el resultado histórico?" +"Sólo se guardará uno de los resultados con el mismo nombre. ¿Está seguro de " +"que desea reemplazar los otros resultados?" msgid "Please find the best line on your plate" msgstr "Por favor encuentre la mejor línea en su bandeja" -msgid "Please find the cornor with perfect degree of extrusion" -msgstr "Por favor, encuentre la esquina con ángulo perfecto para la extrusión" +msgid "Please find the corner with perfect degree of extrusion" +msgstr "Encuentre la esquina con el grado de extrusión perfecto" msgid "Input Value" msgstr "Valor de entrada" @@ -15178,6 +15321,9 @@ msgstr "ABS/ASA" msgid "PETG" msgstr "PETG" +msgid "PCTG" +msgstr "" + msgid "TPU" msgstr "TPU" @@ -15276,6 +15422,9 @@ msgstr "" msgid "Upload to storage" msgstr "Subir a almacenamiento" +msgid "Switch to Device tab after upload." +msgstr "" + #, c-format, boost-format msgid "Upload filename doesn't end with \"%s\". Do you wish to continue?" msgstr "" @@ -15511,8 +15660,8 @@ msgstr "" "¿Quieres reescribirlo?" 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 "" "Cambiaríamos el nombre de los preajustes a \"Número de serie del Vendedor " @@ -15561,12 +15710,6 @@ msgstr "Rectángulo" msgid "Printable Space" msgstr "Espacio Imprimible" -msgid "X" -msgstr "X" - -msgid "Y" -msgstr "Y" - msgid "Hot Bed STL" msgstr "Cama Caliente STL" @@ -15800,7 +15943,7 @@ msgid "" "Printer and all the filament&&process presets that belongs to the printer. \n" "Can be shared with others." msgstr "" -"Impresora y todos los perfiles de filamento&proceso que pertenecen a la " +"Impresora y todos los perfiles de filamento y proceso que pertenecen a la " "impresora. \n" "Se puede compartir con otros." @@ -15980,6 +16123,12 @@ msgstr "¿Estás seguro de cerrar la sesión?" msgid "Refresh Printers" msgstr "Refrescar Impresoras" +msgid "View print host webui in Device tab" +msgstr "" + +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." @@ -16155,43 +16304,47 @@ 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." msgstr "" -"It has a small layer height, and results in almost negligible layer lines " -"and high print quality. It is suitable for most general printing cases." +"Tiene una altura de capa pequeña, y da como resultado unas líneas de capa " +"casi inapreciables y una alta calidad de impresión. Es adecuado para la " +"mayoría de los casos generales de impresión." 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." msgstr "" -"Compared with the default profile of a 0.2 mm nozzle, it has lower speeds " -"and acceleration, and the sparse infill pattern is Gyroid. This results in " -"much higher print quality but a much longer print time." +"En comparación con el perfil predeterminado de una boquilla de 0,2 mm, tiene " +"velocidades y aceleraciones más bajas, y el patrón de relleno disperso es " +"Gyroide. Esto da como resultado una calidad de impresión mucho mayor, pero " +"un tiempo de impresión mucho más largo." 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 "" -"Compared with the default profile of a 0.2 mm nozzle, it has a slightly " -"bigger layer height. This results in almost negligible layer lines and " -"slightly longer print time." +"Comparado con el perfil por defecto de una boquilla de 0,2 mm, tiene una " +"altura de capa ligeramente mayor, y da como resultado líneas de capa casi " +"inapreciables, y un tiempo de impresión ligeramente 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 "" -"Compared with the default profile of a 0.2 mm nozzle, it has a bigger layer " -"height. This results in slightly visible layer lines but shorter print time." +"En comparación con el perfil predeterminado de una boquilla de 0,2 mm, tiene " +"una mayor altura de capa. Esto se traduce en líneas de capa ligeramente " +"visibles, pero en un tiempo de impresión más corto." 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 "" -"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer " -"height. This results in almost invisible layer lines and higher print " -"quality but longer print time." +"En comparación con el perfil predeterminado de una boquilla de 0,2 mm, tiene " +"una altura de capa menor. Esto da como resultado líneas de capa casi " +"invisibles y una mayor calidad de impresión, pero un tiempo de impresión más " +"largo." msgid "" "Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer " @@ -16199,19 +16352,20 @@ msgid "" "Gyroid. So, it results in almost invisible layer lines and much higher " "printing quality, but much longer printing time." msgstr "" -"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. This results in almost invisible layer lines and much higher print " -"quality but much longer print time." +"En comparación con el perfil predeterminado de una boquilla de 0,2 mm, tiene " +"unas líneas de capa más pequeñas, velocidades y aceleraciones más bajas, y " +"el patrón de relleno disperso es Gyroid. Esto da como resultado líneas de " +"capa casi invisibles y una calidad de impresión mucho mayor, pero un tiempo " +"de impresión mucho más largo." 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 "" -"Compared with the default profile of 0.2 mm nozzle, it has a smaller layer " -"height. This results in minimal layer lines and higher print quality but " -"longer print time." +"En comparación con el perfil predeterminado de boquilla de 0,2 mm, tiene una " +"altura de capa menor, y da como resultado líneas de capa mínimas y una mayor " +"calidad de impresión, pero un tiempo de impresión más corto." msgid "" "Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer " @@ -16219,53 +16373,57 @@ msgid "" "Gyroid. So, it results in minimal layer lines and much higher printing " "quality, but much longer printing time." msgstr "" -"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. This results in minimal layer lines and much higher print quality " -"but much longer print time." +"En comparación con el perfil predeterminado de una boquilla de 0,2 mm, tiene " +"unas líneas de capa más pequeñas, velocidades y aceleraciones más bajas, y " +"el patrón de relleno disperso es Gyroid. Por lo tanto, da como resultado " +"líneas de capa mínimas y una calidad de impresión mucho mayor, pero un " +"tiempo de impresión mucho más largo." msgid "" "It has a general layer height, and results in general layer lines and " "printing quality. It is suitable for most general printing cases." msgstr "" -"It has a normal layer height, and results in average layer lines and print " -"quality. It is suitable for most printing cases." +"Tiene una altura de capa normal, y da como resultado unas líneas de capa y " +"una calidad de impresión medias. Es adecuado para la mayoría de los casos de " +"impresión." 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." msgstr "" -"Compared with the default profile of a 0.4 mm nozzle, it has more wall loops " -"and a higher sparse infill density. This results in higher print strength " -"but more filament consumption and longer print time." +"En comparación con el perfil predeterminado de una boquilla de 0,4 mm, tiene " +"más bucles de pared y una mayor densidad de relleno disperso. Esto se " +"traduce en una mayor resistencia de impresión, pero un mayor consumo de " +"filamento y un tiempo de impresión más largo." 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." msgstr "" -"Compared with the default profile of a 0.4 mm nozzle, it has a bigger layer " -"height. This results in more apparent layer lines and lower print quality " -"but slightly shorter print time." +"En comparación con el perfil predeterminado de una boquilla de 0,4 mm, tiene " +"una mayor altura de capa. Esto da lugar a líneas de capa más aparentes y a " +"una menor calidad de impresión, pero a un tiempo de impresión ligeramente " +"inferior." 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." msgstr "" -"Compared with the default profile of a 0.4 mm nozzle, it has a bigger layer " -"height. This results in more apparent layer lines and lower print quality " -"but shorter print time." +"En comparación con el perfil predeterminado de una boquilla de 0,4 mm, tiene " +"una mayor altura de capa, y da como resultado líneas de capa más aparentes y " +"una menor calidad de impresión, pero un tiempo de impresión más corto." 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." msgstr "" -"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer " -"height. This results in less apparent layer lines and higher print quality " -"but longer print time." +"En comparación con el perfil predeterminado de una boquilla de 0,4 mm, tiene " +"una altura de capa menor. Esto se traduce en menos líneas de capa aparentes " +"y mayor calidad de impresión, pero mayor tiempo de impresión." msgid "" "Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer " @@ -16273,19 +16431,21 @@ msgid "" "Gyroid. So, it results in less apparent layer lines and much higher printing " "quality, but much longer printing time." msgstr "" -"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. This results in less apparent layer lines and much higher print " -"quality but much longer print time." +"En comparación con el perfil predeterminado de una boquilla de 0,4 mm, tiene " +"una altura de capa menor, velocidades y aceleraciones más bajas, y el patrón " +"de relleno disperso es Gyroide. Por lo tanto, da como resultado menos líneas " +"de capa aparentes y una calidad de impresión mucho mayor, pero un tiempo de " +"impresión mucho más largo." 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." msgstr "" -"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer " -"height. This results in almost negligible layer lines and higher print " -"quality but longer print time." +"En comparación con el perfil predeterminado de una boquilla de 0,4 mm, tiene " +"una altura de capa menor. Esto se traduce en unas líneas de capa casi " +"inapreciables y una mayor calidad de impresión, pero un tiempo de impresión " +"más largo." msgid "" "Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer " @@ -16293,95 +16453,103 @@ msgid "" "Gyroid. So, it results in almost negligible layer lines and much higher " "printing quality, but much longer printing time." msgstr "" -"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. This results in almost negligible layer lines and much higher print " -"quality but much longer print time." +"En comparación con el perfil predeterminado de una boquilla de 0,4 mm, tiene " +"una altura de capa menor, velocidades y aceleraciones más bajas, y el patrón " +"de relleno disperso es Gyroide. Por lo tanto, resulta en líneas de capa casi " +"insignificantes y una calidad de impresión mucho mayor, pero un tiempo de " +"impresión mucho más largo." 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 "" -"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer " -"height. This results in almost negligible layer lines and longer print time." +"En comparación con el perfil predeterminado de una boquilla de 0,4 mm, tiene " +"una altura de capa menor. Esto se traduce en unas líneas de capa casi " +"inapreciables y un mayor tiempo de impresión." msgid "" "It has a big layer height, and results in apparent layer lines and ordinary " "printing quality and printing time." msgstr "" -"It has a big layer height, and results in apparent layer lines and ordinary " -"printing quality and printing time." +"Tiene una gran altura de capa, y da lugar a líneas de capa aparentes y a una " +"calidad y tiempo de impresión ordinarios." 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." msgstr "" -"Compared with the default profile of a 0.6 mm nozzle, it has more wall loops " -"and a higher sparse infill density. This results in higher print strength " -"but more filament consumption and longer print time." +"En comparación con el perfil predeterminado de una boquilla de 0,6 mm, tiene " +"más bucles de pared y una mayor densidad de relleno disperso. Esto se " +"traduce en una mayor resistencia de impresión, pero un mayor consumo de " +"filamento y un tiempo de impresión más largo." 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." msgstr "" -"Compared with the default profile of a 0.6 mm nozzle, it has a bigger layer " -"height. This results in more apparent layer lines and lower print quality " -"but shorter print time in some cases." +"En comparación con el perfil predeterminado de una boquilla de 0,6 mm, tiene " +"una mayor altura de capa. Esto da lugar a líneas de capa más aparentes y a " +"una menor calidad de impresión, pero a un menor tiempo de impresión en " +"algunos casos." 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." msgstr "" -"Compared with the default profile of a 0.6 mm nozzle, it has a bigger layer " -"height. This results in much more apparent layer lines and much lower print " -"quality, but shorter print time in some cases." +"En comparación con el perfil predeterminado de una boquilla de 0,6 mm, tiene " +"una mayor altura de capa. Esto da lugar a líneas de capa mucho más aparentes " +"y a una calidad de impresión mucho menor, pero a un tiempo de impresión más " +"corto en algunos casos." 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." msgstr "" -"Compared with the default profile of a 0.6 mm nozzle, it has a smaller layer " -"height. This results in less apparent layer lines and slightly higher print " -"quality but longer print time." +"En comparación con el perfil predeterminado de una boquilla de 0,6 mm, tiene " +"una altura de capa menor. Esto se traduce en menos líneas de capa aparentes " +"y una calidad de impresión ligeramente superior, pero un tiempo de impresión " +"más largo." 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 "" -"Compared with the default profile of a 0.6 mm nozzle, it has a smaller layer " -"height. This results in less apparent layer lines and higher print quality " -"but longer print time." +"En comparación con el perfil predeterminado de una boquilla de 0,6 mm, tiene " +"una altura de capa menor, y da como resultado líneas de capa menos aparentes " +"y una mayor calidad de impresión, pero un tiempo de impresión más largo." msgid "" "It has a very big layer height, and results in very apparent layer lines, " "low printing quality and general printing time." msgstr "" -"It has a very big layer height, and results in very apparent layer lines, " -"low print quality and shorter printing time." +"Tiene una altura de capa muy grande, y da lugar a líneas de capa muy " +"aparentes, baja calidad de impresión y menor tiempo de impresión." 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 "" -"Compared with the default profile of a 0.8 mm nozzle, it has a bigger layer " -"height. This results in very apparent layer lines and much lower print " -"quality but shorter print time in some cases." +"En comparación con el perfil predeterminado de una boquilla de 0,8 mm, tiene " +"una mayor altura de capa. Esto da lugar a líneas de capa muy aparentes y a " +"una calidad de impresión mucho menor, pero a un tiempo de impresión más " +"corto en algunos casos." 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 "" -"Compared with the default profile of a 0.8 mm nozzle, it has a much bigger " -"layer height. This results in extremely apparent layer lines and much lower " -"print quality but much shorter print time in some cases." +"En comparación con el perfil predeterminado de una boquilla de 0,8 mm, tiene " +"una altura de capa mucho mayor. Esto da lugar a líneas de capa " +"extremadamente aparentes y a una calidad de impresión mucho menor, pero a un " +"tiempo de impresión mucho más corto en algunos casos." msgid "" "Compared with the default profile of a 0.8 mm nozzle, it has a slightly " @@ -16389,18 +16557,20 @@ msgid "" "lines and slightly higher printing quality, but longer printing time in some " "printing cases." msgstr "" -"Compared with the default profile of a 0.8 mm nozzle, it has a slightly " -"smaller layer height. This results in slightly less but still apparent layer " -"lines and slightly higher print quality, but longer print time in some cases." +"En comparación con el perfil predeterminado de una boquilla de 0,8 mm, tiene " +"una altura de capa ligeramente menor. Esto se traduce en líneas de capa " +"ligeramente menores pero aún aparentes y en una calidad de impresión " +"ligeramente superior, pero mayor tiempo de impresión en algunos casos." 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 "" -"Compared with the default profile of a 0.8 mm nozzle, it has a smaller layer " -"height. This results in less but still apparent layer lines and slightly " -"higher print quality, but longer print time in some cases." +"En comparación con el perfil predeterminado de una boquilla de 0,8 mm, tiene " +"una altura de capa menor. Esto se traduce en menos líneas de capa, aunque " +"aparentes, y en una calidad de impresión ligeramente superior, pero con un " +"tiempo de impresión más largo en algunos casos." msgid "Connected to Obico successfully!" msgstr "¡Conectado a Obico con éxito!" @@ -16414,21 +16584,17 @@ msgstr "¡Se ha conectado correctamente a SimplyPrint!" msgid "Could not connect to SimplyPrint" msgstr "No se ha podido conectar con SimplyPrint" +msgid "Internel error" +msgstr "" + +msgid "Unknown error" +msgstr "Error desconocido" + msgid "SimplyPrint account not linked. Go to Connect options to set it up." msgstr "" "La cuenta SimplyPrint no está vinculada. Vaya a Opciones de conexión para " "configurarla." -msgid "" -"File size exceeds the 100MB upload limit. Please upload your file through " -"the panel." -msgstr "" -"El tamaño del archivo supera el límite de carga de 100 MB. Por favor, cargue " -"su archivo a través del panel." - -msgid "Unknown error" -msgstr "Error desconocido" - msgid "Connection to Flashforge works correctly." msgstr "La conexión con Flashforge funciona correctamente." @@ -16838,6 +17004,102 @@ msgstr "" "aumentar adecuadamente la temperatura del lecho térmico puede reducir la " "probabilidad de deformaciones." +#~ msgid "" +#~ "File size exceeds the 100MB upload limit. Please upload your file through " +#~ "the panel." +#~ msgstr "" +#~ "El tamaño del archivo supera el límite de carga de 100 MB. Por favor, " +#~ "cargue su archivo a través del panel." + +#~ msgid "Please input a valid value (K in 0~0.3)" +#~ msgstr "Por favor, introduzca un valor válido (K en 0~0.3)" + +#~ msgid "Please input a valid value (K in 0~0.3, N in 0.6~2.0)" +#~ msgstr "Por favor, introduzca un valor válido (K en 0~0.3, N en 0.6~2.0))" + +#~ msgid "Select connected printetrs (0/6)" +#~ msgstr "Seleccionar impresoras conectadas (0/6)" + +#, c-format, boost-format +#~ msgid "Select Connected Printetrs (%d/6)" +#~ msgstr "Seleccionar impresoras conectadas (%d/6)" + +#~ msgid "PrintingPause" +#~ msgstr "Impresión Pausada" + +#~ msgid "Printer local connection failed, please try again." +#~ msgstr "Printer local connection failed; please try again." + +#~ 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 "" +#~ "Consulte los detalles de la Calibración de las Dinámicas de Flujo en " +#~ "nuestra wiki.\n" +#~ "\n" +#~ "Normalmente la calibración es innecesaria. Cuando se inicia una impresión " +#~ "de un solo color/material, con la opción \"Calibración de la dinámica de " +#~ "caudal\" marcada en el menú de inicio de impresión, la impresora seguirá " +#~ "el método antiguo, calibrar el filamento antes de la impresión; Cuando se " +#~ "inicia una impresión de varios colores/materiales, la impresora utilizará " +#~ "el parámetro de compensación por defecto para el filamento durante cada " +#~ "cambio de filamento que tendrá un buen resultado en la mayoría de los " +#~ "casos.\n" +#~ "\n" +#~ "Tenga en cuenta que hay algunos casos en los que el resultado de la " +#~ "calibración no es fiable: el uso de una placa de textura para hacer la " +#~ "calibración; la bandeja no tiene buena adherencia (por favor, lave la " +#~ "bandeja o aplique pegamento) ... Puede encontrar más información en " +#~ "nuestra wiki.\n" +#~ "\n" +#~ "Los resultados de la calibración tienen alrededor de un 10 por ciento de " +#~ "fluctuación en nuestra prueba, lo que puede causar que el resultado no " +#~ "sea exactamente el mismo en cada calibración. Todavía estamos " +#~ "investigando la causa raíz para hacer mejoras con nuevas actualizaciones." + +#~ msgid "" +#~ "Only one of the results with the same name will be saved. Are you sure " +#~ "you want to overrides the other results?" +#~ msgstr "" +#~ "Solo se va a guardar uno de los resultados con el mismo nombre. ¿Está " +#~ "seguro que desea sobrescribir el otro resultado?" + +#, 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 "" +#~ "Hay ya un resultado histórico de calibración con el mismo nombre: %s. " +#~ "Solo se guardará uno de los resultados con el mismo nombre. ¿·Está seguro " +#~ "que quiere sobrescribir el resultado histórico?" + +#~ msgid "Please find the cornor with perfect degree of extrusion" +#~ msgstr "" +#~ "Por favor, encuentre la esquina con ángulo perfecto para la extrusión" + +#~ msgid "X" +#~ msgstr "X" + +#~ msgid "Y" +#~ msgstr "Y" + #~ msgid "" #~ "Order of wall/infill. When the tickbox is unchecked the walls are printed " #~ "first, which works best in most cases.\n" @@ -17187,8 +17449,8 @@ msgstr "" #~ msgstr "Capas de baja densidad (EXPERIMENTAL)" #~ 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 prinetrs, Please go to printer selection" #~ msgstr "" #~ "Cambiaremos el nombre de los perfiles a \"Tipo Número de Serie @impresora " diff --git a/localization/i18n/fr/OrcaSlicer_fr.po b/localization/i18n/fr/OrcaSlicer_fr.po index 82adc190c9..55472db5c7 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: 2024-05-29 00:28+0800\n" +"POT-Creation-Date: 2024-06-21 20:03+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: Guislain Cyril, Thomas Lété\n" @@ -2896,12 +2896,14 @@ msgstr "Êtes-vous sûr de vouloir effacer les informations du filament ?" msgid "You need to select the material type and color first." msgstr "Vous devez d'abord sélectionner le type de matériau et sa couleur." -msgid "Please input a valid value (K in 0~0.3)" -msgstr "Veuillez saisir une valeur valide (K entre 0 et 0,3)" +#, c-format, boost-format +msgid "Please input a valid value (K in %.1f~%.1f)" +msgstr "Veuillez saisir une valeur valide (K entre %.1f~%.1f)" -msgid "Please input a valid value (K in 0~0.3, N in 0.6~2.0)" +#, c-format, boost-format +msgid "Please input a valid value (K in %.1f~%.1f, N in %.1f~%.1f)" msgstr "" -"Veuillez saisir une valeur valide (K entre 0 et 0,3, N entre 0,6 et 2,0)." +"Veuillez saisir une valeur valide (K entre %.1f~%.1f, N entre %.1f~%.1f)" msgid "Other Color" msgstr "Autre couleur" @@ -3339,12 +3341,12 @@ msgstr "Tâche envoyée" msgid "Edit multiple printers" msgstr "Modifier plusieurs imprimantes" -msgid "Select connected printetrs (0/6)" -msgstr "Sélectionner les imprimantes connectées (0/6)" +msgid "Select connected printers (0/6)" +msgstr "Sélection des imprimantes connectées (0/6)" #, c-format, boost-format -msgid "Select Connected Printetrs (%d/6)" -msgstr "Sélectionner les imprimantes connectées (%d/6)" +msgid "Select Connected Printers (%d/6)" +msgstr "Sélection des imprimantes connectées (%d/6)" #, c-format, boost-format msgid "The maximum number of printers that can be selected is %d" @@ -3407,8 +3409,8 @@ msgstr "Impression terminée" msgid "Printing Failed" msgstr "Échec de l’impression" -msgid "PrintingPause" -msgstr "Pause de l’impression" +msgid "Printing Pause" +msgstr "Impression en pause" msgid "Prepare" msgstr "Préparer" @@ -3507,8 +3509,8 @@ msgstr "Calibration dynamique du débit" msgid "Send Options" msgstr "Options d’envoi" -msgid "Send" -msgstr "Envoyer" +msgid "Send to" +msgstr "Envoyer à" msgid "" "printers at the same time.(It depends on how many devices can undergo " @@ -3525,6 +3527,9 @@ msgid "" msgstr "" "minute par lot. (Cela dépend du temps nécessaire pour terminer le chauffage.)" +msgid "Send" +msgstr "Envoyer" + msgid "Name is invalid;" msgstr "Le nom n'est pas valide ;" @@ -4105,6 +4110,20 @@ msgid "" "NO for %s %s." msgstr "Est-ce %s%% ou %s %s ? OUI pour %s%%, NON pour %s %s." +#, boost-format +msgid "" +"Invalid input format. Expected vector of dimensions in the following format: " +"\"%1%\"" +msgstr "" +"Format d'entrée non valide. Vecteur de dimensions attendu dans le format " +"suivant : \"%1%\"" + +msgid "Input value is out of range" +msgstr "La valeur entrée est hors plage" + +msgid "Some extension in the input is invalid" +msgstr "Une extension dans l'entrée n'est pas valide" + #, boost-format msgid "Invalid format. Expected vector format: \"%1%\"" msgstr "Format invalide. Format vectoriel attendu : \"%1%\"" @@ -7271,9 +7290,6 @@ msgstr "envoi terminé" msgid "Error code" msgstr "Code erreur" -msgid "Printer local connection failed, please try again." -msgstr "La connexion locale de l'imprimante a échoué, veuillez réessayer." - msgid "No login account, only printers in LAN mode are displayed" msgstr "" "Pas de connexion au cloud, seules les imprimantes en mode LAN sont affichées" @@ -7798,8 +7814,8 @@ msgstr "" 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\"." +"by right-click the empty position of build plate and choose \"Add Primitive" +"\"->\"Timelapse Wipe Tower\"." msgstr "" "Lorsque vous enregistrez un timelapse sans tête d’outil, il est recommandé " "d’ajouter une \"Tour d’essuyage timelapse\".\n" @@ -7954,9 +7970,9 @@ msgid "" "Bed temperature when cool plate is installed. Value 0 means the filament " "does not support to print on the Cool Plate" msgstr "" -"Il s'agit de la température du plateau lorsque le plateau froid (\"Cool " -"plate\") est installé. Une valeur à 0 signifie que ce filament ne peut pas " -"être imprimé sur le plateau froid." +"Il s'agit de la température du plateau lorsque le plateau froid (\"Cool plate" +"\") est installé. Une valeur à 0 signifie que ce filament ne peut pas être " +"imprimé sur le plateau froid." msgid "Engineering plate" msgstr "Plaque Engineering" @@ -8069,6 +8085,14 @@ msgstr "" msgid "Printable space" msgstr "Espace imprimable" +#. TRN: First argument is parameter name, the second one is the value. +#, boost-format +msgid "Invalid value provided for parameter %1%: %2%" +msgstr "Valeur non valide fournie pour le réglage %1% : %2%" + +msgid "G-code flavor is switched" +msgstr "La version du G-code est modifiée" + msgid "Cooling Fan" msgstr "Ventilateur de refroidissement" @@ -8462,6 +8486,60 @@ msgstr "Aucune mise à jour disponible." msgid "The configuration is up to date." msgstr "La configuration est à jour." +msgid "Obj file Import color" +msgstr "Obj file Import color" + +msgid "Specify number of colors:" +msgstr "Specify number of colors:" + +#, c-format, boost-format +msgid "The color count should be in range [%d, %d]." +msgstr "The color count should be in range [%d, %d]." + +msgid "Recommended " +msgstr "Recommended " + +msgid "Current filament colors:" +msgstr "Current filament colors:" + +msgid "Quick set:" +msgstr "Quick set:" + +msgid "Color match" +msgstr "Color match" + +msgid "Approximate color matching." +msgstr "Approximate color matching." + +msgid "Append" +msgstr "Append" + +msgid "Add consumable extruder after existing extruders." +msgstr "Add consumable extruder after existing extruders." + +msgid "Reset mapped extruders." +msgstr "Reset mapped extruders." + +msgid "Cluster colors" +msgstr "Cluster colors" + +msgid "Map Filament" +msgstr "Map Filament" + +msgid "" +"Note:The color has been selected, you can choose OK \n" +" to continue or manually adjust it." +msgstr "" +"Note:The color has been selected, you can choose OK \n" +" to continue or manually adjust it." + +msgid "" +"Waring:The count of newly added and \n" +" current extruders exceeds 16." +msgstr "" +"Warning: The count of newly added and \n" +" current extruders exceeds 16." + msgid "Ramming customization" msgstr "Personnalisation du pilonnage" @@ -8549,6 +8627,45 @@ msgstr "De" msgid "To" msgstr "À" +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 est nécessaire pour cette tâche ! Voulez-vous activer " +"‘Windows Media Player’ pour votre système d’exploitation ?" + +msgid "" +"BambuSource has not correctly been registered for media playing! Press Yes " +"to re-register it. You will be promoted twice" +msgstr "" +"BambuSource n’a pas été correctement enregistré pour la lecture de médias ! " +"Appuyez sur Oui pour le réenregistrer. Vous recevrez deux fois la demande de " +"permission." + +msgid "" +"Missing BambuSource component registered for media playing! Please re-" +"install BambuStutio or seek after-sales help." +msgstr "" +"Composant BambuSource manquant enregistré pour la lecture des médias ! " +"Veuillez réinstaller OrcaSlicer ou demander de l’aide au service après-vente." + +msgid "" +"Using a BambuSource from a different install, video play may not work " +"correctly! Press Yes to fix it." +msgstr "" +"Si vous utilisez une BambuSource provenant d’une autre installation, la " +"lecture de la vidéo peut ne pas fonctionner correctement ! Appuyez sur Oui " +"pour résoudre le problème." + +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 "" +"Il manque à votre système les codecs H.264 pour GStreamer, qui sont " +"nécessaires pour lire la vidéo. (Essayez d’installer les paquets " +"gstreamer1.0-plugins-bad ou gstreamer1.0-libav, puis redémarrez Orca Slicer)." + msgid "Bambu Network plug-in not detected." msgstr "Le plug-in Bambu Network n’a pas été détecté." @@ -10909,6 +11026,32 @@ msgstr "" "sera jamais arrêté et fonctionnera au moins à la vitesse minimale pour " "réduire la fréquence de démarrage et d'arrêt" +msgid "Don't slow down outer walls" +msgstr "Ne pas ralentir sur les parois extérieures" + +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 " +"artefacts that appear like z banding \n" +"3. To avoid printing at speeds which cause VFAs (fine artefacts) on the " +"external walls\n" +"\n" +msgstr "" +"S’il est activé, ce paramètre garantit que les périmètres externes ne sont " +"pas ralentis pour respecter la durée minimale de la couche. Ceci est " +"particulièrement utile dans les scénarios suivants :\n" +"\n" +" 1. Pour éviter les changements de brillance lors de l’impression de " +"filaments brillants \n" +"2. Pour éviter les changements de vitesse des parois externes qui peuvent " +"créer de légers artefacts de paroi qui apparaissent comme des bandes en z. \n" +"3. Pour éviter d’imprimer à des vitesses qui provoquent des VFA (artefacts " +"fins) sur les parois externes.\n" + msgid "Layer time" msgstr "Temps de couche" @@ -11487,10 +11630,10 @@ msgstr "Ventilateur à pleine vitesse à la couche" 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 "" "La vitesse du ventilateur augmentera de manière linéaire à partir de zéro à " "la couche \"close_fan_the_first_x_layers\" jusqu’au maximum à la couche " @@ -11499,6 +11642,9 @@ msgstr "" "fonctionnera à la vitesse maximale autorisée à la couche " "\"close_fan_the_first_x_layers\" + 1." +msgid "layer" +msgstr "couche" + msgid "Support interface fan speed" msgstr "Vitesse du ventilateur" @@ -13224,8 +13370,8 @@ msgid "" "Use \"Even-odd\" for 3DLabPrint airplane models. Use \"Close holes\" to " "close all holes in the model." msgstr "" -"Utilisez « Pair-impair » pour les modèles d'avion 3DLabPrint. Utilisez " -"« Fermer les trous » pour fermer tous les trous du modèle." +"Utilisez « Pair-impair » pour les modèles d'avion 3DLabPrint. Utilisez « " +"Fermer les trous » pour fermer tous les trous du modèle." msgid "Regular" msgstr "Standard" @@ -14034,8 +14180,8 @@ msgid "" "Wipe tower is only compatible with relative mode. It is recommended on most " "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 option " +"L’extrusion relative est recommandée lors de l’utilisation de l’option « " +"label_objects ». Certains extrudeurs fonctionnent mieux avec cette option " "non verrouillée (mode d’extrusion absolu). La tour d’essuyage n’est " "compatible qu’avec le mode relatif. Il est recommandé sur la plupart des " "imprimantes. L’option par défaut est cochée" @@ -14885,46 +15031,37 @@ msgid "" "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 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" "\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 "" -"Veuillez trouver les détails de la calibration dynamique du débit sur notre " -"Wiki.\n" +"Vous trouverez les détails de l'étalonnage de la dynamique des flux dans " +"notre wiki.\n" "\n" -"Habituellement, la calibration est inutile. Lorsque vous démarrez une " -"impression d'une seule couleur/matériau, avec l'option \"Calibration du " -"débit\" cochée dans le menu de démarrage de l'impression, l'imprimante " -"suivra l'ancienne méthode de calibration du filament avant l'impression.\n" -"Lorsque vous démarrez une impression multi-couleurs/matériaux, l'imprimante " -"utilise le paramètre de compensation par défaut pour le filament lors de " -"chaque changement de filament, ce qui donne un bon résultat dans la plupart " -"des cas.\n" +"En général, la calibration n’est pas nécessaire. Lorsque vous démarrez une " +"impression mono-couleur/matériau, avec l’option « calibration de la " +"dynamique de flux » cochée dans le menu de démarrage de l’impression, " +"l’imprimante suivra l’ancienne méthode, en calibrant le filament avant " +"l’impression ; Lorsque vous démarrez une impression multi-couleur/matériau, " +"l’imprimante utilisera le paramètre de compensation par défaut pour le " +"filament lors de chaque changement de filament, ce qui donnera un bon " +"résultat dans la plupart des cas.\n" "\n" -"Veuillez noter qu'il y a quelques cas qui rendront le résultat de " -"calibration non fiable : utiliser un plateau texturé pour faire la " -"calibration, utiliser un plateau qui n'a pas une bonne adhérence (veuillez " -"dans ce cas laver la plaque de construction ou appliquer de la colle)… Vous " -"pouvez trouver d'autres cas sur notre Wiki.\n" -"Veuillez noter qu'il y a quelques cas qui rendront le résultat de " -"calibration non fiable : utiliser un plateau texturé pour faire la " -"calibration, utiliser un plateau qui n'a pas une bonne adhérence (veuillez " -"dans ce cas laver la plaque de construction ou appliquer de la colle)… Vous " -"pouvez trouver d'autres cas sur notre Wiki.\n" +"Veuillez noter qu’il existe quelques cas qui peuvent rendre les résultats de " +"la calibration peu fiables, tels qu’une adhérence insuffisante sur le " +"plateau. Il est possible d’améliorer l’adhérence en lavant la plaque de " +"construction ou en appliquant de la colle. Pour plus d’informations à ce " +"sujet, veuillez consulter notre Wiki.\n" "\n" -"Les résultats de calibration ont environ 10 % d'écart dans nos tests, ce qui " -"peut faire en sorte que le résultat ne soit pas exactement le même à chaque " -"calibration. Nous enquêtons toujours sur la cause première pour apporter des " -"améliorations avec de nouvelles mises à jour.Les résultats de calibration " -"ont environ 10 % d'écart dans nos tests, ce qui peut faire en sorte que le " -"résultat ne soit pas exactement le même à chaque calibration. Nous enquêtons " -"toujours sur la cause première pour apporter des améliorations avec de " -"nouvelles mises à jour." +"Les résultats de la calibration présentent une fluctuation d’environ 10 % " +"dans notre test, ce qui peut entraîner une différence entre les résultats de " +"chaque calibration. Nous continuons d’étudier la cause première afin " +"d’apporter des améliorations lors des nouvelles mises à jour." msgid "When to use Flow Rate Calibration" msgstr "Nécessité de la calibration du débit" @@ -15063,26 +15200,16 @@ msgstr "Le nom ne peut pas dépasser 40 caractères." msgid "" "Only one of the results with the same name will be saved. Are you sure you " -"want to overrides the other results?" +"want to override the other results?" msgstr "" -"Un seul des résultats portant le même nom sera enregistré. Voulez-vous " -"vraiment remplacer les autres résultats ?" - -#, 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 "" -"Il existe déjà un résultat de calibration portant le même nom : %s. Un seul " -"des résultats portant le même nom est enregistré. Voulez-vous vraiment " -"remplacer le résultat précédent ?" +"Seul un des résultats portant le même nom sera enregistré. Êtes-vous sûr de " +"vouloir annuler les autres résultats ?" msgid "Please find the best line on your plate" msgstr "Veuillez trouver la meilleure ligne sur votre plateau" -msgid "Please find the cornor with perfect degree of extrusion" -msgstr "Veuillez trouver le coin avec un degré d’extrusion parfait" +msgid "Please find the corner with perfect degree of extrusion" +msgstr "Veuillez trouver l'angle avec le degré d'extrusion parfait" msgid "Input Value" msgstr "Valeur d’entrée" @@ -15342,6 +15469,9 @@ msgstr "ABS/ASA" msgid "PETG" msgstr "PETG" +msgid "PCTG" +msgstr "" + msgid "TPU" msgstr "TPU" @@ -15440,6 +15570,9 @@ msgstr "" msgid "Upload to storage" msgstr "Envoyer vers le stockage" +msgid "Switch to Device tab after upload." +msgstr "" + #, c-format, boost-format msgid "Upload filename doesn't end with \"%s\". Do you wish to continue?" msgstr "" @@ -15679,8 +15812,8 @@ msgstr "" "Voulez-vous le réécrire ?" 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 "" "Nous renommerions les préréglages en « Vendor Type Serial @printer you " @@ -15730,12 +15863,6 @@ msgstr "Rectangle" msgid "Printable Space" msgstr "Espace imprimable" -msgid "X" -msgstr "X" - -msgid "Y" -msgstr "Y" - msgid "Hot Bed STL" msgstr "STL du plateau" @@ -16158,6 +16285,12 @@ msgstr "Êtes-vous sûr de pouvoir vous déconnecter ?" msgid "Refresh Printers" msgstr "Actualiser les imprimantes" +msgid "View print host webui in Device tab" +msgstr "" + +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." @@ -16622,21 +16755,17 @@ msgstr "Connexion à SimplyPrint réussie !" msgid "Could not connect to SimplyPrint" msgstr "Impossible de se connecter à SimplyPrint" +msgid "Internel error" +msgstr "" + +msgid "Unknown error" +msgstr "Erreur inconnue" + msgid "SimplyPrint account not linked. Go to Connect options to set it up." msgstr "" "Le compte SimplyPrint n’est pas lié. Allez dans les options de connexion " "pour le configurer." -msgid "" -"File size exceeds the 100MB upload limit. Please upload your file through " -"the panel." -msgstr "" -"La taille du fichier dépasse la limite de téléchargement de 100 Mo. Veuillez " -"télécharger votre fichier via le panneau." - -msgid "Unknown error" -msgstr "Erreur inconnue" - msgid "Connection to Flashforge works correctly." msgstr "La connexion à Flashforge fonctionne correctement." @@ -17055,6 +17184,111 @@ 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 "" +#~ "File size exceeds the 100MB upload limit. Please upload your file through " +#~ "the panel." +#~ msgstr "" +#~ "La taille du fichier dépasse la limite de téléchargement de 100 Mo. " +#~ "Veuillez télécharger votre fichier via le panneau." + +#~ msgid "Please input a valid value (K in 0~0.3)" +#~ msgstr "Veuillez saisir une valeur valide (K entre 0 et 0,3)" + +#~ msgid "Please input a valid value (K in 0~0.3, N in 0.6~2.0)" +#~ msgstr "" +#~ "Veuillez saisir une valeur valide (K entre 0 et 0,3, N entre 0,6 et 2,0)." + +#~ msgid "Select connected printetrs (0/6)" +#~ msgstr "Sélectionner les imprimantes connectées (0/6)" + +#, c-format, boost-format +#~ msgid "Select Connected Printetrs (%d/6)" +#~ msgstr "Sélectionner les imprimantes connectées (%d/6)" + +#~ msgid "PrintingPause" +#~ msgstr "Pause de l’impression" + +#~ msgid "Printer local connection failed, please try again." +#~ msgstr "La connexion locale de l'imprimante a échoué, veuillez réessayer." + +#~ 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 "" +#~ "Veuillez trouver les détails de la calibration dynamique du débit sur " +#~ "notre Wiki.\n" +#~ "\n" +#~ "Habituellement, la calibration est inutile. Lorsque vous démarrez une " +#~ "impression d'une seule couleur/matériau, avec l'option \"Calibration du " +#~ "débit\" cochée dans le menu de démarrage de l'impression, l'imprimante " +#~ "suivra l'ancienne méthode de calibration du filament avant l'impression.\n" +#~ "Lorsque vous démarrez une impression multi-couleurs/matériaux, " +#~ "l'imprimante utilise le paramètre de compensation par défaut pour le " +#~ "filament lors de chaque changement de filament, ce qui donne un bon " +#~ "résultat dans la plupart des cas.\n" +#~ "\n" +#~ "Veuillez noter qu'il y a quelques cas qui rendront le résultat de " +#~ "calibration non fiable : utiliser un plateau texturé pour faire la " +#~ "calibration, utiliser un plateau qui n'a pas une bonne adhérence " +#~ "(veuillez dans ce cas laver la plaque de construction ou appliquer de la " +#~ "colle)… Vous pouvez trouver d'autres cas sur notre Wiki.\n" +#~ "Veuillez noter qu'il y a quelques cas qui rendront le résultat de " +#~ "calibration non fiable : utiliser un plateau texturé pour faire la " +#~ "calibration, utiliser un plateau qui n'a pas une bonne adhérence " +#~ "(veuillez dans ce cas laver la plaque de construction ou appliquer de la " +#~ "colle)… Vous pouvez trouver d'autres cas sur notre Wiki.\n" +#~ "\n" +#~ "Les résultats de calibration ont environ 10 % d'écart dans nos tests, ce " +#~ "qui peut faire en sorte que le résultat ne soit pas exactement le même à " +#~ "chaque calibration. Nous enquêtons toujours sur la cause première pour " +#~ "apporter des améliorations avec de nouvelles mises à jour.Les résultats " +#~ "de calibration ont environ 10 % d'écart dans nos tests, ce qui peut faire " +#~ "en sorte que le résultat ne soit pas exactement le même à chaque " +#~ "calibration. Nous enquêtons toujours sur la cause première pour apporter " +#~ "des améliorations avec de nouvelles mises à jour." + +#~ msgid "" +#~ "Only one of the results with the same name will be saved. Are you sure " +#~ "you want to overrides the other results?" +#~ msgstr "" +#~ "Un seul des résultats portant le même nom sera enregistré. Voulez-vous " +#~ "vraiment remplacer les autres résultats ?" + +#, 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 "" +#~ "Il existe déjà un résultat de calibration portant le même nom : %s. Un " +#~ "seul des résultats portant le même nom est enregistré. Voulez-vous " +#~ "vraiment remplacer le résultat précédent ?" + +#~ msgid "Please find the cornor with perfect degree of extrusion" +#~ msgstr "Veuillez trouver le coin avec un degré d’extrusion parfait" + +#~ msgid "X" +#~ msgstr "X" + +#~ msgid "Y" +#~ msgstr "Y" + #~ msgid "" #~ "Associate OrcaSlicer with prusaslicer:// links so that Orca can open " #~ "PrusaSlicer links from Printable.com" @@ -17498,8 +17732,8 @@ msgstr "" #~ "thickness (top+bottom solid layers)" #~ msgstr "" #~ "Ajoutez du remplissage solide à proximité des surfaces inclinées pour " -#~ "garantir l'épaisseur verticale de la coque (couches solides " -#~ "supérieure+inférieure)." +#~ "garantir l'épaisseur verticale de la coque (couches solides supérieure" +#~ "+inférieure)." #~ msgid "Further reduce solid infill on walls (beta)" #~ msgstr "Réduire davantage le remplissage solide des parois (expérimental)" diff --git a/localization/i18n/hu/OrcaSlicer_hu.po b/localization/i18n/hu/OrcaSlicer_hu.po index a38560b36c..b9a85cc64e 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: 2024-05-29 00:28+0800\n" +"POT-Creation-Date: 2024-06-21 20:03+0800\n" "Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -2812,11 +2812,13 @@ msgstr "Are you sure you want to clear the filament information?" msgid "You need to select the material type and color first." msgstr "You need to select the material type and color first." -msgid "Please input a valid value (K in 0~0.3)" -msgstr "Kérjük, adj meg egy érvényes értéket (K 0-0,3)" +#, c-format, boost-format +msgid "Please input a valid value (K in %.1f~%.1f)" +msgstr "" -msgid "Please input a valid value (K in 0~0.3, N in 0.6~2.0)" -msgstr "Kérjük, adj meg egy érvényes értéket (K 0-0,3; N 0,6-2,0)" +#, c-format, boost-format +msgid "Please input a valid value (K in %.1f~%.1f, N in %.1f~%.1f)" +msgstr "" msgid "Other Color" msgstr "Other Color" @@ -3241,11 +3243,11 @@ msgstr "Task Sent" msgid "Edit multiple printers" msgstr "" -msgid "Select connected printetrs (0/6)" +msgid "Select connected printers (0/6)" msgstr "" #, c-format, boost-format -msgid "Select Connected Printetrs (%d/6)" +msgid "Select Connected Printers (%d/6)" msgstr "" #, c-format, boost-format @@ -3307,7 +3309,7 @@ msgstr "" msgid "Printing Failed" msgstr "" -msgid "PrintingPause" +msgid "Printing Pause" msgstr "" msgid "Prepare" @@ -3406,8 +3408,8 @@ msgstr "" msgid "Send Options" msgstr "Send Options" -msgid "Send" -msgstr "Küldés" +msgid "Send to" +msgstr "" msgid "" "printers at the same time.(It depends on how many devices can undergo " @@ -3424,6 +3426,9 @@ msgid "" msgstr "" "minute each batch. (It depends on how long it takes to complete heating.)" +msgid "Send" +msgstr "Küldés" + msgid "Name is invalid;" msgstr "A név érvénytelen;" @@ -3987,6 +3992,20 @@ msgstr "" "IGEN %s%%, \n" "NEM %s %s." +#, boost-format +msgid "" +"Invalid input format. Expected vector of dimensions in the following format: " +"\"%1%\"" +msgstr "" +"Érvénytelen bemeneti formátum. A méretek vektora a következő formátumban " +"lenne érvényes: \"%1%\"" + +msgid "Input value is out of range" +msgstr "A bemeneti érték kívül esik a tartományon" + +msgid "Some extension in the input is invalid" +msgstr "" + #, boost-format msgid "Invalid format. Expected vector format: \"%1%\"" msgstr "Érvénytelen formátum. Elvárt vektor formátum: \"%1%\"" @@ -7036,9 +7055,6 @@ msgstr "küldés befejezve" msgid "Error code" msgstr "Error code" -msgid "Printer local connection failed, please try again." -msgstr "Printer local connection failed; please try again." - msgid "No login account, only printers in LAN mode are displayed" msgstr "" "Nincs bejelentkezési fiók, csak a LAN módban lévő nyomtatók jelennek meg" @@ -7793,6 +7809,14 @@ msgstr "" msgid "Printable space" msgstr "Nyomtatási terület" +#. TRN: First argument is parameter name, the second one is the value. +#, boost-format +msgid "Invalid value provided for parameter %1%: %2%" +msgstr "" + +msgid "G-code flavor is switched" +msgstr "" + msgid "Cooling Fan" msgstr "" @@ -8162,6 +8186,60 @@ msgstr "Nincs elérhető frissítés." msgid "The configuration is up to date." msgstr "A konfiguráció naprakész." +msgid "Obj file Import color" +msgstr "Obj file Import color" + +msgid "Specify number of colors:" +msgstr "Specify number of colors:" + +#, c-format, boost-format +msgid "The color count should be in range [%d, %d]." +msgstr "The color count should be in range [%d, %d]." + +msgid "Recommended " +msgstr "Recommended " + +msgid "Current filament colors:" +msgstr "Current filament colors:" + +msgid "Quick set:" +msgstr "Quick set:" + +msgid "Color match" +msgstr "Color match" + +msgid "Approximate color matching." +msgstr "Approximate color matching." + +msgid "Append" +msgstr "Append" + +msgid "Add consumable extruder after existing extruders." +msgstr "Add consumable extruder after existing extruders." + +msgid "Reset mapped extruders." +msgstr "Reset mapped extruders." + +msgid "Cluster colors" +msgstr "Cluster colors" + +msgid "Map Filament" +msgstr "Map Filament" + +msgid "" +"Note:The color has been selected, you can choose OK \n" +" to continue or manually adjust it." +msgstr "" +"Note:The color has been selected, you can choose OK \n" +" to continue or manually adjust it." + +msgid "" +"Waring:The count of newly added and \n" +" current extruders exceeds 16." +msgstr "" +"Warning: The count of newly added and \n" +" current extruders exceeds 16." + msgid "Ramming customization" msgstr "Tömörítés testreszabása" @@ -8245,6 +8323,32 @@ msgstr "Ettől:" msgid "To" msgstr "Eddig:" +msgid "" +"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" +msgstr "" + +msgid "" +"Missing BambuSource component registered for media playing! Please re-" +"install BambuStutio 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." +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?)" +msgstr "" + msgid "Bambu Network plug-in not detected." msgstr "A Bambu Network plug-in nem található." @@ -10316,6 +10420,22 @@ msgstr "" "és legalább a minimális fordulatszámon fog járni, hogy csökkentse az indítás " "és leállítás gyakoriságát" +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" +"\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 " +"artefacts that appear like z banding \n" +"3. To avoid printing at speeds which cause VFAs (fine artefacts) on the " +"external walls\n" +"\n" +msgstr "" + msgid "Layer time" msgstr "Rétegidő" @@ -10834,6 +10954,9 @@ msgid "" "maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1." msgstr "" +msgid "layer" +msgstr "" + msgid "Support interface fan speed" msgstr "" @@ -13801,33 +13924,15 @@ msgid "" "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 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" "\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 "" -"Az áramlásdinamikai kalibráció részleteit a wikiben találod.\n" -"\n" -"Általában nincs szükség a kalibrálásra. Ha egyszínű / egy anyagból álló " -"nyomtatást indítasz, és a nyomtatás indítása menüben be van jelölve az " -"„Áramlásdinamika kalibrálás“ opció, a nyomtató a nyomtatás előtt kalibrálja " -"a filamenteket. Ha többszínű / több anyagból álló nyomtatást indítasz, a " -"nyomtató minden filamentváltáskor az alapértelmezett kompenzációs paramétert " -"használja a filamentekhez, ami a legtöbb esetben jó eredményt ad.\n" -"\n" -"Felhívjuk a figyelmed, hogy néhány esetben a kalibrálás eredménye " -"megbízhatatlan lehet: texturált tálcát / rossz tapadású tálcát használsz a " -"kalibráláshoz. (Kérjük, mosd le a tálcát vagy használj ragasztót!) További " -"információkat a wikiben találhatsz.\n" -"\n" -"A kalibrációs eredmények körülbelül 10 százalékos szórást mutatnak a " -"tesztjeinkben, ami miatt előfordulhat, hogy az eredmények nem azonosak " -"minden kalibrációnál. Még vizsgáljuk a kiváltó okot, hogy a jövőbeni " -"frissítésekkel tovább javíthassuk ezt a funkciót." msgid "When to use Flow Rate Calibration" msgstr "Mikor van szükség az anyagáramlás kalibrálására?" @@ -13959,25 +14064,15 @@ msgstr "A név nem haladhatja meg a 40 karaktert." msgid "" "Only one of the results with the same name will be saved. Are you sure you " -"want to overrides the other results?" +"want to override the other results?" msgstr "" "Az azonos nevű eredmények közül csak az egyik kerül elmentésre. Biztos, hogy " "felül akarod írni a többi eredményt?" -#, 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 "" -"Már létezik egy ugyanilyen nevű, korábbi kalibrálási eredmény: %s. Csak egy " -"azonos nevű eredményt lehet elmenteni. Biztos, hogy felül akarod írni a " -"korábbi eredményeket?" - msgid "Please find the best line on your plate" msgstr "Keresd meg a legjobb vonalat a tálcán" -msgid "Please find the cornor with perfect degree of extrusion" +msgid "Please find the corner with perfect degree of extrusion" msgstr "Keresd meg a tökéletesen extrudált sarkot" msgid "Input Value" @@ -14231,6 +14326,9 @@ msgstr "ABS/ASA" msgid "PETG" msgstr "PETG" +msgid "PCTG" +msgstr "" + msgid "TPU" msgstr "TPU" @@ -14315,6 +14413,9 @@ msgstr "Ha szükséges, használj perjeleket ( / ) könyvtárelválasztóként." msgid "Upload to storage" msgstr "" +msgid "Switch to Device tab after upload." +msgstr "" + #, c-format, boost-format msgid "Upload filename doesn't end with \"%s\". Do you wish to continue?" msgstr "A feltöltendő fájlnév nem végződik „%s”-ra. Folytatod?" @@ -14586,12 +14687,6 @@ msgstr "Négyzet" msgid "Printable Space" msgstr "Nyomtatási terület" -msgid "X" -msgstr "" - -msgid "Y" -msgstr "" - msgid "Hot Bed STL" msgstr "Tárgyasztal STL" @@ -14938,7 +15033,7 @@ msgstr "Napi tippek" #, c-format, boost-format msgid "nozzle memorized: %.1f %s" -msgstr "" +msgstr "eltárolt fúvóka: %.1f %s" msgid "" "Your nozzle diameter in preset is not consistent with memorized nozzle " @@ -14982,6 +15077,12 @@ msgstr "" msgid "Refresh Printers" msgstr "Nyomtatók frissítése" +msgid "View print host webui in Device tab" +msgstr "" + +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." @@ -15413,17 +15514,15 @@ msgstr "" msgid "Could not connect to SimplyPrint" msgstr "" -msgid "SimplyPrint account not linked. Go to Connect options to set it up." -msgstr "" - -msgid "" -"File size exceeds the 100MB upload limit. Please upload your file through " -"the panel." +msgid "Internel error" msgstr "" msgid "Unknown error" msgstr "" +msgid "SimplyPrint account not linked. Go to Connect options to set it up." +msgstr "" + msgid "Connection to Flashforge works correctly." msgstr "" @@ -15783,6 +15882,75 @@ 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 "Please input a valid value (K in 0~0.3)" +#~ msgstr "Kérjük, adj meg egy érvényes értéket (K 0-0,3)" + +#~ msgid "Please input a valid value (K in 0~0.3, N in 0.6~2.0)" +#~ msgstr "Kérjük, adj meg egy érvényes értéket (K 0-0,3; N 0,6-2,0)" + +#~ msgid "Printer local connection failed, please try again." +#~ msgstr "Printer local connection failed; please try again." + +#~ 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 "" +#~ "Az áramlásdinamikai kalibráció részleteit a wikiben találod.\n" +#~ "\n" +#~ "Általában nincs szükség a kalibrálásra. Ha egyszínű / egy anyagból álló " +#~ "nyomtatást indítasz, és a nyomtatás indítása menüben be van jelölve az " +#~ "„Áramlásdinamika kalibrálás“ opció, a nyomtató a nyomtatás előtt " +#~ "kalibrálja a filamenteket. Ha többszínű / több anyagból álló nyomtatást " +#~ "indítasz, a nyomtató minden filamentváltáskor az alapértelmezett " +#~ "kompenzációs paramétert használja a filamentekhez, ami a legtöbb esetben " +#~ "jó eredményt ad.\n" +#~ "\n" +#~ "Felhívjuk a figyelmed, hogy néhány esetben a kalibrálás eredménye " +#~ "megbízhatatlan lehet: texturált tálcát / rossz tapadású tálcát használsz " +#~ "a kalibráláshoz. (Kérjük, mosd le a tálcát vagy használj ragasztót!) " +#~ "További információkat a wikiben találhatsz.\n" +#~ "\n" +#~ "A kalibrációs eredmények körülbelül 10 százalékos szórást mutatnak a " +#~ "tesztjeinkben, ami miatt előfordulhat, hogy az eredmények nem azonosak " +#~ "minden kalibrációnál. Még vizsgáljuk a kiváltó okot, hogy a jövőbeni " +#~ "frissítésekkel tovább javíthassuk ezt a funkciót." + +#~ msgid "" +#~ "Only one of the results with the same name will be saved. Are you sure " +#~ "you want to overrides the other results?" +#~ msgstr "" +#~ "Az azonos nevű eredmények közül csak az egyik kerül elmentésre. Biztos, " +#~ "hogy felül akarod írni a többi eredményt?" + +#, 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 "" +#~ "Már létezik egy ugyanilyen nevű, korábbi kalibrálási eredmény: %s. Csak " +#~ "egy azonos nevű eredményt lehet elmenteni. Biztos, hogy felül akarod írni " +#~ "a korábbi eredményeket?" + +#~ msgid "Please find the cornor with perfect degree of extrusion" +#~ msgstr "Keresd meg a tökéletesen extrudált sarkot" + #~ msgid "V" #~ msgstr "V" diff --git a/localization/i18n/it/OrcaSlicer_it.po b/localization/i18n/it/OrcaSlicer_it.po index 7d555e2d13..b7e6566662 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: 2024-05-29 00:28+0800\n" +"POT-Creation-Date: 2024-06-21 20:03+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -2885,11 +2885,13 @@ msgstr "Sei sicuro di voler cancellare le informazioni del filamento?" msgid "You need to select the material type and color first." msgstr "Devi prima selezionare il tipo e il colore del materiale." -msgid "Please input a valid value (K in 0~0.3)" -msgstr "Immettere un valore valido (K in 0~0.3)" +#, c-format, boost-format +msgid "Please input a valid value (K in %.1f~%.1f)" +msgstr "" -msgid "Please input a valid value (K in 0~0.3, N in 0.6~2.0)" -msgstr "Immettere un valore valido (K in 0~0.3, N in 0.6~2.0)" +#, c-format, boost-format +msgid "Please input a valid value (K in %.1f~%.1f, N in %.1f~%.1f)" +msgstr "" msgid "Other Color" msgstr "Altro colore" @@ -3324,11 +3326,11 @@ msgstr "Task Sent" msgid "Edit multiple printers" msgstr "" -msgid "Select connected printetrs (0/6)" +msgid "Select connected printers (0/6)" msgstr "" #, c-format, boost-format -msgid "Select Connected Printetrs (%d/6)" +msgid "Select Connected Printers (%d/6)" msgstr "" #, c-format, boost-format @@ -3390,7 +3392,7 @@ msgstr "" msgid "Printing Failed" msgstr "" -msgid "PrintingPause" +msgid "Printing Pause" msgstr "" msgid "Prepare" @@ -3489,8 +3491,8 @@ msgstr "" msgid "Send Options" msgstr "Send Options" -msgid "Send" -msgstr "Invia" +msgid "Send to" +msgstr "" msgid "" "printers at the same time.(It depends on how many devices can undergo " @@ -3507,6 +3509,9 @@ msgid "" msgstr "" "minute each batch. (It depends on how long it takes to complete heating.)" +msgid "Send" +msgstr "Invia" + msgid "Name is invalid;" msgstr "Nome non valido;" @@ -4086,6 +4091,20 @@ msgstr "" "YES for %s%%, \n" "NO for %s %s." +#, boost-format +msgid "" +"Invalid input format. Expected vector of dimensions in the following format: " +"\"%1%\"" +msgstr "" +"Formato di input non valido. Vettore di dimensioni previsto nel seguente " +"formato: \"%1%\"" + +msgid "Input value is out of range" +msgstr "Valore input fuori portata" + +msgid "Some extension in the input is invalid" +msgstr "Alcune estensioni nell'input non sono valide" + #, boost-format msgid "Invalid format. Expected vector format: \"%1%\"" msgstr "Formato non valido. Formato vettoriale previsto: \"%1%\"" @@ -7178,9 +7197,6 @@ msgstr "Invio completo" msgid "Error code" msgstr "Codice di errore" -msgid "Printer local connection failed, please try again." -msgstr "Connessione locale della stampante fallita; Si prega di riprovare." - msgid "No login account, only printers in LAN mode are displayed" msgstr "" "Nessun account di login, vengono visualizzate solo le stampanti in modalità " @@ -7944,6 +7960,14 @@ msgstr "Parametri di cambio strumento con stampanti MM multiestrusore" msgid "Printable space" msgstr "Spazio di stampa" +#. TRN: First argument is parameter name, the second one is the value. +#, boost-format +msgid "Invalid value provided for parameter %1%: %2%" +msgstr "Valore non valido fornito per il parametro %1%: %2%" + +msgid "G-code flavor is switched" +msgstr "La variante del G-Code è stata commutata" + msgid "Cooling Fan" msgstr "Velocità minima ventola di raffreddamento" @@ -8326,6 +8350,60 @@ msgstr "Nessun aggiornamento disponibile." msgid "The configuration is up to date." msgstr "Configurazione aggiornata." +msgid "Obj file Import color" +msgstr "Obj file Import color" + +msgid "Specify number of colors:" +msgstr "Specify number of colors:" + +#, c-format, boost-format +msgid "The color count should be in range [%d, %d]." +msgstr "The color count should be in range [%d, %d]." + +msgid "Recommended " +msgstr "Recommended " + +msgid "Current filament colors:" +msgstr "Current filament colors:" + +msgid "Quick set:" +msgstr "Quick set:" + +msgid "Color match" +msgstr "Color match" + +msgid "Approximate color matching." +msgstr "Approximate color matching." + +msgid "Append" +msgstr "Append" + +msgid "Add consumable extruder after existing extruders." +msgstr "Add consumable extruder after existing extruders." + +msgid "Reset mapped extruders." +msgstr "Reset mapped extruders." + +msgid "Cluster colors" +msgstr "Cluster colors" + +msgid "Map Filament" +msgstr "Map Filament" + +msgid "" +"Note:The color has been selected, you can choose OK \n" +" to continue or manually adjust it." +msgstr "" +"Note:The color has been selected, you can choose OK \n" +" to continue or manually adjust it." + +msgid "" +"Waring:The count of newly added and \n" +" current extruders exceeds 16." +msgstr "" +"Warning: The count of newly added and \n" +" current extruders exceeds 16." + msgid "Ramming customization" msgstr "Personalizzazione del ramming" @@ -8414,6 +8492,32 @@ msgstr "Da" msgid "To" msgstr "A" +msgid "" +"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" +msgstr "" + +msgid "" +"Missing BambuSource component registered for media playing! Please re-" +"install BambuStutio 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." +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?)" +msgstr "" + msgid "Bambu Network plug-in not detected." msgstr "Plug-in di rete Bambu non rilevato." @@ -10745,6 +10849,22 @@ msgstr "" "arresterà mai del tutto, ma funzionerà almeno alla velocità minima per " "ridurre la frequenza di avvio e arresto." +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" +"\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 " +"artefacts that appear like z banding \n" +"3. To avoid printing at speeds which cause VFAs (fine artefacts) on the " +"external walls\n" +"\n" +msgstr "" + msgid "Layer time" msgstr "Layer time" @@ -11331,6 +11451,9 @@ msgstr "" "\"close_fan_the_first_x_layers\", nel qual caso la ventola funzionerà alla " "massima velocità consentita al livello \"close_fan_the_first_x_layers\" + 1." +msgid "layer" +msgstr "" + msgid "Support interface fan speed" msgstr "Supporta la velocità della ventola dell'interfaccia" @@ -14639,36 +14762,15 @@ msgid "" "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 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" "\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 "" -"I dettagli della calibrazione dinamica del flusso sono disponibili nel " -"nostro wiki.\n" -"\n" -"Di solito la calibrazione non è necessaria. Quando si avvia una stampa a " -"singolo colore/materiale, con l'opzione \"calibrazione dinamica del flusso\" " -"selezionata nel menu di avvio della stampa, la stampante seguirà il vecchio " -"modo, calibrando il filamento prima della stampa; Quando si avvia una stampa " -"multicolore/materiale, la stampante utilizzerà il parametro di compensazione " -"predefinito per il filamento durante ogni cambio di filamento, che avrà un " -"buon risultato nella maggior parte dei casi.\n" -"\n" -"Si prega di notare che ci sono alcuni casi che renderanno il risultato della " -"calibrazione non affidabile: utilizzo di una piastra di texture per eseguire " -"la calibrazione; Il piano di stampa non ha una buona adesione (è consigliato " -"lavarlo o applicare della colla stick!) ... Puoi trovare di più dal nostro " -"wiki.\n" -"\n" -"I risultati della calibrazione hanno un jitter di circa il 10% nel nostro " -"test, il che potrebbe causare un risultato non esattamente lo stesso in ogni " -"calibrazione. Stiamo ancora indagando sulla causa principale per apportare " -"miglioramenti con i nuovi aggiornamenti." msgid "When to use Flow Rate Calibration" msgstr "Quando utilizzare la calibrazione della portata" @@ -14805,26 +14907,16 @@ msgstr "Il nome non può superare i 40 caratteri." msgid "" "Only one of the results with the same name will be saved. Are you sure you " -"want to overrides the other results?" +"want to override the other results?" msgstr "" -"Verrà salvato solo uno dei risultati con lo stesso nome. Si è sicuri di " -"voler sovrascrivere gli altri risultati?" - -#, 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 "" -"Esiste già un risultato di calibrazione storico con lo stesso nome: %s. " -"Viene salvato solo uno dei risultati con lo stesso nome. Si è sicuri di " -"voler eseguire l'override del risultato cronologico?" +"Verrà salvato solo uno dei risultati con lo stesso nome. Sei sicuro di voler " +"sostituire gli altri risultati?" msgid "Please find the best line on your plate" msgstr "Trova la linea migliore nel tuo piatto" -msgid "Please find the cornor with perfect degree of extrusion" -msgstr "Si prega di trovare il cornor con il perfetto grado di estrusione" +msgid "Please find the corner with perfect degree of extrusion" +msgstr "Prego Individua l'angolo con il grado di estrusione ideale" msgid "Input Value" msgstr "Valore di input" @@ -15084,6 +15176,9 @@ msgstr "ABS/ASA" msgid "PETG" msgstr "PETG" +msgid "PCTG" +msgstr "" + msgid "TPU" msgstr "TPU (TPU)" @@ -15180,6 +15275,9 @@ msgstr "Usa la barra ( / ) come separatore di cartella se necessario." msgid "Upload to storage" msgstr "Carica nello spazio di archiviazione" +msgid "Switch to Device tab after upload." +msgstr "" + #, c-format, boost-format msgid "Upload filename doesn't end with \"%s\". Do you wish to continue?" msgstr "Il nome del file caricato non finisce con \"%s\". Vuoi continuare?" @@ -15464,12 +15562,6 @@ msgstr "Rettangolo" msgid "Printable Space" msgstr "Spazio di stampa" -msgid "X" -msgstr "X" - -msgid "Y" -msgstr "Y" - msgid "Hot Bed STL" msgstr "STL del Piano Riscaldato" @@ -15836,7 +15928,7 @@ msgstr "Consigli giornalieri" #, c-format, boost-format msgid "nozzle memorized: %.1f %s" -msgstr "" +msgstr "nozzle memorizzato: %.1f %s" msgid "" "Your nozzle diameter in preset is not consistent with memorized nozzle " @@ -15880,6 +15972,12 @@ msgstr "Sei sicuro di voler effettuare il logout?" msgid "Refresh Printers" msgstr "Aggiorna Stampanti" +msgid "View print host webui in Device tab" +msgstr "" + +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." @@ -16313,17 +16411,15 @@ msgstr "" msgid "Could not connect to SimplyPrint" msgstr "" -msgid "SimplyPrint account not linked. Go to Connect options to set it up." -msgstr "" - -msgid "" -"File size exceeds the 100MB upload limit. Please upload your file through " -"the panel." +msgid "Internel error" msgstr "" msgid "Unknown error" msgstr "" +msgid "SimplyPrint account not linked. Go to Connect options to set it up." +msgstr "" + msgid "Connection to Flashforge works correctly." msgstr "" @@ -16730,6 +16826,83 @@ msgstr "" "aumentare in modo appropriato la temperatura del piano riscaldato può " "ridurre la probabilità di deformazione." +#~ msgid "Please input a valid value (K in 0~0.3)" +#~ msgstr "Immettere un valore valido (K in 0~0.3)" + +#~ msgid "Please input a valid value (K in 0~0.3, N in 0.6~2.0)" +#~ msgstr "Immettere un valore valido (K in 0~0.3, N in 0.6~2.0)" + +#~ msgid "Printer local connection failed, please try again." +#~ msgstr "Connessione locale della stampante fallita; Si prega di riprovare." + +#~ 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 "" +#~ "I dettagli della calibrazione dinamica del flusso sono disponibili nel " +#~ "nostro wiki.\n" +#~ "\n" +#~ "Di solito la calibrazione non è necessaria. Quando si avvia una stampa a " +#~ "singolo colore/materiale, con l'opzione \"calibrazione dinamica del flusso" +#~ "\" selezionata nel menu di avvio della stampa, la stampante seguirà il " +#~ "vecchio modo, calibrando il filamento prima della stampa; Quando si avvia " +#~ "una stampa multicolore/materiale, la stampante utilizzerà il parametro di " +#~ "compensazione predefinito per il filamento durante ogni cambio di " +#~ "filamento, che avrà un buon risultato nella maggior parte dei casi.\n" +#~ "\n" +#~ "Si prega di notare che ci sono alcuni casi che renderanno il risultato " +#~ "della calibrazione non affidabile: utilizzo di una piastra di texture per " +#~ "eseguire la calibrazione; Il piano di stampa non ha una buona adesione (è " +#~ "consigliato lavarlo o applicare della colla stick!) ... Puoi trovare di " +#~ "più dal nostro wiki.\n" +#~ "\n" +#~ "I risultati della calibrazione hanno un jitter di circa il 10% nel nostro " +#~ "test, il che potrebbe causare un risultato non esattamente lo stesso in " +#~ "ogni calibrazione. Stiamo ancora indagando sulla causa principale per " +#~ "apportare miglioramenti con i nuovi aggiornamenti." + +#~ msgid "" +#~ "Only one of the results with the same name will be saved. Are you sure " +#~ "you want to overrides the other results?" +#~ msgstr "" +#~ "Verrà salvato solo uno dei risultati con lo stesso nome. Si è sicuri di " +#~ "voler sovrascrivere gli altri risultati?" + +#, 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 "" +#~ "Esiste già un risultato di calibrazione storico con lo stesso nome: %s. " +#~ "Viene salvato solo uno dei risultati con lo stesso nome. Si è sicuri di " +#~ "voler eseguire l'override del risultato cronologico?" + +#~ msgid "Please find the cornor with perfect degree of extrusion" +#~ msgstr "Si prega di trovare il cornor con il perfetto grado di estrusione" + +#~ msgid "X" +#~ msgstr "X" + +#~ msgid "Y" +#~ msgstr "Y" + #~ msgid "" #~ "Order of wall/infill. When the tickbox is unchecked the walls are printed " #~ "first, which works best in most cases.\n" diff --git a/localization/i18n/ja/OrcaSlicer_ja.po b/localization/i18n/ja/OrcaSlicer_ja.po index 1755c3d6e3..e4806b5ada 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: 2024-05-29 00:28+0800\n" +"POT-Creation-Date: 2024-06-21 20:03+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -2795,11 +2795,13 @@ msgstr "Are you sure you want to clear the filament information?" msgid "You need to select the material type and color first." msgstr "You need to select the material type and color first." -msgid "Please input a valid value (K in 0~0.3)" -msgstr "Please input a valid value (K in 0~0.3)" +#, c-format, boost-format +msgid "Please input a valid value (K in %.1f~%.1f)" +msgstr "" -msgid "Please input a valid value (K in 0~0.3, N in 0.6~2.0)" -msgstr "Please input a valid value (K in 0~0.3, N in 0.6~2.0)" +#, c-format, boost-format +msgid "Please input a valid value (K in %.1f~%.1f, N in %.1f~%.1f)" +msgstr "" msgid "Other Color" msgstr "Other Color" @@ -3204,11 +3206,11 @@ msgstr "Task Sent" msgid "Edit multiple printers" msgstr "" -msgid "Select connected printetrs (0/6)" +msgid "Select connected printers (0/6)" msgstr "" #, c-format, boost-format -msgid "Select Connected Printetrs (%d/6)" +msgid "Select Connected Printers (%d/6)" msgstr "" #, c-format, boost-format @@ -3270,7 +3272,7 @@ msgstr "" msgid "Printing Failed" msgstr "" -msgid "PrintingPause" +msgid "Printing Pause" msgstr "" msgid "Prepare" @@ -3369,8 +3371,8 @@ msgstr "" msgid "Send Options" msgstr "Send Options" -msgid "Send" -msgstr "送信" +msgid "Send to" +msgstr "" msgid "" "printers at the same time.(It depends on how many devices can undergo " @@ -3387,6 +3389,9 @@ msgid "" msgstr "" "minute each batch. (It depends on how long it takes to complete heating.)" +msgid "Send" +msgstr "送信" + msgid "Name is invalid;" msgstr "名称が無効です" @@ -3930,6 +3935,18 @@ msgstr "" "%s%% か、それとも %s %sですか?\n" "%s%% の場合ははい、 %s %s はいいえ。" +#, boost-format +msgid "" +"Invalid input format. Expected vector of dimensions in the following format: " +"\"%1%\"" +msgstr "入力形式が無効です。 次の形式の次元の予想されるベクトル:\"%1%\"" + +msgid "Input value is out of range" +msgstr "入力値が範囲を超えています" + +msgid "Some extension in the input is invalid" +msgstr "入力の一部の拡張子が無効" + #, boost-format msgid "Invalid format. Expected vector format: \"%1%\"" msgstr "無効なフォーマット、%1%であるはずです。" @@ -6941,9 +6958,6 @@ msgstr "送信完了" msgid "Error code" msgstr "Error code" -msgid "Printer local connection failed, please try again." -msgstr "Printer local connection failed; please try again." - msgid "No login account, only printers in LAN mode are displayed" msgstr "アカウント無し、ローカルモードのプリンターのみが表示されます" @@ -7651,6 +7665,14 @@ msgstr "マルチエクストルーダーMMプリンターのツールチェン msgid "Printable space" msgstr "造形可能領域" +#. TRN: First argument is parameter name, the second one is the value. +#, boost-format +msgid "Invalid value provided for parameter %1%: %2%" +msgstr "パラメータ %1% に無効な値が指定されました: %2%" + +msgid "G-code flavor is switched" +msgstr "Gコードフレーバーが切り替わる" + msgid "Cooling Fan" msgstr "" @@ -8011,6 +8033,60 @@ msgstr "利用可能なアップデートはありません" msgid "The configuration is up to date." msgstr "構成データが最新です" +msgid "Obj file Import color" +msgstr "Obj file Import color" + +msgid "Specify number of colors:" +msgstr "Specify number of colors:" + +#, c-format, boost-format +msgid "The color count should be in range [%d, %d]." +msgstr "The color count should be in range [%d, %d]." + +msgid "Recommended " +msgstr "Recommended " + +msgid "Current filament colors:" +msgstr "Current filament colors:" + +msgid "Quick set:" +msgstr "Quick set:" + +msgid "Color match" +msgstr "Color match" + +msgid "Approximate color matching." +msgstr "Approximate color matching." + +msgid "Append" +msgstr "Append" + +msgid "Add consumable extruder after existing extruders." +msgstr "Add consumable extruder after existing extruders." + +msgid "Reset mapped extruders." +msgstr "Reset mapped extruders." + +msgid "Cluster colors" +msgstr "Cluster colors" + +msgid "Map Filament" +msgstr "Map Filament" + +msgid "" +"Note:The color has been selected, you can choose OK \n" +" to continue or manually adjust it." +msgstr "" +"Note:The color has been selected, you can choose OK \n" +" to continue or manually adjust it." + +msgid "" +"Waring:The count of newly added and \n" +" current extruders exceeds 16." +msgstr "" +"Warning: The count of newly added and \n" +" current extruders exceeds 16." + msgid "Ramming customization" msgstr "ラミングのカスタマイズ" @@ -8093,6 +8169,32 @@ msgstr "From" msgid "To" msgstr "→" +msgid "" +"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" +msgstr "" + +msgid "" +"Missing BambuSource component registered for media playing! Please re-" +"install BambuStutio 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." +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?)" +msgstr "" + msgid "Bambu Network plug-in not detected." msgstr "Bambu Network plug-in not detected." @@ -10092,6 +10194,22 @@ msgstr "" "この設定により、パーツ冷却ファンを停止しなく、最低速度で回転します。頻繁に回" "転・停止の頻度を減らします。" +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" +"\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 " +"artefacts that appear like z banding \n" +"3. To avoid printing at speeds which cause VFAs (fine artefacts) on the " +"external walls\n" +"\n" +msgstr "" + msgid "Layer time" msgstr "積層時間" @@ -10596,6 +10714,9 @@ msgid "" "maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1." msgstr "" +msgid "layer" +msgstr "" + msgid "Support interface fan speed" msgstr "" @@ -13504,33 +13625,15 @@ msgid "" "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 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" "\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 "" -"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 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 may make the calibration result " -"unreliable: using a texture plate to do the calibration; using a build plate " -"with poor adhesion. (please wash the build plate or apply gluestick!) You " -"can find more on our wiki.\n" -"\n" -"The calibration results have about 10 percent variation in our test, which " -"may cause the results to not be identical for each calibration. We are still " -"investigating the root cause to further improve this calibration in future " -"updates." msgid "When to use Flow Rate Calibration" msgstr "When to use Flow Rate Calibration" @@ -13658,25 +13761,15 @@ msgstr "The name cannot exceed 40 characters." msgid "" "Only one of the results with the same name will be saved. Are you sure you " -"want to overrides the other results?" +"want to override the other results?" msgstr "" "Only one of the results with the same name will be saved. Are you sure you " -"want to override the other results?" - -#, 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 "" -"There is already a historical calibration result with the same name: %s. " -"Only one set of results with the same name is saved. Are you sure you want " -"to override the previous results?" +"want to replace the other results?" msgid "Please find the best line on your plate" msgstr "Please find the best line on your plate." -msgid "Please find the cornor with perfect degree of extrusion" +msgid "Please find the corner with perfect degree of extrusion" msgstr "Please find the corner with the perfect degree of extrusion" msgid "Input Value" @@ -13931,6 +14024,9 @@ msgstr "ABS/ASA" msgid "PETG" msgstr "PETG" +msgid "PCTG" +msgstr "" + msgid "TPU" msgstr "TPU" @@ -14015,6 +14111,9 @@ msgstr "Use forward slashes ( / ) as a directory separator if needed." msgid "Upload to storage" msgstr "ストレージへのアップロード" +msgid "Switch to Device tab after upload." +msgstr "" + #, c-format, boost-format msgid "Upload filename doesn't end with \"%s\". Do you wish to continue?" msgstr "Filename to upload doesn't end with \"%s\". Do you want to continue?" @@ -14285,12 +14384,6 @@ msgstr "Rectangle" msgid "Printable Space" msgstr "Printable Space" -msgid "X" -msgstr "" - -msgid "Y" -msgstr "" - msgid "Hot Bed STL" msgstr "Hot Bed STL" @@ -14635,7 +14728,7 @@ msgstr "Daily Tips" #, c-format, boost-format msgid "nozzle memorized: %.1f %s" -msgstr "" +msgstr "nozzle memorized: %.1f %s" msgid "" "Your nozzle diameter in preset is not consistent with memorized nozzle " @@ -14679,6 +14772,12 @@ msgstr "" msgid "Refresh Printers" msgstr "Refresh Printers" +msgid "View print host webui in Device tab" +msgstr "" + +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." @@ -15109,17 +15208,15 @@ msgstr "" msgid "Could not connect to SimplyPrint" msgstr "" -msgid "SimplyPrint account not linked. Go to Connect options to set it up." -msgstr "" - -msgid "" -"File size exceeds the 100MB upload limit. Please upload your file through " -"the panel." +msgid "Internel error" msgstr "" msgid "Unknown error" msgstr "" +msgid "SimplyPrint account not linked. Go to Connect options to set it up." +msgstr "" + msgid "Connection to Flashforge works correctly." msgstr "" @@ -15459,6 +15556,74 @@ msgstr "" "ABS, appropriately increasing the heatbed temperature can reduce the " "probability of warping?" +#~ msgid "Please input a valid value (K in 0~0.3)" +#~ msgstr "Please input a valid value (K in 0~0.3)" + +#~ msgid "Please input a valid value (K in 0~0.3, N in 0.6~2.0)" +#~ msgstr "Please input a valid value (K in 0~0.3, N in 0.6~2.0)" + +#~ msgid "Printer local connection failed, please try again." +#~ msgstr "Printer local connection failed; please try again." + +#~ 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 "" +#~ "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 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 may make the calibration result " +#~ "unreliable: using a texture plate to do the calibration; using a build " +#~ "plate with poor adhesion. (please wash the build plate or apply " +#~ "gluestick!) You can find more on our wiki.\n" +#~ "\n" +#~ "The calibration results have about 10 percent variation in our test, " +#~ "which may cause the results to not be identical for each calibration. We " +#~ "are still investigating the root cause to further improve this " +#~ "calibration in future updates." + +#~ msgid "" +#~ "Only one of the results with the same name will be saved. Are you sure " +#~ "you want to overrides the other results?" +#~ msgstr "" +#~ "Only one of the results with the same name will be saved. Are you sure " +#~ "you want to override the other results?" + +#, 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 "" +#~ "There is already a historical calibration result with the same name: %s. " +#~ "Only one set of results with the same name is saved. Are you sure you " +#~ "want to override the previous results?" + +#~ msgid "Please find the cornor with perfect degree of extrusion" +#~ msgstr "Please find the corner with the perfect degree of extrusion" + #~ msgid "V" #~ msgstr "V" diff --git a/localization/i18n/ko/OrcaSlicer_ko.po b/localization/i18n/ko/OrcaSlicer_ko.po index e4a152bef4..8b5519ab3b 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: 2024-05-29 00:28+0800\n" +"POT-Creation-Date: 2024-06-21 20:03+0800\n" "PO-Revision-Date: 2024-05-31 23:33+0900\n" "Last-Translator: Hotsolidinfill <138652683+Hotsolidinfill@users.noreply." "github.com>, crwusiz \n" @@ -2814,11 +2814,13 @@ msgstr "정말 필라멘트 정보를 삭제하시겠습니까?" msgid "You need to select the material type and color first." msgstr "재료 유형과 색상을 먼저 선택해야 합니다." -msgid "Please input a valid value (K in 0~0.3)" -msgstr "유효한 값을 입력하세요(K는 0~0.3)" +#, c-format, boost-format +msgid "Please input a valid value (K in %.1f~%.1f)" +msgstr "유효한 값을 입력하세요 (%.1f~%.1f 사이의 K)" -msgid "Please input a valid value (K in 0~0.3, N in 0.6~2.0)" -msgstr "유효한 값을 입력하세요(K는 0~0.3, N은 0.6~2.0)" +#, c-format, boost-format +msgid "Please input a valid value (K in %.1f~%.1f, N in %.1f~%.1f)" +msgstr "유효한 값을 입력하세요 (%.1f~%.1f 사이의 K, %.1f~%.1f 사이의 N)" msgid "Other Color" msgstr "기타 색상" @@ -3226,12 +3228,12 @@ msgstr "Task Sent" msgid "Edit multiple printers" msgstr "여러 프린터 편집" -msgid "Select connected printetrs (0/6)" -msgstr "연결된 프린터 선택(0/6)" +msgid "Select connected printers (0/6)" +msgstr "연결된 프린터 선택 (0/6)" #, c-format, boost-format -msgid "Select Connected Printetrs (%d/6)" -msgstr "연결된 프린터 (%d/6)를 선택합니다" +msgid "Select Connected Printers (%d/6)" +msgstr "연결된 프린터 선택 (%d/6)" #, c-format, boost-format msgid "The maximum number of printers that can be selected is %d" @@ -3253,16 +3255,16 @@ msgid "Edit Printers" msgstr "프린터 편집" msgid "Device Name" -msgstr "Device Name" +msgstr "장치 이름" msgid "Task Name" -msgstr "Task Name" +msgstr "작업 이름" msgid "Device Status" -msgstr "Device Status" +msgstr "장치 상태" msgid "Actions" -msgstr "Actions" +msgstr "동작" msgid "" "Please select the devices you would like to manage here (up to 6 devices)" @@ -3292,8 +3294,8 @@ msgstr "인쇄 완료" msgid "Printing Failed" msgstr "인쇄 실패" -msgid "PrintingPause" -msgstr "인쇄 일시 중지" +msgid "Printing Pause" +msgstr "인쇄 일시중지" msgid "Prepare" msgstr "준비 하기" @@ -3332,22 +3334,22 @@ msgid "Stop" msgstr "정지" msgid "Task Status" -msgstr "Task Status" +msgstr "작업 상태" msgid "Sent Time" -msgstr "Sent Time" +msgstr "전송한 시간" msgid "There are no tasks to be sent!" -msgstr "There are no tasks to be sent!" +msgstr "전송할 작업이 없습니다!" msgid "No historical tasks!" -msgstr "No historical tasks!" +msgstr "작업 내역이 없습니다!" msgid "Loading..." msgstr "로딩 중..." msgid "No AMS" -msgstr "No AMS" +msgstr "AMS 없음" msgid "Send to Multi-device" msgstr "여러 장치로 보내기" @@ -3365,19 +3367,19 @@ msgid "The number of printers in use simultaneously cannot be equal to 0." msgstr "동시에 사용 중인 프린터의 수는 0과 같을 수 없습니다." msgid "Use External Spool" -msgstr "Use External Spool" +msgstr "외부 스풀 사용" msgid "Use AMS" -msgstr "Use AMS" +msgstr "AMS 사용" msgid "Select Printers" -msgstr "Select Printers" +msgstr "프린터 선택" msgid "Ams Status" -msgstr "AMS Status" +msgstr "AMS 상태" msgid "Printing Options" -msgstr "Printing Options" +msgstr "인쇄 옵션" msgid "Bed Leveling" msgstr "베드 레벨링" @@ -3389,10 +3391,10 @@ msgid "Flow Dynamic Calibration" msgstr "흐름 동적 보정" msgid "Send Options" -msgstr "Send Options" +msgstr "전송 옵션" -msgid "Send" -msgstr "전송" +msgid "Send to" +msgstr "" msgid "" "printers at the same time.(It depends on how many devices can undergo " @@ -3409,6 +3411,9 @@ msgid "" msgstr "" "minute each batch. (It depends on how long it takes to complete heating.)" +msgid "Send" +msgstr "전송" + msgid "Name is invalid;" msgstr "이름이 잘못되었습니다;" @@ -3961,6 +3966,18 @@ msgstr "" "%s%%에 대해 예,\n" "%s %s에 대해 아니요." +#, boost-format +msgid "" +"Invalid input format. Expected vector of dimensions in the following format: " +"\"%1%\"" +msgstr "잘못된 입력 형식. 다음과 같은 벡터 형식의 치수를 입력하십시오: \"%1%\"" + +msgid "Input value is out of range" +msgstr "입력된 값이 범위를 벗어납니다" + +msgid "Some extension in the input is invalid" +msgstr "" + #, boost-format msgid "Invalid format. Expected vector format: \"%1%\"" msgstr "잘못된 형식입니다. 필요한 벡터 형식: \"%1%\"" @@ -6145,9 +6162,7 @@ msgstr "다운로드에 실패했습니다. 파일 크기 예외입니다." #, c-format, boost-format msgid "Project downloaded %d%%" -msgstr "" -"프로젝트 다운로드 %d%%Bambu Studio로 가져오는 데 실패했습니다. 파일을 다운로" -"드하여 수동으로 가져오세요." +msgstr "프로젝트 다운로드됨 %d%%" msgid "" "Importing to Orca Slicer failed. Please download the file and manually " @@ -6421,7 +6436,7 @@ 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." msgstr "" -"이 기능은 밤부의 클라우드 서비스로의 데이터 전송을 중지합니다. BBL 머신을 사" +"이 기능은 뱀부의 클라우드 서비스로의 데이터 전송을 중지합니다. BBL 머신을 사" "용하지 않거나 LAN 모드만 사용하는 사용자는 이 기능을 안전하게 켤 수 있습니다." msgid "Enable network plugin" @@ -6603,7 +6618,7 @@ msgid "Current association: " msgstr "현재 연결:" msgid "Associate prusaslicer://" -msgstr "프루사슬라이서://" +msgstr "prusaslicer:// 연결" msgid "Not associated to any application" msgstr "어떤 애플리케이션과도 연결되지 않음" @@ -6616,7 +6631,7 @@ msgstr "" "와 연결합니다." msgid "Associate bambustudio://" -msgstr "연결 bambustudio://" +msgstr "bambustudio:// 연결" msgid "" "Associate OrcaSlicer with bambustudio:// links so that Orca can open models " @@ -6626,7 +6641,7 @@ msgstr "" "크와 연결하세요." msgid "Associate cura://" -msgstr "연결 cura://" +msgstr "cura:// 연결" msgid "" "Associate OrcaSlicer with cura:// links so that Orca can open models from " @@ -7008,9 +7023,6 @@ msgstr "전송 완료" msgid "Error code" msgstr "오류 코드" -msgid "Printer local connection failed, please try again." -msgstr "프린터 로컬 연결에 실패했습니다. 다시 시도하세요." - msgid "No login account, only printers in LAN mode are displayed" msgstr "로그인 계정이 없으며 LAN 모드의 프린터만 표시됩니다" @@ -7474,8 +7486,8 @@ msgstr "" 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\"." +"by right-click the empty position of build plate and choose \"Add Primitive" +"\"->\"Timelapse Wipe Tower\"." msgstr "" "툴헤드 없이 시간 경과를 기록할 경우 \"타임랩스 닦기 타워\"를 추가하는 것이 좋" "습니다\n" @@ -7726,6 +7738,14 @@ msgstr "다중 재료 프린터의 다중 압출기 툴 교체 매개변수" msgid "Printable space" msgstr "출력 가능 공간" +#. TRN: First argument is parameter name, the second one is the value. +#, boost-format +msgid "Invalid value provided for parameter %1%: %2%" +msgstr "%1% 매개변수에 잘못된 값이 입력됨: %2%" + +msgid "G-code flavor is switched" +msgstr "G코드 유형이 변경됨" + msgid "Cooling Fan" msgstr "냉각 팬" @@ -8099,6 +8119,60 @@ msgstr "사용 가능한 업데이트가 없습니다." msgid "The configuration is up to date." msgstr "구성이 최신 상태입니다." +msgid "Obj file Import color" +msgstr "Obj 파일 가져오기 색상" + +msgid "Specify number of colors:" +msgstr "색상 수 지정:" + +#, c-format, boost-format +msgid "The color count should be in range [%d, %d]." +msgstr "색상 개수는 [%d, %d] 범위 내에 있어야 합니다." + +msgid "Recommended " +msgstr "추천" + +msgid "Current filament colors:" +msgstr "현재 필라멘트 색상:" + +msgid "Quick set:" +msgstr "빠른 설정:" + +msgid "Color match" +msgstr "색상 일치" + +msgid "Approximate color matching." +msgstr "대략적인 색상 일치." + +msgid "Append" +msgstr "추가" + +msgid "Add consumable extruder after existing extruders." +msgstr "기존 압출기 뒤에 소모성 압출기를 추가합니다." + +msgid "Reset mapped extruders." +msgstr "매핑된 압출기를 재설정합니다." + +msgid "Cluster colors" +msgstr "클러스터 색상" + +msgid "Map Filament" +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 "" +"경고: 새로 추가된 개수와\n" +" 현재 압출기는 16개를 초과합니다." + msgid "Ramming customization" msgstr "래밍 사용자 정의" @@ -8182,6 +8256,32 @@ msgstr "에서" msgid "To" msgstr "으로" +msgid "" +"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" +msgstr "" + +msgid "" +"Missing BambuSource component registered for media playing! Please re-" +"install BambuStutio 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." +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?)" +msgstr "" + msgid "Bambu Network plug-in not detected." msgstr "뱀부 네트워크 플러그인이 감지되지 않습니다." @@ -8971,8 +9071,8 @@ 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코드 유형." +"프라임 타워는 현재 Marlin, RepRap/Sprinter, RepRapFirmware 및 Repetier G코드 " +"유형에서만 지원됩니다." msgid "The prime tower is not supported in \"By object\" print." msgstr "프라임 타워는 \"개체별\" 출력에서 지원되지 않습니다." @@ -9711,7 +9811,7 @@ msgstr "" "하세요" msgid "mm/s or %" -msgstr "mm/s or %" +msgstr "mm/s 또는 %" msgid "External" msgstr "외부" @@ -10368,6 +10468,30 @@ msgstr "" "이 설정을 활성화하면 출력물 냉각 팬이 정지되지 않으며 팬을 최소 속도로 가동하" "여 시동 및 정지 빈도를 줄입니다" +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" +"\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 " +"artefacts that appear like z banding \n" +"3. To avoid printing at speeds which cause VFAs (fine artefacts) on the " +"external walls\n" +"\n" +msgstr "" +"활성화되면 최소 레이어 시간을 충족하기 위한 외벽의 출력 속도 감속을 적용하지 " +"않습니다. 이 기능은 아래의 경우에 도움이 될 수 있습니다:\n" +"\n" +"1. 유광 필라멘트로 인쇄할 때 일정한 광택을 유지하기 위한 경우 \n" +"2. 외벽 출력 속도의 변화로 인한 외벽의 Z밴딩처럼 보이는 형상이 생성되는 것을 " +"방지하기 위한 경우 \n" +"3. 외벽을 VFA를 발생시키는 속도로 출력하는 것을 방지하기 위한 경우\n" +"\n" + msgid "Layer time" msgstr "레이어 시간" @@ -10791,7 +10915,7 @@ msgstr "" "니다." msgid "mm/s² or %" -msgstr "mm/s² or %" +msgstr "mm/s² 또는 %" msgid "" "Acceleration of sparse infill. If the value is expressed as a percentage (e." @@ -10898,16 +11022,19 @@ msgstr "팬 최대 속도 레이어" 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 "" "팬 속도는 \"close_fan_the_first_x_layers\" 의 0에서 \"full_fan_speed_layer\" " "의 최고 속도까지 선형적으로 증가합니다. \"full_fan_speed_layer\"가 " "\"close_fan_the_first_x_layers\"보다 낮으면 무시되며, 이 경우 팬은 " "\"close_fan_the_first_x_layers\" + 1 에서 최대 허용 속도로 가도됩니다." +msgid "layer" +msgstr "레이어" + msgid "Support interface fan speed" msgstr "지지대 접점 팬 속도" @@ -13238,7 +13365,7 @@ msgstr "" "기" msgid "Format of G-code thumbnails" -msgstr "G코드 미리보기 포맷" +msgstr "G코드 미리보기 형식" msgid "" "Format of G-code thumbnails: PNG for best quality, JPG for smallest size, " @@ -14042,31 +14169,15 @@ msgid "" "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 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" "\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 "" -"우리 위키에서 동적 유량 교정에 대한 자세한 내용을 찾아보세요.\n" -"\n" -"일반적으로 교정은 필요하지 않습니다. 출력 시작 메뉴에서 \"동적 유량 교정\" 옵" -"션을 선택한 상태에서 단일 색상/재료 출력을 시작하면 프린터는 이전 방식을 따르" -"며 출력 전에 필라멘트를 교정합니다. 다중 색상/재료 출력을 시작하면 프린터는 " -"모든 필라멘트 전환 중에 필라멘트에 대한 기본 보상 매개변수를 사용하므로 대부" -"분의 경우 좋은 결과를 얻을 수 있습니다.\n" -"\n" -"교정 결과를 신뢰할 수 없게 만드는 몇 가지 경우가 있습니다. 텍스처 플레이트를 " -"사용하여 보정을 수행합니다. 빌드 플레이트의 접착력이 좋지 않습니다. (빌드 플" -"레이트를 세척하거나 풀을 바르십시오!) ...위키에서 자세한 내용을 확인할 수 있" -"습니다.\n" -"\n" -"테스트에서 교정 결과에는 약 10%의 오차가 있으며, 이로 인해 각 교정에서 결과" -"가 정확히 동일하지 않을 수 있습니다. 새로운 업데이트로 개선하기 위해 근본 원" -"인을 계속 조사하고 있습니다." msgid "When to use Flow Rate Calibration" msgstr "유량 교정을 사용해야 하는 경우" @@ -14188,24 +14299,15 @@ msgstr "이름은 40자를 초과할 수 없습니다." msgid "" "Only one of the results with the same name will be saved. Are you sure you " -"want to overrides the other results?" +"want to override 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 best line on your plate" msgstr "당신의 플레이트에서 가장 좋은 선을 찾아보세요" -msgid "Please find the cornor with perfect degree of extrusion" -msgstr "완벽한 압출각도를 가진 모서리를 찾아주세요" +msgid "Please find the corner with perfect degree of extrusion" +msgstr "Please find the corner with the perfect degree of extrusion" msgid "Input Value" msgstr "입력값" @@ -14458,6 +14560,9 @@ msgstr "ABS/ASA" msgid "PETG" msgstr "PETG" +msgid "PCTG" +msgstr "" + msgid "TPU" msgstr "TPU" @@ -14554,6 +14659,9 @@ msgstr "필요한 경우 슬래시( / )를 디렉토리 구분 기호로 사용 msgid "Upload to storage" msgstr "저장소에 업로드" +msgid "Switch to Device tab after upload." +msgstr "" + #, c-format, boost-format msgid "Upload filename doesn't end with \"%s\". Do you wish to continue?" msgstr "업로드 파일 이름이 \"%s\"로 끝나지 않습니다. 계속하시겠습니까?" @@ -14780,8 +14888,8 @@ msgstr "" "다시 작성하시겠습니까?" 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 "" "사전 설정의 이름을 \"선택한 공급업체 유형 직렬 @프린터\"로 변경합니다.\n" @@ -14829,12 +14937,6 @@ msgstr "직사각형" msgid "Printable Space" msgstr "출력 가능 공간" -msgid "X" -msgstr "X" - -msgid "Y" -msgstr "Y" - msgid "Hot Bed STL" msgstr "베드 STL" @@ -14997,8 +15099,8 @@ msgid "" msgstr "" "\n" "\n" -"Studio에서는 사용자 사전 설정 동기화 기능이 활성화되어 있지 않아 장치 페이지" -"에서 필라멘트 설정이 실패할 수 있음을 감지했습니다.\n" +"Orca에서는 사용자 사전 설정 동기화 기능이 활성화되어 있지 않아 장치 페이지에" +"서 필라멘트 설정이 실패할 수 있음을 감지했습니다.\n" "동기화 기능을 활성화하려면 \"사용자 사전 설정 동기화\"를 클릭하세요." msgid "Printer Setting" @@ -15058,7 +15160,7 @@ msgid "" "User's fillment preset set. \n" "Can be shared with others." msgstr "" -"사용자 채우기 사전 설정입니다.\n" +"사용자의 필라멘트 사전 설정입니다.\n" "다른 사람과 공유할 수 있습니다." msgid "" @@ -15225,6 +15327,12 @@ msgstr "정말 로그아웃하시겠습니까?" msgid "Refresh Printers" msgstr "프린터 새로 고침" +msgid "View print host webui in Device tab" +msgstr "" + +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." @@ -15299,7 +15407,8 @@ msgid "" "Note: FlashAir with firmware 2.00.02 or newer and activated upload function " "is required." msgstr "" -"참고: 펌웨어 2.00.02 이상이 있고 업로드 기능이 활성화된 FlashAir필수입니다." +"참고: 펌웨어 2.00.02 또는 이후 버전을 사용중이며 업로드 기능이 활성화된 " +"FlashAir가 필요합니다." msgid "Connection to MKS works correctly." msgstr "MKS에 대한 연결이 올바르게 작동합니다." @@ -15638,20 +15747,16 @@ msgstr "SimplyPrint에 성공적으로 연결되었습니다!" msgid "Could not connect to SimplyPrint" msgstr "SimplyPrint에 연결할 수 없습니다" -msgid "SimplyPrint account not linked. Go to Connect options to set it up." +msgid "Internel error" msgstr "" -"SimplyPrint 계정이 연결되지 않았습니다. 연결 옵션으로 이동하여 설정합니다." - -msgid "" -"File size exceeds the 100MB upload limit. Please upload your file through " -"the panel." -msgstr "" -"파일 크기가 업로드 제한인 100MB를 초과했습니다. 패널을 통해 파일을 업로드하세" -"요." msgid "Unknown error" msgstr "알 수 없는 오류" +msgid "SimplyPrint account not linked. Go to Connect options to set it up." +msgstr "" +"SimplyPrint 계정이 연결되지 않았습니다. 연결 옵션으로 이동하여 설정합니다." + msgid "Connection to Flashforge works correctly." msgstr "플래시포지 연결이 정상적으로 작동합니다." @@ -16049,6 +16154,93 @@ msgstr "" "ABS 등 뒤틀림이 발생하기 쉬운 소재를 출력할 때, 히트베드 온도를 적절하게 높이" "면 뒤틀림 가능성을 줄일 수 있다는 사실을 알고 계셨나요?" +#~ msgid "" +#~ "File size exceeds the 100MB upload limit. Please upload your file through " +#~ "the panel." +#~ msgstr "" +#~ "파일 크기가 업로드 제한인 100MB를 초과했습니다. 패널을 통해 파일을 업로드" +#~ "하세요." + +#~ msgid "Please input a valid value (K in 0~0.3)" +#~ msgstr "유효한 값을 입력하세요(K는 0~0.3)" + +#~ msgid "Please input a valid value (K in 0~0.3, N in 0.6~2.0)" +#~ msgstr "유효한 값을 입력하세요(K는 0~0.3, N은 0.6~2.0)" + +#~ msgid "Select connected printetrs (0/6)" +#~ msgstr "연결된 프린터 선택(0/6)" + +#, c-format, boost-format +#~ msgid "Select Connected Printetrs (%d/6)" +#~ msgstr "연결된 프린터 (%d/6)를 선택합니다" + +#~ msgid "PrintingPause" +#~ 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 "" +#~ "우리 위키에서 동적 유량 교정에 대한 자세한 내용을 찾아보세요.\n" +#~ "\n" +#~ "일반적으로 교정은 필요하지 않습니다. 출력 시작 메뉴에서 \"동적 유량 교정" +#~ "\" 옵션을 선택한 상태에서 단일 색상/재료 출력을 시작하면 프린터는 이전 방" +#~ "식을 따르며 출력 전에 필라멘트를 교정합니다. 다중 색상/재료 출력을 시작하" +#~ "면 프린터는 모든 필라멘트 전환 중에 필라멘트에 대한 기본 보상 매개변수를 " +#~ "사용하므로 대부분의 경우 좋은 결과를 얻을 수 있습니다.\n" +#~ "\n" +#~ "교정 결과를 신뢰할 수 없게 만드는 몇 가지 경우가 있습니다. 텍스처 플레이트" +#~ "를 사용하여 보정을 수행합니다. 빌드 플레이트의 접착력이 좋지 않습니다. (빌" +#~ "드 플레이트를 세척하거나 풀을 바르십시오!) ...위키에서 자세한 내용을 확인" +#~ "할 수 있습니다.\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 "X" +#~ msgstr "X" + +#~ msgid "Y" +#~ msgstr "Y" + #~ msgid "" #~ "Order of wall/infill. When the tickbox is unchecked the walls are printed " #~ "first, which works best in most cases.\n" @@ -16386,8 +16578,8 @@ msgstr "" #~ msgstr "드문 레이어 없음(실험적)" #~ 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 prinetrs, Please go to printer selection" #~ msgstr "" #~ "사전 설정의 이름을 \"선택한 공급업체 유형 직렬 @프린터\"로 변경합니다.\n" diff --git a/localization/i18n/list.txt b/localization/i18n/list.txt index acd5ed40c8..833b06ff7c 100644 --- a/localization/i18n/list.txt +++ b/localization/i18n/list.txt @@ -110,8 +110,10 @@ src/slic3r/GUI/UnsavedChangesDialog.cpp src/slic3r/GUI/Auxiliary.cpp src/slic3r/GUI/UpdateDialogs.cpp src/slic3r/GUI/UnsavedChangesDialog.cpp +src/slic3r/GUI/ObjColorDialog.cpp src/slic3r/GUI/WipeTowerDialog.cpp src/slic3r/GUI/wxExtensions.cpp +src/slic3r/GUI/wxMediaCtrl2.cpp src/slic3r/GUI/WebUserLoginDialog.cpp src/slic3r/GUI/WebGuideDialog.cpp src/slic3r/GUI/KBShortcutsDialog.hpp diff --git a/localization/i18n/nl/OrcaSlicer_nl.po b/localization/i18n/nl/OrcaSlicer_nl.po index 061b3af3d6..0f214310bc 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: 2024-05-29 00:28+0800\n" +"POT-Creation-Date: 2024-06-21 20:03+0800\n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -2834,11 +2834,13 @@ msgstr "Are you sure you want to clear the filament information?" msgid "You need to select the material type and color first." msgstr "You need to select the material type and color first." -msgid "Please input a valid value (K in 0~0.3)" -msgstr "Voer een geldige waarde in (K in 0~0.3)" +#, c-format, boost-format +msgid "Please input a valid value (K in %.1f~%.1f)" +msgstr "" -msgid "Please input a valid value (K in 0~0.3, N in 0.6~2.0)" -msgstr "Voer een geldige waarde in (K in 0~0,3, N in 0,6~2,0)" +#, c-format, boost-format +msgid "Please input a valid value (K in %.1f~%.1f, N in %.1f~%.1f)" +msgstr "" msgid "Other Color" msgstr "Other Color" @@ -3264,11 +3266,11 @@ msgstr "Task Sent" msgid "Edit multiple printers" msgstr "" -msgid "Select connected printetrs (0/6)" +msgid "Select connected printers (0/6)" msgstr "" #, c-format, boost-format -msgid "Select Connected Printetrs (%d/6)" +msgid "Select Connected Printers (%d/6)" msgstr "" #, c-format, boost-format @@ -3330,7 +3332,7 @@ msgstr "" msgid "Printing Failed" msgstr "" -msgid "PrintingPause" +msgid "Printing Pause" msgstr "" msgid "Prepare" @@ -3429,8 +3431,8 @@ msgstr "" msgid "Send Options" msgstr "Send Options" -msgid "Send" -msgstr "Versturen" +msgid "Send to" +msgstr "" msgid "" "printers at the same time.(It depends on how many devices can undergo " @@ -3447,6 +3449,9 @@ msgid "" msgstr "" "minute each batch. (It depends on how long it takes to complete heating.)" +msgid "Send" +msgstr "Versturen" + msgid "Name is invalid;" msgstr "Naam is ongeldig;" @@ -4018,6 +4023,19 @@ msgstr "" "JA voor %s%%, \n" "NEE voor %s %s." +#, boost-format +msgid "" +"Invalid input format. Expected vector of dimensions in the following format: " +"\"%1%\"" +msgstr "" +"Ongeldige invoer. Verwachte waarde moet in het volgende format: \"%1%\"" + +msgid "Input value is out of range" +msgstr "Ingevoerde waarde valt buiten het bereik" + +msgid "Some extension in the input is invalid" +msgstr "" + #, boost-format msgid "Invalid format. Expected vector format: \"%1%\"" msgstr "Onjuist formaat. Het Vector formaat wordt verwacht: \"%1%\"" @@ -7104,9 +7122,6 @@ msgstr "Versturen gelukt" msgid "Error code" msgstr "Error code" -msgid "Printer local connection failed, please try again." -msgstr "Printer local connection failed; please try again." - msgid "No login account, only printers in LAN mode are displayed" msgstr "Geen login-account, alleen printers in LAN-modus worden weergegeven" @@ -7866,6 +7881,14 @@ msgstr "" msgid "Printable space" msgstr "Ruimte waarbinnen geprint kan worden" +#. TRN: First argument is parameter name, the second one is the value. +#, boost-format +msgid "Invalid value provided for parameter %1%: %2%" +msgstr "" + +msgid "G-code flavor is switched" +msgstr "" + msgid "Cooling Fan" msgstr "" @@ -8242,6 +8265,60 @@ msgstr "Geen updates beschikbaar." msgid "The configuration is up to date." msgstr "De configuratie is up to date." +msgid "Obj file Import color" +msgstr "Obj file Import color" + +msgid "Specify number of colors:" +msgstr "Specify number of colors:" + +#, c-format, boost-format +msgid "The color count should be in range [%d, %d]." +msgstr "The color count should be in range [%d, %d]." + +msgid "Recommended " +msgstr "Recommended " + +msgid "Current filament colors:" +msgstr "Current filament colors:" + +msgid "Quick set:" +msgstr "Quick set:" + +msgid "Color match" +msgstr "Color match" + +msgid "Approximate color matching." +msgstr "Approximate color matching." + +msgid "Append" +msgstr "Append" + +msgid "Add consumable extruder after existing extruders." +msgstr "Add consumable extruder after existing extruders." + +msgid "Reset mapped extruders." +msgstr "Reset mapped extruders." + +msgid "Cluster colors" +msgstr "Cluster colors" + +msgid "Map Filament" +msgstr "Map Filament" + +msgid "" +"Note:The color has been selected, you can choose OK \n" +" to continue or manually adjust it." +msgstr "" +"Note:The color has been selected, you can choose OK \n" +" to continue or manually adjust it." + +msgid "" +"Waring:The count of newly added and \n" +" current extruders exceeds 16." +msgstr "" +"Warning: The count of newly added and \n" +" current extruders exceeds 16." + msgid "Ramming customization" msgstr "Ramming aanpassen" @@ -8326,6 +8403,32 @@ msgstr "Van" msgid "To" msgstr "Naar" +msgid "" +"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" +msgstr "" + +msgid "" +"Missing BambuSource component registered for media playing! Please re-" +"install BambuStutio 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." +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?)" +msgstr "" + msgid "Bambu Network plug-in not detected." msgstr "Bambu Network-plug-in niet gedetecteerd." @@ -10417,6 +10520,22 @@ msgstr "" "staan op een minimale snelheid om het aantal start en stop momenten te " "beperken" +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" +"\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 " +"artefacts that appear like z banding \n" +"3. To avoid printing at speeds which cause VFAs (fine artefacts) on the " +"external walls\n" +"\n" +msgstr "" + msgid "Layer time" msgstr "Laag tijd" @@ -10940,6 +11059,9 @@ msgid "" "maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1." msgstr "" +msgid "layer" +msgstr "" + msgid "Support interface fan speed" msgstr "" @@ -13931,34 +14053,15 @@ msgid "" "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 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" "\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 "" -"De details van Flow Dynamics Calibration vindt u op onze wiki.\n" -"\n" -"Meestal is kalibratie niet nodig. Als je een print met één kleur/materiaal " -"start en de optie \"kalibratie van de stroomdynamica\" is aangevinkt in het " -"startmenu van de printer, dan zal de printer de oude manier volgen en het " -"filament kalibreren voor het printen; als je een print met meerdere kleuren/" -"materialen start, dan zal de printer de standaard compensatieparameter voor " -"het filament gebruiken tijdens elke filamentwissel, wat in de meeste " -"gevallen een goed resultaat zal opleveren.\n" -"\n" -"Let op: er zijn een paar gevallen waardoor het kalibratieresultaat niet " -"betrouwbaar is: als je een textuurplaat gebruikt om de kalibratie uit te " -"voeren; als de bouwplaat geen goede hechting heeft (was de bouwplaat of " -"breng lijm aan!) ...Je kunt meer informatie vinden op onze wiki.\n" -"\n" -"De kalibratieresultaten hebben ongeveer 10 procent jitter in onze test, " -"waardoor het resultaat niet bij elke kalibratie precies hetzelfde is. We " -"onderzoeken nog steeds de oorzaak om verbeteringen aan te brengen met nieuwe " -"updates." msgid "When to use Flow Rate Calibration" msgstr "Wanneer moet u Flow Rate kalibratie gebruiken" @@ -14089,25 +14192,15 @@ msgstr "De naam mag niet langer zijn dan 40 tekens." msgid "" "Only one of the results with the same name will be saved. Are you sure you " -"want to overrides the other results?" +"want to override the other results?" msgstr "" "Slechts één van de resultaten met dezelfde naam wordt opgeslagen. Weet je " -"zeker dat je de andere resultaten wilt vervangen?" - -#, 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 "" -"Er is al een eerder kalibratieresultaat met dezelfde naam: %s. Slechts één " -"van de resultaten met dezelfde naam wordt opgeslagen. Weet je zeker dat je " -"het vorige resultaat wilt vervangen?" +"zeker dat je de andere resultaten wilt overschrijven?" msgid "Please find the best line on your plate" msgstr "Zoek de beste regel op je bord" -msgid "Please find the cornor with perfect degree of extrusion" +msgid "Please find the corner with perfect degree of extrusion" msgstr "Zoek de hoek met de perfecte extrusiegraad" msgid "Input Value" @@ -14362,6 +14455,9 @@ msgstr "ABS/ASA" msgid "PETG" msgstr "PETG" +msgid "PCTG" +msgstr "" + msgid "TPU" msgstr "TPU" @@ -14447,6 +14543,9 @@ msgstr "" msgid "Upload to storage" msgstr "" +msgid "Switch to Device tab after upload." +msgstr "" + #, c-format, boost-format msgid "Upload filename doesn't end with \"%s\". Do you wish to continue?" msgstr "De bestandsnaam van de upload eindigt niet op \"%s\". Wilt u doorgaan?" @@ -14720,12 +14819,6 @@ msgstr "Rechthoek" msgid "Printable Space" msgstr "Printbare ruimte" -msgid "X" -msgstr "" - -msgid "Y" -msgstr "" - msgid "Hot Bed STL" msgstr "Warm bed STL" @@ -15075,7 +15168,7 @@ msgstr "Dagelijkse tips" #, c-format, boost-format msgid "nozzle memorized: %.1f %s" -msgstr "" +msgstr "mondstuk onthouden: %.1f %s" msgid "" "Your nozzle diameter in preset is not consistent with memorized nozzle " @@ -15119,6 +15212,12 @@ msgstr "" msgid "Refresh Printers" msgstr "Printers vernieuwen" +msgid "View print host webui in Device tab" +msgstr "" + +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." @@ -15548,17 +15647,15 @@ msgstr "" msgid "Could not connect to SimplyPrint" msgstr "" -msgid "SimplyPrint account not linked. Go to Connect options to set it up." -msgstr "" - -msgid "" -"File size exceeds the 100MB upload limit. Please upload your file through " -"the panel." +msgid "Internel error" msgstr "" msgid "Unknown error" msgstr "" +msgid "SimplyPrint account not linked. Go to Connect options to set it up." +msgstr "" + msgid "Connection to Flashforge works correctly." msgstr "" @@ -15920,6 +16017,76 @@ msgstr "" "kromtrekken, zoals ABS, een juiste verhoging van de temperatuur van het " "warmtebed de kans op kromtrekken kan verkleinen?" +#~ msgid "Please input a valid value (K in 0~0.3)" +#~ msgstr "Voer een geldige waarde in (K in 0~0.3)" + +#~ msgid "Please input a valid value (K in 0~0.3, N in 0.6~2.0)" +#~ msgstr "Voer een geldige waarde in (K in 0~0,3, N in 0,6~2,0)" + +#~ msgid "Printer local connection failed, please try again." +#~ msgstr "Printer local connection failed; please try again." + +#~ 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 "" +#~ "De details van Flow Dynamics Calibration vindt u op onze wiki.\n" +#~ "\n" +#~ "Meestal is kalibratie niet nodig. Als je een print met één kleur/" +#~ "materiaal start en de optie \"kalibratie van de stroomdynamica\" is " +#~ "aangevinkt in het startmenu van de printer, dan zal de printer de oude " +#~ "manier volgen en het filament kalibreren voor het printen; als je een " +#~ "print met meerdere kleuren/materialen start, dan zal de printer de " +#~ "standaard compensatieparameter voor het filament gebruiken tijdens elke " +#~ "filamentwissel, wat in de meeste gevallen een goed resultaat zal " +#~ "opleveren.\n" +#~ "\n" +#~ "Let op: er zijn een paar gevallen waardoor het kalibratieresultaat niet " +#~ "betrouwbaar is: als je een textuurplaat gebruikt om de kalibratie uit te " +#~ "voeren; als de bouwplaat geen goede hechting heeft (was de bouwplaat of " +#~ "breng lijm aan!) ...Je kunt meer informatie vinden op onze wiki.\n" +#~ "\n" +#~ "De kalibratieresultaten hebben ongeveer 10 procent jitter in onze test, " +#~ "waardoor het resultaat niet bij elke kalibratie precies hetzelfde is. We " +#~ "onderzoeken nog steeds de oorzaak om verbeteringen aan te brengen met " +#~ "nieuwe updates." + +#~ msgid "" +#~ "Only one of the results with the same name will be saved. Are you sure " +#~ "you want to overrides the other results?" +#~ msgstr "" +#~ "Slechts één van de resultaten met dezelfde naam wordt opgeslagen. Weet je " +#~ "zeker dat je de andere resultaten wilt vervangen?" + +#, 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 "" +#~ "Er is al een eerder kalibratieresultaat met dezelfde naam: %s. Slechts " +#~ "één van de resultaten met dezelfde naam wordt opgeslagen. Weet je zeker " +#~ "dat je het vorige resultaat wilt vervangen?" + +#~ msgid "Please find the cornor with perfect degree of extrusion" +#~ msgstr "Zoek de hoek met de perfecte extrusiegraad" + #~ msgid "V" #~ msgstr "V" diff --git a/localization/i18n/pl/OrcaSlicer_pl.po b/localization/i18n/pl/OrcaSlicer_pl.po index 0130dfa83d..5d89daaa74 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: 2024-05-29 00:28+0800\n" +"POT-Creation-Date: 2024-06-21 20:03+0800\n" "PO-Revision-Date: \n" "Last-Translator: Krzysztof Morga \n" "Language-Team: \n" @@ -1295,7 +1295,7 @@ msgid "Center of circle" msgstr "Środek okręgu" msgid "ShiftLeft mouse button" -msgstr "Przycisk myszy ShiftLeft" +msgstr "Shift + Lewy przycisk myszy" msgid "Select feature" msgstr "Wybierz funkcję" @@ -1304,7 +1304,7 @@ msgid "Select point" msgstr "Wybierz punkt" msgid "Delete" -msgstr "Usunąć" +msgstr "Usuń" msgid "Restart selection" msgstr "Restartuj wybór" @@ -1532,7 +1532,7 @@ 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 "" -"Wersja Bambu Studio jest przestarzała i musi zostać zaktualizowana do " +"Wersja Orca Slicer jest przestarzała i musi zostać zaktualizowana do " "najnowszej wersji, aby działać normalnie" msgid "Privacy Policy Update" @@ -1698,7 +1698,7 @@ msgid "Show" msgstr "Pokaż" msgid "Del" -msgstr "Usuń" +msgstr "Del" msgid "Delete the selected object" msgstr "Usuń wybrany obiekt" @@ -1772,10 +1772,10 @@ msgid "Set as individual objects" msgstr "Ustaw jako osobne obiekty" msgid "Fill bed with copies" -msgstr "Wypełnij stół kopiami modelu" +msgstr "Wypełnij stół kopią modelu" msgid "Fill the remaining area of bed with copies of the selected object" -msgstr "Uzupełnij pozostałą powierzchnię stołu kopiami wybranego obiektu" +msgstr "Uzupełnij pozostałą powierzchnię stołu kopią wybranego obiektu" msgid "Printable" msgstr "Do druku" @@ -2504,8 +2504,8 @@ msgid "" "Choose an AMS slot then press \"Load\" or \"Unload\" button to automatically " "load or unload filaments." msgstr "" -"Wybierz gniazdo AMS, a następnie naciśnij przycisk \"Ładuj\" lub " -"\"Wyładuj\" ,aby automatycznie załadować lub wyładować filamenty." +"Wybierz gniazdo AMS, a następnie naciśnij przycisk \"Ładuj\" lub \"Wyładuj" +"\" ,aby automatycznie załadować lub wyładować filamenty." msgid "Edit" msgstr "Edytuj" @@ -2870,13 +2870,14 @@ msgstr "Czy na pewno chcesz usunąć informacje o filamentach?" msgid "You need to select the material type and color first." msgstr "Najpierw musisz wybrać typ i kolor filamentu." -msgid "Please input a valid value (K in 0~0.3)" -msgstr "Proszę podać prawidłową wartość (K w zakresie od 0 do 0.3)" +#, c-format, boost-format +msgid "Please input a valid value (K in %.1f~%.1f)" +msgstr "Proszę podać prawidłową wartość (K w zakresie %.1f~%.1f)" -msgid "Please input a valid value (K in 0~0.3, N in 0.6~2.0)" +#, c-format, boost-format +msgid "Please input a valid value (K in %.1f~%.1f, N in %.1f~%.1f)" msgstr "" -"Proszę podać prawidłową wartość (K w zakresie od 0 do 0.3, N w zakresie od " -"0.6 do 2.0)" +"Proszę podać prawidłową wartość (K w zakresie %.1f~%.1f, N in %.1f~%.1f)" msgid "Other Color" msgstr "Inny kolor" @@ -3309,11 +3310,11 @@ msgstr "Wysłane do druku" msgid "Edit multiple printers" msgstr "Edycja drukarek" -msgid "Select connected printetrs (0/6)" +msgid "Select connected printers (0/6)" msgstr "Wybierz podłączone drukarki (0/6)" #, c-format, boost-format -msgid "Select Connected Printetrs (%d/6)" +msgid "Select Connected Printers (%d/6)" msgstr "Wybierz Podłączone Drukarki (%d/6)" #, c-format, boost-format @@ -3376,8 +3377,8 @@ msgstr "Drukowanie zakończone" msgid "Printing Failed" msgstr "Drukowanie nie powiodło się" -msgid "PrintingPause" -msgstr "Drukowanie zatrzymane" +msgid "Printing Pause" +msgstr "Drukowanie wstrzymane" msgid "Prepare" msgstr "Przygotowanie" @@ -3475,15 +3476,15 @@ msgstr "Kalibracja Dynamiki Przepływu" msgid "Send Options" msgstr "Opcje wysyłania" -msgid "Send" -msgstr "Wyślij" +msgid "Send to" +msgstr "Wyślij do" msgid "" "printers at the same time.(It depends on how many devices can undergo " "heating at the same time.)" msgstr "" -"zadania druku jednocześnie. (Zależy to od liczby urządzeń, które można " -"podgrzewać jednocześnie.)" +"drukarek jednocześnie. (Zależy to od liczby urządzeń, które można podgrzewać " +"jednocześnie.)" msgid "Wait" msgstr "Czekaj" @@ -3493,6 +3494,9 @@ msgid "" msgstr "" "minut na każdą partię. (Zależy od tego, jak długo trwa proces nagrzewania.)" +msgid "Send" +msgstr "Wyślij" + msgid "Name is invalid;" msgstr "Nazwa jest nieprawidłowa;" @@ -3533,10 +3537,10 @@ msgstr "" "się na środku." msgid "Rectangular" -msgstr "Prostokątna" +msgstr "Prostokątny" msgid "Circular" -msgstr "Okrągła" +msgstr "Okrągły" msgid "Load shape from STL..." msgstr "Załaduj kształt z pliku STL..." @@ -4068,6 +4072,20 @@ msgstr "" "TAK dla %s%%,\n" "NIE dla %s %s." +#, boost-format +msgid "" +"Invalid input format. Expected vector of dimensions in the following format: " +"\"%1%\"" +msgstr "" +"Nieprawidłowy format wejściowy. Oczekiwany jest wektor wymiarów w " +"następującym formacie: \"%1%\"" + +msgid "Input value is out of range" +msgstr "Wartość wejściowa jest poza zakresem" + +msgid "Some extension in the input is invalid" +msgstr "Rozszerzenie w danych wejściowych jest nieprawidłowe" + #, boost-format msgid "Invalid format. Expected vector format: \"%1%\"" msgstr "Nieprawidłowy format. Oczekiwano formatu wektorowego: \"%1%\"" @@ -4857,7 +4875,7 @@ msgid "Flow rate" msgstr "Natężenie przepływu" msgid "Pressure advance" -msgstr "Kalibracja PA" +msgstr "Wzrost ciśnienia (PA)" msgid "Retraction test" msgstr "Test Retrakcji" @@ -5173,7 +5191,7 @@ msgid "Load failed" msgstr "Błąd ładowania" msgid "Initialize failed (Device connection not ready)!" -msgstr "Inicjalizacja nie powiodła się (Brak gotowości połączenia urządzenia)!" +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 " @@ -7193,10 +7211,6 @@ msgstr "wysłanie zakończone" msgid "Error code" msgstr "Kod błędu" -msgid "Printer local connection failed, please try again." -msgstr "" -"Nie udało się nawiązać lokalnego połączenia z drukarką, spróbuj ponownie." - msgid "No login account, only printers in LAN mode are displayed" msgstr "Bez logowania na koncie, wyświetlane są tylko drukarki w trybie LAN" @@ -7688,8 +7702,8 @@ msgstr "" 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\"." +"by right-click the empty position of build plate and choose \"Add Primitive" +"\"->\"Timelapse Wipe Tower\"." msgstr "" "Podczas nagrywania timelapse'a bez głowicy drukującej zaleca się dodanie " "\"Timelaps - Wieża Czyszcząca\" \n" @@ -7954,6 +7968,14 @@ msgstr "Parametry zmiany narzędzia w drukarkach wieloekstruzyjnych MM" msgid "Printable space" msgstr "Przestrzeń do druku" +#. TRN: First argument is parameter name, the second one is the value. +#, boost-format +msgid "Invalid value provided for parameter %1%: %2%" +msgstr "Podano nieprawidłową wartość dla parametru%1%: %2%" + +msgid "G-code flavor is switched" +msgstr "Wariant G-code został zmieniony" + msgid "Cooling Fan" msgstr "Wentylator chłodzący" @@ -7964,7 +7986,7 @@ msgid "Extruder Clearance" msgstr "Odstęp od extrudera" msgid "Adaptive bed mesh" -msgstr "Adaptacjna siatka stołu" +msgstr "Adaptacyjna siatka stołu" msgid "Accessory" msgstr "Akcesoria" @@ -8337,6 +8359,60 @@ msgstr "Brak dostępnych aktualizacji." msgid "The configuration is up to date." msgstr "Konfiguracja jest aktualna." +msgid "Obj file Import color" +msgstr "Importuj kolory z pliku .OBJ" + +msgid "Specify number of colors:" +msgstr "Podaj liczbę kolorów:" + +#, c-format, boost-format +msgid "The color count should be in range [%d, %d]." +msgstr "Liczba kolorów powinna mieścić się w zakresie [%d, %d]." + +msgid "Recommended " +msgstr "Zalecane " + +msgid "Current filament colors:" +msgstr "Aktualne kolory filamentów:" + +msgid "Quick set:" +msgstr "Szybkie ustawienie:" + +msgid "Color match" +msgstr "Dopasowanie koloru" + +msgid "Approximate color matching." +msgstr "Przybliżone dopasowanie kolorów." + +msgid "Append" +msgstr "Dołącz" + +msgid "Add consumable extruder after existing extruders." +msgstr "Dodaj ekstruder do użycia po już istniejących ekstruderach" + +msgid "Reset mapped extruders." +msgstr "Zresetuj przypisane ekstrudery." + +msgid "Cluster colors" +msgstr "Klasteryzacja kolorów" + +msgid "Map Filament" +msgstr "Przypisz filament" + +msgid "" +"Note:The color has been selected, you can choose OK \n" +" to continue or manually adjust it." +msgstr "" +"Uwaga: Kolor został wybrany. Możesz kliknąć OK \n" +"aby kontynuować, lub dostosować go ręcznie." + +msgid "" +"Waring:The count of newly added and \n" +" current extruders exceeds 16." +msgstr "" +"Ostrzeżenie: Suma nowo dodanych i \n" +" obecnych ekstruderów przekracza 16." + msgid "Ramming customization" msgstr "Dostosowanie wyciskania" @@ -8422,6 +8498,44 @@ msgstr "Od" msgid "To" msgstr "Do" +msgid "" +"Windows Media Player is required for this task! Do you want to enable " +"'Windows Media Player' for your operation system?" +msgstr "" +"Do wykonania tego zadania wymagany jest Windows Media Player! Czy chcesz " +"włączyć 'Windows Media Player' dla swojego systemu operacyjnego?" + +msgid "" +"BambuSource has not correctly been registered for media playing! Press Yes " +"to re-register it. You will be promoted twice" +msgstr "" +"BambuSource nie został poprawnie zarejestrowany do odtwarzania mediów! " +"Naciśnij Tak, aby ponownie go zarejestrować. Będziesz poproszony dwa razy." + +msgid "" +"Missing BambuSource component registered for media playing! Please re-" +"install BambuStutio or seek after-sales help." +msgstr "" +"Brakujący komponent BambuSource zarejestrowany do odtwarzania mediów! Proszę " +"ponownie zainstalować OrcaSlicer lub skonsultować się z pomocą po-" +"sprzedażową." + +msgid "" +"Using a BambuSource from a different install, video play may not work " +"correctly! Press Yes to fix it." +msgstr "" +"Jeśli używasz BambuSource z innej instalacji programu, odtwarzanie wideo " +"może nie działać poprawnie! Naciśnij Tak, aby to naprawić." + +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 "" +"Twój system nie posiada kodeków H.264 dla GStreamer, które są wymagane do " +"odtwarzania wideo. (Spróbuj zainstalować pakiety gstreamer1.0-plugins-bad " +"lub gstreamer1.0-libav, a następnie zrestartuj Orca Slicer?)" + msgid "Bambu Network plug-in not detected." msgstr "Nie wykryto wtyczki Bambu Network." @@ -8747,10 +8861,10 @@ msgid "Check Assistant" msgstr "Sprawdź Asystenta" msgid "Filament Extruded, Continue" -msgstr "Ekstruzja filamentu, Kontynuuj" +msgstr "Gotowe, kontynuuj" msgid "Not Extruded Yet, Retry" -msgstr "Jeszcze nie wydrukowano, Spróbuj ponownie" +msgstr "Jeszcze nie wytłoczono, Spróbuj ponownie" msgid "Finished, Continue" msgstr "Zakończono, Kontynuuj" @@ -9583,10 +9697,10 @@ msgid "" msgstr "" "Unikaj ruchów nad obrysami-\n" "Maksymalna długość objazdu przy unikaniu przejeżdżania nad obrysami. Jeśli " -"objazd miałby wykroczyć poza tę wartość, funkcja \"unikaj ruchów nad " -"obrysami\" zostanie zignorowana dla tej ścieżki. Długość objazdu można " -"zdefiniować jako wartość absolutna lub obliczona procentowo (np. 50%) z " -"długości ruchu bezpośredniego." +"objazd miałby wykroczyć poza tę wartość, funkcja \"unikaj ruchów nad obrysami" +"\" zostanie zignorowana dla tej ścieżki. Długość objazdu można zdefiniować " +"jako wartość absolutna lub obliczona procentowo (np. 50%) z długości ruchu " +"bezpośredniego." msgid "mm or %" msgstr "mm lub %" @@ -10708,19 +10822,19 @@ msgstr "" "powierzchnię, gdy występuje lekkie przelewanie lub niedomiar" msgid "Enable pressure advance" -msgstr "Włącz przyspieszenie ciśnienia" +msgstr "Włącz wzrost ciśnienia (PA)" msgid "" "Enable pressure advance, auto calibration result will be overwriten once " "enabled." msgstr "" -"Włącz przyspieszenie ciśnienia, wynik automatycznej kalibracji zostanie " +"Włącz wzrost ciśnienia (PA), wynik automatycznej kalibracji zostanie " "nadpisany po włączeniu." msgid "Pressure advance(Klipper) AKA Linear advance factor(Marlin)" msgstr "" -"Przyspieszenie ciśnienia (Klipper), znane również jako współczynnik " -"przyspieszenia liniowego (Marlin)." +"Pressure advance (Klipper), znane również jako współczynnik przyspieszenia " +"liniowego (Marlin)." msgid "" "Default line width if other line widths are set to 0. If expressed as a %, " @@ -10740,6 +10854,31 @@ msgstr "" "zatrzymany i będzie pracował przynajmniej z minimalną prędkością, aby " "zmniejszyć częstotliwość włączania i wyłączania" +msgid "Don't slow down outer walls" +msgstr "Nie spowalniaj zewnętrznych ścian" + +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 " +"artefacts that appear like z banding \n" +"3. To avoid printing at speeds which cause VFAs (fine artefacts) on the " +"external walls\n" +"\n" +msgstr "" +"Jeśli ta opcja jest włączona, zapewni to, że zewnętrzne obwody nie będą " +"spowalniane, aby spełnić minimalny czas warstwy. Jest to szczególnie pomocne " +"w poniższych sytuacjach:\n" +"\n" +"1. Aby uniknąć zmian połysku podczas drukowania filamentami z połuskiem.\n" +"2. Aby uniknąć zmian prędkości zewnętrznych ścian, które mogą powodować " +"drobne artefakty ścian, przypominające zygzaki.\n" +"3. Aby uniknąć drukowania z prędkościami, które powodują powstawanie " +"drobnych artefaktów (VFA) na zewnętrznych ścianach.\n" + msgid "Layer time" msgstr "Czas warstwy" @@ -11307,10 +11446,10 @@ msgstr "Pełna prędkość wentylatora na warstwie" 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 "" "Prędkość wentylatora będzie stopniowo zwiększana liniowo od zera na warstwie " "\"close_fan_the_first_x_layers\" do maksymalnej na warstwie " @@ -11318,6 +11457,9 @@ msgstr "" "\"close_fan_the_first_x_layers\", to wentylator będzie pracować z maksymalną " "dozwoloną prędkością na warstwie \"close_fan_the_first_x_layers\" + 1." +msgid "layer" +msgstr "warstwa" + msgid "Support interface fan speed" msgstr "Prędkość wentylatora dla warstwy łączącej podpory" @@ -13010,10 +13152,10 @@ 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 "" -"Szpary mniejsze niż dwukrotność wartości parametru \"promień zamykania " -"szpar\" zostaną zamknięte przy cięciu. Operacja zamykania szpar może " -"zmniejszyć finalną rozdzielczość wydruku, więc zalecane jest ustawienie tej " -"wartości na rozsądnie niskim poziomie." +"Szpary mniejsze niż dwukrotność wartości parametru \"promień zamykania szpar" +"\" zostaną zamknięte przy cięciu. Operacja zamykania szpar może zmniejszyć " +"finalną rozdzielczość wydruku, więc zalecane jest ustawienie tej wartości na " +"rozsądnie niskim poziomie." msgid "Slicing Mode" msgstr "Tryb cięcia" @@ -14639,10 +14781,10 @@ msgid "" "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 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" "\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 " @@ -14653,7 +14795,7 @@ msgstr "" "\n" "Zazwyczaj kalibracja nie jest konieczna. Gdy rozpoczynasz druk w jednym " "kolorze/materiale i zaznaczasz opcję \"kalibracja dynamiki przepływu\" w " -"menu rozpoczęcia druku. Drukarka będzie postępować w tradycyjny sposób, " +"menu rozpoczęcia druku - drukarka będzie postępować w tradycyjny sposób, " "kalibrując filament przed rozpoczęciem druku. W przypadku druku w wielu " "kolorach/materiałach drukarka będzie używać domyślnego parametru kompensacji " "dla filamentu podczas każdej jego zmiany, co w większości przypadków daje " @@ -14801,25 +14943,15 @@ msgstr "Nazwa nie może przekraczać 40 znaków." msgid "" "Only one of the results with the same name will be saved. Are you sure you " -"want to overrides the other results?" +"want to override the other results?" msgstr "" "Tylko jeden z wyników o tej samej nazwie zostanie zapisany. Czy na pewno " "chcesz zastąpić inne wyniki?" -#, 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 "" -"Istnieje już historia wyników kalibracji o tej samej nazwie: %s. Tylko jeden " -"z wyników o tej samej nazwie zostanie zapisany. Czy na pewno chcesz zastąpić " -"ten wynik?" - msgid "Please find the best line on your plate" msgstr "Znajdź najlepszą linię na swojej płycie" -msgid "Please find the cornor with perfect degree of extrusion" +msgid "Please find the corner with perfect degree of extrusion" msgstr "Znajdź róg z idealnym stopniem ekstruzji" msgid "Input Value" @@ -15076,6 +15208,9 @@ msgstr "ABS/ASA" msgid "PETG" msgstr "PETG" +msgid "PCTG" +msgstr "" + msgid "TPU" msgstr "TPU" @@ -15174,6 +15309,9 @@ msgstr "" msgid "Upload to storage" msgstr "Prześlij do pamięci" +msgid "Switch to Device tab after upload." +msgstr "" + #, c-format, boost-format msgid "Upload filename doesn't end with \"%s\". Do you wish to continue?" msgstr "" @@ -15403,8 +15541,8 @@ msgstr "" "Czy chcesz go zastąpić?" 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 "" "Nazwa profilu zostanie zmieniona na \"Dostawca Typ Seria @nazwa drukarki, " @@ -15453,12 +15591,6 @@ msgstr "Prostokąt" msgid "Printable Space" msgstr "Przestrzeń do druku" -msgid "X" -msgstr "X" - -msgid "Y" -msgstr "Y" - msgid "Hot Bed STL" msgstr "Model Stołu " @@ -15869,6 +16001,12 @@ msgstr "Czy na pewno chcesz się wylogować?" msgid "Refresh Printers" msgstr "Odśwież drukarki" +msgid "View print host webui in Device tab" +msgstr "" + +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." @@ -16315,21 +16453,17 @@ msgstr "Pomyślnie połączono z SimplyPrint!" msgid "Could not connect to SimplyPrint" msgstr "Nie można połączyć się z SimplyPrint" +msgid "Internel error" +msgstr "" + +msgid "Unknown error" +msgstr "Nieznany błąd" + msgid "SimplyPrint account not linked. Go to Connect options to set it up." msgstr "" "Nie połączono z kontem SimplyPrint. Przejdź do opcji Połącz, aby go " "skonfigurować." -msgid "" -"File size exceeds the 100MB upload limit. Please upload your file through " -"the panel." -msgstr "" -"Rozmiar pliku przekracza limit przesyłania 100 MB. Proszę przesłać plik za " -"pomocą panelu." - -msgid "Unknown error" -msgstr "Nieznany błąd" - msgid "Connection to Flashforge works correctly." msgstr "Połączenie z Flashforge działa poprawnie." @@ -16366,10 +16500,10 @@ msgid "" "precision and layer consistency if your model doesn't have very steep " "overhangs?" msgstr "" -"Tryb kanapki\n" -"Czy wiesz, że możesz użyć trybu kanapki (wewnętrzna-zewnętrzna-wewnętrzna) " +"Tryb Sandwich\n" +"Czy wiesz, że możesz użyć trybu sandwich (wewnętrzna-zewnętrzna-wewnętrzna) " "do poprawy precyzji i spójności warstw, jeśli twój model nie ma bardzo " -"stromych występów?" +"stromych nawisów?" #: resources/data/hints.ini: [hint:Chamber temperature] msgid "" @@ -16736,6 +16870,113 @@ msgstr "" "takimi jak ABS, odpowiednie zwiększenie temperatury podgrzewanej płyty może " "zmniejszyć prawdopodobieństwo odkształceń." +#~ msgid "" +#~ "File size exceeds the 100MB upload limit. Please upload your file through " +#~ "the panel." +#~ msgstr "" +#~ "Rozmiar pliku przekracza limit przesyłania 100 MB. Proszę przesłać plik " +#~ "za pomocą panelu." + +#~ msgid "Enable adaptive pressure advance (beta)" +#~ msgstr "Włącz adaptacyjny wzrost ciśnienia (beta)" + +#~ msgid "" +#~ "With increasing print speeds, it has been observed that the effective PA " +#~ "value typically decreases. This means that a single PA value is not 100% " +#~ "optimal for all features and a compromise value is usually used, that " +#~ "does not cause too much bulging on slower features 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 speed it is printing at. " +#~ "Internally it generates a fitted model that can extrapolate the needed " +#~ "pressure advance for any given print speed, which is then emmited to the " +#~ "printer depending on the current print speed.\n" +#~ "\n" +#~ "When enabled the pressure advance value above is overriden. However, a " +#~ "reasonable default value above isstrongly recomended to act as a fallback " +#~ "in case the model calculations fail." +#~ msgstr "" +#~ "Wraz ze wzrostem prędkości druku zaobserwowano, że efektywna wartość PA " +#~ "zazwyczaj maleje. Oznacza to, że pojedyncza wartość PA nie jest w 100% " +#~ "optymalna dla wszystkich elementów i zwykle stosowana jest wartość " +#~ "kompromisowa, która nie powoduje zbyt dużego \"wypuklenia\" na elementach " +#~ "drukowanych wolniej, a jednocześnie nie powoduje przerw na elementach " +#~ "drukowanych szybciej.\n" +#~ "\n" +#~ "Ta funkcja ma na celu rozwiązanie tego ograniczenia poprzez modelowanie " +#~ "reakcji ekstrudera w zależności od prędkości drukowania. Wewnętrznie " +#~ "generuje dopasowany model, który może przewidzieć jakie będzie wymagane " +#~ "ciśnienie dla dowolnej prędkości drukowania, który jest następnie " +#~ "przekazywany do drukarki w zależności od bieżącej prędkości druku.\n" +#~ "\n" +#~ "Po włączeniu powyższa wartość PA jest nadpisywana. Zdecydowanie zaleca " +#~ "się jednak przyjęcie rozsądnej wartości domyślnej, która będzie działać " +#~ "jako rozwiązanie awaryjne w przypadku nieprawidłowych obliczeń dla modelu." + +#~ msgid "Adaptive pressure advance measurements (beta)" +#~ msgstr "Adaptacyjny pomiar ciśnienia (beta)" + +#~ msgid "" +#~ "Add pairs of pressure advance values and the speed they were measured at, " +#~ "separated by a coma. One set of values per line. For example\n" +#~ "0.03,100\n" +#~ "0.027,150 etc.\n" +#~ "\n" +#~ "How to calibrate:\n" +#~ "1. Run the pressure advance test for at least 3 speeds per filament. It " +#~ "is recommended that the test is runfor 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\n" +#~ "2. Take note of the optimal Pressure advance value for each speed. The PA " +#~ "ideal PA value should be decreasing the faster the speed is. If it is " +#~ "not, confirm that your extruder is functioning correctly3. Enter the " +#~ "pairs of PA values and Speeds in the text box here and save your filament " +#~ "profile" +#~ msgstr "" +#~ "Dodaj pary wartości przyspieszenia ciśnienia i prędkości, przy których " +#~ "zostały zmierzone, oddzielone przecinkiem. Jeden zestaw wartości na " +#~ "wiersz. Na przykład\n" +#~ "0.03,100\n" +#~ "0.027,150 itd.\n" +#~ "\n" +#~ "Jak skalibrować:\n" +#~ "1. Przeprowadź test PA dla co najmniej 3 prędkości na filament. Zaleca " +#~ "się przeprowadzenie testu PA co najmniej dla zewnętrznych obwodów, " +#~ "wewnętrznych obwodów i najszybszej prędkości drukowania cechy w profilu " +#~ "(zwykle jest to rzadkie lub pełne wypełnienie).\n" +#~ "2. Zanotuj optymalną wartość PA dla każdej prędkości. Idealna wartość PA " +#~ "powinna maleć wraz ze wzrostem prędkości. Jeśli tak nie jest, sprawdź, " +#~ "czy ekstruder działa prawidłowo. \n" +#~ "3.Wprowadź pary wartości PA i prędkości w polu tekstowym i zapisz profil " +#~ "filamentu." + +#~ msgid "Flow ratio and Pressure Advance" +#~ msgstr "Współczynnik przepływu i Wzrost ciśnienia (PA)" + +#~ msgid "param_information" +#~ msgstr "param_information" + +#~ msgid "Printer local connection failed, please try again." +#~ msgstr "" +#~ "Nie udało się nawiązać lokalnego połączenia z drukarką, spróbuj ponownie." + +#, 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 "" +#~ "Istnieje już historia wyników kalibracji o tej samej nazwie: %s. Tylko " +#~ "jeden z wyników o tej samej nazwie zostanie zapisany. Czy na pewno chcesz " +#~ "zastąpić ten wynik?" + +#~ msgid "X" +#~ msgstr "X" + +#~ msgid "Y" +#~ msgstr "Y" + #~ msgid "" #~ "Associate OrcaSlicer with prusaslicer:// links so that Orca can open " #~ "PrusaSlicer links from Printable.com" @@ -17606,37 +17847,6 @@ msgstr "" #~ msgid "An error occurred loading " #~ msgstr "Wystąpił błąd podczas ładowania" -#~ msgid "" -#~ "Windows Media Player is required for this task! Do you want to enable " -#~ "'Windows Media Player' for your operation system?" -#~ msgstr "" -#~ "Do wykonania tego zadania wymagany jest Windows Media Player! Czy chcesz " -#~ "włączyć 'Windows Media Player' dla swojego systemu operacyjnego?" - -#~ msgid "" -#~ "BambuSource has not correctly been registered for media playing! Press " -#~ "Yes to re-register it. You will be promoted twice" -#~ msgstr "" -#~ "BambuSource nie został poprawnie zarejestrowany do odtwarzania mediów! " -#~ "Naciśnij Tak, aby ponownie go zarejestrować. Będziesz poproszony dwa razy." - -#~ msgid "" -#~ "Missing BambuSource component registered for media playing! Please re-" -#~ "install BambuStutio or seek after-sales help." -#~ msgstr "" -#~ "Brakujący komponent BambuSource zarejestrowany do odtwarzania mediów! " -#~ "Proszę ponownie zainstalować BambuStudio lub skonsultować się z pomocą " -#~ "posprzedażową." - -#~ 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 "" -#~ "Twój system nie posiada kodeków H.264 dla GStreamer, które są wymagane do " -#~ "odtwarzania wideo. (Spróbuj zainstalować pakiety gstreamer1.0-plugins-bad " -#~ "lub gstreamer1.0-libav, a następnie zrestartuj Orca Slicer?)" - #~ msgid "The maximum temperature cannot exceed" #~ msgstr "Maksymalna temperatura nie może przekroczyć" @@ -17707,9 +17917,6 @@ msgstr "" #~ msgid "Balanced" #~ msgstr "Zrównoważone" -#~ msgid "Quick" -#~ msgstr "Szybkie" - #~ msgid "Movement:" #~ msgstr "Ruch:" @@ -17909,8 +18116,8 @@ msgstr "" #~ "Elevation is too low for object. Use the \"Pad around object\" feature to " #~ "print the object without elevation." #~ msgstr "" -#~ "Podniesienie zbyt małe dla modelu. Użyj funkcji \"Podkładka wokół " -#~ "modelu\", aby wydrukować model bez podniesienia." +#~ "Podniesienie zbyt małe dla modelu. Użyj funkcji \"Podkładka wokół modelu" +#~ "\", aby wydrukować model bez podniesienia." #~ msgid "" #~ "The endings of the support pillars will be deployed on the gap between " diff --git a/localization/i18n/pt_BR/OrcaSlicer_pt_BR.po b/localization/i18n/pt_BR/OrcaSlicer_pt_BR.po index 3903990f3c..90efdb34fa 100644 --- a/localization/i18n/pt_BR/OrcaSlicer_pt_BR.po +++ b/localization/i18n/pt_BR/OrcaSlicer_pt_BR.po @@ -1,7 +1,8 @@ +# msgid "" msgstr "" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-05-29 00:28+0800\n" +"POT-Creation-Date: 2024-06-21 20:03+0800\n" "PO-Revision-Date: 2024-06-01 21:51-0300\n" "Last-Translator: \n" "Language-Team: Portuguese, Brazilian\n" @@ -10,11 +11,11 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Crowdin-Project: orcaslicer-pt-br\n" -"X-Crowdin-Project-ID: 664934\n" -"X-Crowdin-Language: pt-BR\n" "X-Crowdin-File: OrcaSlicer.pot\n" "X-Crowdin-File-ID: 10\n" +"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" msgid "Supports Painting" @@ -114,8 +115,13 @@ msgid "Lay on face" 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." -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." +msgid "" +"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." msgid "Color Painting" msgstr "Pintura de cores" @@ -527,7 +533,9 @@ msgid "Cut by Plane" 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?" +msgstr "" +"as arestas abertas podem ser causadas pela ferramenta de corte, você quer " +"corrigi-las agora?" msgid "Repairing model object" msgstr "Reparando objeto do modelo" @@ -548,8 +556,12 @@ msgid "Decimate ratio" 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." -msgstr "Processar modelo '%1%' com mais de 1M de triângulos pode ser lento. É altamente recomendável simplificar o modelo." +msgid "" +"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." msgid "Simplify model" msgstr "Simplificar modelo" @@ -558,7 +570,8 @@ 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" @@ -590,7 +603,8 @@ msgid "%1%" msgstr "%1%" msgid "Can't apply when proccess 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." @@ -717,14 +731,20 @@ msgstr "Fonte padrão" msgid "Advanced" msgstr "Avançado" -msgid "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." +msgid "" +"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." 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." +msgstr "" +"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." @@ -978,10 +998,12 @@ 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." @@ -993,8 +1015,13 @@ msgid "Orient the text towards the camera." msgstr "Orientar o texto em direção à câmera." #, boost-format -msgid "Can't load exactly same font(\"%1%\"). Aplication 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." +msgid "" +"Can't load exactly same font(\"%1%\"). Aplication 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." msgid "No symbol" msgstr "Sem símbolo" @@ -1109,8 +1136,12 @@ msgstr "Tipo de traço indefinido" msgid "Path can't be healed from selfintersection and multiple points." msgstr "O caminho não pode ser reparado de auto-interseção e pontos múltiplos." -msgid "Final shape constains selfintersection 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 constains selfintersection 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%)." @@ -1231,7 +1262,8 @@ 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%)." @@ -1337,7 +1369,9 @@ 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:" @@ -1352,20 +1386,33 @@ msgid "Machine" 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." +msgstr "" +"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." -msgstr "O arquivo de configuração \"%1%\" foi carregado, mas alguns valores não foram reconhecidos." +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." -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." -msgstr "OrcaSlicer será encerrado devido à falta de memória. Pode ser um bug. Agradecemos se você relatar o problema para nossa equipe." +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." +msgstr "" +"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." -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." +msgid "" +"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." msgid "Critical error" msgstr "Erro crítico" @@ -1391,10 +1438,12 @@ 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" @@ -1430,11 +1479,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 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" @@ -1463,26 +1515,40 @@ msgstr "Escolha um arquivo (gcode/3mf):" msgid "Some presets are modified." msgstr "Alguns presets foram modificados." -msgid "You can keep the modifield 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." +msgid "" +"You can keep the modifield 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." 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!" +msgstr "" +"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" -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" +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 "" +"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." -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." +msgid "" +"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." msgid "Sync user presets" msgstr "Sincronizar presets do usuário" @@ -1514,8 +1580,12 @@ msgstr "Envios em andamento" msgid "Select a G-code file:" msgstr "Selecione um arquivo G-code:" -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." +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." msgid "Import File" msgstr "Importar Arquivo" @@ -1675,12 +1745,17 @@ 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" -" (min_width_top_surface)' como 0 para que 'Apenas uma Parede nas Superfícies Superiores' funcione melhor.\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" "Não - Não alterar essas configurações para mim" @@ -1866,7 +1941,8 @@ 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 "Split the selected object into mutiple objects" msgstr "Dividir o objeto selecionado em vários objetos" @@ -1971,13 +2047,16 @@ 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" +msgstr "" +"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" @@ -2009,8 +2088,12 @@ 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." -msgstr "Mude para o modo de configuração por objeto para editar processos dos objetos selecionados." +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." msgid "Delete connector from object which is a part of cut" msgstr "Excluir conector do objeto que é parte do corte" @@ -2021,19 +2104,25 @@ msgstr "Excluir peça sólida do objeto que é peça do corte" 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." -msgstr "Para salvar a correspondência de corte, você pode excluir todos os conectores de todos os objetos relacionados." +msgid "" +"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." 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 infornation first." +"To manipulate with solid parts or negative volumes you have to invalidate " +"cut infornation 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" "\n" -"Para manipular peças sólidas ou volumes negativos, você deve invalidar as informações de corte primeiro." +"Para manipular peças sólidas ou volumes negativos, você deve invalidar as " +"informações de corte primeiro." msgid "Delete all connectors" msgstr "Excluir todos os conectores" @@ -2083,11 +2172,18 @@ 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." -msgstr "Se o primeiro item selecionado for um objeto, o segundo também deve ser um objeto." +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." -msgid "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." +msgid "" +"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." 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." @@ -2145,7 +2241,8 @@ 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" @@ -2304,7 +2401,8 @@ 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" @@ -2396,8 +2494,12 @@ msgstr "Verificar localização do filamento" 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." -msgstr "Escolha um slot AMS e pressione o botão \"Carregar\" ou \"Descarregar\" para carregar ou descarregar automaticamente o filamento." +msgid "" +"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." msgid "Edit" msgstr "Editar" @@ -2428,21 +2530,29 @@ msgstr "Organizando" msgid "Arranging canceled." msgstr "Organização cancelada." -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." +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." msgid "Arranging done." msgstr "Organização concluída." -msgid "Arrange failed. Found some exceptions when processing object geometries." -msgstr "Organização falhou. Encontrou algumas exceções ao processar geometrias de objetos." +msgid "" +"Arrange failed. Found some exceptions when processing object geometries." +msgstr "" +"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 "" @@ -2502,7 +2612,9 @@ msgid "Task canceled." 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." +msgstr "" +"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." @@ -2510,8 +2622,12 @@ msgstr "Falha na conexão com o serviço de nuvem. Por favor, tente novamente." 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." -msgstr "O arquivo de impressão excede o tamanho máximo permitido (1GB). Por favor, simplifique o modelo e fatie novamente." +msgid "" +"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." msgid "Failed to send the print job. Please try again." msgstr "Falha ao enviar o trabalho de impressão. Por favor, tente novamente." @@ -2519,17 +2635,28 @@ 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." -msgstr "O tamanho do arquivo de impressão é muito grande. Por favor, ajuste o tamanho do arquivo e tente novamente." +msgid "" +"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." 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." +msgstr "" +"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." -msgstr "Falha ao enviar o arquivo de impressão via FTP. Por favor, verifique o estado da rede e tente novamente." +msgid "" +"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." msgid "Sending print job over LAN" msgstr "Enviando trabalho de impressão via LAN" @@ -2551,11 +2678,14 @@ 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" +msgstr "" +"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." @@ -2576,8 +2706,12 @@ msgstr "Um cartão SD precisa ser inserido antes de enviar para a impressora." 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." -msgstr "O arquivo SLA não contém nenhum perfil. Por favor, ative alguns perfis de impressora SLA antes de importar esse arquivo SLA." +msgid "" +"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." msgid "Importing canceled." msgstr "Importação cancelada." @@ -2585,14 +2719,21 @@ msgstr "Importação cancelada." 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." -msgstr "O arquivo SLA importado não contém nenhum perfil. Os perfis SLA atuais foram usados como alternativa." +msgid "" +"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." 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." +msgstr "" +"Por favor, verifique sua lista de objetos antes de mudar a configuração " +"predefinida." msgid "Attention!" msgstr "Atenção!" @@ -2636,8 +2777,12 @@ msgstr "Orca Slicer é baseado no PrusaSlicer e BambuStudio" msgid "Libraries" msgstr "Bibliotecas" -msgid "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" +msgid "" +"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" #, c-format, boost-format msgid "About %s" @@ -2653,10 +2798,15 @@ 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." -msgstr "Slic3r foi criado por Alessandro Ranellucci com a ajuda de muitos outros colaboradores." +msgid "" +"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." msgid "Version" msgstr "Versão" @@ -2694,7 +2844,9 @@ 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" +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" @@ -2709,7 +2861,9 @@ msgid "Factor N" msgstr "Fator N" 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" +msgstr "" +"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?" @@ -2717,11 +2871,13 @@ msgstr "Tem certeza de que deseja limpar as informações do filamento?" msgid "You need to select the material type and color first." msgstr "Você precisa selecionar o tipo e a cor do material primeiro." -msgid "Please input a valid value (K in 0~0.3)" -msgstr "Por favor, insira um valor válido (K entre 0~0.3)" +#, c-format, boost-format +msgid "Please input a valid value (K in %.1f~%.1f)" +msgstr "" -msgid "Please input a valid value (K in 0~0.3, N in 0.6~2.0)" -msgstr "Por favor, insira um valor válido (K entre 0~0.3, N entre 0.6~2.0))" +#, c-format, boost-format +msgid "Please input a valid value (K in %.1f~%.1f, N in %.1f~%.1f)" +msgstr "" msgid "Other Color" msgstr "Outra Cor" @@ -2732,8 +2888,14 @@ msgstr "Cor Personalizada" 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." -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 preenchidos automaticamente selecionando um perfil de filamento." +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." +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 " +"preenchidos automaticamente selecionando um perfil de filamento." msgid "Nozzle Diameter" msgstr "Diâmetro do bico" @@ -2765,8 +2927,14 @@ msgstr "Iniciar calibração" 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." -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." +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." +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." msgid "Save" msgstr "Salvar" @@ -2797,8 +2965,11 @@ 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." -msgstr "Nota: Apenas os espaços do AMS carregados com o mesmo tipo de material podem ser selecionadas." +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." msgid "Enable AMS" msgstr "Ativar AMS" @@ -2815,11 +2986,22 @@ msgstr "Imprimir com o filamento montado na parte de trás do chassi" msgid "Current Cabin humidity" msgstr "Umidade da cabine atual" -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." -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." +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." +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." -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" +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" msgid "Filament used in this print job" msgstr "Filamento usado neste trabalho de impressão" @@ -2842,8 +3024,12 @@ msgstr "Imprimir com filamentos no AMS" msgid "Print with filaments mounted on the back of the chassis" msgstr "Imprimir com filamentos montados na parte de trás do chassi" -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." +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." msgid "Group" msgstr "Grupo" @@ -2851,15 +3037,22 @@ 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." -msgstr "O backup de filamento do AMS não está ativado, por favor, ative-o nas configurações do AMS." +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." 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" @@ -2873,41 +3066,79 @@ msgstr "Configurações do AMS" 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." -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 "" +"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." -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." +msgid "" +"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." -msgid "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." +msgid "" +"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." 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." -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." +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." +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." -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." -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." +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." +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." 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." -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." +msgid "" +"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." msgid "AMS filament backup" msgstr "Backup de filamento do AMS" -msgid "AMS will continue to another spool with the same properties of filament automatically when current filament runs out" -msgstr "O AMS continuará para outra bobina com as mesmas propriedades do filamento automaticamente quando o filamento atual acabar" +msgid "" +"AMS will continue to another spool with the same properties of filament " +"automatically when current filament runs out" +msgstr "" +"O AMS continuará para outra bobina com as mesmas propriedades do filamento " +"automaticamente quando o filamento atual acabar" 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." -msgstr "Detecta o entupimento e erosão de filamento, parando a impressão imediatamente para conservar tempo e filamento." +msgid "" +"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." msgid "File" msgstr "Arquivo" @@ -2915,11 +3146,19 @@ msgstr "Arquivo" msgid "Calibration" msgstr "Calibração" -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." +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." -msgid "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." +msgid "" +"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." msgid "click here to see more info" msgstr "clique aqui para ver mais informações" @@ -2927,14 +3166,22 @@ msgstr "clique aqui para ver mais informações" msgid "Please home all axes (click " msgstr "Por favor, mandar a origem todos os eixos (clique " -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." +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." 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" -msgstr "Ocorreu um erro. Talvez a memória do sistema não seja suficiente ou seja um bug do programa" +msgid "" +"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" msgid "Please save project and restart the program. " msgstr "Por favor, salve o projeto e reinicie o programa. " @@ -2977,27 +3224,48 @@ 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." -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." +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." +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." #, 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 "Renomear o G-code após copiar para a pasta destino selecionada falhou. O caminho atual é %1%.tmp. Por favor, tente exportar novamente." +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 "" +"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." -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." +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 "" +"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." -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." +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." +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." #, boost-format msgid "G-code file exported to %1%" @@ -3021,7 +3289,9 @@ 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" +msgstr "" +"Agendando o envio para `%1%`. Veja Janela -> Fila de Envio do Anfitrião de " +"Impressão" msgid "Device" msgstr "Dispositivo" @@ -3035,12 +3305,12 @@ msgstr "Tarefa Enviada" msgid "Edit multiple printers" msgstr "Editar múltiplas impressoras" -msgid "Select connected printetrs (0/6)" -msgstr "Selecione as impressoras conectadas (0/6)" +msgid "Select connected printers (0/6)" +msgstr "" #, c-format, boost-format -msgid "Select Connected Printetrs (%d/6)" -msgstr "Selecionar as impressoras conectadas (%d/6)" +msgid "Select Connected Printers (%d/6)" +msgstr "" #, c-format, boost-format msgid "The maximum number of printers that can be selected is %d" @@ -3073,8 +3343,11 @@ msgstr "Status do dispositivo" msgid "Actions" msgstr "Ações" -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)" +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)" msgid "Add" msgstr "Adicionar" @@ -3100,8 +3373,8 @@ msgstr "Impressão finalizada" msgid "Printing Failed" msgstr "Falha na Impressão" -msgid "PrintingPause" -msgstr "Pausa na Impressão" +msgid "Printing Pause" +msgstr "" msgid "Prepare" msgstr "Preparar" @@ -3199,17 +3472,27 @@ msgstr "Calibração de Fluxo Dinâmico" msgid "Send Options" msgstr "Opções de envio" -msgid "Send" -msgstr "Enviar" +msgid "Send to" +msgstr "" -msgid "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.)" +msgid "" +"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.)" msgid "Wait" msgstr "Aguarde" -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.)" +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.)" + +msgid "Send" +msgstr "Enviar" msgid "Name is invalid;" msgstr "O nome é inválido;" @@ -3238,11 +3521,18 @@ msgstr "Origem" 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." +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." -msgid "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." +msgid "" +"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." msgid "Rectangular" msgstr "Retangular" @@ -3280,8 +3570,10 @@ 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):" @@ -3292,11 +3584,19 @@ msgstr "Escolha um arquivo STL para importar o modelo da mesa:" 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" -msgstr "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 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" -msgid "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" +msgid "" +"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" msgid "Please check.\n" msgstr "Por favor, verifique.\n" @@ -3306,13 +3606,18 @@ 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" -msgstr "A temperatura do bico recomendada para este tipo de filamento é [%d, %d] graus centígrados" +msgid "" +"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" msgid "" "Too small max volumetric speed.\n" @@ -3322,8 +3627,14 @@ msgstr "" "Redefinir para 0,5" #, 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" -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" +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" +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" msgid "" "Too small layer height.\n" @@ -3349,15 +3660,19 @@ 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." @@ -3369,33 +3684,43 @@ 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. " -msgstr "O perímetro extra alternado não funciona bem quando a espessura vertical da está definida para Todos. " +msgid "" +"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. " 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 - Dont 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 Independente" +"NÃO — Manter a Altura de Camada Adaptativa e a Altura de Camada de Suporte " +"Independente" msgid "" "Prime tower does not work when Adaptive Layer Height is on.\n" @@ -3414,7 +3739,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" @@ -3433,8 +3759,13 @@ msgstr "" "seam_slope_start_height precisa ser menor que layer_height.\n" "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." -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." +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." +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." 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." @@ -3527,7 +3858,8 @@ 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" @@ -3577,19 +3909,38 @@ msgstr "Verificação falhou." 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." -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)." +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 "" +"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℃." -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℃." +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 "" +"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℃." -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℃." +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 "" +"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" @@ -3610,11 +3961,19 @@ msgstr "TPU não é suportado pelo AMS." 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." -msgstr "O PVA úmido se tornará flexível e ficará preso dentro do AMS, por favor, tenha cuidado para secá-lo antes de usar." +msgid "" +"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." -msgid "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." +msgid "" +"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." msgid "default" msgstr "padrão" @@ -3624,7 +3983,9 @@ msgid "Edit Custom G-code (%1%)" 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)" +msgstr "" +"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" @@ -3712,6 +4073,20 @@ msgstr "" "SIM para %s%%, \n" "NÃO para %s %s." +#, boost-format +msgid "" +"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%\"" + +msgid "Input value is out of range" +msgstr "Valor de entrada está fora do limite" + +msgid "Some extension in the input is invalid" +msgstr "" + #, boost-format msgid "Invalid format. Expected vector format: \"%1%\"" msgstr "Formato inválido. Formato de vetor esperado: \"%1%\"" @@ -4056,8 +4431,12 @@ msgid "Size:" msgstr "Tamanho:" #, c-format, boost-format -msgid "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)." +msgid "" +"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)." msgid "An object is layed over the boundary of plate." msgstr "Um objeto está sobre a borda da mesa." @@ -4073,10 +4452,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" @@ -4097,10 +4478,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" @@ -4581,8 +4964,10 @@ 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" @@ -4592,16 +4977,23 @@ 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)" -msgstr[0] "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)" +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)" +msgstr[1] "" +"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" @@ -4632,28 +5024,42 @@ msgid "Synchronization" 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." +msgstr "" +"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." +msgstr "" +"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 occured. Please update the printer firmware and try again." -msgstr "Ocorreu um problema. Por favor, atualize o firmware da impressora e tente novamente." +msgstr "" +"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." -msgstr "Liveview via LAN está desativado. Por favor, ative a liveview na tela da impressora." +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." msgid "Please enter the IP of printer to connect." msgstr "Por favor, digite o IP da impressora para conectar." @@ -4664,8 +5070,12 @@ msgstr "Inicializando..." 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." -msgstr "Por favor, verifique a rede e tente novamente, você pode reiniciar ou atualizar a impressora se o problema persistir." +msgid "" +"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." msgid "The printer has been logged out and cannot connect." msgstr "A impressora foi desconectada e não pode se conectar." @@ -4778,8 +5188,12 @@ 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." +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.)!" @@ -4796,9 +5210,14 @@ 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?" -msgstr[0] "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?" +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?" +msgstr[1] "" +"Você está prestes a excluir %u arquivos da impressora. Tem certeza de que " +"deseja continuar?" msgid "Delete files" msgstr "Excluir arquivos" @@ -4819,8 +5238,12 @@ msgstr "Falha ao obter informação do modelo da impressora." 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." -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." +msgid "" +"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." #, c-format, boost-format msgid "File '%s' was lost! Please download it again." @@ -4850,8 +5273,12 @@ msgstr "Download concluído" msgid "Downloading %d%%..." msgstr "Baixando %d%%..." -msgid "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." +msgid "" +"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." msgid "File does not exist." msgstr "O arquivo não existe." @@ -4930,8 +5357,11 @@ msgstr "" 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.)" +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.)" msgid "Rate" msgstr "Avaliar" @@ -5005,8 +5435,12 @@ msgstr "Camada: %s" msgid "Layer: %d/%d" msgstr "Camada: %d/%d" -msgid "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." +msgid "" +"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." msgid "Still unload" msgstr "Ainda descarregando" @@ -5017,8 +5451,13 @@ msgstr "Ainda carregando" 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." -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." +msgid "" +"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." msgid "This only takes effect during printing" msgstr "Isso só tem efeito durante a impressão" @@ -5084,17 +5523,21 @@ 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" 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." +msgstr "" +"Sincronizando os resultados da impressão. Por favor, tente novamente alguns " +"segundos depois." msgid "Upload failed\n" msgstr "Falha no envio\n" @@ -5107,7 +5550,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: " @@ -5123,8 +5567,12 @@ msgstr "" "\n" "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?" -msgstr "Algumas de suas imagens não puderam ser carregadas. 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?" +msgstr "" +"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." @@ -5133,7 +5581,8 @@ msgid "" "At least one successful print record of this print profile is required \n" "to give a positive rating(4 or 5stars)." msgstr "" -"Pelo menos um registro de impressão bem-sucedido deste perfil de impressão é necessário \n" +"Pelo menos um registro de impressão bem-sucedido deste perfil de impressão é " +"necessário \n" "para dar uma avaliação positiva (4 ou 5 estrelas)." msgid "Status" @@ -5175,8 +5624,12 @@ msgstr "Pular" 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." -msgstr "A versão 3mf do arquivo está em Beta e é mais nova do que a versão atual do OrcaSlicer." +msgid "" +"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." msgid "If you would like to try Orca Slicer Beta, you may click to" msgstr "Se você gostaria de testar o Orca Slicer Beta, clique para" @@ -5185,10 +5638,13 @@ 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." +msgstr "" +"Atualizar seu Orca Slicer poderia permitir todas as funcionalidades do " +"arquivo 3mf." msgid "Current Version: " msgstr "Versão Atual: " @@ -5325,8 +5781,12 @@ msgstr "Camadas" msgid "Range" msgstr "Intervalo" -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" +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" msgid "Please upgrade your graphics card driver." msgstr "Por favor, atualize o driver da sua placa de vídeo." @@ -5362,8 +5822,12 @@ msgstr "Sensibilidade da pausa é" 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." -msgstr "A etiqueta de localização da mesa é detectada e a impressão é pausada se a etiqueta não estiver na faixa predefinida." +msgid "" +"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." msgid "First Layer Inspection" msgstr "Inspeção da Primeira Camada" @@ -5381,7 +5845,8 @@ 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" @@ -5487,17 +5952,28 @@ msgstr "Definir filamentos para usar" msgid "Search plate, object and part." msgstr "Pesquisar mesa, objeto e peça." -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." +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." 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?" -msgstr "Sincronizar filamentos com AMS eliminará todas os presets de filamento e cores selecionadas atualmente. Deseja continuar?" +msgid "" +"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?" -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?" +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?" msgid "Sync" msgstr "Sincronizar" @@ -5508,16 +5984,26 @@ msgstr "Ressincronizar" 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." -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." +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." +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." #, boost-format msgid "Do you want to save changes to \"%1%\"?" msgstr "Deseja salvar as alterações em \"%1%\"?" #, c-format, boost-format -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." +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." #, c-format, boost-format msgid "Ejecting of device %s(%s) has failed." @@ -5529,14 +6015,30 @@ msgstr "Projeto não salvo anterior detectado, deseja restaurá-lo?" 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." -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." +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." +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." -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." -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." +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." +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." -msgid "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." +msgid "" +"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." msgid "Expand sidebar" msgstr "Expandir barra lateral" @@ -5549,21 +6051,30 @@ 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" #, c-format, boost-format -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:" +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:" 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." -msgstr "A versão %s do 3mf é mais recente do que a versão %s do %s, sugerimos atualizar seu software." +msgid "" +"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." msgid "Invalid values found in the 3mf:" msgstr "Valores inválidos encontrados no 3mf:" @@ -5572,25 +6083,37 @@ msgid "Please correct them in the param tabs" 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:" +msgstr "" +"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!" -msgstr "Por favor, confirme se esses G-codes modificados são seguros para evitar qualquer dano à máquina!" +msgid "" +"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!" 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!" -msgstr "Por favor, confirme se os G-codes dentro desses presets são seguros para evitar qualquer dano à máquina!" +msgid "" +"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!" 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!" @@ -5600,7 +6123,9 @@ 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" @@ -5625,7 +6150,8 @@ 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" @@ -5640,8 +6166,12 @@ msgstr "Objeto com múltiplas peças foi detectado" 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?" -msgstr "Seu objeto parece ser muito grande. Deseja dimensioná-lo para caber na mesa de aquecimento automaticamente?" +msgid "" +"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?" msgid "Object too large" msgstr "Objeto muito grande" @@ -5739,18 +6269,23 @@ 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." -msgstr "O plug-in de rede não está detectado. Recursos relacionados à rede estão indisponíveis." +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." msgid "" "Preview only mode:\n" "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" @@ -5760,10 +6295,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" @@ -5787,8 +6324,12 @@ msgstr "Baixar falhou, erro no tamanho do arquivo." msgid "Project downloaded %d%%" msgstr "Projeto baixado %d%%" -msgid "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." +msgid "" +"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." msgid "Import SLA archive" msgstr "Importar arquivo SLA" @@ -5814,7 +6355,9 @@ 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." +msgstr "" +"Falha ao encontrar arquivo descompactado em %1%. Descompactação do arquivo " +"falhou." msgid "Drop project file" msgstr "Solte o arquivo do projeto" @@ -5862,17 +6405,27 @@ 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." -msgstr "O arquivo %s foi enviado para o espaço de armazenamento da impressora e pode ser visualizado na impressora." +msgid "" +"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." -msgid "Unable to perform boolean operation on model meshes. Only positive parts will be kept. You may fix the meshes and try agian." -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." +msgid "" +"Unable to perform boolean operation on model meshes. Only positive parts " +"will be kept. You may fix the meshes and try agian." +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." #, boost-format msgid "Reason: part \"%1%\" is empty." @@ -5891,17 +6444,20 @@ msgid "Reason: \"%1%\" and another part have no intersection." msgstr "Motivo: \"%1%\" e outra parte não tem intersecção." 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" @@ -5920,7 +6476,9 @@ msgid "Send to printer" 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." +msgstr "" +"Os suportes personalizados e a pintura de cores foram removidos antes do " +"reparo." msgid "Optimize Rotation" msgstr "Otimizar Rotação" @@ -5970,12 +6528,22 @@ msgstr "Triângulos: %1%\n" msgid "Tips:" msgstr "Dicas:" -msgid "\"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." +msgid "" +"\"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." #, 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." -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" +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." +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" msgid "Switching the language requires application restart.\n" msgstr "Mudar o idioma requer reiniciar o aplicativo.\n" @@ -5987,7 +6555,8 @@ 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" @@ -6031,8 +6600,13 @@ msgstr "Região de Login" 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." -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." +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." +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." msgid "Enable network plugin" msgstr "Ativar plugin de rede" @@ -6052,11 +6626,23 @@ msgstr "Unidades" 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." -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." +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." +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." -msgid "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." +msgid "" +"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." msgid "Home" msgstr "Início" @@ -6085,8 +6671,12 @@ msgstr "" 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." -msgstr "Dar zoom em direção à posição do ponteiro do mouse na visualização 3D, em vez do centro da janela 2D." +msgid "" +"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." msgid "Use free camera" msgstr "Usar câmera livre" @@ -6118,7 +6708,8 @@ msgstr "Volumes de Purga: Auto-calcular toda vez que a cor mudar." msgid "If enabled, auto-calculate everytime 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" @@ -6127,20 +6718,30 @@ msgstr "Se ativo, auto-calcular toda vez que a cor mudar" 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." -msgstr "Se ativo, Orca vai lembrar e alternar a configuração de filamento/processo para cada impressora automaticamente." +msgid "" +"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." 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." -msgstr "Com esta opção habilitada, você pode enviar uma tarefa para vários dispositivos ao mesmo tempo e gerenciar vários dispositivos." +msgid "" +"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." 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" @@ -6161,19 +6762,23 @@ 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" @@ -6190,20 +6795,32 @@ msgstr "Associar prusaslicer://" msgid "Not associated to any application" msgstr "Não associado a nenhum aplicativo" -msgid "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" +msgid "" +"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" msgid "Associate bambustudio://" msgstr "Associar bambustudio://" -msgid "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" +msgid "" +"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" msgid "Associate cura://" msgstr "Associar cura://" -msgid "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" +msgid "" +"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" msgid "Maximum recent projects" msgstr "Máximo de projetos recentes" @@ -6220,8 +6837,11 @@ 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" @@ -6440,7 +7060,8 @@ 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 patiant." -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" @@ -6577,9 +7198,6 @@ msgstr "enviado completo" msgid "Error code" msgstr "Código de erro" -msgid "Printer local connection failed, please try again." -msgstr "Falha na conexão local da impressora, por favor, tente novamente." - msgid "No login account, only printers in LAN mode are displayed" msgstr "Sem conta de login, apenas as impressoras em modo LAN são exibidas" @@ -6593,49 +7211,90 @@ msgid "Synchronizing device information time out" 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" +msgstr "" +"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" -msgstr "A impressora está executando instruções. Por favor, reinicie a impressão após terminar" +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" 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." -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." +msgid "" +"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." -msgid "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 "" +"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" -msgstr "Foram estabelecidos mapeamentos de filamentos para slots AMS. Você pode clicar em um filamento acima para mudar seu slot AMS mapeado" +msgid "" +"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" -msgid "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" +msgid "" +"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" #, 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 %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 firmware to support AMS slot assignment." -msgstr "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 "" +"Filament does not match the filament in AMS slot. 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 " +"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 "" +"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)." -msgstr "A impressora selecionada (%s) é incompatível com o perfil escolhido de impressora no fatiador (%s)." +msgid "" +"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)." 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." -msgstr "Não é possível enviar o trabalho de impressão para uma impressora cujo firmware precisa ser atualizado." +msgid "" +"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." msgid "Cannot send the print job for empty plate" msgstr "Não é possível enviar o trabalho de impressão para uma mesa vazia" @@ -6643,11 +7302,18 @@ msgstr "Não é possível enviar o trabalho de impressão para uma mesa vazia" 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." -msgstr "Quando o modo vaso espiral está ativado, máquinas com estrutura I3 não irão gerar vídeos timelapse." +msgid "" +"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." -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\"." +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\"." msgid "Errors" msgstr "Erros" @@ -6655,11 +7321,23 @@ msgstr "Erros" msgid "Please check the following:" 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." -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." +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." +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." -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." -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." +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." +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." #, c-format, boost-format msgid "nozzle in preset: %s %s" @@ -6669,24 +7347,46 @@ msgstr "bico no perfil: %s %s" 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." -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." +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 "" +"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" -msgstr "Imprimir material de temperatura alta (material %s) com %s poderá causar danos ao bico" +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" 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." +msgstr "" +"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 "" +"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 "" +"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." +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." msgid "Automatic flow calibration using Micro Lidar" msgstr "Calibração automática de fluxo usando Micro Lidar" @@ -6701,13 +7401,19 @@ 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" +msgstr "" +"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." +msgstr "" +"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." +msgstr "" +"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." @@ -6785,8 +7491,19 @@ msgstr "Ler e aceitar" 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 termsand conditions.By clicking to agree to use your Bambu Lab device, you agree to abide by the Privacy Policyand 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." +msgid "" +"Thank you for purchasing a Bambu Lab device.Before using your Bambu Lab " +"device, please read the termsand conditions.By clicking to agree to use your " +"Bambu Lab device, you agree to abide by the Privacy Policyand 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." msgid "and" msgstr "e" @@ -6801,8 +7518,32 @@ msgid "Statement about User Experience Improvement Program" 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." -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." +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." +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." msgid "Statement on User Experience Improvement Plan" msgstr "Declaração sobre o Plano de Melhoria da Experiência do Usuário" @@ -6820,7 +7561,8 @@ 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." @@ -6837,23 +7579,35 @@ 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 timeplase. 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?" +msgid "" +"Prime tower is required for smooth timeplase. 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?" -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 "A Torre Prime é necessária para um timelapse suave. Pode haver falhas no modelo sem a torre prime. Deseja ativar 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?" +msgstr "" +"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" @@ -6864,18 +7618,35 @@ msgstr "" "Sim - Alterar essas configurações automaticamente\n" "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." -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." +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." +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." 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." -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." +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." +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." msgid "Are you sure you want to enable this option?" msgstr "Tem certeza de que deseja habilitar esta opção?" @@ -6889,8 +7660,13 @@ msgstr "" "A altura da camada é muito pequena.\n" "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." -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." +msgid "" +"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." msgid "Adjust to the set range automatically? \n" msgstr "Ajustar automaticamente à faixa definida? \n" @@ -6901,18 +7677,39 @@ msgstr "Ajustar" 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." -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." - -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." -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." +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." +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." 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\"." +"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 "" -"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\"." +"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\"." +msgstr "" +"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 "Line width" msgstr "Largura da linha" @@ -6950,8 +7747,15 @@ msgstr "Velocidade de outras camadas" 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" -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" +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" +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" msgid "Bridge" msgstr "Ponte" @@ -7001,16 +7805,20 @@ 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" @@ -7028,7 +7836,8 @@ 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 "Print chamber temperature" msgstr "Temperatura da câmara de impressão" @@ -7045,26 +7854,44 @@ msgstr "Temperatura do bico ao imprimir" 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" -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" +msgid "" +"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" 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" -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" +msgid "" +"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" 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" -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" +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 "" +"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" -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" +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 "" +"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" msgid "Volumetric speed limitation" msgstr "Limitação de fluxo volumétrico" @@ -7081,14 +7908,27 @@ msgstr "Ventilador de resfriamento da peça" 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" -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" +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" +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" 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" -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" +msgid "" +"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" msgid "Auxiliary part cooling fan" msgstr "Ventilador auxiliar de resfriamento da peça" @@ -7115,17 +7955,27 @@ 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" +#. TRN: First argument is parameter name, the second one is the value. +#, boost-format +msgid "Invalid value provided for parameter %1%: %2%" +msgstr "" + +msgid "G-code flavor is switched" +msgstr "" + msgid "Cooling Fan" msgstr "Ventilador de resfriamento" @@ -7212,7 +8062,8 @@ 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?" @@ -7223,8 +8074,12 @@ msgid "Detached" 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." -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." +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 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!" @@ -7246,10 +8101,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?" @@ -7265,7 +8122,8 @@ 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" @@ -7333,12 +8191,20 @@ msgid "Preset \"%1%\" contains the following unsaved changes:" 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:" -msgstr "O perfil \"%1%\" não é compatível com o novo perfil da impressora e contém as seguintes alterações não salvas:" +msgid "" +"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:" #, boost-format -msgid "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:" +msgid "" +"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:" #, boost-format msgid "You have changed some settings of preset \"%1%\". " @@ -7353,20 +8219,24 @@ 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 escolher transferir os valores modificados para o novo preset." +"Você pode salvar ou descartar os valores predefinidos que você modificou, ou " +"escolher transferir os valores modificados para o novo preset." msgid "You have previously modified your settings." 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." +"Você pode descartar os valores predefinidos que você modificou, ou escolher " +"transferir os valores modificados para o novo projeto." msgid "Extruders count" msgstr "Número de extrusoras" @@ -7383,21 +8253,29 @@ 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." -msgstr "Se ativo, este diálogo pode ser usado para transferir valores selecionados do perfil à esquerda para o da direita." +msgid "" +"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." msgid "Add File" msgstr "Adicionar arquivo" @@ -7458,7 +8336,8 @@ 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" @@ -7476,17 +8355,81 @@ msgstr "Nenhuma atualização disponível." msgid "The configuration is up to date." msgstr "A configuração está atualizada." +msgid "Obj file Import color" +msgstr "" + +msgid "Specify number of colors:" +msgstr "" + +#, c-format, boost-format +msgid "The color count should be in range [%d, %d]." +msgstr "" + +msgid "Recommended " +msgstr "" + +msgid "Current filament colors:" +msgstr "" + +msgid "Quick set:" +msgstr "" + +msgid "Color match" +msgstr "" + +msgid "Approximate color matching." +msgstr "" + +msgid "Append" +msgstr "" + +msgid "Add consumable extruder after existing extruders." +msgstr "" + +msgid "Reset mapped extruders." +msgstr "" + +msgid "Cluster colors" +msgstr "" + +msgid "Map Filament" +msgstr "" + +msgid "" +"Note:The color has been selected, you can choose OK \n" +" to continue or manually adjust it." +msgstr "" + +msgid "" +"Waring:The count of newly added and \n" +" current extruders exceeds 16." +msgstr "" + 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" @@ -7512,8 +8455,13 @@ msgstr "Recalcular" msgid "Flushing volumes for filament change" msgstr "Volumes de purga para troca de filamento" -msgid "Orca would re-calculate your flushing volumes everytime 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" +msgid "" +"Orca would re-calculate your flushing volumes everytime 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" msgid "Flushing volume (mm³) for each filament pair." msgstr "Volume de purga (mm³) para cada par de filamentos." @@ -7544,6 +8492,32 @@ msgstr "De" 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?" +msgstr "" + +msgid "" +"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 BambuStutio 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." +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?)" +msgstr "" + msgid "Bambu Network plug-in not detected." msgstr "Plug-in de Rede Bambu não detectado." @@ -7607,8 +8581,14 @@ msgstr "Shift+A" 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." -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." +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 "" +"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" @@ -7824,8 +8804,11 @@ 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." -msgstr "Clique em OK para atualizar o plug-in de rede quando o Orca Slicer for iniciado novamente." +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." #, c-format, boost-format msgid "A new Network plug-in(%s) available, Do you want to install it?" @@ -7882,11 +8865,18 @@ msgstr "Confirmar e Atualizar Bico" 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 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 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 "IP" msgstr "PI" @@ -7898,7 +8888,8 @@ 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." -msgstr "Passo 3: Pingue o endereço IP para verificar a perda de pacotes e a latência." +msgstr "" +"Passo 3: Pingue o endereço IP para verificar a perda de pacotes e a latência." msgid "Test" msgstr "Testar" @@ -7943,14 +8934,30 @@ msgstr "Falha na atualização" 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." -msgstr "Tem certeza de que deseja atualizar? Isso levará cerca de 10 minutos. Não desligue a energia enquanto a impressora estiver atualizando." +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." +msgstr "" +"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'." -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'." +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'." +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'." -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 "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." +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 "" +"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." msgid "Extension Board" msgstr "Mesa de Extensão" @@ -8008,7 +9015,9 @@ msgid "Copying of file %1% to %2% failed: %3%" msgstr "Falha ao copiar o arquivo %1% para %2%: %3%" msgid "Need to check the unsaved changes before configuration updates." -msgstr "É necessário verificar as alterações não salvas antes das atualizações de configuração." +msgstr "" +"É necessário verificar as alterações não salvas antes das atualizações de " +"configuração." msgid "Configuration package: " msgstr "Pacote de configuração: " @@ -8019,19 +9028,28 @@ msgstr " atualizado para " 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." -msgstr "Um objeto tem uma primeira camada vazia e não pode ser impresso. Por favor, corte a base ou habilite os suportes." +msgid "" +"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." #, 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" -msgstr "Talvez partes do objeto nessa altura sejam muito finas, ou o objeto tenha uma malha com falhas" +msgid "" +"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" msgid "No object can be printed. Maybe too small" msgstr "Nenhum objeto pode ser impresso. Talvez seja muito pequeno" @@ -8088,10 +9106,16 @@ 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%\". " +msgstr "" +"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" -msgstr "Espaçamento inválido fornecido para Flow::with_spacing(), verifique a altura da camada e a largura da extrusão." +msgid "" +"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." msgid "undefined error" msgstr "erro indefinido" @@ -8187,8 +9211,11 @@ 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." -msgstr "%1% está muito perto da área de exclusão, pode haver colisões durante a impressão." +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." #, boost-format msgid "%1% is too close to others, and collisions may be caused." @@ -8202,7 +9229,9 @@ msgid " is too close to others, there may be collisions when printing." 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." +msgstr "" +" está muito perto da área de exclusão, pode haver colisões durante a " +"impressão." msgid "Prime Tower" msgstr "Torre Prime" @@ -8213,67 +9242,126 @@ msgstr " está muito perto de outros, e colisões podem ocorrer.\n" msgid " is too close to exclusion area, and collisions will be caused.\n" 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" -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" +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 "" +"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." -msgstr "O modo suave do timelapse não é suportado quando a sequência \"por objeto\" está ativada." +msgid "" +"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." -msgid "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." +msgid "" +"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." -msgid "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." +msgid "" +"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." #, boost-format msgid "The object %1% exceeds the maximum build volume height." 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." -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." +msgid "" +"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." -msgid "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." +msgid "" +"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." 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 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 "" +"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 "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)." +msgid "" +"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)." -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." +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." -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." +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." 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." -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." +msgid "" +"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." 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" +msgstr "" +"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" -msgstr "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 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." -msgid "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." +msgid "" +"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." -msgid "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" +msgid "" +"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" msgid "Too small line width" msgstr "Largura de linha muito pequena" @@ -8281,66 +9369,118 @@ 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." +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." -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." +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." -msgid "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." +msgid "" +"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." -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." +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." 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." -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." +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." +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." -msgid "\"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 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." -msgstr "\"G92 E0\" foi encontrado em 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." +msgstr "" +"\"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" -msgstr "Definir a velocidade de jerk muito baixa pode levar a artefatos em superfícies curvas" +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" 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." +"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." 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." +"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." 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." +"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." 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" -"You can adjust the machine_max_acceleration_travel value in your printer's configuration to get higher speeds." +"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." +"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." msgid "Generating skirt & brim" msgstr "Gerando saia e borda" @@ -8360,8 +9500,15 @@ msgstr "Área de impressão" 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, ...\"" -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, ...\"" +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, ...\"" +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, ...\"" msgid "Bed custom texture" msgstr "Textura personalizada da mesa" @@ -8372,20 +9519,35 @@ 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." -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." +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." +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." msgid "layers" msgstr "camadas" -msgid "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" +msgid "" +"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" msgid "Printable height" msgstr "Altura de impressão" @@ -8397,7 +9559,9 @@ msgid "Preferred orientation" 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" +msgstr "" +"Orientar automaticamente os arquivos STL no eixo Z durante a importação " +"inicial" msgid "Printer preset names" msgstr "Nomes de presets da impressora" @@ -8406,25 +9570,44 @@ msgid "Use 3rd-party print host" msgstr "Usar host de impressão de terceiros" msgid "Allow controlling BambuLab's printer through 3rd party print hosts" -msgstr "Permitir o controle da impressora BambuLab por meio de hosts de impressão de terceiros" +msgstr "" +"Permitir o controle da impressora BambuLab por meio de hosts de impressão de " +"terceiros" 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/" -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/" +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/" +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/" msgid "Device UI" msgstr "Interface do dispositivo" -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" +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" 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." -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." +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." +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." msgid "Name of the printer" msgstr "Nome da impressora" @@ -8432,8 +9615,14 @@ msgstr "Nome da impressora" 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." -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." +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." +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." msgid "User" msgstr "Usuário" @@ -8444,8 +9633,14 @@ msgstr "Senha" msgid "Ignore HTTPS certificate revocation checks" 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." -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 certificados autoassinados se a conexão falhar." +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." +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 " +"certificados autoassinados se a conexão falhar." msgid "Names of presets related to the physical printer" msgstr "Nomes dos presets relacionados à impressora física" @@ -8463,13 +9658,23 @@ msgid "Avoid crossing wall" msgstr "Evitar perímetros" msgid "Detour and avoid to travel across wall which may cause blob on surface" -msgstr "Desvio e evite viajar através do perímetro que pode causar irregularidade na superfície" +msgstr "" +"Desvio e evite viajar através do perímetro que pode causar irregularidade na " +"superfície" 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" -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" +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" +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" msgid "mm or %" msgstr "mm ou %" @@ -8477,20 +9682,36 @@ msgstr "mm ou %" 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" -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)" +msgid "" +"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)" 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 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 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" -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 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" -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" +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 "" +"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" msgid "Initial layer" msgstr "Primeira camada" @@ -8498,17 +9719,33 @@ msgstr "Primeira camada" 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" -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)" +msgid "" +"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)" -msgid "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" +msgid "" +"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" -msgid "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" +msgid "" +"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" -msgid "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" +msgid "" +"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" msgid "Bed types supported by the printer" msgstr "Tipos de mesa suportadas pela impressora" @@ -8537,31 +9774,53 @@ msgstr "Este código G é inserido em cada mudança de camada antes de levantar 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" -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" +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" +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" 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 determained 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" +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 determained 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" msgid "Apply gap fill" msgstr "Preenchimento de vã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" +"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 superior, inferior e interna\n" -"2. Superfícies superior e inferior: Aplica preenchimento de s apenas às superfícies superior e inferior\n" +"1. Em todos os lugares: Aplica preenchimento de s às superfícies sólidas " +"superior, inferior e interna\n" +"2. Superfícies superior e inferior: Aplica preenchimento de s apenas às " +"superfícies superior e inferior\n" "3. Em nenhum lugar: Desativa o preenchimento de s\n" msgid "Everywhere" @@ -8576,96 +9835,170 @@ 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" -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 "" +"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 "" +"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 indicides 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 "" +"Force cooling fan to be specific speed when overhang degree of printed part " +"exceeds this value. Expressed as percentage which indicides 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 "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." +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." 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%." +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" -msgstr "Diminua ligeiramente este valor (por exemplo, 0.9) para reduzir a quantidade de material para ponte, para melhorar a flacidez" +msgid "" +"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" 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." -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." +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." +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." 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" -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" +msgid "" +"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" msgid "Bottom surface flow ratio" msgstr "Fluxo em superfície inferior" 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" +msgstr "" +"Este fator afeta a quantidade de material para o preenchimento sólido " +"inferior" 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.\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" +"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" -msgstr "Use apenas um perímetro em superfície superior, para dar mais espaço ao padrão de preenchimento superior" +msgid "" +"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" 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" -"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." +"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." 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" -msgstr "Use apenas um perímetro na primeira camada, para dar mais espaço ao padrão de preenchimento inferior" +msgid "" +"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" 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. " -msgstr "Crie caminhos de perímetro adicionais em overhangs íngremes e áreas onde pontes não podem ser ancoradas. " +msgid "" +"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. " msgid "Reverse on odd" msgstr "Inverter em ímpares" @@ -8674,13 +10007,19 @@ msgid "Overhang reversal" msgstr "Reversão de suspensão" 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 "Reverse only internal perimeters" msgstr "Inverter apenas os perímetros internos" @@ -8688,28 +10027,45 @@ msgstr "Inverter apenas os perímetros internos" 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" +"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" "\n" -"For this setting to be the most effective, it is recomended 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 recomended 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 ." 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" @@ -8726,10 +10082,12 @@ 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 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" +"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 "Classic mode" @@ -8742,13 +10100,19 @@ msgid "Slow down for overhang" 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" +msgstr "" +"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" -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)" +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)" msgid "mm/s or %" msgstr "mm/s ou %" @@ -8765,8 +10129,12 @@ msgstr "mm/s" msgid "Internal" msgstr "Interno" -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 "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 "" +"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%." msgid "Brim width" msgstr "Largura da borda" @@ -8777,14 +10145,23 @@ msgstr "Distância do modelo até a linha da borda mais externa" 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 analysed 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." +msgid "" +"This controls the generation of the brim at outer and/or inner side of " +"models. Auto means the brim width is analysed 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." 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" -msgstr "Um espaço entre a linha da borda mais interna e o objeto pode facilitar a remoção da borda" +msgid "" +"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" msgid "Brim ears" msgstr "Orelhas da borda" @@ -8808,10 +10185,12 @@ msgid "Brim ear detection radius" msgstr "Raio de detecção da orelha da borda" 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 "Compatible machine" @@ -8850,14 +10229,27 @@ msgstr "Como lista de objetos" 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" -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" +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" +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" msgid "Normal printing" msgstr "Impressão normal" -msgid "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" +msgid "" +"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" msgid "mm/s²" msgstr "mm/s²" @@ -8878,13 +10270,18 @@ 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" -msgstr "Velocidade do ventilador de exaustão durante a impressão. Esta velocidade substituirá a velocidade no gcode personalizado do filamento" +msgid "" +"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" msgid "Speed of exhaust fan after printing completes" msgstr "Velocidade do ventilador de exaustão após a conclusão da impressão" @@ -8892,58 +10289,107 @@ msgstr "Velocidade do ventilador de exaustão após a conclusão da impressão" 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" -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" +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" +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" 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" -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" +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" +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" msgid "Thick bridges" msgstr "Ponte grossa" -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." -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." +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." +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." 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." -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." +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." +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." 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 behaviour and works well in most cases.\n" +"Disabled - Disables this option. This is the default behaviour and works " +"well in most cases.\n" "\n" -"Limited filtering - Creates internal bridges on heavily slanted surfaces, while avoiding creating uncessesary interal bridges. This works well for most difficult models.\n" +"Limited filtering - Creates internal bridges on heavily slanted surfaces, " +"while avoiding creating uncessesary interal 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 unecessary 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 unecessary 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 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" "\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 não sólido é 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 "Disabled" msgstr "Desativado" @@ -8957,8 +10403,14 @@ msgstr "Sem filtragem" 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." -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." +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." +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." msgid "End G-code" msgstr "G-code de finalização" @@ -8969,8 +10421,12 @@ msgstr "G-code de finalização ao terminar a impressão completa" 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" -msgstr "Insira o G-code entre objetos. Este parâmetro só terá efeito quando você imprimir seus modelos objeto por objeto" +msgid "" +"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" msgid "End G-code when finish the printing of this filament" msgstr "G-code de finalização ao terminar a impressão deste filamento" @@ -8979,18 +10435,25 @@ 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" +"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" "O valor padrão é Todos." msgid "Critical Only" @@ -9033,31 +10496,57 @@ msgid "Bottom surface pattern" 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" +msgstr "" +"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." -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." +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." +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." -msgid "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." +msgid "" +"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." -msgid "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." +msgid "" +"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." 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." -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." +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." +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." msgid "Small perimeters threshold" msgstr "Limiar de pequenos perímetros" -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" +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" msgid "Walls printing order" msgstr "Ordem de impressão dos perímetros" @@ -9065,21 +10554,49 @@ 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 neighouring 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 neighouring 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 recomended 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 recomended 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" " " @@ -9096,27 +10613,45 @@ 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 slighly 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." +"Printing infill first may help with extreme overhangs as the walls have the " +"neighbouring infill to adhere to. However, the infill will slighly 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 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 sprial 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." @@ -9129,17 +10664,29 @@ msgstr "Sentido horário" 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." -msgstr "Distância da ponta do bico ao tubo inferior. Usado para evitar colisões na impressão por objeto." +msgid "" +"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." 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 "" +"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 printing." -msgstr "Raio de folga ao redor do extrusor. 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" @@ -9150,26 +10697,69 @@ msgstr "Altura da ponta do bico." 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." -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á limites, permitindo a sondagem em toda a mesa." +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." +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á " +"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." -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." +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." +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." 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." -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." +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 "" +"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." -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." +msgid "" +"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." msgid "Extruder Color" msgstr "Cor do extrusor" @@ -9183,32 +10773,79 @@ msgstr "Offset da Extrusora" 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" -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" +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" +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" msgid "Enable pressure advance" msgstr "Habilitar Pressure advance" -msgid "Enable pressure advance, auto calibration result will be overwriten once enabled." -msgstr "Habilitar Pressure advance, o resultado da calibração automática será sobrescrito uma vez habilitado." +msgid "" +"Enable pressure advance, auto calibration result will be overwriten once " +"enabled." +msgstr "" +"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 "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." +msgid "" +"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." msgid "Keep fan always on" msgstr "Manter o ventilador sempre ligado" -msgid "If enable this setting, part cooling fan will never be stoped and will run at least at minimum speed to reduce the frequency of starting and stoping" -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" +msgid "" +"If enable this setting, part cooling fan will never be stoped and will run " +"at least at minimum speed to reduce the frequency of starting and stoping" +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" + +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" +"\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 " +"artefacts that appear like z banding \n" +"3. To avoid printing at speeds which cause VFAs (fine artefacts) on the " +"external walls\n" +"\n" +msgstr "" 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" -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" +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" +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" msgid "Default color" msgstr "Cor padrão" @@ -9225,11 +10862,22 @@ msgstr "Você pode colocar suas observações sobre o filamento aqui." 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." -msgstr "HRC mínimo do bico necessário para imprimir o filamento. Zero significa que não há verificação do HRC do bico." +msgid "" +"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." -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" -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" +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" +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" msgid "mm³/s" msgstr "mm³/s" @@ -9238,27 +10886,42 @@ msgid "Filament load time" msgstr "Tempo de carga do filamento" 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" +msgstr "" +"Tempo para carregar novo filamento ao trocar de filamento. Apenas para " +"estatísticas" msgid "Filament unload time" msgstr "Tempo de descarga do filamento" 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" +msgstr "" +"Tempo para descarregar o filamento antigo ao trocar de filamento. Apenas " +"para estatísticas" -msgid "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" +msgid "" +"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" msgid "Shrinkage" msgstr "Retração" #, 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 "Loading speed" msgstr "Velocidade de carregamento" @@ -9275,62 +10938,121 @@ msgstr "Velocidade usada no início da fase de carregamento." 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)." -msgstr "Velocidade usada para descarregar o filamento na Torre Prime (não afeta a parte inicial do descarregamento logo após o moldeamento)." +msgid "" +"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)." 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." -msgstr "Velocidade usada para descarregar a ponta do filamento imediatamente após o moldeamento." +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." 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." -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." +msgid "" +"Time to wait after the filament is unloaded. May help to get reliable " +"toolchanges with flexible materials that may need more time to shrink to " +"original dimensions." +msgstr "" +"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." -msgstr "O filamento é resfriado movendo-se para frente e para trás nos tubos de resfriamento. Especifique o número desejado desses movimentos." +msgid "" +"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." msgid "Speed of the first cooling move" msgstr "Velocidade do primeiro movimento de resfriamento" msgid "Cooling moves are gradually accelerating beginning at this speed." -msgstr "Os movimentos de resfriamento estão gradualmente acelerando a partir desta velocidade." +msgstr "" +"Os movimentos de resfriamento estão gradualmente acelerando a partir desta " +"velocidade." 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." -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." +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." +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." 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." +msgstr "" +"Os movimentos de resfriamento estão gradualmente acelerando em direção a " +"esta velocidade." -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 "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 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." msgid "Ramming parameters" msgstr "Parâmetros de moldeamento" -msgid "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." +msgid "" +"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." -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 "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." +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 "" +"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." msgid "Enable ramming for multitool setups" msgstr "Habilitar moldeamento para configurações de multi-extrusora" -msgid "Perform ramming when using multitool 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." +msgid "" +"Perform ramming when using multitool 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." msgid "Multitool ramming volume" msgstr "Volume de moldeamento multi-extrusora" @@ -9359,20 +11081,32 @@ 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" -msgstr "O material solúvel é comumente usado para imprimir suporte e interface de suporte" +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" msgid "Support material" msgstr "Material de suporte" -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" +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" 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 cloggings." -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." +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 cloggings." +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." msgid "Price" msgstr "Preço" @@ -9395,14 +11129,22 @@ msgstr "(Indefinido)" msgid "Sparse infill direction" msgstr "Direção do preenchimento" -msgid "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" +msgid "" +"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" 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" -msgstr "Ângulo para padrão de preenchimento sólido, que controla a direção inicial ou principal da linha" +msgid "" +"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" msgid "Rotate solid infill direction" msgstr "Rotaciona a direção do preenchimento sólido" @@ -9414,8 +11156,13 @@ msgid "Sparse infill density" msgstr "Densidade do preenchimento" #, 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" -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" +msgid "" +"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" msgid "Sparse infill pattern" msgstr "Padrão de preenchimento" @@ -9460,11 +11207,28 @@ msgid "Sparse infill anchor length" msgstr "Comp. 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 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." +"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 "" -"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." +"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." msgid "0 (no open anchors)" msgstr "0 (sem ancoras abertas)" @@ -9476,11 +11240,27 @@ msgid "Maximum length of the infill anchor" msgstr "Comp. máx. da âncora de preench." 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." +"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 "" -"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)" @@ -9494,26 +11274,51 @@ msgstr "Aceleração das paredes internas" 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" -msgstr "Aceleração do preenchimento da superfície superior. Usar um valor menor pode melhorar a qualidade da superfície superior" +msgid "" +"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." -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." +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." +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." 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." -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." +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." +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." -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." -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." +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." +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." -msgid "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" +msgid "" +"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" msgid "Enable accel_to_decel" msgstr "Habilitar accel_to_decel" @@ -9525,8 +11330,10 @@ 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" @@ -9546,14 +11353,22 @@ msgstr "Jerk na primeira camada" 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." -msgstr "Largura da linha da primeira camada. Se expresso como uma %, será calculado sobre o diâmetro do bico." +msgid "" +"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." 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 adhension" -msgstr "Altura da primeira camada. Tornar a altura da primeira camada ligeiramente espessa pode melhorar a adesão à mesa" +msgid "" +"Height of initial layer. Making initial layer height to be thick slightly " +"can improve build plate adhension" +msgstr "" +"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" @@ -9573,35 +11388,63 @@ msgstr "Velocidade de deslocamento da primeira camada" msgid "Number of slow layers" msgstr "Número de camadas lentas" -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." +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." 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." -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." +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." +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." + +msgid "layer" +msgstr "" 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" +"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 overriden 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" +"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" -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" @@ -9615,14 +11458,22 @@ msgstr "Todas as paredes" msgid "Fuzzy skin thickness" msgstr "Espessura da textura fuzzy" -msgid "The width within which to jitter. It's adversed 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" +msgid "" +"The width within which to jitter. It's adversed 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" msgid "Fuzzy skin point distance" msgstr "Distância do ponto da textura fuzzy" -msgid "The average diatance between the random points introducded on each line segment" -msgstr "A distância média entre os pontos aleatórios introduzidos em cada segmento de linha" +msgid "" +"The average diatance between the random points introducded on each line " +"segment" +msgstr "" +"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" @@ -9639,44 +11490,75 @@ msgstr "Camadas e Perímetros" msgid "Filter out gaps smaller than the threshold specified" msgstr "Filtrar vazios menores que o limite especificado" -msgid "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" +msgid "" +"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" 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." -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." +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 "" +"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 recomended 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 recomended 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" +msgstr "" +"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" -msgstr "Habilitar isso para ativar a câmera na impressora para verificar a qualidade da primeira camada" +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" 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" -msgstr "O material metálico do bico. Isso determina a resistência ao desgaste do bico e que tipo de filamento pode ser impresso" +msgid "" +"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" msgid "Undefine" msgstr "Não definido" @@ -9693,8 +11575,12 @@ msgstr "Latão" msgid "Nozzle HRC" msgstr "Bico HRC" -msgid "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." +msgid "" +"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." msgid "HRC" msgstr "RH" @@ -9721,20 +11607,36 @@ msgid "Best object position" 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." - -msgid "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)." +msgstr "" +"Melhor posição de arranjo automático na faixa [0,1] em relação ao formato da " +"mesa." 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 comands 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" +"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)." + +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 comands 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 "Only overhangs" @@ -9747,12 +11649,18 @@ 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" @@ -9771,7 +11679,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" @@ -9781,7 +11690,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" @@ -9802,8 +11712,17 @@ msgstr "Ative esta opção se quiser usar vários tipos de mesa" 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." -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." +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." +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." msgid "Exclude objects" msgstr "Excluir objetos" @@ -9814,34 +11733,68 @@ msgstr "Ative esta opção para adicionar o comando EXCLUDE OBJECT no g-code" msgid "Verbose G-code" 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." -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." +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." +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." 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." -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." +msgid "" +"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." msgid "Filament to print internal sparse infill." msgstr "Filamento para imprimir preenchimento interno não sólido." -msgid "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." +msgid "" +"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." 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." -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." +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." +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." 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, minimising 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" +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, minimising 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" msgid "Speed of internal sparse infill" msgstr "Velocidade do preenchimento" @@ -9849,26 +11802,40 @@ msgstr "Velocidade do preenchimento" 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" -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" +msgid "" +"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" 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" 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." +msgstr "" +"Profundidade de entrelaçamento de uma região segmentada. Zero desativa essa " +"funcionalidade." 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" -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" +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" +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" msgid "No ironing" msgstr "Desativado" @@ -9891,8 +11858,13 @@ msgstr "O padrão que será usado ao passar a ferro" 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" -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" +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 "" +"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" @@ -9909,17 +11881,26 @@ msgstr "Velocidade de impressão das linhas do passar ferro" 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." -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." +msgid "" +"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." 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" -msgstr "Se a máquina suporta o modo silencioso, no qual a máquina usa uma aceleração mais baixa para imprimir" +msgid "" +"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" msgid "Emit limits to G-code" msgstr "Emitir limites para o G-code" @@ -9934,8 +11915,12 @@ msgstr "" "Se ativado, os limites da máquina serão emitidos para o arquivo de G-code.\n" "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" -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" +msgid "" +"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" msgid "This G-code will be used as a custom code" msgstr "Este G-code será usado como um código personalizado" @@ -9949,8 +11934,16 @@ msgstr "Habilitar compensação de fluxo para áreas de preenchimento pequenas" 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\"" -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\"" +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\"" +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\"" msgid "Maximum speed X" msgstr "Velocidade máxima X" @@ -10052,44 +12045,82 @@ 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" -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" +msgid "" +"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" 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" -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" +msgid "" +"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" 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" @@ -10102,15 +12133,22 @@ 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" +"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" +"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" +"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" @@ -10118,24 +12156,40 @@ 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" -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" +msgid "" +"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" 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." -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 "" +"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 "Nozzle diameter" msgstr "Diâmetro do bico" @@ -10146,14 +12200,22 @@ msgstr "Diâmetro do bico" 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." -msgstr "Você pode colocar aqui suas notas pessoais. Este texto será adicionado aos comentários do cabeçalho do G-code." +msgid "" +"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." 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." -msgstr "O Orca Slicer pode carregar arquivos de código G para um hospedeiro de impressora. Este campo deve conter o tipo de hospedeiro." +msgid "" +"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." msgid "Nozzle volume" msgstr "Volume do bico" @@ -10165,43 +12227,74 @@ 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" msgid "Length of the cooling tube to limit space for cooling moves inside it." -msgstr "Comprimento do tubo de resfriamento para limitar o espaço para movimentos de resfriamento dentro dele." +msgstr "" +"Comprimento do tubo de resfriamento para limitar o espaço para movimentos de " +"resfriamento dentro dele." 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." -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." +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." +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." 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." -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." +msgid "" +"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." 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." -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." +msgid "" +"When set to zero, the distance the filament is moved from parking position " +"during load is exactly the same as it was moved back during unload. When " +"positive, it is loaded further, if negative, the loading move is shorter " +"than unloading." +msgstr "" +"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" -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" +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" +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" msgid "Filename format" msgstr "Formato do nome do arquivo" @@ -10218,14 +12311,24 @@ msgstr "Modifica a geometria para imprimir overhangs sem suporte." 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." -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." +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." +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." 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." -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." +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." +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." msgid "mm²" msgstr "mm2" @@ -10234,11 +12337,20 @@ msgid "Detect overhang wall" 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." -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." +msgid "" +"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." -msgid "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." +msgid "" +"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." msgid "Speed of inner wall" msgstr "Velocidade do perímetro interno" @@ -10250,20 +12362,37 @@ 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" +"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." -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." +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." +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." msgid "Printer notes" msgstr "Notas da impressora" @@ -10293,28 +12422,47 @@ msgid "Initial layer expansion" 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" +msgstr "" +"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" -msgstr "O objeto será elevado por este número de camadas de suporte. Use esta função para evitar o enrugamento ao imprimir ABS" +msgid "" +"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" -msgid "G-code path is genereated after simplifing 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" +msgid "" +"G-code path is genereated after simplifing 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" msgid "Travel distance threshold" msgstr "Limiar de distância de deslocamento" -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" +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" 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" -msgstr "O comprimento da retração rápida antes da limpeza, em relação ao comprimento da retração" +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" msgid "Retract when change layer" msgstr "Retrair ao mudar de camada" @@ -10325,38 +12473,68 @@ msgstr "Forçar uma retração ao mudar de camada" 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" -msgstr "Alguma quantidade de material no extrusor é puxada para trás para evitar oozing durante viagens longas. Defina zero para desativar a retração" +msgid "" +"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" 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." -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." +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." +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." msgid "Retraction distance when cut" msgstr "Distância de retração ao cortar" -msgid "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" +msgid "" +"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" msgid "Z hop when retract" msgstr "Z hop ao retrair" -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" -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" +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" +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" msgid "Z hop lower boundary" msgstr "Limite inferior do Z hop" -msgid "Z hop will only come into effect when Z is above this value and is below the parameter: \"Z hop upper boundary\"" -msgstr "O Z hop só entrará em vigor quando Z estiver acima deste valor e abaixo do parâmetro: \"Limite superior do Z hop\"" +msgid "" +"Z hop will only come into effect when Z is above this value and is below the " +"parameter: \"Z hop upper boundary\"" +msgstr "" +"O Z hop só entrará em vigor quando Z estiver acima deste valor e abaixo do " +"parâmetro: \"Limite superior do Z hop\"" 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" -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" +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 "" +"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 "Tipo de Z hop" @@ -10370,20 +12548,32 @@ msgstr "Espiral" 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." -msgstr "Se você definir isso como um valor positivo, a elevação de Z só ocorrerá acima do Z absoluto especificado." +msgid "" +"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." 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." -msgstr "Se você definir isso como um valor positivo, a elevação de Z só ocorrerá abaixo do Z absoluto especificado." +msgid "" +"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." 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)." -msgstr "Forçar Z Hop. Essa configuração é impactada pelas configurações acima (Somente elevar Z acima/abaixo)" +msgid "" +"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)" msgid "All Surfaces" msgstr "Todas as superfícies" @@ -10400,11 +12590,20 @@ msgstr "Parte superior e inferior" 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." -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." +msgid "" +"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." -msgid "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." +msgid "" +"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." msgid "Retraction Speed" msgstr "Velocidade de retração" @@ -10415,14 +12614,23 @@ msgstr "Velocidade das retratações" msgid "Deretraction Speed" msgstr "Velocidade de desretração" -msgid "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" +msgid "" +"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" 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." -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." +msgid "" +"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." msgid "Show auto-calibration marks" msgstr "Mostrar marcas de autocalibração automática" @@ -10430,8 +12638,11 @@ 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" -msgstr "Desativar a geração do M73: Definir tempo restante de impressão no código final" +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" msgid "Seam position" msgstr "Posição da costura" @@ -10454,53 +12665,100 @@ msgstr "Aleatório" 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." -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." +msgid "" +"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." 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)" msgid "Use scarf joint to minimize seam visibility and increase seam strength." -msgstr "Use a Costura Scarf para minimizar a visibilidade da costura e aumentar a resistência da costura." +msgstr "" +"Use a Costura Scarf para minimizar a visibilidade da costura e aumentar a " +"resistência da costura." 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." -msgstr "Aplique a Costura Scarf apenas em perímetros suaves onde costuras tradicionais não escondem as costuras em cantos agudos de forma eficaz." +msgid "" +"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." 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." -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." +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." +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." 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%." -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%." +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%." +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%." msgid "Scarf joint flow ratio" msgstr "Fluxo da Costura Scarf" @@ -10513,10 +12771,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" @@ -10527,8 +12787,12 @@ msgstr "A junta Scarf se estende por todo o comprimento do perímetro." msgid "Scarf length" msgstr "Comprimento da Costura Scarf" -msgid "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." +msgid "" +"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." msgid "Scarf steps" msgstr "Passos da junta Scarf" @@ -10545,32 +12809,64 @@ msgstr "Usar costura Scarf em paredes internas também." 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." -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." +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." +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." 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." -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." +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 "" +"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." msgid "Wipe before external loop" msgstr "Limpeza antes do loop externo" msgid "" -"To minimise visibility of potential overextrusion at the start of an external perimeter when printing with Outer/Inner or Inner/Outer/Inner wall print order, the deretraction 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 minimise visibility of potential overextrusion at the start of an " +"external perimeter when printing with Outer/Inner or Inner/Outer/Inner wall " +"print order, the deretraction 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 deretraction 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 deretraction 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%" -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%" +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%" +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%" msgid "Skirt distance" msgstr "Distância da saia" @@ -10588,21 +12884,29 @@ 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" "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" @@ -10620,52 +12924,103 @@ msgid "Skirt speed" 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." +msgstr "" +"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." +"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 "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" +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 "" +"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" -msgid "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" +msgid "" +"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" -msgid "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." +msgid "" +"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." 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" +msgstr "" +"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" -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" +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 "" +"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 smoothes out X and Y moves as wellresulting 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" +msgid "" +"Smooth Spiral smoothes out X and Y moves as wellresulting 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" 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" -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" +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 "" +"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." -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." +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." +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." msgid "Traditional" msgstr "Tradicional" @@ -10691,8 +13046,18 @@ msgstr "Use um único bico para imprimir múltiplos filamentos" 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." -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." +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 "" +"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" @@ -10706,26 +13071,49 @@ msgstr "Ativar moldeamento de ponta de filamento" 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." -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." +msgid "" +"If enabled, the wipe tower will not be printed on layers with no " +"toolchanges. On layers with a toolchange, extruder will travel downward to " +"print the wipe tower. User is responsible for ensuring there is no collision " +"with the print." +msgstr "" +"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." -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." +msgid "" +"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." 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." -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." +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." +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." 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." -msgstr "Use \"Par-impar\" para modelos de avião 3DLabPrint. Use \"Fechar buracos\" para fechar todos os buracos no modelo." +msgid "" +"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." msgid "Regular" msgstr "Padrão" @@ -10739,8 +13127,16 @@ msgstr "Fechar buracos" 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)." -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)." +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 "" +"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" @@ -10748,8 +13144,14 @@ msgstr "Ativar suporte" 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" -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) 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)" @@ -10773,7 +13175,8 @@ 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" @@ -10784,8 +13187,12 @@ 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." -msgstr "Crie suporte apenas para regiões críticas, incluindo cauda afiada, balanço, 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." msgid "Remove small overhangs" msgstr "Remover pequenos overhangs" @@ -10808,29 +13215,47 @@ msgstr "A diferença z entre a interface inferior de suporte e o objeto" 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" -msgstr "Filamento para imprimir Jangada e Suporte. \"Padrão\" significa nenhum filamento específico para Suporte e o filamento atual será usado" +msgid "" +"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" 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." -msgstr "Evite usar o filamento da interface de suporte para imprimir a base, se possível." +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." -msgid "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." +msgid "" +"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." 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." -msgstr "Cubra a camada de contato superior dos suportes com loops. Desativado por padrão." +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." 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" -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" +msgid "" +"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" msgid "Top interface layers" msgstr "Camadas de interface superior" @@ -10857,7 +13282,8 @@ 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" @@ -10877,8 +13303,14 @@ msgstr "Oco" 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" -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" +msgid "" +"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" msgid "Rectilinear Interlaced" msgstr "Reticulado Interligado" @@ -10899,11 +13331,22 @@ 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 "Snug" msgstr "Ajustado" @@ -10923,52 +13366,97 @@ msgstr "Orgânico" 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." -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." +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." +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." msgid "Threshold angle" msgstr "Ângulo de limite" -msgid "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 "" +"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 "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." -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." +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." +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." 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." -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." +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." +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." msgid "Tree support branch distance" msgstr "Distância entre ramificações" -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." +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." 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." -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." +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." +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." 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 " -msgstr "Ao ativar essa opção, a altura da camada de suporte de árvore, exceto a primeira, será calculada automaticamente " +msgid "" +"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 " msgid "Auto brim width" msgstr "Largura de borda automática" -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" +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" msgid "Tree support brim width" msgstr "Largura da borda de suporte de árvore" @@ -10994,15 +13482,29 @@ msgid "Branch Diameter Angle" 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." -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." +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." +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." 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." -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." +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." +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." msgid "Support wall loops" msgstr "Perímetros de suporte" @@ -11013,24 +13515,44 @@ msgstr "Esta configuração especifica a contagem de paredes ao redor do suporte 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" -msgstr "Essa configuração especifica se deve adicionar preenchimento dentro de grandes cavidades do suporte de árvore" +msgid "" +"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" msgid "Activate temperature control" msgstr "Ativar controle de temperatura" 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 "Chamber temperature" msgstr "Temperatura da câmara" -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" -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" +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" +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" msgid "Nozzle temperature for layers after the initial one" msgstr "Temperatura do bico para camadas após a inicial" @@ -11038,17 +13560,30 @@ msgstr "Temperatura do bico para camadas após a inicial" 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" -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" +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" +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" -msgid "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" +msgid "" +"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" 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." -msgstr "Largura da linha para superfícies superiores. Se expressa em %, será calculada sobre o diâmetro do bico." +msgid "" +"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." msgid "Speed of top surface infill which is solid" msgstr "Velocidade de preenchimento da superfície superior, que é sólida" @@ -11056,8 +13591,15 @@ msgstr "Velocidade de preenchimento da superfície superior, que é sólida" 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" -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" +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" +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" msgid "Top solid layers" msgstr "Camadas sólidas superiores" @@ -11065,8 +13607,18 @@ msgstr "Camadas sólidas superiores" 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 determained 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" +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 determained 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" msgid "Speed of travel which is faster and without extrusion" msgstr "Velocidade de deslocamento mais rápida e sem extrusão" @@ -11074,27 +13626,47 @@ msgstr "Velocidade de deslocamento mais rápida e sem extrusão" 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" -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" +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 "" +"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 "" -"Discribe how long the nozzle will move along the last path when retracting. \n" +"Discribe 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." -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." +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 "" +"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" @@ -11102,8 +13674,12 @@ msgstr "Volumes de purga" 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." -msgstr "Os volumes de purga reais são iguais ao multiplicador de purga multiplicado pelos volumes de purga na tabela." +msgid "" +"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." msgid "Prime volume" msgstr "Volume de material" @@ -11123,8 +13699,12 @@ msgstr "Ângulo de rotação da Torre Prime em relação ao eixo x." 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." -msgstr "Ângulo no ápice do cone usado para estabilizar a Torre Prime. Um ângulo maior significa uma base mais larga." +msgid "" +"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." msgid "Wipe tower purge lines spacing" msgstr "Espaçamento das linhas de purga da Torre Prime" @@ -11136,46 +13716,98 @@ 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." +"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 " +"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" +"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" "\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 "Wipe tower extruder" msgstr "Extrusora da Torre Prime" -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)." -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)." +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)." +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)." 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." -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." +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." +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." -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." -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á efeito, a menos que a Torre Prime esteja ativa." +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." +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á " +"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." -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." +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 "" +"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." msgid "Maximal bridging distance" msgstr "Distância máxima de ponte" @@ -11186,23 +13818,42 @@ msgstr "Distância máxima entre suportes em seções de preenchimento não sól msgid "X-Y hole compensation" 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" -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" +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" +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" 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" -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" +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" +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" 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" @@ -11211,11 +13862,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 leway 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 leway 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" @@ -11227,23 +13882,45 @@ msgstr "Girar o polifuro a cada camada." 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, ...\"" -msgstr "Tamanhos das imagens a serem armazenados em arquivos .gcode e .sl1 / .sl1s, no seguinte formato: \"XxY, XxY, ...\"" +msgid "" +"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, ...\"" 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" -msgstr "Formato das miniaturas de G-code: PNG para melhor qualidade, JPG para menor tamanho, QOI para firmware de baixa memória" +msgid "" +"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" 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 unckecked (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" +msgid "" +"Relative extrusion is recommended when using \"label_objects\" option.Some " +"extruders work better with this option unckecked (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" -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" -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 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" @@ -11254,62 +13931,140 @@ msgstr "Arachne" 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" -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" +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" +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" 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" -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" +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" +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" 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" -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" +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" +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" 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" -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" +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" +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" 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" -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" +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" +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" 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 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 visibile 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 visibile 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." -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." +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." +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." 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" -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" +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 "" +"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 defaultly." -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." +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 defaultly." +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." msgid "invalid value " msgstr "valor inválido " @@ -11333,13 +14088,18 @@ msgid "No check" 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." +msgstr "" +"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" -msgstr "Eleve o objeto acima da mesa quando estiver parcialmente abaixo. Desativado por padrão" +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" msgid "Orient Options" msgstr "Opções de Orientação" @@ -11359,8 +14119,14 @@ msgstr "Ângulo de rotação ao redor do eixo Y em graus." 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." -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." +msgid "" +"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." msgid "Load custom gcode" msgstr "Carregar gcode personalizado" @@ -11374,11 +14140,23 @@ msgstr "Z-hop atual" 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 PrusaSlicer 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." +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 " +"PrusaSlicer 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." -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 PrusaSlicer deretracts 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." +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 " +"PrusaSlicer deretracts 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." msgid "Extra deretraction" msgstr "Desretração extra" @@ -11395,8 +14173,12 @@ 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." -msgstr "Específico para impressão sequencial. Índice base zero do objeto atualmente impresso." +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." msgid "Has wipe tower" msgstr "Tem Torre Prime" @@ -11407,26 +14189,36 @@ 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." -msgstr "Índice base zero da primeira extrusora utilizada na impressão. Mesmo que ferramenta_inicial." +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." msgid "Initial tool" msgstr "Ferramenta inicial" -msgid "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." +msgid "" +"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." msgid "Is extruder used?" msgstr "Extrusora utilizada?" msgid "Vector of bools stating whether a given extruder is used in the print." -msgstr "Vetor de booleanos indicando se uma dada extrusora é utilizada na impressão." +msgstr "" +"Vetor de booleanos indicando se uma dada extrusora é utilizada na impressão." 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" @@ -11443,14 +14235,22 @@ msgstr "Volume total de filamento usado durante toda a impressão." msgid "Weight per extruder" msgstr "Peso por extrusora" -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." +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." msgid "Total weight" msgstr "Peso total" -msgid "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." +msgid "" +"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." msgid "Total layer count" msgstr "Total de camadas" @@ -11468,16 +14268,22 @@ msgid "Number of instances" 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." +msgstr "" +"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" +"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" "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" +"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" "Exemplo: 'x:100% y:50% z:100'." msgid "Input filename without extension" @@ -11486,17 +14292,27 @@ 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." -msgstr "O vetor tem dois elementos: dimensão x e y da caixa delimitadora. Valores em mm." +msgid "" +"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." 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)." -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)." +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)." +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)." msgid "Bottom-left corner of first layer bounding box" msgstr "Canto inferior esquerdo da caixa delimitadora da primeira camada" @@ -11540,8 +14356,12 @@ msgstr "Nome do perfil de impressão usado para fatiar." 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." -msgstr "Nomes dos perfis de filamento usados para fatiar. A variável é um vetor contendo um nome para cada extrusora." +msgid "" +"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." msgid "Printer preset name" msgstr "Nome do perfil de impressora" @@ -11559,13 +14379,19 @@ msgid "Layer number" 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)." +msgstr "" +"Í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." -msgstr "Altura da camada atual acima da mesa de impressão, medida até o topo da camada." +msgid "" +"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." msgid "Maximal layer z" msgstr "Altura máxima da camada z" @@ -11610,8 +14436,12 @@ msgid "large overhangs" msgstr "overhangs grandes" #, c-format, boost-format -msgid "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." +msgid "" +"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." msgid "Optimizing toolpath" msgstr "Otimizando caminho da ferramenta" @@ -11619,14 +14449,20 @@ msgstr "Otimizando caminho da ferramenta" 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" -msgstr "Nenhuma camada foi detectada. Você pode querer reparar seu(s) arquivo(s) STL ou verificar seu tamanho ou espessura e tentar novamente.\n" +msgid "" +"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" 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 @@ -11660,8 +14496,11 @@ 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." -msgstr "Formato de arquivo desconhecido. O arquivo de entrada deve ter extensão .stl, .obj, .amf(.xml)." +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)." msgid "Loading of a model file failed." msgstr "Falha ao carregar um arquivo de modelo." @@ -11670,7 +14509,9 @@ msgid "The supplied file couldn't be read because it's empty" 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." +msgstr "" +"Formato de arquivo desconhecido. O arquivo de entrada deve ter extensão .3mf " +"ou .zip.amf." msgid "Canceled" msgstr "Cancelado" @@ -11729,8 +14570,11 @@ 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" -msgstr "Você pode alterar o Fator de Calibração de Dinâmica de Fluxo na edição de materiais" +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" msgid "" "The current firmware version of the printer does not support calibration.\n" @@ -11787,8 +14631,11 @@ 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?" -msgstr "Tem certeza de que deseja cancelar a calibração atual e retornar à página inicial?" +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?" msgid "No Printer Connected!" msgstr "Nenhuma impressora conectada!" @@ -11803,10 +14650,15 @@ 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..." @@ -11819,12 +14671,22 @@ msgid "Flow Dynamics Calibration result has been saved to the printer" msgstr "O resultado da Calibração de Dinâmica de Fluxo foi salvo na impressora" #, 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?" -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?" +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?" +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?" #, c-format, boost-format -msgid "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." +msgid "" +"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." msgid "Internal Error" msgstr "Erro Interno" @@ -11836,21 +14698,30 @@ 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" -"1. Se você introduzir um novo filamento de marcas/modelos diferentes ou se o filamento estiver úmido;\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" @@ -11858,54 +14729,108 @@ 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 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 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" "\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" -"\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" -"\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." 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" -"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." - -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." -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." - -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." -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." +"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." 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" -"\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." +"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 "" -"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" +"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." +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." + +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" "\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" +"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" -"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." +"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" +"\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." msgid "When you need Max Volumetric Speed Calibration" msgstr "Quando você precisa da Calibração de Velocidade Volumétrica Máxima" @@ -11914,7 +14839,9 @@ msgid "Over-extrusion or under extrusion" 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:" +msgstr "" +"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..." @@ -11925,11 +14852,19 @@ msgstr "materiais com diâmetro de filamento impreciso" 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." -msgstr "Parte da calibração falhou! Você pode limpar a mesa e tentar novamente. O resultado do teste falho será descartado." +msgid "" +"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." -msgid "*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" +msgid "" +"*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" msgid "Failed" msgstr "Falhou" @@ -11940,18 +14875,16 @@ msgstr "Por favor, insira o nome que você deseja salvar na impressora." 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 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?" - -#, 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 "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 "" +"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" msgstr "Por favor, encontre a melhor linha em sua mesa" -msgid "Please find the cornor with perfect degree of extrusion" -msgstr "Por favor, encontre o canto com o grau perfeito de extrusão" +msgid "Please find the corner with perfect degree of extrusion" +msgstr "" msgid "Input Value" msgstr "Valor de entrada" @@ -12003,7 +14936,8 @@ 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" @@ -12017,8 +14951,12 @@ msgstr "Calibração Fina baseada no fluxo" 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." -msgstr "Um modelo de teste será impresso. Por favor, limpe a mesa e a coloque de volta na mesa aquecida antes da calibração." +msgid "" +"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." msgid "Printing Parameters" msgstr "Parâmetros de Impressão" @@ -12042,7 +14980,8 @@ 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" @@ -12200,6 +15139,9 @@ msgstr "ABS/ASA" msgid "PETG" msgstr "PETG" +msgid "PCTG" +msgstr "" + msgid "TPU" msgstr "TPU" @@ -12291,11 +15233,15 @@ 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" +msgid "Switch to Device tab after upload." +msgstr "" + #, c-format, boost-format msgid "Upload filename doesn't end with \"%s\". Do you wish to continue?" msgstr "O nome do arquivo enviado não termina com \"%s\". Deseja continuar?" @@ -12467,36 +15413,53 @@ msgid "Vendor is not selected, please reselect vendor." 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." +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." -msgstr "\"Bambu\" ou \"Genérico\" não podem ser usados como fornecedor para filamentos personalizados." +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." 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 inputed, please input 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." -msgstr "Pode haver caracteres de escape na entrada de fornecedor ou serial do filamento. Por favor, exclua e insira novamente." +msgid "" +"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." 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." +msgstr "" +"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." -msgstr "Você ainda não selecionou uma impressora ou preset. Por favor, selecione pelo menos um." +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." #, 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" @@ -12509,11 +15472,14 @@ 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ê selecionou\". \n" -"Para adicionar preset para mais impressoras, Por favor, vá para a seleção de impressoras" +"Renomearíamos os presets como \"Fornecedor Tipo Serial @ impressora que você " +"selecionou\". \n" +"Para adicionar preset para mais impressoras, Por favor, vá para a seleção de " +"impressoras" msgid "Create Printer/Nozzle" msgstr "Criar Impressora/Bico" @@ -12557,12 +15523,6 @@ msgstr "Retângulo" msgid "Printable Space" msgstr "Espaço Imprimível" -msgid "X" -msgstr "X" - -msgid "Y" -msgstr "A" - msgid "Hot Bed STL" msgstr "STL da Base Aquecida" @@ -12586,7 +15546,8 @@ msgid "Exception in obtaining file size, please import again." 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." @@ -12612,24 +15573,38 @@ msgstr "Processar Modelo de Preset" 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" -msgstr "Você ainda não escolheu em qual preset de impressora basear-se. Por favor, escolha o fornecedor e modelo da impressora" +msgid "" +"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" -msgid "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." +msgid "" +"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." msgid "The custom printer or model is not inputed, place input." 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" -" \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" +"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" " \tCancelar: Não criar um modelo, retornar para a interface de criação." msgid "You need to select at least one filament preset." @@ -12650,20 +15625,34 @@ 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." -msgid "You have not selected the vendor and model or inputed the custom vendor and model." -msgstr "Você não selecionou um fornecedor e modelo nem colocou fornecer e modelo personalizado." +msgid "" +"You have not selected the vendor and model or inputed 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." -msgstr "Pode haver caracteres de escape no fornecedor ou modelo personalizado da impressora. Por favor, exclua e insira novamente." +msgid "" +"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." -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." +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." 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." -msgstr "Você ainda não selecionou a impressora para substituir o bico, por favor, escolha." +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." msgid "Create Printer Successful" msgstr "Impressora criada com sucesso" @@ -12675,28 +15664,39 @@ 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" -"Clique em \"Sincronizar presets do usuário\" para habilitar a função de sincronização." +"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." msgid "Printer Setting" msgstr "Configuração da Impressora" @@ -12736,17 +15736,21 @@ 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" "Can be shared with others." msgstr "" -"Presets da impressora e todos os filamentos e processos que pertencem à impressora. \n" +"Presets da impressora e todos os filamentos e processos que pertencem à " +"impressora. \n" "Pode ser compartilhado com outros." msgid "" @@ -12756,28 +15760,44 @@ msgstr "" "Conjunto de presets de filamento do usuário. \n" "Pode ser compartilhado com outros." -msgid "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." +msgid "" +"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." 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." -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." +msgid "" +"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." 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." @@ -12786,7 +15806,9 @@ msgid "Please select a type you want to export" 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." +msgstr "" +"Falha ao criar uma pasta temporária, por favor, tente exportar as " +"configurações novamente." msgid "Edit Filament" msgstr "Editar Filamento" @@ -12794,8 +15816,12 @@ msgstr "Editar Filamento" 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." -msgstr "Nota: Se o único preset sob este filamento for excluído, o filamento será excluído após sair da janela." +msgid "" +"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." msgid "Presets inherited by other presets can not be deleted" msgstr "Presets herdados por outros presets não podem ser excluídos" @@ -12822,10 +15848,13 @@ msgstr "Excluir Filamento" msgid "" "All the filament presets belong to this filament would be deleted. \n" -"If you are using this filament on your printer, please reset the filament information for that slot." +"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" @@ -12840,7 +15869,9 @@ msgid "Copy preset from filament" 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" +msgstr "" +"O filamento selecionado não encontra preset de filamento, por favor, " +"selecione novamente" msgid "[Delete Required]" msgstr "[Excluir Necessário]" @@ -12861,8 +15892,12 @@ msgstr "Dicas Diárias" 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?" -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?" +msgid "" +"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?" #, c-format, boost-format msgid "*Printing %s material with %s may cause nozzle damage" @@ -12874,8 +15909,12 @@ msgstr "É necessário selecionar uma impressora" 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" -msgstr "Incapaz de calibrar: talvez porque a faixa de valor de calibração definida seja muito grande ou o passo seja muito pequeno" +msgid "" +"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" msgid "Physical Printer" msgstr "Impressora Física" @@ -12895,27 +15934,47 @@ msgstr "Tem certeza de que deseja sair?" msgid "Refresh Printers" msgstr "Atualizar Impressoras" -msgid "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 "View print host webui in Device tab" +msgstr "" + +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." +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." -msgstr "Neste sistema, %s usa certificados HTTPS da loja de certificados do sistema ou do Keychain." +msgid "" +"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." -msgid "To use a custom CA file, please import your CA file into Certificate Store / Keychain." -msgstr "Para usar um arquivo CA personalizado, importe seu arquivo CA para a loja de certificados / Keychain." +msgid "" +"To use a custom CA file, please import your CA file into Certificate Store / " +"Keychain." +msgstr "" +"Para usar um arquivo CA personalizado, importe seu arquivo CA para a loja de " +"certificados / Keychain." 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" @@ -12949,13 +16008,18 @@ 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." -msgstr "Nota: FlashAir com firmware 2.00.02 ou mais recente e função de upload ativada são necessárias." +msgid "" +"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." msgid "Connection to MKS works correctly." msgstr "A conexão com o MKS funciona corretamente." @@ -13045,89 +16109,266 @@ msgstr "" "Corpo da Mensagem: \"%1%\"\n" "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." -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." +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." +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." -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." -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." +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." +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." -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 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 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 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 " +"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 é 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 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 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 "" +"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." -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 "" +"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." -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." +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." +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." -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." -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." +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." +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." -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." -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." +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." +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." -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." -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." +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." +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." -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." -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." +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." +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." -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." -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." +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." +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." -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." -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 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 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 " +"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." +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 "It has a big layer height, and results in apparent layer lines and ordinary printing quality and printing time." -msgstr "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." +msgstr "" +"Tem uma altura de camada grande, resultando em linhas de camada aparentes " +"com qualidade e tempo de impressão normais." -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." -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." +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." +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." -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." -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, 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." +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, " +"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." -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." +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." +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." -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." -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." +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." +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." -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 "" +"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." -msgstr "Tem uma altura de camada muito grande, resultando em linhas de camada muito aparentes, com qualidade e tempo de impressão baixo." +msgid "" +"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." -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." +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 "" +"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." -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 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 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." +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." +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." msgid "Connected to Obico successfully!" msgstr "Conectado ao Obico com sucesso!" @@ -13141,15 +16382,17 @@ msgstr "Conectado ao SimplyPrint com sucesso!" msgid "Could not connect to SimplyPrint" msgstr "Não é possível conectar a SimplyPrint" -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." - -msgid "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." +msgid "Internel error" +msgstr "" 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." + msgid "Connection to Flashforge works correctly." msgstr "A conexão com a Flashforge está funcionando corretamente." @@ -13160,10 +16403,12 @@ 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." @@ -13171,18 +16416,24 @@ msgstr "O usuário cancelou." #: resources/data/hints.ini: [hint:Precise wall] msgid "" "Precise wall\n" -"Did you know that turning on precise wall can improve precision and layer consistency?" +"Did you know that turning on precise wall can improve precision and layer " +"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 "" @@ -13195,10 +16446,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 "" @@ -13206,7 +16459,8 @@ 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 "" @@ -13227,42 +16481,52 @@ 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 operações de cena 3D?" +"Você sabia que o Orca Slicer oferece uma ampla gama de atalhos de teclado e " +"operações de cena 3D?" #: 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 "" "Fix Model\n" -"Did you know that you can fix a corrupted 3D model to avoid a lot of slicing problems on the Windows system?" +"Did you know that you can fix a corrupted 3D model to avoid a lot of slicing " +"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 "" @@ -13283,149 +16547,204 @@ 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 "" "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." +"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." 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 negativa? Dessa forma, você pode, por exemplo, criar facilmente furos redimensionáveis diretamente no Orca Slicer." +"Você sabia que pode subtrair uma malha da outra usando o modificador de peça " +"negativa? Dessa forma, você pode, por exemplo, criar facilmente furos " +"redimensionáveis diretamente no Orca Slicer." #: 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] 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." +"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." 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 selecionados de uma só vez?" +"Você sabia que pode definir parâmetros de fatiamento para todos os objetos " +"selecionados de uma só vez?" #: resources/data/hints.ini: [hint:Stack objects] msgid "" @@ -13438,32 +16757,137 @@ 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 não sólido mais alta para melhorar a resistência do modelo?" #: 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." +"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." #: 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 "" +#~ "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." + +#~ msgid "Please input a valid value (K in 0~0.3)" +#~ msgstr "Por favor, insira um valor válido (K entre 0~0.3)" + +#~ msgid "Please input a valid value (K in 0~0.3, N in 0.6~2.0)" +#~ msgstr "Por favor, insira um valor válido (K entre 0~0.3, N entre 0.6~2.0))" + +#~ msgid "Select connected printetrs (0/6)" +#~ msgstr "Selecione as impressoras conectadas (0/6)" + +#, c-format, boost-format +#~ msgid "Select Connected Printetrs (%d/6)" +#~ msgstr "Selecionar as impressoras conectadas (%d/6)" + +#~ msgid "PrintingPause" +#~ 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." + +#~ 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 "" +#~ "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" +#~ "\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" +#~ "\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." + +#~ msgid "" +#~ "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?" + +#, 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 "" +#~ "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" + +#~ msgid "X" +#~ msgstr "X" + +#~ msgid "Y" +#~ msgstr "A" diff --git a/localization/i18n/ru/OrcaSlicer_ru.po b/localization/i18n/ru/OrcaSlicer_ru.po index 188b07f1c7..928886969f 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.0.0 Official Release\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-05-29 00:28+0800\n" +"POT-Creation-Date: 2024-06-21 20:03+0800\n" "PO-Revision-Date: 2024-04-12 13:49+0700\n" "Last-Translator: \n" "Language-Team: andylg@yandex.ru\n" @@ -2878,13 +2878,13 @@ msgstr "Вы уверены, что хотите удалить информац msgid "You need to select the material type and color first." msgstr "Сначала необходимо выбрать тип материала и цвет." -msgid "Please input a valid value (K in 0~0.3)" -msgstr "Пожалуйста, введите допустимое значение (K в диапазоне 0~0.3)" - -msgid "Please input a valid value (K in 0~0.3, N in 0.6~2.0)" +#, c-format, boost-format +msgid "Please input a valid value (K in %.1f~%.1f)" +msgstr "" + +#, c-format, boost-format +msgid "Please input a valid value (K in %.1f~%.1f, N in %.1f~%.1f)" msgstr "" -"Пожалуйста, введите допустимое значение (K в диапазоне 0~0.3, N в диапазоне " -"0.6~2.0)" msgid "Other Color" msgstr "Другой цвет" @@ -3316,11 +3316,11 @@ msgstr "" msgid "Edit multiple printers" msgstr "" -msgid "Select connected printetrs (0/6)" +msgid "Select connected printers (0/6)" msgstr "" #, c-format, boost-format -msgid "Select Connected Printetrs (%d/6)" +msgid "Select Connected Printers (%d/6)" msgstr "" #, c-format, boost-format @@ -3382,7 +3382,7 @@ msgstr "" msgid "Printing Failed" msgstr "" -msgid "PrintingPause" +msgid "Printing Pause" msgstr "" msgid "Prepare" @@ -3483,8 +3483,8 @@ msgstr "" msgid "Send Options" msgstr "" -msgid "Send" -msgstr "Отправить G-код стола на SD-карту" +msgid "Send to" +msgstr "" msgid "" "printers at the same time.(It depends on how many devices can undergo " @@ -3498,6 +3498,9 @@ msgid "" "minute each batch.(It depends on how long it takes to complete the heating.)" msgstr "" +msgid "Send" +msgstr "Отправить G-код стола на SD-карту" + msgid "Name is invalid;" msgstr "Некорректное имя;" @@ -4085,6 +4088,20 @@ msgstr "" "ДА для %s%%, \n" "НЕТ для %s %s." +#, boost-format +msgid "" +"Invalid input format. Expected vector of dimensions in the following format: " +"\"%1%\"" +msgstr "" +"Неверный входной формат. Ожидаемый вектор размеров в следующем формате: \"%1%" +"\"" + +msgid "Input value is out of range" +msgstr "Введённое значение вне диапазона" + +msgid "Some extension in the input is invalid" +msgstr "Недопустимое расширение на входе" + #, boost-format msgid "Invalid format. Expected vector format: \"%1%\"" msgstr "Недопустимый формат. Ожидаемый векторный формат: \"%1%\"" @@ -7198,10 +7215,6 @@ msgstr "отправка завершена" msgid "Error code" msgstr "Код ошибки" -msgid "Printer local connection failed, please try again." -msgstr "" -"Не удалось установить локальное соединение с принтером, попробуйте ещё раз." - msgid "No login account, only printers in LAN mode are displayed" msgstr "" "Без входа в учётную запись, отображаются только \n" @@ -7972,6 +7985,14 @@ msgstr "" msgid "Printable space" msgstr "Область печати" +#. TRN: First argument is parameter name, the second one is the value. +#, boost-format +msgid "Invalid value provided for parameter %1%: %2%" +msgstr "Указано недопустимое значение параметра %1%: %2%" + +msgid "G-code flavor is switched" +msgstr "Тип G-кода переключён" + msgid "Cooling Fan" msgstr "Вентилятор обдува модели" @@ -8348,6 +8369,56 @@ msgstr "Обновления отсутствуют." msgid "The configuration is up to date." msgstr "Текущая конфигурация не требует обновления." +msgid "Obj file Import color" +msgstr "" + +msgid "Specify number of colors:" +msgstr "" + +#, c-format, boost-format +msgid "The color count should be in range [%d, %d]." +msgstr "" + +msgid "Recommended " +msgstr "" + +msgid "Current filament colors:" +msgstr "" + +msgid "Quick set:" +msgstr "" + +msgid "Color match" +msgstr "" + +msgid "Approximate color matching." +msgstr "" + +msgid "Append" +msgstr "" + +msgid "Add consumable extruder after existing extruders." +msgstr "" + +msgid "Reset mapped extruders." +msgstr "" + +msgid "Cluster colors" +msgstr "" + +msgid "Map Filament" +msgstr "" + +msgid "" +"Note:The color has been selected, you can choose OK \n" +" to continue or manually adjust it." +msgstr "" + +msgid "" +"Waring:The count of newly added and \n" +" current extruders exceeds 16." +msgstr "" + msgid "Ramming customization" msgstr "Настройки рэмминга" @@ -8436,6 +8507,32 @@ msgstr "С" msgid "To" msgstr "На" +msgid "" +"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" +msgstr "" + +msgid "" +"Missing BambuSource component registered for media playing! Please re-" +"install BambuStutio 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." +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?)" +msgstr "" + msgid "Bambu Network plug-in not detected." msgstr "Сетевой плагин Bambu не обнаружен." @@ -10744,6 +10841,22 @@ msgstr "" "и будет работать на минимальной скорости, чтобы сократить частоту его " "запуска и остановки." +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" +"\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 " +"artefacts that appear like z banding \n" +"3. To avoid printing at speeds which cause VFAs (fine artefacts) on the " +"external walls\n" +"\n" +msgstr "" + msgid "Layer time" msgstr "Время слоя" @@ -11327,6 +11440,9 @@ msgstr "" "работать на максимально допустимой скорости на слое " "\"close_fan_the_first_x_layers\" + 1." +msgid "layer" +msgstr "" + msgid "Support interface fan speed" msgstr "Скорость вентилятора на связующем слое" @@ -14623,34 +14739,15 @@ msgid "" "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 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" "\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 "" -"Подробную информацию про калибровку динамики потока можно найти на нашем " -"вики-сайте.\n" -"\n" -"При обычных обстоятельствах калибровка не требуется. \n" -"Если при запуске печати одним цветом/материалом в меню запуска печати " -"отмечена опция «Калибровка динамики потока», то калибровка пластиковой нити " -"будет производится старым способом. \n" -"При запуске печати несколькими цветами/материалами, принтер будет " -"использовать параметр компенсации по умолчанию для материала при каждой его " -"смене, что в большинстве случаев позволяет получить хороший результат.\n" -"\n" -"Обратите внимание, что есть несколько случаев, когда результат калибровки " -"будет недостоверным. Это использование для калибровки текстурированной " -"печатной пластины и когда у печатной пластины плохая адгезия с материалом. " -"Более подробную информацию можно найти на нашем вики-сайте.\n" -"\n" -"По нашим тестам, результаты калибровки имеют погрешность примерно 10%, что " -"может приводить к разным результатам при каждой калибровке. Мы продолжаем " -"выяснять причину, чтобы улучшить ситуацию в новых обновлениях." msgid "When to use Flow Rate Calibration" msgstr "В каких случаях необходима калибровка скорости потока" @@ -14786,26 +14883,16 @@ msgstr "Максимальная длина имени 40 символов." msgid "" "Only one of the results with the same name will be saved. Are you sure you " -"want to overrides the other results?" +"want to override 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 best line on your plate" msgstr "Пожалуйста, найдите лучшую линию на столе" -msgid "Please find the cornor with perfect degree of extrusion" -msgstr "Пожалуйста, найдите угол с идеальной степенью экструзии" +msgid "Please find the corner with perfect degree of extrusion" +msgstr "Пожалуйста, найдите угол с идеальной экструзией" msgid "Input Value" msgstr "Входное значение" @@ -15060,6 +15147,9 @@ msgstr "ABS/ASA" msgid "PETG" msgstr "PETG" +msgid "PCTG" +msgstr "" + msgid "TPU" msgstr "TPU" @@ -15156,6 +15246,9 @@ msgstr "В качестве разделителя каталогов испол msgid "Upload to storage" msgstr "Загрузить в хранилище" +msgid "Switch to Device tab after upload." +msgstr "" + #, c-format, boost-format msgid "Upload filename doesn't end with \"%s\". Do you wish to continue?" msgstr "Имя загружаемого файла не заканчивается на \"%s\". Хотите продолжить?" @@ -15433,12 +15526,6 @@ msgstr "Прямоугольник" msgid "Printable Space" msgstr "Область печати" -msgid "X" -msgstr "X" - -msgid "Y" -msgstr "Y" - msgid "Hot Bed STL" msgstr "Модель стола" @@ -15792,7 +15879,7 @@ msgstr "Ежедневные советы " #, c-format, boost-format msgid "nozzle memorized: %.1f %s" -msgstr "" +msgstr "сопло сохранённое: %.1f %s" msgid "" "Your nozzle diameter in preset is not consistent with memorized nozzle " @@ -15837,6 +15924,12 @@ msgstr "Вы уверены, что хотите выйти из системы? msgid "Refresh Printers" msgstr "Обновить принтеры" +msgid "View print host webui in Device tab" +msgstr "" + +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." @@ -16274,21 +16367,17 @@ msgstr "Соединение с SimplyPrint успешно установлен msgid "Could not connect to SimplyPrint" msgstr "Не удалось подключиться к SimplyPrint" +msgid "Internel error" +msgstr "" + +msgid "Unknown error" +msgstr "Неизвестная ошибка" + msgid "SimplyPrint account not linked. Go to Connect options to set it up." msgstr "" "Учётная запись SimplyPrint не привязана. Перейдите в раздел подключения для " "настройки." -msgid "" -"File size exceeds the 100MB upload limit. Please upload your file through " -"the panel." -msgstr "" -"Размер файла превышает лимит загрузки в 100 МБ. Пожалуйста, загрузите файл " -"через панель." - -msgid "Unknown error" -msgstr "Неизвестная ошибка" - msgid "Connection to Flashforge works correctly." msgstr "Соединение с Flashforge успешно установлено." @@ -16698,6 +16787,93 @@ msgstr "" "ABS, повышение температуры подогреваемого стола может снизить эту " "вероятность?" +#~ msgid "" +#~ "File size exceeds the 100MB upload limit. Please upload your file through " +#~ "the panel." +#~ msgstr "" +#~ "Размер файла превышает лимит загрузки в 100 МБ. Пожалуйста, загрузите " +#~ "файл через панель." + +#~ msgid "Please input a valid value (K in 0~0.3)" +#~ msgstr "Пожалуйста, введите допустимое значение (K в диапазоне 0~0.3)" + +#~ msgid "Please input a valid value (K in 0~0.3, N in 0.6~2.0)" +#~ msgstr "" +#~ "Пожалуйста, введите допустимое значение (K в диапазоне 0~0.3, N в " +#~ "диапазоне 0.6~2.0)" + +#~ 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 "" +#~ "Подробную информацию про калибровку динамики потока можно найти на нашем " +#~ "вики-сайте.\n" +#~ "\n" +#~ "При обычных обстоятельствах калибровка не требуется. \n" +#~ "Если при запуске печати одним цветом/материалом в меню запуска печати " +#~ "отмечена опция «Калибровка динамики потока», то калибровка пластиковой " +#~ "нити будет производится старым способом. \n" +#~ "При запуске печати несколькими цветами/материалами, принтер будет " +#~ "использовать параметр компенсации по умолчанию для материала при каждой " +#~ "его смене, что в большинстве случаев позволяет получить хороший " +#~ "результат.\n" +#~ "\n" +#~ "Обратите внимание, что есть несколько случаев, когда результат калибровки " +#~ "будет недостоверным. Это использование для калибровки текстурированной " +#~ "печатной пластины и когда у печатной пластины плохая адгезия с " +#~ "материалом. Более подробную информацию можно найти на нашем вики-сайте.\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 "X" +#~ msgstr "X" + +#~ msgid "Y" +#~ msgstr "Y" + #~ msgid "" #~ "Order of wall/infill. When the tickbox is unchecked the walls are printed " #~ "first, which works best in most cases.\n" diff --git a/localization/i18n/sv/OrcaSlicer_sv.po b/localization/i18n/sv/OrcaSlicer_sv.po index ca52bad51e..840924971f 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: 2024-05-29 00:28+0800\n" +"POT-Creation-Date: 2024-06-21 20:03+0800\n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -2799,11 +2799,13 @@ msgstr "Är du säker på att du vill rensa filament informationen?" msgid "You need to select the material type and color first." msgstr "Du måste först välja materialtyp och färg." -msgid "Please input a valid value (K in 0~0.3)" -msgstr "Ange ett giltigt värde (K i 0~0.3)" +#, c-format, boost-format +msgid "Please input a valid value (K in %.1f~%.1f)" +msgstr "" -msgid "Please input a valid value (K in 0~0.3, N in 0.6~2.0)" -msgstr "Ange ett giltigt värde (K i 0~0.3, N i 0.6~2.0)" +#, c-format, boost-format +msgid "Please input a valid value (K in %.1f~%.1f, N in %.1f~%.1f)" +msgstr "" msgid "Other Color" msgstr "Annan färg" @@ -3214,11 +3216,11 @@ msgstr "Task Sent" msgid "Edit multiple printers" msgstr "" -msgid "Select connected printetrs (0/6)" +msgid "Select connected printers (0/6)" msgstr "" #, c-format, boost-format -msgid "Select Connected Printetrs (%d/6)" +msgid "Select Connected Printers (%d/6)" msgstr "" #, c-format, boost-format @@ -3280,7 +3282,7 @@ msgstr "" msgid "Printing Failed" msgstr "" -msgid "PrintingPause" +msgid "Printing Pause" msgstr "" msgid "Prepare" @@ -3379,8 +3381,8 @@ msgstr "" msgid "Send Options" msgstr "Send Options" -msgid "Send" -msgstr "Skicka" +msgid "Send to" +msgstr "" msgid "" "printers at the same time.(It depends on how many devices can undergo " @@ -3397,6 +3399,9 @@ msgid "" msgstr "" "minute each batch. (It depends on how long it takes to complete heating.)" +msgid "Send" +msgstr "Skicka" + msgid "Name is invalid;" msgstr "Namnet är ogiltligt;" @@ -3960,6 +3965,18 @@ msgstr "" "JA för %s%%, \n" "NEJ för %s %s." +#, boost-format +msgid "" +"Invalid input format. Expected vector of dimensions in the following format: " +"\"%1%\"" +msgstr "" + +msgid "Input value is out of range" +msgstr "" + +msgid "Some extension in the input is invalid" +msgstr "" + #, boost-format msgid "Invalid format. Expected vector format: \"%1%\"" msgstr "Ogiltligt format. Förväntat vector format: \"%1%\"" @@ -6992,9 +7009,6 @@ msgstr "Skicka komplett" msgid "Error code" msgstr "Felkod" -msgid "Printer local connection failed, please try again." -msgstr "Den lokala anslutningen till skrivaren misslyckades; försök igen." - msgid "No login account, only printers in LAN mode are displayed" msgstr "Inget inloggningskonto, bara skrivare i LAN-läge visas" @@ -7743,6 +7757,14 @@ msgstr "" msgid "Printable space" msgstr "Utskriftsbar yta" +#. TRN: First argument is parameter name, the second one is the value. +#, boost-format +msgid "Invalid value provided for parameter %1%: %2%" +msgstr "" + +msgid "G-code flavor is switched" +msgstr "" + msgid "Cooling Fan" msgstr "" @@ -8116,6 +8138,60 @@ msgstr "Inga uppdateringar tillgängliga." msgid "The configuration is up to date." msgstr "Konfigurationen är aktuell." +msgid "Obj file Import color" +msgstr "Obj file Import color" + +msgid "Specify number of colors:" +msgstr "Specify number of colors:" + +#, c-format, boost-format +msgid "The color count should be in range [%d, %d]." +msgstr "The color count should be in range [%d, %d]." + +msgid "Recommended " +msgstr "Recommended " + +msgid "Current filament colors:" +msgstr "Current filament colors:" + +msgid "Quick set:" +msgstr "Quick set:" + +msgid "Color match" +msgstr "Color match" + +msgid "Approximate color matching." +msgstr "Approximate color matching." + +msgid "Append" +msgstr "Append" + +msgid "Add consumable extruder after existing extruders." +msgstr "Add consumable extruder after existing extruders." + +msgid "Reset mapped extruders." +msgstr "Reset mapped extruders." + +msgid "Cluster colors" +msgstr "Cluster colors" + +msgid "Map Filament" +msgstr "Map Filament" + +msgid "" +"Note:The color has been selected, you can choose OK \n" +" to continue or manually adjust it." +msgstr "" +"Note:The color has been selected, you can choose OK \n" +" to continue or manually adjust it." + +msgid "" +"Waring:The count of newly added and \n" +" current extruders exceeds 16." +msgstr "" +"Warning: The count of newly added and \n" +" current extruders exceeds 16." + msgid "Ramming customization" msgstr "" @@ -8189,6 +8265,32 @@ msgstr "Från" msgid "To" msgstr "Till" +msgid "" +"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" +msgstr "" + +msgid "" +"Missing BambuSource component registered for media playing! Please re-" +"install BambuStutio 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." +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?)" +msgstr "" + msgid "Bambu Network plug-in not detected." msgstr "Bambu Network plug-in hittades inte." @@ -10219,6 +10321,22 @@ msgstr "" "och den kommer att åtminstone gå på lägsta hastighet för att minska " "frekvensen av start och stopp" +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" +"\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 " +"artefacts that appear like z banding \n" +"3. To avoid printing at speeds which cause VFAs (fine artefacts) on the " +"external walls\n" +"\n" +msgstr "" + msgid "Layer time" msgstr "Lager tid" @@ -10716,6 +10834,9 @@ msgid "" "maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1." msgstr "" +msgid "layer" +msgstr "" + msgid "Support interface fan speed" msgstr "" @@ -13636,34 +13757,15 @@ msgid "" "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 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" "\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 "" -"Information om Flow Dynamics Calibration finns i vår wiki.\n" -"\n" -"Vanligtvis är kalibreringen onödig. När du startar en utskrift i en färg/" -"material, med alternativet \"flödesdynamisk kalibrering\" markerat i " -"startmenyn, kommer skrivaren att följa det gamla sättet, kalibrera " -"filamentet före utskriften; När du startar en utskrift i flera färger/" -"material kommer skrivaren att använda standard kompensations parametern för " -"filamentet vid varje filamentbyte, vilket ger ett bra resultat i de flesta " -"fall.\n" -"\n" -"Observera att det finns några fall som gör att kalibreringsresultatet inte " -"blir tillförlitligt: använd en strukturplatta för att göra kalibreringen; " -"byggplattan har inte bra vidhäftning (tvätta byggplattan eller applicera " -"lim!) ...Du kan hitta mer från vår wiki.\n" -"\n" -"Kalibreringsresultaten har cirka 10 procent fel i vårt test, vilket kan " -"orsaka att resultatet inte är exakt detsamma i varje kalibrering. Vi " -"undersöker fortfarande grundorsaken för att kunna göra förbättringar med nya " -"uppdateringar." msgid "When to use Flow Rate Calibration" msgstr "När ska man använda kalibrering av flödes hastighet?" @@ -13793,25 +13895,15 @@ msgstr "Namnet får inte innehålla mer än 40 tecken." msgid "" "Only one of the results with the same name will be saved. Are you sure you " -"want to overrides the other results?" +"want to override the other results?" msgstr "" "Endast ett av resultaten med samma namn kommer att sparas. Är du säker på " "att du vill ersätta de andra resultaten?" -#, 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 "" -"Det finns redan ett tidigare kalibreringsresultat med samma namn: %s. Endast " -"ett av resultaten med samma namn sparas. Är du säker på att du vill ersätta " -"det tidigare resultatet?" - msgid "Please find the best line on your plate" msgstr "Hitta den bästa linjen på din platta." -msgid "Please find the cornor with perfect degree of extrusion" +msgid "Please find the corner with perfect degree of extrusion" msgstr "Hitta hörnet med den perfekta graden av extrudering" msgid "Input Value" @@ -14064,6 +14156,9 @@ msgstr "ABS/ASA" msgid "PETG" msgstr "PETG" +msgid "PCTG" +msgstr "" + msgid "TPU" msgstr "TPU" @@ -14148,6 +14243,9 @@ msgstr "Använd snedstreck ( / ) som katalog avgränsare om det behövs." msgid "Upload to storage" msgstr "" +msgid "Switch to Device tab after upload." +msgstr "" + #, c-format, boost-format msgid "Upload filename doesn't end with \"%s\". Do you wish to continue?" msgstr "Filnamnet slutar inte med \"%s\". Vill du fortsätta?" @@ -14420,12 +14518,6 @@ msgstr "Rektangel" msgid "Printable Space" msgstr "Utskriftsbar yta" -msgid "X" -msgstr "" - -msgid "Y" -msgstr "" - msgid "Hot Bed STL" msgstr "Värmeplatta STL" @@ -14774,7 +14866,7 @@ msgstr "Dagliga tips" #, c-format, boost-format msgid "nozzle memorized: %.1f %s" -msgstr "" +msgstr "nozzel memorerat: %.1f %s" msgid "" "Your nozzle diameter in preset is not consistent with memorized nozzle " @@ -14818,6 +14910,12 @@ msgstr "" msgid "Refresh Printers" msgstr "Uppdatera skrivare" +msgid "View print host webui in Device tab" +msgstr "" + +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." @@ -15248,17 +15346,15 @@ msgstr "" msgid "Could not connect to SimplyPrint" msgstr "" -msgid "SimplyPrint account not linked. Go to Connect options to set it up." -msgstr "" - -msgid "" -"File size exceeds the 100MB upload limit. Please upload your file through " -"the panel." +msgid "Internel error" msgstr "" msgid "Unknown error" msgstr "" +msgid "SimplyPrint account not linked. Go to Connect options to set it up." +msgstr "" + msgid "Connection to Flashforge works correctly." msgstr "" @@ -15619,6 +15715,75 @@ msgstr "" "ABS, kan en lämplig ökning av värmebäddens temperatur minska sannolikheten " "för vridning." +#~ msgid "Please input a valid value (K in 0~0.3)" +#~ msgstr "Ange ett giltigt värde (K i 0~0.3)" + +#~ msgid "Please input a valid value (K in 0~0.3, N in 0.6~2.0)" +#~ msgstr "Ange ett giltigt värde (K i 0~0.3, N i 0.6~2.0)" + +#~ msgid "Printer local connection failed, please try again." +#~ msgstr "Den lokala anslutningen till skrivaren misslyckades; försök igen." + +#~ 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 "" +#~ "Information om Flow Dynamics Calibration finns i vår wiki.\n" +#~ "\n" +#~ "Vanligtvis är kalibreringen onödig. När du startar en utskrift i en färg/" +#~ "material, med alternativet \"flödesdynamisk kalibrering\" markerat i " +#~ "startmenyn, kommer skrivaren att följa det gamla sättet, kalibrera " +#~ "filamentet före utskriften; När du startar en utskrift i flera färger/" +#~ "material kommer skrivaren att använda standard kompensations parametern " +#~ "för filamentet vid varje filamentbyte, vilket ger ett bra resultat i de " +#~ "flesta fall.\n" +#~ "\n" +#~ "Observera att det finns några fall som gör att kalibreringsresultatet " +#~ "inte blir tillförlitligt: använd en strukturplatta för att göra " +#~ "kalibreringen; byggplattan har inte bra vidhäftning (tvätta byggplattan " +#~ "eller applicera lim!) ...Du kan hitta mer från vår wiki.\n" +#~ "\n" +#~ "Kalibreringsresultaten har cirka 10 procent fel i vårt test, vilket kan " +#~ "orsaka att resultatet inte är exakt detsamma i varje kalibrering. Vi " +#~ "undersöker fortfarande grundorsaken för att kunna göra förbättringar med " +#~ "nya uppdateringar." + +#~ msgid "" +#~ "Only one of the results with the same name will be saved. Are you sure " +#~ "you want to overrides the other results?" +#~ msgstr "" +#~ "Endast ett av resultaten med samma namn kommer att sparas. Är du säker på " +#~ "att du vill ersätta de andra resultaten?" + +#, 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 "" +#~ "Det finns redan ett tidigare kalibreringsresultat med samma namn: %s. " +#~ "Endast ett av resultaten med samma namn sparas. Är du säker på att du " +#~ "vill ersätta det tidigare resultatet?" + +#~ msgid "Please find the cornor with perfect degree of extrusion" +#~ msgstr "Hitta hörnet med den perfekta graden av extrudering" + #~ msgid "V" #~ msgstr "V" diff --git a/localization/i18n/tr/OrcaSlicer_tr.po b/localization/i18n/tr/OrcaSlicer_tr.po index 4f9be6b19f..f15f4b096e 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: 2024-05-29 00:28+0800\n" -"PO-Revision-Date: 2024-06-02 22:13+0300\n" +"POT-Creation-Date: 2024-06-21 20:03+0800\n" +"PO-Revision-Date: 2024-06-17 10:12+0300\n" "Last-Translator: Olcay ÖREN\n" "Language-Team: \n" "Language: tr\n" @@ -728,8 +728,8 @@ msgid "" "The text cannot be written using the selected font. Please try choosing a " "different font." msgstr "" -"Metin seçilen yazı tipi kullanılarak yazılamıyor. Lütfen farklı bir yazı tipi " -"seçmeyi deneyin." +"Metin seçilen yazı tipi kullanılarak yazılamıyor. Lütfen farklı bir yazı " +"tipi seçmeyi deneyin." msgid "Embossed text cannot contain only white spaces." msgstr "Kabartmalı metin yalnızca beyaz boşluklardan oluşamaz." @@ -1010,12 +1010,12 @@ msgstr "Metni kameraya doğru yönlendirin." #, boost-format msgid "" -"Can't load exactly same font(\"%1%\"). Aplication selected a similar one(\"%2%" -"\"). You have to specify font for enable edit text." +"Can't load exactly same font(\"%1%\"). Aplication selected a similar " +"one(\"%2%\"). You have to specify font for enable edit text." msgstr "" -"Tam olarak aynı yazı tipi yüklenemiyor(\"%1%\"). Uygulama benzer bir uygulama " -"seçti(\"%2%\"). Metni düzenlemeyi etkinleştirmek için yazı tipini belirtmeniz " -"gerekir." +"Tam olarak aynı yazı tipi yüklenemiyor(\"%1%\"). Uygulama benzer bir " +"uygulama seçti(\"%2%\"). Metni düzenlemeyi etkinleştirmek için yazı tipini " +"belirtmeniz gerekir." msgid "No symbol" msgstr "Sembol yok" @@ -1467,8 +1467,8 @@ msgstr "Bilgi" 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 "" "OrcaSlicer konfigürasyon dosyası bozulmuş olabilir ve ayrıştırılamayabilir.\n" "OrcaSlicer, konfigürasyon dosyasını yeniden oluşturmayı denedi.\n" @@ -2097,8 +2097,8 @@ 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 " -"infornation first." +"To manipulate with solid parts or negative volumes you have to invalidate " +"cut infornation first." msgstr "" "Bu eylem kesilmiş bir yazışmayı bozacaktır.\n" "Bundan sonra model tutarlılığı garanti edilemez.\n" @@ -2161,7 +2161,8 @@ msgstr "İlk seçilen öğe bir nesne ise ikincisi de nesne olmalıdır." msgid "" "If first selected item is a part, the second one should be part in the same " "object." -msgstr "İlk seçilen öğe bir parça ise ikincisi aynı nesnenin parçası olmalıdır." +msgstr "" +"İlk seçilen öğe bir parça ise ikincisi aynı nesnenin parçası olmalıdır." msgid "The type of the last solid object part is not to be changed." msgstr "Son katı nesne parçasının tipi değiştirilNozullidir." @@ -2518,14 +2519,16 @@ msgstr "" msgid "Arranging done." msgstr "Hizalama tamamlandı." -msgid "Arrange failed. Found some exceptions when processing object geometries." +msgid "" +"Arrange failed. Found some exceptions when processing object geometries." msgstr "" "Hizalama başarısız oldu. Nesne geometrilerini işlerken bazı istisnalar " "bulundu." #, 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 "" "Hizalama tek tablaya sığmayan aşağıdaki nesneler göz ardı edildi:\n" @@ -2625,7 +2628,8 @@ msgstr "" "deneyin." msgid "Print file not found, Please slice it again and send it for printing." -msgstr "Yazdırma dosyası bulunamadı. Lütfen tekrar dilimleyip baskıya gönderin." +msgstr "" +"Yazdırma dosyası bulunamadı. Lütfen tekrar dilimleyip baskıya gönderin." msgid "" "Failed to upload print file to FTP. Please check the network status and try " @@ -2681,8 +2685,8 @@ msgid "Importing SLA archive" msgstr "SLA arşivi içe aktarılıyor" 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 "" "SLA arşivi herhangi bir ön ayar içermez. Lütfen SLA arşivini içe aktarmadan " "önce bazı SLA yazıcı ön ayarlarını etkinleştirin." @@ -2694,8 +2698,8 @@ msgid "Importing done." msgstr "İçe aktarma tamamlandı." 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 "" "İçe aktarılan SLA arşivi herhangi bir ön ayar içermiyordu. Geçerli SLA ön " "ayarları geri dönüş olarak kullanıldı." @@ -2752,8 +2756,8 @@ msgid "" "This software uses open source components whose copyright and other " "proprietary rights belong to their respective owners" msgstr "" -"Bu yazılım, telif hakkı ve diğer mülkiyet hakları ilgili sahiplerine ait olan " -"açık kaynaklı bileşenleri kullanır" +"Bu yazılım, telif hakkı ve diğer mülkiyet hakları ilgili sahiplerine ait " +"olan açık kaynaklı bileşenleri kullanır" #, c-format, boost-format msgid "About %s" @@ -2767,7 +2771,8 @@ msgstr "OrcaSlicer, BambuStudio, PrusaSlicer ve SuperSlicer'ı temel alır." msgid "BambuStudio is originally based on PrusaSlicer by PrusaResearch." msgstr "" -"BambuStudio orijinal olarak PrusaResearch'ün PrusaSlicer'ını temel almaktadır." +"BambuStudio orijinal olarak PrusaResearch'ün PrusaSlicer'ını temel " +"almaktadır." msgid "PrusaSlicer is originally based on Slic3r by Alessandro Ranellucci." msgstr "" @@ -2840,11 +2845,14 @@ msgstr "Filament bilgisini temizlemek istediğinizden emin misiniz?" msgid "You need to select the material type and color first." msgstr "Önce malzeme türünü ve rengini seçmeniz gerekir." -msgid "Please input a valid value (K in 0~0.3)" -msgstr "Lütfen geçerli bir değer girin (K in 0~0.3)" +#, c-format, boost-format +msgid "Please input a valid value (K in %.1f~%.1f)" +msgstr "Lütfen geçerli bir değer girin (K %.1f~%.1f içinde)" -msgid "Please input a valid value (K in 0~0.3, N in 0.6~2.0)" -msgstr "Lütfen geçerli bir değer girin (K in 0~0.3, N in 0.6~2.0)" +#, c-format, boost-format +msgid "Please input a valid value (K in %.1f~%.1f, N in %.1f~%.1f)" +msgstr "" +"Lütfen geçerli bir değer girin (K %.1f~%.1f içinde, N %.1f~%.1f içinde)" msgid "Other Color" msgstr "Diğer renk" @@ -2856,9 +2864,9 @@ msgid "Dynamic flow calibration" msgstr "Dinamik akış kalibrasyonu" 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 "" "Nozul sıcaklığı ve maksimum hacimsel hız kalibrasyon sonuçlarını " "etkileyecektir. Lütfen gerçek yazdırmayla aynı değerleri girin. Bir filament " @@ -2993,7 +3001,8 @@ msgid "" "When the current material run out, the printer will continue to print in the " "following order." msgstr "" -"Mevcut malzeme bittiğinde yazıcı aşağıdaki sırayla yazdırmaya devam edecektir." +"Mevcut malzeme bittiğinde yazıcı aşağıdaki sırayla yazdırmaya devam " +"edecektir." msgid "Group" msgstr "Grup" @@ -3031,8 +3040,8 @@ msgid "Insertion update" msgstr "Ekleme güncellemesi" 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 "" "AMS, yeni bir Bambu Lab filamenti takıldığında filament bilgilerini otomatik " "olarak okuyacaktır. Bu yaklaşık 20 saniye sürer." @@ -3055,16 +3064,17 @@ msgid "Power on update" msgstr "Güncellemeyi aç" 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 "" "AMS, başlangıçta takılan filamentin bilgilerini otomatik olarak okuyacaktır. " "Yaklaşık 1 dakika sürecektir. Okuma işlemi filament makaralarını saracaktır." 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 "" "AMS, başlatma sırasında takılan filamentden bilgileri otomatik olarak okumaz " "ve son kapatmadan önce kaydedilen bilgileri kullanmaya devam eder." @@ -3078,8 +3088,8 @@ msgid "" "automatically." msgstr "" "AMS, filament bilgisi güncellendikten sonra Bambu filamentin kalan " -"kapasitesini tahmin edecek. Yazdırma sırasında kalan kapasite otomatik olarak " -"güncellenecektir." +"kapasitesini tahmin edecek. Yazdırma sırasında kalan kapasite otomatik " +"olarak güncellenecektir." msgid "AMS filament backup" msgstr "AMS filament yedeklemesi" @@ -3111,8 +3121,8 @@ msgid "" "Failed to download the plug-in. Please check your firewall settings and vpn " "software, check and retry." msgstr "" -"Eklenti indirilemedi. Lütfen güvenlik duvarı ayarlarınızı ve vpn yazılımınızı " -"kontrol edin, kontrol edip yeniden deneyin." +"Eklenti indirilemedi. Lütfen güvenlik duvarı ayarlarınızı ve vpn " +"yazılımınızı kontrol edin, kontrol edip yeniden deneyin." msgid "" "Failed to install the plug-in. Please check whether it is blocked or deleted " @@ -3200,8 +3210,8 @@ msgid "" "device. The corrupted output G-code is at %1%.tmp." msgstr "" "Geçici G kodunun çıkış G koduna kopyalanması başarısız oldu. Hedef cihazda " -"sorun olabilir, lütfen tekrar dışa aktarmayı veya farklı bir cihaz kullanmayı " -"deneyin. Bozuk çıktı G kodu %1%.tmp konumunda." +"sorun olabilir, lütfen tekrar dışa aktarmayı veya farklı bir cihaz " +"kullanmayı deneyin. Bozuk çıktı G kodu %1%.tmp konumunda." #, boost-format msgid "" @@ -3265,11 +3275,11 @@ msgstr "Görev Gönderildi" msgid "Edit multiple printers" msgstr "Birden fazla yazıcıyı düzenleme" -msgid "Select connected printetrs (0/6)" +msgid "Select connected printers (0/6)" msgstr "Bağlı yazıcıları seçin (0/6)" #, c-format, boost-format -msgid "Select Connected Printetrs (%d/6)" +msgid "Select Connected Printers (%d/6)" msgstr "Bağlı Yazıcıları Seçin (%d/6)" #, c-format, boost-format @@ -3331,7 +3341,7 @@ msgstr "Yazdırma Bitti" msgid "Printing Failed" msgstr "Yazdırma Başarısız" -msgid "PrintingPause" +msgid "Printing Pause" msgstr "Yazdırma Duraklatıldı" msgid "Prepare" @@ -3430,12 +3440,12 @@ msgstr "Akış Dinamik Kalibrasyonu" msgid "Send Options" msgstr "Gönderme Seçenekleri" -msgid "Send" -msgstr "Gönder" +msgid "Send to" +msgstr "Gönderildi" 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 "" "aynı anda kaç yazıcının ısıtma işleminden geçebileceği, aynı anda " "ısıtılabilecek cihaz sayısına bağlıdır." @@ -3449,6 +3459,9 @@ msgstr "" "her parti başına dakika. (Isıtmanın tamamlanması ne kadar sürerse buna " "bağlıdır.)" +msgid "Send" +msgstr "Gönder" + msgid "Name is invalid;" msgstr "Geçersiz isim;" @@ -3539,8 +3552,8 @@ msgid "" "The recommended minimum temperature is less than 190 degree or the " "recommended maximum temperature is greater than 300 degree.\n" msgstr "" -"Önerilen minimum sıcaklık 190 dereceden azdır veya önerilen maksimum sıcaklık " -"300 dereceden yüksektir.\n" +"Önerilen minimum sıcaklık 190 dereceden azdır veya önerilen maksimum " +"sıcaklık 300 dereceden yüksektir.\n" msgid "" "The recommended minimum temperature cannot be higher than the recommended " @@ -3577,13 +3590,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 "" -"Mevcut hazne sıcaklığı malzemenin güvenli sıcaklığından yüksektir, malzemenin " -"yumuşamasına ve tıkanmasına neden olabilir Malzeme için maksimum güvenli " -"sıcaklık %d'dir" +"Mevcut hazne sıcaklığı malzemenin güvenli sıcaklığından yüksektir, " +"malzemenin yumuşamasına ve tıkanmasına neden olabilir Malzeme için maksimum " +"güvenli sıcaklık %d'dir" msgid "" "Too small layer height.\n" @@ -3637,16 +3650,16 @@ msgstr "" "Değer 0'a sıfırlanacaktır." 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 "" -"Alternatif ekstra duvar, dikey kabuk kalınlığının Tümü olarak ayarlandığından " -"emin olunduğunda iyi çalışmaz. " +"Alternatif ekstra duvar, dikey kabuk kalınlığının Tümü olarak " +"ayarlandığından emin olunduğunda iyi çalışmaz. " 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 - Dont use alternate extra wall" msgstr "" "Bu ayarlar otomatik olarak değiştirilsin mi? \n" @@ -3723,7 +3736,8 @@ msgid "" "No - Give up using spiral mode this time" msgstr "" "Bu ayarlar otomatik olarak değiştirilsin mi?\n" -"Evet - Bu ayarları değiştirin ve spiral modunu otomatik olarak etkinleştirin\n" +"Evet - Bu ayarları değiştirin ve spiral modunu otomatik olarak " +"etkinleştirin\n" "Hayır - Bu sefer spiral modunu kullanmaktan vazgeçin" msgid "Auto bed leveling" @@ -3856,9 +3870,9 @@ msgid "Update failed." msgstr "Güncelleme başarısız." 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 "" "Mevcut hazne sıcaklığı veya hedef hazne sıcaklığı 45 ° C'yi aşıyor Ekstruder " "tıkanmasını önlemek için düşük sıcaklıkta filament (PLA / PETG / TPU) " @@ -3885,7 +3899,8 @@ msgstr "" msgid "Failed to start printing job" msgstr "Yazdırma işi başlatılamadı" -msgid "This calibration does not support the currently selected nozzle diameter" +msgid "" +"This calibration does not support the currently selected nozzle diameter" msgstr "Bu kalibrasyon, şu anda seçilen nozzle çapını desteklememektedir" msgid "Current flowrate cali param is invalid" @@ -3910,12 +3925,12 @@ msgid "" "Damp PVA will become flexible and get stuck inside AMS,please take care to " "dry it before use." msgstr "" -"Nemli PVA esnekleşecek ve AMS'nin içine sıkışacaktır, lütfen kullanmadan önce " -"kurutmaya dikkat edin." +"Nemli PVA esnekleşecek ve AMS'nin içine sıkışacaktır, lütfen kullanmadan " +"önce kurutmaya dikkat edin." 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 "" "CF/GF filamentleri sert ve kırılgandır. AMS'de kırılması veya sıkışması " "kolaydır, lütfen dikkatli kullanın." @@ -4016,6 +4031,18 @@ msgstr "" "%s%% için EVET,\n" "%s %s için HAYIR." +#, boost-format +msgid "" +"Invalid input format. Expected vector of dimensions in the following format: " +"\"%1%\"" +msgstr "Geçersiz giriş biçimi. Beklenen boyut vektörü biçimi: \"%1%\"" + +msgid "Input value is out of range" +msgstr "Girilen değer limit dışı" + +msgid "Some extension in the input is invalid" +msgstr "Girilen bazı uzantılar geçersiz" + #, boost-format msgid "Invalid format. Expected vector format: \"%1%\"" msgstr "Geçersiz format. Beklenen vektör formatı: \"%1%\"" @@ -4811,7 +4838,7 @@ msgid "Retraction test" msgstr "Geri çekme testi" msgid "Orca Tolerance Test" -msgstr "Orca Tolerans Testi" +msgstr "Orca tolerans testi" msgid "Max flowrate" msgstr "Maksimum akış hızı" @@ -4918,8 +4945,8 @@ msgstr[1] "" 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" "İpucu: Yapılandırmaları içe aktarmadan önce ilgili yazıcıyı eklediğinizden " @@ -4968,7 +4995,8 @@ msgid "Please confirm if the printer is connected." msgstr "Lütfen yazıcının bağlı olup olmadığını onaylayın." msgid "" -"The printer is currently busy downloading. Please try again after it finishes." +"The printer is currently busy downloading. Please try again after it " +"finishes." msgstr "" "Yazıcı şu anda indirmeyle meşgul. Lütfen bittikten sonra tekrar deneyin." @@ -4979,7 +5007,8 @@ msgid "Problem occured. Please update the printer firmware and try again." msgstr "" "Sorun oluştu. Lütfen yazıcının ürün yazılımını güncelleyin ve tekrar deneyin." -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 "" "Yalnızca LAN Canlı İzleme kapalı. Lütfen yazıcı ekranındaki canlı " "görüntülemeyi açın." @@ -4994,8 +5023,8 @@ msgid "Connection Failed. Please check the network and try again" msgstr "Bağlantı Başarısız. Lütfen ağı kontrol edip tekrar deneyin" 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 "" "Lütfen ağı kontrol edip tekrar deneyin. Sorun devam ederse yazıcıyı yeniden " "başlatabilir veya güncelleyebilirsiniz." @@ -5138,7 +5167,8 @@ msgid_plural "" "You are going to delete %u files from printer. Are you sure to continue?" msgstr[0] "" "%u dosyasını yazıcıdan sileceksiniz. Devam edeceğinizden emin misiniz?" -msgstr[1] "%u dosyayı yazıcıdan sileceksiniz. Devam edeceğinizden emin misiniz?" +msgstr[1] "" +"%u dosyayı yazıcıdan sileceksiniz. Devam edeceğinizden emin misiniz?" msgid "Delete files" msgstr "Dosyaları sil" @@ -5198,8 +5228,8 @@ msgid "" "Reconnecting the printer, the operation cannot be completed immediately, " "please try again later." msgstr "" -"Yazıcıyı yeniden bağladığınızda işlem hemen tamamlanamıyor, lütfen daha sonra " -"tekrar deneyin." +"Yazıcıyı yeniden bağladığınızda işlem hemen tamamlanamıyor, lütfen daha " +"sonra tekrar deneyin." msgid "File does not exist." msgstr "Dosya bulunmuyor." @@ -5282,8 +5312,8 @@ msgid "" "(The model has already been rated. Your rating will overwrite the previous " "rating.)" msgstr "" -"(Model zaten derecelendirilmiştir. Derecelendirmeniz önceki derecelendirmenin " -"üzerine yazılacaktır)" +"(Model zaten derecelendirilmiştir. Derecelendirmeniz önceki " +"derecelendirmenin üzerine yazılacaktır)" msgid "Rate" msgstr "Derecelendir" @@ -5873,8 +5903,8 @@ msgstr "Arama plakası, nesne ve parça." msgid "" "No AMS filaments. Please select a printer in 'Device' page to load AMS info." msgstr "" -"AMS filamentleri yok. AMS bilgilerini yüklemek için lütfen 'Cihaz' sayfasında " -"bir yazıcı seçin." +"AMS filamentleri yok. AMS bilgilerini yüklemek için lütfen 'Cihaz' " +"sayfasında bir yazıcı seçin." msgid "Sync filaments with AMS" msgstr "Filamentleri AMS ile senkronize et" @@ -5887,7 +5917,8 @@ msgstr "" "ayarlarını ve renklerini kaldıracaktır. Devam etmek istiyor musun?" msgid "" -"Already did a synchronization, do you want to sync only changes or resync all?" +"Already did a synchronization, do you want to sync only changes or resync " +"all?" msgstr "" "Zaten bir senkronizasyon yaptınız. Yalnızca değişiklikleri senkronize etmek " "mi yoksa tümünü yeniden senkronize etmek mi istiyorsunuz?" @@ -5902,13 +5933,13 @@ msgid "There are no compatible filaments, and sync is not performed." msgstr "Uyumlu filament yok ve senkronizasyon gerçekleştirilmiyor." 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 " +"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 "" -"Genel ön ayara eşlenen bazı bilinmeyen filamentler var. Sistem ön ayarlarında " -"bir güncelleme olup olmadığını kontrol etmek için lütfen Orca Slicer'ı " -"güncelleyin veya Orca Slicer'ı yeniden başlatın." +"Genel ön ayara eşlenen bazı bilinmeyen filamentler var. Sistem ön " +"ayarlarında bir güncelleme olup olmadığını kontrol etmek için lütfen Orca " +"Slicer'ı güncelleyin veya Orca Slicer'ı yeniden başlatın." #, boost-format msgid "Do you want to save changes to \"%1%\"?" @@ -5933,13 +5964,13 @@ msgid "Restore" msgstr "Geri Yükleme" 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 "" -"Mevcut sıcak yatak sıcaklığı oldukça yüksek. Bu filamenti kapalı bir muhafaza " -"içinde bastırırken nozzle tıkanabilir. Lütfen ön kapağı açın ve/veya üst camı " -"çıkarın." +"Mevcut sıcak yatak sıcaklığı oldukça yüksek. Bu filamenti kapalı bir " +"muhafaza içinde bastırırken nozzle tıkanabilir. Lütfen ön kapağı açın ve/" +"veya üst camı çıkarın." msgid "" "The nozzle hardness required by the filament is higher than the default " @@ -6002,8 +6033,8 @@ msgstr "Lütfen bunları parametre sekmelerinde düzeltin" msgid "The 3mf has following modified G-codes in filament or printer presets:" msgstr "" -"3mf dosyasında filament veya yazıcı ön ayarlarında şu değiştirilmiş G-kodları " -"bulunmaktadır:" +"3mf dosyasında filament veya yazıcı ön ayarlarında şu değiştirilmiş G-" +"kodları bulunmaktadır:" msgid "" "Please confirm that these modified G-codes are safe to prevent any damage to " @@ -6153,7 +6184,7 @@ msgid "Do you want to replace it" msgstr "Değiştirmek istiyor musun" msgid "Message" -msgstr "Mesah" +msgstr "Mesaj" msgid "Reload from:" msgstr "Yeniden yükle:" @@ -6237,8 +6268,8 @@ msgstr "" "dosyayı indirin ve manuel olarak içe aktarın." 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 "" "Orca Slicer'ya aktarma başarısız oldu. Lütfen dosyayı indirin ve manuel " "olarak İçe aktarın." @@ -6326,15 +6357,15 @@ msgstr "Dilimlenmiş dosyayı şu şekilde kaydedin:" #, 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 "" "%s dosyası yazıcının depolama alanına gönderildi ve yazıcıda " "görüntülenebiliyor." msgid "" -"Unable to perform boolean operation on model meshes. Only positive parts will " -"be kept. You may fix the meshes and try agian." +"Unable to perform boolean operation on model meshes. Only positive parts " +"will be kept. You may fix the meshes and try agian." msgstr "" "Model ağlarında boole işlemi gerçekleştirilemiyor. Yalnızca olumlu kısımlar " "tutulacaktır. Kafesleri düzeltip tekrar deneyebilirsiniz." @@ -6448,8 +6479,8 @@ msgstr "" #, 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." +"still want to do this printing, please set this filament's bed temperature " +"to non zero." msgstr "" "Plaka% d: %s'nin %s(%s) filamentinı yazdırmak için kullanılması önerilmez. " "Eğer yine de bu baskıyı yapmak istiyorsanız, lütfen bu filamentin yatak " @@ -6537,8 +6568,8 @@ msgstr "Yalnızca bir OrcaSlicer örneğine izin ver" 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." +"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 "" "OSX’te her zaman varsayılan olarak çalışan tek bir uygulama örneği vardır. " "Ancak aynı uygulamanın birden fazla örneğinin komut satırından " @@ -6546,8 +6577,9 @@ msgstr "" "örneğe izin verecektir." 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 "" "Bu etkinleştirilirse, OrcaSlicer başlatıldığında ve aynı OrcaSlicer’ın başka " "bir örneği zaten çalışıyorken, bunun yerine bu örnek yeniden " @@ -6639,11 +6671,12 @@ msgstr "" "hatırlayacak ve otomatik olarak değiştirecektir." msgid "Multi-device Management(Take effect after restarting Orca)." -msgstr "Çoklu Cihaz Yönetimi(Studio yeniden başlatıldıktan sonra geçerli olur)." +msgstr "" +"Çoklu Cihaz Yönetimi(Studio yeniden başlatıldıktan sonra geçerli olur)." 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 "" "Bu seçenek etkinleştirildiğinde, aynı anda birden fazla cihaza bir görev " "gönderebilir ve birden fazla cihazı yönetebilirsiniz." @@ -6694,10 +6727,10 @@ msgstr "" "uygulama olarak ayarlar" msgid "Associate web links to OrcaSlicer" -msgstr "" +msgstr "Web bağlantılarını OrcaSlicer ile ilişkilendirin" msgid "Associate URLs to OrcaSlicer" -msgstr "" +msgstr "URL’leri OrcaSlicer ile ilişkilendirin" msgid "Current association: " msgstr "Mevcut dernek:" @@ -6712,22 +6745,28 @@ msgid "" "Associate OrcaSlicer with prusaslicer:// links so that Orca can open models " "from Printable.com" msgstr "" +"Orca’nın Printable.com’daki modelleri açabilmesi için OrcaSlicer’ı " +"prusaslicer:// bağlantılarıyla ilişkilendirin" msgid "Associate bambustudio://" -msgstr "" +msgstr "Bambstudio’yu ilişkilendirin://" msgid "" "Associate OrcaSlicer with bambustudio:// links so that Orca can open models " "from makerworld.com" msgstr "" +"Orca’nın makerworld.com’daki modelleri açabilmesi için OrcaSlicer’ı " +"bambustudio:// bağlantılarıyla ilişkilendirin" msgid "Associate cura://" -msgstr "" +msgstr "Cura’yı ilişkilendirin://" msgid "" "Associate OrcaSlicer with cura:// links so that Orca can open models from " "thingiverse.com" msgstr "" +"Orca’nın thingiverse.com’daki modelleri açabilmesi için OrcaSlicer’ı cura:// " +"bağlantılarıyla ilişkilendirin" msgid "Maximum recent projects" msgstr "Maksimum yeni proje" @@ -6747,8 +6786,8 @@ msgstr "Otomatik yedekleme" msgid "" "Backup your project periodically for restoring from the occasional crash." msgstr "" -"Ara sıra meydana gelen çökmelerden sonra geri yüklemek için projenizi düzenli " -"aralıklarla yedekleyin." +"Ara sıra meydana gelen çökmelerden sonra geri yüklemek için projenizi " +"düzenli aralıklarla yedekleyin." msgid "every" msgstr "her" @@ -7104,11 +7143,9 @@ msgstr "gönderme tamamlandı" msgid "Error code" msgstr "Hata kodu" -msgid "Printer local connection failed, please try again." -msgstr "Yazıcının yerel bağlantısı başarısız oldu, lütfen tekrar deneyin." - msgid "No login account, only printers in LAN mode are displayed" -msgstr "Oturum açma hesabı yok, yalnızca LAN modundaki yazıcılar görüntüleniyor" +msgstr "" +"Oturum açma hesabı yok, yalnızca LAN modundaki yazıcılar görüntüleniyor" msgid "Connecting to server" msgstr "Sunucuya baglanıyor" @@ -7176,7 +7213,8 @@ msgstr "" "desteklemek için lütfen yazıcının ürün yazılımını güncelleyin." msgid "" -"The printer firmware only supports sequential mapping of filament => AMS slot." +"The printer firmware only supports sequential mapping of filament => AMS " +"slot." msgstr "" "Yazıcı ürün yazılımı yalnızca filament => AMS yuvasının sıralı eşlemesini " "destekler." @@ -7237,8 +7275,8 @@ msgstr "" 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." +"they are the required filaments. If they are okay, press \"Confirm\" to " +"start printing." msgstr "" "AMS eşlemelerinde bazı bilinmeyen filamentler var. Lütfen bunların gerekli " "filamentler olup olmadığını kontrol edin. Sorun yoksa, yazdırmayı başlatmak " @@ -7270,7 +7308,8 @@ msgstr "" "hasarına neden olabilir" msgid "Please fix the error above, otherwise printing cannot continue." -msgstr "Lütfen yukarıdaki hatayı düzeltin, aksi takdirde yazdırma devam edemez." +msgstr "" +"Lütfen yukarıdaki hatayı düzeltin, aksi takdirde yazdırma devam edemez." msgid "" "Please click the confirm button if you still want to proceed with printing." @@ -7421,11 +7460,11 @@ msgid "" "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." +"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 "" "3D Baskı topluluğunda, kendi dilimleme parametrelerimizi ve ayarlarımızı " "düzenlerken birbirimizin başarılarından ve başarısızlıklarından öğreniyoruz. " @@ -7476,16 +7515,16 @@ msgid "Click to reset all settings to the last saved preset." msgstr "Tüm ayarları en son kaydedilen ön ayara sıfırlamak için tıklayın." msgid "" -"Prime tower is required for smooth timeplase. 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 timeplase. There may be flaws on the " +"model without prime tower. Are you sure you want to disable prime tower?" msgstr "" "Sorunsuz timeplace için Prime Tower gereklidir. Prime tower olmayan modelde " "kusurlar olabilir. Prime tower'ı devre dışı bırakmak istediğinizden emin " "misiniz?" 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 "" "Sorunsuz hızlandırılmış çekim için Prime Tower gereklidir. Prime tower " "olmayan modelde kusurlar olabilir. Prime tower'ı etkinleştirmek istiyor " @@ -7514,11 +7553,11 @@ msgstr "" 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." +"settings: at least 2 interface layers, at least 0.1mm top z distance or " +"using support materials on interface." msgstr "" -"\"Güçlü Ağaç\" ve \"Ağaç Hibrit\" stilleri için şu ayarları öneriyoruz: en az " -"2 arayüz katmanı, en az 0,1 mm üst z mesafesi veya arayüzde destek " +"\"Güçlü Ağaç\" ve \"Ağaç Hibrit\" stilleri için şu ayarları öneriyoruz: en " +"az 2 arayüz katmanı, en az 0,1 mm üst z mesafesi veya arayüzde destek " "malzemeleri kullanılması." msgid "" @@ -7557,8 +7596,8 @@ msgid "" "height limits ,this may cause printing quality issues." msgstr "" "Katman yüksekliği, Yazıcı Ayarları -> Ekstruder -> Katman yüksekliği " -"sınırları bölümündeki sınırı aşıyor bu durum baskı kalitesi sorunlarına neden " -"olabilir." +"sınırları bölümündeki sınırı aşıyor bu durum baskı kalitesi sorunlarına " +"neden olabilir." msgid "Adjust to the set range automatically? \n" msgstr "Ayarlanan aralığa otomatik olarak ayarlansın mı? \n" @@ -7572,8 +7611,8 @@ msgstr "Atla" 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." +"reduce flush, it may also elevate the risk of nozzle clogs or other " +"printing complications." msgstr "" "Deneysel özellik: Filament değişiklikleri sırasında, floşu en aza indirmek " "için filamanı daha büyük bir mesafeden geri çekmek ve kesmek. Flush’u önemli " @@ -7595,8 +7634,8 @@ msgstr "" 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\"." +"by right-click the empty position of build plate and choose \"Add Primitive" +"\"->\"Timelapse Wipe Tower\"." msgstr "" "Araç başlığı olmadan timelapse kaydederken, bir \"Timelapse Wipe Tower\" " "eklenmesi önerilir.\n" @@ -7645,8 +7684,8 @@ msgid "" "the overhang degree range and wall speed is used" msgstr "" "Bu, çeşitli sarkma dereceleri için hızdır. Çıkıntı dereceleri çizgi " -"genişliğinin yüzdesi olarak ifade edilir. 0 hız, sarkma derecesi aralığı için " -"yavaşlamanın olmadığı anlamına gelir ve duvar hızı kullanılır" +"genişliğinin yüzdesi olarak ifade edilir. 0 hız, sarkma derecesi aralığı " +"için yavaşlamanın olmadığı anlamına gelir ve duvar hızı kullanılır" msgid "Bridge" msgstr "Köprü" @@ -7746,11 +7785,11 @@ msgid "Cool plate" msgstr "Soğuk plaka" 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 "" -"Soğutma plakası takıldığında yatak sıcaklığı. 0 değeri, filamentin Cool Plate " -"üzerine yazdırmayı desteklemediği anlamına gelir" +"Soğutma plakası takıldığında yatak sıcaklığı. 0 değeri, filamentin Cool " +"Plate üzerine yazdırmayı desteklemediği anlamına gelir" msgid "Engineering plate" msgstr "Mühendislik plakası" @@ -7856,6 +7895,14 @@ msgstr "Çoklu Ekstruder MM Yazıcılarda Araç Değiştirme Parametreleri" msgid "Printable space" msgstr "Tabla Ayarı" +#. TRN: First argument is parameter name, the second one is the value. +#, boost-format +msgid "Invalid value provided for parameter %1%: %2%" +msgstr "%1% parametresi için geçersiz değer sağlandı: %2%" + +msgid "G-code flavor is switched" +msgstr "G-kod çeşidi değiştirildi" + msgid "Cooling Fan" msgstr "Soğutucu Fan" @@ -8071,16 +8118,16 @@ msgstr "\"%1%\" ön ayarı aşağıdaki kaydedilmemiş değişiklikleri içeriyo #, 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 "" "Ön ayar \"%1%\", yeni yazıcı profiliyle uyumlu değil ve aşağıdaki " "kaydedilmemiş değişiklikleri içeriyor:" #, 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 "" "Ön ayar \"%1%\", yeni işlem profiliyle uyumlu değil ve aşağıdaki " "kaydedilmemiş değişiklikleri içeriyor:" @@ -8114,8 +8161,8 @@ msgid "" "the modified values to the new project" msgstr "" "\n" -"Değiştirdiğiniz ön ayar değerlerini atabilir veya değiştirilen değerleri yeni " -"projeye aktarmayı seçebilirsiniz." +"Değiştirdiğiniz ön ayar değerlerini atabilir veya değiştirilen değerleri " +"yeni projeye aktarmayı seçebilirsiniz." msgid "Extruders count" msgstr "Ekstruder sayısı" @@ -8139,19 +8186,19 @@ 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." +"Note: New modified presets will be selected in settings tabs after close " +"this dialog." msgstr "" "Seçilen seçenekleri sol ön ayardan sağa aktarın.\n" -"Not: Bu iletişim kutusunu kapattıktan sonra ayarlar sekmelerinde değiştirilen " -"yeni ön ayarlar seçilecektir." +"Not: Bu iletişim kutusunu kapattıktan sonra ayarlar sekmelerinde " +"değiştirilen yeni ön ayarlar seçilecektir." msgid "Transfer values from left to right" msgstr "Değerleri soldan sağa aktarın" 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 "" "Etkinleştirilirse, bu iletişim kutusu seçilen değerleri soldan sağa ön ayara " "aktarmak için kullanılabilir." @@ -8233,16 +8280,70 @@ msgstr "Güncelleme mevcut değil." msgid "The configuration is up to date." msgstr "Yapılandırma güncel." +msgid "Obj file Import color" +msgstr "Obj dosyası renkli olarak içe aktar" + +msgid "Specify number of colors:" +msgstr "Renk sayısını belirtin:" + +#, c-format, boost-format +msgid "The color count should be in range [%d, %d]." +msgstr "Renk sayısı aralıkta olmalıdır [%d, %d]." + +msgid "Recommended " +msgstr "Tavsiye edilir " + +msgid "Current filament colors:" +msgstr "Mevcut filament renkleri:" + +msgid "Quick set:" +msgstr "Hızlı ayar:" + +msgid "Color match" +msgstr "Renk uyumu" + +msgid "Approximate color matching." +msgstr "Yaklaşık renk eşleşmesi." + +msgid "Append" +msgstr "Ekle" + +msgid "Add consumable extruder after existing extruders." +msgstr "Mevcut ekstrüderlerden sonra yeni sarf malzemesi ekstrüderi ekleyin." + +msgid "Reset mapped extruders." +msgstr "Eşlenmiş ekstrüderleri sıfırlayın." + +msgid "Cluster colors" +msgstr "Küme renkleri" + +msgid "Map Filament" +msgstr "Filamenti Eşle" + +msgid "" +"Note:The color has been selected, you can choose OK \n" +" to continue or manually adjust it." +msgstr "" +"Not: Renk seçildi, devam etmek için Tamam'ı seçebilirsiniz\n" +" veya manuel olarak ayarlayabilirsiniz." + +msgid "" +"Waring:The count of newly added and \n" +" current extruders exceeds 16." +msgstr "" +"Uyarı: Yeni eklenen ve\n" +" mevcut ekstrüderlerin sayısı 16'yı aşıyor." + msgid "Ramming customization" msgstr "Sıkıştırma özelleştirme" 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" +"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." @@ -8319,6 +8420,43 @@ msgstr "İtibaren" msgid "To" msgstr "İle" +msgid "" +"Windows Media Player is required for this task! Do you want to enable " +"'Windows Media Player' for your operation system?" +msgstr "" +"Bu görev için Windows Media Player gereklidir! İşletim sisteminiz için " +"‘Windows Media Player’ı etkinleştirmek istiyor musunuz?" + +msgid "" +"BambuSource has not correctly been registered for media playing! Press Yes " +"to re-register it. You will be promoted twice" +msgstr "" +"BambuSource medya oynatımı için doğru şekilde kaydedilmemiş! Yeniden " +"kaydetmek için Evet’e basın." + +msgid "" +"Missing BambuSource component registered for media playing! Please re-" +"install BambuStutio or seek after-sales help." +msgstr "" +"Medya oynatma için kayıtlı BambuSource bileşeni eksik! Lütfen BambuStutio’yu " +"yeniden yükleyin veya satış sonrası yardım isteyin." + +msgid "" +"Using a BambuSource from a different install, video play may not work " +"correctly! Press Yes to fix it." +msgstr "" +"Farklı bir kurulumdan bir BambuSource kullanıyorsunuz, video oynatma doğru " +"çalışmayabilir! Düzeltmek için Evet’e basın." + +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 "" +"Sisteminizde video oynatmak için gerekli olan GStreamer H.264 codec " +"bileşenleri eksik. (gstreamer1.0-plugins-bad veya gstreamer1.0-libav " +"paketlerini kurmayı deneyin, ardından Orca Slicer’ı yeniden başlatın)" + msgid "Bambu Network plug-in not detected." msgstr "Bambu Ağı eklentisi algılanmadı." @@ -8608,15 +8746,15 @@ msgstr "Ağ eklentisi güncellemesi" msgid "" "Click OK to update the Network plug-in when Orca Slicer launches next time." msgstr "" -"Orca Slicer bir sonraki sefer başlatıldığında Ağ eklentisini güncellemek için " -"Tamam'a tıklayın." +"Orca Slicer bir sonraki sefer başlatıldığında Ağ eklentisini güncellemek " +"için Tamam'a tıklayın." #, c-format, boost-format msgid "A new Network plug-in(%s) available, Do you want to install it?" msgstr "Yeni bir Ağ eklentisi(%s) mevcut, Yüklemek istiyor musunuz?" msgid "New version of Orca Slicer" -msgstr "Orca Slicer'nun yeni versiyonu" +msgstr "Orca Slicer’ın yeni versiyonu" msgid "Skip this Version" msgstr "Bu versiyonu atla" @@ -8666,7 +8804,8 @@ 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 "" +"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." @@ -8735,8 +8874,8 @@ msgid "Updating successful" msgstr "Güncelleme başarılı" 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 "" "Güncellemek istediğinizden emin misiniz? Bu yaklaşık 10 dakika sürecektir. " "Yazıcı güncellenirken gücü kapatmayın." @@ -8755,9 +8894,10 @@ msgid "" "printing. Do you want to update now? You can also update later on printer or " "update next time starting Orca." msgstr "" -"Ürün yazılımı sürümü anormal. Yazdırmadan önce onarım ve güncelleme yapılması " -"gerekir. Şimdi güncellemek istiyor musunuz? Ayrıca daha sonra yazıcıda " -"güncelleyebilir veya stüdyoyu bir sonraki başlatışınızda güncelleyebilirsiniz." +"Ürün yazılımı sürümü anormal. Yazdırmadan önce onarım ve güncelleme " +"yapılması gerekir. Şimdi güncellemek istiyor musunuz? Ayrıca daha sonra " +"yazıcıda güncelleyebilir veya stüdyoyu bir sonraki başlatışınızda " +"güncelleyebilirsiniz." msgid "Extension Board" msgstr "Uzatma Kartı" @@ -8909,8 +9049,8 @@ msgid "Failed to calculate line width of %1%. Can not get value of \"%2%\" " msgstr "%1% çizgi genişliği hesaplanamadı. \"%2%\" değeri alınamıyor " 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 "" "Flow::with_spacing()'e sağlanan geçersiz boşluk, kat yüksekliğinizi ve " "ekstrüzyon genişliğinizi kontrol edin" @@ -9043,8 +9183,8 @@ msgstr " dışlama alanına çok yakın ve çarpışmalara neden olacak.\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 "" "Birlikte büyük sıcaklık farkına sahip birden fazla filament basılamaz. Aksi " "takdirde baskı sırasında ekstruder ve nozul tıkanabilir veya hasar görebilir" @@ -9063,8 +9203,8 @@ msgid "" "Please select \"By object\" print sequence to print multiple objects in " "spiral vase mode." msgstr "" -"Birden fazla nesneyi spiral vazo modunda yazdırmak için lütfen \"Nesneye " -"göre\" yazdırma sırasını seçin." +"Birden fazla nesneyi spiral vazo modunda yazdırmak için lütfen \"Nesneye göre" +"\" yazdırma sırasını seçin." msgid "" "The spiral vase mode does not work when an object contains more than one " @@ -9077,8 +9217,8 @@ msgstr "%1% nesnesi maksimum yapı hacmi yüksekliğini aşıyor." #, 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 "" "%1% nesnesinin kendisi yapı hacmine uysa da, son katmanı maksimum yapı hacmi " "yüksekliğini aşıyor." @@ -9107,7 +9247,8 @@ msgstr "" "Temizleme Kulesi şu anda yalnızca ilgili ekstruder adreslemesiyle " "desteklenmektedir (use_relative_e_distances=1)." -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 "Sızıntı önleme şu anda ana kule etkinken desteklenmemektedir." msgid "" @@ -9124,8 +9265,8 @@ msgid "" "The prime tower is not supported when adaptive layer height is on. It " "requires that all objects have the same layer height." msgstr "" -"Uyarlanabilir katman yüksekliği açıkken ana kule desteklenmez. Tüm nesnelerin " -"aynı katman yüksekliğine sahip olmasını gerektirir." +"Uyarlanabilir katman yüksekliği açıkken ana kule desteklenmez. Tüm " +"nesnelerin aynı katman yüksekliğine sahip olmasını gerektirir." msgid "The prime tower requires \"support gap\" to be multiple of layer height" msgstr "" @@ -9133,11 +9274,12 @@ msgstr "" msgid "The prime tower requires that all objects have the same layer heights" msgstr "" -"Prime tower, tüm nesnelerin aynı katman yüksekliğine sahip olmasını gerektirir" +"Prime tower, tüm nesnelerin aynı katman yüksekliğine sahip olmasını " +"gerektirir" 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 "" "Ana kule, tüm nesnelerin aynı sayıda sal katmanı üzerine yazdırılmasını " "gerektirir" @@ -9150,8 +9292,8 @@ msgstr "" "gerektirir." 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 "" "Prime tower yalnızca tüm nesnelerin aynı değişken katman yüksekliğine sahip " "olması durumunda desteklenir" @@ -9165,7 +9307,8 @@ msgstr "Çok büyük çizgi genişliği" msgid "" "The prime tower requires that support has the same layer height with object." msgstr "" -"Prime kulesi için, destek, nesne ile aynı katman yüksekliğine sahip olmalıdır." +"Prime kulesi için, destek, nesne ile aynı katman yüksekliğine sahip " +"olmalıdır." msgid "" "Organic support tree tip diameter must not be smaller than support material " @@ -9178,8 +9321,8 @@ msgid "" "Organic support branch diameter must not be smaller than 2x support material " "extrusion width." msgstr "" -"Organik destek dalı çapı, destek malzemesi ekstrüzyon genişliğinin 2 katından " -"daha küçük olamaz." +"Organik destek dalı çapı, destek malzemesi ekstrüzyon genişliğinin 2 " +"katından daha küçük olamaz." msgid "" "Organic support branch diameter must not be smaller than support tree tip " @@ -9196,20 +9339,20 @@ msgid "Layer height cannot exceed nozzle diameter" msgstr "Katman yüksekliği nozul çapını aşamaz" msgid "" -"Relative extruder addressing requires resetting the extruder position at each " -"layer to prevent loss of floating point accuracy. Add \"G92 E0\" to " +"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 "" -"Göreceli ekstruder adreslemesi, kayan nokta doğruluğunun kaybını önlemek için " -"her katmandaki ekstruder konumunun sıfırlanmasını gerektirir. Layer_gcode'a " -"\"G92 E0\" ekleyin." +"Göreceli ekstruder adreslemesi, kayan nokta doğruluğunun kaybını önlemek " +"için her katmandaki ekstruder konumunun sıfırlanmasını gerektirir. " +"Layer_gcode'a \"G92 E0\" ekleyin." msgid "" "\"G92 E0\" was found in before_layer_gcode, which is incompatible with " "absolute extruder addressing." msgstr "" -"Before_layer_gcode'da \"G92 E0\" bulundu ve bu, mutlak ekstruder adreslemeyle " -"uyumsuzdu." +"Before_layer_gcode'da \"G92 E0\" bulundu ve bu, mutlak ekstruder " +"adreslemeyle uyumsuzdu." msgid "" "\"G92 E0\" was found in layer_gcode, which is incompatible with absolute " @@ -9248,8 +9391,8 @@ msgid "" "(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." +"You can adjust the machine_max_acceleration_extruding value in your " +"printer's configuration to get higher speeds." msgstr "" "Hızlanma ayarı yazıcının maksimum hızlanmasını aşıyor " "(machine_max_acceleration_extruding).\n" @@ -9310,7 +9453,8 @@ msgid "Elephant foot compensation" msgstr "Fil ayağı telafi oranı" msgid "" -"Shrink the initial layer on build plate to compensate for elephant foot effect" +"Shrink the initial layer on build plate to compensate for elephant foot " +"effect" msgstr "" "Fil ayağı etkisini telafi etmek için baskı plakasındaki ilk katmanı küçültün" @@ -9328,7 +9472,7 @@ msgstr "" "lineer olarak küçültülecek, bu değer tarafından belirtilen katmana kadar." msgid "layers" -msgstr "katmanlar" +msgstr "katman" msgid "" "Slicing height for each layer. Smaller layer height means more accurate and " @@ -9369,15 +9513,15 @@ 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/" +"user name and password into the URL in the following format: https://" +"username:password@your-octopi-address/" msgstr "" -"Orca Slicer, G kodu dosyalarını bir yazıcı ana bilgisayarına yükleyebilir. Bu " -"alan, yazıcı ana bilgisayar örneğinin ana bilgisayar adını, IP adresini veya " -"URL'sini içermelidir. Temel kimlik doğrulamanın etkin olduğu HAProxy'nin " -"arkasındaki yazdırma ana bilgisayarına, kullanıcı adı ve parolanın aşağıdaki " -"biçimdeki URL'ye girilmesiyle erişilebilir: https://username:password@your-" -"octopi-address/" +"Orca Slicer, G kodu dosyalarını bir yazıcı ana bilgisayarına yükleyebilir. " +"Bu alan, yazıcı ana bilgisayar örneğinin ana bilgisayar adını, IP adresini " +"veya URL'sini içermelidir. Temel kimlik doğrulamanın etkin olduğu " +"HAProxy'nin arkasındaki yazdırma ana bilgisayarına, kullanıcı adı ve " +"parolanın aşağıdaki biçimdeki URL'ye girilmesiyle erişilebilir: https://" +"username:password@your-octopi-address/" msgid "Device UI" msgstr "Cihaz kullanıcı arayüzü" @@ -9385,7 +9529,8 @@ msgstr "Cihaz kullanıcı arayüzü" msgid "" "Specify the URL of your device user interface if it's not same as print_host" msgstr "" -"Print_Host ile aynı değilse cihazınızın kullanıcı arayüzünün URL'sini belirtin" +"Print_Host ile aynı değilse cihazınızın kullanıcı arayüzünün URL'sini " +"belirtin" msgid "API Key / Password" msgstr "API Anahtarı / Şifre" @@ -9394,8 +9539,9 @@ 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." msgstr "" -"Orca Slicer, G kodu dosyalarını bir yazıcı ana bilgisayarına yükleyebilir. Bu " -"alan, kimlik doğrulama için gereken API Anahtarını veya şifreyi içermelidir." +"Orca Slicer, G kodu dosyalarını bir yazıcı ana bilgisayarına yükleyebilir. " +"Bu alan, kimlik doğrulama için gereken API Anahtarını veya şifreyi " +"içermelidir." msgid "Name of the printer" msgstr "Yazıcı adı" @@ -9405,8 +9551,8 @@ msgstr "HTTPS CA Dosyası" 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." +"in crt/pem format. If left blank, the default OS CA certificate repository " +"is used." msgstr "" "HTTPS OctoPrint bağlantıları için crt/pem formatında özel CA sertifika " "dosyası belirtilebilir. Boş bırakılırsa varsayılan OS CA sertifika deposu " @@ -9457,10 +9603,10 @@ msgid "" "either as an absolute value or as percentage (for example 50%) of a direct " "travel path. Zero to disable" msgstr "" -"Duvarı geçmekten kaçınmak için maksimum sapma mesafesi. Yoldan sapma mesafesi " -"bu değerden büyükse yoldan sapmayın. Yol uzunluğu, mutlak bir değer olarak " -"veya doğrudan seyahat yolunun yüzdesi (örneğin %50) olarak belirtilebilir. " -"Devre dışı bırakmak için sıfır" +"Duvarı geçmekten kaçınmak için maksimum sapma mesafesi. Yoldan sapma " +"mesafesi bu değerden büyükse yoldan sapmayın. Yol uzunluğu, mutlak bir değer " +"olarak veya doğrudan seyahat yolunun yüzdesi (örneğin %50) olarak " +"belirtilebilir. Devre dışı bırakmak için sıfır" msgid "mm or %" msgstr "mm veya %" @@ -9469,8 +9615,8 @@ msgid "Other layers" msgstr "Diğer katmanlar" 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 "" "İlk katman dışındaki katmanlar için yatak sıcaklığı. 0 değeri, filamentin " "Cool Plate üzerine yazdırmayı desteklemediği anlamına gelir" @@ -9479,22 +9625,22 @@ 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 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 "" "İlk katman dışındaki katmanlar için yatak sıcaklığı. Değer 0, filamentin " "Mühendislik Plakasına yazdırmayı desteklemediği anlamına gelir" 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 "" "İlk katman dışındaki katmanlar için yatak sıcaklığı. 0 değeri, filamentin " "Yüksek Sıcaklık Plakasına yazdırmayı desteklemediği anlamına gelir" 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 "" "İlk katman dışındaki katmanlar için yatak sıcaklığı. 0 Değeri, filamentin " "Dokulu PEI Plaka üzerine yazdırmayı desteklemediği anlamına gelir" @@ -9576,11 +9722,11 @@ 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 determained by bottom " -"shell layers" +"is disabled and thickness of bottom shell is absolutely determained by " +"bottom shell layers" msgstr "" -"Alt kabuk katmanları tarafından hesaplanan kalınlık bu değerden daha ince ise " -"dilimleme sırasında alt katı katmanların sayısı arttırılır. Bu, katman " +"Alt kabuk katmanları tarafından hesaplanan kalınlık bu değerden daha ince " +"ise dilimleme sırasında alt katı katmanların sayısı arttırılır. Bu, katman " "yüksekliği küçük olduğunda kabuğun çok ince olmasını önleyebilir. 0, bu " "ayarın devre dışı olduğu ve alt kabuğun kalınlığının mutlaka alt kabuk " "katmanları tarafından belirlendiği anlamına gelir" @@ -9594,7 +9740,8 @@ msgid "" "\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" +"2. Top and Bottom surfaces: Applies gap fill to top and bottom surfaces " +"only\n" "3. Nowhere: Disables gap fill\n" msgstr "" "Seçilen yüzeyler için boşluk doldurmayı etkinleştirir. Doldurulacak minimum " @@ -9620,19 +9767,19 @@ 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" +"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" +"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" +"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ı " @@ -9644,9 +9791,9 @@ 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 indicides 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" +"exceeds this value. Expressed as percentage which indicides 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 " @@ -9680,8 +9827,8 @@ msgid "" "Decrease this value slightly(for example 0.9) to reduce the amount of " "material for bridge, to improve sag" msgstr "" -"Köprü için malzeme miktarını azaltmak ve sarkmayı iyileştirmek için bu değeri " -"biraz azaltın (örneğin 0,9)" +"Köprü için malzeme miktarını azaltmak ve sarkmayı iyileştirmek için bu " +"değeri biraz azaltın (örneğin 0,9)" msgid "Internal bridge flow ratio" msgstr "İç köprü akış oranı" @@ -9749,11 +9896,11 @@ msgid "" "on the next layer, like letters. Set this setting to 0 to remove these " "artifacts." msgstr "" -"Eğer bir üst yüzey basılacaksa ve kısmen başka bir katman tarafından kaplıysa " -"layer genişliği bu değerin altında olan bir üst katman olarak " +"Eğer bir üst yüzey basılacaksa ve kısmen başka bir katman tarafından " +"kaplıysa layer genişliği bu değerin altında olan bir üst katman olarak " "değerlendirilmeyecek. Yalnızca çevrelerle kaplanması gereken yüzeyde 'bir " -"çevre üstte' tetiklemesine izin vermemek yararlı olabilir. Bu değer mm veya a " -"% çevre ekstrüzyon genişliğinin bir yüzdesi olabilir.\n" +"çevre üstte' tetiklemesine izin vermemek yararlı olabilir. Bu değer mm veya " +"a % çevre ekstrüzyon genişliğinin bir yüzdesi olabilir.\n" "Uyarı: Etkinleştirilirse bir sonraki katmanda harfler gibi bazı ince " "özelliklerin olması durumunda yapay yapılar oluşturulabilir. Bu yapıları " "kaldırmak için bu ayarı 0 olarak ayarlayın." @@ -9779,15 +9926,15 @@ msgstr "" "yolları (perimeter) oluşturun. " msgid "Reverse on odd" -msgstr "Tek sayıyı tersine çevir" +msgstr "Tersine çevir" msgid "Overhang reversal" msgstr "Çıkıntıyı tersine çevir" 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." @@ -9809,7 +9956,8 @@ msgid "" "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" +"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 recomended to set the " "Reverse Threshold to 0 so that all internal walls print in alternating " @@ -9841,7 +9989,8 @@ msgstr "" "Bu seçenek, havşa delikleri için köprüler oluşturarak bunların desteksiz " "yazdırılmasına olanak tanır. Mevcut modlar şunları içerir:\n" "1. Yok: Köprü oluşturulmaz.\n" -"2. Kısmen Köprülendi: Desteklenmeyen alanın yalnızca bir kısmı köprülenecek.\n" +"2. Kısmen Köprülendi: Desteklenmeyen alanın yalnızca bir kısmı " +"köprülenecek.\n" "3. Feda Katman: Tam bir feda köprü katmanı oluşturulur." msgid "Partially bridged" @@ -9961,8 +10110,8 @@ msgid "Brim ear detection radius" msgstr "Kenar kulak algılama yarıçapı" 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 "" "Keskin açılar tespit edilmeden önce geometrinin büyük bir kısmı yok " @@ -10011,10 +10160,10 @@ msgid "" "that layer can be cooled for longer time. This can improve the cooling " "quality for needle and small details" msgstr "" -"Son katman süresinin \"Maksimum fan hızı eşiği\"ndeki katman süresi eşiğinden " -"kısa olmamasını sağlamak amacıyla yazdırma hızını yavaşlatmak için bu " -"seçeneği etkinleştirin, böylece katman daha uzun süre soğutulabilir. Bu, iğne " -"ve küçük detaylar için soğutma kalitesini artırabilir" +"Son katman süresinin \"Maksimum fan hızı eşiği\"ndeki katman süresi " +"eşiğinden kısa olmamasını sağlamak amacıyla yazdırma hızını yavaşlatmak için " +"bu seçeneği etkinleştirin, böylece katman daha uzun süre soğutulabilir. Bu, " +"iğne ve küçük detaylar için soğutma kalitesini artırabilir" msgid "Normal printing" msgstr "Normal baskı" @@ -10023,7 +10172,8 @@ msgid "" "The default acceleration of both normal printing and travel except initial " "layer" msgstr "" -"İlk katman dışında hem normal yazdırmanın hem de ilerlemenin varsayılan ivmesi" +"İlk katman dışında hem normal yazdırmanın hem de ilerlemenin varsayılan " +"ivmesi" msgid "mm/s²" msgstr "mm/s²" @@ -10067,8 +10217,8 @@ 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" msgstr "" -"İlk belirli katmanlar için tüm soğutma fanını kapatın. Daha iyi baskı plakası " -"yapışması sağlamak için ilk katmanın soğutma fanı kapatılırdı" +"İlk belirli katmanlar için tüm soğutma fanını kapatın. Daha iyi baskı " +"plakası yapışması sağlamak için ilk katmanın soğutma fanı kapatılırdı" msgid "Don't support bridges" msgstr "Köprülerde destek olmasın" @@ -10109,8 +10259,8 @@ msgid "Don't filter out small internal bridges (beta)" msgstr "Küçük iç köprüleri filtrelemeyin (deneysel)" 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 " @@ -10125,16 +10275,16 @@ msgid "" "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 behaviour and works well " -"in most cases.\n" +"Disabled - Disables this option. This is the default behaviour and works " +"well in most cases.\n" "\n" "Limited filtering - Creates internal bridges on heavily slanted surfaces, " -"while avoiding creating uncessesary interal bridges. This works well for most " -"difficult models.\n" +"while avoiding creating uncessesary interal 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 unecessary 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 unecessary 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" @@ -10218,13 +10368,13 @@ msgstr "" "dolgu ekleyin (üst + alt katı katmanlar)\n" "Yok: Hiçbir yere katı dolgu eklenmez. Dikkat: Modelinizin eğimli yüzeyleri " "varsa bu seçeneği dikkatli kullanın.\n" -"Yalnızca Kritik: Duvarlar için katı dolgu eklemekten kaçının\n" +"Yalnızca kritik: Duvarlar için katı dolgu eklemekten kaçının\n" "Orta: Yalnızca çok eğimli yüzeyler için katı dolgu ekleyin\n" "Hepsi: Tüm uygun eğimli yüzeyler için katı dolgu ekleyin\n" "Varsayılan değer Tümü'dür." msgid "Critical Only" -msgstr "Yalnızca Kritik" +msgstr "Yalnızca kritik" msgid "Moderate" msgstr "Orta" @@ -10286,8 +10436,8 @@ msgid "" "Speed of outer wall which is outermost and visible. It's used to be slower " "than inner wall speed to get better quality." msgstr "" -"En dışta görünen ve görünen dış duvarın hızı. Daha iyi kalite elde etmek için " -"iç duvar hızından daha yavaş olması kullanılır." +"En dışta görünen ve görünen dış duvarın hızı. Daha iyi kalite elde etmek " +"için iç duvar hızından daha yavaş olması kullanılır." msgid "Small perimeters" msgstr "Küçük çevre (perimeter)" @@ -10316,8 +10466,8 @@ msgstr "Duvar baskı sırası" 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 neighouring perimeter while printing. However, this option " +"Use Inner/Outer for best overhangs. This is because the overhanging walls " +"can adhere to a neighouring 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" @@ -10348,14 +10498,14 @@ msgstr "" "kalitesi ve boyutsal doğruluk için İç/Dış/İç seçeneğini kullanın. Ancak, dış " "duvarın üzerine baskı yapılacak bir iç çevre olmadığından sarkma performansı " "düşecektir. Bu seçenek, önce 3. çevreden itibaren iç duvarları, ardından dış " -"çevreyi ve son olarak da birinci iç çevreyi yazdırdığından etkili olması için " -"en az 3 duvar gerektirir. Bu seçenek çoğu durumda Dış/İç seçeneğine karşı " -"önerilir. \n" +"çevreyi ve son olarak da birinci iç çevreyi yazdırdığından etkili olması " +"için en az 3 duvar gerektirir. Bu seçenek çoğu durumda Dış/İç seçeneğine " +"karşı önerilir. \n" "\n" "İç/Dış/İç seçeneğinin aynı dış duvar kalitesi ve boyutsal doğruluk " "avantajları için Dış/İç seçeneğini kullanın. Bununla birlikte, yeni bir " -"katmanın ilk ekstrüzyonu görünür bir yüzey üzerinde başladığından z dikişleri " -"daha az tutarlı görünecektir.\n" +"katmanın ilk ekstrüzyonu görünür bir yüzey üzerinde başladığından z " +"dikişleri daha az tutarlı görünecektir.\n" "\n" " " @@ -10377,10 +10527,18 @@ msgid "" "\n" "Printing infill first may help with extreme overhangs as the walls have the " "neighbouring infill to adhere to. However, the infill will slighly 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." +"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 "" +"Duvar/dolgu sırası. Onay kutusu işaretlenmediğinde duvarlar önce yazdırılır, " +"bu çoğu durumda en iyi şekilde çalışır.\n" +"\n" +"Dolgunun önce yazdırılması, aşırı sarkmalarda yardımcı olabilir, çünkü " +"duvarlar komşu dolgulara yapışır. Ancak, dolgu duvarlara bağlı olduğu " +"yerlerde onları biraz dışarı iterek daha kötü bir dış yüzey bitişine neden " +"olabilir. Ayrıca, dolgunun parçanın dış yüzeylerinden parlamasına da sebep " +"olabilir." msgid "Wall loop direction" msgstr "Duvar döngüsü yönü" @@ -10389,8 +10547,8 @@ msgid "" "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 " +"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 sprial vase mode is enabled." @@ -10398,8 +10556,8 @@ msgstr "" "Yukarıdan aşağıya bakıldığında duvar döngülerinin ekstrüzyona uğradığı yön.\n" "\n" "Tek sayıyı ters çevir seçeneği etkinleştirilmedikçe, varsayılan olarak tüm " -"duvarlar saat yönünün tersine ekstrüde edilir. Bunu Otomatik dışında herhangi " -"bir seçeneğe ayarlayın, Ters açıklığa bakılmaksızın duvar yönünü " +"duvarlar saat yönünün tersine ekstrüde edilir. Bunu Otomatik dışında " +"herhangi bir seçeneğe ayarlayın, Ters açıklığa bakılmaksızın duvar yönünü " "zorlayacaktır.\n" "\n" "Spiral vazo modu etkinse bu seçenek devre dışı bırakılacaktır." @@ -10427,8 +10585,8 @@ msgid "" "Distance of the nozzle tip to the lid. Used for collision avoidance in by-" "object printing." msgstr "" -"Nozul ucunun kapağa olan mesafesi. Nesneye göre yazdırmada çarpışmayı önlemek " -"için kullanılır." +"Nozul ucunun kapağa olan mesafesi. Nesneye göre yazdırmada çarpışmayı " +"önlemek için kullanılır." msgid "" "Clearance radius around extruder. Used for collision avoidance in by-object " @@ -10451,19 +10609,20 @@ msgid "" "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." +"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 "" -"Bu seçenek, izin verilen yatak ağ alanı için minimum noktayı ayarlar. Prob XY " -"ofseti nedeniyle çoğu yazıcı yatağın tamamını tarayamaz. Prob noktasının " -"yatak alanı dışına çıkmamasını sağlamak için yatak ağının minimum ve maksimum " -"noktaları uygun şekilde ayarlanmalıdır. OrcaSlicer, adaptive_bed_mesh_min/" -"adaptive_bed_mesh_max değerlerinin bu min/maks noktalarını aşmamasını sağlar. " -"Bu bilgi genellikle yazıcınızın üreticisinden edinilebilir. Varsayılan ayar " -"(-99999, -99999) şeklindedir; bu, herhangi bir sınırın olmadığı anlamına " -"gelir, dolayısıyla yatağın tamamında problamaya izin verilir." +"Bu seçenek, izin verilen yatak ağ alanı için minimum noktayı ayarlar. Prob " +"XY ofseti nedeniyle çoğu yazıcı yatağın tamamını tarayamaz. Prob noktasının " +"yatak alanı dışına çıkmamasını sağlamak için yatak ağının minimum ve " +"maksimum noktaları uygun şekilde ayarlanmalıdır. OrcaSlicer, " +"adaptive_bed_mesh_min/adaptive_bed_mesh_max değerlerinin bu min/maks " +"noktalarını aşmamasını sağlar. Bu bilgi genellikle yazıcınızın üreticisinden " +"edinilebilir. Varsayılan ayar (-99999, -99999) şeklindedir; bu, herhangi bir " +"sınırın olmadığı anlamına gelir, dolayısıyla yatağın tamamında problamaya " +"izin verilir." msgid "Bed mesh max" msgstr "Maksimum yatak ağı" @@ -10473,19 +10632,20 @@ msgid "" "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." +"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 "" -"Bu seçenek, izin verilen yatak ağ alanı için maksimum noktayı ayarlar. Probun " -"XY ofseti nedeniyle çoğu yazıcı yatağın tamamını tarayamaz. Prob noktasının " -"yatak alanı dışına çıkmamasını sağlamak için yatak ağının minimum ve maksimum " -"noktaları uygun şekilde ayarlanmalıdır. OrcaSlicer, adaptive_bed_mesh_min/" -"adaptive_bed_mesh_max değerlerinin bu min/maks noktalarını aşmamasını sağlar. " -"Bu bilgi genellikle yazıcınızın üreticisinden edinilebilir. Varsayılan ayar " -"(99999, 99999) şeklindedir; bu, herhangi bir sınırın olmadığı anlamına gelir, " -"dolayısıyla yatağın tamamında problamaya izin verilir." +"Bu seçenek, izin verilen yatak ağ alanı için maksimum noktayı ayarlar. " +"Probun XY ofseti nedeniyle çoğu yazıcı yatağın tamamını tarayamaz. Prob " +"noktasının yatak alanı dışına çıkmamasını sağlamak için yatak ağının minimum " +"ve maksimum noktaları uygun şekilde ayarlanmalıdır. OrcaSlicer, " +"adaptive_bed_mesh_min/adaptive_bed_mesh_max değerlerinin bu min/maks " +"noktalarını aşmamasını sağlar. Bu bilgi genellikle yazıcınızın üreticisinden " +"edinilebilir. Varsayılan ayar (99999, 99999) şeklindedir; bu, herhangi bir " +"sınırın olmadığı anlamına gelir, dolayısıyla yatağın tamamında problamaya " +"izin verilir." msgid "Probe point distance" msgstr "Prob noktası mesafesi" @@ -10502,8 +10662,8 @@ msgid "Mesh margin" msgstr "Yatak ağı boşluğu" 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 "" "Bu seçenek, uyarlanabilir yatak ağ alanının XY yönlerinde genişletilmesi " "gereken ek mesafeyi belirler." @@ -10523,9 +10683,9 @@ msgstr "Akış oranı" 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" +"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 "" "Malzeme, erimiş hal ile kristal hal arasında geçiş yaptıktan sonra hacimsel " "değişime sahip olabilir. Bu ayar, bu filamentin gcode'daki tüm ekstrüzyon " @@ -10547,8 +10707,8 @@ msgid "Pressure advance(Klipper) AKA Linear advance factor(Marlin)" msgstr "Basınç avansı (Klipper) Doğrusal ilerleme faktörü (Marlin)" 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 "" "Diğer çizgi genişlikleri 0'a ayarlanmışsa varsayılan çizgi genişliği. % " "olarak ifade edilirse nozul çapı üzerinden hesaplanacaktır." @@ -10557,13 +10717,39 @@ msgid "Keep fan always on" msgstr "Fanı her zaman açık tut" msgid "" -"If enable this setting, part cooling fan will never be stoped and will run at " -"least at minimum speed to reduce the frequency of starting and stoping" +"If enable this setting, part cooling fan will never be stoped and will run " +"at least at minimum speed to reduce the frequency of starting and stoping" msgstr "" "Bu ayarı etkinleştirirseniz, parça soğutma fanı hiçbir zaman durdurulmayacak " "ve başlatma ve durdurma sıklığını azaltmak için en azından minimum hızda " "çalışacaktır" +msgid "Don't slow down outer walls" +msgstr "Dış duvarları yavaşlatma" + +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 " +"artefacts that appear like z banding \n" +"3. To avoid printing at speeds which cause VFAs (fine artefacts) on the " +"external walls\n" +"\n" +msgstr "" +"Bu ayar etkinleştirildiğinde, dış çevrelerin minimum katman süresine uyması " +"için yavaşlatılmamasını sağlar. Bu, özellikle aşağıdaki durumlarda yardımcı " +"olur:\n" +"\n" +"1. Parlak filamentler yazdırırken parlaklıktaki değişikliklerden kaçınmak " +"için\n" +"2. Z bantlanması gibi görünen hafif duvar kusurları yaratabilecek dış duvar " +"hızındaki değişikliklerden kaçınmak için\n" +"3. Dış duvarlarda VFAs (ince kusurlar) oluşturan hızlarda yazdırmaktan " +"kaçınmak için\n" + msgid "Layer time" msgstr "Katman süresi" @@ -10644,11 +10830,11 @@ msgid "" "Be sure to allow enough space between objects, as this compensation is done " "after the checks." msgstr "" -"Filamentin soğuduktan sonra alacağı büzülme yüzdesini girin (100 mm yerine 94 " -"mm ölçerseniz 94%). Parça, telafi etmek için xy'de ölçeklendirilecektir. " +"Filamentin soğuduktan sonra alacağı büzülme yüzdesini girin (100 mm yerine " +"94 mm ölçerseniz 94%). Parça, telafi etmek için xy'de ölçeklendirilecektir. " "Yalnızca çevre için kullanılan filament dikkate alınır.\n" -"Bu telafi kontrollerden sonra yapıldığından, nesneler arasında yeterli boşluk " -"bıraktığınızdan emin olun." +"Bu telafi kontrollerden sonra yapıldığından, nesneler arasında yeterli " +"boşluk bıraktığınızdan emin olun." msgid "Loading speed" msgstr "Yükleme hızı" @@ -10699,8 +10885,8 @@ msgid "" "Filament is cooled by being moved back and forth in the cooling tubes. " "Specify desired number of these moves." msgstr "" -"Filament, soğutma tüpleri içinde ileri geri hareket ettirilerek soğutulur. Bu " -"sayısını belirtin." +"Filament, soğutma tüpleri içinde ileri geri hareket ettirilerek soğutulur. " +"Bu sayısını belirtin." msgid "Speed of the first cooling move" msgstr "İlk soğutma hareketi hızı" @@ -10714,9 +10900,9 @@ msgstr "Silme kulesi üzerinde minimum boşaltım" 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." +"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 "" "Bir takım değişiminden sonra, yeni yüklenen filamentin nozul içindeki kesin " "konumu bilinmeyebilir ve filament basıncı muhtemelen henüz stabil değildir. " @@ -10733,12 +10919,13 @@ msgstr "Soğutma hareketleri bu hıza doğru giderek hızlanır." 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." +"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 "" "Yazıcı donanım yazılımının (veya Çoklu Malzeme Ünitesi 2.0'ın) takım " -"değişikliği sırasında (T kodu yürütülürken) yeni bir filament yükleme süresi. " -"Bu süre, G kodu zaman tahmincisi tarafından toplam baskı süresine eklenir." +"değişikliği sırasında (T kodu yürütülürken) yeni bir filament yükleme " +"süresi. Bu süre, G kodu zaman tahmincisi tarafından toplam baskı süresine " +"eklenir." msgid "Ramming parameters" msgstr "Sıkıştırma parametreleri" @@ -10752,8 +10939,8 @@ msgstr "" 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." +"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 "" "Yazıcı ürün yazılımının (veya Çoklu Malzeme Ünitesi 2.0'ın) takım değişimi " "sırasında (T kodu yürütülürken) filamenti boşaltma süresi. Bu süre, G kodu " @@ -10801,7 +10988,8 @@ msgstr "Filament malzeme türü" msgid "Soluble material" msgstr "Çözünür malzeme" -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 "" "Çözünür malzeme genellikle destek ve destek arayüzünü yazdırmak için " "kullanılır" @@ -10809,7 +10997,8 @@ msgstr "" msgid "Support material" msgstr "Destek malzemesi" -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 "" "Destek malzemesi yaygın olarak destek ve destek arayüzünü yazdırmak için " "kullanılır" @@ -10857,8 +11046,8 @@ msgid "Solid infill direction" msgstr "Katı dolgu yönü" 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 "" "Hattın başlangıcını veya ana yönünü kontrol eden katı dolgu deseni açısı" @@ -10876,8 +11065,8 @@ msgid "" "Density of internal sparse infill, 100% turns all sparse infill into solid " "infill and internal solid infill pattern will be used" msgstr "" -"İç seyrek dolgunun yoğunluğu, %100 tüm seyrek dolguyu katı dolguya dönüştürür " -"ve iç katı dolgu modeli kullanılacaktır" +"İç seyrek dolgunun yoğunluğu, %100 tüm seyrek dolguyu katı dolguya " +"dönüştürür ve iç katı dolgu modeli kullanılacaktır" msgid "Sparse infill pattern" msgstr "Dolgu deseni" @@ -10925,22 +11114,23 @@ 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" +"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 "" "Bir dolgu hattını, ek bir çevrenin kısa bir bölümü ile bir iç çevreye " -"bağlayın. Yüzde olarak ifade edilirse (örnek: %15) dolgu ekstrüzyon genişliği " -"üzerinden hesaplanır. Orca Slicer iki yakın dolgu hattını kısa bir çevre " -"segmentine bağlamaya çalışıyor. infill_anchor_max'tan daha kısa böyle bir " -"çevre segmenti bulunamazsa, dolgu hattı yalnızca bir taraftaki bir çevre " +"bağlayın. Yüzde olarak ifade edilirse (örnek: %15) dolgu ekstrüzyon " +"genişliği üzerinden hesaplanır. Orca Slicer iki yakın dolgu hattını kısa bir " +"çevre segmentine bağlamaya çalışıyor. infill_anchor_max'tan daha kısa böyle " +"bir çevre segmenti bulunamazsa, dolgu hattı yalnızca bir taraftaki bir çevre " "segmentine bağlanır ve alınan çevre segmentinin uzunluğu bu parametreyle " "sınırlıdır, ancak çapa_uzunluk_max'tan uzun olamaz.\n" -"Tek bir dolgu hattına bağlı sabitleme çevrelerini devre dışı bırakmak için bu " -"parametreyi sıfıra ayarlayın." +"Tek bir dolgu hattına bağlı sabitleme çevrelerini devre dışı bırakmak için " +"bu parametreyi sıfıra ayarlayın." msgid "0 (no open anchors)" msgstr "0 (açık bağlantı yok)" @@ -10955,22 +11145,23 @@ 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" +"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 "" "Bir dolgu hattını, ek bir çevrenin kısa bir bölümü ile bir iç çevreye " -"bağlayın. Yüzde olarak ifade edilirse (örnek: %15) dolgu ekstrüzyon genişliği " -"üzerinden hesaplanır. Orca Slicer iki yakın dolgu hattını kısa bir çevre " -"segmentine bağlamaya çalışıyor. Bu parametreden daha kısa bir çevre segmenti " -"bulunamazsa, dolgu hattı sadece bir kenardaki bir çevre segmentine bağlanır " -"ve alınan çevre segmentinin uzunluğu infill_anchor ile sınırlıdır ancak bu " -"parametreden daha uzun olamaz.\n" -"0'a ayarlanırsa dolgu bağlantısı için eski algoritma kullanılacaktır; 1000 ve " -"0 ile aynı sonucu oluşturmalıdır." +"bağlayın. Yüzde olarak ifade edilirse (örnek: %15) dolgu ekstrüzyon " +"genişliği üzerinden hesaplanır. Orca Slicer iki yakın dolgu hattını kısa bir " +"çevre segmentine bağlamaya çalışıyor. Bu parametreden daha kısa bir çevre " +"segmenti bulunamazsa, dolgu hattı sadece bir kenardaki bir çevre segmentine " +"bağlanır ve alınan çevre segmentinin uzunluğu infill_anchor ile sınırlıdır " +"ancak bu parametreden daha uzun olamaz.\n" +"0'a ayarlanırsa dolgu bağlantısı için eski algoritma kullanılacaktır; 1000 " +"ve 0 ile aynı sonucu oluşturmalıdır." msgid "0 (Simple connect)" msgstr "0 (Basit bağlantı)" @@ -10988,8 +11179,8 @@ msgid "" "Acceleration of top surface infill. Using a lower value may improve top " "surface quality" msgstr "" -"Üst yüzey dolgusunun hızlandırılması. Daha düşük bir değerin kullanılması üst " -"yüzey kalitesini iyileştirebilir" +"Üst yüzey dolgusunun hızlandırılması. Daha düşük bir değerin kullanılması " +"üst yüzey kalitesini iyileştirebilir" msgid "Acceleration of outer wall. Using a lower value can improve quality" msgstr "" @@ -10999,8 +11190,8 @@ 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." msgstr "" -"Köprülerin hızlandırılması. Değer yüzde olarak ifade edilirse (örn. %50), dış " -"duvar ivmesine göre hesaplanacaktır." +"Köprülerin hızlandırılması. Değer yüzde olarak ifade edilirse (örn. %50), " +"dış duvar ivmesine göre hesaplanacaktır." msgid "mm/s² or %" msgstr "mm/s² veya %" @@ -11037,7 +11228,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" +msgid "" +"Klipper's max_accel_to_decel will be adjusted to this %% of acceleration" msgstr "" "Klipper'ın max_accel_to_decel değeri ivmenin bu %%'sine göre ayarlanacak" @@ -11070,8 +11262,8 @@ msgid "Initial layer height" msgstr "Başlangıç katman yüksekliği" msgid "" -"Height of initial layer. Making initial layer height to be thick slightly can " -"improve build plate adhension" +"Height of initial layer. Making initial layer height to be thick slightly " +"can improve build plate adhension" msgstr "" "İlk katmanın yüksekliği. İlk katman yüksekliğini biraz kalın yapmak, baskı " "plakasının yapışmasını iyileştirebilir" @@ -11112,16 +11304,19 @@ msgstr "Maksimum fan hızı" 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 "" "Fan hızı, \"close_fan_the_first_x_layers\" katmanında sıfırdan " "\"ful_fan_speed_layer\" katmanında maksimuma doğrusal olarak artırılacaktır. " -"\"full_fan_speed_layer\", \"close_fan_the_first_x_layers\" değerinden düşükse " -"göz ardı edilecektir; bu durumda fan, \"close_fan_the_first_x_layers\" + 1 " -"katmanında izin verilen maksimum hızda çalışacaktır." +"\"full_fan_speed_layer\", \"close_fan_the_first_x_layers\" değerinden " +"düşükse göz ardı edilecektir; bu durumda fan, \"close_fan_the_first_x_layers" +"\" + 1 katmanında izin verilen maksimum hızda çalışacaktır." + +msgid "layer" +msgstr "katman" msgid "Support interface fan speed" msgstr "Destekler için fan hızı" @@ -11195,7 +11390,7 @@ msgstr "" "ve daha yavaş yazdırılmalıdır" msgid "Precise Z height" -msgstr "Hassas Z yüksekliği" +msgstr "Hassas z yüksekliği" msgid "" "Enable this to get precise z height of object after slicing. It will get the " @@ -11214,11 +11409,11 @@ msgid "" "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 recomended 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 recomended 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 "" "G2 ve G3 hareketlerine sahip bir G kodu dosyası elde etmek için bunu " "etkinleştirin. Montaj toleransı çözünürlükle aynıdır. \n" @@ -11255,8 +11450,8 @@ msgid "" "The metallic material of nozzle. This determines the abrasive resistance of " "nozzle, and what kind of filament can be printed" msgstr "" -"Nozulnin metalik malzemesi. Bu, nozulun aşınma direncini ve ne tür filamentin " -"basılabileceğini belirler" +"Nozulnin metalik malzemesi. Bu, nozulun aşınma direncini ve ne tür " +"filamentin basılabileceğini belirler" msgid "Undefine" msgstr "Tanımsız" @@ -11308,8 +11503,8 @@ msgid "Best auto arranging position in range [0,1] w.r.t. bed shape." msgstr "Yatak şekline göre [0,1] aralığında en iyi otomatik düzenleme konumu." 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 "" "Makinede yardımcı parça soğutma fanı varsa bu seçeneği etkinleştirin. G-code " "komut: M106 P2 S(0-255)." @@ -11352,8 +11547,8 @@ msgid "" msgstr "" "Soğutma fanını başlatmak için hedef hıza düşmeden önce bu süre boyunca " "maksimum fan hızı komutunu verin.\n" -"Bu, düşük PWM/gücün fanın durma noktasından dönmeye başlaması veya fanın daha " -"hızlı hızlanması için yetersiz olabileceği fanlar için kullanışlıdır.\n" +"Bu, düşük PWM/gücün fanın durma noktasından dönmeye başlaması veya fanın " +"daha hızlı hızlanması için yetersiz olabileceği fanlar için kullanışlıdır.\n" "Devre dışı bırakmak için 0'a ayarlayın." msgid "Time cost" @@ -11363,7 +11558,7 @@ msgid "The printer cost per hour" msgstr "Yazıcı saat başına maliyeti" msgid "money/h" -msgstr "para/h" +msgstr "ücret/Sa" msgid "Support control chamber temperature" msgstr "Destek kontrol ortam sıcaklığı" @@ -11407,20 +11602,21 @@ msgstr "Nesneleri etiketle" 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." +"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 "" "G-Code etiketleme yazdırma hareketlerine ait oldukları nesneyle ilgili " "yorumlar eklemek için bunu etkinleştirin; bu, Octoprint CancelObject " -"eklentisi için kullanışlıdır. Bu ayarlar Tek Ekstruder Çoklu Malzeme kurulumu " -"ve Nesneye Temizleme / Dolguya Temizleme ile uyumlu DEĞİLDİR." +"eklentisi için kullanışlıdır. Bu ayarlar Tek Ekstruder Çoklu Malzeme " +"kurulumu ve Nesneye Temizleme / Dolguya Temizleme ile uyumlu DEĞİLDİR." msgid "Exclude objects" msgstr "Nesneleri hariç tut" msgid "Enable this option to add EXCLUDE OBJECT command in g-code" -msgstr "G koduna EXCLUDE OBJECT komutunu eklemek için bu seçeneği etkinleştirin" +msgstr "" +"G koduna EXCLUDE OBJECT komutunu eklemek için bu seçeneği etkinleştirin" msgid "Verbose G-code" msgstr "Ayrıntılı G kodu" @@ -11460,10 +11656,10 @@ msgstr "Dolgu/Duvar örtüşmesi" #, 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 "" "Daha iyi yapışma için dolgu alanı duvarla örtüşecek şekilde hafifçe " "genişletilir. Yüzde değeri seyrek dolgunun çizgi genişliğine göredir. Aşırı " @@ -11476,8 +11672,8 @@ msgstr "Üst/Alt katı dolgu/Duvar örtüşmesi" #, 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, minimising the " +"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, minimising the " "appearance of pinholes. The percentage value is relative to line width of " "sparse infill" msgstr "" @@ -11495,12 +11691,12 @@ msgstr "Arayüz kabukları" msgid "" "Force the generation of solid shells between adjacent materials/volumes. " -"Useful for multi-extruder prints with translucent materials or manual soluble " -"support material" +"Useful for multi-extruder prints with translucent materials or manual " +"soluble support material" msgstr "" "Bitişik malzemeler/hacimler arasında katı kabuk oluşumunu zorlayın. Yarı " -"saydam malzemelerle veya elle çözülebilen destek malzemesiyle çoklu ekstruder " -"baskıları için kullanışlıdır" +"saydam malzemelerle veya elle çözülebilen destek malzemesiyle çoklu " +"ekstruder baskıları için kullanışlıdır" msgid "Maximum width of a segmented region" msgstr "Bölümlere ayrılmış bir bölgenin maksimum genişliği" @@ -11515,8 +11711,8 @@ msgstr "Bölümlere ayrılmış bir bölgenin birbirine kenetlenen derinliği" msgid "Interlocking depth of a segmented region. Zero disables this feature." msgstr "" -"Bölümlere ayrılmış bir bölgenin birbirine kenetlenen derinliği. 0 bu özelliği " -"devre dışı bırakır." +"Bölümlere ayrılmış bir bölgenin birbirine kenetlenen derinliği. 0 bu " +"özelliği devre dışı bırakır." msgid "Ironing Type" msgstr "Ütüleme tipi" @@ -11594,7 +11790,7 @@ msgstr "" "destekleyip desteklemediği" msgid "Emit limits to G-code" -msgstr "G-code sınırları" +msgstr "G-kod sınırları" msgid "Machine limits" msgstr "Yazıcı sınırları" @@ -11607,8 +11803,8 @@ msgstr "" "G kodu tadı Klipper olarak ayarlandığında bu seçenek göz ardı edilecektir." 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 "" "Bu G kodu duraklatma yazdırması için bir kod olarak kullanılacaktır. " "Kullanıcı gcode görüntüleyiciye duraklatma G kodunu ekleyebilir" @@ -11739,8 +11935,8 @@ msgid "Maximum acceleration for travel (M204 T), it only applies to Marlin 2" msgstr "Seyahat için maksimum ivme (M204 T), yalnızca Marlin 2 için geçerlidir" 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 "" "Otomatik soğutma etkinleştirildiğinde parça soğutma fanı hızı artırılabilir. " "Bu, parça soğutma fanının maksimum hız sınırlamasıdır" @@ -11760,8 +11956,8 @@ msgid "Extrusion rate smoothing" msgstr "Ekstrüzyon hızını yumuşatma" msgid "" -"This parameter smooths out sudden extrusion rate changes that happen when the " -"printer transitions from printing a high flow (high speed/larger width) " +"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" @@ -11772,11 +11968,12 @@ msgid "" "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" +"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 " @@ -11798,13 +11995,13 @@ msgstr "" "\n" "0 değeri özelliği devre dışı bırakır. \n" "\n" -"Yüksek hızlı, yüksek akışlı doğrudan tahrikli bir yazıcı için (Bambu lab veya " -"Voron gibi) bu değer genellikle gerekli değildir. Ancak özellik hızlarının " -"büyük ölçüde değiştiği bazı durumlarda marjinal bir fayda sağlayabilir. " -"Örneğin, çıkıntılar nedeniyle agresif yavaşlamalar olduğunda. Bu durumlarda " -"300-350mm3/s2 civarında yüksek bir değer önerilir çünkü bu, basınç " -"ilerlemesinin daha yumuşak bir akış geçişi elde etmesine yardımcı olmak için " -"yeterli yumuşatmaya izin verir.\n" +"Yüksek hızlı, yüksek akışlı doğrudan tahrikli bir yazıcı için (Bambu lab " +"veya Voron gibi) bu değer genellikle gerekli değildir. Ancak özellik " +"hızlarının büyük ölçüde değiştiği bazı durumlarda marjinal bir fayda " +"sağlayabilir. Örneğin, çıkıntılar nedeniyle agresif yavaşlamalar olduğunda. " +"Bu durumlarda 300-350mm3/s2 civarında yüksek bir değer önerilir çünkü bu, " +"basınç ilerlemesinin daha yumuşak bir akış geçişi elde etmesine yardımcı " +"olmak için yeterli yumuşatmaya izin verir.\n" "\n" "Basınç avansı olmayan daha yavaş yazıcılar için değer çok daha düşük " "ayarlanmalıdır. Doğrudan tahrikli ekstruderler için 10-15mm3/s2 ve Bowden " @@ -11901,8 +12098,8 @@ msgid "" "Orca Slicer can upload G-code files to a printer host. This field must " "contain the kind of the host." msgstr "" -"Orca Slicer, G kodu dosyalarını bir yazıcı ana bilgisayarına yükleyebilir. Bu " -"alan ana bilgisayarın türünü içermelidir." +"Orca Slicer, G kodu dosyalarını bir yazıcı ana bilgisayarına yükleyebilir. " +"Bu alan ana bilgisayarın türünü içermelidir." msgid "Nozzle volume" msgstr "Nozul hacmi" @@ -11943,8 +12140,8 @@ msgid "" "Distance of the extruder tip from the position where the filament is parked " "when unloaded. This should match the value in printer firmware." msgstr "" -"Ekstruder ucunun, boşaltıldığında filamentin park edildiği konumdan uzaklığı. " -"Bu ayar yazıcı ürün yazılımındaki değerle eşleşmelidir." +"Ekstruder ucunun, boşaltıldığında filamentin park edildiği konumdan " +"uzaklığı. Bu ayar yazıcı ürün yazılımındaki değerle eşleşmelidir." msgid "Extra loading distance" msgstr "Ekstra yükleme mesafesi" @@ -11971,8 +12168,8 @@ msgstr "Dolguda geri çekmeyi azalt" 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" +"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 "" "Hareket kesinlikle dolgu alanına girdiğinde geri çekilmeyin. Bu, sızıntının " "görülemeyeceği anlamına gelir. Bu, karmaşık model için geri çekme sürelerini " @@ -12009,11 +12206,11 @@ msgid "Make overhangs printable - Hole area" msgstr "Yazdırılabilir çıkıntı delik alanı oluşturun" 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 "" -"Modelin tabanındaki bir deliğin, konik malzemeyle doldurulmadan önce maksimum " -"alanı. 0 değeri, model tabanındaki tüm delikleri dolduracaktır." +"Modelin tabanındaki bir deliğin, konik malzemeyle doldurulmadan önce " +"maksimum alanı. 0 değeri, model tabanındaki tüm delikleri dolduracaktır." msgid "mm²" msgstr "mm²" @@ -12023,11 +12220,11 @@ msgstr "Çıkıntılı duvarı algıla" #, 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 "" -"Çizgi genişliğine göre çıkıntı yüzdesini tespit edin ve yazdırmak için farklı " -"hızlar kullanın. %%100 çıkıntı için köprü hızı kullanılır." +"Çizgi genişliğine göre çıkıntı yüzdesini tespit edin ve yazdırmak için " +"farklı hızlar kullanın. %%100 çıkıntı için köprü hızı kullanılır." msgid "" "Line width of inner wall. If expressed as a %, it will be computed over the " @@ -12049,8 +12246,8 @@ 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" "\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." @@ -12071,10 +12268,11 @@ msgid "" "argument, and they can access the Orca Slicer config settings by reading " "environment variables." msgstr "" -"Çıktı G-kodunu özel komut dosyaları aracılığıyla işlemek istiyorsanız, mutlak " -"yollarını burada listeleyin. Birden fazla betiği noktalı virgülle ayırın. " -"Betiklere ilk argüman olarak G-code dosyasının mutlak yolu aktarılır ve ortam " -"değişkenlerini okuyarak Orca Slicer yapılandırma ayarlarına erişebilirler." +"Çıktı G-kodunu özel komut dosyaları aracılığıyla işlemek istiyorsanız, " +"mutlak yollarını burada listeleyin. Birden fazla betiği noktalı virgülle " +"ayırın. Betiklere ilk argüman olarak G-code dosyasının mutlak yolu aktarılır " +"ve ortam değişkenlerini okuyarak Orca Slicer yapılandırma ayarlarına " +"erişebilirler." msgid "Printer notes" msgstr "Yazıcı notları" @@ -12086,7 +12284,8 @@ msgid "Raft contact Z distance" msgstr "Raft kontak Z mesafesi" msgid "Z gap between object and raft. Ignored for soluble interface" -msgstr "Nesne ve raft arasındaki Z boşluğu. Çözünür arayüz için göz ardı edildi" +msgstr "" +"Nesne ve raft arasındaki Z boşluğu. Çözünür arayüz için göz ardı edildi" msgid "Raft expansion" msgstr "Raft genişletme" @@ -12115,8 +12314,8 @@ msgid "" "Object will be raised by this number of support layers. Use this function to " "avoid wrapping when print ABS" msgstr "" -"Nesne bu sayıdaki destek katmanı tarafından yükseltilecektir. ABS yazdırırken " -"sarmayı önlemek için bu işlevi kullanın" +"Nesne bu sayıdaki destek katmanı tarafından yükseltilecektir. ABS " +"yazdırırken sarmayı önlemek için bu işlevi kullanın" msgid "" "G-code path is genereated after simplifing the contour of model to avoid too " @@ -12131,7 +12330,8 @@ msgid "Travel distance threshold" msgstr "Seyahat mesafesi" msgid "" -"Only trigger retraction when the travel distance is longer than this threshold" +"Only trigger retraction when the travel distance is longer than this " +"threshold" msgstr "" "Geri çekmeyi yalnızca hareket mesafesi bu eşikten daha uzun olduğunda " "tetikleyin" @@ -12139,7 +12339,8 @@ msgstr "" msgid "Retract amount before wipe" msgstr "Temizleme işlemi öncesi geri çekme miktarı" -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 "" "Geri çekme uzunluğuna göre, temizlemeden önce hızlı geri çekilmenin uzunluğu" @@ -12356,13 +12557,13 @@ msgid "Seam gap" msgstr "Dikiş boşluğu" 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 "" -"Kapalı döngü ekstrüzyonda dikişin görünürlüğünü azaltmak için döngü kesintiye " -"uğrar ve belirli bir miktarda kısaltılır.\n" +"Kapalı döngü ekstrüzyonda dikişin görünürlüğünü azaltmak için döngü " +"kesintiye uğrar ve belirli bir miktarda kısaltılır.\n" "Bu miktar milimetre cinsinden veya mevcut ekstruder çapının yüzdesi olarak " "belirtilebilir. Bu parametrenin varsayılan değeri %10'dur." @@ -12371,8 +12572,8 @@ msgstr "Atkı birleşim dikişi (beta)" msgid "Use scarf joint to minimize seam visibility and increase seam strength." msgstr "" -"Dikiş görünürlüğünü en aza indirmek ve dikiş mukavemetini arttırmak için atkı " -"birleşimini kullanın." +"Dikiş görünürlüğünü en aza indirmek ve dikiş mukavemetini arttırmak için " +"atkı birleşimini kullanın." msgid "Conditional scarf joint" msgstr "Koşullu atkı birleşimi" @@ -12390,9 +12591,9 @@ msgstr "Koşullu açı eşiği" 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°." +"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 "" "Bu seçenek, koşullu bir atkı eklem dikişi uygulamak için eşik açısını " "ayarlar.\n" @@ -12407,8 +12608,8 @@ msgstr "Koşullu çıkıntı eşiği" 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 " +"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 "" "Bu seçenek, atkı bağlantı dikişlerinin uygulanması için sarkma eşiğini " @@ -12422,22 +12623,22 @@ msgstr "Atkı birleşim hızı" 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%." +"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 "" "Bu seçenek, atkı bağlantılarının yazdırma hızını ayarlar. Atkı " "bağlantılarının yavaş bir hızda (100 mm/s'den az) yazdırılması tavsiye " "edilir. Ayarlanan hızın dış veya iç duvarların hızından önemli ölçüde farklı " -"olması durumunda 'Ekstrüzyon hızı yumuşatma' seçeneğinin etkinleştirilmesi de " -"tavsiye edilir. Burada belirtilen hız, dış veya iç duvarların hızından daha " -"yüksekse, yazıcı varsayılan olarak iki hızdan daha yavaş olanı seçecektir. " -"Yüzde olarak belirtildiğinde (örn. %80), hız, ilgili dış veya iç duvar hızına " -"göre hesaplanır. Varsayılan değer %100 olarak ayarlanmıştır." +"olması durumunda 'Ekstrüzyon hızı yumuşatma' seçeneğinin etkinleştirilmesi " +"de tavsiye edilir. Burada belirtilen hız, dış veya iç duvarların hızından " +"daha yüksekse, yazıcı varsayılan olarak iki hızdan daha yavaş olanı " +"seçecektir. Yüzde olarak belirtildiğinde (örn. %80), hız, ilgili dış veya iç " +"duvar hızına göre hesaplanır. Varsayılan değer %100 olarak ayarlanmıştır." msgid "Scarf joint flow ratio" msgstr "Atkı birleşimi akış oranı" @@ -12451,8 +12652,8 @@ msgstr "Atkı başlangıç ​​yüksekliği" 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 "" "Atkı başlangıç yüksekliği.\n" "Bu miktar milimetre cinsinden veya geçerli katman yüksekliğinin yüzdesi " @@ -12471,8 +12672,8 @@ msgid "" "Length of the scarf. Setting this parameter to zero effectively disables the " "scarf." msgstr "" -"Atkının uzunluğu. Bu parametrenin 0 a ayarlanması atkıyı dolaylı yoldan devre " -"dışı bırakır." +"Atkının uzunluğu. Bu parametrenin 0 a ayarlanması atkıyı dolaylı yoldan " +"devre dışı bırakır." msgid "Scarf steps" msgstr "Atkı kademesi" @@ -12513,15 +12714,15 @@ msgid "Wipe before external loop" msgstr "Harici döngüden önce silin" msgid "" -"To minimise visibility of potential overextrusion at the start of an external " -"perimeter when printing with Outer/Inner or Inner/Outer/Inner wall print " -"order, the deretraction 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 minimise visibility of potential overextrusion at the start of an " +"external perimeter when printing with Outer/Inner or Inner/Outer/Inner wall " +"print order, the deretraction 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 deretraction 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 deretraction move." msgstr "" "Dış/İç veya İç/Dış/İç duvar baskı sırası ile yazdırırken, dış çevrenin " "başlangıcında olası aşırı çıkıntının görünürlüğünü en aza indirmek için, " @@ -12530,8 +12731,8 @@ msgstr "" "yüzeyden gizlenir. \n" "\n" "Bu, Dış/İç veya İç/Dış/İç duvar yazdırma sırası ile yazdırırken " -"kullanışlıdır, çünkü bu modlarda, bir geri çekilme hareketinin hemen ardından " -"bir dış çevrenin yazdırılması daha olasıdır." +"kullanışlıdır, çünkü bu modlarda, bir geri çekilme hareketinin hemen " +"ardından bir dış çevrenin yazdırılması daha olasıdır." msgid "Wipe speed" msgstr "Temizleme hızı" @@ -12597,7 +12798,8 @@ msgid "Skirt loops" msgstr "Etek sayısı" msgid "Number of loops for the skirt. Zero means disabling skirt" -msgstr "Etek için ilmek sayısı. Sıfır, eteği devre dışı bırakmak anlamına gelir" +msgstr "" +"Etek için ilmek sayısı. Sıfır, eteği devre dışı bırakmak anlamına gelir" msgid "Skirt speed" msgstr "Etek hızı" @@ -12642,8 +12844,8 @@ msgstr "" "bırakmıştır" 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 "" "İç katı dolgunun çizgi genişliği. % olarak ifade edilirse Nozul çapı " "üzerinden hesaplanacaktır." @@ -12657,8 +12859,8 @@ msgid "" "generated model has no seam" msgstr "" "Spiralleştirme, dış konturun z hareketlerini yumuşatır. Ve katı bir modeli, " -"katı alt katmanlara sahip tek duvarlı bir baskıya dönüştürür. Oluşturulan son " -"modelde dikiş yok." +"katı alt katmanlara sahip tek duvarlı bir baskıya dönüştürür. Oluşturulan " +"son modelde dikiş yok." msgid "Smooth Spiral" msgstr "Pürüzsüz spiral" @@ -12683,11 +12885,12 @@ msgstr "" 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." +"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 "" "Düzgün veya geleneksel mod seçilirse her baskı için bir hızlandırılmış video " "oluşturulacaktır. Her katman basıldıktan sonra oda kamerasıyla anlık görüntü " @@ -12748,9 +12951,10 @@ msgid "No sparse layers (beta)" msgstr "Seyrek katman yok (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 "" "Etkinleştirilirse, silme kulesi araç değişimi olmayan katmanlarda " "yazdırılmayacaktır. Araç değişimi olan katmanlarda, ekstruder silme kulesini " @@ -12775,16 +12979,16 @@ 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 "" -"Üçgen mesh dilimleme sırasında 2x boşluk kapatma yarıçapından küçük çatlaklar " -"doldurulmaktadır. Boşluk kapatma işlemi son yazdırma çözünürlüğünü " +"Üçgen mesh dilimleme sırasında 2x boşluk kapatma yarıçapından küçük " +"çatlaklar doldurulmaktadır. Boşluk kapatma işlemi son yazdırma çözünürlüğünü " "düşürebilir, bu nedenle değerin oldukça düşük tutulması tavsiye edilir." msgid "Slicing Mode" msgstr "Dilimleme modu" 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 "" "3DLabPrint uçak modelleri için \"Çift-tek\" seçeneğini kullanın. Modeldeki " "tüm delikleri kapatmak için \"Delikleri kapat\"ı kullanın." @@ -12808,9 +13012,10 @@ msgid "" "print bed, set this to -0.3 (or fix your endstop)." msgstr "" "Bu değer, çıkış G-kodu içindeki tüm Z koordinatlarına eklenir (veya " -"çıkarılır).Bu, kötü Z endstop konumunu telafi etmek için kullanılır: örneğin, " -"endstop sıfır noktanız aslında nozulu baskı tablasından 0.3mm uzakta " -"bırakıyorsa, bu değeri -0.3 olarak ayarlayın (veya endstop'unuzu düzeltin)." +"çıkarılır).Bu, kötü Z endstop konumunu telafi etmek için kullanılır: " +"örneğin, endstop sıfır noktanız aslında nozulu baskı tablasından 0.3mm " +"uzakta bırakıyorsa, bu değeri -0.3 olarak ayarlayın (veya endstop'unuzu " +"düzeltin)." msgid "Enable support" msgstr "Desteği etkinleştir" @@ -12864,7 +13069,8 @@ msgid "" "Only create support for critical regions including sharp tail, cantilever, " "etc." msgstr "" -"Yalnızca keskin kuyruk, konsol vb. gibi kritik bölgeler için destek oluşturun." +"Yalnızca keskin kuyruk, konsol vb. gibi kritik bölgeler için destek " +"oluşturun." msgid "Remove small overhangs" msgstr "Küçük çıkıntıları kaldır" @@ -12901,7 +13107,8 @@ msgstr "Taban için arayüz filamentini azaltın" msgid "" "Avoid using support interface filament to print support base if possible." msgstr "" -"Destek tabanını yazdırmak için destek arayüzü filamentini kullanmaktan kaçının" +"Destek tabanını yazdırmak için destek arayüzü filamentini kullanmaktan " +"kaçının" msgid "" "Line width of support. If expressed as a %, it will be computed over the " @@ -12976,8 +13183,8 @@ msgstr "Arayüz deseni" msgid "" "Line pattern of support interface. Default pattern for non-soluble support " -"interface is Rectilinear, while default pattern for soluble support interface " -"is Concentric" +"interface is Rectilinear, while default pattern for soluble support " +"interface is Concentric" msgstr "" "Destek arayüzünün çizgi deseni. Çözünmeyen destek arayüzü için varsayılan " "model Doğrusaldır, çözünebilir destek arayüzü için varsayılan model ise " @@ -13006,11 +13213,12 @@ msgid "" "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." +"aggressively and save a lot of material (default organic), while hybrid " +"style will create similar structure to normal support under large flat " +"overhangs." msgstr "" -"Destek stil ve şekli. Normal destek için, destekleri düzenli bir ızgara içine " -"projelendirmek daha stabil destekler oluşturacaktır (varsayılan), aynı " +"Destek stil ve şekli. Normal destek için, destekleri düzenli bir ızgara " +"içine projelendirmek daha stabil destekler oluşturacaktır (varsayılan), aynı " "zamanda sıkı destek kuleleri malzeme tasarrufu sağlar ve nesne üzerindeki " "izleri azaltır.\n" "Ağaç destek için, ince ve organik tarz, dalları daha etkili bir şekilde " @@ -13059,8 +13267,8 @@ msgid "Tree support branch angle" msgstr "Ağaç desteği dal açısı" 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 " +"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 "" "Bu ayar, ağaç desteğinin dallarının oluşmasına izin verilen maksimum çıkıntı " @@ -13092,10 +13300,11 @@ msgstr "Dal Yoğunluğu" #. 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 "" "Dalların uçlarını oluşturmak için kullanılan destek yapısının yoğunluğunu " "ayarlar. Daha yüksek bir değer daha iyi çıkıntılarla sonuçlanır, ancak " @@ -13107,8 +13316,8 @@ msgid "Adaptive layer height" msgstr "Uyarlanabilir katman yüksekliği" 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 "" "Bu seçeneğin etkinleştirilmesi, ilki hariç ağaç destek katmanının " "yüksekliğinin otomatik olarak hesaplanacağı anlamına gelir " @@ -13163,8 +13372,8 @@ msgstr "Çift duvarlı dal çapı" #. 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." +"printed with double walls for stability. Set this value to zero for no " +"double walls." msgstr "" "Bu çaptaki bir dairenin alanından daha büyük alana sahip dallar, stabilite " "için çift duvarlı olarak basılacaktır. Çift duvar olmaması için bu değeri " @@ -13194,8 +13403,8 @@ msgid "" "added before \"machine_start_gcode\"\n" "G-code commands: M141/M191 S(0-255)" msgstr "" -"Hazne sıcaklığı kontrolü için bu seçeneği etkinleştirin. Önce bir M191 komutu " -"eklenecek \"machine_start_gcode\"\n" +"Hazne sıcaklığı kontrolü için bu seçeneği etkinleştirin. Önce bir M191 " +"komutu eklenecek \"machine_start_gcode\"\n" "G-code komut: M141/M191 S(0-255)" msgid "Chamber temperature" @@ -13273,11 +13482,11 @@ 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 determained by top shell " -"layers" +"is disabled and thickness of top shell is absolutely determained by top " +"shell layers" msgstr "" -"Üst kabuk katmanları tarafından hesaplanan kalınlık bu değerden daha ince ise " -"dilimleme sırasında üst katı katmanların sayısı artırılır. Bu, katman " +"Üst kabuk katmanları tarafından hesaplanan kalınlık bu değerden daha ince " +"ise dilimleme sırasında üst katı katmanların sayısı artırılır. Bu, katman " "yüksekliği küçük olduğunda kabuğun çok ince olmasını önleyebilir. 0, bu " "ayarın devre dışı olduğu ve üst kabuğun kalınlığının kesinlikle üst kabuk " "katmanları tarafından belirlendiği anlamına gelir" @@ -13300,11 +13509,12 @@ msgid "Wipe Distance" msgstr "Temizleme mesafesi" msgid "" -"Discribe how long the nozzle will move along the last path when retracting. \n" +"Discribe 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" +"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." @@ -13312,9 +13522,9 @@ msgstr "" "Geri çekilirken nozulun son yol boyunca ne kadar süre hareket edeceğini " "açıklayın. \n" "\n" -"Silme işleminin ne kadar sürdüğüne, ekstruder/filament geri çekme ayarlarının " -"ne kadar hızlı ve uzun olduğuna bağlı olarak, kalan filamanı geri çekmek için " -"bir geri çekme hareketine ihtiyaç duyulabilir. \n" +"Silme işleminin ne kadar sürdüğüne, ekstruder/filament geri çekme " +"ayarlarının ne kadar hızlı ve uzun olduğuna bağlı olarak, kalan filamanı " +"geri çekmek için bir geri çekme hareketine ihtiyaç duyulabilir. \n" "\n" "Aşağıdaki silme ayarından önce geri çekme miktarına bir değer ayarlamak, " "silme işleminden önce aşırı geri çekme işlemini gerçekleştirecektir, aksi " @@ -13364,8 +13574,8 @@ msgid "" "Angle at the apex of the cone that is used to stabilize the wipe tower. " "Larger angle means wider base." msgstr "" -"Silme kulesini stabilize etmek için kullanılan koninin tepe noktasındaki açı. " -"Daha büyük açı daha geniş taban anlamına gelir." +"Silme kulesini stabilize etmek için kullanılan koninin tepe noktasındaki " +"açı. Daha büyük açı daha geniş taban anlamına gelir." msgid "Wipe tower purge lines spacing" msgstr "Silme kulesi temizleme hatları aralığı" @@ -13436,8 +13646,8 @@ msgid "" "volumes below." msgstr "" "Bu vektör, silme kulesinde kullanılan her bir araçtan/araca geçiş için " -"gerekli hacimleri kaydeder. Bu değerler, aşağıdaki tam temizleme hacimlerinin " -"oluşturulmasını basitleştirmek için kullanılır." +"gerekli hacimleri kaydeder. Bu değerler, aşağıdaki tam temizleme " +"hacimlerinin oluşturulmasını basitleştirmek için kullanılır." msgid "" "Purging after filament change will be done inside objects' infills. This may " @@ -13461,13 +13671,13 @@ 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." +"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 "" -"Bu nesne, filamentten tasarruf etmek ve baskı süresini azaltmak için filament " -"değişiminden sonra nozulu temizlemek için kullanılacaktır. Sonuç olarak " -"nesnelerin renkleri karıştırılacaktır. Prime tower etkinleştirilmediği sürece " -"etkili olmayacaktır." +"Bu nesne, filamentten tasarruf etmek ve baskı süresini azaltmak için " +"filament değişiminden sonra nozulu temizlemek için kullanılacaktır. Sonuç " +"olarak nesnelerin renkleri karıştırılacaktır. Prime tower " +"etkinleştirilmediği sürece etkili olmayacaktır." msgid "Maximal bridging distance" msgstr "Maksimum köprüleme mesafesi" @@ -13476,8 +13686,8 @@ msgid "Maximal distance between supports on sparse infill sections." msgstr "" "Bu nesne, filamentten tasarruf etmek ve baskı süresini azaltmak için bir " "filament değişiminden sonra nozulu temizlemek için kullanılacaktır. Sonuç " -"olarak nesnelerin renkleri karıştırılacaktır. Prime tower etkinleştirilmediği " -"sürece etkili olmayacaktır." +"olarak nesnelerin renkleri karıştırılacaktır. Prime tower " +"etkinleştirilmediği sürece etkili olmayacaktır." msgid "X-Y hole compensation" msgstr "X-Y delik dengeleme" @@ -13502,8 +13712,8 @@ msgid "" "assembling issue" msgstr "" "Nesnenin konturu XY düzleminde yapılandırılan değer kadar büyütülür veya " -"küçültülür. Pozitif değer konturu büyütür. Negatif değer konturu küçültür. Bu " -"fonksiyon, nesnenin montaj sorunu olduğunda boyutu hafifçe ayarlamak için " +"küçültülür. Pozitif değer konturu büyütür. Negatif değer konturu küçültür. " +"Bu fonksiyon, nesnenin montaj sorunu olduğunda boyutu hafifçe ayarlamak için " "kullanılır" msgid "Convert holes to polyholes" @@ -13527,14 +13737,14 @@ msgstr "Çokgen delik tespiti marjı" 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 leway to broaden " -"the detection.\n" +"be on the circle circumference. This setting allows you some leway to " +"broaden the detection.\n" "In mm or in % of the radius." msgstr "" "Bir noktanın dairenin tahmini yarıçapına göre maksimum sapması.\n" "Silindirler genellikle farklı boyutlarda üçgenler olarak ihraç edildiğinden, " -"noktalar daire çevresinde olmayabilir. Bu ayar, algılamayı genişletmeniz için " -"size biraz alan sağlar.\n" +"noktalar daire çevresinde olmayabilir. Bu ayar, algılamayı genişletmeniz " +"için size biraz alan sağlar.\n" "inc mm cinsinden veya yarıçapın %'si cinsinden." msgid "Polyhole twist" @@ -13557,8 +13767,8 @@ msgid "Format of G-code thumbnails" msgstr "G kodu küçük resimlerinin formatı" 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 "" "G kodu küçük resimlerinin formatı: En iyi kalite için PNG, en küçük boyut " "için JPG, düşük bellekli donanım yazılımı için QOI" @@ -13579,11 +13789,11 @@ msgstr "" 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" +"very thin areas is used gap-fill. Arachne engine produces walls with " +"variable extrusion width" msgstr "" -"Klasik duvar oluşturucu sabit ekstrüzyon genişliğine sahip duvarlar üretir ve " -"çok ince alanlar için boşluk doldurma kullanılır. Arachne motoru değişken " +"Klasik duvar oluşturucu sabit ekstrüzyon genişliğine sahip duvarlar üretir " +"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" @@ -13610,19 +13820,20 @@ msgstr "Duvar geçiş filtresi oranı" 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" +"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 "" -"Fazladan bir duvar ile bir eksik arasında ileri geri geçişi önleyin. Bu kenar " -"boşluğu, [Minimum duvar genişliği - kenar boşluğu, 2 * Minimum duvar " +"Fazladan bir duvar ile bir eksik arasında ileri geri geçişi önleyin. Bu " +"kenar boşluğu, [Minimum duvar genişliği - kenar boşluğu, 2 * Minimum duvar " "genişliği + kenar boşluğu] şeklinde takip eden ekstrüzyon genişlikleri " "aralığını genişletir. Bu marjın arttırılması geçiş sayısını azaltır, bu da " "ekstrüzyonun başlama/durma sayısını ve seyahat süresini azaltır. Bununla " -"birlikte, büyük ekstrüzyon genişliği değişimi, yetersiz veya aşırı ekstrüzyon " -"sorunlarına yol açabilir. Nozul çapına göre yüzde olarak ifade edilir" +"birlikte, büyük ekstrüzyon genişliği değişimi, yetersiz veya aşırı " +"ekstrüzyon sorunlarına yol açabilir. Nozul çapına göre yüzde olarak ifade " +"edilir" msgid "Wall transitioning threshold angle" msgstr "Duvar geçiş açısı" @@ -13634,11 +13845,11 @@ msgid "" "this setting reduces the number and length of these center walls, but may " "leave gaps or overextrude" msgstr "" -"Çift ve tek sayıdaki duvarlar arasında geçişler ne zaman oluşturulmalıdır? Bu " -"ayardan daha büyük bir açıya sahip bir kama şeklinin geçişleri olmayacak ve " -"kalan alanı dolduracak şekilde ortada hiçbir duvar basılmayacaktır. Bu ayarın " -"düşürülmesi, bu merkez duvarların sayısını ve uzunluğunu azaltır ancak " -"boşluklara veya aşırı çıkıntıya neden olabilir" +"Çift ve tek sayıdaki duvarlar arasında geçişler ne zaman oluşturulmalıdır? " +"Bu ayardan daha büyük bir açıya sahip bir kama şeklinin geçişleri olmayacak " +"ve kalan alanı dolduracak şekilde ortada hiçbir duvar basılmayacaktır. Bu " +"ayarın düşürülmesi, bu merkez duvarların sayısını ve uzunluğunu azaltır " +"ancak boşluklara veya aşırı çıkıntıya neden olabilir" msgid "Wall distribution count" msgstr "Duvar dağılım sayısı" @@ -13654,9 +13865,9 @@ msgid "Minimum feature size" msgstr "Minimum özellik boyutu" 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 " +"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 "" "İnce özellikler için minimum kalınlık. Bu değerden daha ince olan model " @@ -13673,27 +13884,28 @@ msgid "" "\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 visibile if this setting is set above " -"the default value of 0.5, or if single-wall top surfaces is enabled." +"Advanced settings below to adjust the sensitivity of what is considered a " +"top-surface. 'One wall threshold' is only visibile if this setting is set " +"above the default value of 0.5, or if single-wall top surfaces is enabled." msgstr "" "Yazdırma süresini artırabilecek kısa, kapatılmamış duvarların yazdırılmasını " "önlemek için bu değeri ayarlayın. Daha yüksek değerler daha fazla ve daha " "uzun duvarları kaldırır.\n" "\n" -"NOT: Modelin dış kısmında görsel boşluk kalmaması için alt ve üst yüzeyler bu " -"değerden etkilenmeyecektir. Üst yüzey olarak kabul edilen şeyin hassasiyetini " -"ayarlamak için aşağıdaki Gelişmiş ayarlarda 'Tek duvar eşiği'ni ayarlayın. " -"'Tek duvar eşiği' yalnızca bu ayar varsayılan değer olan 0,5'in üzerine " -"ayarlandığında veya tek duvarlı üst yüzeyler etkinleştirildiğinde görünür." +"NOT: Modelin dış kısmında görsel boşluk kalmaması için alt ve üst yüzeyler " +"bu değerden etkilenmeyecektir. Üst yüzey olarak kabul edilen şeyin " +"hassasiyetini ayarlamak için aşağıdaki Gelişmiş ayarlarda 'Tek duvar " +"eşiği'ni ayarlayın. 'Tek duvar eşiği' yalnızca bu ayar varsayılan değer olan " +"0,5'in üzerine ayarlandığında veya tek duvarlı üst yüzeyler " +"etkinleştirildiğinde görünür." msgid "First layer minimum wall width" msgstr "İlk katman minimum duvar genişliği" 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 "" "İlk katman için kullanılması gereken minimum duvar genişliğinin nozul ile " "aynı boyuta ayarlanması tavsiye edilir. Bu ayarlamanın yapışmayı artırması " @@ -13718,8 +13930,8 @@ msgstr "Dar iç katı dolguyu tespit et" 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 defaultly." +"concentric pattern will be used for the area to speed printing up. " +"Otherwise, rectilinear pattern is used defaultly." msgstr "" "Bu seçenek dar dahili katı dolgu alanını otomatik olarak algılayacaktır. " "Etkinleştirilirse, yazdırmayı hızlandırmak amacıyla alanda eşmerkezli desen " @@ -13765,7 +13977,8 @@ msgstr "Yönlendirme Seçenekleri" msgid "Orient options: 0-disable, 1-enable, others-auto" msgstr "" -"Yönlendirme seçenekleri: 0-devre dışı bırak, 1-etkinleştir, diğerleri-otomatik" +"Yönlendirme seçenekleri: 0-devre dışı bırak, 1-etkinleştir, diğerleri-" +"otomatik" msgid "Rotation angle around the Z axis in degrees." msgstr "Z ekseni etrafında derece cinsinden dönüş açısı." @@ -13810,13 +14023,13 @@ msgstr "" "ettiğini bilmesi için bu değişkene yazması gerekir." 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 PrusaSlicer " -"deretracts 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 " +"PrusaSlicer deretracts correctly when it gets control back." msgstr "" "Özel G kodu bloğunun başlangıcındaki geri çekilme durumu. Özel G kodu " -"ekstruder eksenini hareket ettirirse, Slicer'ın kontrolü geri aldığında doğru " -"şekilde geri çekme yapması için bu değişkene yazması gerekir." +"ekstruder eksenini hareket ettirirse, Slicer'ın kontrolü geri aldığında " +"doğru şekilde geri çekme yapması için bu değişkene yazması gerekir." msgid "Extra deretraction" msgstr "Ekstra deretraksiyon" @@ -13901,18 +14114,18 @@ msgid "" "Weight per extruder extruded during the entire print. Calculated from " "filament_density value in Filament Settings." msgstr "" -"Baskının tamamı boyunca ekstrüzyon yapılan ekstruder başına ağırlık. Filament " -"Ayarlarındaki filaman yoğunluğu değerinden hesaplanır." +"Baskının tamamı boyunca ekstrüzyon yapılan ekstruder başına ağırlık. " +"Filament Ayarlarındaki filaman yoğunluğu değerinden hesaplanır." msgid "Total weight" msgstr "Toplam ağırlık" 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 "" -"Baskının toplam ağırlığı. Filament Ayarlarındaki filaman yoğunluğu değerinden " -"hesaplanır." +"Baskının toplam ağırlığı. Filament Ayarlarındaki filaman yoğunluğu " +"değerinden hesaplanır." msgid "Total layer count" msgstr "Toplam katman sayısı" @@ -13961,8 +14174,8 @@ msgstr "" "cinsindendir." 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 "" "Vektörün iki öğesi vardır: sınırlayıcı kutunun x ve y boyutu. Değerler mm " "cinsindendir." @@ -13974,8 +14187,8 @@ 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)." msgstr "" -"Birinci katmanın dışbükey gövdesinin noktalarının vektörü. Her öğe şu formata " -"sahiptir:'[x, y]' (x ve y, mm cinsinden kayan noktalı sayılardır)." +"Birinci katmanın dışbükey gövdesinin noktalarının vektörü. Her öğe şu " +"formata sahiptir:'[x, y]' (x ve y, mm cinsinden kayan noktalı sayılardır)." msgid "Bottom-left corner of first layer bounding box" msgstr "İlk katman sınırlayıcı kutusunun sol alt köşesi" @@ -14171,7 +14384,8 @@ msgstr "Sağlanan dosya boş olduğundan okunamadı" msgid "Unknown file format. Input file must have .3mf or .zip.amf extension." msgstr "" -"Bilinmeyen dosya formatı. Giriş dosyası .3mf veya .zip.amf uzantılı olmalıdır." +"Bilinmeyen dosya formatı. Giriş dosyası .3mf veya .zip.amf uzantılı " +"olmalıdır." msgid "Canceled" msgstr "İptal edildi" @@ -14293,7 +14507,8 @@ msgstr "yeni ön ayar oluşturma başarısız oldu." msgid "" "Are you sure to cancel the current calibration and return to the home page?" msgstr "" -"Mevcut kalibrasyonu iptal edip ana sayfaya dönmek istediğinizden emin misiniz?" +"Mevcut kalibrasyonu iptal edip ana sayfaya dönmek istediğinizden emin " +"misiniz?" msgid "No Printer Connected!" msgstr "Yazıcı Bağlı Değil!" @@ -14308,16 +14523,16 @@ msgid "The input value size must be 3." msgstr "Giriş değeri boyutu 3 olmalıdır." 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 "" "Bu makine tipi, püskürtme ucu başına yalnızca 16 geçmiş sonucu tutabilir. " -"Mevcut geçmiş sonuçları silebilir ve ardından kalibrasyona başlayabilirsiniz. " -"Veya kalibrasyona devam edebilirsiniz ancak yeni kalibrasyon geçmişi " -"sonuçları oluşturamazsınız.\n" +"Mevcut geçmiş sonuçları silebilir ve ardından kalibrasyona " +"başlayabilirsiniz. Veya kalibrasyona devam edebilirsiniz ancak yeni " +"kalibrasyon geçmişi sonuçları oluşturamazsınız.\n" "Hala kalibrasyona devam etmek istiyor musunuz?" msgid "Connecting to printer..." @@ -14331,9 +14546,9 @@ msgstr "Akış Dinamiği Kalibrasyonu sonucu yazıcıya kaydedildi" #, 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 "" "Aynı ada sahip geçmiş bir kalibrasyon sonucu zaten var: %s. Aynı ada sahip " "sonuçlardan yalnızca biri kaydedilir. Geçmiş sonucu geçersiz kılmak " @@ -14344,8 +14559,8 @@ msgid "" "This machine type can only hold %d history results per nozzle. This result " "will not be saved." msgstr "" -"Bu makine türü püskürtme ucu başına yalnızca %d geçmiş sonucunu tutabilir. Bu " -"sonuç kaydedilmeyecek." +"Bu makine türü püskürtme ucu başına yalnızca %d geçmiş sonucunu tutabilir. " +"Bu sonuç kaydedilmeyecek." msgid "Internal Error" msgstr "İç hata" @@ -14364,10 +14579,10 @@ msgstr "Akış Dinamiği Kalibrasyonuna ne zaman ihtiyacınız olur" 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" +"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." @@ -14389,39 +14604,38 @@ msgid "" "\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" +"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 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" "\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 "" -"Lütfen Akış Dinamiği Kalibrasyonunun ayrıntılarını wiki'mizden " -"bulabilirsiniz.\n" +"Akış Dinamiği Kalibrasyonu ile ilgili detayları Wiki'mizden bulabilirsiniz.\n" "\n" -"Genellikle kalibrasyon gereksizdir. Yazdırma başlat menüsündeki \"akış " -"dinamiği kalibrasyonu\" seçeneği işaretliyken tek renkli/malzeme baskısını " -"başlattığınızda, yazıcı eski yöntemi izleyecek, yazdırmadan önce filamenti " -"kalibre edecektir; Çok renkli/malzeme baskısını başlattığınızda, yazıcı her " -"filament değişiminde filament için varsayılan dengeleme parametresini " -"kullanacaktır ve bu çoğu durumda iyi bir sonuç verecektir.\n" +"Genellikle kalibrasyon gereksizdir. Baskı başlatma menüsünde \"akış " +"dinamikleri kalibrasyonu\" seçeneği işaretliyken tek renkli/malzemeli bir " +"baskı başlattığınızda, yazıcı eski yolu izleyecek, baskıdan önce filamenti " +"kalibre edecektir; Çok renkli/malzemeli bir baskı başlattığınızda, yazıcı " +"her filament değişimi sırasında filament için varsayılan telafi " +"parametresini kullanacaktır ve bu da çoğu durumda iyi bir sonuç verecektir.\n" "\n" -"Kalibrasyon sonucunun güvenilir olmamasına yol açacak birkaç durum olduğunu " -"lütfen unutmayın: kalibrasyonu yapmak için doku plakası kullanmak; baskı " -"plakasının yapışması iyi değil (lütfen baskı plakasını yıkayın veya " -"yapıştırıcı uygulayın!) ...Daha fazlasını wiki'mizden bulabilirsiniz.\n" +"Yapı plakası üzerinde yetersiz yapışma gibi kalibrasyon sonuçlarını " +"güvenilmez hale getirebilecek birkaç durum olduğunu lütfen unutmayın. " +"Yapıştırma plakası yıkanarak veya yapıştırıcı uygulanarak yapışmanın " +"iyileştirilmesi sağlanabilir. Bu konu hakkında daha fazla bilgi için lütfen " +"Wiki sayfamıza bakın.\n" "\n" -"Testimizde kalibrasyon sonuçlarında yaklaşık yüzde 10'luk bir titreşim var ve " -"bu da sonucun her kalibrasyonda tam olarak aynı olmamasına neden olabilir. " -"Yeni güncellemelerle iyileştirmeler yapmak için hâlâ temel nedeni " -"araştırıyoruz." +"Kalibrasyon sonuçları testimizde yaklaşık yüzde 10 titremeye sahiptir, bu da " +"sonucun her kalibrasyonda tam olarak aynı olmamasına neden olabilir. Yeni " +"güncellemelerle iyileştirmeler yapmak için hala temel nedeni araştırıyoruz." msgid "When to use Flow Rate Calibration" msgstr "Akış Hızı Kalibrasyonu ne zaman kullanılmalı" @@ -14461,10 +14675,10 @@ msgstr "" 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." +"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 "" "Akış Hızı Kalibrasyonu, beklenen ekstrüzyon hacimlerinin gerçek ekstrüzyon " "hacimlerine oranını ölçer. Varsayılan ayar, önceden kalibre edilmiş ve ince " @@ -14479,12 +14693,13 @@ msgid "" "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" +"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 " @@ -14495,8 +14710,8 @@ msgstr "" "kullanarak kalibrasyon modellerini doğrudan ölçer. Ancak, bu yöntemin " "etkinliğinin ve doğruluğunun belirli malzeme türleriyle tehlikeye " "girebileceğini lütfen unutmayın. Özellikle şeffaf veya yarı şeffaf, parlak " -"parçacıklı veya yüksek yansıtıcı yüzeye sahip filamentler bu kalibrasyon için " -"uygun olmayabilir ve arzu edilenden daha az sonuçlar üretebilir.\n" +"parçacıklı veya yüksek yansıtıcı yüzeye sahip filamentler bu kalibrasyon " +"için uygun olmayabilir ve arzu edilenden daha az sonuçlar üretebilir.\n" "\n" "Kalibrasyon sonuçları her kalibrasyon veya filament arasında farklılık " "gösterebilir. Zaman içinde ürün yazılımı güncellemeleriyle bu kalibrasyonun " @@ -14505,8 +14720,8 @@ msgstr "" "Dikkat: Akış Hızı Kalibrasyonu, yalnızca amacını ve sonuçlarını tam olarak " "anlayan kişiler tarafından denenmesi gereken gelişmiş bir işlemdir. Yanlış " "kullanım, ortalamanın altında baskılara veya yazıcının zarar görmesine neden " -"olabilir. Lütfen işlemi yapmadan önce işlemi dikkatlice okuyup anladığınızdan " -"emin olun." +"olabilir. Lütfen işlemi yapmadan önce işlemi dikkatlice okuyup " +"anladığınızdan emin olun." msgid "When you need Max Volumetric Speed Calibration" msgstr "Maksimum Hacimsel Hız Kalibrasyonuna ihtiyaç duyduğunuzda" @@ -14528,15 +14743,15 @@ msgid "We found the best Flow Dynamics Calibration Factor" msgstr "En iyi Akış Dinamiği Kalibrasyon Faktörünü bulduk" 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 "" "Kalibrasyonun bir kısmı başarısız oldu! Plakayı temizleyip tekrar " "deneyebilirsiniz. Başarısız olan test sonucu görmezden gelinir." 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 "*İsme marka, malzeme, tür ve hatta nem seviyesini eklemenizi öneririz" msgid "Failed" @@ -14550,25 +14765,15 @@ msgstr "Ad 40 karakteri aşamaz." msgid "" "Only one of the results with the same name will be saved. Are you sure you " -"want to overrides the other results?" +"want to override the other results?" msgstr "" "Aynı ada sahip sonuçlardan yalnızca biri kaydedilecektir. Diğer sonuçları " "geçersiz kılmak istediğinizden emin misiniz?" -#, 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 "" -"Aynı ada sahip geçmiş bir kalibrasyon sonucu zaten var: %s. Aynı ada sahip " -"sonuçlardan yalnızca biri kaydedilir. Geçmiş sonucu geçersiz kılmak " -"istediğinizden emin misiniz?" - msgid "Please find the best line on your plate" msgstr "Lütfen plakadaki en iyi çizgiyi bulun" -msgid "Please find the cornor with perfect degree of extrusion" +msgid "Please find the corner with perfect degree of extrusion" msgstr "Lütfen mükemmel ekstrüzyon derecesine sahip köşeyi bulun" msgid "Input Value" @@ -14823,6 +15028,9 @@ msgstr "ABS/ASA" msgid "PETG" msgstr "PETG" +msgid "PCTG" +msgstr "" + msgid "TPU" msgstr "TPU" @@ -14919,6 +15127,9 @@ msgstr "Gerekirse dizin ayırıcısı olarak eğik çizgileri ( / ) kullanın." msgid "Upload to storage" msgstr "Depolama alanına yükle" +msgid "Switch to Device tab after upload." +msgstr "" + #, c-format, boost-format msgid "Upload filename doesn't end with \"%s\". Do you wish to continue?" msgstr "Yüklenen dosya adı \"%s\" ile bitmiyor. Devam etmek istiyor musunuz?" @@ -15129,8 +15340,8 @@ msgid "" "name. Do you want to continue?" msgstr "" "Oluşturduğunuz %s Filament adı zaten mevcut.\n" -"Oluşturmaya devam ederseniz oluşturulan ön ayar tam adıyla görüntülenecektir. " -"Devam etmek istiyor musun?" +"Oluşturmaya devam ederseniz oluşturulan ön ayar tam adıyla " +"görüntülenecektir. Devam etmek istiyor musun?" msgid "Some existing presets have failed to be created, as follows:\n" msgstr "Aşağıdaki gibi bazı mevcut ön ayarlar oluşturulamadı:\n" @@ -15143,8 +15354,8 @@ msgstr "" "Yeniden yazmak ister misin?" 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 "" "Ön ayarları şu şekilde yeniden adlandırırdık: \"Satıcı Türü Seçtiğiniz Seri " @@ -15193,12 +15404,6 @@ msgstr "Dikdörtgen" msgid "Printable Space" msgstr "Yazdırılabilir Alan" -msgid "X" -msgstr "X" - -msgid "Y" -msgstr "Y" - msgid "Hot Bed STL" msgstr "Sıcak Yatak STL" @@ -15252,15 +15457,15 @@ msgid "" "You have not yet chosen which printer preset to create based on. Please " "choose the vendor and model of the printer" msgstr "" -"Hangi yazıcı ön ayarının temel alınacağını henüz seçmediniz. Lütfen yazıcının " -"satıcısını ve modelini seçin" +"Hangi yazıcı ön ayarının temel alınacağını henüz seçmediniz. Lütfen " +"yazıcının satıcısını ve modelini seçin" msgid "" "You have entered an illegal input in the printable area section on the first " "page. Please check before creating it." msgstr "" -"İlk sayfadaki yazdırılabilir alan kısmına geçersiz bir giriş yaptınız. Lütfen " -"oluşturmadan önce kontrol edin." +"İlk sayfadaki yazdırılabilir alan kısmına geçersiz bir giriş yaptınız. " +"Lütfen oluşturmadan önce kontrol edin." msgid "The custom printer or model is not inputed, place input." msgstr "Özel yazıcı veya model girilmedi lütfen giriş yapın." @@ -15277,7 +15482,8 @@ msgstr "" "Oluşturduğunuz yazıcı ön ayarının zaten aynı ada sahip bir ön ayarı var. " "Üzerine yazmak istiyor musunuz?\n" "\tEvet: Aynı adı taşıyan yazıcı ön ayarının üzerine yazın; aynı ön ayar adı " -"taşıyan filaman ve proses ön ayarları yeniden oluşturulacak ve aynı ön ayar \n" +"taşıyan filaman ve proses ön ayarları yeniden oluşturulacak ve aynı ön " +"ayar \n" "adı olmayan filament ve işlem ön ayarları rezerve edilecektir.\n" "\tİptal: Ön ayar oluşturmayın, oluşturma arayüzüne dönün." @@ -15323,7 +15529,8 @@ msgstr "" msgid "" "You have not yet selected the printer to replace the nozzle, please choose." -msgstr "Hala nozulu değiştirmek için yazıcı seçmediniz, lütfen bir seçim yapın." +msgstr "" +"Hala nozulu değiştirmek için yazıcı seçmediniz, lütfen bir seçim yapın." msgid "Create Printer Successful" msgstr "Yazıcı Oluşturma Başarılı" @@ -15406,8 +15613,8 @@ msgstr "Dışa aktarma başarılı" #, c-format, boost-format msgid "" -"The '%s' folder already exists in the current directory. Do you want to clear " -"it and rebuild it.\n" +"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 "" @@ -15446,8 +15653,8 @@ msgid "" "Only printer names with user printer presets will be displayed, and each " "preset you choose will be exported as a zip." msgstr "" -"Yalnızca kullanıcı yazıcı ön ayarlarına sahip yazıcı adları görüntülenecek ve " -"seçtiğiniz her ön ayar zip olarak dışa aktarılacaktır." +"Yalnızca kullanıcı yazıcı ön ayarlarına sahip yazıcı adları görüntülenecek " +"ve seçtiğiniz her ön ayar zip olarak dışa aktarılacaktır." msgid "" "Only the filament names with user filament presets will be displayed, \n" @@ -15455,13 +15662,13 @@ msgid "" "exported as a zip." msgstr "" "Yalnızca kullanıcı filamenti ön ayarlarına sahip filament adları \n" -"görüntülenecek ve seçtiğiniz her filament adındaki tüm kullanıcı filamenti ön " -"ayarları zip olarak dışa aktarılacaktır." +"görüntülenecek ve seçtiğiniz her filament adındaki tüm kullanıcı filamenti " +"ön ayarları zip olarak dışa aktarılacaktır." 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 "" "Yalnızca işlem ön ayarları değiştirilen yazıcı adları görüntülenecek \n" "ve seçtiğiniz her yazıcı adındaki tüm kullanıcı işlem ön ayarları zip olarak " @@ -15485,8 +15692,8 @@ msgid "Filament presets under this filament" msgstr "Bu filamentin altındaki filament ön ayarları" 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 "" "Not: Bu filamentin altındaki tek ön ayar silinirse, diyalogdan çıkıldıktan " "sonra filament silinecektir." @@ -15555,7 +15762,7 @@ msgstr "Günlük İpuçları" #, c-format, boost-format msgid "nozzle memorized: %.1f %s" -msgstr "" +msgstr "hafızaya alınan nozul: %.1f %s" msgid "" "Your nozzle diameter in preset is not consistent with memorized nozzle " @@ -15599,6 +15806,12 @@ msgstr "Çıkış yaptığınızdan emin misiniz?" msgid "Refresh Printers" msgstr "Yazıcıları Yenile" +msgid "View print host webui in Device tab" +msgstr "" + +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." @@ -15617,8 +15830,8 @@ msgid "" "On this system, %s uses HTTPS certificates from the system Certificate Store " "or Keychain." msgstr "" -"Bu sistemde %s, sistem Sertifika Deposu veya Anahtar Zincirinden alınan HTTPS " -"sertifikalarını kullanıyor." +"Bu sistemde %s, sistem Sertifika Deposu veya Anahtar Zincirinden alınan " +"HTTPS sertifikalarını kullanıyor." msgid "" "To use a custom CA file, please import your CA file into Certificate Store / " @@ -15768,30 +15981,31 @@ msgstr "" "Hata: \"%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 "" "Küçük bir katman yüksekliğine sahiptir ve neredeyse ihmal edilebilir katman " "çizgileri ve yüksek baskı kalitesi sağlar. Çoğu genel yazdırma durumu için " "uygundur." 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 "" "0,2 mm’lik nozülün varsayılan profiliyle karşılaştırıldığında daha düşük hız " -"ve ivmeye sahiptir ve seyrek dolgu deseni Gyroid’dir. Böylece çok daha yüksek " -"baskı kalitesi elde edilir, ancak çok daha uzun baskı süresi elde edilir." +"ve ivmeye sahiptir ve seyrek dolgu deseni Gyroid’dir. Böylece çok daha " +"yüksek baskı kalitesi elde edilir, ancak çok daha uzun baskı süresi elde " +"edilir." 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 "" -"0,2 mm’lik püskürtme ucunun varsayılan profiliyle karşılaştırıldığında, biraz " -"daha büyük katman yüksekliğine sahiptir ve neredeyse ihmal edilebilir düzeyde " -"katman çizgileri ve biraz daha kısa yazdırma süresi sağlar." +"0,2 mm’lik püskürtme ucunun varsayılan profiliyle karşılaştırıldığında, " +"biraz daha büyük katman yüksekliğine sahiptir ve neredeyse ihmal edilebilir " +"düzeyde katman çizgileri ve biraz daha kısa yazdırma süresi sağlar." msgid "" "Compared with the default profile of a 0.2 mm nozzle, it has a bigger layer " @@ -15829,8 +16043,8 @@ msgid "" "shorter printing time." msgstr "" "Varsayılan 0,2 mm püskürtme ucu profiliyle karşılaştırıldığında, daha küçük " -"katman yüksekliğine sahiptir ve minimum katman çizgileri ve daha yüksek baskı " -"kalitesi sağlar, ancak daha kısa yazdırma süresi sağlar." +"katman yüksekliğine sahiptir ve minimum katman çizgileri ve daha yüksek " +"baskı kalitesi sağlar, ancak daha kısa yazdırma süresi sağlar." msgid "" "Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer " @@ -15881,12 +16095,12 @@ msgstr "" 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." +"height, and results in less apparent layer lines and higher printing " +"quality, but longer printing time." msgstr "" "0,4 mm’lik püskürtme ucunun varsayılan profiliyle karşılaştırıldığında, daha " -"küçük bir katman yüksekliğine sahiptir ve daha az görünür katman çizgileri ve " -"daha yüksek baskı kalitesi sağlar, ancak daha uzun yazdırma süresi sağlar." +"küçük bir katman yüksekliğine sahiptir ve daha az görünür katman çizgileri " +"ve daha yüksek baskı kalitesi sağlar, ancak daha uzun yazdırma süresi sağlar." msgid "" "Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer " @@ -15924,7 +16138,8 @@ msgstr "" 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." +"height, and results in almost negligible layer lines and longer printing " +"time." msgstr "" "0,4 mm’lik püskürtme ucunun varsayılan profiliyle karşılaştırıldığında, " "katman yüksekliği daha küçüktür ve neredeyse göz ardı edilebilecek düzeyde " @@ -15959,8 +16174,8 @@ msgstr "" 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." +"height, and results in much more apparent layer lines and much lower " +"printing quality, but shorter printing time in some printing cases." msgstr "" "0,6 mm’lik püskürtme ucunun varsayılan profiliyle karşılaştırıldığında, daha " "büyük bir katman yüksekliğine sahiptir ve çok daha belirgin katman çizgileri " @@ -15979,16 +16194,16 @@ msgstr "" 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." +"height, and results in less apparent layer lines and higher printing " +"quality, but longer printing time." msgstr "" "0,6 mm’lik püskürtme ucunun varsayılan profiliyle karşılaştırıldığında, daha " -"küçük bir katman yüksekliğine sahiptir ve daha az görünür katman çizgileri ve " -"daha yüksek baskı kalitesi sağlar, ancak daha uzun yazdırma süresi sağlar." +"küçük bir katman yüksekliğine sahiptir ve daha az görünür katman çizgileri " +"ve daha yüksek baskı kalitesi sağlar, ancak daha uzun yazdırma süresi sağlar." 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 "" "Çok büyük bir katman yüksekliğine sahiptir ve çok belirgin katman " "çizgilerine, düşük baskı kalitesine ve genel yazdırma süresine neden olur." @@ -16000,8 +16215,8 @@ msgid "" msgstr "" "0,8 mm’lik püskürtme ucunun varsayılan profiliyle karşılaştırıldığında, daha " "büyük bir katman yüksekliğine sahiptir ve çok belirgin katman çizgileri ve " -"çok daha düşük baskı kalitesiyle sonuçlanır, ancak bazı yazdırma durumlarında " -"daha kısa yazdırma süresi sağlar." +"çok daha düşük baskı kalitesiyle sonuçlanır, ancak bazı yazdırma " +"durumlarında daha kısa yazdırma süresi sağlar." msgid "" "Compared with the default profile of a 0.8 mm nozzle, it has a much bigger " @@ -16010,8 +16225,8 @@ msgid "" msgstr "" "0,8 mm’lik püskürtme ucunun varsayılan profiliyle karşılaştırıldığında, çok " "daha büyük bir katman yüksekliğine sahiptir ve son derece belirgin katman " -"çizgileri ve çok daha düşük baskı kalitesiyle sonuçlanır, ancak bazı yazdırma " -"durumlarında çok daha kısa yazdırma süresi sağlar." +"çizgileri ve çok daha düşük baskı kalitesiyle sonuçlanır, ancak bazı " +"yazdırma durumlarında çok daha kısa yazdırma süresi sağlar." msgid "" "Compared with the default profile of a 0.8 mm nozzle, it has a slightly " @@ -16019,10 +16234,10 @@ msgid "" "lines and slightly higher printing quality, but longer printing time in some " "printing cases." msgstr "" -"0,8 mm’lik püskürtme ucunun varsayılan profiliyle karşılaştırıldığında, biraz " -"daha küçük bir katman yüksekliğine sahiptir ve biraz daha az ama yine de " -"görünür katman çizgileri ve biraz daha yüksek baskı kalitesi sağlar, ancak " -"bazı yazdırma durumlarında daha uzun yazdırma süresi sağlar." +"0,8 mm’lik püskürtme ucunun varsayılan profiliyle karşılaştırıldığında, " +"biraz daha küçük bir katman yüksekliğine sahiptir ve biraz daha az ama yine " +"de görünür katman çizgileri ve biraz daha yüksek baskı kalitesi sağlar, " +"ancak bazı yazdırma durumlarında daha uzun yazdırma süresi sağlar." msgid "" "Compared with the default profile of a 0.8 mm nozzle, it has a smaller layer " @@ -16046,20 +16261,16 @@ msgstr "SimplyPrint'e başarıyla bağlanıldı!" msgid "Could not connect to SimplyPrint" msgstr "SimplyPrint'e bağlanılamadı" -msgid "SimplyPrint account not linked. Go to Connect options to set it up." +msgid "Internel error" msgstr "" -"SimplyPrint hesabı bağlı değil. Ayarlamak için Bağlantı seçeneklerine gidin." - -msgid "" -"File size exceeds the 100MB upload limit. Please upload your file through the " -"panel." -msgstr "" -"Dosya boyutu 100 MB yükleme sınırını aşıyor. Lütfen dosyanızı panel üzerinden " -"yükleyiniz." msgid "Unknown error" msgstr "Bilinmeyen hata" +msgid "SimplyPrint account not linked. Go to Connect options to set it up." +msgstr "" +"SimplyPrint hesabı bağlı değil. Ayarlamak için Bağlantı seçeneklerine gidin." + msgid "Connection to Flashforge works correctly." msgstr "Flashforge bağlantısı düzgün çalışıyor." @@ -16098,7 +16309,8 @@ msgid "" msgstr "" "Sandviç modu\n" "Modelinizde çok dik çıkıntılar yoksa hassasiyeti ve katman tutarlılığını " -"artırmak için sandviç modunu (iç-dış-iç) kullanabileceğinizi biliyor muydunuz?" +"artırmak için sandviç modunu (iç-dış-iç) kullanabileceğinizi biliyor " +"muydunuz?" #: resources/data/hints.ini: [hint:Chamber temperature] msgid "" @@ -16160,18 +16372,18 @@ msgid "" "3D scene operations." msgstr "" "Klavye kısayolları nasıl kullanılır?\n" -"Orca Slicer'ın çok çeşitli klavye kısayolları ve 3B sahne işlemleri sunduğunu " -"biliyor muydunuz?" +"Orca Slicer'ın çok çeşitli klavye kısayolları ve 3B sahne işlemleri " +"sunduğunu biliyor muydunuz?" #: 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 "" -"Tek sayıyı tersine çevir\n" -"Tek sayıyı ters çevir özelliğinin çıkıntılarınızın yüzey kalitesini " -"önemli ölçüde artırabileceğini biliyor muydunuz?" +"Tersine çevir\n" +"Tersine çevir özelliğinin çıkıntılarınızın yüzey kalitesini önemli " +"ölçüde artırabileceğini biliyor muydunuz?" #: resources/data/hints.ini: [hint:Cut Tool] msgid "" @@ -16190,8 +16402,8 @@ msgid "" "problems on the Windows system?" msgstr "" "Modeli Düzelt\n" -"Windows sisteminde birçok dilimleme sorununu önlemek için bozuk bir 3D modeli " -"düzeltebileceğinizi biliyor muydunuz?" +"Windows sisteminde birçok dilimleme sorununu önlemek için bozuk bir 3D " +"modeli düzeltebileceğinizi biliyor muydunuz?" #: resources/data/hints.ini: [hint:Timelapse] msgid "" @@ -16324,9 +16536,9 @@ msgstr "" #: 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 "" "Akış hızı için ince ayar\n" "Baskıların daha da iyi görünmesi için akış hızına ince ayar yapılabileceğini " @@ -16360,8 +16572,8 @@ msgstr "" 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." +"makes it easy to place the support material only on the sections of the " +"model that actually need it." msgstr "" "Destek boyama\n" "Desteklerinizin yerini boyayabileceğinizi biliyor muydunuz? Bu özellik, " @@ -16466,6 +16678,100 @@ msgstr "" "sıcaklığının uygun şekilde arttırılmasının bükülme olasılığını " "azaltabileceğini biliyor muydunuz?" +#~ msgid "" +#~ "File size exceeds the 100MB upload limit. Please upload your file through " +#~ "the panel." +#~ msgstr "" +#~ "Dosya boyutu 100 MB yükleme sınırını aşıyor. Lütfen dosyanızı panel " +#~ "üzerinden yükleyiniz." + +#~ msgid "Please input a valid value (K in 0~0.3)" +#~ msgstr "Lütfen geçerli bir değer girin (K in 0~0.3)" + +#~ msgid "Please input a valid value (K in 0~0.3, N in 0.6~2.0)" +#~ msgstr "Lütfen geçerli bir değer girin (K in 0~0.3, N in 0.6~2.0)" + +#~ msgid "Select connected printetrs (0/6)" +#~ msgstr "Bağlı yazıcıları seçin (0/6)" + +#, c-format, boost-format +#~ msgid "Select Connected Printetrs (%d/6)" +#~ msgstr "Bağlı Yazıcıları Seçin (%d/6)" + +#~ msgid "PrintingPause" +#~ msgstr "Yazdırma Duraklatıldı" + +#~ msgid "Printer local connection failed, please try again." +#~ msgstr "Yazıcının yerel bağlantısı başarısız oldu, lütfen tekrar deneyin." + +#~ 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 "" +#~ "Lütfen Akış Dinamiği Kalibrasyonunun ayrıntılarını wiki'mizden " +#~ "bulabilirsiniz.\n" +#~ "\n" +#~ "Genellikle kalibrasyon gereksizdir. Yazdırma başlat menüsündeki \"akış " +#~ "dinamiği kalibrasyonu\" seçeneği işaretliyken tek renkli/malzeme " +#~ "baskısını başlattığınızda, yazıcı eski yöntemi izleyecek, yazdırmadan " +#~ "önce filamenti kalibre edecektir; Çok renkli/malzeme baskısını " +#~ "başlattığınızda, yazıcı her filament değişiminde filament için varsayılan " +#~ "dengeleme parametresini kullanacaktır ve bu çoğu durumda iyi bir sonuç " +#~ "verecektir.\n" +#~ "\n" +#~ "Kalibrasyon sonucunun güvenilir olmamasına yol açacak birkaç durum " +#~ "olduğunu lütfen unutmayın: kalibrasyonu yapmak için doku plakası " +#~ "kullanmak; baskı plakasının yapışması iyi değil (lütfen baskı plakasını " +#~ "yıkayın veya yapıştırıcı uygulayın!) ...Daha fazlasını wiki'mizden " +#~ "bulabilirsiniz.\n" +#~ "\n" +#~ "Testimizde kalibrasyon sonuçlarında yaklaşık yüzde 10'luk bir titreşim " +#~ "var ve bu da sonucun her kalibrasyonda tam olarak aynı olmamasına neden " +#~ "olabilir. Yeni güncellemelerle iyileştirmeler yapmak için hâlâ temel " +#~ "nedeni araştırıyoruz." + +#~ msgid "" +#~ "Only one of the results with the same name will be saved. Are you sure " +#~ "you want to overrides the other results?" +#~ msgstr "" +#~ "Aynı ada sahip sonuçlardan yalnızca biri kaydedilecektir. Diğer sonuçları " +#~ "geçersiz kılmak istediğinizden emin misiniz?" + +#, 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 "" +#~ "Aynı ada sahip geçmiş bir kalibrasyon sonucu zaten var: %s. Aynı ada " +#~ "sahip sonuçlardan yalnızca biri kaydedilir. Geçmiş sonucu geçersiz kılmak " +#~ "istediğinizden emin misiniz?" + +#~ msgid "Please find the cornor with perfect degree of extrusion" +#~ msgstr "Lütfen mükemmel ekstrüzyon derecesine sahip köşeyi bulun" + +#~ msgid "X" +#~ msgstr "X" + +#~ msgid "Y" +#~ msgstr "Y" + #~ msgid "" #~ "Associate OrcaSlicer with prusaslicer:// links so that Orca can open " #~ "PrusaSlicer links from Printable.com" @@ -16477,11 +16783,11 @@ msgstr "" #~ "Order of wall/infill. When the tickbox is unchecked the walls are printed " #~ "first, which works best in most cases.\n" #~ "\n" -#~ "Printing walls first may help with extreme overhangs as the walls have the " -#~ "neighbouring infill to adhere to. However, the infill will slighly 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." +#~ "Printing walls first may help with extreme overhangs as the walls have " +#~ "the neighbouring infill to adhere to. However, the infill will slighly " +#~ "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 "" #~ "Duvar/dolgu sırası. Onay kutusunun işareti kaldırıldığında ilk olarak " #~ "duvarlar yazdırılır ve bu çoğu durumda en iyi sonucu verir.\n" @@ -16496,9 +16802,9 @@ msgstr "" #~ msgstr "V" #~ 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" +#~ "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, Prusa Research'ün PrusaSlicer'ından Bambulab'ın " #~ "BambuStudio'sunu temel alıyor. PrusaSlicer, Alessandro Ranellucci ve " @@ -16569,15 +16875,16 @@ msgstr "" #~ "değer) korumak ister misiniz?" #~ msgid "" -#~ "You have previously modified your settings and are about to overwrite them " -#~ "with new ones." +#~ "You have previously modified your settings and are about to overwrite " +#~ "them with new ones." #~ msgstr "" -#~ "Ayarlarınızı daha önce değiştirdiniz ve bunların üzerine yenilerini yazmak " -#~ "üzeresiniz." +#~ "Ayarlarınızı daha önce değiştirdiniz ve bunların üzerine yenilerini " +#~ "yazmak üzeresiniz." #~ msgid "" #~ "\n" -#~ "Do you want to keep your current modified settings, or use preset settings?" +#~ "Do you want to keep your current modified settings, or use preset " +#~ "settings?" #~ msgstr "" #~ "\n" #~ "Geçerli değiştirilen ayarlarınızı korumak mı yoksa önceden ayarlanmış " @@ -16597,8 +16904,8 @@ msgstr "" #~ "Choose an AMS slot then press \"Load\" or \"Unload\" button to " #~ "automatically load or unload filiament." #~ msgstr "" -#~ "Filamenti otomatik olarak yüklemek veya çıkarmak için bir AMS yuvası seçin " -#~ "ve ardından \"Yükle\" veya \"Boşalt\" düğmesine basın." +#~ "Filamenti otomatik olarak yüklemek veya çıkarmak için bir AMS yuvası " +#~ "seçin ve ardından \"Yükle\" veya \"Boşalt\" düğmesine basın." #~ msgid "MC" #~ msgstr "MC" @@ -16638,8 +16945,8 @@ msgstr "" #~ "The 3mf file version is in Beta and it is newer than the current Bambu " #~ "Studio version." #~ msgstr "" -#~ "3mf dosya sürümü Beta aşamasındadır ve mevcut Bambu Studio sürümünden daha " -#~ "yenidir." +#~ "3mf dosya sürümü Beta aşamasındadır ve mevcut Bambu Studio sürümünden " +#~ "daha yenidir." #~ msgid "If you would like to try Bambu Studio Beta, you may click to" #~ msgstr "Bambu Studio Beta’yı denemek isterseniz tıklayabilirsiniz." @@ -16666,9 +16973,9 @@ msgstr "" #~ "Green means that AMS humidity is normal, orange represent humidity is " #~ "high, red represent humidity is too high.(Hygrometer: lower the better.)" #~ msgstr "" -#~ "Yeşil, AMS neminin normal olduğunu, turuncu nemin yüksek olduğunu, kırmızı " -#~ "ise nemin çok yüksek olduğunu gösterir.(Higrometre: ne kadar düşükse o " -#~ "kadar iyidir.)" +#~ "Yeşil, AMS neminin normal olduğunu, turuncu nemin yüksek olduğunu, " +#~ "kırmızı ise nemin çok yüksek olduğunu gösterir.(Higrometre: ne kadar " +#~ "düşükse o kadar iyidir.)" #~ msgid "Desiccant status" #~ msgstr "Kurutucu durumu" @@ -16678,14 +16985,14 @@ msgstr "" #~ "inactive. Please change the desiccant.(The bars: higher the better.)" #~ msgstr "" #~ "İki çubuktan daha düşük bir kurutucu durumu, kurutucunun etkin olmadığını " -#~ "gösterir. Lütfen kurutucuyu değiştirin.(Çubuklar: ne kadar yüksek olursa o " -#~ "kadar iyidir.)" +#~ "gösterir. Lütfen kurutucuyu değiştirin.(Çubuklar: ne kadar yüksek olursa " +#~ "o kadar iyidir.)" #~ 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." +#~ "the process. During this time, the indicator may not represent the " +#~ "chamber accurately." #~ msgstr "" #~ "Not: Kapak açıkken veya kurutucu paketi değiştirildiğinde, nemin emilmesi " #~ "saatler veya bir gece sürebilir. Düşük sıcaklıklar da süreci yavaşlatır. " @@ -16783,14 +17090,14 @@ msgstr "" #~ 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 have a significant impact on printing quality. Please set " -#~ "them carefully." +#~ "volumetric speed have a significant impact on printing quality. Please " +#~ "set them carefully." #~ msgstr "" -#~ "İhtiyacınız olursa ön ayarlarınızı düzenlemek için lütfen filament ayarına " -#~ "gidin.\n" +#~ "İhtiyacınız olursa ön ayarlarınızı düzenlemek için lütfen filament " +#~ "ayarına gidin.\n" #~ "Lütfen püskürtme ucu sıcaklığının, sıcak yatak sıcaklığının ve maksimum " -#~ "hacimsel hızın yazdırma kalitesi üzerinde önemli bir etkiye sahip olduğunu " -#~ "unutmayın. Lütfen bunları dikkatlice ayarlayın." +#~ "hacimsel hızın yazdırma kalitesi üzerinde önemli bir etkiye sahip " +#~ "olduğunu unutmayın. Lütfen bunları dikkatlice ayarlayın." #~ msgid "Studio Version:" #~ msgstr "Stüdyo Sürümü:" @@ -16835,8 +17142,8 @@ msgstr "" #~ msgstr "Depolama Yüklemesini Test Etme" #~ msgid "" -#~ "The speed setting exceeds the printer's maximum speed (machine_max_speed_x/" -#~ "machine_max_speed_y).\n" +#~ "The speed setting exceeds the printer's maximum speed " +#~ "(machine_max_speed_x/machine_max_speed_y).\n" #~ "Orca will automatically cap the print speed to ensure it doesn't surpass " #~ "the printer's capabilities.\n" #~ "You can adjust the maximum speed setting in your printer's configuration " @@ -16844,8 +17151,8 @@ msgstr "" #~ msgstr "" #~ "Hız ayarı yazıcının maksimum hızını aşıyor (machine_max_speed_x/" #~ "machine_max_speed_y).\n" -#~ "Orca, yazıcının yeteneklerini aşmadığından emin olmak için yazdırma hızını " -#~ "otomatik olarak sınırlayacaktır.\n" +#~ "Orca, yazıcının yeteneklerini aşmadığından emin olmak için yazdırma " +#~ "hızını otomatik olarak sınırlayacaktır.\n" #~ "Daha yüksek hızlar elde etmek için yazıcınızın yapılandırmasındaki " #~ "maksimum hız ayarını yapabilirsiniz." @@ -16871,8 +17178,8 @@ msgstr "" #~ "Add solid infill near sloping surfaces to guarantee the vertical shell " #~ "thickness (top+bottom solid layers)" #~ msgstr "" -#~ "Dikey kabuk kalınlığını garanti etmek için eğimli yüzeylerin yakınına katı " -#~ "dolgu ekleyin (üst + alt katı katmanlar)" +#~ "Dikey kabuk kalınlığını garanti etmek için eğimli yüzeylerin yakınına " +#~ "katı dolgu ekleyin (üst + alt katı katmanlar)" #~ msgid "Further reduce solid infill on walls (beta)" #~ msgstr "Duvarlardaki katı dolguyu daha da azaltın (deneysel)" @@ -16926,19 +17233,19 @@ msgstr "" #~ "are not specified explicitly." #~ msgstr "" #~ "Daha iyi katman soğutması için yavaşlama etkinleştirildiğinde, yazdırma " -#~ "çıkıntıları olduğunda ve özellik hızları açıkça belirtilmediğinde filament " -#~ "için minimum yazdırma hızı." +#~ "çıkıntıları olduğunda ve özellik hızları açıkça belirtilmediğinde " +#~ "filament için minimum yazdırma hızı." #~ msgid "No sparse layers (EXPERIMENTAL)" #~ msgstr "Seyrek katman yok (DENEYSEL)" #~ 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 prinetrs, Please go to printer selection" #~ msgstr "" -#~ "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 prinetrs, Please go to printer selection" #~ msgid "The Config can not be loaded." @@ -16953,8 +17260,8 @@ msgstr "" #~ msgstr "wiki" #~ msgid "" -#~ "Relative extrusion is recommended when using \"label_objects\" option.Some " -#~ "extruders work better with this option unckecked (absolute extrusion " +#~ "Relative extrusion is recommended when using \"label_objects\" option." +#~ "Some extruders work better with this option unckecked (absolute extrusion " #~ "mode). Wipe tower is only compatible with relative mode. It is always " #~ "enabled on BambuLab printers. Default is checked" #~ msgstr "" @@ -17084,8 +17391,8 @@ msgstr "" #~ "Bir Parçayı Çıkar\n" #~ "Negatif parça değiştiriciyi kullanarak bir ağı diğerinden " #~ "çıkarabileceğinizi biliyor muydunuz? Bu şekilde örneğin doğrudan Orca " -#~ "Slicer'da kolayca yeniden boyutlandırılabilen delikler oluşturabilirsiniz. " -#~ "Daha fazlasını belgelerde okuyun." +#~ "Slicer'da kolayca yeniden boyutlandırılabilen delikler " +#~ "oluşturabilirsiniz. Daha fazlasını belgelerde okuyun." #~ msgid "Filling bed " #~ msgstr "Yatak doldurma " @@ -17101,7 +17408,8 @@ msgstr "" #~ msgstr "" #~ "Doğrusal desene geçilsin mi?\n" #~ "Evet - otomatik olarak doğrusal desene geçin\n" -#~ "Hayır - yoğunluğu otomatik olarak %100 olmayan varsayılan değere sıfırlayın" +#~ "Hayır - yoğunluğu otomatik olarak %100 olmayan varsayılan değere " +#~ "sıfırlayın" #~ msgid "Please heat the nozzle to above 170 degree before loading filament." #~ msgstr "" @@ -17342,8 +17650,8 @@ msgstr "" #~ "load uptodate process/machine settings from the specified file when using " #~ "uptodate" #~ msgstr "" -#~ "güncellemeyi kullanırken belirtilen dosyadan güncel işlem/yazıcıayarlarını " -#~ "yükle" +#~ "güncellemeyi kullanırken belirtilen dosyadan güncel işlem/" +#~ "yazıcıayarlarını yükle" #~ msgid "Output directory" #~ msgstr "Çıkış dizini" @@ -17390,8 +17698,8 @@ msgstr "" #~ "OrcaSlicer configuration file may be corrupted and is not abled to be " #~ "parsed.Please delete the file and try again." #~ msgstr "" -#~ "OrcaSlicer yapılandırma dosyası bozulmuş olabilir ve ayrıştırılması mümkün " -#~ "olmayabilir. Lütfen dosyayı silin ve tekrar deneyin." +#~ "OrcaSlicer yapılandırma dosyası bozulmuş olabilir ve ayrıştırılması " +#~ "mümkün olmayabilir. Lütfen dosyayı silin ve tekrar deneyin." #~ msgid "Online Models" #~ msgstr "Çevrimiçi Modeller" @@ -17405,8 +17713,8 @@ 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)" +#~ "(Currently supporting automatic supply of consumables with the same " +#~ "brand, material type, and color)" #~ msgstr "" #~ "Şu anda aynı yedek sarf malzemesi mevcut değildir ve otomatik yenileme şu " #~ "anda mümkün değildir.\n" @@ -17438,7 +17746,8 @@ msgstr "" #~ "daha sıcak olamaz" #~ msgid "Enable this option if machine has auxiliary part cooling fan" -#~ msgstr "Makinede yardımcı parça soğutma fanı varsa bu seçeneği etkinleştirin" +#~ msgstr "" +#~ "Makinede yardımcı parça soğutma fanı varsa bu seçeneği etkinleştirin" #~ msgid "" #~ "This option is enabled if machine support controlling chamber temperature" @@ -17466,7 +17775,8 @@ msgstr "" #~ "katmanları etkilemez" #~ msgid "Empty layers around bottom are replaced by nearest normal layers." -#~ msgstr "Alt kısımdaki boş katmanların yerini en yakın normal katmanlar alır." +#~ msgstr "" +#~ "Alt kısımdaki boş katmanların yerini en yakın normal katmanlar alır." #~ msgid "The model has too many empty layers." #~ msgstr "Modelde çok fazla boş katman var." @@ -17484,8 +17794,9 @@ msgstr "" #~ "Bed temperature when high temperature plate is installed. Value 0 means " #~ "the filament does not support to print on the High Temp Plate" #~ msgstr "" -#~ "Yüksek sıcaklık plakası takıldığında yatak sıcaklığı. 0 değeri, filamentin " -#~ "Yüksek Sıcaklık Plakasına yazdırmayı desteklemediği anlamına gelir" +#~ "Yüksek sıcaklık plakası takıldığında yatak sıcaklığı. 0 değeri, " +#~ "filamentin Yüksek Sıcaklık Plakasına yazdırmayı desteklemediği anlamına " +#~ "gelir" #~ msgid "" #~ "Klipper's max_accel_to_decel will be adjusted to this % of acceleration" @@ -17505,7 +17816,8 @@ msgstr "" #~ msgstr "" #~ "Desteğin stili ve şekli. Normal destek için, desteklerin düzenli bir " #~ "ızgaraya yansıtılması daha sağlam destekler oluşturur (varsayılan), rahat " -#~ "destek kuleleri ise malzemeden tasarruf sağlar ve nesne izlerini azaltır.\n" +#~ "destek kuleleri ise malzemeden tasarruf sağlar ve nesne izlerini " +#~ "azaltır.\n" #~ "Ağaç desteği için, ince stil, dalları daha agresif bir şekilde " #~ "birleştirecek ve çok fazla malzeme tasarrufu sağlayacak (varsayılan), " #~ "hibrit stil ise büyük düz çıkıntılar altında normal desteğe benzer yapı " diff --git a/localization/i18n/uk/OrcaSlicer_uk.po b/localization/i18n/uk/OrcaSlicer_uk.po index d6c19c197a..9330e360fd 100644 --- a/localization/i18n/uk/OrcaSlicer_uk.po +++ b/localization/i18n/uk/OrcaSlicer_uk.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-05-24 23:26+0800\n" +"POT-Creation-Date: 2024-06-21 20:03+0800\n" "PO-Revision-Date: 2024-05-30 12:35+0300\n" "Last-Translator: \n" "Language-Team: \n" @@ -15,8 +15,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " -"n%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n" "X-Generator: Poedit 3.4.4\n" msgid "Supports Painting" @@ -2862,11 +2862,13 @@ msgstr "Ви впевнені, що хочете видалити інформа msgid "You need to select the material type and color first." msgstr "Спочатку потрібно вибрати тип матеріалу та колір." -msgid "Please input a valid value (K in 0~0.3)" -msgstr "Введіть допустиме значення (K в діапазоні 0~0.3)" +#, c-format, boost-format +msgid "Please input a valid value (K in %.1f~%.1f)" +msgstr "" -msgid "Please input a valid value (K in 0~0.3, N in 0.6~2.0)" -msgstr "Будь ласка, введіть допустиме значення (K від 0~0.3, N від 0.6~2.0)" +#, c-format, boost-format +msgid "Please input a valid value (K in %.1f~%.1f, N in %.1f~%.1f)" +msgstr "" msgid "Other Color" msgstr "Інший колір" @@ -3296,12 +3298,12 @@ msgstr "Завдання надіслане" msgid "Edit multiple printers" msgstr "Редагувати кілька принтерів" -msgid "Select connected printetrs (0/6)" -msgstr "Вибір підключених принтерів (0/6)" +msgid "Select connected printers (0/6)" +msgstr "" #, c-format, boost-format -msgid "Select Connected Printetrs (%d/6)" -msgstr "Виберіть Підключені принтери (%d/6)" +msgid "Select Connected Printers (%d/6)" +msgstr "" #, c-format, boost-format msgid "The maximum number of printers that can be selected is %d" @@ -3363,8 +3365,8 @@ msgstr "Друк завершено" msgid "Printing Failed" msgstr "Помилка друку" -msgid "PrintingPause" -msgstr "Пауза друку" +msgid "Printing Pause" +msgstr "" msgid "Prepare" msgstr "Підготувати" @@ -3463,8 +3465,8 @@ msgstr "Динамічне калібрування потоку" msgid "Send Options" msgstr "Параметри відправки" -msgid "Send" -msgstr "Надіслати" +msgid "Send to" +msgstr "" msgid "" "printers at the same time.(It depends on how many devices can undergo " @@ -3482,6 +3484,9 @@ msgstr "" "хвилин на кожну партію. (Це залежить від того, скільки часу потрібно на " "нагрівання)." +msgid "Send" +msgstr "Надіслати" + msgid "Name is invalid;" msgstr "Некоректне ім'я;" @@ -4055,6 +4060,20 @@ msgstr "" "ТАК для %s%%, \n" "НІ для %s %s." +#, boost-format +msgid "" +"Invalid input format. Expected vector of dimensions in the following format: " +"\"%1%\"" +msgstr "" +"Недійсний формат введення. Очікується вектор розмірів у наступному форматі: " +"\"%1%\"" + +msgid "Input value is out of range" +msgstr "Вхідне значення виходить за межі діапазону" + +msgid "Some extension in the input is invalid" +msgstr "" + #, boost-format msgid "Invalid format. Expected vector format: \"%1%\"" msgstr "Невірний формат. Очікуваний векторний формат: \"%1%\"" @@ -6762,6 +6781,12 @@ msgstr "" "Якщо включено, встановлює OrcaSlicer як програму за замовчуваннямдля " "відкриття файлів .step" +msgid "Associate web links to OrcaSlicer" +msgstr "" + +msgid "Associate URLs to OrcaSlicer" +msgstr "" + msgid "Current association: " msgstr "Поточна асоціація: " @@ -6772,11 +6797,25 @@ msgid "Not associated to any application" msgstr "Не пов'язаний з жодним додатком" msgid "" -"Associate OrcaSlicer with prusaslicer:// links so that Orca can open " -"PrusaSlicer links from Printable.com" +"Associate OrcaSlicer with prusaslicer:// links so that Orca can open models " +"from Printable.com" +msgstr "" + +msgid "Associate bambustudio://" +msgstr "" + +msgid "" +"Associate OrcaSlicer with bambustudio:// links so that Orca can open models " +"from makerworld.com" +msgstr "" + +msgid "Associate cura://" +msgstr "" + +msgid "" +"Associate OrcaSlicer with cura:// links so that Orca can open models from " +"thingiverse.com" msgstr "" -"Зв'язати OrcaSlicer з посиланнями prusaslicer://, щоб Orca могла відкривати " -"посилання PrusaSlicer з Printable.com" msgid "Maximum recent projects" msgstr "Максимум останніх проектів" @@ -7154,10 +7193,6 @@ msgstr "відправлення завершено" msgid "Error code" msgstr "Код помилки" -msgid "Printer local connection failed, please try again." -msgstr "" -"Не вдалося встановити локальне підключення до принтера; спробуйте ще раз." - msgid "No login account, only printers in LAN mode are displayed" msgstr "" "Немає облікового запису для входу, відображаються лише принтери в режимі LAN" @@ -7302,8 +7337,8 @@ msgid "nozzle in preset: %s %s" msgstr "сопло в налаштуваннях: %s %s" #, c-format, boost-format -msgid "nozzle memorized: %.1f %s" -msgstr "запам’ятоване сопло: %.1f %s" +msgid "nozzle memorized: %.2f %s" +msgstr "" msgid "" "Your nozzle diameter in sliced file is not consistent with memorized nozzle. " @@ -7649,8 +7684,8 @@ msgstr "" 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\"." +"by right-click the empty position of build plate and choose \"Add Primitive" +"\"->\"Timelapse Wipe Tower\"." msgstr "" "При записі таймлапсу без інструментальної головки рекомендується додати " "“Timelapse Wipe Tower” \n" @@ -7914,6 +7949,14 @@ msgstr "Параметри заміни інструменту в багатое msgid "Printable space" msgstr "Місце для друку" +#. TRN: First argument is parameter name, the second one is the value. +#, boost-format +msgid "Invalid value provided for parameter %1%: %2%" +msgstr "" + +msgid "G-code flavor is switched" +msgstr "" + msgid "Cooling Fan" msgstr "Охолоджуючий вентилятор" @@ -8298,6 +8341,60 @@ msgstr "Оновлення відсутні." msgid "The configuration is up to date." msgstr "Конфігурація є актуальною." +msgid "Obj file Import color" +msgstr "Імпорт кольору файлу OBJ" + +msgid "Specify number of colors:" +msgstr "Вкажіть кількість кольорів:" + +#, c-format, boost-format +msgid "The color count should be in range [%d, %d]." +msgstr "Кількість кольорів повинна бути в діапазоні [%d, %d]." + +msgid "Recommended " +msgstr "Рекомендовано " + +msgid "Current filament colors:" +msgstr "Поточні кольори філаменту:" + +msgid "Quick set:" +msgstr "Швидке встановлення:" + +msgid "Color match" +msgstr "Відповідність кольору" + +msgid "Approximate color matching." +msgstr "Приблизне відповідання кольору." + +msgid "Append" +msgstr "Додати" + +msgid "Add consumable extruder after existing extruders." +msgstr "Додати споживчий екструдер після існуючих екструдерів." + +msgid "Reset mapped extruders." +msgstr "Скинути відображені екструдери." + +msgid "Cluster colors" +msgstr "Згрупувати кольори" + +msgid "Map Filament" +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 "" +"Попередження: Кількість новостворених та \n" +" поточних екструдерів перевищує 16." + msgid "Ramming customization" msgstr "Налаштування раммінгу" @@ -8383,6 +8480,32 @@ msgstr "Від" msgid "To" msgstr "В" +msgid "" +"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" +msgstr "" + +msgid "" +"Missing BambuSource component registered for media playing! Please re-" +"install BambuStutio 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." +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?)" +msgstr "" + msgid "Bambu Network plug-in not detected." msgstr "Плагін мережі Bambu не виявлено." @@ -10462,21 +10585,12 @@ msgid "" "Order of wall/infill. When the tickbox is unchecked the walls are printed " "first, which works best in most cases.\n" "\n" -"Printing walls first may help with extreme overhangs as the walls have the " +"Printing infill first may help with extreme overhangs as the walls have the " "neighbouring infill to adhere to. However, the infill will slighly 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 "" -"Порядок стінка/заповнення. Якщо прапорець знято, першими друкуються стіни, " -"що в більшості випадків працює найкраще.\n" -"\n" -"Друк стінок першими може допомогти у випадку екстремальних виступів, " -"оскільки стінки мають сусіднє заповнення, до якого вони прилягають. Однак " -"заповнення злегка виштовхує надруковані стінки там, де воно прикріплене до " -"них, що призводить до погіршення зовнішньої обробки поверхні. Це також може " -"призвести до того, що заповнення просвічуватиметься крізь зовнішні поверхні " -"деталі." msgid "Wall loop direction" msgstr "Напрямок периметрів стінок" @@ -10663,6 +10777,22 @@ msgstr "" "будезупинятиметься і працюватиме\n" "хоча б на мінімальній швидкості для зменшення частоти пусків та зупинок" +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" +"\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 " +"artefacts that appear like z banding \n" +"3. To avoid printing at speeds which cause VFAs (fine artefacts) on the " +"external walls\n" +"\n" +msgstr "" + msgid "Layer time" msgstr "Час шару" @@ -11226,10 +11356,10 @@ msgstr "Повна швидкість вентилятора на шарі" 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 "" "Швидкість вентилятора лінійно збільшується від нуля на " "рівні«close_fan_the_first_x_layers» до максимуму на рівні " @@ -11238,6 +11368,9 @@ msgstr "" "працювати з максимально допустимою швидкістю на " "рівні«close_fan_the_first_x_layers» + 1." +msgid "layer" +msgstr "" + msgid "Support interface fan speed" msgstr "Швидкість вентилятора під час друку підтримки" @@ -13451,9 +13584,9 @@ msgstr "" "Залежно від тривалості операції витирання, швидкості та тривалості " "втягування екструдера/нитки, може знадобитися рух накату для нитки. \n" "\n" -"Якщо встановити значення у параметрі \"Кількість втягування перед " -"витиранням\" нижче, надлишкове втягування буде виконано перед витиранням, " -"інакше воно буде виконано після нього." +"Якщо встановити значення у параметрі \"Кількість втягування перед витиранням" +"\" нижче, надлишкове втягування буде виконано перед витиранням, інакше воно " +"буде виконано після нього." msgid "" "The wiping tower can be used to clean up the residue on the nozzle and " @@ -14521,34 +14654,15 @@ msgid "" "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 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" "\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 "" -"Будь ласка, знайдіть докладну інформацію щодо калібрування “Flow Dynamics " -"Calibration” у нашому вікі.\n" -"\n" -"Зазвичай калібрування не є необхідним. Коли ви розпочинаєте друк з одним " -"кольором/матеріалом, з опцією “калібрування динаміки потоку” включеною у " -"меню початку друку, принтер буде використовувати старий спосіб калібрування " -"філаменту перед початком друку; Коли ви розпочинаєте друк з декількома " -"кольорами/матеріалами, принтер використовуватиме стандартні параметри " -"компенсації для філаменту під час кожного перемикання філаменту, що в " -"більшості випадків дає гарний результат.\n" -"\n" -"Зверніть увагу, що є деякі випадки, коли результат калібрування може бути " -"ненадійним: використання текстурної підкладки для калібрування; слабка " -"адгезія підкладки (будь ласка, вимийте підкладку або нанесіть клей!) … " -"Більше інформації можна знайти у нашому вікі.\n" -"\n" -"Результати калібрування мають приблизно 10-відсотковий шум у наших тестах, " -"що може призвести до незначних відмінностей у кожному калібруванні. Ми все " -"ще вивчаємо кореневу причину, щоб внести поліпшення в майбутніх оновленнях." msgid "When to use Flow Rate Calibration" msgstr "Коли використовувати калібрування рівня потоку" @@ -14684,26 +14798,16 @@ msgstr "Ім’я не може перевищувати 40 символів." msgid "" "Only one of the results with the same name will be saved. Are you sure you " -"want to overrides the other results?" +"want to override 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 best line on your plate" msgstr "Будь ласка, знайдіть найкращу лінію на вашій пластині" -msgid "Please find the cornor with perfect degree of extrusion" -msgstr "Будь ласка, знайдіть кут із ідеальним ступенем екструзії" +msgid "Please find the corner with perfect degree of extrusion" +msgstr "Будь ласка, знайдіть кут з ідеальним ступенем витіснення" msgid "Input Value" msgstr "Введіть значення" @@ -14959,6 +15063,9 @@ msgstr "ABS/ASA" msgid "PETG" msgstr "PETG" +msgid "PCTG" +msgstr "" + msgid "TPU" msgstr "TPU" @@ -15056,6 +15163,9 @@ msgstr "" msgid "Upload to storage" msgstr "Завантажити до сховища" +msgid "Switch to Device tab after upload." +msgstr "" + #, c-format, boost-format msgid "Upload filename doesn't end with \"%s\". Do you wish to continue?" msgstr "" @@ -15288,8 +15398,8 @@ msgstr "" "Чи бажаєте ви їх перезаписати?" 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 "" "Ми б перейменували попередні налаштування на «Вибраний вами серійний " @@ -15339,12 +15449,6 @@ msgstr "Прямокутник" msgid "Printable Space" msgstr "Простір для друку" -msgid "X" -msgstr "X" - -msgid "Y" -msgstr "Y" - msgid "Hot Bed STL" msgstr "STL файл для гарячого столу" @@ -15715,6 +15819,10 @@ msgstr "Згорнути" msgid "Daily Tips" msgstr "Щоденні поради" +#, c-format, boost-format +msgid "nozzle memorized: %.1f %s" +msgstr "запам’ятоване сопло: %.1f %s" + msgid "" "Your nozzle diameter in preset is not consistent with memorized nozzle " "diameter. Did you change your nozzle lately?" @@ -15759,6 +15867,12 @@ msgstr "Ви впевнені, що вийшли?" msgid "Refresh Printers" msgstr "Оновити принтери" +msgid "View print host webui in Device tab" +msgstr "" + +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." @@ -16199,21 +16313,17 @@ msgstr "Успішне підключення до SimplyPrint!" msgid "Could not connect to SimplyPrint" msgstr "Не вдалося підключитися до SimplyPrint" +msgid "Internel error" +msgstr "" + +msgid "Unknown error" +msgstr "Невідома помилка" + msgid "SimplyPrint account not linked. Go to Connect options to set it up." msgstr "" "Обліковий запис SimplyPrint не пов’язано. Щоб налаштувати його, перейдіть до " "параметрів підключення." -msgid "" -"File size exceeds the 100MB upload limit. Please upload your file through " -"the panel." -msgstr "" -"Розмір файлу перевищує ліміт завантаження в 100 Мб. Будь ласка, завантажте " -"свій файл через панель." - -msgid "Unknown error" -msgstr "Невідома помилка" - msgid "Connection to Flashforge works correctly." msgstr "Підключення до Flashforge працює правильно." @@ -16618,6 +16728,127 @@ msgstr "" "ABS, відповідне підвищення температури гарячого ліжка може зменшити " "ймовірність деформації." +#~ msgid "" +#~ "File size exceeds the 100MB upload limit. Please upload your file through " +#~ "the panel." +#~ msgstr "" +#~ "Розмір файлу перевищує ліміт завантаження в 100 Мб. Будь ласка, " +#~ "завантажте свій файл через панель." + +#~ msgid "Please input a valid value (K in 0~0.3)" +#~ msgstr "Введіть допустиме значення (K в діапазоні 0~0.3)" + +#~ msgid "Please input a valid value (K in 0~0.3, N in 0.6~2.0)" +#~ msgstr "Будь ласка, введіть допустиме значення (K від 0~0.3, N від 0.6~2.0)" + +#~ msgid "Select connected printetrs (0/6)" +#~ msgstr "Вибір підключених принтерів (0/6)" + +#, c-format, boost-format +#~ msgid "Select Connected Printetrs (%d/6)" +#~ msgstr "Виберіть Підключені принтери (%d/6)" + +#~ msgid "PrintingPause" +#~ 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 "" +#~ "Будь ласка, знайдіть докладну інформацію щодо калібрування “Flow Dynamics " +#~ "Calibration” у нашому вікі.\n" +#~ "\n" +#~ "Зазвичай калібрування не є необхідним. Коли ви розпочинаєте друк з одним " +#~ "кольором/матеріалом, з опцією “калібрування динаміки потоку” включеною у " +#~ "меню початку друку, принтер буде використовувати старий спосіб " +#~ "калібрування філаменту перед початком друку; Коли ви розпочинаєте друк з " +#~ "декількома кольорами/матеріалами, принтер використовуватиме стандартні " +#~ "параметри компенсації для філаменту під час кожного перемикання " +#~ "філаменту, що в більшості випадків дає гарний результат.\n" +#~ "\n" +#~ "Зверніть увагу, що є деякі випадки, коли результат калібрування може бути " +#~ "ненадійним: використання текстурної підкладки для калібрування; слабка " +#~ "адгезія підкладки (будь ласка, вимийте підкладку або нанесіть клей!) … " +#~ "Більше інформації можна знайти у нашому вікі.\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 "" +#~ "Associate OrcaSlicer with prusaslicer:// links so that Orca can open " +#~ "PrusaSlicer links from Printable.com" +#~ msgstr "" +#~ "Зв'язати OrcaSlicer з посиланнями prusaslicer://, щоб Orca могла " +#~ "відкривати посилання PrusaSlicer з Printable.com" + +#~ msgid "" +#~ "Order of wall/infill. When the tickbox is unchecked the walls are printed " +#~ "first, which works best in most cases.\n" +#~ "\n" +#~ "Printing walls first may help with extreme overhangs as the walls have " +#~ "the neighbouring infill to adhere to. However, the infill will slighly " +#~ "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 "" +#~ "Порядок стінка/заповнення. Якщо прапорець знято, першими друкуються " +#~ "стіни, що в більшості випадків працює найкраще.\n" +#~ "\n" +#~ "Друк стінок першими може допомогти у випадку екстремальних виступів, " +#~ "оскільки стінки мають сусіднє заповнення, до якого вони прилягають. Однак " +#~ "заповнення злегка виштовхує надруковані стінки там, де воно прикріплене " +#~ "до них, що призводить до погіршення зовнішньої обробки поверхні. Це також " +#~ "може призвести до того, що заповнення просвічуватиметься крізь зовнішні " +#~ "поверхні деталі." + +#~ msgid "X" +#~ msgstr "X" + +#~ msgid "Y" +#~ msgstr "Y" + #~ msgid "V" #~ msgstr "V" diff --git a/localization/i18n/zh_CN/OrcaSlicer_zh_CN.po b/localization/i18n/zh_CN/OrcaSlicer_zh_CN.po index 2f880b1170..7fca4dede8 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: 2024-05-29 00:28+0800\n" +"POT-Creation-Date: 2024-06-21 20:03+0800\n" "PO-Revision-Date: 2023-04-01 13:21+0800\n" "Last-Translator: SoftFever \n" "Language-Team: \n" @@ -2748,11 +2748,13 @@ msgstr "您确定要清除耗材丝信息吗?" msgid "You need to select the material type and color first." msgstr "您需要先选择材料类型和颜色。" -msgid "Please input a valid value (K in 0~0.3)" -msgstr "请输入有效的数值 (K的范围为0~0.3)" +#, c-format, boost-format +msgid "Please input a valid value (K in %.1f~%.1f)" +msgstr "请输入有效的数值(K的范围为%.1f~%.1f)" -msgid "Please input a valid value (K in 0~0.3, N in 0.6~2.0)" -msgstr "请输入有效的数值 (K的范围为0~0.3,N的范围为0.6~2.0)" +#, c-format, boost-format +msgid "Please input a valid value (K in %.1f~%.1f, N in %.1f~%.1f)" +msgstr "请输入有效的数值(K的范围为%.1f~%.1f,N的范围为%.1f~%.1f)" msgid "Other Color" msgstr "其他颜色" @@ -3144,11 +3146,11 @@ msgstr "已发送的任务" msgid "Edit multiple printers" msgstr "编辑多个打印机" -msgid "Select connected printetrs (0/6)" +msgid "Select connected printers (0/6)" msgstr "选择已连接的打印机 (0/6)" #, c-format, boost-format -msgid "Select Connected Printetrs (%d/6)" +msgid "Select Connected Printers (%d/6)" msgstr "选择已连接的打印机 (%d/6)" #, c-format, boost-format @@ -3202,16 +3204,16 @@ msgid "Incompatible" msgstr "不兼容的预设" msgid "syncing" -msgstr "" +msgstr "同步中" msgid "Printing Finish" -msgstr "" +msgstr "打印成功" msgid "Printing Failed" -msgstr "" +msgstr "打印失败" -msgid "PrintingPause" -msgstr "" +msgid "Printing Pause" +msgstr "打印暂停" msgid "Prepare" msgstr "准备" @@ -3220,28 +3222,28 @@ msgid "Slicing" msgstr "正在切片" msgid "Pending" -msgstr "" +msgstr "等待中" msgid "Sending" msgstr "发送中" msgid "Sending Finish" -msgstr "" +msgstr "发送成功" msgid "Sending Cancel" -msgstr "" +msgstr "取消发送" msgid "Sending Failed" -msgstr "" +msgstr "发送失败" msgid "Print Success" -msgstr "" +msgstr "打印成功" msgid "Print Failed" -msgstr "" +msgstr "打印失败" msgid "Removed" -msgstr "" +msgstr "移除" msgid "Resume" msgstr "继续" @@ -3309,8 +3311,8 @@ msgstr "" msgid "Send Options" msgstr "发送选项" -msgid "Send" -msgstr "发送" +msgid "Send to" +msgstr "" msgid "" "printers at the same time.(It depends on how many devices can undergo " @@ -3324,6 +3326,9 @@ msgid "" "minute each batch.(It depends on how long it takes to complete the heating.)" msgstr "分钟发送一次。(这取决于完成加热需要多长时间。)" +msgid "Send" +msgstr "发送" + msgid "Name is invalid;" msgstr "无效名称;" @@ -3862,6 +3867,18 @@ msgstr "" "是:%s%%\n" "否:%s %s" +#, boost-format +msgid "" +"Invalid input format. Expected vector of dimensions in the following format: " +"\"%1%\"" +msgstr "输入格式无效。应为以下格式的维度向量:“%1%”" + +msgid "Input value is out of range" +msgstr "输入值超出范围外" + +msgid "Some extension in the input is invalid" +msgstr "" + #, boost-format msgid "Invalid format. Expected vector format: \"%1%\"" msgstr "无效格式,应该是\"%1%\"这种数组格式" @@ -5348,19 +5365,19 @@ msgstr "较新的3mf版本" msgid "" "The 3mf file version is in Beta and it is newer than the current OrcaSlicer " "version." -msgstr "" +msgstr "3mf文件版本处于Beta测试阶段,比当前OrcaSlicer版本更新。" msgid "If you would like to try Orca Slicer Beta, you may click to" -msgstr "" +msgstr "如果您想尝试Orca Slicer Beta,您可以点击" msgid "Download Beta Version" msgstr "下载Beta版本" msgid "The 3mf file version is newer than the current Orca Slicer version." -msgstr "" +msgstr "3mf文件版本比当前Orca Slicer版本更新。" msgid "Update your Orca Slicer could enable all functionality in the 3mf file." -msgstr "" +msgstr "更新你的Orca Slicer以启用3mf文件中的所有功能。" msgid "Current Version: " msgstr "当前版本:" @@ -5993,7 +6010,7 @@ msgstr "项目已下载%d%%" msgid "" "Importing to Orca Slicer failed. Please download the file and manually " "import it." -msgstr "" +msgstr "导入到Orca Slicer失败。请下载文件并手动导入。" msgid "Import SLA archive" msgstr "导入 SLA 存档" @@ -6015,7 +6032,7 @@ msgstr "加载路径为%1%的ZIP档案失败。" #. TRN: First argument = path to file, second argument = error description #, boost-format msgid "Failed to unzip file to %1%: %2%" -msgstr "" +msgstr "解压文件到%1%失败:%2%" #, boost-format msgid "Failed to find unzipped file at %1%. Unzipping of file has failed." @@ -6105,9 +6122,11 @@ msgid "" "3MF file?\n" "If you hit 'NO', all SVGs in the project will not be editable any more." msgstr "" +"您确定要将原始SVG文件与其本地路径存储到3MF文件中吗?\n" +"如果选择“否”,项目中的所有SVG文件将不再可编辑。" msgid "Private protection" -msgstr "" +msgstr "隐私保护" msgid "Is the printer ready? Is the print sheet in place, empty and clean?" msgstr "打印机是否就绪?打印平台是否在正确的位置、有没有异物、是否干净?" @@ -6132,7 +6151,7 @@ msgid "Custom supports and color painting were removed before repairing." msgstr "自定义的支撑和涂色在模型修复之前将被清除。" msgid "Optimize Rotation" -msgstr "" +msgstr "优化旋转" msgid "Invalid number" msgstr "无效数字" @@ -6815,9 +6834,6 @@ msgstr "发送完成" msgid "Error code" msgstr "错误代码" -msgid "Printer local connection failed, please try again." -msgstr "打印机局域网连接失败,请重试。" - msgid "No login account, only printers in LAN mode are displayed" msgstr "未登录账号,仅显示局域网模式的打印机" @@ -7205,14 +7221,18 @@ 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" "It will set to min_layer_height\n" msgstr "" +"层高太小。\n" +"将自动设置为min_layer_height的值\n" msgid "" "Layer height exceeds the limit in Printer Settings -> Extruder -> Layer " @@ -7492,6 +7512,14 @@ msgstr "多挤出机多材料打印机的换色参数" msgid "Printable space" msgstr "可打印区域" +#. TRN: First argument is parameter name, the second one is the value. +#, boost-format +msgid "Invalid value provided for parameter %1%: %2%" +msgstr "" + +msgid "G-code flavor is switched" +msgstr "G-code风格已切换" + msgid "Cooling Fan" msgstr "冷却风扇" @@ -7532,7 +7560,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" @@ -7850,6 +7878,60 @@ msgstr "没有可用的更新。" msgid "The configuration is up to date." msgstr "当前配置已经是最新版本。" +msgid "Obj file Import color" +msgstr "Obj文件导入颜色" + +msgid "Specify number of colors:" +msgstr "指定颜色数量:" + +#, c-format, boost-format +msgid "The color count should be in range [%d, %d]." +msgstr "颜色数量范围应该是[%d, %d]。" + +msgid "Recommended " +msgstr "推荐" + +msgid "Current filament colors:" +msgstr "当前耗材丝颜色:" + +msgid "Quick set:" +msgstr "快捷设置:" + +msgid "Color match" +msgstr "颜色匹配" + +msgid "Approximate color matching." +msgstr "近似的颜色匹配。" + +msgid "Append" +msgstr "追加" + +msgid "Add consumable extruder after existing extruders." +msgstr "近似的颜色匹配。" + +msgid "Reset mapped extruders." +msgstr "重置匹配的耗材丝。" + +msgid "Cluster colors" +msgstr "重置匹配的耗材丝" + +msgid "Map Filament" +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 "" +"警告:新增追加耗材丝数量 \n" +" 和已有耗材丝数量超过了16." + msgid "Ramming customization" msgstr "自定义尖端成型" @@ -7931,6 +8013,32 @@ msgstr "从" msgid "To" msgstr "到" +msgid "" +"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" +msgstr "" + +msgid "" +"Missing BambuSource component registered for media playing! Please re-" +"install BambuStutio 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." +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?)" +msgstr "" + msgid "Bambu Network plug-in not detected." msgstr "未检测到Bambu网络插件。" @@ -9971,6 +10079,29 @@ msgstr "" "如果勾选这个选项,部件冷却风扇将永远不会停止,并且会至少运行在最小风扇转速值" "以减少风扇的启停频次" +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" +"\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 " +"artefacts that appear like z banding \n" +"3. To avoid printing at speeds which cause VFAs (fine artefacts) on the " +"external walls\n" +"\n" +msgstr "" +"如果启用,此设置将确保外墙不会为了满足最小层时间而减速。这在以下情况下特别有" +"帮助:\n" +"\n" +"1. 避免在打印光滑耗材时改变光泽\n" +"2. 避免改变外墙速度,可能会产生轻微的墙壁伪影,看起来像z条纹\n" +"3. 避免以会在外墙上产生VFAs(细微伪影)的速度打印\n" +"\n" + msgid "Layer time" msgstr "层时间" @@ -10475,6 +10606,9 @@ msgstr "" "第一层”,则“全风扇速度第一层”将被忽略,在这种情况下,风扇将在“禁用风扇第一" "层”+1层以最大允许速度运行。" +msgid "layer" +msgstr "" + msgid "Support interface fan speed" msgstr "支撐接触面风扇" @@ -12327,7 +12461,7 @@ msgid "" 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 " @@ -13357,24 +13491,24 @@ msgid "" "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 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" "\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" +"请从我们的wiki中找到动态流量校准的详细信息。\n" "\n" "通常情况下,校准是不必要的。当您开始单色/单材料打印,并在打印开始菜单中勾选" -"了“流量动态校准”选项时,打印机将按照旧的方式,在打印前校准丝料;当您开始多色/" +"了“动态流量校准”选项时,打印机将按照旧的方式,在打印前校准丝料;当您开始多色/" "多材料打印时,打印机将在每次换丝料时使用默认的补偿参数,这在大多数情况下会产" "生良好的效果。\n" "\n" -"请注意,有几种情况会导致校准结果不可靠:使用纹理板进行校准;建模平台粘附效果" -"不好(请清洗建模平台或涂抹胶棒)... 您可以在我们的wiki中找到更多信息。\n" +"有几种情况可能导致校准结果不可靠,例如打印板的的附着力不足。清洗打印板或者使" +"用胶水可以增强打印板附着力。您可以在我们的维基上找到更多相关信息。\n" "\n" "在我们的测试中,校准结果有约10%的波动,这可能导致每次校准的结果略有不同。我们" "仍在调查根本原因,并通过新的更新进行改进。" @@ -13490,23 +13624,14 @@ msgstr "名称不能超过40个字符。" msgid "" "Only one of the results with the same name will be saved. Are you sure you " -"want to overrides the other results?" +"want to override 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 best line on your plate" msgstr "请在您的打印板上找到最佳线条" -msgid "Please find the cornor with perfect degree of extrusion" -msgstr "请找出最佳挤出角度" +msgid "Please find the corner with perfect degree of extrusion" +msgstr "请找到具有完美挤出度的角落" msgid "Input Value" msgstr "输入值" @@ -13757,6 +13882,9 @@ msgstr "" msgid "PETG" msgstr "" +msgid "PCTG" +msgstr "" + msgid "TPU" msgstr "" @@ -13853,6 +13981,9 @@ msgstr "如有需要,请使用正斜杠( / )作为目录分隔符。" msgid "Upload to storage" msgstr "上传到存储单位" +msgid "Switch to Device tab after upload." +msgstr "上传后跳转到设备页。" + #, c-format, boost-format msgid "Upload filename doesn't end with \"%s\". Do you wish to continue?" msgstr "上传文件名不以\"%s\"结尾。您是否要继续?" @@ -14118,12 +14249,6 @@ msgstr "矩形" msgid "Printable Space" msgstr "可打印形状" -msgid "X" -msgstr "" - -msgid "Y" -msgstr "" - msgid "Hot Bed STL" msgstr "热床STL模型" @@ -14446,7 +14571,7 @@ msgstr "每日贴士" #, c-format, boost-format msgid "nozzle memorized: %.1f %s" -msgstr "" +msgstr "记忆中的喷嘴:%.1f %s" msgid "" "Your nozzle diameter in preset is not consistent with memorized nozzle " @@ -14486,6 +14611,12 @@ msgstr "" msgid "Refresh Printers" msgstr "刷新打印机" +msgid "View print host webui in Device tab" +msgstr "" + +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." @@ -14871,17 +15002,15 @@ msgstr "" msgid "Could not connect to SimplyPrint" msgstr "" -msgid "SimplyPrint account not linked. Go to Connect options to set it up." -msgstr "" - -msgid "" -"File size exceeds the 100MB upload limit. Please upload your file through " -"the panel." +msgid "Internel error" msgstr "" msgid "Unknown error" msgstr "" +msgid "SimplyPrint account not linked. Go to Connect options to set it up." +msgstr "" + msgid "Connection to Flashforge works correctly." msgstr "" diff --git a/localization/i18n/zh_TW/OrcaSlicer_zh_TW.po b/localization/i18n/zh_TW/OrcaSlicer_zh_TW.po index c03c0d34ae..6ede9cbe2c 100644 --- a/localization/i18n/zh_TW/OrcaSlicer_zh_TW.po +++ b/localization/i18n/zh_TW/OrcaSlicer_zh_TW.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-05-29 00:28+0800\n" +"POT-Creation-Date: 2024-06-21 20:03+0800\n" "PO-Revision-Date: 2023-11-06 14:37+0800\n" "Last-Translator: ablegods \n" "Language-Team: \n" @@ -2839,10 +2839,12 @@ msgstr "您確定要清除線材資訊嗎?" msgid "You need to select the material type and color first." msgstr "您需要先選擇線材類型和顏色。" -msgid "Please input a valid value (K in 0~0.3)" +#, c-format, boost-format +msgid "Please input a valid value (K in %.1f~%.1f)" msgstr "" -msgid "Please input a valid value (K in 0~0.3, N in 0.6~2.0)" +#, c-format, boost-format +msgid "Please input a valid value (K in %.1f~%.1f, N in %.1f~%.1f)" msgstr "" msgid "Other Color" @@ -3249,11 +3251,11 @@ msgstr "" msgid "Edit multiple printers" msgstr "" -msgid "Select connected printetrs (0/6)" +msgid "Select connected printers (0/6)" msgstr "" #, c-format, boost-format -msgid "Select Connected Printetrs (%d/6)" +msgid "Select Connected Printers (%d/6)" msgstr "" #, c-format, boost-format @@ -3315,7 +3317,7 @@ msgstr "" msgid "Printing Failed" msgstr "" -msgid "PrintingPause" +msgid "Printing Pause" msgstr "" msgid "Prepare" @@ -3416,8 +3418,8 @@ msgstr "" msgid "Send Options" msgstr "" -msgid "Send" -msgstr "傳送" +msgid "Send to" +msgstr "" msgid "" "printers at the same time.(It depends on how many devices can undergo " @@ -3431,6 +3433,9 @@ msgid "" "minute each batch.(It depends on how long it takes to complete the heating.)" msgstr "" +msgid "Send" +msgstr "傳送" + msgid "Name is invalid;" msgstr "無效名稱;" @@ -3990,6 +3995,18 @@ msgstr "" "是:%s%%\n" "否:%s %s" +#, boost-format +msgid "" +"Invalid input format. Expected vector of dimensions in the following format: " +"\"%1%\"" +msgstr "輸入格式無效。預期向量應使用以下格式:“%1%”" + +msgid "Input value is out of range" +msgstr "輸入值超出範圍" + +msgid "Some extension in the input is invalid" +msgstr "" + #, fuzzy, boost-format msgid "Invalid format. Expected vector format: \"%1%\"" msgstr "無效格式,應該是 \"%1%\" 這種格式" @@ -7071,10 +7088,6 @@ msgstr "傳送完成" msgid "Error code" msgstr "錯誤代碼" -#, fuzzy -msgid "Printer local connection failed, please try again." -msgstr "列印設備區域網路連接失敗,請重試。" - #, fuzzy msgid "No login account, only printers in LAN mode are displayed" msgstr "未登入帳號,僅顯示區域網路模式的列印設備" @@ -7809,6 +7822,14 @@ msgstr "多擠出機多線材列印設備換色參數" msgid "Printable space" msgstr "可列印區域" +#. TRN: First argument is parameter name, the second one is the value. +#, boost-format +msgid "Invalid value provided for parameter %1%: %2%" +msgstr "" + +msgid "G-code flavor is switched" +msgstr "" + msgid "Cooling Fan" msgstr "冷卻風扇" @@ -8178,6 +8199,56 @@ msgstr "以更新到最新。" msgid "The configuration is up to date." msgstr "目前設定檔已經是最新版本。" +msgid "Obj file Import color" +msgstr "" + +msgid "Specify number of colors:" +msgstr "" + +#, c-format, boost-format +msgid "The color count should be in range [%d, %d]." +msgstr "" + +msgid "Recommended " +msgstr "" + +msgid "Current filament colors:" +msgstr "" + +msgid "Quick set:" +msgstr "" + +msgid "Color match" +msgstr "" + +msgid "Approximate color matching." +msgstr "" + +msgid "Append" +msgstr "" + +msgid "Add consumable extruder after existing extruders." +msgstr "" + +msgid "Reset mapped extruders." +msgstr "" + +msgid "Cluster colors" +msgstr "" + +msgid "Map Filament" +msgstr "" + +msgid "" +"Note:The color has been selected, you can choose OK \n" +" to continue or manually adjust it." +msgstr "" + +msgid "" +"Waring:The count of newly added and \n" +" current extruders exceeds 16." +msgstr "" + #, fuzzy msgid "Ramming customization" msgstr "自訂尖端成型" @@ -8264,6 +8335,32 @@ msgstr "從" msgid "To" msgstr "" +msgid "" +"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" +msgstr "" + +msgid "" +"Missing BambuSource component registered for media playing! Please re-" +"install BambuStutio 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." +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?)" +msgstr "" + msgid "Bambu Network plug-in not detected." msgstr "" @@ -10327,6 +10424,22 @@ msgstr "" "如果勾選這個選項,部件冷卻風扇將永遠不會停止,並且會以最小風扇轉速設定值持運" "運轉以減少風扇的頻繁開關" +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" +"\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 " +"artefacts that appear like z banding \n" +"3. To avoid printing at speeds which cause VFAs (fine artefacts) on the " +"external walls\n" +"\n" +msgstr "" + msgid "Layer time" msgstr "層時間" @@ -10848,6 +10961,9 @@ msgstr "" "第一層”,則“全風扇速度第一層”將被忽略,在這種情況下,風扇將在“禁用風扇第一" "層”+1層以最大允許速度運行。" +msgid "layer" +msgstr "" + #, fuzzy msgid "Support interface fan speed" msgstr "支撐接觸面風扇速度" @@ -13752,7 +13868,6 @@ msgstr "" msgid "About this calibration" msgstr "關於此校準" -#, fuzzy msgid "" "Please find the details of Flow Dynamics Calibration from our wiki.\n" "\n" @@ -13763,27 +13878,15 @@ msgid "" "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 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" "\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 "When to use Flow Rate Calibration" msgstr "何時使用流量率校準" @@ -13901,24 +14004,14 @@ msgstr "名稱不能超過40個字元。" msgid "" "Only one of the results with the same name will be saved. Are you sure you " -"want to overrides the other results?" -msgstr "相同名稱的結果只會儲存一個。確定要覆蓋其他結果嗎?" - -#, fuzzy, 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?" +"want to override the other results?" msgstr "" -"已經存在一個具有相同名稱的校準結果:%s。相同名稱的結果只會儲存一個。確定要覆" -"蓋嗎?" msgid "Please find the best line on your plate" msgstr "請在您的列印板上找到最佳線條" -#, fuzzy -msgid "Please find the cornor with perfect degree of extrusion" -msgstr "請在您的列印板上找到最接近完美的直角" +msgid "Please find the corner with perfect degree of extrusion" +msgstr "" msgid "Input Value" msgstr "輸入值" @@ -14174,6 +14267,9 @@ msgstr "" msgid "PETG" msgstr "" +msgid "PCTG" +msgstr "" + msgid "TPU" msgstr "" @@ -14274,6 +14370,9 @@ msgstr "如有需要,請使用正斜槓( / )作為目錄分隔符號。" msgid "Upload to storage" msgstr "上傳到儲存單位" +msgid "Switch to Device tab after upload." +msgstr "" + #, fuzzy, c-format, boost-format msgid "Upload filename doesn't end with \"%s\". Do you wish to continue?" msgstr "上傳的檔名不以 \"%s\" 結尾。確定要繼續嗎?" @@ -14538,12 +14637,6 @@ msgstr "" msgid "Printable Space" msgstr "" -msgid "X" -msgstr "" - -msgid "Y" -msgstr "" - msgid "Hot Bed STL" msgstr "" @@ -14888,6 +14981,12 @@ msgstr "" msgid "Refresh Printers" msgstr "重新整理列印設備" +msgid "View print host webui in Device tab" +msgstr "" + +msgid "Replace the BambuLab's device tab with print host webui" +msgstr "" + #, fuzzy msgid "" "HTTPS CA file is optional. It is only needed if you use HTTPS with a self-" @@ -15230,17 +15329,15 @@ msgstr "" msgid "Could not connect to SimplyPrint" msgstr "" -msgid "SimplyPrint account not linked. Go to Connect options to set it up." -msgstr "" - -msgid "" -"File size exceeds the 100MB upload limit. Please upload your file through " -"the panel." +msgid "Internel error" msgstr "" msgid "Unknown error" msgstr "" +msgid "SimplyPrint account not linked. Go to Connect options to set it up." +msgstr "" + msgid "Connection to Flashforge works correctly." msgstr "" @@ -15589,6 +15686,62 @@ msgid "" "probability of warping." msgstr "" +#, fuzzy +#~ msgid "Printer local connection failed, please try again." +#~ msgstr "列印設備區域網路連接失敗,請重試。" + +#, fuzzy +#~ 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 "相同名稱的結果只會儲存一個。確定要覆蓋其他結果嗎?" + +#, fuzzy, 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。相同名稱的結果只會儲存一個。確定要" +#~ "覆蓋嗎?" + +#, fuzzy +#~ msgid "Please find the cornor with perfect degree of extrusion" +#~ msgstr "請在您的列印板上找到最接近完美的直角" + #~ msgid "V" #~ msgstr "版本:" diff --git a/resources/profiles/Anker.json b/resources/profiles/Anker.json index 5d2e9080a5..4c6b01d1a3 100644 --- a/resources/profiles/Anker.json +++ b/resources/profiles/Anker.json @@ -1,6 +1,6 @@ { "name": "Anker", - "version": "02.01.00.00", + "version": "02.01.00.01", "force_update": "0", "description": "Anker configurations", "machine_model_list": [ diff --git a/resources/profiles/Anycubic.json b/resources/profiles/Anycubic.json index aa4b1b8965..1de427386a 100644 --- a/resources/profiles/Anycubic.json +++ b/resources/profiles/Anycubic.json @@ -1,6 +1,6 @@ { "name": "Anycubic", - "version": "02.01.00.00", + "version": "02.01.00.01", "force_update": "0", "description": "Anycubic configurations", "machine_model_list": [ diff --git a/resources/profiles/Artillery.json b/resources/profiles/Artillery.json index e1749947f1..c186a30071 100644 --- a/resources/profiles/Artillery.json +++ b/resources/profiles/Artillery.json @@ -1,6 +1,6 @@ { "name": "Artillery", - "version": "02.01.00.00", + "version": "02.01.00.01", "force_update": "0", "description": "Artillery configurations", "machine_model_list": [ diff --git a/resources/profiles/BBL.json b/resources/profiles/BBL.json index 9ad3779363..775288cbd3 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.09.00.11", + "version": "01.09.00.14", "force_update": "0", "description": "the initial version of BBL configurations", "machine_model_list": [ @@ -625,6 +625,10 @@ "name": "fdm_filament_pc", "sub_path": "filament/fdm_filament_pc.json" }, + { + "name": "fdm_filament_pctg", + "sub_path": "filament/fdm_filament_pctg.json" + }, { "name": "fdm_filament_asa", "sub_path": "filament/fdm_filament_asa.json" diff --git a/resources/profiles/BBL/cli_config.json b/resources/profiles/BBL/cli_config.json index 8fd179ecc1..2bd68647c9 100644 --- a/resources/profiles/BBL/cli_config.json +++ b/resources/profiles/BBL/cli_config.json @@ -1,21 +1,156 @@ { "printer": { "Bambu Lab A1": { - "cli_safe_acceleration_e": "0,0", - "cli_safe_acceleration_extruding": "0,0", - "cli_safe_acceleration_retracting": "0,0", - "cli_safe_acceleration_travel":"6000,6000", - "cli_safe_acceleration_x": "6000,6000", - "cli_safe_acceleration_y": "6000,6000", - "cli_safe_acceleration_z": "0,0", - "cli_safe_jerk_e": "0,0", - "cli_safe_jerk_x": "0,0", - "cli_safe_jerk_y": "0,0", - "cli_safe_jerk_z": "0,0", - "cli_safe_speed_e": "0,0", - "cli_safe_speed_x": "0,0", - "cli_safe_speed_y": "0,0", - "cli_safe_speed_z": "0,0" + "machine_limits": { + "cli_safe_acceleration_e": "0,0", + "cli_safe_acceleration_extruding": "0,0", + "cli_safe_acceleration_retracting": "0,0", + "cli_safe_acceleration_travel": "6000,6000", + "cli_safe_acceleration_x": "6000,6000", + "cli_safe_acceleration_y": "6000,6000", + "cli_safe_acceleration_z": "0,0", + "cli_safe_jerk_e": "0,0", + "cli_safe_jerk_x": "0,0", + "cli_safe_jerk_y": "0,0", + "cli_safe_jerk_z": "0,0", + "cli_safe_speed_e": "0,0", + "cli_safe_speed_x": "0,0", + "cli_safe_speed_y": "0,0", + "cli_safe_speed_z": "0,0" + }, + "downward_check": { + "Bambu Lab A1 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.2 nozzle" + ], + "Bambu Lab A1 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.4 nozzle" + ], + "Bambu Lab A1 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.6 nozzle" + ], + "Bambu Lab A1 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 A1 mini 0.8 nozzle" + ] + } + }, + "Bambu Lab A1 mini": { + "machine_limits": { + "cli_safe_acceleration_e": "0,0", + "cli_safe_acceleration_extruding": "0,0", + "cli_safe_acceleration_retracting": "0,0", + "cli_safe_acceleration_travel": "6000,6000", + "cli_safe_acceleration_x": "6000,6000", + "cli_safe_acceleration_y": "6000,6000", + "cli_safe_acceleration_z": "0,0", + "cli_safe_jerk_e": "0,0", + "cli_safe_jerk_x": "0,0", + "cli_safe_jerk_y": "0,0", + "cli_safe_jerk_z": "0,0", + "cli_safe_speed_e": "0,0", + "cli_safe_speed_x": "0,0", + "cli_safe_speed_y": "0,0", + "cli_safe_speed_z": "0,0" + } + }, + "Bambu Lab X1": { + "downward_check": { + "Bambu Lab X1 0.2 nozzle": [ + "Bambu Lab A1 mini 0.2 nozzle" + ], + "Bambu Lab X1 0.4 nozzle": [ + "Bambu Lab A1 mini 0.4 nozzle" + ], + "Bambu Lab X1 0.6 nozzle": [ + "Bambu Lab A1 mini 0.6 nozzle" + ], + "Bambu Lab X1 0.8 nozzle": [ + "Bambu Lab A1 mini 0.8 nozzle" + ] + } + }, + "Bambu Lab X1 Carbon": { + "downward_check": { + "Bambu Lab X1 Carbon 0.2 nozzle": [ + "Bambu Lab A1 mini 0.2 nozzle" + ], + "Bambu Lab X1 Carbon 0.4 nozzle": [ + "Bambu Lab A1 mini 0.4 nozzle" + ], + "Bambu Lab X1 Carbon 0.6 nozzle": [ + "Bambu Lab A1 mini 0.6 nozzle" + ], + "Bambu Lab X1 Carbon 0.8 nozzle": [ + "Bambu Lab A1 mini 0.8 nozzle" + ] + } + }, + "Bambu Lab X1E": { + "downward_check": { + "Bambu Lab X1E 0.2 nozzle": [ + "Bambu Lab A1 mini 0.2 nozzle" + ], + "Bambu Lab X1E 0.4 nozzle": [ + "Bambu Lab A1 mini 0.4 nozzle" + ], + "Bambu Lab X1E 0.6 nozzle": [ + "Bambu Lab A1 mini 0.6 nozzle" + ], + "Bambu Lab X1E 0.8 nozzle": [ + "Bambu Lab A1 mini 0.8 nozzle" + ] + } + }, + "Bambu Lab P1P": { + "downward_check": { + "Bambu Lab P1P 0.2 nozzle": [ + "Bambu Lab A1 mini 0.2 nozzle" + ], + "Bambu Lab P1P 0.4 nozzle": [ + "Bambu Lab A1 mini 0.4 nozzle" + ], + "Bambu Lab P1P 0.6 nozzle": [ + "Bambu Lab A1 mini 0.6 nozzle" + ], + "Bambu Lab P1P 0.8 nozzle": [ + "Bambu Lab A1 mini 0.8 nozzle" + ] + } + }, + "Bambu Lab P1S": { + "downward_check": { + "Bambu Lab P1S 0.2 nozzle": [ + "Bambu Lab A1 mini 0.2 nozzle" + ], + "Bambu Lab P1S 0.4 nozzle": [ + "Bambu Lab A1 mini 0.4 nozzle" + ], + "Bambu Lab P1S 0.6 nozzle": [ + "Bambu Lab A1 mini 0.6 nozzle" + ], + "Bambu Lab P1S 0.8 nozzle": [ + "Bambu Lab A1 mini 0.8 nozzle" + ] + } } } -} +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic PCTG @base.json b/resources/profiles/BBL/filament/Generic PCTG @base.json index ca51974e25..397fcf1691 100644 --- a/resources/profiles/BBL/filament/Generic PCTG @base.json +++ b/resources/profiles/BBL/filament/Generic PCTG @base.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Generic PCTG @base", - "inherits": "fdm_filament_pet", + "inherits": "fdm_filament_pctg", "from": "system", "filament_id": "GFG97", "instantiation": "false", diff --git a/resources/profiles/BBL/filament/fdm_filament_pctg.json b/resources/profiles/BBL/filament/fdm_filament_pctg.json new file mode 100644 index 0000000000..1b38376293 --- /dev/null +++ b/resources/profiles/BBL/filament/fdm_filament_pctg.json @@ -0,0 +1,64 @@ +{ + "type": "filament", + "name": "fdm_filament_pctg", + "inherits": "fdm_filament_common", + "from": "system", + "instantiation": "false", + "eng_plate_temp": [ + "0" + ], + "eng_plate_temp_initial_layer": [ + "0" + ], + "fan_cooling_layer_time": [ + "20" + ], + "fan_min_speed": [ + "20" + ], + "filament_cost": [ + "30" + ], + "filament_density": [ + "1.27" + ], + "filament_max_volumetric_speed": [ + "25" + ], + "filament_type": [ + "PCTG" + ], + "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" + ], + "temperature_vitrification": [ + "70" + ], + "textured_plate_temp": [ + "80" + ], + "textured_plate_temp_initial_layer": [ + "80" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S180\n{elsif (bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S255\n{endif};Prevent PLA from jamming\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/machine/Bambu Lab A1 0.4 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab A1 0.4 nozzle.json index a32bf88764..86fcc31826 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 @@ -61,9 +61,9 @@ "255" ], "scan_first_layer": "0", - "machine_start_gcode": ";===== machine: A1 =========================\n;===== date: 20240509 =====================\nG392 S0\nM9833.2\n;M400\n;M73 P1.717\n\n;===== start to heat heatbead&hotend==========\nM1002 gcode_claim_action : 2\nM1002 set_filament_type:{filament_type[initial_no_support_extruder]}\nM104 S140\nM140 S[bed_temperature_initial_layer_single]\n\n;=====start printer sound ===================\nM17\nM400 S1\nM1006 S1\nM1006 A0 B10 L100 C37 D10 M60 E37 F10 N60\nM1006 A0 B10 L100 C41 D10 M60 E41 F10 N60\nM1006 A0 B10 L100 C44 D10 M60 E44 F10 N60\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N60\nM1006 A43 B10 L100 C46 D10 M70 E39 F10 N80\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N80\nM1006 A0 B10 L100 C43 D10 M60 E39 F10 N80\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N80\nM1006 A0 B10 L100 C41 D10 M80 E41 F10 N80\nM1006 A0 B10 L100 C44 D10 M80 E44 F10 N80\nM1006 A0 B10 L100 C49 D10 M80 E49 F10 N80\nM1006 A0 B10 L100 C0 D10 M80 E0 F10 N80\nM1006 A44 B10 L100 C48 D10 M60 E39 F10 N80\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N80\nM1006 A0 B10 L100 C44 D10 M80 E39 F10 N80\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N80\nM1006 A43 B10 L100 C46 D10 M60 E39 F10 N80\nM1006 W\nM18 \n;=====start printer sound ===================\n\n;=====avoid end stop =================\nG91\nG380 S2 Z40 F1200\nG380 S3 Z-15 F1200\nG90\n\n;===== reset machine status =================\n;M290 X39 Y39 Z8\nM204 S6000\n\nM630 S0 P0\nG91\nM17 Z0.3 ; lower the z-motor current\n\nG90\nM17 X0.65 Y1.2 Z0.6 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\n;M211 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\n\n;====== cog noise reduction=================\nM982.2 S1 ; turn on cog noise reduction\n\nM1002 gcode_claim_action : 13\n\nG28 X\nG91\nG1 Z5 F1200\nG90\nG0 X128 F30000\nG0 Y254 F3000\nG91\nG1 Z-5 F1200\n\nM109 S25 H140\n\nM17 E0.3\nM83\nG1 E10 F1200\nG1 E-0.5 F30\nM17 D\n\nG28 Z P0 T140; home z with low precision,permit 300deg temperature\nM104 S{nozzle_temperature_initial_layer[initial_extruder]}\n\nM1002 judge_flag build_plate_detect_flag\nM622 S1\n G39.4\n G90\n G1 Z5 F1200\nM623\n\n;M400\n;M73 P1.717\n\n;===== prepare print temperature and material ==========\nM1002 gcode_claim_action : 24\n\nM400\n;G392 S1\nM211 X0 Y0 Z0 ;turn off soft endstop\nM975 S1 ; turn on\n\nG90\nG1 X-28.5 F30000\nG1 X-48.2 F3000\n\nM620 M ;enable remap\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M1002 gcode_claim_action : 4\n M400\n M1002 set_filament_type:UNKNOWN\n M109 S[nozzle_temperature_initial_layer]\n M104 S250\n M400\n T[initial_no_support_extruder]\n G1 X-48.2 F3000\n M400\n\n M620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n M109 S250 ;set nozzle to common flush temp\n M106 P1 S0\n G92 E0\n G1 E50 F200\n M400\n M1002 set_filament_type:{filament_type[initial_no_support_extruder]}\nM621 S[initial_no_support_extruder]A\n\nM109 S{nozzle_temperature_range_high[initial_no_support_extruder]} H300\nG92 E0\nG1 E50 F200 ; lower extrusion speed to avoid clog\nM400\nM106 P1 S178\nG92 E0\nG1 E5 F200\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG92 E0\nG1 E-0.5 F300\n\nG1 X-28.5 F30000\nG1 X-48.2 F3000\nG1 X-28.5 F30000 ;wipe and shake\nG1 X-48.2 F3000\nG1 X-28.5 F30000 ;wipe and shake\nG1 X-48.2 F3000\n\n;G392 S0\n\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n;M400\n;M73 P1.717\n\n;===== auto extrude cali start =========================\nM975 S1\n;G392 S1\n\nG90\nM83\nT1000\nG1 X-48.2 Y0 Z10 F10000\nM400\nM1002 set_filament_type:UNKNOWN\n\nM412 S1 ; ===turn on filament runout detection===\nM400 P10\nM620.3 W1; === turn on filament tangle detection===\nM400 S2\n\nM1002 set_filament_type:{filament_type[initial_no_support_extruder]}\n\n;M1002 set_flag extrude_cali_flag=1\nM1002 judge_flag extrude_cali_flag\n\nM622 J1\n M1002 gcode_claim_action : 8\n\n M109 S{nozzle_temperature[initial_extruder]}\n G1 E10 F{outer_wall_volumetric_speed/2.4*60}\n M983 F{outer_wall_volumetric_speed/2.4} A0.3 H[nozzle_diameter]; cali dynamic extrusion compensation\n\n M106 P1 S255\n M400 S5\n G1 X-28.5 F18000\n G1 X-48.2 F3000\n G1 X-28.5 F18000 ;wipe and shake\n G1 X-48.2 F3000\n G1 X-28.5 F12000 ;wipe and shake\n G1 X-48.2 F3000\n M400\n M106 P1 S0\n\n M1002 judge_last_extrude_cali_success\n M622 J0\n M983 F{outer_wall_volumetric_speed/2.4} A0.3 H[nozzle_diameter]; cali dynamic extrusion compensation\n M106 P1 S255\n M400 S5\n G1 X-28.5 F18000\n G1 X-48.2 F3000\n G1 X-28.5 F18000 ;wipe and shake\n G1 X-48.2 F3000\n G1 X-28.5 F12000 ;wipe and shake\n M400\n M106 P1 S0\n M623\n \n G1 X-48.2 F3000\n M400\n M984 A0.1 E1 S1 F{outer_wall_volumetric_speed/2.4}\n M106 P1 S178\n M400 S7\n G1 X-28.5 F18000\n G1 X-48.2 F3000\n G1 X-28.5 F18000 ;wipe and shake\n G1 X-48.2 F3000\n G1 X-28.5 F12000 ;wipe and shake\n G1 X-48.2 F3000\n M400\n M106 P1 S0\nM623 ; end of \"draw extrinsic para cali paint\"\n\n;G392 S0\n;===== auto extrude cali end ========================\n\n;M400\n;M73 P1.717\n\nM104 S170 ; prepare to wipe nozzle\nM106 S255 ; turn on fan\n\n;===== mech mode fast check start =====================\nM1002 gcode_claim_action : 3\n\nG1 X128 Y128 F20000\nG1 Z5 F1200\nM400 P200\nM970.3 Q1 A5 K0 O3\nM974 Q1 S2 P0\n\nM970.2 Q1 K1 W58 Z0.11\nM974 S2\n\nG1 X128 Y128 F20000\nG1 Z5 F1200\nM400 P200\nM970.3 Q0 A10 K0 O1\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X0 Y5\nG28 X ; re-home XY\n\nG1 Z4 F1200\n\n;===== mech mode fast check end =======================\n\n;M400\n;M73 P1.717\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\n\nM975 S1\nM106 S255 ; turn on fan (G28 has turn off fan)\nM211 S; push soft endstop status\nM211 X0 Y0 Z0 ;turn off Z axis endstop\n\n;===== remove waste by touching start =====\n\nM104 S170 ; set temp down to heatbed acceptable\n\nM83\nG1 E-1 F500\nG90\nM83\n\nM109 S170\nG0 X108 Y-0.5 F30000\nG380 S3 Z-5 F1200\nG1 Z2 F1200\nG1 X110 F10000\nG380 S3 Z-5 F1200\nG1 Z2 F1200\nG1 X112 F10000\nG380 S3 Z-5 F1200\nG1 Z2 F1200\nG1 X114 F10000\nG380 S3 Z-5 F1200\nG1 Z2 F1200\nG1 X116 F10000\nG380 S3 Z-5 F1200\nG1 Z2 F1200\nG1 X118 F10000\nG380 S3 Z-5 F1200\nG1 Z2 F1200\nG1 X120 F10000\nG380 S3 Z-5 F1200\nG1 Z2 F1200\nG1 X122 F10000\nG380 S3 Z-5 F1200\nG1 Z2 F1200\nG1 X124 F10000\nG380 S3 Z-5 F1200\nG1 Z2 F1200\nG1 X126 F10000\nG380 S3 Z-5 F1200\nG1 Z2 F1200\nG1 X128 F10000\nG380 S3 Z-5 F1200\nG1 Z2 F1200\nG1 X130 F10000\nG380 S3 Z-5 F1200\nG1 Z2 F1200\nG1 X132 F10000\nG380 S3 Z-5 F1200\nG1 Z2 F1200\nG1 X134 F10000\nG380 S3 Z-5 F1200\nG1 Z2 F1200\nG1 X136 F10000\nG380 S3 Z-5 F1200\nG1 Z2 F1200\nG1 X138 F10000\nG380 S3 Z-5 F1200\nG1 Z2 F1200\nG1 X140 F10000\nG380 S3 Z-5 F1200\nG1 Z2 F1200\nG1 X142 F10000\nG380 S3 Z-5 F1200\nG1 Z2 F1200\nG1 X144 F10000\nG380 S3 Z-5 F1200\nG1 Z2 F1200\nG1 X146 F10000\nG380 S3 Z-5 F1200\nG1 Z2 F1200\nG1 X148 F10000\nG380 S3 Z-5 F1200\n\nG1 Z5 F30000\n;===== remove waste by touching end =====\n\nG1 Z10 F1200\nG0 X118 Y261 F30000\nG1 Z5 F1200\nM109 S{nozzle_temperature_initial_layer[initial_extruder]-50}\n\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nM104 S140 ; prepare to abl\nG0 Z5 F20000\n\nG0 X128 Y261 F20000 ; move to exposed steel surface\nG0 Z-1.01 F1200 ; stop the nozzle\n\nG91\nG2 I1 J0 X2 Y0 F2000.1\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\n\nG90\nG1 Z10 F1200\n\n;===== brush material wipe nozzle =====\n\nG90\nG1 Y250 F30000\nG1 X55\nG1 Z1.300 F1200\nG1 Y262.5 F6000\nG91\nG1 X-35 F30000\nG1 Y-0.5\nG1 X45\nG1 Y-0.5\nG1 X-45\nG1 Y-0.5\nG1 X45\nG1 Y-0.5\nG1 X-45\nG1 Y-0.5\nG1 X45\nG1 Z5.000 F1200\n\nG90\nG1 X30 Y250.000 F30000\nG1 Z1.300 F1200\nG1 Y262.5 F6000\nG91\nG1 X35 F30000\nG1 Y-0.5\nG1 X-45\nG1 Y-0.5\nG1 X45\nG1 Y-0.5\nG1 X-45\nG1 Y-0.5\nG1 X45\nG1 Y-0.5\nG1 X-45\nG1 Z10.000 F1200\n\n;===== brush material wipe nozzle end =====\n\nG90\n;G0 X128 Y261 F20000 ; move to exposed steel surface\nG1 Y250 F30000\nG1 X138\nG1 Y261\nG0 Z-1.01 F1200 ; stop the nozzle\n\nG91\nG2 I1 J0 X2 Y0 F2000.1\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\n\nM109 S140\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM211 R; pop softend status\n\n;===== wipe nozzle end ================================\n\n;M400\n;M73 P1.717\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\n\nG90\nG1 Z5 F1200\nG1 X0 Y0 F30000\nG29.2 S1 ; turn on ABL\n\nM190 S[bed_temperature_initial_layer_single]; ensure bed temp\nM109 S140\nM106 S0 ; turn off fan , too noisy\n\nM622 J1\n M1002 gcode_claim_action : 1\n G29 A1 X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n\n;===== home after wipe mouth end =======================\n\n;M400\n;M73 P1.717\n\nG1 X108.000 Y-0.5 F30000\nG1 Z0.300 F1200\nM400\nG2814 Z0.32\n\nM104 S{nozzle_temperature_initial_layer[initial_extruder]} ; prepare to print\n\n;===== nozzle load line ===============================\n;G90\n;M83\n;G1 Z5 F1200\n;G1 X88 Y1.0 F20000\n;G1 Z0.3 F1200\n\n;M109 S{nozzle_temperature_initial_layer[initial_extruder]}\n\n;G1 E2 F300\n;G1 X168 E4.989 F6000\n;G1 Z1 F1200\n;===== nozzle load line end ===========================\n\n;===== extrude cali test ===============================\n\nM400\n M900 S\n G90\n M83\n\n M109 S{nozzle_temperature_initial_layer[initial_extruder]}\n G0 X128 E4 F{outer_wall_volumetric_speed/(24/20) * 60}\n G0 X133 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\n G0 X138 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X143 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\n G0 X148 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X153 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\n G91\n G1 X1 Z-0.300\n G1 X4\n G1 Z1 F1200\n G90\n M83\n M400\n\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M900 C\n G90\n G1 X108.000 Y1.0 F30000\n G91\n G1 Z-0.700 F1200\n G90\n M83\n G0 X128 E4 F{outer_wall_volumetric_speed/(24/20) * 60}\n G0 X133 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\n G0 X138 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X143 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\n G0 X148 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X153 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\n G91\n G1 X1 Z-0.300\n G1 X4\n G1 Z1 F1200\n G90\n M400\n M900 R\nM623\n\nG1 Z0.2\n\n;M400\n;M73 P1.717\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.02} ; for Textured PEI Plate\n{endif}\n\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\n\nM211 X0 Y0 Z0 ;turn off soft endstop\n;G392 S1 ; turn on clog detection\nM1007 S1 ; turn on mass estimation\nG29.4\n", + "machine_start_gcode": ";===== machine: A1 =========================\n;===== date: 20240606 =====================\nG392 S0\nM9833.2\n;M400\n;M73 P1.717\n\n;===== start to heat heatbead&hotend==========\nM1002 gcode_claim_action : 2\nM1002 set_filament_type:{filament_type[initial_no_support_extruder]}\nM104 S140\nM140 S[bed_temperature_initial_layer_single]\n\n;=====start printer sound ===================\nM17\nM400 S1\nM1006 S1\nM1006 A0 B10 L100 C37 D10 M60 E37 F10 N60\nM1006 A0 B10 L100 C41 D10 M60 E41 F10 N60\nM1006 A0 B10 L100 C44 D10 M60 E44 F10 N60\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N60\nM1006 A43 B10 L100 C46 D10 M70 E39 F10 N80\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N80\nM1006 A0 B10 L100 C43 D10 M60 E39 F10 N80\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N80\nM1006 A0 B10 L100 C41 D10 M80 E41 F10 N80\nM1006 A0 B10 L100 C44 D10 M80 E44 F10 N80\nM1006 A0 B10 L100 C49 D10 M80 E49 F10 N80\nM1006 A0 B10 L100 C0 D10 M80 E0 F10 N80\nM1006 A44 B10 L100 C48 D10 M60 E39 F10 N80\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N80\nM1006 A0 B10 L100 C44 D10 M80 E39 F10 N80\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N80\nM1006 A43 B10 L100 C46 D10 M60 E39 F10 N80\nM1006 W\nM18 \n;=====start printer sound ===================\n\n;=====avoid end stop =================\nG91\nG380 S2 Z40 F1200\nG380 S3 Z-15 F1200\nG90\n\n;===== reset machine status =================\n;M290 X39 Y39 Z8\nM204 S6000\n\nM630 S0 P0\nG91\nM17 Z0.3 ; lower the z-motor current\n\nG90\nM17 X0.65 Y1.2 Z0.6 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\n;M211 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\n\n;====== cog noise reduction=================\nM982.2 S1 ; turn on cog noise reduction\n\nM1002 gcode_claim_action : 13\n\nG28 X\nG91\nG1 Z5 F1200\nG90\nG0 X128 F30000\nG0 Y254 F3000\nG91\nG1 Z-5 F1200\n\nM109 S25 H140\n\nM17 E0.3\nM83\nG1 E10 F1200\nG1 E-0.5 F30\nM17 D\n\nG28 Z P0 T140; home z with low precision,permit 300deg temperature\nM104 S{nozzle_temperature_initial_layer[initial_extruder]}\n\nM1002 judge_flag build_plate_detect_flag\nM622 S1\n G39.4\n G90\n G1 Z5 F1200\nM623\n\n;M400\n;M73 P1.717\n\n;===== prepare print temperature and material ==========\nM1002 gcode_claim_action : 24\n\nM400\n;G392 S1\nM211 X0 Y0 Z0 ;turn off soft endstop\nM975 S1 ; turn on\n\nG90\nG1 X-28.5 F30000\nG1 X-48.2 F3000\n\nM620 M ;enable remap\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M1002 gcode_claim_action : 4\n M400\n M1002 set_filament_type:UNKNOWN\n M109 S[nozzle_temperature_initial_layer]\n M104 S250\n M400\n T[initial_no_support_extruder]\n G1 X-48.2 F3000\n M400\n\n M620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n M109 S250 ;set nozzle to common flush temp\n M106 P1 S0\n G92 E0\n G1 E50 F200\n M400\n M1002 set_filament_type:{filament_type[initial_no_support_extruder]}\nM621 S[initial_no_support_extruder]A\n\nM109 S{nozzle_temperature_range_high[initial_no_support_extruder]} H300\nG92 E0\nG1 E50 F200 ; lower extrusion speed to avoid clog\nM400\nM106 P1 S178\nG92 E0\nG1 E5 F200\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG92 E0\nG1 E-0.5 F300\n\nG1 X-28.5 F30000\nG1 X-48.2 F3000\nG1 X-28.5 F30000 ;wipe and shake\nG1 X-48.2 F3000\nG1 X-28.5 F30000 ;wipe and shake\nG1 X-48.2 F3000\n\n;G392 S0\n\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n;M400\n;M73 P1.717\n\n;===== auto extrude cali start =========================\nM975 S1\n;G392 S1\n\nG90\nM83\nT1000\nG1 X-48.2 Y0 Z10 F10000\nM400\nM1002 set_filament_type:UNKNOWN\n\nM412 S1 ; ===turn on filament runout detection===\nM400 P10\nM620.3 W1; === turn on filament tangle detection===\nM400 S2\n\nM1002 set_filament_type:{filament_type[initial_no_support_extruder]}\n\n;M1002 set_flag extrude_cali_flag=1\nM1002 judge_flag extrude_cali_flag\n\nM622 J1\n M1002 gcode_claim_action : 8\n\n M109 S{nozzle_temperature[initial_extruder]}\n G1 E10 F{outer_wall_volumetric_speed/2.4*60}\n M983 F{outer_wall_volumetric_speed/2.4} A0.3 H[nozzle_diameter]; cali dynamic extrusion compensation\n\n M106 P1 S255\n M400 S5\n G1 X-28.5 F18000\n G1 X-48.2 F3000\n G1 X-28.5 F18000 ;wipe and shake\n G1 X-48.2 F3000\n G1 X-28.5 F12000 ;wipe and shake\n G1 X-48.2 F3000\n M400\n M106 P1 S0\n\n M1002 judge_last_extrude_cali_success\n M622 J0\n M983 F{outer_wall_volumetric_speed/2.4} A0.3 H[nozzle_diameter]; cali dynamic extrusion compensation\n M106 P1 S255\n M400 S5\n G1 X-28.5 F18000\n G1 X-48.2 F3000\n G1 X-28.5 F18000 ;wipe and shake\n G1 X-48.2 F3000\n G1 X-28.5 F12000 ;wipe and shake\n M400\n M106 P1 S0\n M623\n \n G1 X-48.2 F3000\n M400\n M984 A0.1 E1 S1 F{outer_wall_volumetric_speed/2.4}\n M106 P1 S178\n M400 S7\n G1 X-28.5 F18000\n G1 X-48.2 F3000\n G1 X-28.5 F18000 ;wipe and shake\n G1 X-48.2 F3000\n G1 X-28.5 F12000 ;wipe and shake\n G1 X-48.2 F3000\n M400\n M106 P1 S0\nM623 ; end of \"draw extrinsic para cali paint\"\n\n;G392 S0\n;===== auto extrude cali end ========================\n\n;M400\n;M73 P1.717\n\nM104 S170 ; prepare to wipe nozzle\nM106 S255 ; turn on fan\n\n;===== mech mode fast check start =====================\nM1002 gcode_claim_action : 3\n\nG1 X128 Y128 F20000\nG1 Z5 F1200\nM400 P200\nM970.3 Q1 A5 K0 O3\nM974 Q1 S2 P0\n\nM970.2 Q1 K1 W58 Z0.11\nM974 S2\n\nG1 X128 Y128 F20000\nG1 Z5 F1200\nM400 P200\nM970.3 Q0 A10 K0 O1\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X0 Y5\nG28 X ; re-home XY\n\nG1 Z4 F1200\n\n;===== mech mode fast check end =======================\n\n;M400\n;M73 P1.717\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\n\nM975 S1\nM106 S255 ; turn on fan (G28 has turn off fan)\nM211 S; push soft endstop status\nM211 X0 Y0 Z0 ;turn off Z axis endstop\n\n;===== remove waste by touching start =====\n\nM104 S170 ; set temp down to heatbed acceptable\n\nM83\nG1 E-1 F500\nG90\nM83\n\nM109 S170\nG0 X108 Y-0.5 F30000\nG380 S3 Z-5 F1200\nG1 Z2 F1200\nG1 X110 F10000\nG380 S3 Z-5 F1200\nG1 Z2 F1200\nG1 X112 F10000\nG380 S3 Z-5 F1200\nG1 Z2 F1200\nG1 X114 F10000\nG380 S3 Z-5 F1200\nG1 Z2 F1200\nG1 X116 F10000\nG380 S3 Z-5 F1200\nG1 Z2 F1200\nG1 X118 F10000\nG380 S3 Z-5 F1200\nG1 Z2 F1200\nG1 X120 F10000\nG380 S3 Z-5 F1200\nG1 Z2 F1200\nG1 X122 F10000\nG380 S3 Z-5 F1200\nG1 Z2 F1200\nG1 X124 F10000\nG380 S3 Z-5 F1200\nG1 Z2 F1200\nG1 X126 F10000\nG380 S3 Z-5 F1200\nG1 Z2 F1200\nG1 X128 F10000\nG380 S3 Z-5 F1200\nG1 Z2 F1200\nG1 X130 F10000\nG380 S3 Z-5 F1200\nG1 Z2 F1200\nG1 X132 F10000\nG380 S3 Z-5 F1200\nG1 Z2 F1200\nG1 X134 F10000\nG380 S3 Z-5 F1200\nG1 Z2 F1200\nG1 X136 F10000\nG380 S3 Z-5 F1200\nG1 Z2 F1200\nG1 X138 F10000\nG380 S3 Z-5 F1200\nG1 Z2 F1200\nG1 X140 F10000\nG380 S3 Z-5 F1200\nG1 Z2 F1200\nG1 X142 F10000\nG380 S3 Z-5 F1200\nG1 Z2 F1200\nG1 X144 F10000\nG380 S3 Z-5 F1200\nG1 Z2 F1200\nG1 X146 F10000\nG380 S3 Z-5 F1200\nG1 Z2 F1200\nG1 X148 F10000\nG380 S3 Z-5 F1200\n\nG1 Z5 F30000\n;===== remove waste by touching end =====\n\nG1 Z10 F1200\nG0 X118 Y261 F30000\nG1 Z5 F1200\nM109 S{nozzle_temperature_initial_layer[initial_extruder]-50}\n\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nM104 S140 ; prepare to abl\nG0 Z5 F20000\n\nG0 X128 Y261 F20000 ; move to exposed steel surface\nG0 Z-1.01 F1200 ; stop the nozzle\n\nG91\nG2 I1 J0 X2 Y0 F2000.1\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\n\nG90\nG1 Z10 F1200\n\n;===== brush material wipe nozzle =====\n\nG90\nG1 Y250 F30000\nG1 X55\nG1 Z1.300 F1200\nG1 Y262.5 F6000\nG91\nG1 X-35 F30000\nG1 Y-0.5\nG1 X45\nG1 Y-0.5\nG1 X-45\nG1 Y-0.5\nG1 X45\nG1 Y-0.5\nG1 X-45\nG1 Y-0.5\nG1 X45\nG1 Z5.000 F1200\n\nG90\nG1 X30 Y250.000 F30000\nG1 Z1.300 F1200\nG1 Y262.5 F6000\nG91\nG1 X35 F30000\nG1 Y-0.5\nG1 X-45\nG1 Y-0.5\nG1 X45\nG1 Y-0.5\nG1 X-45\nG1 Y-0.5\nG1 X45\nG1 Y-0.5\nG1 X-45\nG1 Z10.000 F1200\n\n;===== brush material wipe nozzle end =====\n\nG90\n;G0 X128 Y261 F20000 ; move to exposed steel surface\nG1 Y250 F30000\nG1 X138\nG1 Y261\nG0 Z-1.01 F1200 ; stop the nozzle\n\nG91\nG2 I1 J0 X2 Y0 F2000.1\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\n\nM109 S140\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM211 R; pop softend status\n\n;===== wipe nozzle end ================================\n\n;M400\n;M73 P1.717\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\n\nG90\nG1 Z5 F1200\nG1 X0 Y0 F30000\nG29.2 S1 ; turn on ABL\n\nM190 S[bed_temperature_initial_layer_single]; ensure bed temp\nM109 S140\nM106 S0 ; turn off fan , too noisy\n\nM622 J1\n M1002 gcode_claim_action : 1\n G29 A1 X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n\n;===== home after wipe mouth end =======================\n\n;M400\n;M73 P1.717\n\nG1 X108.000 Y-0.5 F30000\nG1 Z0.300 F1200\nM400\nG2814 Z0.32\n\nM104 S{nozzle_temperature_initial_layer[initial_extruder]} ; prepare to print\n\n;===== nozzle load line ===============================\n;G90\n;M83\n;G1 Z5 F1200\n;G1 X88 Y1.0 F20000\n;G1 Z0.3 F1200\n\n;M109 S{nozzle_temperature_initial_layer[initial_extruder]}\n\n;G1 E2 F300\n;G1 X168 E4.989 F6000\n;G1 Z1 F1200\n;===== nozzle load line end ===========================\n\n;===== extrude cali test ===============================\n\nM400\n M900 S\n M900 C\n G90\n M83\n\n M109 S{nozzle_temperature_initial_layer[initial_extruder]}\n G0 X128 E8 F{outer_wall_volumetric_speed/(24/20) * 60}\n G0 X133 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\n G0 X138 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X143 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\n G0 X148 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X153 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\n G91\n G1 X1 Z-0.300\n G1 X4\n G1 Z1 F1200\n G90\n M83\n M400\n\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M900 R\n G90\n G1 X108.000 Y1.0 F30000\n G91\n G1 Z-0.700 F1200\n G90\n M83\n G0 X128 E4 F{outer_wall_volumetric_speed/(24/20) * 60}\n G0 X133 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\n G0 X138 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X143 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\n G0 X148 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X153 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\n G91\n G1 X1 Z-0.300\n G1 X4\n G1 Z1 F1200\n G90\n M400\nM623\n\nG1 Z0.2\n\n;M400\n;M73 P1.717\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.02} ; for Textured PEI Plate\n{endif}\n\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\n\nM211 X0 Y0 Z0 ;turn off soft endstop\n;G392 S1 ; turn on clog detection\nM1007 S1 ; turn on mass estimation\nG29.4\n", "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: 20231215 =====================\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_detection_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 {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}\nM623\n{endif}\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-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: 20231225 =======================\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\nM9833 F{outer_wall_volumetric_speed/2.4} A0.3 ; cali dynamic extrusion compensation\nM1002 judge_flag filament_need_cali_flag\nM622 J1\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 8c69b32836..91e469d8e3 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 @@ -70,6 +70,6 @@ "machine_start_gcode": ";===== machine: A1 mini =========================\n;===== date: 20240204 =====================\n\n;===== start to heat heatbead&hotend==========\nM1002 gcode_claim_action : 2\nM1002 set_filament_type:{filament_type[initial_no_support_extruder]}\nM104 S170\nM140 S[bed_temperature_initial_layer_single]\nG392 S0 ;turn off clog detect\nM9833.2\n;=====start printer sound ===================\nM17\nM400 S1\nM1006 S1\nM1006 A0 B0 L100 C37 D10 M100 E37 F10 N100\nM1006 A0 B0 L100 C41 D10 M100 E41 F10 N100\nM1006 A0 B0 L100 C44 D10 M100 E44 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A43 B10 L100 C39 D10 M100 E46 F10 N100\nM1006 A0 B0 L100 C0 D10 M100 E0 F10 N100\nM1006 A0 B0 L100 C39 D10 M100 E43 F10 N100\nM1006 A0 B0 L100 C0 D10 M100 E0 F10 N100\nM1006 A0 B0 L100 C41 D10 M100 E41 F10 N100\nM1006 A0 B0 L100 C44 D10 M100 E44 F10 N100\nM1006 A0 B0 L100 C49 D10 M100 E49 F10 N100\nM1006 A0 B0 L100 C0 D10 M100 E0 F10 N100\nM1006 A44 B10 L100 C39 D10 M100 E48 F10 N100\nM1006 A0 B0 L100 C0 D10 M100 E0 F10 N100\nM1006 A0 B0 L100 C39 D10 M100 E44 F10 N100\nM1006 A0 B0 L100 C0 D10 M100 E0 F10 N100\nM1006 A43 B10 L100 C39 D10 M100 E46 F10 N100\nM1006 W\nM18\n;=====avoid end stop =================\nG91\nG380 S2 Z30 F1200\nG380 S3 Z-20 F1200\nG1 Z5 F1200\nG90\n\n;===== reset machine status =================\nM204 S6000\n\nM630 S0 P0\nG91\nM17 Z0.3 ; lower the z-motor current\n\nG90\nM17 X0.7 Y0.9 Z0.5 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM83\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\n;====== cog noise reduction=================\nM982.2 S1 ; turn on cog noise reduction\n\n;===== prepare print temperature and material ==========\nM400\nM18\nM109 S100 H170\nM104 S170\nM400\nM17\nM400\nG28 X\n\nM211 X0 Y0 Z0 ;turn off soft endstop ; turn off soft endstop to prevent protential logic problem\n\nM975 S1 ; turn on\n\nG1 X0.0 F30000\nG1 X-13.5 F3000\n\nM620 M ;enable remap\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n G392 S0 ;turn on clog detect\n M1002 gcode_claim_action : 4\n M400\n M1002 set_filament_type:UNKNOWN\n M109 S[nozzle_temperature_initial_layer]\n M104 S250\n M400\n T[initial_no_support_extruder]\n G1 X-13.5 F3000\n M400\n M620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n M109 S250 ;set nozzle to common flush temp\n M106 P1 S0\n G92 E0\n G1 E50 F200\n M400\n M1002 set_filament_type:{filament_type[initial_no_support_extruder]}\n M104 S{nozzle_temperature_range_high[initial_no_support_extruder]}\n G92 E0\n G1 E50 F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60}\n M400\n M106 P1 S178\n G92 E0\n G1 E5 F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60}\n M109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\n M104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-40}\n G92 E0\n G1 E-0.5 F300\n\n G1 X0 F30000\n G1 X-13.5 F3000\n G1 X0 F30000 ;wipe and shake\n G1 X-13.5 F3000\n G1 X0 F12000 ;wipe and shake\n G1 X0 F30000\n G1 X-13.5 F3000\n M109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-40}\n G392 S0 ;turn off clog detect\nM621 S[initial_no_support_extruder]A\n\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== mech mode fast check============================\nM1002 gcode_claim_action : 3\nG0 X25 Y175 F20000 ; find a soft place to home\n;M104 S0\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nM104 S170\n\n; build plate detect\nM1002 judge_flag build_plate_detect_flag\nM622 S1\n G39.4\n M400\nM623\n\nG1 Z5 F3000\nG1 X90 Y-1 F30000\nM400 P200\nM970.3 Q1 A7 K0 O2\nM974 Q1 S2 P0\n\nG1 X90 Y0 Z5 F30000\nM400 P200\nM970 Q0 A10 B50 C90 H15 K0 M20 O3\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X-1 Y10\nG28 X ; re-home XY\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\n\nM104 S170 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\nM211 S; push soft endstop status\nM211 X0 Y0 Z0 ;turn off Z axis endstop\n\nM83\nG1 E-1 F500\nG90\nM83\n\nM109 S170\nM104 S140\nG0 X90 Y-4 F30000\nG380 S3 Z-5 F1200\nG1 Z2 F1200\nG1 X91 F10000\nG380 S3 Z-5 F1200\nG1 Z2 F1200\nG1 X92 F10000\nG380 S3 Z-5 F1200\nG1 Z2 F1200\nG1 X93 F10000\nG380 S3 Z-5 F1200\nG1 Z2 F1200\nG1 X94 F10000\nG380 S3 Z-5 F1200\nG1 Z2 F1200\nG1 X95 F10000\nG380 S3 Z-5 F1200\nG1 Z2 F1200\nG1 X96 F10000\nG380 S3 Z-5 F1200\nG1 Z2 F1200\nG1 X97 F10000\nG380 S3 Z-5 F1200\nG1 Z2 F1200\nG1 X98 F10000\nG380 S3 Z-5 F1200\nG1 Z2 F1200\nG1 X99 F10000\nG380 S3 Z-5 F1200\nG1 Z2 F1200\nG1 X99 F10000\nG380 S3 Z-5 F1200\nG1 Z2 F1200\nG1 X99 F10000\nG380 S3 Z-5 F1200\nG1 Z2 F1200\nG1 X99 F10000\nG380 S3 Z-5 F1200\nG1 Z2 F1200\nG1 X99 F10000\nG380 S3 Z-5 F1200\n\nG1 Z5 F30000\n;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\nG1 X25 Y175 F30000.1 ;Brush material\nG1 Z0.2 F30000.1\nG1 Y185\nG91\nG1 X-30 F30000\nG1 Y-2\nG1 X27\nG1 Y1.5\nG1 X-28\nG1 Y-2\nG1 X30\nG1 Y1.5\nG1 X-30\nG90\nM83\n\nG1 Z5 F3000\nG0 X50 Y175 F20000 ; find a soft place to home\nG28 Z P0 T300; home z with low precision, permit 300deg temperature\nG29.2 S0 ; turn off ABL\n\nG0 X85 Y185 F10000 ;move to exposed steel surface and stop the nozzle\nG0 Z-1.01 F10000\nG91\n\nG2 I1 J0 X2 Y0 F2000.1\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\n\nG90\nG1 Z5 F30000\nG1 X25 Y175 F30000.1 ;Brush material\nG1 Z0.2 F30000.1\nG1 Y185\nG91\nG1 X-30 F30000\nG1 Y-2\nG1 X27\nG1 Y1.5\nG1 X-28\nG1 Y-2\nG1 X30\nG1 Y1.5\nG1 X-30\nG90\nM83\n\nG1 Z5\nG0 X55 Y175 F20000 ; find a soft place to home\nG28 Z P0 T300; home z with low precision, permit 300deg temperature\nG29.2 S0 ; turn off ABL\n\nG1 Z10\nG1 X85 Y185\nG1 Z-1.01\nG1 X95\nG1 X90\n\nM211 R; pop softend status\n\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n\n;===== wait heatbed ====================\nM1002 gcode_claim_action : 2\nM104 S0\nM190 S[bed_temperature_initial_layer_single];set bed temp\nM109 S140\n\nG1 Z5 F3000\nG29.2 S1\nG1 X10 Y10 F20000\n\n;===== bed leveling ==================================\n;M1002 set_flag g29_before_print_flag=1\nM1002 judge_flag g29_before_print_flag\nM622 J1\n M1002 gcode_claim_action : 1\n G29 A1 X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28 T145\n\nM623\n\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n;===== nozzle load line ===============================\nM975 S1\nG90\nM83\nT1000\n\nG1 X-13.5 Y0 Z10 F10000\nG1 E1.2 F500\nM400\nM1002 set_filament_type:UNKNOWN\nM109 S{nozzle_temperature[initial_extruder]}\nM400\n\nM412 S1 ; ===turn on filament runout detection===\nM400 P10\n\nG392 S0 ;turn on clog detect\n\nM620.3 W1; === turn on filament tangle detection===\nM400 S2\n\nM1002 set_filament_type:{filament_type[initial_no_support_extruder]}\n;M1002 set_flag extrude_cali_flag=1\nM1002 judge_flag extrude_cali_flag\nM622 J1\n M1002 gcode_claim_action : 8\n \n M400\n M900 K0.0 L1000.0 M1.0\n G90\n M83\n G0 X68 Y-4 F30000\n G0 Z0.3 F18000 ;Move to start position\n M400\n G0 X88 E10 F{outer_wall_volumetric_speed/(24/20) * 60}\n G0 X93 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\n G0 X98 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X103 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\n G0 X108 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X113 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\n G0 Y0 Z0 F20000\n M400\n \n G1 X-13.5 Y0 Z10 F10000\n M400\n \n G1 E10 F{outer_wall_volumetric_speed/2.4*60}\n M983 F{outer_wall_volumetric_speed/2.4} A0.3 H[nozzle_diameter]; cali dynamic extrusion compensation\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 M400\n M106 P1 S0\n\n M1002 judge_last_extrude_cali_success\n M622 J0\n M983 F{outer_wall_volumetric_speed/2.4} A0.3 H[nozzle_diameter]; cali dynamic extrusion compensation\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 M400\n M106 P1 S0\n M623\n \n G1 X-13.5 F3000\n M400\n M984 A0.1 E1 S1 F{outer_wall_volumetric_speed/2.4}\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 M400\n M106 P1 S0\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\n;===== extrude cali test ===============================\nM104 S{nozzle_temperature_initial_layer[initial_extruder]}\nG90\nM83\nG0 X68 Y-2.5 F30000\nG0 Z0.3 F18000 ;Move to start position\nG0 X88 E10 F{outer_wall_volumetric_speed/(24/20) * 60}\nG0 X93 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG0 X98 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 X103 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG0 X108 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 X113 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG0 X115 Z0 F20000\nG0 Z5\nM400\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\n\nM400 ; wait all motion done before implement the emprical L parameters\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.02} ; for Textured PEI Plate\n{endif}\n\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\n\nM211 X0 Y0 Z0 ;turn off soft endstop\nM1007 S1\n\n\n\n", "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: 202312028 =====================\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_detection_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 X-6 Y170 F20000\n G39 S1 X-6 Y170\n G0 Z2 F4000\n G0 X90 Y90 F30000\n {endif}\n\n\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}\nM623\n{endif}\n", - "change_filament_gcode": ";===== machine: A1 mini =========================\n;===== date: 20231225 =======================\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\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\nM9833 F{outer_wall_volumetric_speed/2.4} A0.3 ; cali dynamic extrusion compensation\nM1002 judge_flag filament_need_cali_flag\nM622 J1\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 M400\n M106 P1 S0 \nM623\n\nG392 S0\nM1007 S1\n\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: 20240618 =======================\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 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" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1 0.2 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1 0.2 nozzle.json index 782ec98d50..9c1127eec4 100644 --- a/resources/profiles/BBL/machine/Bambu Lab X1 0.2 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab X1 0.2 nozzle.json @@ -30,5 +30,5 @@ "Bambu Lab X1E 0.2 nozzle", "Bambu Lab A1 0.2 nozzle" ], - "machine_start_gcode": ";===== machine: X1 =========================\n;===== date: 20230707 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >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}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== nozzle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X231 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n T1000\n\n G0 F1200.0 X231 Y15 Z0.2 E0.741\n G0 F1200.0 X226 Y15 Z0.2 E0.275\n G0 F1200.0 X226 Y8 Z0.2 E0.384\n G0 F1200.0 X216 Y8 Z0.2 E0.549\n G0 F1200.0 X216 Y1.5 Z0.2 E0.357\n\n G0 X48.0 E12.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E0.92 F1200.0\n G0 X35.0 Y6.0 E1.03 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n\t{if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E9.35441 F4800\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.160\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.080\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E14.3 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.080 K0.160\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.08 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.08}\n M623\n\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" + "machine_start_gcode": ";===== machine: X1 ====================\n;===== date: 20240528 ==================\n;===== start printer sound ================\nM17\nM400 S1\nM1006 S1\nM1006 A0 B10 L100 C37 D10 M60 E37 F10 N60\nM1006 A0 B10 L100 C41 D10 M60 E41 F10 N60\nM1006 A0 B10 L100 C44 D10 M60 E44 F10 N60\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N60\nM1006 A46 B10 L100 C43 D10 M70 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A43 B10 L100 C0 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A41 B10 L100 C0 D10 M100 E41 F10 N100\nM1006 A44 B10 L100 C0 D10 M100 E44 F10 N100\nM1006 A49 B10 L100 C0 D10 M100 E49 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A48 B10 L100 C44 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A44 B10 L100 C0 D10 M90 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A46 B10 L100 C43 D10 M60 E39 F10 N100\nM1006 W\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nM290 X40 Y40 Z2.6666666\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== nozzle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X231 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n T1000\n\n G0 F1200.0 X231 Y15 Z0.2 E0.741\n G0 F1200.0 X226 Y15 Z0.2 E0.275\n G0 F1200.0 X226 Y8 Z0.2 E0.384\n G0 F1200.0 X216 Y8 Z0.2 E0.549\n G0 F1200.0 X216 Y1.5 Z0.2 E0.357\n\n G0 X48.0 E12.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E0.92 F1200.0\n G0 X35.0 Y6.0 E1.03 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n\t{if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E9.35441 F4800\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.160\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.080\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E14.3 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.080 K0.160\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.08 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.08}\n M623\n\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4\n" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1 0.4 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1 0.4 nozzle.json index adf2a3bc7f..9d9f5eac38 100644 --- a/resources/profiles/BBL/machine/Bambu Lab X1 0.4 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab X1 0.4 nozzle.json @@ -37,7 +37,7 @@ "Bambu Lab X1E 0.4 nozzle", "Bambu Lab A1 0.4 nozzle" ], - "machine_start_gcode": ";===== machine: X1 =========================\n;===== date: 20230707 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >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}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== nozzle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X231 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n T1000\n\n G0 F1200.0 X231 Y15 Z0.2 E0.741\n G0 F1200.0 X226 Y15 Z0.2 E0.275\n G0 F1200.0 X226 Y8 Z0.2 E0.384\n G0 F1200.0 X216 Y8 Z0.2 E0.549\n G0 F1200.0 X216 Y1.5 Z0.2 E0.357\n\n G0 X48.0 E12.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E0.92 F1200.0\n G0 X35.0 Y6.0 E1.03 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E9.35441 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.040\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.020\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E14.3 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.020 K0.040\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.02 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.02}\n M623\n\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4", - "machine_end_gcode": ";===== date: 20240402 =====================\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 Y265 F3000\n\nG1 X65 Y245 F12000\nG1 Y265 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\nG1 X100 F12000 ; wipe\n; pull back filament to AMS\nM620 S255\nG1 X20 Y50 F12000\nG1 Y-3\nT255\nG1 X65 F12000\nG1 Y265\nG1 X100 F12000 ; wipe\nM621 S255\nM104 S0 ; turn off hotend\n\nM622.1 S1 ; for prev firware, default turned on\nM1002 judge_flag timelapse_record_flag\nM622 J1\n M400 ; wait all motion done\n M991 S0 P-1 ;end smooth timelapse at safe pos\n M400 S3 ;wait for last picture to be taken\nM623; end of \"timelapse_record_flag\"\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) < 250}\n G1 Z{max_layer_z + 100.0} F600\n G1 Z{max_layer_z +98.0}\n{else}\n G1 Z250 F600\n G1 Z248\n{endif}\nM400 P100\nM17 R ; restore z current\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\nM17 X0.8 Y0.8 Z0.5 ; lower motor current to 45% power\nM960 S5 P0 ; turn off logo lamp\n\n", + "machine_start_gcode": ";===== machine: X1 ====================\n;===== date: 20240528 ==================\n;===== start printer sound ================\nM17\nM400 S1\nM1006 S1\nM1006 A0 B10 L100 C37 D10 M60 E37 F10 N60\nM1006 A0 B10 L100 C41 D10 M60 E41 F10 N60\nM1006 A0 B10 L100 C44 D10 M60 E44 F10 N60\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N60\nM1006 A46 B10 L100 C43 D10 M70 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A43 B10 L100 C0 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A41 B10 L100 C0 D10 M100 E41 F10 N100\nM1006 A44 B10 L100 C0 D10 M100 E44 F10 N100\nM1006 A49 B10 L100 C0 D10 M100 E49 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A48 B10 L100 C44 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A44 B10 L100 C0 D10 M90 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A46 B10 L100 C43 D10 M60 E39 F10 N100\nM1006 W\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nM290 X40 Y40 Z2.6666666\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== nozzle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X231 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n T1000\n\n G0 F1200.0 X231 Y15 Z0.2 E0.741\n G0 F1200.0 X226 Y15 Z0.2 E0.275\n G0 F1200.0 X226 Y8 Z0.2 E0.384\n G0 F1200.0 X216 Y8 Z0.2 E0.549\n G0 F1200.0 X216 Y1.5 Z0.2 E0.357\n\n G0 X48.0 E12.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E0.92 F1200.0\n G0 X35.0 Y6.0 E1.03 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E9.35441 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.040\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.020\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E14.3 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.020 K0.040\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.02 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.02}\n M623\n\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4\n", + "machine_end_gcode": ";===== date: 20240528 =====================\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 Y265 F3000\n\nG1 X65 Y245 F12000\nG1 Y265 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\nG1 X100 F12000 ; wipe\n; pull back filament to AMS\nM620 S255\nG1 X20 Y50 F12000\nG1 Y-3\nT255\nG1 X65 F12000\nG1 Y265\nG1 X100 F12000 ; wipe\nM621 S255\nM104 S0 ; turn off hotend\n\nM622.1 S1 ; for prev firware, default turned on\nM1002 judge_flag timelapse_record_flag\nM622 J1\n M400 ; wait all motion done\n M991 S0 P-1 ;end smooth timelapse at safe pos\n M400 S3 ;wait for last picture to be taken\nM623; end of \"timelapse_record_flag\"\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) < 250}\n G1 Z{max_layer_z + 100.0} F600\n G1 Z{max_layer_z +98.0}\n{else}\n G1 Z250 F600\n G1 Z248\n{endif}\nM400 P100\nM17 R ; restore z current\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;=====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 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A49 B20 L100 C44 D20 M100 E41 F20 N100\nM1006 A0 B20 L100 C0 D20 M60 E0 F20 N100\nM1006 A0 B20 L100 C37 D20 M30 E37 F20 N60\nM1006 W\n\nM17 X0.8 Y0.8 Z0.5 ; lower motor current to 45% power\nM960 S5 P0 ; turn off logo lamp\n", "change_filament_gcode": "M620 S[next_extruder]A\nM204 S9000\n{if toolchange_count > 1 && (z_hop_types[current_extruder] == 0 || z_hop_types[current_extruder] == 3)}\nG17\nG2 Z{z_after_toolchange + 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\nG1 X70 F21000\nG1 Y245\nG1 Y265 F3000\nM400\nM106 P1 S0\nM106 P2 S0\n{if old_filament_temp > 142 && next_extruder < 255}\nM104 S[old_filament_temp]\n{endif}\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}\n{else}\nM620.11 S0\n{endif}\nM400\nG1 X90 F3000\nG1 Y255 F4000\nG1 X100 F5000\nG1 X120 F15000\nG1 X20 Y50 F21000\nG1 Y-3\n{if toolchange_count == 2}\n; get travel path for change filament\nM620.1 X[travel_point_1_x] Y[travel_point_1_y] F21000 P0\nM620.1 X[travel_point_2_x] Y[travel_point_2_y] F21000 P1\nM620.1 X[travel_point_3_x] Y[travel_point_3_y] F21000 P2\n{endif}\nM620.1 E F[old_filament_e_feedrate] T{nozzle_temperature_range_high[previous_extruder]}\nT[next_extruder]\nM620.1 E F[new_filament_e_feedrate] T{nozzle_temperature_range_high[next_extruder]}\n\n{if next_extruder < 255}\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}\nG92 E0\n{if flush_length_1 > 1}\nM83\n; FLUSH_START\n; always use highest temperature to flush\nM400\n{if filament_type[next_extruder] == \"PETG\"}\nM109 S260\n{elsif filament_type[next_extruder] == \"PVA\"}\nM109 S210\n{else}\nM109 S[nozzle_temperature_range_high]\n{endif}\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\n{endif}\n\n{if flush_length_2 > 1}\n\nG91\nG1 X3 F12000; move aside to extrude\nG90\nM83\n\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_3 > 1}\n\nG91\nG1 X3 F12000; move aside to extrude\nG90\nM83\n\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_4 > 1}\n\nG91\nG1 X3 F12000; move aside to extrude\nG90\nM83\n\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; FLUSH_START\nM400\nM109 S[new_filament_temp]\nG1 E2 F{new_filament_e_feedrate} ;Compensate for filament spillage during waiting temperature\n; FLUSH_END\nM400\nG92 E0\nG1 E-[new_retract_length_toolchange] F1800\nM106 P1 S255\nM400 S3\n\nG1 X70 F5000\nG1 X90 F3000\nG1 Y255 F4000\nG1 X105 F5000\nG1 Y265 F5000\nG1 X70 F10000\nG1 X100 F5000\nG1 X70 F10000\nG1 X100 F5000\n\nG1 X70 F10000\nG1 X80 F15000\nG1 X60\nG1 X80\nG1 X60\nG1 X80 ; shake to put down garbage\nG1 X100 F5000\nG1 X165 F15000; wipe and shake\nG1 Y256 ; move Y to aside, prevent collision\nM400\nG1 Z{max_layer_z + 3.0} F3000\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" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1 0.6 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1 0.6 nozzle.json index 732e99f8a0..ec5a3b1ea9 100644 --- a/resources/profiles/BBL/machine/Bambu Lab X1 0.6 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab X1 0.6 nozzle.json @@ -34,5 +34,5 @@ "Bambu Lab X1E 0.6 nozzle", "Bambu Lab A1 0.6 nozzle" ], - "machine_start_gcode": ";===== machine: X1 =========================\n;===== date: 20230707 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >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}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== nozzle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y0.5 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X129 E15 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\nG0 X240 E15\nG0 Y11 E1.364 F{outer_wall_volumetric_speed/(0.3*1.0)/ 4 * 60}\nG0 X239.5\nG0 E0.3\nG0 Y1.5 E1.300\nG0 X231 E1.160 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n G0 F1200.0 X231 Y15 Z0.2 E1.482\n G0 F1200.0 X226 Y15 Z0.2 E0.550\n G0 F1200.0 X226 Y8 Z0.2 E0.768\n G0 F1200.0 X216 Y8 Z0.2 E1.098\n G0 F1200.0 X216 Y1.5 Z0.2 E0.714\n\n G0 X48.0 E25.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E1.70 F1200.0\n G0 X35.0 Y6.0 E1.90 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X110.000 E9.35441 F4800\n G0 X185.000 E9.35441 F4800\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.020\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.010\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X129 E14 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G0 X18 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.010 K0.020\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.01 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14) *0.01}\n M623\n\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X185.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X190.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X195.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X200.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X205.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X210.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X215.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X220.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X225.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" + "machine_start_gcode": ";===== machine: X1 =========================\n;===== date: 20240528 =====================\n;===== start printer sound ================\nM17\nM400 S1\nM1006 S1\nM1006 A0 B10 L100 C37 D10 M60 E37 F10 N60\nM1006 A0 B10 L100 C41 D10 M60 E41 F10 N60\nM1006 A0 B10 L100 C44 D10 M60 E44 F10 N60\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N60\nM1006 A46 B10 L100 C43 D10 M70 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A43 B10 L100 C0 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A41 B10 L100 C0 D10 M100 E41 F10 N100\nM1006 A44 B10 L100 C0 D10 M100 E44 F10 N100\nM1006 A49 B10 L100 C0 D10 M100 E49 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A48 B10 L100 C44 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A44 B10 L100 C0 D10 M90 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A46 B10 L100 C43 D10 M60 E39 F10 N100\nM1006 W\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nM290 X40 Y40 Z2.6666666\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== nozzle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E25 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y15 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E1.166\nG0 X231 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n G0 F1200.0 X231 Y15 Z0.2 E1.333\n G0 F1200.0 X226 Y15 Z0.2 E0.495\n G0 F1200.0 X226 Y8 Z0.2 E0.691\n G0 F1200.0 X216 Y8 Z0.2 E0.988\n G0 F1200.0 X216 Y1.5 Z0.2 E0.642\n\n G0 X48.0 E20.56 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E1.56 F1200.0\n G0 X35.0 Y6.0 E1.75 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E16.9 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.030\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.015\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E23.9 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.015 K0.030\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.015 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.015}\n M623\n\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4\n" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1 0.8 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1 0.8 nozzle.json index c9f7e6908e..fd1aa6bf82 100644 --- a/resources/profiles/BBL/machine/Bambu Lab X1 0.8 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab X1 0.8 nozzle.json @@ -34,5 +34,5 @@ "Bambu Lab X1E 0.8 nozzle", "Bambu Lab A1 0.8 nozzle" ], - "machine_start_gcode": ";===== machine: X1 =========================\n;===== date: 20230707 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >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}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== nozzle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y0.5 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X129 E15 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\nG0 X240 E15\nG0 Y11 E1.364 F{outer_wall_volumetric_speed/(0.3*1.0)/ 4 * 60}\nG0 X239.5\nG0 E0.3\nG0 Y1.5 E1.300\nG0 X231 E1.160 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n G0 F1200.0 X231 Y15 Z0.2 E1.482\n G0 F1200.0 X226 Y15 Z0.2 E0.550\n G0 F1200.0 X226 Y8 Z0.2 E0.768\n G0 F1200.0 X216 Y8 Z0.2 E1.098\n G0 F1200.0 X216 Y1.5 Z0.2 E0.714\n\n G0 X48.0 E25.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E1.70 F1200.0\n G0 X35.0 Y6.0 E1.90 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X110.000 E9.35441 F4800\n G0 X185.000 E9.35441 F4800\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.020\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.010\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X129 E14 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G0 X18 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.010 K0.020\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.01 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14) *0.01}\n M623\n\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X185.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X190.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X195.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X200.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X205.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X210.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X215.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X220.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X225.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" + "machine_start_gcode": ";===== machine: X1 ====================\n;===== date: 20240528 ==================\n;===== start printer sound ================\nM17\nM400 S1\nM1006 S1\nM1006 A0 B10 L100 C37 D10 M60 E37 F10 N60\nM1006 A0 B10 L100 C41 D10 M60 E41 F10 N60\nM1006 A0 B10 L100 C44 D10 M60 E44 F10 N60\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N60\nM1006 A46 B10 L100 C43 D10 M70 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A43 B10 L100 C0 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A41 B10 L100 C0 D10 M100 E41 F10 N100\nM1006 A44 B10 L100 C0 D10 M100 E44 F10 N100\nM1006 A49 B10 L100 C0 D10 M100 E49 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A48 B10 L100 C44 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A44 B10 L100 C0 D10 M90 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A46 B10 L100 C43 D10 M60 E39 F10 N100\nM1006 W\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nM290 X40 Y40 Z2.6666666\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== nozzle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y0.5 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X129 E15 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\nG0 X240 E15\nG0 Y11 E1.364 F{outer_wall_volumetric_speed/(0.3*1.0)/ 4 * 60}\nG0 X239.5\nG0 E0.3\nG0 Y1.5 E1.300\nG0 X231 E1.160 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n G0 F1200.0 X231 Y15 Z0.2 E1.482\n G0 F1200.0 X226 Y15 Z0.2 E0.550\n G0 F1200.0 X226 Y8 Z0.2 E0.768\n G0 F1200.0 X216 Y8 Z0.2 E1.098\n G0 F1200.0 X216 Y1.5 Z0.2 E0.714\n\n G0 X48.0 E25.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E1.70 F1200.0\n G0 X35.0 Y6.0 E1.90 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X110.000 E9.35441 F4800\n G0 X185.000 E9.35441 F4800\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.020\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.010\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X129 E14 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G0 X18 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.010 K0.020\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.01 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14) *0.01}\n M623\n\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X185.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X190.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X195.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X200.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X205.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X210.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X215.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X220.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X225.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4\n" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.2 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.2 nozzle.json index 0a55296780..a0b54160a5 100644 --- a/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.2 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.2 nozzle.json @@ -31,5 +31,5 @@ "Bambu Lab X1E 0.2 nozzle", "Bambu Lab A1 0.2 nozzle" ], - "machine_start_gcode": ";===== machine: X1 =========================\n;===== date: 20230824 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nM290 X40 Y40 Z2.6666666\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== nozzle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X231 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n T1000\n\n G0 F1200.0 X231 Y15 Z0.2 E0.741\n G0 F1200.0 X226 Y15 Z0.2 E0.275\n G0 F1200.0 X226 Y8 Z0.2 E0.384\n G0 F1200.0 X216 Y8 Z0.2 E0.549\n G0 F1200.0 X216 Y1.5 Z0.2 E0.357\n\n G0 X48.0 E12.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E0.92 F1200.0\n G0 X35.0 Y6.0 E1.03 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n\t{if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E9.35441 F4800\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.160\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.080\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E14.3 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.080 K0.160\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.08 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.08}\n M623\n\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" + "machine_start_gcode": ";===== machine: X1 ====================\n;===== date: 20240528 ==================\n;===== start printer sound ================\nM17\nM400 S1\nM1006 S1\nM1006 A0 B10 L100 C37 D10 M60 E37 F10 N60\nM1006 A0 B10 L100 C41 D10 M60 E41 F10 N60\nM1006 A0 B10 L100 C44 D10 M60 E44 F10 N60\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N60\nM1006 A46 B10 L100 C43 D10 M70 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A43 B10 L100 C0 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A41 B10 L100 C0 D10 M100 E41 F10 N100\nM1006 A44 B10 L100 C0 D10 M100 E44 F10 N100\nM1006 A49 B10 L100 C0 D10 M100 E49 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A48 B10 L100 C44 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A44 B10 L100 C0 D10 M90 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A46 B10 L100 C43 D10 M60 E39 F10 N100\nM1006 W\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nM290 X40 Y40 Z2.6666666\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== nozzle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X231 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n T1000\n\n G0 F1200.0 X231 Y15 Z0.2 E0.741\n G0 F1200.0 X226 Y15 Z0.2 E0.275\n G0 F1200.0 X226 Y8 Z0.2 E0.384\n G0 F1200.0 X216 Y8 Z0.2 E0.549\n G0 F1200.0 X216 Y1.5 Z0.2 E0.357\n\n G0 X48.0 E12.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E0.92 F1200.0\n G0 X35.0 Y6.0 E1.03 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n\t{if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E9.35441 F4800\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.160\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.080\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E14.3 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.080 K0.160\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.08 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.08}\n M623\n\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4\n" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.4 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.4 nozzle.json index 540fd0bb5b..c6188a2ab8 100644 --- a/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.4 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.4 nozzle.json @@ -35,7 +35,7 @@ "Bambu Lab X1E 0.4 nozzle", "Bambu Lab A1 0.4 nozzle" ], - "machine_start_gcode": ";===== machine: X1 =========================\n;===== date: 20230824 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nM290 X40 Y40 Z2.6666666\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== nozzle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X231 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n T1000\n\n G0 F1200.0 X231 Y15 Z0.2 E0.741\n G0 F1200.0 X226 Y15 Z0.2 E0.275\n G0 F1200.0 X226 Y8 Z0.2 E0.384\n G0 F1200.0 X216 Y8 Z0.2 E0.549\n G0 F1200.0 X216 Y1.5 Z0.2 E0.357\n\n G0 X48.0 E12.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E0.92 F1200.0\n G0 X35.0 Y6.0 E1.03 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E9.35441 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.040\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.020\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E14.3 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.020 K0.040\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.02 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.02}\n M623\n\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4", - "machine_end_gcode": ";===== date: 20240402 =====================\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 Y265 F3000\n\nG1 X65 Y245 F12000\nG1 Y265 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\nG1 X100 F12000 ; wipe\n; pull back filament to AMS\nM620 S255\nG1 X20 Y50 F12000\nG1 Y-3\nT255\nG1 X65 F12000\nG1 Y265\nG1 X100 F12000 ; wipe\nM621 S255\nM104 S0 ; turn off hotend\n\nM622.1 S1 ; for prev firware, default turned on\nM1002 judge_flag timelapse_record_flag\nM622 J1\n M400 ; wait all motion done\n M991 S0 P-1 ;end smooth timelapse at safe pos\n M400 S3 ;wait for last picture to be taken\nM623; end of \"timelapse_record_flag\"\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) < 250}\n G1 Z{max_layer_z + 100.0} F600\n G1 Z{max_layer_z +98.0}\n{else}\n G1 Z250 F600\n G1 Z248\n{endif}\nM400 P100\nM17 R ; restore z current\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\nM17 X0.8 Y0.8 Z0.5 ; lower motor current to 45% power\nM960 S5 P0 ; turn off logo lamp\n\n", + "machine_start_gcode": ";===== machine: X1 ====================\n;===== date: 20240528 ==================\n;===== start printer sound ================\nM17\nM400 S1\nM1006 S1\nM1006 A0 B10 L100 C37 D10 M60 E37 F10 N60\nM1006 A0 B10 L100 C41 D10 M60 E41 F10 N60\nM1006 A0 B10 L100 C44 D10 M60 E44 F10 N60\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N60\nM1006 A46 B10 L100 C43 D10 M70 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A43 B10 L100 C0 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A41 B10 L100 C0 D10 M100 E41 F10 N100\nM1006 A44 B10 L100 C0 D10 M100 E44 F10 N100\nM1006 A49 B10 L100 C0 D10 M100 E49 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A48 B10 L100 C44 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A44 B10 L100 C0 D10 M90 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A46 B10 L100 C43 D10 M60 E39 F10 N100\nM1006 W\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nM290 X40 Y40 Z2.6666666\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== nozzle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X231 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n T1000\n\n G0 F1200.0 X231 Y15 Z0.2 E0.741\n G0 F1200.0 X226 Y15 Z0.2 E0.275\n G0 F1200.0 X226 Y8 Z0.2 E0.384\n G0 F1200.0 X216 Y8 Z0.2 E0.549\n G0 F1200.0 X216 Y1.5 Z0.2 E0.357\n\n G0 X48.0 E12.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E0.92 F1200.0\n G0 X35.0 Y6.0 E1.03 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E9.35441 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.040\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.020\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E14.3 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.020 K0.040\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.02 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.02}\n M623\n\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4", + "machine_end_gcode": ";===== date: 20240528 =====================\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 Y265 F3000\n\nG1 X65 Y245 F12000\nG1 Y265 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\nG1 X100 F12000 ; wipe\n; pull back filament to AMS\nM620 S255\nG1 X20 Y50 F12000\nG1 Y-3\nT255\nG1 X65 F12000\nG1 Y265\nG1 X100 F12000 ; wipe\nM621 S255\nM104 S0 ; turn off hotend\n\nM622.1 S1 ; for prev firware, default turned on\nM1002 judge_flag timelapse_record_flag\nM622 J1\n M400 ; wait all motion done\n M991 S0 P-1 ;end smooth timelapse at safe pos\n M400 S3 ;wait for last picture to be taken\nM623; end of \"timelapse_record_flag\"\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) < 250}\n G1 Z{max_layer_z + 100.0} F600\n G1 Z{max_layer_z +98.0}\n{else}\n G1 Z250 F600\n G1 Z248\n{endif}\nM400 P100\nM17 R ; restore z current\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;=====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 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A49 B20 L100 C44 D20 M100 E41 F20 N100\nM1006 A0 B20 L100 C0 D20 M60 E0 F20 N100\nM1006 A0 B20 L100 C37 D20 M30 E37 F20 N60\nM1006 W\n\nM17 X0.8 Y0.8 Z0.5 ; lower motor current to 45% power\nM960 S5 P0 ; turn off logo lamp\n", "change_filament_gcode": "M620 S[next_extruder]A\nM204 S9000\n{if toolchange_count > 1 && (z_hop_types[current_extruder] == 0 || z_hop_types[current_extruder] == 3)}\nG17\nG2 Z{z_after_toolchange + 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\nG1 X70 F21000\nG1 Y245\nG1 Y265 F3000\nM400\nM106 P1 S0\nM106 P2 S0\n{if old_filament_temp > 142 && next_extruder < 255}\nM104 S[old_filament_temp]\n{endif}\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}\n{else}\nM620.11 S0\n{endif}\nM400\nG1 X90 F3000\nG1 Y255 F4000\nG1 X100 F5000\nG1 X120 F15000\nG1 X20 Y50 F21000\nG1 Y-3\n{if toolchange_count == 2}\n; get travel path for change filament\nM620.1 X[travel_point_1_x] Y[travel_point_1_y] F21000 P0\nM620.1 X[travel_point_2_x] Y[travel_point_2_y] F21000 P1\nM620.1 X[travel_point_3_x] Y[travel_point_3_y] F21000 P2\n{endif}\nM620.1 E F[old_filament_e_feedrate] T{nozzle_temperature_range_high[previous_extruder]}\nT[next_extruder]\nM620.1 E F[new_filament_e_feedrate] T{nozzle_temperature_range_high[next_extruder]}\n\n{if next_extruder < 255}\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}\nG92 E0\n{if flush_length_1 > 1}\nM83\n; FLUSH_START\n; always use highest temperature to flush\nM400\n{if filament_type[next_extruder] == \"PETG\"}\nM109 S260\n{elsif filament_type[next_extruder] == \"PVA\"}\nM109 S210\n{else}\nM109 S[nozzle_temperature_range_high]\n{endif}\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\n{endif}\n\n{if flush_length_2 > 1}\n\nG91\nG1 X3 F12000; move aside to extrude\nG90\nM83\n\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_3 > 1}\n\nG91\nG1 X3 F12000; move aside to extrude\nG90\nM83\n\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_4 > 1}\n\nG91\nG1 X3 F12000; move aside to extrude\nG90\nM83\n\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; FLUSH_START\nM400\nM109 S[new_filament_temp]\nG1 E2 F{new_filament_e_feedrate} ;Compensate for filament spillage during waiting temperature\n; FLUSH_END\nM400\nG92 E0\nG1 E-[new_retract_length_toolchange] F1800\nM106 P1 S255\nM400 S3\n\nG1 X70 F5000\nG1 X90 F3000\nG1 Y255 F4000\nG1 X105 F5000\nG1 Y265 F5000\nG1 X70 F10000\nG1 X100 F5000\nG1 X70 F10000\nG1 X100 F5000\n\nG1 X70 F10000\nG1 X80 F15000\nG1 X60\nG1 X80\nG1 X60\nG1 X80 ; shake to put down garbage\nG1 X100 F5000\nG1 X165 F15000; wipe and shake\nG1 Y256 ; move Y to aside, prevent collision\nM400\nG1 Z{max_layer_z + 3.0} F3000\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" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.6 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.6 nozzle.json index 23526c9d03..2dffc6f94c 100644 --- a/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.6 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.6 nozzle.json @@ -33,5 +33,5 @@ "Bambu Lab X1E 0.6 nozzle", "Bambu Lab A1 0.6 nozzle" ], - "machine_start_gcode": ";===== machine: X1 =========================\n;===== date: 20230824 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nM290 X40 Y40 Z2.6666666\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== nozzle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E25 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y15 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E1.166\nG0 X231 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n G0 F1200.0 X231 Y15 Z0.2 E1.333\n G0 F1200.0 X226 Y15 Z0.2 E0.495\n G0 F1200.0 X226 Y8 Z0.2 E0.691\n G0 F1200.0 X216 Y8 Z0.2 E0.988\n G0 F1200.0 X216 Y1.5 Z0.2 E0.642\n\n G0 X48.0 E20.56 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E1.56 F1200.0\n G0 X35.0 Y6.0 E1.75 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E16.9 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.030\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.015\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E23.9 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.015 K0.030\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.015 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.015}\n M623\n\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" + "machine_start_gcode": ";===== machine: X1 =========================\n;===== date: 20240528 =====================\n;===== start printer sound ================\nM17\nM400 S1\nM1006 S1\nM1006 A0 B10 L100 C37 D10 M60 E37 F10 N60\nM1006 A0 B10 L100 C41 D10 M60 E41 F10 N60\nM1006 A0 B10 L100 C44 D10 M60 E44 F10 N60\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N60\nM1006 A46 B10 L100 C43 D10 M70 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A43 B10 L100 C0 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A41 B10 L100 C0 D10 M100 E41 F10 N100\nM1006 A44 B10 L100 C0 D10 M100 E44 F10 N100\nM1006 A49 B10 L100 C0 D10 M100 E49 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A48 B10 L100 C44 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A44 B10 L100 C0 D10 M90 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A46 B10 L100 C43 D10 M60 E39 F10 N100\nM1006 W\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nM290 X40 Y40 Z2.6666666\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== nozzle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E25 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y15 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E1.166\nG0 X231 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n G0 F1200.0 X231 Y15 Z0.2 E1.333\n G0 F1200.0 X226 Y15 Z0.2 E0.495\n G0 F1200.0 X226 Y8 Z0.2 E0.691\n G0 F1200.0 X216 Y8 Z0.2 E0.988\n G0 F1200.0 X216 Y1.5 Z0.2 E0.642\n\n G0 X48.0 E20.56 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E1.56 F1200.0\n G0 X35.0 Y6.0 E1.75 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E16.9 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.030\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.015\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E23.9 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.015 K0.030\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.015 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.015}\n M623\n\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4\n" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.8 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.8 nozzle.json index ea4e5e27a2..4e22e6bc78 100644 --- a/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.8 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.8 nozzle.json @@ -33,5 +33,5 @@ "Bambu Lab X1E 0.8 nozzle", "Bambu Lab A1 0.8 nozzle" ], - "machine_start_gcode": ";===== machine: X1 =========================\n;===== date: 20230824 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nM290 X40 Y40 Z2.6666666\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== nozzle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y0.5 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X129 E15 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\nG0 X240 E15\nG0 Y11 E1.364 F{outer_wall_volumetric_speed/(0.3*1.0)/ 4 * 60}\nG0 X239.5\nG0 E0.3\nG0 Y1.5 E1.300\nG0 X231 E1.160 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n G0 F1200.0 X231 Y15 Z0.2 E1.482\n G0 F1200.0 X226 Y15 Z0.2 E0.550\n G0 F1200.0 X226 Y8 Z0.2 E0.768\n G0 F1200.0 X216 Y8 Z0.2 E1.098\n G0 F1200.0 X216 Y1.5 Z0.2 E0.714\n\n G0 X48.0 E25.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E1.70 F1200.0\n G0 X35.0 Y6.0 E1.90 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X110.000 E9.35441 F4800\n G0 X185.000 E9.35441 F4800\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.020\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.010\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X129 E14 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G0 X18 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.010 K0.020\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.01 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14) *0.01}\n M623\n\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X185.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X190.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X195.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X200.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X205.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X210.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X215.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X220.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X225.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" + "machine_start_gcode": ";===== machine: X1 ====================\n;===== date: 20240528 ==================\n;===== start printer sound ================\nM17\nM400 S1\nM1006 S1\nM1006 A0 B10 L100 C37 D10 M60 E37 F10 N60\nM1006 A0 B10 L100 C41 D10 M60 E41 F10 N60\nM1006 A0 B10 L100 C44 D10 M60 E44 F10 N60\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N60\nM1006 A46 B10 L100 C43 D10 M70 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A43 B10 L100 C0 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A41 B10 L100 C0 D10 M100 E41 F10 N100\nM1006 A44 B10 L100 C0 D10 M100 E44 F10 N100\nM1006 A49 B10 L100 C0 D10 M100 E49 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A48 B10 L100 C44 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A44 B10 L100 C0 D10 M90 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A46 B10 L100 C43 D10 M60 E39 F10 N100\nM1006 W\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nM290 X40 Y40 Z2.6666666\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== nozzle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y0.5 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X129 E15 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\nG0 X240 E15\nG0 Y11 E1.364 F{outer_wall_volumetric_speed/(0.3*1.0)/ 4 * 60}\nG0 X239.5\nG0 E0.3\nG0 Y1.5 E1.300\nG0 X231 E1.160 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n G0 F1200.0 X231 Y15 Z0.2 E1.482\n G0 F1200.0 X226 Y15 Z0.2 E0.550\n G0 F1200.0 X226 Y8 Z0.2 E0.768\n G0 F1200.0 X216 Y8 Z0.2 E1.098\n G0 F1200.0 X216 Y1.5 Z0.2 E0.714\n\n G0 X48.0 E25.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E1.70 F1200.0\n G0 X35.0 Y6.0 E1.90 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X110.000 E9.35441 F4800\n G0 X185.000 E9.35441 F4800\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.020\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.010\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X129 E14 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G0 X18 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.010 K0.020\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.01 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14) *0.01}\n M623\n\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X185.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X190.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X195.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X200.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X205.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X210.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X215.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X220.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X225.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4\n" } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.10mm Standard @BBL P1P 0.2 nozzle.json b/resources/profiles/BBL/process/0.10mm Standard @BBL P1P 0.2 nozzle.json index 37a2a12777..227fb04c57 100644 --- a/resources/profiles/BBL/process/0.10mm Standard @BBL P1P 0.2 nozzle.json +++ b/resources/profiles/BBL/process/0.10mm Standard @BBL P1P 0.2 nozzle.json @@ -8,6 +8,7 @@ "description": "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.", "elefant_foot_compensation": "0.15", "compatible_printers": [ - "Bambu Lab P1P 0.2 nozzle" + "Bambu Lab P1P 0.2 nozzle", + "Bambu Lab P1S 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/fdm_process_bbl_0.08.json b/resources/profiles/BBL/process/fdm_process_bbl_0.08.json index 2f8723a464..61897f7a73 100644 --- a/resources/profiles/BBL/process/fdm_process_bbl_0.08.json +++ b/resources/profiles/BBL/process/fdm_process_bbl_0.08.json @@ -20,7 +20,7 @@ "overhang_1_4_speed": "60", "overhang_2_4_speed": "30", "overhang_3_4_speed": "10", - "support_threshold_angle": "30", + "support_threshold_angle": "15", "support_top_z_distance": "0.08", "support_bottom_z_distance": "0.08" } \ No newline at end of file diff --git a/resources/profiles/BBL/process/fdm_process_bbl_0.12.json b/resources/profiles/BBL/process/fdm_process_bbl_0.12.json index 875dd82210..e22593fb30 100644 --- a/resources/profiles/BBL/process/fdm_process_bbl_0.12.json +++ b/resources/profiles/BBL/process/fdm_process_bbl_0.12.json @@ -20,7 +20,7 @@ "overhang_1_4_speed": "60", "overhang_2_4_speed": "30", "overhang_3_4_speed": "10", - "support_threshold_angle": "30", + "support_threshold_angle": "20", "support_top_z_distance": "0.12", "support_bottom_z_distance": "0.12" } \ No newline at end of file diff --git a/resources/profiles/BBL/process/fdm_process_bbl_0.16.json b/resources/profiles/BBL/process/fdm_process_bbl_0.16.json index 7aee25923b..3d60b01d8b 100644 --- a/resources/profiles/BBL/process/fdm_process_bbl_0.16.json +++ b/resources/profiles/BBL/process/fdm_process_bbl_0.16.json @@ -20,7 +20,7 @@ "overhang_1_4_speed": "60", "overhang_2_4_speed": "30", "overhang_3_4_speed": "10", - "support_threshold_angle": "30", + "support_threshold_angle": "25", "support_top_z_distance": "0.16", "support_bottom_z_distance": "0.16" } \ No newline at end of file diff --git a/resources/profiles/BBL/process/fdm_process_bbl_0.24.json b/resources/profiles/BBL/process/fdm_process_bbl_0.24.json index 6f35be1ec1..1a0bd76e40 100644 --- a/resources/profiles/BBL/process/fdm_process_bbl_0.24.json +++ b/resources/profiles/BBL/process/fdm_process_bbl_0.24.json @@ -16,6 +16,6 @@ "sparse_infill_speed": "230", "internal_solid_infill_speed": "230", "gap_infill_speed": "230", - "support_threshold_angle": "30", + "support_threshold_angle": "35", "top_shell_layers": "4" } \ No newline at end of file diff --git a/resources/profiles/BBL/process/fdm_process_bbl_0.28.json b/resources/profiles/BBL/process/fdm_process_bbl_0.28.json index 4a1c9fc694..efd2cc4d01 100644 --- a/resources/profiles/BBL/process/fdm_process_bbl_0.28.json +++ b/resources/profiles/BBL/process/fdm_process_bbl_0.28.json @@ -16,6 +16,6 @@ "sparse_infill_speed": "200", "internal_solid_infill_speed": "200", "gap_infill_speed": "200", - "support_threshold_angle": "30", + "support_threshold_angle": "40", "top_shell_layers": "4" } \ No newline at end of file diff --git a/resources/profiles/BBL/process/fdm_process_common.json b/resources/profiles/BBL/process/fdm_process_common.json index a9a08f371a..fd909fd1c7 100644 --- a/resources/profiles/BBL/process/fdm_process_common.json +++ b/resources/profiles/BBL/process/fdm_process_common.json @@ -57,7 +57,7 @@ "support_base_pattern": "default", "support_base_pattern_spacing": "2", "support_speed": "40", - "support_threshold_angle": "30", + "support_threshold_angle": "40", "support_object_xy_distance": "0.5", "detect_thin_wall": "0", "top_surface_line_width": "0.42", diff --git a/resources/profiles/BIQU.json b/resources/profiles/BIQU.json index 0b34e7888f..f76c8d6c81 100644 --- a/resources/profiles/BIQU.json +++ b/resources/profiles/BIQU.json @@ -1,6 +1,6 @@ { "name": "BIQU", - "version": "02.01.00.00", + "version": "02.01.00.01", "force_update": "0", "description": "BIQU configurations", "machine_model_list": [ diff --git a/resources/profiles/CONSTRUCT3D.json b/resources/profiles/CONSTRUCT3D.json index 204e5e75eb..635c888aeb 100644 --- a/resources/profiles/CONSTRUCT3D.json +++ b/resources/profiles/CONSTRUCT3D.json @@ -1,6 +1,6 @@ { "name": "CONSTRUCT3D", - "version": "02.01.00.00", + "version": "02.01.00.01", "force_update": "0", "description": "Construct3D configurations", "machine_model_list": [ diff --git a/resources/profiles/Comgrow.json b/resources/profiles/Comgrow.json index dd962a7e20..de18cb4f8e 100644 --- a/resources/profiles/Comgrow.json +++ b/resources/profiles/Comgrow.json @@ -1,6 +1,6 @@ { "name": "Comgrow", - "version": "02.01.00.00", + "version": "02.01.00.01", "force_update": "0", "description": "Comgrow configurations", "machine_model_list": [ diff --git a/resources/profiles/Creality.json b/resources/profiles/Creality.json index a175399367..e2307e3426 100644 --- a/resources/profiles/Creality.json +++ b/resources/profiles/Creality.json @@ -1,6 +1,6 @@ { "name": "Creality", - "version": "02.01.00.00", + "version": "02.01.00.01", "force_update": "0", "description": "Creality configurations", "machine_model_list": [ diff --git a/resources/profiles/Creality/creality_ender3s1pro_buildplate_model.stl b/resources/profiles/Creality/creality_ender3s1pro_buildplate_model.stl index a3837d2b59..b44c071e0c 100644 Binary files a/resources/profiles/Creality/creality_ender3s1pro_buildplate_model.stl and b/resources/profiles/Creality/creality_ender3s1pro_buildplate_model.stl differ diff --git a/resources/profiles/Creality/machine/Creality Ender-3 V3 KE 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 V3 KE 0.4 nozzle.json index df750e458d..d2253ed382 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 V3 KE 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 V3 KE 0.4 nozzle.json @@ -114,7 +114,7 @@ ], "single_extruder_multi_material": "1", "manual_filament_change": "1", - "change_filament_gcode": "PAUSE", + "change_filament_gcode": "M600", "machine_pause_gcode": "PAUSE", "default_filament_profile": [ "Creality Generic PLA @Ender-3V3-all" diff --git a/resources/profiles/Creality/process/0.12mm Fine @Creality Ender3V3KE.json b/resources/profiles/Creality/process/0.12mm Fine @Creality Ender3V3KE.json index 874f19f3ce..8e3b8b6b27 100644 --- a/resources/profiles/Creality/process/0.12mm Fine @Creality Ender3V3KE.json +++ b/resources/profiles/Creality/process/0.12mm Fine @Creality Ender3V3KE.json @@ -12,7 +12,7 @@ "bottom_surface_pattern": "monotonic", "bottom_shell_layers": "5", "bottom_shell_thickness": "0", - "bridge_flow": "0.95", + "bridge_flow": "1", "bridge_speed": "65", "brim_type": "no_brim", "brim_width": "5", @@ -23,17 +23,17 @@ "top_surface_acceleration": "5000", "bridge_no_support": "0", "draft_shield": "disabled", - "elefant_foot_compensation": "0", + "elefant_foot_compensation": "0.05", "outer_wall_line_width": "0.42", "wall_infill_order": "inner wall/outer wall/infill", - "line_width": "0.45", + "line_width": "0.42", "infill_direction": "45", "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "1000", "travel_acceleration": "5000", "inner_wall_acceleration": "5000", - "outer_wall_acceleration": "5000", + "outer_wall_acceleration": "4000", "initial_layer_line_width": "0.5", "initial_layer_print_height": "0.2", "infill_combination": "1", @@ -60,7 +60,7 @@ "skirt_height": "2", "skirt_loops": "0", "minimum_sparse_infill_area": "10", - "internal_solid_infill_line_width": "0.42", + "internal_solid_infill_line_width": "0.45", "spiral_mode": "0", "standby_temperature_delta": "-5", "enable_support": "0", @@ -104,7 +104,7 @@ "role_based_wipe_speed" : "0", "wipe_speed": "200", "prime_tower_width": "60", - "xy_hole_compensation": "0", + "xy_hole_compensation": "0.025", "xy_contour_compensation": "0", "default_jerk": "7", "outer_wall_jerk": "7", diff --git a/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender3V3KE.json b/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender3V3KE.json index f11c3340cf..d0357c0246 100644 --- a/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender3V3KE.json +++ b/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender3V3KE.json @@ -12,7 +12,7 @@ "bottom_surface_pattern": "monotonic", "bottom_shell_layers": "4", "bottom_shell_thickness": "0", - "bridge_flow": "0.95", + "bridge_flow": "1", "bridge_speed": "65", "brim_type": "no_brim", "brim_width": "5", @@ -23,17 +23,17 @@ "top_surface_acceleration": "5000", "bridge_no_support": "0", "draft_shield": "disabled", - "elefant_foot_compensation": "0", + "elefant_foot_compensation": "0.05", "outer_wall_line_width": "0.42", "wall_infill_order": "inner wall/outer wall/infill", - "line_width": "0.45", + "line_width": "0.42", "infill_direction": "45", "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "1000", "travel_acceleration": "5000", "inner_wall_acceleration": "5000", - "outer_wall_acceleration": "5000", + "outer_wall_acceleration": "4000", "initial_layer_line_width": "0.5", "initial_layer_print_height": "0.2", "infill_combination": "1", @@ -60,7 +60,7 @@ "skirt_height": "2", "skirt_loops": "0", "minimum_sparse_infill_area": "10", - "internal_solid_infill_line_width": "0.42", + "internal_solid_infill_line_width": "0.45", "spiral_mode": "0", "standby_temperature_delta": "-5", "enable_support": "0", @@ -104,7 +104,7 @@ "role_based_wipe_speed" : "0", "wipe_speed": "200", "prime_tower_width": "60", - "xy_hole_compensation": "0", + "xy_hole_compensation": "0.025", "xy_contour_compensation": "0", "default_jerk": "7", "outer_wall_jerk": "7", diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3V3KE.json b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3V3KE.json index 2fe93ca40b..6321b57e8b 100644 --- a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3V3KE.json +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3V3KE.json @@ -13,7 +13,7 @@ "bottom_surface_pattern": "monotonic", "bottom_shell_layers": "4", "bottom_shell_thickness": "0", - "bridge_flow": "0.95", + "bridge_flow": "1", "bridge_speed": "65", "brim_type": "no_brim", "brim_width": "5", @@ -24,17 +24,17 @@ "top_surface_acceleration": "5000", "bridge_no_support": "0", "draft_shield": "disabled", - "elefant_foot_compensation": "0", + "elefant_foot_compensation": "0.05", "outer_wall_line_width": "0.42", "wall_infill_order": "inner wall/outer wall/infill", - "line_width": "0.45", + "line_width": "0.42", "infill_direction": "45", "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "1000", "travel_acceleration": "5000", "inner_wall_acceleration": "5000", - "outer_wall_acceleration": "5000", + "outer_wall_acceleration": "4000", "initial_layer_line_width": "0.5", "initial_layer_print_height": "0.2", "infill_combination": "0", @@ -61,7 +61,7 @@ "skirt_height": "2", "skirt_loops": "0", "minimum_sparse_infill_area": "10", - "internal_solid_infill_line_width": "0.42", + "internal_solid_infill_line_width": "0.45", "spiral_mode": "0", "standby_temperature_delta": "-5", "enable_support": "0", @@ -105,7 +105,7 @@ "role_based_wipe_speed": "0", "wipe_speed": "200", "prime_tower_width": "60", - "xy_hole_compensation": "0", + "xy_hole_compensation": "0.025", "xy_contour_compensation": "0", "default_jerk": "7", "outer_wall_jerk": "7", diff --git a/resources/profiles/Creality/process/0.24mm Draft @Creality Ender3V3KE.json b/resources/profiles/Creality/process/0.24mm Draft @Creality Ender3V3KE.json index a58e7726dc..12a55c48b3 100644 --- a/resources/profiles/Creality/process/0.24mm Draft @Creality Ender3V3KE.json +++ b/resources/profiles/Creality/process/0.24mm Draft @Creality Ender3V3KE.json @@ -12,7 +12,7 @@ "bottom_surface_pattern": "monotonic", "bottom_shell_layers": "4", "bottom_shell_thickness": "0", - "bridge_flow": "0.95", + "bridge_flow": "1", "bridge_speed": "65", "brim_type": "no_brim", "brim_width": "5", @@ -23,17 +23,17 @@ "top_surface_acceleration": "5000", "bridge_no_support": "0", "draft_shield": "disabled", - "elefant_foot_compensation": "0", + "elefant_foot_compensation": "0.05", "outer_wall_line_width": "0.42", "wall_infill_order": "inner wall/outer wall/infill", - "line_width": "0.45", + "line_width": "0.42", "infill_direction": "45", "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "1000", "travel_acceleration": "5000", "inner_wall_acceleration": "5000", - "outer_wall_acceleration": "5000", + "outer_wall_acceleration": "4000", "initial_layer_line_width": "0.5", "initial_layer_print_height": "0.2", "infill_combination": "0", @@ -60,7 +60,7 @@ "skirt_height": "2", "skirt_loops": "0", "minimum_sparse_infill_area": "10", - "internal_solid_infill_line_width": "0.42", + "internal_solid_infill_line_width": "0.45", "spiral_mode": "0", "standby_temperature_delta": "-5", "enable_support": "0", @@ -104,7 +104,7 @@ "role_based_wipe_speed" : "0", "wipe_speed": "200", "prime_tower_width": "60", - "xy_hole_compensation": "0", + "xy_hole_compensation": "0.025", "xy_contour_compensation": "0", "default_jerk": "7", "outer_wall_jerk": "7", diff --git a/resources/profiles/Custom.json b/resources/profiles/Custom.json index ebd4f0c118..8a0f2a5c86 100644 --- a/resources/profiles/Custom.json +++ b/resources/profiles/Custom.json @@ -1,6 +1,6 @@ { "name": "Custom Printer", - "version": "02.01.00.00", + "version": "02.01.00.01", "force_update": "0", "description": "My configurations", "machine_model_list": [ @@ -46,6 +46,10 @@ "name": "0.15mm Optimal @MyKlipper", "sub_path": "process/0.15mm Optimal @MyKlipper.json" }, + { + "name": "0.16mm Optimal @MyKlipper", + "sub_path": "process/0.16mm Optimal @MyKlipper.json" + }, { "name": "0.20mm Standard @MyKlipper", "sub_path": "process/0.20mm Standard @MyKlipper.json" @@ -58,6 +62,18 @@ "name": "0.28mm Extra Draft @MyKlipper", "sub_path": "process/0.28mm Extra Draft @MyKlipper.json" }, + { + "name": "0.32mm Extra Draft @MyKlipper", + "sub_path": "process/0.32mm Extra Draft @MyKlipper.json" + }, + { + "name": "0.40mm Extra Draft @MyKlipper", + "sub_path": "process/0.40mm Extra Draft @MyKlipper.json" + }, + { + "name": "0.56mm Extra Draft @MyKlipper", + "sub_path": "process/0.56mm Extra Draft @MyKlipper.json" + }, { "name": "0.08mm Extra Fine @MyRRF", "sub_path": "process/0.08mm Extra Fine @MyRRF.json" @@ -202,6 +218,18 @@ "name": "MyKlipper 0.4 nozzle", "sub_path": "machine/MyKlipper 0.4 nozzle.json" }, + { + "name": "MyKlipper 0.2 nozzle", + "sub_path": "machine/MyKlipper 0.2 nozzle.json" + }, + { + "name": "MyKlipper 0.6 nozzle", + "sub_path": "machine/MyKlipper 0.6 nozzle.json" + }, + { + "name": "MyKlipper 0.8 nozzle", + "sub_path": "machine/MyKlipper 0.8 nozzle.json" + }, { "name": "MyMarlin 0.4 nozzle", "sub_path": "machine/MyMarlin 0.4 nozzle.json" diff --git a/resources/profiles/Custom/filament/My Generic ABS.json b/resources/profiles/Custom/filament/My Generic ABS.json index b7b879dc05..14fe0490e5 100644 --- a/resources/profiles/Custom/filament/My Generic ABS.json +++ b/resources/profiles/Custom/filament/My Generic ABS.json @@ -13,8 +13,11 @@ "12" ], "compatible_printers": [ - "MyKlipper 0.4 nozzle", - "MyMarlin 0.4 nozzle", - "MyRRF 0.4 nozzle" + "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 index cbed120fc3..ca6539c115 100644 --- a/resources/profiles/Custom/filament/My Generic ASA.json +++ b/resources/profiles/Custom/filament/My Generic ASA.json @@ -13,8 +13,11 @@ "12" ], "compatible_printers": [ - "MyKlipper 0.4 nozzle", - "MyMarlin 0.4 nozzle", - "MyRRF 0.4 nozzle" + "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.json b/resources/profiles/Custom/filament/My Generic PA-CF.json index d850d084ec..60efac620c 100644 --- a/resources/profiles/Custom/filament/My Generic PA-CF.json +++ b/resources/profiles/Custom/filament/My Generic PA-CF.json @@ -19,8 +19,11 @@ "8" ], "compatible_printers": [ - "MyKlipper 0.4 nozzle", - "MyMarlin 0.4 nozzle", - "MyRRF 0.4 nozzle" + "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 index 8124b0d546..2e284b6d37 100644 --- a/resources/profiles/Custom/filament/My Generic PA.json +++ b/resources/profiles/Custom/filament/My Generic PA.json @@ -16,8 +16,11 @@ "12" ], "compatible_printers": [ - "MyKlipper 0.4 nozzle", - "MyMarlin 0.4 nozzle", - "MyRRF 0.4 nozzle" + "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 index 019b5e5ab6..4738b42e18 100644 --- a/resources/profiles/Custom/filament/My Generic PC.json +++ b/resources/profiles/Custom/filament/My Generic PC.json @@ -12,9 +12,12 @@ "filament_flow_ratio": [ "0.94" ], -"compatible_printers": [ - "MyKlipper 0.4 nozzle", - "MyMarlin 0.4 nozzle", - "MyRRF 0.4 nozzle" + "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.json b/resources/profiles/Custom/filament/My Generic PETG.json index cfbd41b29e..f640aea59e 100644 --- a/resources/profiles/Custom/filament/My Generic PETG.json +++ b/resources/profiles/Custom/filament/My Generic PETG.json @@ -43,8 +43,11 @@ "; filament start gcode\n" ], "compatible_printers": [ - "MyKlipper 0.4 nozzle", - "MyMarlin 0.4 nozzle", - "MyRRF 0.4 nozzle" + "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 index fc45a9903e..b0ed43b93c 100644 --- a/resources/profiles/Custom/filament/My Generic PLA-CF.json +++ b/resources/profiles/Custom/filament/My Generic PLA-CF.json @@ -18,9 +18,12 @@ "slow_down_layer_time": [ "7" ], -"compatible_printers": [ - "MyKlipper 0.4 nozzle", - "MyMarlin 0.4 nozzle", - "MyRRF 0.4 nozzle" + "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 index b3dab02002..54dc3dc779 100644 --- a/resources/profiles/Custom/filament/My Generic PLA.json +++ b/resources/profiles/Custom/filament/My Generic PLA.json @@ -16,8 +16,11 @@ "8" ], "compatible_printers": [ - "MyKlipper 0.4 nozzle", - "MyMarlin 0.4 nozzle", - "MyRRF 0.4 nozzle" + "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.json b/resources/profiles/Custom/filament/My Generic PVA.json index 7631b30844..ba874665cb 100644 --- a/resources/profiles/Custom/filament/My Generic PVA.json +++ b/resources/profiles/Custom/filament/My Generic PVA.json @@ -19,8 +19,11 @@ "10" ], "compatible_printers": [ - "MyKlipper 0.4 nozzle", - "MyMarlin 0.4 nozzle", - "MyRRF 0.4 nozzle" + "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 index cfa4bd617d..359d3da7a7 100644 --- a/resources/profiles/Custom/filament/My Generic TPU.json +++ b/resources/profiles/Custom/filament/My Generic TPU.json @@ -10,8 +10,11 @@ "3.2" ], "compatible_printers": [ - "MyKlipper 0.4 nozzle", - "MyMarlin 0.4 nozzle", - "MyRRF 0.4 nozzle" + "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/machine/MyKlipper 0.2 nozzle.json b/resources/profiles/Custom/machine/MyKlipper 0.2 nozzle.json new file mode 100644 index 0000000000..1ec29c6465 --- /dev/null +++ b/resources/profiles/Custom/machine/MyKlipper 0.2 nozzle.json @@ -0,0 +1,26 @@ +{ + "type": "machine", + "setting_id": "GM002", + "name": "MyKlipper 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_klipper_common", + "printer_model": "Generic Klipper Printer", + "nozzle_diameter": [ + "0.2" + ], + "max_layer_height": [ + "0.16" + ], + "min_layer_height": [ + "0.04" + ], + "printer_variant": "0.2", + "printable_area": [ + "0x0", + "250x0", + "250x250", + "0x250" + ], + "printable_height": "250" +} \ No newline at end of file diff --git a/resources/profiles/Custom/machine/MyKlipper 0.4 nozzle.json b/resources/profiles/Custom/machine/MyKlipper 0.4 nozzle.json index 0bf7f728c7..c2de0ec76e 100644 --- a/resources/profiles/Custom/machine/MyKlipper 0.4 nozzle.json +++ b/resources/profiles/Custom/machine/MyKlipper 0.4 nozzle.json @@ -1,19 +1,20 @@ { - "type": "machine", - "setting_id": "GM001", - "name": "MyKlipper 0.4 nozzle", - "from": "system", - "instantiation": "true", - "inherits": "fdm_klipper_common", - "printer_model": "Generic Klipper Printer", - "nozzle_diameter": [ - "0.4" - ], - "printable_area": [ - "0x0", - "250x0", - "250x250", - "0x250" - ], - "printable_height": "250" -} + "type": "machine", + "setting_id": "GM001", + "name": "MyKlipper 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_klipper_common", + "printer_model": "Generic Klipper Printer", + "nozzle_diameter": [ + "0.4" + ], + "printer_variant": "0.4", + "printable_area": [ + "0x0", + "250x0", + "250x250", + "0x250" + ], + "printable_height": "250" +} \ No newline at end of file diff --git a/resources/profiles/Custom/machine/MyKlipper 0.6 nozzle.json b/resources/profiles/Custom/machine/MyKlipper 0.6 nozzle.json new file mode 100644 index 0000000000..9240467b89 --- /dev/null +++ b/resources/profiles/Custom/machine/MyKlipper 0.6 nozzle.json @@ -0,0 +1,26 @@ +{ + "type": "machine", + "setting_id": "GM003", + "name": "MyKlipper 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_klipper_common", + "printer_model": "Generic Klipper Printer", + "nozzle_diameter": [ + "0.6" + ], + "max_layer_height": [ + "0.4" + ], + "min_layer_height": [ + "0.12" + ], + "printer_variant": "0.6", + "printable_area": [ + "0x0", + "250x0", + "250x250", + "0x250" + ], + "printable_height": "250" +} \ No newline at end of file diff --git a/resources/profiles/Custom/machine/MyKlipper 0.8 nozzle.json b/resources/profiles/Custom/machine/MyKlipper 0.8 nozzle.json new file mode 100644 index 0000000000..be658b0bf9 --- /dev/null +++ b/resources/profiles/Custom/machine/MyKlipper 0.8 nozzle.json @@ -0,0 +1,26 @@ +{ + "type": "machine", + "setting_id": "GM004", + "name": "MyKlipper 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_klipper_common", + "printer_model": "Generic Klipper Printer", + "nozzle_diameter": [ + "0.8" + ], + "max_layer_height": [ + "0.6" + ], + "min_layer_height": [ + "0.2" + ], + "printer_variant": "0.8", + "printable_area": [ + "0x0", + "250x0", + "250x250", + "0x250" + ], + "printable_height": "250" +} \ No newline at end of file diff --git a/resources/profiles/Custom/machine/MyKlipper.json b/resources/profiles/Custom/machine/MyKlipper.json index 9375a376a0..8c4b9f56e9 100644 --- a/resources/profiles/Custom/machine/MyKlipper.json +++ b/resources/profiles/Custom/machine/MyKlipper.json @@ -2,7 +2,7 @@ "type": "machine_model", "name": "Generic Klipper Printer", "model_id": "my_klipper_01", - "nozzle_diameter": "0.4", + "nozzle_diameter": "0.4;0.2;0.6;0.8", "machine_tech": "FFF", "family": "MyPrinter", "bed_model": "", diff --git a/resources/profiles/Custom/machine/MyMarlin 0.4 nozzle.json b/resources/profiles/Custom/machine/MyMarlin 0.4 nozzle.json index 422bc8854e..25581836f2 100644 --- a/resources/profiles/Custom/machine/MyMarlin 0.4 nozzle.json +++ b/resources/profiles/Custom/machine/MyMarlin 0.4 nozzle.json @@ -1,44 +1,44 @@ { - "type": "machine", - "setting_id": "GM001", - "name": "MyMarlin 0.4 nozzle", - "from": "system", - "instantiation": "true", - "inherits": "fdm_machine_common", - "printer_model": "Generic Marlin Printer", - "gcode_flavor": "marlin", - "machine_end_gcode": "G1 E-1.0 F2100 ; retract\nG92 E0.0\nG1{if max_layer_z < max_print_height} Z{z_offset+min(max_layer_z+30, max_print_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 S[machine_max_acceleration_extruding] T[machine_max_acceleration_retracting]\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nG28 ; home all\nG1 Y1.0 Z0.3 F1000 ; move print head up\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; 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", - "max_layer_height": [ - "0.32" - ], - "retraction_length": [ - "0.9" - ], - "retraction_minimum_travel": [ - "1" - ], - "retraction_speed": [ - "45" - ], - "deretraction_speed": [ - "35" - ], - "version": "1.5.1.2", - "wipe": [ - "0" - ], - "z_hop": [ - "0.4" - ], - "nozzle_diameter": [ - "0.4" - ], - "printable_area": [ - "0x0", - "250x0", - "250x250", - "0x250" - ], - "printable_height": "250" + "type": "machine", + "setting_id": "GM001", + "name": "MyMarlin 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_machine_common", + "printer_model": "Generic Marlin Printer", + "gcode_flavor": "marlin", + "machine_end_gcode": "G1 E-1.0 F2100 ; retract\nG92 E0.0\nG1{if max_layer_z < max_print_height} Z{z_offset+min(max_layer_z+30, max_print_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 S[machine_max_acceleration_extruding] T[machine_max_acceleration_retracting]\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nG28 ; home all\nG1 Y1.0 Z0.3 F1000 ; move print head up\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; 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", + "max_layer_height": [ + "0.32" + ], + "retraction_length": [ + "0.9" + ], + "retraction_minimum_travel": [ + "1" + ], + "retraction_speed": [ + "45" + ], + "deretraction_speed": [ + "35" + ], + "version": "1.5.1.2", + "wipe": [ + "0" + ], + "z_hop": [ + "0.4" + ], + "nozzle_diameter": [ + "0.4" + ], + "printable_area": [ + "0x0", + "250x0", + "250x250", + "0x250" + ], + "printable_height": "250" } \ No newline at end of file diff --git a/resources/profiles/Custom/process/0.08mm Extra Fine @MyKlipper.json b/resources/profiles/Custom/process/0.08mm Extra Fine @MyKlipper.json index 88b1f4bba1..b9f1557263 100644 --- a/resources/profiles/Custom/process/0.08mm Extra Fine @MyKlipper.json +++ b/resources/profiles/Custom/process/0.08mm Extra Fine @MyKlipper.json @@ -7,5 +7,13 @@ "inherits": "fdm_process_klipper_common", "layer_height": "0.08", "bottom_shell_layers": "7", - "top_shell_layers": "9" -} + "top_shell_layers": "9", + "support_top_z_distance": "0.08", + "support_bottom_z_distance": "0.08", + "initial_layer_print_height": "0.2", + "compatible_printers": [ + "MyKlipper 0.4 nozzle", + "MyKlipper 0.2 nozzle", + "MyKlipper 0.6 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Custom/process/0.12mm Fine @MyKlipper.json b/resources/profiles/Custom/process/0.12mm Fine @MyKlipper.json index 6d58049123..575bd40d4f 100644 --- a/resources/profiles/Custom/process/0.12mm Fine @MyKlipper.json +++ b/resources/profiles/Custom/process/0.12mm Fine @MyKlipper.json @@ -7,5 +7,13 @@ "inherits": "fdm_process_klipper_common", "layer_height": "0.12", "bottom_shell_layers": "5", - "top_shell_layers": "6" -} + "top_shell_layers": "6", + "support_top_z_distance": "0.08", + "support_bottom_z_distance": "0.08", + "initial_layer_print_height": "0.2", + "compatible_printers": [ + "MyKlipper 0.4 nozzle", + "MyKlipper 0.2 nozzle", + "MyKlipper 0.6 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Custom/process/0.15mm Optimal @MyKlipper.json b/resources/profiles/Custom/process/0.15mm Optimal @MyKlipper.json index c74ce50b12..518ed7cba2 100644 --- a/resources/profiles/Custom/process/0.15mm Optimal @MyKlipper.json +++ b/resources/profiles/Custom/process/0.15mm Optimal @MyKlipper.json @@ -7,5 +7,14 @@ "inherits": "fdm_process_klipper_common", "bottom_shell_layers": "4", "top_shell_layers": "5", - "layer_height": "0.15" -} + "layer_height": "0.15", + "support_top_z_distance": "0.15", + "support_bottom_z_distance": "0.15", + "initial_layer_print_height": "0.2", + "compatible_printers": [ + "MyKlipper 0.4 nozzle", + "MyKlipper 0.2 nozzle", + "MyKlipper 0.6 nozzle", + "MyKlipper 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Custom/process/0.16mm Optimal @MyKlipper.json b/resources/profiles/Custom/process/0.16mm Optimal @MyKlipper.json new file mode 100644 index 0000000000..45df9dad70 --- /dev/null +++ b/resources/profiles/Custom/process/0.16mm Optimal @MyKlipper.json @@ -0,0 +1,20 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.16mm Optimal @MyKlipper", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_klipper_common", + "bottom_shell_layers": "4", + "top_shell_layers": "5", + "support_top_z_distance": "0.16", + "support_bottom_z_distance": "0.16", + "layer_height": "0.16", + "initial_layer_print_height": "0.2", + "compatible_printers": [ + "MyKlipper 0.4 nozzle", + "MyKlipper 0.2 nozzle", + "MyKlipper 0.6 nozzle", + "MyKlipper 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Custom/process/0.20mm Standard @MyKlipper.json b/resources/profiles/Custom/process/0.20mm Standard @MyKlipper.json index 271b64a1f2..d38acd8fa0 100644 --- a/resources/profiles/Custom/process/0.20mm Standard @MyKlipper.json +++ b/resources/profiles/Custom/process/0.20mm Standard @MyKlipper.json @@ -6,6 +6,9 @@ "inherits": "fdm_process_klipper_common", "instantiation": "true", "layer_height": "0.2", - "bottom_shell_layers": "3", - "top_shell_layers": "4" + "compatible_printers": [ + "MyKlipper 0.4 nozzle", + "MyKlipper 0.6 nozzle", + "MyKlipper 0.8 nozzle" + ] } diff --git a/resources/profiles/Custom/process/0.24mm Draft @MyKlipper.json b/resources/profiles/Custom/process/0.24mm Draft @MyKlipper.json index 510221a0f5..30a520ba46 100644 --- a/resources/profiles/Custom/process/0.24mm Draft @MyKlipper.json +++ b/resources/profiles/Custom/process/0.24mm Draft @MyKlipper.json @@ -5,8 +5,13 @@ "from": "system", "instantiation": "true", "inherits": "fdm_process_klipper_common", + "support_top_z_distance": "0.2", + "support_bottom_z_distance": "0.2", "layer_height": "0.24", - "top_surface_line_width": "0.45", - "bottom_shell_layers": "3", - "top_shell_layers": "4" -} + "initial_layer_print_height": "0.2", + "compatible_printers": [ + "MyKlipper 0.4 nozzle", + "MyKlipper 0.6 nozzle", + "MyKlipper 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Custom/process/0.28mm Extra Draft @MyKlipper.json b/resources/profiles/Custom/process/0.28mm Extra Draft @MyKlipper.json index 7a1b4faff1..a2ff46c4d1 100644 --- a/resources/profiles/Custom/process/0.28mm Extra Draft @MyKlipper.json +++ b/resources/profiles/Custom/process/0.28mm Extra Draft @MyKlipper.json @@ -6,7 +6,10 @@ "instantiation": "true", "inherits": "fdm_process_klipper_common", "layer_height": "0.28", - "top_surface_line_width": "0.45", - "bottom_shell_layers": "3", - "top_shell_layers": "4" -} + "initial_layer_print_height": "0.2", + "compatible_printers": [ + "MyKlipper 0.4 nozzle", + "MyKlipper 0.6 nozzle", + "MyKlipper 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Custom/process/0.32mm Extra Draft @MyKlipper.json b/resources/profiles/Custom/process/0.32mm Extra Draft @MyKlipper.json new file mode 100644 index 0000000000..a3da4a7fbd --- /dev/null +++ b/resources/profiles/Custom/process/0.32mm Extra Draft @MyKlipper.json @@ -0,0 +1,17 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.32mm Standard @MyKlipper", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_klipper_common", + "support_top_z_distance": "0.24", + "support_bottom_z_distance": "0.24", + "layer_height": "0.32", + "initial_layer_print_height": "0.2", + "compatible_printers": [ + "MyKlipper 0.4 nozzle", + "MyKlipper 0.6 nozzle", + "MyKlipper 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Custom/process/0.40mm Extra Draft @MyKlipper.json b/resources/profiles/Custom/process/0.40mm Extra Draft @MyKlipper.json new file mode 100644 index 0000000000..e5f2093074 --- /dev/null +++ b/resources/profiles/Custom/process/0.40mm Extra Draft @MyKlipper.json @@ -0,0 +1,16 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.40mm Standard @MyKlipper", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_klipper_common", + "support_top_z_distance": "0.24", + "support_bottom_z_distance": "0.24", + "layer_height": "0.40", + "initial_layer_print_height": "0.2", + "compatible_printers": [ + "MyKlipper 0.6 nozzle", + "MyKlipper 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Custom/process/0.56mm Extra Draft @MyKlipper.json b/resources/profiles/Custom/process/0.56mm Extra Draft @MyKlipper.json new file mode 100644 index 0000000000..d8e6e21cf1 --- /dev/null +++ b/resources/profiles/Custom/process/0.56mm Extra Draft @MyKlipper.json @@ -0,0 +1,15 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.56mm Standard @MyKlipper", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_klipper_common", + "support_top_z_distance": "0.24", + "support_bottom_z_distance": "0.24", + "layer_height": "0.56", + "initial_layer_print_height": "0.2", + "compatible_printers": [ + "MyKlipper 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Custom/process/fdm_process_common.json b/resources/profiles/Custom/process/fdm_process_common.json index 1da14b4d91..cfb78ab95a 100644 --- a/resources/profiles/Custom/process/fdm_process_common.json +++ b/resources/profiles/Custom/process/fdm_process_common.json @@ -5,66 +5,104 @@ "instantiation": "false", "adaptive_layer_height": "0", "reduce_crossing_wall": "0", - "bridge_flow": "0.95", - "bridge_speed": "25", + "max_travel_detour_distance": "0", + "bottom_surface_pattern": "monotonic", + "bottom_shell_thickness": "0", + "bridge_speed": "50", "brim_width": "5", + "brim_object_gap": "0.1", "compatible_printers": [], + "compatible_printers_condition": "", "print_sequence": "by layer", - "default_acceleration": "10000", + "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", - "elefant_foot_compensation": "0.1", - "outer_wall_line_width": "0.4", - "outer_wall_speed": "120", - "line_width": "0.45", + "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": "15%", "sparse_infill_pattern": "crosshatch", - "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": "25%", - "sparse_infill_speed": "50", "interface_shells": "0", - "detect_overhang_wall": "0", - "reduce_infill_retraction": "0", - "filename_format": "{input_filename_base}.gcode", + "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]}_{printer_model}_{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": "110%", + "inner_wall_line_width": "110%", + "outer_wall_line_width": "100%", + "top_surface_line_width": "93.75%", + "sparse_infill_line_width": "110%", + "initial_layer_line_width": "120%", + "internal_solid_infill_line_width": "120%", + "support_line_width": "96%", "wall_loops": "3", - "inner_wall_line_width": "0.45", - "inner_wall_speed": "40", "print_settings_id": "", "raft_layers": "0", - "seam_position": "nearest", + "seam_position": "aligned", "skirt_distance": "2", - "skirt_height": "2", - "minimum_sparse_infill_area": "0", - "internal_solid_infill_line_width": "0.45", - "internal_solid_infill_speed": "40", + "skirt_height": "3", + "min_skirt_length": "4", + "skirt_loops": "0", + "minimum_sparse_infill_area": "15", "spiral_mode": "0", "standby_temperature_delta": "-5", "enable_support": "0", - "support_filament": "0", - "support_line_width": "0.42", - "support_interface_filament": "0", + "resolution": "0.012", + "support_type": "normal(auto)", "support_on_build_plate_only": "0", - "support_top_z_distance": "0.15", + "support_top_z_distance": "0.2", + "support_bottom_z_distance": "0.2", + "support_filament": "0", "support_interface_loop_pattern": "0", + "support_interface_filament": "0", "support_interface_top_layers": "2", - "support_interface_spacing": "0", + "support_interface_bottom_layers": "2", + "support_interface_spacing": "0.5", "support_interface_speed": "80", - "support_base_pattern": "rectilinear", - "support_base_pattern_spacing": "2", - "support_speed": "40", + "support_base_pattern": "default", + "support_base_pattern_spacing": "2.5", + "support_speed": "150", "support_threshold_angle": "30", - "support_object_xy_distance": "0.5", + "support_object_xy_distance": "0.35", + "tree_support_branch_angle": "30", + "tree_support_wall_count": "0", + "tree_support_with_infill": "0", "detect_thin_wall": "0", - "top_surface_line_width": "0.4", - "top_surface_speed": "30", - "travel_speed": "400", + "top_surface_pattern": "monotonicline", + "top_shell_thickness": "0.8", "enable_prime_tower": "0", + "wipe_tower_no_sparse_layers": "0", "prime_tower_width": "60", "xy_hole_compensation": "0", - "xy_contour_compensation": "0" + "xy_contour_compensation": "0", + "layer_height": "0.2", + "bottom_shell_layers": "3", + "top_shell_layers": "4", + "bridge_flow": "1", + "initial_layer_speed": "45", + "initial_layer_infill_speed": "45", + "outer_wall_speed": "45", + "inner_wall_speed": "80", + "sparse_infill_speed": "150", + "internal_solid_infill_speed": "150", + "top_surface_speed": "50", + "gap_infill_speed": "30", + "travel_speed": "200" } diff --git a/resources/profiles/Custom/process/fdm_process_klipper_common.json b/resources/profiles/Custom/process/fdm_process_klipper_common.json index 5634decdd6..cf4a288f17 100644 --- a/resources/profiles/Custom/process/fdm_process_klipper_common.json +++ b/resources/profiles/Custom/process/fdm_process_klipper_common.json @@ -4,89 +4,12 @@ "from": "system", "instantiation": "false", "inherits": "fdm_process_common", - "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": "0.95", - "bridge_speed": "50", - "brim_width": "5", - "brim_object_gap": "0.1", - "compatible_printers_condition": "", - "print_sequence": "by layer", "default_acceleration": "5000", "top_surface_acceleration": "3000", "travel_acceleration": "7000", "inner_wall_acceleration": "5000", "outer_wall_acceleration": "3000", - "bridge_no_support": "0", - "draft_shield": "disabled", - "elefant_foot_compensation": "0", - "outer_wall_line_width": "0.4", - "wall_infill_order": "inner wall/outer wall/infill", - "line_width": "0.4", - "infill_direction": "45", - "sparse_infill_density": "15%", - "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "500", - "initial_layer_line_width": "0.5", - "initial_layer_print_height": "0.2", - "infill_combination": "0", - "sparse_infill_line_width": "0.45", - "infill_wall_overlap": "25%", - "interface_shells": "0", - "ironing_flow": "10%", - "ironing_spacing": "0.15", - "ironing_speed": "30", - "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", - "inner_wall_line_width": "0.45", - "wall_loops": "3", - "print_settings_id": "", - "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.4", - "spiral_mode": "0", - "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_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_interface_speed": "80", - "support_base_pattern": "rectilinear", - "support_base_pattern_spacing": "2.5", - "support_speed": "150", - "support_threshold_angle": "30", - "support_object_xy_distance": "0.35", - "tree_support_branch_angle": "45", - "tree_support_wall_count": "0", - "detect_thin_wall": "0", - "top_surface_pattern": "monotonicline", - "top_surface_line_width": "0.4", - "top_shell_layers": "3", - "top_shell_thickness": "0.8", "initial_layer_speed": "50", "initial_layer_infill_speed": "105", "outer_wall_speed": "120", @@ -96,14 +19,5 @@ "gap_infill_speed": "100", "sparse_infill_speed": "200", "travel_speed": "350", - "enable_prime_tower": "0", - "wipe_tower_no_sparse_layers": "0", - "prime_tower_width": "60", - "xy_hole_compensation": "0", - "xy_contour_compensation": "0", - "enable_arc_fitting": "0", - "compatible_printers": [ - "MyKlipper 0.4 nozzle" - ], "exclude_object": "1" -} +} \ No newline at end of file diff --git a/resources/profiles/Dremel.json b/resources/profiles/Dremel.json index 4a7e137f59..76157f72cb 100644 --- a/resources/profiles/Dremel.json +++ b/resources/profiles/Dremel.json @@ -1,6 +1,6 @@ { "name": "Dremel", - "version": "02.00.00.00", + "version": "02.01.00.01", "force_update": "0", "description": "Dremel configurations", "machine_model_list": [ diff --git a/resources/profiles/Dremel/dremel_3d45.stl b/resources/profiles/Dremel/dremel_3d45.stl new file mode 100644 index 0000000000..00f04d40c1 Binary files /dev/null and b/resources/profiles/Dremel/dremel_3d45.stl differ diff --git a/resources/profiles/Dremel/filament/Dremel Generic PLA @3D45 all.json b/resources/profiles/Dremel/filament/Dremel Generic PLA @3D45 all.json index 304a59d97e..483ccb09c4 100644 --- a/resources/profiles/Dremel/filament/Dremel Generic PLA @3D45 all.json +++ b/resources/profiles/Dremel/filament/Dremel Generic PLA @3D45 all.json @@ -5,28 +5,26 @@ "from": "system", "instantiation": "true", "inherits": "Dremel Generic PLA", - "filament_max_volumetric_speed": ["9"], - "slow_down_layer_time": ["10"], + "slow_down_min_speed": "10", + "close_fan_the_first_x_layers": "3", + "filament_loading_speed_start": "3", + "filament_loading_speed": "28", + "filament_unloading_speed_start": "100", + "filament_unloading_speed": "90", + "filament_cooling_moves": "4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_final_speed": "3.4", "filament_retraction_length": [ "3" ], "filament_retraction_speed": [ "60" ], - "hot_plate_temp_initial_layer": [ - "60" - ], - "hot_plate_temp": [ - "60" - ], "nozzle_temperature": [ - "225" + "200" ], "nozzle_temperature_initial_layer": [ - "225" - ], - "nozzle_temperature_range_high": [ - "230" + "200" ], "compatible_printers": [ "Dremel 3D45 0.4 nozzle" diff --git a/resources/profiles/Dremel/machine/Dremel 3D45 0.4 nozzle.json b/resources/profiles/Dremel/machine/Dremel 3D45 0.4 nozzle.json index ff11f45776..d02bd15274 100644 --- a/resources/profiles/Dremel/machine/Dremel 3D45 0.4 nozzle.json +++ b/resources/profiles/Dremel/machine/Dremel 3D45 0.4 nozzle.json @@ -7,7 +7,6 @@ "inherits": "fdm_dremel_common", "printer_model": "Dremel 3D45", "printer_variant": "0.4", - "printer_structure": "Hbot", "printer_settings_id": "Dremel", "gcode_flavor": "marlin", "default_filament_profile": [ @@ -18,10 +17,10 @@ "0.4" ], "printable_area": [ - "0x0", - "255x0", - "255x155", - "0x155" + "-127.5x-77.5", + "97.5x-77.5", + "97.5x77.5", + "-127.5x77.5" ], "printable_height": "170", "deretraction_speed": [ @@ -30,9 +29,6 @@ "emit_machine_limits_to_gcode": "1", "enable_filament_ramming": "1", "extra_loading_move": "-2", - "extruder_clearance_height_to_lid": "101", - "extruder_clearance_height_to_rod": "45", - "extruder_clearance_radius": "45", "wipe": [ "1" ], @@ -42,32 +38,25 @@ "z_hop": [ "0.5" ], - "z_hop_types": [ - "Normal Lift" - ], "machine_max_acceleration_e": [ - "6200", - "5000" + "10000", + "10000" ], "machine_max_acceleration_extruding": [ - "6200", - "20000" + "1500", + "1500" ], "machine_max_acceleration_retracting": [ - "5000", - "5000" + "1500", + "1500" ], - "machine_max_acceleration_travel": [ + "machine_max_acceleration_x": [ "9000", "9000" ], - "machine_max_acceleration_x": [ - "6200", - "20000" - ], "machine_max_acceleration_y": [ - "6200", - "20000" + "9000", + "9000" ], "machine_max_acceleration_z": [ "500", @@ -78,65 +67,51 @@ "2.5" ], "machine_max_jerk_x": [ - "12", - "12" + "10", + "10" ], "machine_max_jerk_y": [ - "12", - "12" + "10", + "10" ], "machine_max_jerk_z": [ - "2", - "2" + "0.2", + "0.2" ], "machine_max_speed_e": [ - "3000", - "100" + "120", + "120" ], "machine_max_speed_x": [ - "1000", - "1000" + "500", + "500" ], "machine_max_speed_y": [ - "1000", - "1000" + "500", + "500" ], "machine_max_speed_z": [ - "30", - "30" + "12", + "12" ], "max_layer_height": [ "0.34" ], "min_layer_height": [ - "0.05" - ], - "retract_before_wipe": [ - "70%" - ], - "retract_length_toolchange": [ - "1" - ], - "retract_lift_enforce": [ - "Top Surfaces" - ], - "retract_when_changing_layer": [ - "1" + "0.07" ], "retraction_length": [ - "3" + "1" ], "retraction_minimum_travel": [ - "5" + "2" ], "retraction_speed": [ - "60" + "40" ], - "machine_start_gcode": "G28\nG1 Z50.00 F400\nG92 E0\nG1 F200 E3\nG92 E0\nM132 X Y Z A\nM907 X100 Y100 Z50 A100", - "machine_end_gcode": "M104 S0\nM140 S0\nG92 E1\nG1 E-1 F300\nG162 Z F600\nG162 X Y F2000\nM84", - "thumbnails_format": "PNG", - "thumbnails": [ - "96x96", - "300x300" - ] + "use_relative_e_distances": "0", + "machine_start_gcode": "G28; home printer\nG1 Z50.00 F400; pruge line\nG1 F200 E3\nM132 X Y Z A; prepare printer\nM907 X100 Y100 Z50 A100", + "machine_end_gcode": "M104 S0; turn off nozzle\nM140 S0; turn off bed\nG92 E1; return print head to home\nG1 E-1 F300\nG162 Z F600\nG162 X Y F2000\nM84; disable stepper motors", + "machine_pause_gcode": "G5", + "change_filament_gcode": "G5" } diff --git a/resources/profiles/Dremel/machine/Dremel 3D45.json b/resources/profiles/Dremel/machine/Dremel 3D45.json index 0ce708033f..3ae1226c6b 100644 --- a/resources/profiles/Dremel/machine/Dremel 3D45.json +++ b/resources/profiles/Dremel/machine/Dremel 3D45.json @@ -3,7 +3,7 @@ "name": "Dremel 3D45", "nozzle_diameter": "0.4", "family": "Dremel", - "bed_model": "dremel_3d40_3d45_buildplate_model.stl", + "bed_model": "dremel_3d45.stl", "bed_texture": "", "hotend_model": "", "machine_tech": "FFF", diff --git a/resources/profiles/Elegoo.json b/resources/profiles/Elegoo.json index 734cc1262c..0df7594e00 100644 --- a/resources/profiles/Elegoo.json +++ b/resources/profiles/Elegoo.json @@ -1,6 +1,6 @@ { "name": "Elegoo", - "version": "02.01.00.00", + "version": "02.01.00.01", "force_update": "0", "description": "Elegoo configurations", "machine_model_list": [ diff --git a/resources/profiles/FLSun.json b/resources/profiles/FLSun.json index 8abcdd15ec..447478dae8 100644 --- a/resources/profiles/FLSun.json +++ b/resources/profiles/FLSun.json @@ -1,6 +1,6 @@ { "name": "FLSun", - "version": "02.01.00.00", + "version": "02.01.00.01", "force_update": "0", "description": "FLSun configurations", "machine_model_list": [ diff --git a/resources/profiles/Flashforge.json b/resources/profiles/Flashforge.json index 559bb5ed38..9a168dddad 100644 --- a/resources/profiles/Flashforge.json +++ b/resources/profiles/Flashforge.json @@ -1,7 +1,7 @@ { "name": "Flashforge", "url": "", - "version": "02.01.00.00", + "version": "02.01.00.01", "force_update": "0", "description": "Flashforge configurations", "machine_model_list": [ diff --git a/resources/profiles/Flashforge/filament/FusRock Generic NexPA-CF25.json b/resources/profiles/Flashforge/filament/FusRock Generic NexPA-CF25.json index 44df1f319c..3b5a961265 100644 --- a/resources/profiles/Flashforge/filament/FusRock Generic NexPA-CF25.json +++ b/resources/profiles/Flashforge/filament/FusRock Generic NexPA-CF25.json @@ -20,12 +20,6 @@ "1" ], "compatible_printers": [ - "Flashforge Adventurer 5M 0.4 Nozzle", - "Flashforge Adventurer 5M 0.6 Nozzle", - "Flashforge Adventurer 5M 0.8 Nozzle", - "Flashforge Adventurer 5M Pro 0.4 Nozzle", - "Flashforge Adventurer 5M Pro 0.6 Nozzle", - "Flashforge Adventurer 5M Pro 0.8 Nozzle", "Flashforge Guider 3 Ultra 0.4 Nozzle" ], "compatible_printers_condition": "", diff --git a/resources/profiles/Flashforge/filament/FusRock Generic PAHT-CF.json b/resources/profiles/Flashforge/filament/FusRock Generic PAHT-CF.json index ddcc047a4c..dc675132db 100644 --- a/resources/profiles/Flashforge/filament/FusRock Generic PAHT-CF.json +++ b/resources/profiles/Flashforge/filament/FusRock Generic PAHT-CF.json @@ -20,12 +20,6 @@ "1" ], "compatible_printers": [ - "Flashforge Adventurer 5M 0.4 Nozzle", - "Flashforge Adventurer 5M 0.6 Nozzle", - "Flashforge Adventurer 5M 0.8 Nozzle", - "Flashforge Adventurer 5M Pro 0.4 Nozzle", - "Flashforge Adventurer 5M Pro 0.6 Nozzle", - "Flashforge Adventurer 5M Pro 0.8 Nozzle", "Flashforge Guider 3 Ultra 0.4 Nozzle", "Flashforge Guider 2s 0.4 nozzle" ], diff --git a/resources/profiles/Flashforge/filament/FusRock Generic PET-CF.json b/resources/profiles/Flashforge/filament/FusRock Generic PET-CF.json index a020f3a4b4..f79beb5ff1 100644 --- a/resources/profiles/Flashforge/filament/FusRock Generic PET-CF.json +++ b/resources/profiles/Flashforge/filament/FusRock Generic PET-CF.json @@ -20,12 +20,6 @@ "1" ], "compatible_printers": [ - "Flashforge Adventurer 5M 0.4 Nozzle", - "Flashforge Adventurer 5M 0.6 Nozzle", - "Flashforge Adventurer 5M 0.8 Nozzle", - "Flashforge Adventurer 5M Pro 0.4 Nozzle", - "Flashforge Adventurer 5M Pro 0.6 Nozzle", - "Flashforge Adventurer 5M Pro 0.8 Nozzle", "Flashforge Guider 3 Ultra 0.4 Nozzle", "Flashforge Guider 2s 0.4 nozzle" ], diff --git a/resources/profiles/Flashforge/filament/FusRock Generic S-Multi.json b/resources/profiles/Flashforge/filament/FusRock Generic S-Multi.json index d63badb6f1..2fd995d4be 100644 --- a/resources/profiles/Flashforge/filament/FusRock Generic S-Multi.json +++ b/resources/profiles/Flashforge/filament/FusRock Generic S-Multi.json @@ -20,12 +20,6 @@ "1" ], "compatible_printers": [ - "Flashforge Adventurer 5M 0.4 Nozzle", - "Flashforge Adventurer 5M 0.6 Nozzle", - "Flashforge Adventurer 5M 0.8 Nozzle", - "Flashforge Adventurer 5M Pro 0.4 Nozzle", - "Flashforge Adventurer 5M Pro 0.6 Nozzle", - "Flashforge Adventurer 5M Pro 0.8 Nozzle", "Flashforge Guider 3 Ultra 0.4 Nozzle" ], "compatible_printers_condition": "", @@ -170,7 +164,7 @@ "0" ], "filament_type": [ - "PET-CF" + "S-Multi" ], "filament_unload_time": [ "0" diff --git a/resources/profiles/Flashforge/filament/FusRock Generic S-PAHT.json b/resources/profiles/Flashforge/filament/FusRock Generic S-PAHT.json index 74b7f88dd9..d2825f27fc 100644 --- a/resources/profiles/Flashforge/filament/FusRock Generic S-PAHT.json +++ b/resources/profiles/Flashforge/filament/FusRock Generic S-PAHT.json @@ -20,12 +20,6 @@ "1" ], "compatible_printers": [ - "Flashforge Adventurer 5M 0.4 Nozzle", - "Flashforge Adventurer 5M 0.6 Nozzle", - "Flashforge Adventurer 5M 0.8 Nozzle", - "Flashforge Adventurer 5M Pro 0.4 Nozzle", - "Flashforge Adventurer 5M Pro 0.6 Nozzle", - "Flashforge Adventurer 5M Pro 0.8 Nozzle", "Flashforge Guider 3 Ultra 0.4 Nozzle" ], "compatible_printers_condition": "", @@ -170,7 +164,7 @@ "0" ], "filament_type": [ - "PA-CF" + "S-PAHT" ], "filament_unload_time": [ "0" diff --git a/resources/profiles/Flashforge/filament/Polymaker Generic CoPA.json b/resources/profiles/Flashforge/filament/Polymaker Generic CoPA.json index fff9c3e72d..a7d2d2b949 100644 --- a/resources/profiles/Flashforge/filament/Polymaker Generic CoPA.json +++ b/resources/profiles/Flashforge/filament/Polymaker Generic CoPA.json @@ -20,12 +20,6 @@ "1" ], "compatible_printers": [ - "Flashforge Adventurer 5M 0.4 Nozzle", - "Flashforge Adventurer 5M 0.6 Nozzle", - "Flashforge Adventurer 5M 0.8 Nozzle", - "Flashforge Adventurer 5M Pro 0.4 Nozzle", - "Flashforge Adventurer 5M Pro 0.6 Nozzle", - "Flashforge Adventurer 5M Pro 0.8 Nozzle", "Flashforge Guider 3 Ultra 0.4 Nozzle" ], "compatible_printers_condition": "", diff --git a/resources/profiles/Flashforge/filament/Polymaker Generic S1.json b/resources/profiles/Flashforge/filament/Polymaker Generic S1.json index e6ae0afcf8..11de35b1af 100644 --- a/resources/profiles/Flashforge/filament/Polymaker Generic S1.json +++ b/resources/profiles/Flashforge/filament/Polymaker Generic S1.json @@ -20,12 +20,6 @@ "1" ], "compatible_printers": [ - "Flashforge Adventurer 5M 0.4 Nozzle", - "Flashforge Adventurer 5M 0.6 Nozzle", - "Flashforge Adventurer 5M 0.8 Nozzle", - "Flashforge Adventurer 5M Pro 0.4 Nozzle", - "Flashforge Adventurer 5M Pro 0.6 Nozzle", - "Flashforge Adventurer 5M Pro 0.8 Nozzle", "Flashforge Guider 3 Ultra 0.4 Nozzle" ], "compatible_printers_condition": "", diff --git a/resources/profiles/Flashforge/machine/fdm_adventurer5m_common.json b/resources/profiles/Flashforge/machine/fdm_adventurer5m_common.json index bf5b7ebd20..a37d2586fa 100644 --- a/resources/profiles/Flashforge/machine/fdm_adventurer5m_common.json +++ b/resources/profiles/Flashforge/machine/fdm_adventurer5m_common.json @@ -38,7 +38,7 @@ "change_filament_gcode": "", "machine_pause_gcode": "M25", "default_filament_profile": [ "Flashforge Generic PLA" ], - "machine_start_gcode": "M190 S[bed_temperature_initial_layer_single]\nM104 S[nozzle_temperature_initial_layer]\nG90\nM83\nG1 Z5 F6000\nG1 E-1.5 F800\nG1 X110 Y-110 F6000\nG1 E2 F800\nG1 Y-110 X55 Z0.25 F4800\nG1 X-55 E8 F2400\nG1 Y-109.6 F2400\nG1 X55 E5 F2400\nG1 Y-110 X55 Z0.45 F4800\nG1 X-55 E8 F2400\nG1 Y-109.6 F2400\nG1 X55 E5 F2400\nG92 E0", + "machine_start_gcode": "M190 S[bed_temperature_initial_layer_single]\nM104 S[nozzle_temperature_initial_layer]\nG90\nM83\nG1 Z5 F6000\nG1 E-0.2 F800\nG1 X110 Y-110 F6000\nG1 E2 F800\nG1 Y-110 X55 Z0.25 F4800\nG1 X-55 E8 F2400\nG1 Y-109.6 F2400\nG1 X55 E5 F2400\nG1 Y-110 X55 Z0.45 F4800\nG1 X-55 E8 F2400\nG1 Y-109.6 F2400\nG1 X55 E5 F2400\nG92 E0", "machine_end_gcode": "G1 E-3 F3600\nG0 X50 Y50 F30000\nM104 S0 ; turn off temperature", "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]", "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", diff --git a/resources/profiles/FlyingBear.json b/resources/profiles/FlyingBear.json index 9854e2cee0..e85dff576e 100644 --- a/resources/profiles/FlyingBear.json +++ b/resources/profiles/FlyingBear.json @@ -1,6 +1,6 @@ { "name": "FlyingBear", - "version": "02.01.00.00", + "version": "02.01.00.01", "force_update": "1", "description": "FlyingBear configurations", "machine_model_list": [ diff --git a/resources/profiles/FlyingBear/machine/S1/FlyingBear S1 0.4 nozzle.json b/resources/profiles/FlyingBear/machine/S1/FlyingBear S1 0.4 nozzle.json index 6618353130..7ac0390672 100644 --- a/resources/profiles/FlyingBear/machine/S1/FlyingBear S1 0.4 nozzle.json +++ b/resources/profiles/FlyingBear/machine/S1/FlyingBear S1 0.4 nozzle.json @@ -115,7 +115,7 @@ "0" ], "machine_pause_gcode": "PAUSE", - "machine_start_gcode": ";v2.9-20240311;\n;wiping nozzle start\nM106 P3 S0\nclean_nozzle_position\n;wiping nozzle end\n;*************preheat nozzle and hotbed for Z_TILT_ADJUST*************\nM140 S[bed_temperature_initial_layer_single]\nM104 S130\nG1 X110 Y110 F6000 \nG4 P200\nprobe\nSET_KINEMATIC_POSITION Z=0 ;Z homing\nZ_TILT_ADJUST \n;*************Z_TILT_ADJUST end*************\nM140 S[bed_temperature_initial_layer_single] ;heat hotbed temp set by user\nG1 X5 Y5 F6000 \nG28 \nG1 X{first_layer_print_min[0]-1.5} Y{min(first_layer_print_min[0] + 60,print_bed_max[0])} F6000 \nG1 Z0.2 F600\nM104 S[nozzle_temperature_initial_layer] ;heat nozzle temp set by user\nM106 S100 ;close head_nozzle fan\nG4 P3000\nM106 S255 ;close head_nozzle fan\nG4 P3000\nM106 S100 ;close head_nozzle fan\n;*************PRINT START*************\nM109 S[nozzle_temperature_initial_layer] ;heat nozzle temp set by user and wait \nM190 S[bed_temperature_initial_layer_single];heat bed temp set by user and wait \nM106 S0 ;close head_nozzle fan\nBED_MESH_CLEAR \nBED_MESH_PROFILE LOAD=default # bedmesh load\nG92 E0 ;Reset Extruder\nG1 Z4.0 F200 ;Move Z Axis up\nG90 ;absolute position\n ; ; ; ; ; ; ; ; ; draw line along model\nG92 E0 ;reset extruder\nG1 E4 F300 ;extrude filament\nG1 X{first_layer_print_min[0]-1.5} Y{min(first_layer_print_min[0] + 60,print_bed_max[0])} F6000 \nG1 Z0.22 F600\nG1 X{first_layer_print_min[0]-1.5} Y{max(0, first_layer_print_min[1]-1.5)} F2000 E10\nG1 Z0.22 F600\nG1 X{min(first_layer_print_min[0] + 60,print_bed_max[0])} F1200 E12\n ; ; ; ; ; ; ; ; ;draw line along model end \nG4 P200\nG1 Z2\nG92 E0 ;Reset Extruder\nCLEAR_PAUSE\n;***********model start************\n", + "machine_start_gcode": ";v2.9.1-20240620;\n;wiping nozzle start\nM106 P3 S0\nclean_nozzle_position\n;wiping nozzle end\n;*************preheat nozzle and hotbed for Z_TILT_ADJUST*************\nM140 S[bed_temperature_initial_layer_single]\nM104 S130\nG1 X110 Y110 F6000 \nG4 P200\nprobe\nSET_KINEMATIC_POSITION Z=0 ;Z homing\nZ_TILT_ADJUST \n;*************Z_TILT_ADJUST end*************\nM140 S[bed_temperature_initial_layer_single] ;heat hotbed temp set by user\nG1 X5 Y5 F6000 \nG28 \nG1 X{first_layer_print_min[0]-1.5} Y{min(first_layer_print_min[0] + 60,print_bed_max[0])} F6000 \nG1 Z0.2 F600\nM104 S[nozzle_temperature_initial_layer] ;heat nozzle temp set by user\nM106 S100 ;close head_nozzle fan\nG4 P3000\nM106 S255 ;close head_nozzle fan\nG4 P3000\nM106 S100 ;close head_nozzle fan\n;*************PRINT START*************\nM109 S[nozzle_temperature_initial_layer] ;heat nozzle temp set by user and wait \nM190 S[bed_temperature_initial_layer_single];heat bed temp set by user and wait \nM106 S0 ;close head_nozzle fan\nBED_MESH_CLEAR \nBED_MESH_PROFILE LOAD=default # bedmesh load\nG92 E0 ;Reset Extruder\nG1 Z4.0 F200 ;Move Z Axis up\nG90 ;absolute position\n ; ; ; ; ; ; ; ; ; draw line along model\nG92 E0 ;reset extruder\nG1 E4 F300 ;extrude filament\nG1 X{first_layer_print_min[0]-1.5} Y{min(first_layer_print_min[1] + 60,print_bed_max[0])} F6000 \nG1 Z0.22 F600\nG1 X{first_layer_print_min[0]-1.5} Y{max(0, first_layer_print_min[1]-1.5)} F2000 E10\nG1 Z0.22 F600\nG1 X{min(first_layer_print_min[0] + 60,print_bed_max[0])} F1200 E12\n ; ; ; ; ; ; ; ; ;draw line along model end \nG4 P200\nG1 Z2\nG92 E0 ;Reset Extruder\nCLEAR_PAUSE\n;***********model start************\n", "machine_unload_filament_time": "0", "max_layer_height": [ "0.28" diff --git a/resources/profiles/Folgertech.json b/resources/profiles/Folgertech.json index f38f081914..b51223401a 100644 --- a/resources/profiles/Folgertech.json +++ b/resources/profiles/Folgertech.json @@ -1,6 +1,6 @@ { "name": "Folgertech", - "version": "02.01.00.00", + "version": "02.01.00.01", "force_update": "0", "description": "Folgertech configurations", "machine_model_list": [ diff --git a/resources/profiles/InfiMech.json b/resources/profiles/InfiMech.json index 08a831bedf..b6d5dd250e 100644 --- a/resources/profiles/InfiMech.json +++ b/resources/profiles/InfiMech.json @@ -1,6 +1,6 @@ { "name": "InfiMech", - "version": "02.01.00.00", + "version": "02.01.00.01", "force_update": "1", "description": "InfiMech configurations", "machine_model_list": [ diff --git a/resources/profiles/InfiMech/machine/fdm_klipper_common.json b/resources/profiles/InfiMech/machine/fdm_klipper_common.json index 8af490311d..abbdab157f 100644 --- a/resources/profiles/InfiMech/machine/fdm_klipper_common.json +++ b/resources/profiles/InfiMech/machine/fdm_klipper_common.json @@ -112,7 +112,7 @@ "0" ], "machine_pause_gcode": "PAUSE", - "machine_start_gcode": ";v2.9-20240311;\n;wiping nozzle start\nM106 P3 S0\nclean_nozzle_position\n;wiping nozzle end\n;*************preheat nozzle and hotbed for Z_TILT_ADJUST*************\nM140 S[bed_temperature_initial_layer_single]\nM104 S130\nG1 X110 Y110 F6000 \nG4 P200\nprobe\nSET_KINEMATIC_POSITION Z=0 ;Z homing\nZ_TILT_ADJUST \n;*************Z_TILT_ADJUST end*************\nM140 S[bed_temperature_initial_layer_single] ;heat hotbed temp set by user\nG1 X5 Y5 F6000 \nG28 \nG1 X{first_layer_print_min[0]-1.5} Y{min(first_layer_print_min[0] + 60,print_bed_max[0])} F6000 \nG1 Z0.2 F600\nM104 S[nozzle_temperature_initial_layer] ;heat nozzle temp set by user\nM106 S100 ;close head_nozzle fan\nG4 P3000\nM106 S255 ;close head_nozzle fan\nG4 P3000\nM106 S100 ;close head_nozzle fan\n;*************PRINT START*************\nM109 S[nozzle_temperature_initial_layer] ;heat nozzle temp set by user and wait \nM190 S[bed_temperature_initial_layer_single];heat bed temp set by user and wait \nM106 S0 ;close head_nozzle fan\nBED_MESH_CLEAR \nBED_MESH_PROFILE LOAD=default # bedmesh load\nG92 E0 ;Reset Extruder\nG1 Z4.0 F200 ;Move Z Axis up\nG90 ;absolute position\n ; ; ; ; ; ; ; ; ; draw line along model\nG92 E0 ;reset extruder\nG1 E4 F300 ;extrude filament\nG1 X{first_layer_print_min[0]-1.5} Y{min(first_layer_print_min[1] + 60,print_bed_max[0])} F6000 \nG1 Z0.22 F600\nG1 X{first_layer_print_min[0]-1.5} Y{max(0, first_layer_print_min[1]-1.5)} F2000 E10\nG1 Z0.22 F600\nG1 X{min(first_layer_print_min[0] + 60,print_bed_max[0])} F1200 E12\n ; ; ; ; ; ; ; ; ;draw line along model end \nG4 P200\nG1 Z2\nG92 E0 ;Reset Extruder\nCLEAR_PAUSE\n;***********model start************\n", + "machine_start_gcode": ";v2.9.1-20240620;\n;wiping nozzle start\nM106 P3 S0\nclean_nozzle_position\n;wiping nozzle end\n;*************preheat nozzle and hotbed for Z_TILT_ADJUST*************\nM140 S[bed_temperature_initial_layer_single]\nM104 S130\nG1 X110 Y110 F6000 \nG4 P200\nprobe\nSET_KINEMATIC_POSITION Z=0 ;Z homing\nZ_TILT_ADJUST \n;*************Z_TILT_ADJUST end*************\nM140 S[bed_temperature_initial_layer_single] ;heat hotbed temp set by user\nG1 X5 Y5 F6000 \nG28 \nG1 X{first_layer_print_min[0]-1.5} Y{min(first_layer_print_min[0] + 60,print_bed_max[0])} F6000 \nG1 Z0.2 F600\nM104 S[nozzle_temperature_initial_layer] ;heat nozzle temp set by user\nM106 S100 ;close head_nozzle fan\nG4 P3000\nM106 S255 ;close head_nozzle fan\nG4 P3000\nM106 S100 ;close head_nozzle fan\n;*************PRINT START*************\nM109 S[nozzle_temperature_initial_layer] ;heat nozzle temp set by user and wait \nM190 S[bed_temperature_initial_layer_single];heat bed temp set by user and wait \nM106 S0 ;close head_nozzle fan\nBED_MESH_CLEAR \nBED_MESH_PROFILE LOAD=default # bedmesh load\nG92 E0 ;Reset Extruder\nG1 Z4.0 F200 ;Move Z Axis up\nG90 ;absolute position\n ; ; ; ; ; ; ; ; ; draw line along model\nG92 E0 ;reset extruder\nG1 E4 F300 ;extrude filament\nG1 X{first_layer_print_min[0]-1.5} Y{min(first_layer_print_min[1] + 60,print_bed_max[0])} F6000 \nG1 Z0.22 F600\nG1 X{first_layer_print_min[0]-1.5} Y{max(0, first_layer_print_min[1]-1.5)} F2000 E10\nG1 Z0.22 F600\nG1 X{min(first_layer_print_min[0] + 60,print_bed_max[0])} F1200 E12\n ; ; ; ; ; ; ; ; ;draw line along model end \nG4 P200\nG1 Z2\nG92 E0 ;Reset Extruder\nCLEAR_PAUSE\n;***********model start************\n", "machine_unload_filament_time": "0", "max_layer_height": [ "0.28" diff --git a/resources/profiles/InfiMech/machine/fdm_machine_common.json b/resources/profiles/InfiMech/machine/fdm_machine_common.json index e4841e4747..9a8caa0aa9 100644 --- a/resources/profiles/InfiMech/machine/fdm_machine_common.json +++ b/resources/profiles/InfiMech/machine/fdm_machine_common.json @@ -112,7 +112,7 @@ "0" ], "machine_pause_gcode": "PAUSE", - "machine_start_gcode": ";v2.9-20240311;\n;wiping nozzle start\nM106 P3 S0\nclean_nozzle_position\n;wiping nozzle end\n;*************preheat nozzle and hotbed for Z_TILT_ADJUST*************\nM140 S[bed_temperature_initial_layer_single]\nM104 S130\nG1 X110 Y110 F6000 \nG4 P200\nprobe\nSET_KINEMATIC_POSITION Z=0 ;Z homing\nZ_TILT_ADJUST \n;*************Z_TILT_ADJUST end*************\nM140 S[bed_temperature_initial_layer_single] ;heat hotbed temp set by user\nG1 X5 Y5 F6000 \nG28 \nG1 X{first_layer_print_min[0]-1.5} Y{min(first_layer_print_min[0] + 60,print_bed_max[0])} F6000 \nG1 Z0.2 F600\nM104 S[nozzle_temperature_initial_layer] ;heat nozzle temp set by user\nM106 S100 ;close head_nozzle fan\nG4 P3000\nM106 S255 ;close head_nozzle fan\nG4 P3000\nM106 S100 ;close head_nozzle fan\n;*************PRINT START*************\nM109 S[nozzle_temperature_initial_layer] ;heat nozzle temp set by user and wait \nM190 S[bed_temperature_initial_layer_single];heat bed temp set by user and wait \nM106 S0 ;close head_nozzle fan\nBED_MESH_CLEAR \nBED_MESH_PROFILE LOAD=default # bedmesh load\nG92 E0 ;Reset Extruder\nG1 Z4.0 F200 ;Move Z Axis up\nG90 ;absolute position\n ; ; ; ; ; ; ; ; ; draw line along model\nG92 E0 ;reset extruder\nG1 E4 F300 ;extrude filament\nG1 X{first_layer_print_min[0]-1.5} Y{min(first_layer_print_min[0] + 60,print_bed_max[0])} F6000 \nG1 Z0.22 F600\nG1 X{first_layer_print_min[0]-1.5} Y{max(0, first_layer_print_min[1]-1.5)} F2000 E10\nG1 Z0.22 F600\nG1 X{min(first_layer_print_min[0] + 60,print_bed_max[0])} F1200 E12\n ; ; ; ; ; ; ; ; ;draw line along model end \nG4 P200\nG1 Z2\nG92 E0 ;Reset Extruder\nCLEAR_PAUSE\n;***********model start************\n", + "machine_start_gcode": ";v2.9.1-20240620;\n;wiping nozzle start\nM106 P3 S0\nclean_nozzle_position\n;wiping nozzle end\n;*************preheat nozzle and hotbed for Z_TILT_ADJUST*************\nM140 S[bed_temperature_initial_layer_single]\nM104 S130\nG1 X110 Y110 F6000 \nG4 P200\nprobe\nSET_KINEMATIC_POSITION Z=0 ;Z homing\nZ_TILT_ADJUST \n;*************Z_TILT_ADJUST end*************\nM140 S[bed_temperature_initial_layer_single] ;heat hotbed temp set by user\nG1 X5 Y5 F6000 \nG28 \nG1 X{first_layer_print_min[0]-1.5} Y{min(first_layer_print_min[0] + 60,print_bed_max[0])} F6000 \nG1 Z0.2 F600\nM104 S[nozzle_temperature_initial_layer] ;heat nozzle temp set by user\nM106 S100 ;close head_nozzle fan\nG4 P3000\nM106 S255 ;close head_nozzle fan\nG4 P3000\nM106 S100 ;close head_nozzle fan\n;*************PRINT START*************\nM109 S[nozzle_temperature_initial_layer] ;heat nozzle temp set by user and wait \nM190 S[bed_temperature_initial_layer_single];heat bed temp set by user and wait \nM106 S0 ;close head_nozzle fan\nBED_MESH_CLEAR \nBED_MESH_PROFILE LOAD=default # bedmesh load\nG92 E0 ;Reset Extruder\nG1 Z4.0 F200 ;Move Z Axis up\nG90 ;absolute position\n ; ; ; ; ; ; ; ; ; draw line along model\nG92 E0 ;reset extruder\nG1 E4 F300 ;extrude filament\nG1 X{first_layer_print_min[0]-1.5} Y{min(first_layer_print_min[1] + 60,print_bed_max[0])} F6000 \nG1 Z0.22 F600\nG1 X{first_layer_print_min[0]-1.5} Y{max(0, first_layer_print_min[1]-1.5)} F2000 E10\nG1 Z0.22 F600\nG1 X{min(first_layer_print_min[0] + 60,print_bed_max[0])} F1200 E12\n ; ; ; ; ; ; ; ; ;draw line along model end \nG4 P200\nG1 Z2\nG92 E0 ;Reset Extruder\nCLEAR_PAUSE\n;***********model start************\n", "machine_unload_filament_time": "0", "max_layer_height": [ "0.28" diff --git a/resources/profiles/Kingroon.json b/resources/profiles/Kingroon.json index 19304b1e50..17cfdcc0dc 100644 --- a/resources/profiles/Kingroon.json +++ b/resources/profiles/Kingroon.json @@ -1,7 +1,7 @@ { "name": "Kingroon", "url": "https://kingroon.com/", - "version": "02.01.00.00", + "version": "02.01.00.01", "force_update": "0", "description": "Kingroon configuration files", "machine_model_list": [ diff --git a/resources/profiles/MagicMaker.json b/resources/profiles/MagicMaker.json index 1da3457e31..581ed8488a 100644 --- a/resources/profiles/MagicMaker.json +++ b/resources/profiles/MagicMaker.json @@ -1,6 +1,6 @@ { "name": "MagicMaker", - "version": "02.00.00.00", + "version": "02.01.00.01", "force_update": "0", "description": "MagicMaker configurations", "machine_model_list": [ diff --git a/resources/profiles/OrcaArena.json b/resources/profiles/OrcaArena.json index 81fe110cbb..6dd707c6b2 100644 --- a/resources/profiles/OrcaArena.json +++ b/resources/profiles/OrcaArena.json @@ -1,7 +1,7 @@ { "name": "Orca Arena Printer", "url": "", - "version": "02.01.00.00", + "version": "02.01.00.01", "force_update": "0", "description": "Orca Arena configuration files", "machine_model_list": [ diff --git a/resources/profiles/Positron3D.json b/resources/profiles/Positron3D.json new file mode 100644 index 0000000000..76d4451394 --- /dev/null +++ b/resources/profiles/Positron3D.json @@ -0,0 +1,162 @@ +{ + "name": "Positron 3D", + "version": "02.01.00.01", + "force_update": "0", + "description": "Positron 3D Printer Profile", + "machine_model_list": [ + { + "name": "The Positron", + "sub_path": "machine/The Positron.json" + } + ], + "process_list": [ + { + "name": "fdm_process_common", + "sub_path": "process/fdm_process_common.json" + }, + { + "name": "fdm_process_the_positron_common", + "sub_path": "process/fdm_process_the_positron_common.json" + }, + { + "name": "0.08mm Extra Fine @The Positron", + "sub_path": "process/0.08mm Extra Fine @The Positron.json" + }, + { + "name": "0.12mm Fine @The Positron", + "sub_path": "process/0.12mm Fine @The Positron.json" + }, + { + "name": "0.16mm Optimal @The Positron", + "sub_path": "process/0.16mm Optimal @The Positron.json" + }, + { + "name": "0.20mm Standard @The Positron", + "sub_path": "process/0.20mm Standard @The Positron.json" + }, + { + "name": "0.24mm Draft @The Positron", + "sub_path": "process/0.24mm Draft @The Positron.json" + }, + { + "name": "0.28mm Extra Draft @The Positron", + "sub_path": "process/0.28mm Extra Draft @The Positron.json" + }, + { + "name": "0.32mm Extra Draft @The Positron", + "sub_path": "process/0.32mm Extra Draft @The Positron.json" + }, + { + "name": "0.40mm Extra Draft @The Positron", + "sub_path": "process/0.40mm Extra Draft @The Positron.json" + }, + { + "name": "0.56mm Extra Draft @The Positron", + "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" + } + ], + "machine_list": [ + { + "name": "fdm_machine_common", + "sub_path": "machine/fdm_machine_common.json" + }, + { + "name": "fdm_common_the_positron", + "sub_path": "machine/fdm_common_the_positron.json" + }, + { + "name": "The Positron 0.4 nozzle", + "sub_path": "machine/The Positron 0.4 nozzle.json" + }, + { + "name": "The Positron 0.2 nozzle", + "sub_path": "machine/The Positron 0.2 nozzle.json" + }, + { + "name": "The Positron 0.6 nozzle", + "sub_path": "machine/The Positron 0.6 nozzle.json" + }, + { + "name": "The Positron 0.8 nozzle", + "sub_path": "machine/The Positron 0.8 nozzle.json" + } + ] +} diff --git a/resources/profiles/Positron3D/The Positron_cover.png b/resources/profiles/Positron3D/The Positron_cover.png new file mode 100644 index 0000000000..3adaa531c4 Binary files /dev/null and b/resources/profiles/Positron3D/The Positron_cover.png differ diff --git a/resources/profiles/Positron3D/ThePositron_bed_model.stl b/resources/profiles/Positron3D/ThePositron_bed_model.stl new file mode 100644 index 0000000000..2d20377271 Binary files /dev/null and b/resources/profiles/Positron3D/ThePositron_bed_model.stl differ diff --git a/resources/profiles/Positron3D/ThePositron_bed_texture.svg b/resources/profiles/Positron3D/ThePositron_bed_texture.svg new file mode 100644 index 0000000000..d9ade25459 --- /dev/null +++ b/resources/profiles/Positron3D/ThePositron_bed_texture.svg @@ -0,0 +1,86 @@ + + + + + + + + + diff --git a/resources/profiles/Positron3D/filament/Positron Generic ABS.json b/resources/profiles/Positron3D/filament/Positron Generic ABS.json new file mode 100644 index 0000000000..2ec763c05a --- /dev/null +++ b/resources/profiles/Positron3D/filament/Positron Generic ABS.json @@ -0,0 +1,21 @@ +{ + "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 new file mode 100644 index 0000000000..e14571afcf --- /dev/null +++ b/resources/profiles/Positron3D/filament/Positron Generic ASA.json @@ -0,0 +1,21 @@ +{ + "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 new file mode 100644 index 0000000000..11d0865e67 --- /dev/null +++ b/resources/profiles/Positron3D/filament/Positron Generic PA-CF.json @@ -0,0 +1,27 @@ +{ + "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 new file mode 100644 index 0000000000..ebc35a463b --- /dev/null +++ b/resources/profiles/Positron3D/filament/Positron Generic PA.json @@ -0,0 +1,24 @@ +{ + "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 new file mode 100644 index 0000000000..0b7ec94316 --- /dev/null +++ b/resources/profiles/Positron3D/filament/Positron Generic PC.json @@ -0,0 +1,21 @@ +{ + "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 new file mode 100644 index 0000000000..cddfe7cd90 --- /dev/null +++ b/resources/profiles/Positron3D/filament/Positron Generic PETG.json @@ -0,0 +1,51 @@ +{ + "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 new file mode 100644 index 0000000000..24f9e37305 --- /dev/null +++ b/resources/profiles/Positron3D/filament/Positron Generic PLA-CF.json @@ -0,0 +1,27 @@ +{ + "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 new file mode 100644 index 0000000000..b03c04976a --- /dev/null +++ b/resources/profiles/Positron3D/filament/Positron Generic PLA.json @@ -0,0 +1,24 @@ +{ + "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 new file mode 100644 index 0000000000..c0b9ae4647 --- /dev/null +++ b/resources/profiles/Positron3D/filament/Positron Generic PVA.json @@ -0,0 +1,27 @@ +{ + "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 new file mode 100644 index 0000000000..d186eb9348 --- /dev/null +++ b/resources/profiles/Positron3D/filament/Positron Generic TPU.json @@ -0,0 +1,18 @@ +{ + "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 new file mode 100644 index 0000000000..b9d4eeda31 --- /dev/null +++ b/resources/profiles/Positron3D/filament/fdm_filament_abs.json @@ -0,0 +1,88 @@ +{ + "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 new file mode 100644 index 0000000000..262c561bda --- /dev/null +++ b/resources/profiles/Positron3D/filament/fdm_filament_asa.json @@ -0,0 +1,88 @@ +{ + "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 new file mode 100644 index 0000000000..9f77975119 --- /dev/null +++ b/resources/profiles/Positron3D/filament/fdm_filament_common.json @@ -0,0 +1,144 @@ +{ + "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 new file mode 100644 index 0000000000..58f53cd451 --- /dev/null +++ b/resources/profiles/Positron3D/filament/fdm_filament_pa.json @@ -0,0 +1,85 @@ +{ + "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 new file mode 100644 index 0000000000..cec8b89a38 --- /dev/null +++ b/resources/profiles/Positron3D/filament/fdm_filament_pc.json @@ -0,0 +1,88 @@ +{ + "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 new file mode 100644 index 0000000000..bb2323e9c1 --- /dev/null +++ b/resources/profiles/Positron3D/filament/fdm_filament_pet.json @@ -0,0 +1,82 @@ +{ + "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 new file mode 100644 index 0000000000..82c6772f35 --- /dev/null +++ b/resources/profiles/Positron3D/filament/fdm_filament_pla.json @@ -0,0 +1,94 @@ +{ + "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 new file mode 100644 index 0000000000..ebf25aa3ae --- /dev/null +++ b/resources/profiles/Positron3D/filament/fdm_filament_pva.json @@ -0,0 +1,100 @@ +{ + "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 new file mode 100644 index 0000000000..d00b7dbcab --- /dev/null +++ b/resources/profiles/Positron3D/filament/fdm_filament_tpu.json @@ -0,0 +1,88 @@ +{ + "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/The Positron 0.2 nozzle.json b/resources/profiles/Positron3D/machine/The Positron 0.2 nozzle.json new file mode 100644 index 0000000000..dee218f350 --- /dev/null +++ b/resources/profiles/Positron3D/machine/The Positron 0.2 nozzle.json @@ -0,0 +1,26 @@ +{ + "type": "machine", + "setting_id": "GM002", + "name": "The Positron 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_common_the_positron", + "printer_model": "The Positron", + "nozzle_diameter": [ + "0.2" + ], + "max_layer_height": [ + "0.16" + ], + "min_layer_height": [ + "0.04" + ], + "printer_variant": "0.2", + "printable_area": [ + "0x0", + "180x0", + "180x180", + "0x180" + ], + "printable_height": "165" +} \ No newline at end of file diff --git a/resources/profiles/Positron3D/machine/The Positron 0.4 nozzle.json b/resources/profiles/Positron3D/machine/The Positron 0.4 nozzle.json new file mode 100644 index 0000000000..33098367b5 --- /dev/null +++ b/resources/profiles/Positron3D/machine/The Positron 0.4 nozzle.json @@ -0,0 +1,20 @@ +{ + "type": "machine", + "setting_id": "GM001", + "name": "The Positron 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_common_the_positron", + "printer_model": "The Positron", + "nozzle_diameter": [ + "0.4" + ], + "printer_variant": "0.4", + "printable_area": [ + "0x0", + "180x0", + "180x180", + "0x180" + ], + "printable_height": "165" +} \ No newline at end of file diff --git a/resources/profiles/Positron3D/machine/The Positron 0.6 nozzle.json b/resources/profiles/Positron3D/machine/The Positron 0.6 nozzle.json new file mode 100644 index 0000000000..000acf73da --- /dev/null +++ b/resources/profiles/Positron3D/machine/The Positron 0.6 nozzle.json @@ -0,0 +1,26 @@ +{ + "type": "machine", + "setting_id": "GM003", + "name": "The Positron 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_common_the_positron", + "printer_model": "The Positron", + "nozzle_diameter": [ + "0.6" + ], + "max_layer_height": [ + "0.4" + ], + "min_layer_height": [ + "0.12" + ], + "printer_variant": "0.6", + "printable_area": [ + "0x0", + "180x0", + "180x180", + "0x180" + ], + "printable_height": "165" +} \ No newline at end of file diff --git a/resources/profiles/Positron3D/machine/The Positron 0.8 nozzle.json b/resources/profiles/Positron3D/machine/The Positron 0.8 nozzle.json new file mode 100644 index 0000000000..97d6cbd975 --- /dev/null +++ b/resources/profiles/Positron3D/machine/The Positron 0.8 nozzle.json @@ -0,0 +1,26 @@ +{ + "type": "machine", + "setting_id": "GM004", + "name": "The Positron 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_common_the_positron", + "printer_model": "The Positron", + "nozzle_diameter": [ + "0.8" + ], + "max_layer_height": [ + "0.6" + ], + "min_layer_height": [ + "0.2" + ], + "printer_variant": "0.8", + "printable_area": [ + "0x0", + "180x0", + "180x180", + "0x180" + ], + "printable_height": "165" +} \ No newline at end of file diff --git a/resources/profiles/Positron3D/machine/The Positron.json b/resources/profiles/Positron3D/machine/The Positron.json new file mode 100644 index 0000000000..9902c9b948 --- /dev/null +++ b/resources/profiles/Positron3D/machine/The Positron.json @@ -0,0 +1,12 @@ +{ + "type": "machine_model", + "name": "The Positron", + "model_id": "thepositron_1", + "nozzle_diameter": "0.4;0.2;0.6;0.8", + "machine_tech": "FFF", + "family": "ThePositron", + "bed_model": "ThePositron_bed_model.stl", + "bed_texture": "ThePositron_bed_texture.svg", + "hotend_model": "", + "default_materials": "Positron Generic ABS;Positron Generic PLA;Positron Generic PLA-CF;Positron Generic PETG;Positron Generic TPU;Positron Generic ASA;Positron Generic PC;Positron Generic PVA;Positron Generic PA;Positron Generic PA-CF" +} diff --git a/resources/profiles/Positron3D/machine/fdm_common_the_positron.json b/resources/profiles/Positron3D/machine/fdm_common_the_positron.json new file mode 100644 index 0000000000..23effbd1e0 --- /dev/null +++ b/resources/profiles/Positron3D/machine/fdm_common_the_positron.json @@ -0,0 +1,60 @@ +{ + "type": "machine", + "name": "fdm_common_the_positron", + "from": "system", + "instantiation": "false", + "inherits": "fdm_machine_common", + "gcode_flavor": "klipper", + "machine_max_acceleration_e": ["5000", "5000"], + "machine_max_acceleration_extruding": ["8000", "8000"], + "machine_max_acceleration_retracting": ["5000", "5000"], + "machine_max_acceleration_travel": ["8000", "8000"], + "machine_max_acceleration_x": ["8000", "8000"], + "machine_max_acceleration_y": ["8000", "8000"], + "machine_max_acceleration_z": ["500", "500"], + "machine_max_speed_e": ["25", "25"], + "machine_max_speed_x": ["420", "420"], + "machine_max_speed_y": ["420", "420"], + "machine_max_speed_z": ["12", "12"], + "machine_max_jerk_e": ["2.5", "2.5"], + "machine_max_jerk_x": ["12", "12"], + "machine_max_jerk_y": ["12", "12"], + "machine_max_jerk_z": ["0.2", "0.4"], + "machine_min_extruding_rate": ["0", "0"], + "machine_min_travel_rate": ["0", "0"], + "max_layer_height": ["0.32"], + "min_layer_height": ["0.08"], + "printable_height": "165", + "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.4", + "retraction_minimum_travel": ["1"], + "retract_before_wipe": ["70%"], + "retract_when_changing_layer": ["1"], + "retraction_length": ["2.9"], + "retract_length_toolchange": ["2"], + "z_hop": ["0.4"], + "retract_restart_extra": ["0"], + "retract_restart_extra_toolchange": ["0"], + "retraction_speed": ["50"], + "deretraction_speed": ["40"], + "z_hop_types": "Normal Lift", + "silent_mode": "0", + "single_extruder_multi_material": "1", + "change_filament_gcode": "", + "wipe": ["1"], + "default_filament_profile": ["Positron Generic ABS"], + "default_print_profile": "0.20mm Standard @The Positron", + "bed_exclude_area": ["0x0"], + "machine_start_gcode": "M190 S[bed_temperature_initial_layer_single]\nM109 S[nozzle_temperature_initial_layer]\nPRINT_START EXTRUDER=[nozzle_temperature_initial_layer] BED=[bed_temperature_initial_layer_single]\n", + "machine_end_gcode": "PRINT_END", + "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": "undefine", + "auxiliary_fan": "0" +} diff --git a/resources/profiles/Positron3D/machine/fdm_machine_common.json b/resources/profiles/Positron3D/machine/fdm_machine_common.json new file mode 100644 index 0000000000..bfb6b23e1a --- /dev/null +++ b/resources/profiles/Positron3D/machine/fdm_machine_common.json @@ -0,0 +1,119 @@ +{ + "type": "machine", + "name": "fdm_machine_common", + "from": "system", + "instantiation": "false", + "printer_technology": "FFF", + "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": [ + "500" + ], + "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": [ + "0.4" + ], + "machine_min_extruding_rate": [ + "0" + ], + "machine_min_travel_rate": [ + "0" + ], + "max_layer_height": [ + "0.32" + ], + "min_layer_height": [ + "0.08" + ], + "printable_height": "165", + "extruder_clearance_radius": "65", + "extruder_clearance_height_to_rod": "36", + "extruder_clearance_height_to_lid": "140", + "nozzle_diameter": [ + "0.4" + ], + "printer_settings_id": "", + "printer_variant": "0.4", + "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" + ], + "single_extruder_multi_material": "1", + "change_filament_gcode": "", + "wipe": [ + "1" + ], + "default_print_profile": "", + "machine_start_gcode": "G0 Z20 F9000\nG92 E0; G1 E-10 F1200\nG28\nM970 Q1 A10 B10 C130 K0\nM970 Q1 A10 B131 C250 K1\nM974 Q1 S1 P0\nM970 Q0 A10 B10 C130 H20 K0\nM970 Q0 A10 B131 C250 K1\nM974 Q0 S1 P0\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nG29 ;Home\nG90;\nG92 E0 ;Reset Extruder \nG1 Z2.0 F3000 ;Move Z Axis up \nG1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position\nM109 S205;\nG1 X10.1 Y200.0 Z0.28 F1500.0 E15 ;Draw the first line\nG1 X10.4 Y200.0 Z0.28 F5000.0 ;Move to side a little\nG1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line\nG92 E0 ;Reset Extruder \nG1 X110 Y110 Z2.0 F3000 ;Move Z Axis up", + "machine_end_gcode": "M400 ; wait for buffer to clear\nG92 E0 ; zero the extruder\nG1 E-4.0 F3600; retract \nG91\nG1 Z3;\nM104 S0 ; turn off hotend\nM140 S0 ; turn off bed\nM106 S0 ; turn off fan\nG90 \nG0 X110 Y200 F3600 \nprint_end", + "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": "M601" +} diff --git a/resources/profiles/Positron3D/process/0.08mm Extra Fine @The Positron.json b/resources/profiles/Positron3D/process/0.08mm Extra Fine @The Positron.json new file mode 100644 index 0000000000..e6880b84a5 --- /dev/null +++ b/resources/profiles/Positron3D/process/0.08mm Extra Fine @The Positron.json @@ -0,0 +1,19 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.08mm Extra Fine @The Positron", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_the_positron_common", + "layer_height": "0.08", + "bottom_shell_layers": "7", + "top_shell_layers": "9", + "support_top_z_distance": "0.08", + "support_bottom_z_distance": "0.08", + "initial_layer_print_height": "0.2", + "compatible_printers": [ + "The Positron 0.4 nozzle", + "The Positron 0.2 nozzle", + "The Positron 0.6 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Positron3D/process/0.12mm Fine @The Positron.json b/resources/profiles/Positron3D/process/0.12mm Fine @The Positron.json new file mode 100644 index 0000000000..4985081211 --- /dev/null +++ b/resources/profiles/Positron3D/process/0.12mm Fine @The Positron.json @@ -0,0 +1,19 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.12mm Fine @The Positron", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_the_positron_common", + "layer_height": "0.12", + "bottom_shell_layers": "5", + "top_shell_layers": "6", + "support_top_z_distance": "0.08", + "support_bottom_z_distance": "0.08", + "initial_layer_print_height": "0.2", + "compatible_printers": [ + "The Positron 0.4 nozzle", + "The Positron 0.2 nozzle", + "The Positron 0.6 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Positron3D/process/0.16mm Optimal @The Positron.json b/resources/profiles/Positron3D/process/0.16mm Optimal @The Positron.json new file mode 100644 index 0000000000..b1373b2656 --- /dev/null +++ b/resources/profiles/Positron3D/process/0.16mm Optimal @The Positron.json @@ -0,0 +1,20 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.16mm Optimal @The Positron", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_the_positron_common", + "bottom_shell_layers": "4", + "top_shell_layers": "5", + "support_top_z_distance": "0.16", + "support_bottom_z_distance": "0.16", + "layer_height": "0.16", + "initial_layer_print_height": "0.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/process/0.20mm Standard @The Positron.json b/resources/profiles/Positron3D/process/0.20mm Standard @The Positron.json new file mode 100644 index 0000000000..14612c6f98 --- /dev/null +++ b/resources/profiles/Positron3D/process/0.20mm Standard @The Positron.json @@ -0,0 +1,14 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.20mm Standard @The Positron", + "from": "system", + "inherits": "fdm_process_the_positron_common", + "instantiation": "true", + "layer_height": "0.2", + "compatible_printers": [ + "The Positron 0.4 nozzle", + "The Positron 0.6 nozzle", + "The Positron 0.8 nozzle" + ] +} diff --git a/resources/profiles/Positron3D/process/0.24mm Draft @The Positron.json b/resources/profiles/Positron3D/process/0.24mm Draft @The Positron.json new file mode 100644 index 0000000000..917b608ded --- /dev/null +++ b/resources/profiles/Positron3D/process/0.24mm Draft @The Positron.json @@ -0,0 +1,17 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.24mm Draft @The Positron", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_the_positron_common", + "support_top_z_distance": "0.2", + "support_bottom_z_distance": "0.2", + "layer_height": "0.24", + "initial_layer_print_height": "0.2", + "compatible_printers": [ + "The Positron 0.4 nozzle", + "The Positron 0.6 nozzle", + "The Positron 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Positron3D/process/0.28mm Extra Draft @The Positron.json b/resources/profiles/Positron3D/process/0.28mm Extra Draft @The Positron.json new file mode 100644 index 0000000000..6b68db3305 --- /dev/null +++ b/resources/profiles/Positron3D/process/0.28mm Extra Draft @The Positron.json @@ -0,0 +1,15 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.28mm Extra Draft @The Positron", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_the_positron_common", + "layer_height": "0.28", + "initial_layer_print_height": "0.2", + "compatible_printers": [ + "The Positron 0.4 nozzle", + "The Positron 0.6 nozzle", + "The Positron 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Positron3D/process/0.32mm Extra Draft @The Positron.json b/resources/profiles/Positron3D/process/0.32mm Extra Draft @The Positron.json new file mode 100644 index 0000000000..e8a316ef72 --- /dev/null +++ b/resources/profiles/Positron3D/process/0.32mm Extra Draft @The Positron.json @@ -0,0 +1,17 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.32mm Standard @The Positron", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_the_positron_common", + "support_top_z_distance": "0.24", + "support_bottom_z_distance": "0.24", + "layer_height": "0.32", + "initial_layer_print_height": "0.2", + "compatible_printers": [ + "The Positron 0.4 nozzle", + "The Positron 0.6 nozzle", + "The Positron 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Positron3D/process/0.40mm Extra Draft @The Positron.json b/resources/profiles/Positron3D/process/0.40mm Extra Draft @The Positron.json new file mode 100644 index 0000000000..07aac7b020 --- /dev/null +++ b/resources/profiles/Positron3D/process/0.40mm Extra Draft @The Positron.json @@ -0,0 +1,16 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.40mm Standard @The Positron", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_the_positron_common", + "support_top_z_distance": "0.24", + "support_bottom_z_distance": "0.24", + "layer_height": "0.40", + "initial_layer_print_height": "0.2", + "compatible_printers": [ + "The Positron 0.6 nozzle", + "The Positron 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Positron3D/process/0.56mm Extra Draft @The Positron.json b/resources/profiles/Positron3D/process/0.56mm Extra Draft @The Positron.json new file mode 100644 index 0000000000..8c659c650a --- /dev/null +++ b/resources/profiles/Positron3D/process/0.56mm Extra Draft @The Positron.json @@ -0,0 +1,15 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.56mm Standard @The Positron", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_the_positron_common", + "support_top_z_distance": "0.24", + "support_bottom_z_distance": "0.24", + "layer_height": "0.56", + "initial_layer_print_height": "0.2", + "compatible_printers": [ + "The Positron 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Positron3D/process/fdm_process_common.json b/resources/profiles/Positron3D/process/fdm_process_common.json new file mode 100644 index 0000000000..cfb78ab95a --- /dev/null +++ b/resources/profiles/Positron3D/process/fdm_process_common.json @@ -0,0 +1,108 @@ +{ + "type": "process", + "name": "fdm_process_common", + "from": "system", + "instantiation": "false", + "adaptive_layer_height": "0", + "reduce_crossing_wall": "0", + "max_travel_detour_distance": "0", + "bottom_surface_pattern": "monotonic", + "bottom_shell_thickness": "0", + "bridge_speed": "50", + "brim_width": "5", + "brim_object_gap": "0.1", + "compatible_printers": [], + "compatible_printers_condition": "", + "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": "15%", + "sparse_infill_pattern": "crosshatch", + "initial_layer_print_height": "0.2", + "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]}_{printer_model}_{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": "110%", + "inner_wall_line_width": "110%", + "outer_wall_line_width": "100%", + "top_surface_line_width": "93.75%", + "sparse_infill_line_width": "110%", + "initial_layer_line_width": "120%", + "internal_solid_infill_line_width": "120%", + "support_line_width": "96%", + "wall_loops": "3", + "print_settings_id": "", + "raft_layers": "0", + "seam_position": "aligned", + "skirt_distance": "2", + "skirt_height": "3", + "min_skirt_length": "4", + "skirt_loops": "0", + "minimum_sparse_infill_area": "15", + "spiral_mode": "0", + "standby_temperature_delta": "-5", + "enable_support": "0", + "resolution": "0.012", + "support_type": "normal(auto)", + "support_on_build_plate_only": "0", + "support_top_z_distance": "0.2", + "support_bottom_z_distance": "0.2", + "support_filament": "0", + "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_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_angle": "30", + "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": "60", + "xy_hole_compensation": "0", + "xy_contour_compensation": "0", + "layer_height": "0.2", + "bottom_shell_layers": "3", + "top_shell_layers": "4", + "bridge_flow": "1", + "initial_layer_speed": "45", + "initial_layer_infill_speed": "45", + "outer_wall_speed": "45", + "inner_wall_speed": "80", + "sparse_infill_speed": "150", + "internal_solid_infill_speed": "150", + "top_surface_speed": "50", + "gap_infill_speed": "30", + "travel_speed": "200" +} diff --git a/resources/profiles/Positron3D/process/fdm_process_the_positron_common.json b/resources/profiles/Positron3D/process/fdm_process_the_positron_common.json new file mode 100644 index 0000000000..76e677a7e9 --- /dev/null +++ b/resources/profiles/Positron3D/process/fdm_process_the_positron_common.json @@ -0,0 +1,30 @@ +{ + "type": "process", + "name": "fdm_process_the_positron_common", + "from": "system", + "instantiation": "false", + "inherits": "fdm_process_common", + "default_acceleration": "5000", + "top_surface_acceleration": "3000", + "travel_acceleration": "7000", + "inner_wall_acceleration": "3000", + "outer_wall_acceleration": "1500", + "initial_layer_acceleration": "500", + "initial_layer_speed": "50", + "initial_layer_infill_speed": "105", + "outer_wall_speed": "60", + "inner_wall_speed": "100", + "internal_solid_infill_speed": "180", + "top_surface_speed": "90", + "gap_infill_speed": "90", + "sparse_infill_speed": "180", + "travel_speed": "420", + "travel_jerk": "12", + "outer_wall_jerk": "7", + "inner_wall_jerk": "7", + "default_jerk": "9", + "infill_jerk": "12", + "top_surface_jerk": "7", + "initial_layer_jerk": "7", + "exclude_object": "1" +} \ No newline at end of file diff --git a/resources/profiles/Prusa.json b/resources/profiles/Prusa.json index bb0ca7890e..5284a93b95 100644 --- a/resources/profiles/Prusa.json +++ b/resources/profiles/Prusa.json @@ -1,6 +1,6 @@ { "name": "Prusa", - "version": "02.01.00.00", + "version": "02.01.00.01", "force_update": "0", "description": "Prusa configurations", "machine_model_list": [ @@ -19,6 +19,10 @@ { "name": "MINI", "sub_path": "machine/Prusa MINI.json" + }, + { + "name": "Prusa XL", + "sub_path": "machine/Prusa XL.json" } ], "process_list": [ @@ -46,6 +50,10 @@ "name": "process_common_mk3", "sub_path": "process/process_common_mk3.json" }, + { + "name": "process_common_xl", + "sub_path": "process/process_common_xl.json" + }, { "name": "0.20mm Standard @MINI 0.25", "sub_path": "process/0.20mm Standard @MINI 0.25.json" @@ -151,137 +159,236 @@ "sub_path": "process/0.12mm Standard @MK4.json" }, { - "name": "0.16mm Standard @MK4", "sub_path": "process/0.16mm Standard @MK4.json" }, { - "name": "0.20mm Standard @MK4", "sub_path": "process/0.20mm Standard @MK4.json" }, { - "name": "0.05mm Detail @MINIIS", "sub_path": "process/0.05mm Detail @MINIIS.json" }, { - "name": "0.07mm Detail @MINIIS", "sub_path": "process/0.07mm Detail @MINIIS.json" }, { - "name": "0.10mm Speed @MINIIS", "sub_path": "process/0.10mm Speed @MINIIS.json" }, { - "name": "0.12mm Speed @MINIIS", "sub_path": "process/0.12mm Speed @MINIIS.json" }, { - "name": "0.12mm Standard @MINIIS", "sub_path": "process/0.12mm Standard @MINIIS.json" }, { - "name": "0.15mm Standard @MINIIS", "sub_path": "process/0.15mm Standard @MINIIS.json" }, { - "name": "0.15mm Standard @MINIIS 0.6", "sub_path": "process/0.15mm Standard @MINIIS 0.6.json" }, { - "name": "0.15mm Standard @MINIIS 0.25", "sub_path": "process/0.15mm Standard @MINIIS 0.25.json" }, - { - "name": "0.15mm Speed @MINIIS", "sub_path": "process/0.15mm Speed @MINIIS.json" }, { - "name": "0.15mm Speed @MINIIS 0.25", "sub_path": "process/0.15mm Speed @MINIIS 0.25.json" }, { - "name": "0.20mm Standard @MINIIS", "sub_path": "process/0.20mm Standard @MINIIS.json" }, { - "name": "0.20mm Standard @MINIIS 0.6", "sub_path": "process/0.20mm Standard @MINIIS 0.6.json" }, { - "name": "0.20mm Speed @MINIIS", "sub_path": "process/0.20mm Speed @MINIIS.json" }, { - "name": "0.20mm Speed @MINIIS 0.6", "sub_path": "process/0.20mm Speed @MINIIS 0.6.json" }, - - { - "name": "0.25mm Standard @MINIIS", "sub_path": "process/0.25mm Standard @MINIIS.json" }, { - "name": "0.25mm Speed @MINIIS", "sub_path": "process/0.25mm Speed @MINIIS.json" }, { - "name": "0.30mm Detail @MINIIS", "sub_path": "process/0.30mm Detail @MINIIS.json" }, { - "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" }, { - "name": "0.24mm Standard @MK4", "sub_path": "process/0.24mm Standard @MK4.json" }, { - "name": "0.28mm Standard @MK4", "sub_path": "process/0.28mm Standard @MK4.json" }, { - "name": "0.32mm Standard @MK4", "sub_path": "process/0.32mm Standard @MK4.json" }, { - "name": "0.40mm Standard @MK4", "sub_path": "process/0.40mm Standard @MK4.json" }, { - "name": "0.56mm Standard @MK4", "sub_path": "process/0.56mm Standard @MK4.json" + }, + { + "name": "0.15mm Structural @Prusa XL 0.25", + "sub_path": "process/0.15mm Structural @Prusa XL 0.25.json" + }, + { + "name": "0.15mm Speed @Prusa XL 0.25", + "sub_path": "process/0.15mm Speed @Prusa XL 0.25.json" + }, + { + "name": "0.12mm Structural @Prusa XL 0.25", + "sub_path": "process/0.12mm Structural @Prusa XL 0.25.json" + }, + { + "name": "0.12mm Speed @Prusa XL 0.25", + "sub_path": "process/0.12mm Speed @Prusa XL 0.25.json" + }, + { + "name": "0.07mm Detail @Prusa XL 0.25", + "sub_path": "process/0.07mm Detail @Prusa XL 0.25.json" + }, + { + "name": "0.05mm Detail @Prusa XL 0.25", + "sub_path": "process/0.05mm Detail @Prusa XL 0.25.json" + }, + { + "name": "0.20mm Speed @Prusa XL 0.3", + "sub_path": "process/0.20mm Speed @Prusa XL 0.3.json" + }, + { + "name": "0.16mm Structural @Prusa XL 0.3", + "sub_path": "process/0.16mm Structural @Prusa XL 0.3.json" + }, + { + "name": "0.16mm Speed @Prusa XL 0.3", + "sub_path": "process/0.16mm Speed @Prusa XL 0.3.json" + }, + { + "name": "0.12mm Structural @Prusa XL 0.3", + "sub_path": "process/0.12mm Structural @Prusa XL 0.3.json" + }, + { + "name": "0.25mm Structural @Prusa XL 0.4", + "sub_path": "process/0.25mm Structural @Prusa XL 0.4.json" + }, + { + "name": "0.20mm Structural @Prusa XL 0.4", + "sub_path": "process/0.20mm Structural @Prusa XL 0.4.json" + }, + { + "name": "0.20mm Speed @Prusa XL 0.4", + "sub_path": "process/0.20mm Speed @Prusa XL 0.4.json" + }, + { + "name": "0.15mm Structural @Prusa XL 0.4", + "sub_path": "process/0.15mm Structural @Prusa XL 0.4.json" + }, + { + "name": "0.15mm Speed @Prusa XL 0.4", + "sub_path": "process/0.15mm Speed @Prusa XL 0.4.json" + }, + { + "name": "0.10mm FastDetail @Prusa XL 0.4", + "sub_path": "process/0.10mm FastDetail @Prusa XL 0.4.json" + }, + { + "name": "0.25mm Structural @Prusa XL 0.5", + "sub_path": "process/0.25mm Structural @Prusa XL 0.5.json" + }, + { + "name": "0.25mm Speed @Prusa XL 0.5", + "sub_path": "process/0.25mm Speed @Prusa XL 0.5.json" + }, + { + "name": "0.20mm Structural @Prusa XL 0.5", + "sub_path": "process/0.20mm Structural @Prusa XL 0.5.json" + }, + { + "name": "0.20mm Speed @Prusa XL 0.5", + "sub_path": "process/0.20mm Speed @Prusa XL 0.5.json" + }, + { + "name": "0.15mm Structural @Prusa XL 0.5", + "sub_path": "process/0.15mm Structural @Prusa XL 0.5.json" + }, + { + "name": "0.10mm Structural @Prusa XL 0.5", + "sub_path": "process/0.10mm Structural @Prusa XL 0.5.json" + }, + { + "name": "0.32mm Structural @Prusa XL 0.6", + "sub_path": "process/0.32mm Structural @Prusa XL 0.6.json" + }, + { + "name": "0.32mm Speed @Prusa XL 0.6", + "sub_path": "process/0.32mm Speed @Prusa XL 0.6.json" + }, + { + "name": "0.25mm Structural @Prusa XL 0.6", + "sub_path": "process/0.25mm Structural @Prusa XL 0.6.json" + }, + { + "name": "0.25mm Speed @Prusa XL 0.6", + "sub_path": "process/0.25mm Speed @Prusa XL 0.6.json" + }, + { + "name": "0.20mm Structural @Prusa XL 0.6", + "sub_path": "process/0.20mm Structural @Prusa XL 0.6.json" + }, + { + "name": "0.20mm Speed @Prusa XL 0.6", + "sub_path": "process/0.20mm Speed @Prusa XL 0.6.json" + }, + { + "name": "0.15mm Structural @Prusa XL 0.6", + "sub_path": "process/0.15mm Structural @Prusa XL 0.6.json" + }, + { + "name": "0.55mm Draft @Prusa XL 0.8", + "sub_path": "process/0.55mm Draft @Prusa XL 0.8.json" + }, + { + "name": "0.40mm Quality @Prusa XL 0.8", + "sub_path": "process/0.40mm Quality @Prusa XL 0.8.json" + }, + { + "name": "0.30mm Detail @Prusa XL 0.8", + "sub_path": "process/0.30mm Detail @Prusa XL 0.8.json" } ], "filament_list": [ @@ -309,6 +416,10 @@ "name": "fdm_filament_pc", "sub_path": "filament/fdm_filament_pc.json" }, + { + "name": "fdm_filament_pccf", + "sub_path": "filament/fdm_filament_pccf.json" + }, { "name": "fdm_filament_asa", "sub_path": "filament/fdm_filament_asa.json" @@ -317,10 +428,18 @@ "name": "fdm_filament_pva", "sub_path": "filament/fdm_filament_pva.json" }, + { + "name": "fdm_filament_pvb", + "sub_path": "filament/fdm_filament_pvb.json" + }, { "name": "fdm_filament_pa", "sub_path": "filament/fdm_filament_pa.json" }, + { + "name": "fdm_filament_pa11cf", + "sub_path": "filament/fdm_filament_pa11cf.json" + }, { "name": "Prusa Generic PLA", "sub_path": "filament/Prusa Generic PLA.json" @@ -345,6 +464,18 @@ "name": "Prusa Generic PLA @MINIIS", "sub_path": "filament/Prusa Generic PLA @MINIIS.json" }, + { + "name": "Prusa Generic PLA @XL", + "sub_path": "filament/Prusa Generic PLA @XL.json" + }, + { + "name": "Prusament PLA @XL", + "sub_path": "filament/Prusament PLA @XL.json" + }, + { + "name": "Prusament rPLA @XL", + "sub_path": "filament/Prusament rPLA @XL.json" + }, { "name": "Prusa Generic PLA-CF", "sub_path": "filament/Prusa Generic PLA-CF.json" @@ -389,6 +520,14 @@ "name": "Prusa Generic PETG @MINIIS 0.8", "sub_path": "filament/Prusa Generic PETG @MINIIS 0.8.json" }, + { + "name": "Prusa Generic PETG @XL", + "sub_path": "filament/Prusa Generic PETG @XL.json" + }, + { + "name": "Prusament PETG @XL", + "sub_path": "filament/Prusament PETG @XL.json" + }, { "name": "Prusa Generic ABS", "sub_path": "filament/Prusa Generic ABS.json" @@ -413,6 +552,10 @@ "name": "Prusa Generic ABS @MINIIS 0.8", "sub_path": "filament/Prusa Generic ABS @MINIIS 0.8.json" }, + { + "name": "Prusa Generic ABS @XL", + "sub_path": "filament/Prusa Generic ABS @XL.json" + }, { "name": "Prusa Generic TPU", "sub_path": "filament/Prusa Generic TPU.json" @@ -449,6 +592,10 @@ "name": "Prusa Generic ASA @MINIIS 0.8", "sub_path": "filament/Prusa Generic ASA @MINIIS 0.8.json" }, + { + "name": "Prusament ASA @XL", + "sub_path": "filament/Prusament ASA @XL.json" + }, { "name": "Prusa Generic PC", "sub_path": "filament/Prusa Generic PC.json" @@ -469,6 +616,14 @@ "name": "Prusa Generic PC @MINIIS 0.8", "sub_path": "filament/Prusa Generic PC @MINIIS 0.8.json" }, + { + "name": "Prusament PC Blend @XL", + "sub_path": "filament/Prusament PC Blend @XL.json" + }, + { + "name": "Prusament PC-CF @XL", + "sub_path": "filament/Prusament PC-CF @XL.json" + }, { "name": "Prusa Generic PVA", "sub_path": "filament/Prusa Generic PVA.json" @@ -489,6 +644,10 @@ "name": "Prusa Generic PVA @MINIIS 0.8", "sub_path": "filament/Prusa Generic PVA @MINIIS 0.8.json" }, + { + "name": "Prusament PVB @XL", + "sub_path": "filament/Prusament PVB @XL.json" + }, { "name": "Prusa Generic PA", "sub_path": "filament/Prusa Generic PA.json" @@ -528,6 +687,10 @@ { "name": "Prusa Generic PA-CF @MINIIS 0.8", "sub_path": "filament/Prusa Generic PA-CF @MINIIS 0.8.json" + }, + { + "name": "Prusament PA-CF @XL", + "sub_path": "filament/Prusament PA-CF @XL.json" } ], "machine_list": [ @@ -598,6 +761,30 @@ { "name": "Prusa MINI 0.8 nozzle", "sub_path": "machine/Prusa MINI 0.8 nozzle.json" + }, + { + "name": "Prusa XL 0.25 nozzle", + "sub_path": "machine/Prusa XL 0.25 nozzle.json" + }, + { + "name": "Prusa XL 0.3 nozzle", + "sub_path": "machine/Prusa XL 0.3 nozzle.json" + }, + { + "name": "Prusa XL 0.4 nozzle", + "sub_path": "machine/Prusa XL 0.4 nozzle.json" + }, + { + "name": "Prusa XL 0.5 nozzle", + "sub_path": "machine/Prusa XL 0.5 nozzle.json" + }, + { + "name": "Prusa XL 0.6 nozzle", + "sub_path": "machine/Prusa XL 0.6 nozzle.json" + }, + { + "name": "Prusa XL 0.8 nozzle", + "sub_path": "machine/Prusa XL 0.8 nozzle.json" } ] } diff --git a/resources/profiles/Prusa/Prusa XL.svg b/resources/profiles/Prusa/Prusa XL.svg new file mode 100644 index 0000000000..4ebe0c97ed --- /dev/null +++ b/resources/profiles/Prusa/Prusa XL.svg @@ -0,0 +1,17 @@ + + + + + diff --git a/resources/profiles/Prusa/Prusa XL_bed.stl b/resources/profiles/Prusa/Prusa XL_bed.stl new file mode 100644 index 0000000000..2ddf418317 Binary files /dev/null and b/resources/profiles/Prusa/Prusa XL_bed.stl differ diff --git a/resources/profiles/Prusa/Prusa XL_cover.png b/resources/profiles/Prusa/Prusa XL_cover.png new file mode 100644 index 0000000000..751e17261e Binary files /dev/null and b/resources/profiles/Prusa/Prusa XL_cover.png differ diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @XL.json b/resources/profiles/Prusa/filament/Prusa Generic ABS @XL.json new file mode 100644 index 0000000000..544d644b27 --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusa Generic ABS @XL.json @@ -0,0 +1,54 @@ +{ + "type": "filament", + "filament_id": "GFB99_1", + "setting_id": "GFSA04", + "name": "Prusa Generic ABS @XL", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_abs", + "nozzle_temperature_intial_layer": "255", + "nozzle_temperature": "255", + "hot_plate_temp_initial_layer": "100", + "hot_plate_temp": "105", + "slow_down_min_speed": "15", + "filament_flow_ratio": [ + "1" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "slow_down_layer_time": [ + "20" + ], + "fan_max_speed": [ + "15" + ], + "fan_min_speed": [ + "15" + ], + "overhang_fan_speed": [ + "25" + ], + "close_fan_the_first_x_layers": [ + "4" + ], + "filament_loading_speed_start": "19", + "filament_loading_speed": "14", + "filament_unloading_speed_start": "100", + "filament_unloading_speed": "20", + "filament_load_time": "15", + "filament_unload_time": "12", + "filament_cooling_moves": "5", + "filament_cooling_initial_speed": "10", + "filament_cooling_final_speed": "50", + "filament_retract_lift_below": "1.5", + "filament_start_gcode": "; filament start gcode\nM900 K{if nozzle_diameter[0]==0.4}0.04{elsif nozzle_diameter[0]==0.25}0.1{elsif nozzle_diameter[0]==0.3}0.06{elsif nozzle_diameter[0]==0.35}0.05{elsif nozzle_diameter[0]==0.5}0.03{elsif nozzle_diameter[0]==0.6}0.02{elsif nozzle_diameter[0]==0.8}0.01{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*PRINTER_MODEL_XLIS.*/}\nM572 S{if nozzle_diameter[0]==0.4}0.02{elsif nozzle_diameter[0]==0.5}0.018{elsif nozzle_diameter[0]==0.6}0.012{elsif nozzle_diameter[0]==0.8}0.01{elsif nozzle_diameter[0]==0.25}0.09{elsif nozzle_diameter[0]==0.3}0.065{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S40 ; set heatbreak target temp", + "compatible_printers": [ + "Prusa XL 0.25 nozzle", + "Prusa XL 0.3 nozzle", + "Prusa XL 0.4 nozzle", + "Prusa XL 0.5 nozzle", + "Prusa XL 0.6 nozzle", + "Prusa XL 0.8 nozzle" + ] +} diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @XL.json b/resources/profiles/Prusa/filament/Prusa Generic PETG @XL.json new file mode 100644 index 0000000000..c2c535cd91 --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusa Generic PETG @XL.json @@ -0,0 +1,57 @@ +{ + "type": "filament", + "filament_id": "GFL99_1", + "setting_id": "GFSA04", + "name": "Prusa Generic PETG @XL", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_pet", + "nozzle_temperature_intial_layer": "230", + "nozzle_temperature": "240", + "hot_plate_temp_initial_layer": "80", + "hot_plate_temp": "80", + "full_fan_speed_layer": "5", + "slow_down_min_speed": "15", + "filament_flow_ratio": [ + "1" + ], + "filament_max_volumetric_speed": [ + "9" + ], + "slow_down_layer_time": [ + "9" + ], + "fan_max_speed": [ + "50" + ], + "fan_min_speed": [ + "30" + ], + "overhang_fan_speed": [ + "50" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "filament_loading_speed_start": "50", + "filament_loading_speed": "10", + "filament_unloading_speed_start": "100", + "filament_unloading_speed": "100", + "filament_load_time": "10.5", + "filament_unload_time": "8.5", + "filament_cooling_moves": "3", + "filament_cooling_initial_speed": "5", + "filament_cooling_final_speed": "2.5", + "filament_retract_lift_below": "1.5", + "filament_wipe": "1", + "filament_retract_before_wipe": "20%", + "filament_start_gcode": "; filament start gcode\nM900 K{if nozzle_diameter[0]==0.4}0.07{elsif nozzle_diameter[0]==0.25}0.12{elsif nozzle_diameter[0]==0.3}0.09{elsif nozzle_diameter[0]==0.35}0.08{elsif nozzle_diameter[0]==0.6}0.04{elsif nozzle_diameter[0]==0.5}0.05{elsif nozzle_diameter[0]==0.8}0.02{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*PRINTER_MODEL_XLIS.*/}\nM572 S{if nozzle_diameter[0]==0.4}0.053{elsif nozzle_diameter[0]==0.5}0.042{elsif nozzle_diameter[0]==0.6}0.032{elsif nozzle_diameter[0]==0.8}0.018{elsif nozzle_diameter[0]==0.25}0.18{elsif nozzle_diameter[0]==0.3}0.1{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S36 ; set heatbreak target temp", + "compatible_printers": [ + "Prusa XL 0.25 nozzle", + "Prusa XL 0.3 nozzle", + "Prusa XL 0.4 nozzle", + "Prusa XL 0.5 nozzle", + "Prusa XL 0.6 nozzle", + "Prusa XL 0.8 nozzle" + ] +} diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @XL.json b/resources/profiles/Prusa/filament/Prusa Generic PLA @XL.json new file mode 100644 index 0000000000..06acddef20 --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA @XL.json @@ -0,0 +1,52 @@ +{ + "type": "filament", + "filament_id": "GFL99_1", + "setting_id": "GFSA04", + "name": "Prusa Generic PLA @XL", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_pla", + "nozzle_temperature_intial_layer": "215", + "nozzle_temperature": "210", + "hot_plate_temp_initial_layer": "60", + "hot_plate_temp": "60", + "full_fan_speed_layer": "3", + "slow_down_min_speed": "15", + "filament_flow_ratio": [ + "1" + ], + "filament_max_volumetric_speed": [ + "15" + ], + "slow_down_layer_time": [ + "10" + ], + "fan_max_speed": [ + "100" + ], + "fan_min_speed": [ + "100" + ], + "overhang_fan_speed": [ + "100" + ], + "filament_loading_speed_start": "50", + "filament_loading_speed": "10", + "filament_unloading_speed_start": "100", + "filament_unloading_speed": "100", + "filament_load_time": "10.5", + "filament_unload_time": "8.5", + "filament_cooling_moves": "2", + "filament_cooling_initial_speed": "10", + "filament_cooling_final_speed": "3.5", + "filament_retract_lift_below": "0.6", + "filament_start_gcode": "; filament start gcode\nM900 K{if nozzle_diameter[0]==0.4}0.05{elsif nozzle_diameter[0]==0.25}0.14{elsif nozzle_diameter[0]==0.3}0.07{elsif nozzle_diameter[0]==0.35}0.06{elsif nozzle_diameter[0]==0.6}0.03{elsif nozzle_diameter[0]==0.5}0.035{elsif nozzle_diameter[0]==0.8}0.015{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*PRINTER_MODEL_XLIS.*/}\nM572 S{if nozzle_diameter[0]==0.4}0.036{elsif nozzle_diameter[0]==0.5}0.025{elsif nozzle_diameter[0]==0.6}0.02{elsif nozzle_diameter[0]==0.8}0.014{elsif nozzle_diameter[0]==0.25}0.12{elsif nozzle_diameter[0]==0.3}0.08{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S36 ; set heatbreak target temp", + "compatible_printers": [ + "Prusa XL 0.25 nozzle", + "Prusa XL 0.3 nozzle", + "Prusa XL 0.4 nozzle", + "Prusa XL 0.5 nozzle", + "Prusa XL 0.6 nozzle", + "Prusa XL 0.8 nozzle" + ] +} diff --git a/resources/profiles/Prusa/filament/Prusament ASA @XL.json b/resources/profiles/Prusa/filament/Prusament ASA @XL.json new file mode 100644 index 0000000000..36e1f6c601 --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusament ASA @XL.json @@ -0,0 +1,56 @@ +{ + "type": "filament", + "filament_id": "GFB98", + "setting_id": "GFSA04", + "name": "Prusament ASA @XL", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_asa", + "nozzle_temperature_intial_layer": "260", + "nozzle_temperature": "260", + "hot_plate_temp_initial_layer": "100", + "hot_plate_temp": "105", + "filament_flow_ratio": [ + "1" + ], + "fan_max_speed": [ + "10" + ], + "fan_min_speed": [ + "10" + ], + "overhang_fan_speed": [ + "30" + ], + "close_fan_the_first_x_layers": [ + "4" + ], + "slow_down_min_speed": [ + "15" + ], + "slow_down_layer_time": [ + "15" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_loading_speed_start": "19", + "filament_loading_speed": "14", + "filament_unloading_speed_start": "100", + "filament_unloading_speed": "20", + "filament_load_time": "15", + "filament_unload_time": "12", + "filament_cooling_moves": "5", + "filament_cooling_initial_speed": "10", + "filament_cooling_final_speed": "50", + "filament_retract_lift_below": "1.5", + "filament_start_gcode": "; filament start gcode\nM900 K{if nozzle_diameter[0]==0.4}0.04{elsif nozzle_diameter[0]==0.25}0.1{elsif nozzle_diameter[0]==0.3}0.06{elsif nozzle_diameter[0]==0.35}0.05{elsif nozzle_diameter[0]==0.5}0.03{elsif nozzle_diameter[0]==0.6}0.02{elsif nozzle_diameter[0]==0.8}0.01{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*PRINTER_MODEL_XLIS.*/}\nM572 S{if nozzle_diameter[0]==0.4}0.02{elsif nozzle_diameter[0]==0.5}0.018{elsif nozzle_diameter[0]==0.6}0.012{elsif nozzle_diameter[0]==0.8}0.01{elsif nozzle_diameter[0]==0.25}0.09{elsif nozzle_diameter[0]==0.3}0.065{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S40 ; set heatbreak target temp", + "compatible_printers": [ + "Prusa XL 0.25 nozzle", + "Prusa XL 0.3 nozzle", + "Prusa XL 0.4 nozzle", + "Prusa XL 0.5 nozzle", + "Prusa XL 0.6 nozzle", + "Prusa XL 0.8 nozzle" + ] +} diff --git a/resources/profiles/Prusa/filament/Prusament PA-CF @XL.json b/resources/profiles/Prusa/filament/Prusament PA-CF @XL.json new file mode 100644 index 0000000000..28d4862819 --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusament PA-CF @XL.json @@ -0,0 +1,56 @@ +{ + "type": "filament", + "filament_id": "GFN98", + "setting_id": "GFSA04", + "name": "Prusament PA-CF @XL", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_pa11cf", + "nozzle_temperature_intial_layer": "275", + "nozzle_temperature": "285", + "hot_plate_temp_initial_layer": "100", + "hot_plate_temp": "105", + "filament_flow_ratio": [ + "1.05" + ], + "fan_max_speed": [ + "20" + ], + "fan_min_speed": [ + "20" + ], + "overhang_fan_speed": [ + "30" + ], + "close_fan_the_first_x_layers": [ + "4" + ], + "slow_down_min_speed": [ + "15" + ], + "slow_down_layer_time": [ + "20" + ], + "filament_max_volumetric_speed": [ + "6.5" + ], + "filament_loading_speed_start": "19", + "filament_loading_speed": "14", + "filament_unloading_speed_start": "100", + "filament_unloading_speed": "20", + "filament_load_time": "15", + "filament_unload_time": "12", + "filament_cooling_moves": "5", + "filament_cooling_initial_speed": "10", + "filament_cooling_final_speed": "50", + "filament_retract_lift_below": "1.5", + "filament_start_gcode": "; filament start gcode\nM900 K{if nozzle_diameter[0]==0.4}0.07{elsif nozzle_diameter[0]==0.3}0.09{elsif nozzle_diameter[0]==0.35}0.08{elsif nozzle_diameter[0]==0.6}0.04{elsif nozzle_diameter[0]==0.5}0.05{elsif nozzle_diameter[0]==0.8}0.02{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*PRINTER_MODEL_XLIS.*/}\nM572 S{if nozzle_diameter[0]==0.4}0.05{elsif nozzle_diameter[0]==0.5}0.035{elsif nozzle_diameter[0]==0.6}0.025{elsif nozzle_diameter[0]==0.8}0.016{elsif nozzle_diameter[0]==0.25}0.14{elsif nozzle_diameter[0]==0.3}0.09{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S45 ; set heatbreak target temp", + "compatible_printers": [ + "Prusa XL 0.25 nozzle", + "Prusa XL 0.3 nozzle", + "Prusa XL 0.4 nozzle", + "Prusa XL 0.5 nozzle", + "Prusa XL 0.6 nozzle", + "Prusa XL 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Prusa/filament/Prusament PC Blend @XL.json b/resources/profiles/Prusa/filament/Prusament PC Blend @XL.json new file mode 100644 index 0000000000..a2bfaada98 --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusament PC Blend @XL.json @@ -0,0 +1,56 @@ +{ + "type": "filament", + "filament_id": "GFL99_1", + "setting_id": "GFSA04", + "name": "Prusament PC Blend @XL", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_pc", + "nozzle_temperature_intial_layer": "275", + "nozzle_temperature": "275", + "hot_plate_temp_initial_layer": "100", + "hot_plate_temp": "105", + "filament_flow_ratio": [ + "1" + ], + "fan_max_speed": [ + "10" + ], + "fan_min_speed": [ + "10" + ], + "overhang_fan_speed": [ + "30" + ], + "close_fan_the_first_x_layers": [ + "4" + ], + "slow_down_min_speed": [ + "15" + ], + "slow_down_layer_time": [ + "20" + ], + "filament_max_volumetric_speed": [ + "9" + ], + "filament_loading_speed_start": "19", + "filament_loading_speed": "14", + "filament_unloading_speed_start": "100", + "filament_unloading_speed": "20", + "filament_load_time": "15", + "filament_unload_time": "12", + "filament_cooling_moves": "5", + "filament_cooling_initial_speed": "10", + "filament_cooling_final_speed": "50", + "filament_retract_lift_below": "1.5", + "filament_start_gcode": "; filament start gcode\nM900 K{if nozzle_diameter[0]==0.4}0.07{elsif nozzle_diameter[0]==0.3}0.09{elsif nozzle_diameter[0]==0.35}0.08{elsif nozzle_diameter[0]==0.6}0.04{elsif nozzle_diameter[0]==0.5}0.05{elsif nozzle_diameter[0]==0.8}0.02{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*PRINTER_MODEL_XLIS.*/}\nM572 S{if nozzle_diameter[0]==0.4}0.05{elsif nozzle_diameter[0]==0.5}0.035{elsif nozzle_diameter[0]==0.6}0.025{elsif nozzle_diameter[0]==0.8}0.016{elsif nozzle_diameter[0]==0.25}0.14{elsif nozzle_diameter[0]==0.3}0.09{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S45 ; set heatbreak target temp", + "compatible_printers": [ + "Prusa XL 0.25 nozzle", + "Prusa XL 0.3 nozzle", + "Prusa XL 0.4 nozzle", + "Prusa XL 0.5 nozzle", + "Prusa XL 0.6 nozzle", + "Prusa XL 0.8 nozzle" + ] +} diff --git a/resources/profiles/Prusa/filament/Prusament PC-CF @XL.json b/resources/profiles/Prusa/filament/Prusament PC-CF @XL.json new file mode 100644 index 0000000000..79c707f999 --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusament PC-CF @XL.json @@ -0,0 +1,56 @@ +{ + "type": "filament", + "filament_id": "GFL99_1", + "setting_id": "GFSA04", + "name": "Prusament PC-CF @XL", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_pccf", + "nozzle_temperature_intial_layer": "285", + "nozzle_temperature": "285", + "hot_plate_temp_initial_layer": "100", + "hot_plate_temp": "105", + "filament_flow_ratio": [ + "1.04" + ], + "fan_max_speed": [ + "10" + ], + "fan_min_speed": [ + "10" + ], + "overhang_fan_speed": [ + "30" + ], + "close_fan_the_first_x_layers": [ + "4" + ], + "slow_down_min_speed": [ + "15" + ], + "slow_down_layer_time": [ + "20" + ], + "filament_max_volumetric_speed": [ + "8" + ], + "filament_loading_speed_start": "19", + "filament_loading_speed": "14", + "filament_unloading_speed_start": "100", + "filament_unloading_speed": "20", + "filament_load_time": "15", + "filament_unload_time": "12", + "filament_cooling_moves": "5", + "filament_cooling_initial_speed": "10", + "filament_cooling_final_speed": "50", + "filament_retract_lift_below": "1.5", + "filament_start_gcode": "; filament start gcode\nM900 K{if nozzle_diameter[0]==0.4}0.07{elsif nozzle_diameter[0]==0.3}0.09{elsif nozzle_diameter[0]==0.35}0.08{elsif nozzle_diameter[0]==0.6}0.04{elsif nozzle_diameter[0]==0.5}0.05{elsif nozzle_diameter[0]==0.8}0.02{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*PRINTER_MODEL_XLIS.*/}\nM572 S{if nozzle_diameter[0]==0.4}0.05{elsif nozzle_diameter[0]==0.5}0.035{elsif nozzle_diameter[0]==0.6}0.025{elsif nozzle_diameter[0]==0.8}0.016{elsif nozzle_diameter[0]==0.25}0.14{elsif nozzle_diameter[0]==0.3}0.09{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S45 ; set heatbreak target temp", + "compatible_printers": [ + "Prusa XL 0.25 nozzle", + "Prusa XL 0.3 nozzle", + "Prusa XL 0.4 nozzle", + "Prusa XL 0.5 nozzle", + "Prusa XL 0.6 nozzle", + "Prusa XL 0.8 nozzle" + ] +} diff --git a/resources/profiles/Prusa/filament/Prusament PETG @XL.json b/resources/profiles/Prusa/filament/Prusament PETG @XL.json new file mode 100644 index 0000000000..c4505feda5 --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusament PETG @XL.json @@ -0,0 +1,57 @@ +{ + "type": "filament", + "filament_id": "GFL99_1", + "setting_id": "GFSA04", + "name": "Prusament PETG @XL", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_pet", + "nozzle_temperature_intial_layer": "240", + "nozzle_temperature": "250", + "hot_plate_temp_initial_layer": "80", + "hot_plate_temp": "80", + "full_fan_speed_layer": "5", + "slow_down_min_speed": "15", + "filament_flow_ratio": [ + "1" + ], + "filament_max_volumetric_speed": [ + "9.5" + ], + "slow_down_layer_time": [ + "9" + ], + "fan_max_speed": [ + "50" + ], + "fan_min_speed": [ + "30" + ], + "overhang_fan_speed": [ + "50" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "filament_loading_speed_start": "50", + "filament_loading_speed": "10", + "filament_unloading_speed_start": "100", + "filament_unloading_speed": "100", + "filament_load_time": "10.5", + "filament_unload_time": "8.5", + "filament_cooling_moves": "3", + "filament_cooling_initial_speed": "5", + "filament_cooling_final_speed": "2.5", + "filament_retract_lift_below": "1.5", + "filament_wipe": "1", + "filament_retract_before_wipe": "20%", + "filament_start_gcode": "; filament start gcode\nM900 K{if nozzle_diameter[0]==0.4}0.07{elsif nozzle_diameter[0]==0.25}0.12{elsif nozzle_diameter[0]==0.3}0.09{elsif nozzle_diameter[0]==0.35}0.08{elsif nozzle_diameter[0]==0.6}0.04{elsif nozzle_diameter[0]==0.5}0.05{elsif nozzle_diameter[0]==0.8}0.02{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*PRINTER_MODEL_XLIS.*/}\nM572 S{if nozzle_diameter[0]==0.4}0.053{elsif nozzle_diameter[0]==0.5}0.042{elsif nozzle_diameter[0]==0.6}0.032{elsif nozzle_diameter[0]==0.8}0.018{elsif nozzle_diameter[0]==0.25}0.18{elsif nozzle_diameter[0]==0.3}0.1{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S36 ; set heatbreak target temp", + "compatible_printers": [ + "Prusa XL 0.25 nozzle", + "Prusa XL 0.3 nozzle", + "Prusa XL 0.4 nozzle", + "Prusa XL 0.5 nozzle", + "Prusa XL 0.6 nozzle", + "Prusa XL 0.8 nozzle" + ] +} diff --git a/resources/profiles/Prusa/filament/Prusament PLA @XL.json b/resources/profiles/Prusa/filament/Prusament PLA @XL.json new file mode 100644 index 0000000000..949dfb23b3 --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusament PLA @XL.json @@ -0,0 +1,52 @@ +{ + "type": "filament", + "filament_id": "GFL99_1", + "setting_id": "GFSA04", + "name": "Prusament PLA @XL", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_pla", + "nozzle_temperature_intial_layer": "215", + "nozzle_temperature": "215", + "hot_plate_temp_initial_layer": "60", + "hot_plate_temp": "60", + "full_fan_speed_layer": "3", + "slow_down_min_speed": "15", + "filament_flow_ratio": [ + "1" + ], + "filament_max_volumetric_speed": [ + "15" + ], + "slow_down_layer_time": [ + "10" + ], + "fan_max_speed": [ + "100" + ], + "fan_min_speed": [ + "100" + ], + "overhang_fan_speed": [ + "100" + ], + "filament_loading_speed_start": "50", + "filament_loading_speed": "10", + "filament_unloading_speed_start": "100", + "filament_unloading_speed": "100", + "filament_load_time": "10.5", + "filament_unload_time": "8.5", + "filament_cooling_moves": "2", + "filament_cooling_initial_speed": "10", + "filament_cooling_final_speed": "3.5", + "filament_retract_lift_below": "0.6", + "filament_start_gcode": "; filament start gcode\nM900 K{if nozzle_diameter[0]==0.4}0.05{elsif nozzle_diameter[0]==0.25}0.14{elsif nozzle_diameter[0]==0.3}0.07{elsif nozzle_diameter[0]==0.35}0.06{elsif nozzle_diameter[0]==0.6}0.03{elsif nozzle_diameter[0]==0.5}0.035{elsif nozzle_diameter[0]==0.8}0.015{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*PRINTER_MODEL_XLIS.*/}\nM572 S{if nozzle_diameter[0]==0.4}0.036{elsif nozzle_diameter[0]==0.5}0.025{elsif nozzle_diameter[0]==0.6}0.02{elsif nozzle_diameter[0]==0.8}0.014{elsif nozzle_diameter[0]==0.25}0.12{elsif nozzle_diameter[0]==0.3}0.08{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S36 ; set heatbreak target temp", + "compatible_printers": [ + "Prusa XL 0.25 nozzle", + "Prusa XL 0.3 nozzle", + "Prusa XL 0.4 nozzle", + "Prusa XL 0.5 nozzle", + "Prusa XL 0.6 nozzle", + "Prusa XL 0.8 nozzle" + ] +} diff --git a/resources/profiles/Prusa/filament/Prusament PVB @XL.json b/resources/profiles/Prusa/filament/Prusament PVB @XL.json new file mode 100644 index 0000000000..c7e1e5fe0e --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusament PVB @XL.json @@ -0,0 +1,57 @@ +{ + "type": "filament", + "filament_id": "GFS99", + "setting_id": "GFSA04", + "name": "Prusament PVB @XL", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_pvb", + "nozzle_temperature_intial_layer": "215", + "nozzle_temperature": "215", + "hot_plate_temp_initial_layer": "75", + "hot_plate_temp": "75", + "slow_down_min_speed": "15", + "filament_flow_ratio": [ + "1" + ], + "filament_max_volumetric_speed": [ + "8" + ], + "slow_down_layer_time": [ + "10" + ], + "fan_max_speed": [ + "100" + ], + "fan_min_speed": [ + "100" + ], + "overhang_fan_speed": [ + "100" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "full_fan_speed_layer": [ + "3" + ], + "filament_loading_speed_start": "50", + "filament_loading_speed": "10", + "filament_unloading_speed_start": "100", + "filament_unloading_speed": "100", + "filament_load_time": "10.5", + "filament_unload_time": "8.5", + "filament_cooling_moves": "2", + "filament_cooling_initial_speed": "10", + "filament_cooling_final_speed": "3.5", + "filament_retract_lift_below": "0.6", + "filament_start_gcode": "; filament start gcode\nM900 K{if nozzle_diameter[0]==0.4}0.05{elsif nozzle_diameter[0]==0.25}0.14{elsif nozzle_diameter[0]==0.3}0.07{elsif nozzle_diameter[0]==0.35}0.06{elsif nozzle_diameter[0]==0.6}0.03{elsif nozzle_diameter[0]==0.5}0.035{elsif nozzle_diameter[0]==0.8}0.015{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*PRINTER_MODEL_XLIS.*/}\nM572 S{if nozzle_diameter[0]==0.4}0.036{elsif nozzle_diameter[0]==0.5}0.025{elsif nozzle_diameter[0]==0.6}0.02{elsif nozzle_diameter[0]==0.8}0.014{elsif nozzle_diameter[0]==0.25}0.12{elsif nozzle_diameter[0]==0.3}0.08{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S36 ; set heatbreak target temp", + "compatible_printers": [ + "Prusa XL 0.25 nozzle", + "Prusa XL 0.3 nozzle", + "Prusa XL 0.4 nozzle", + "Prusa XL 0.5 nozzle", + "Prusa XL 0.6 nozzle", + "Prusa XL 0.8 nozzle" + ] +} diff --git a/resources/profiles/Prusa/filament/Prusament rPLA @XL.json b/resources/profiles/Prusa/filament/Prusament rPLA @XL.json new file mode 100644 index 0000000000..6fa3b54c17 --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusament rPLA @XL.json @@ -0,0 +1,55 @@ +{ + "type": "filament", + "filament_id": "GFL99_1", + "setting_id": "GFSA04", + "name": "Prusament rPLA @XL", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_pla", + "nozzle_temperature_intial_layer": "205", + "nozzle_temperature": "205", + "hot_plate_temp_initial_layer": "60", + "hot_plate_temp": "60", + "full_fan_speed_layer": "3", + "slow_down_min_speed": "15", + "filament_flow_ratio": [ + "1" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "slow_down_layer_time": [ + "10" + ], + "fan_max_speed": [ + "100" + ], + "fan_min_speed": [ + "100" + ], + "overhang_fan_speed": [ + "100" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_loading_speed_start": "50", + "filament_loading_speed": "10", + "filament_unloading_speed_start": "100", + "filament_unloading_speed": "100", + "filament_load_time": "10.5", + "filament_unload_time": "8.5", + "filament_cooling_moves": "2", + "filament_cooling_initial_speed": "10", + "filament_cooling_final_speed": "3.5", + "filament_retract_lift_below": "0.6", + "filament_start_gcode": "; filament start gcode\nM900 K{if nozzle_diameter[0]==0.4}0.05{elsif nozzle_diameter[0]==0.25}0.14{elsif nozzle_diameter[0]==0.3}0.07{elsif nozzle_diameter[0]==0.35}0.06{elsif nozzle_diameter[0]==0.6}0.03{elsif nozzle_diameter[0]==0.5}0.035{elsif nozzle_diameter[0]==0.8}0.015{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*PRINTER_MODEL_XLIS.*/}\nM572 S{if nozzle_diameter[0]==0.4}0.036{elsif nozzle_diameter[0]==0.5}0.025{elsif nozzle_diameter[0]==0.6}0.02{elsif nozzle_diameter[0]==0.8}0.014{elsif nozzle_diameter[0]==0.25}0.12{elsif nozzle_diameter[0]==0.3}0.08{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S36 ; set heatbreak target temp", + "compatible_printers": [ + "Prusa XL 0.25 nozzle", + "Prusa XL 0.3 nozzle", + "Prusa XL 0.4 nozzle", + "Prusa XL 0.5 nozzle", + "Prusa XL 0.6 nozzle", + "Prusa XL 0.8 nozzle" + ] +} diff --git a/resources/profiles/Prusa/filament/fdm_filament_pa11cf.json b/resources/profiles/Prusa/filament/fdm_filament_pa11cf.json new file mode 100644 index 0000000000..3be757e798 --- /dev/null +++ b/resources/profiles/Prusa/filament/fdm_filament_pa11cf.json @@ -0,0 +1,79 @@ +{ + "type": "filament", + "name": "fdm_filament_pa11cf", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_common", + "cool_plate_temp" : [ + "0" + ], + "eng_plate_temp" : [ + "100" + ], + "hot_plate_temp" : [ + "100" + ], + "cool_plate_temp_initial_layer" : [ + "0" + ], + "eng_plate_temp_initial_layer" : [ + "100" + ], + "hot_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": [ + "PA11-CF" + ], + "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/Prusa/filament/fdm_filament_pccf.json b/resources/profiles/Prusa/filament/fdm_filament_pccf.json new file mode 100644 index 0000000000..483e28036a --- /dev/null +++ b/resources/profiles/Prusa/filament/fdm_filament_pccf.json @@ -0,0 +1,82 @@ +{ + "type": "filament", + "name": "fdm_filament_pccf", + "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-CF" + ], + "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/Prusa/filament/fdm_filament_pvb.json b/resources/profiles/Prusa/filament/fdm_filament_pvb.json new file mode 100644 index 0000000000..db5fa7823b --- /dev/null +++ b/resources/profiles/Prusa/filament/fdm_filament_pvb.json @@ -0,0 +1,94 @@ +{ + "type": "filament", + "name": "fdm_filament_pvb", + "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": [ + "PVB" + ], + "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/Prusa/machine/Prusa MINIIS 0.25 nozzle.json b/resources/profiles/Prusa/machine/Prusa MINIIS 0.25 nozzle.json index 178e3e65e2..c65af761f8 100644 --- a/resources/profiles/Prusa/machine/Prusa MINIIS 0.25 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa MINIIS 0.25 nozzle.json @@ -9,7 +9,7 @@ "printer_model": "MINIIS", "printer_variant": "0.25", "default_filament_profile": [ - "Prusa Generic PLA @MINIIS" + "Prusa Generic PLA @MINIIS 0.25" ], "default_print_profile": "0.12mm Standard @MINIIS", "nozzle_diameter": [ diff --git a/resources/profiles/Prusa/machine/Prusa MINIIS 0.4 nozzle.json b/resources/profiles/Prusa/machine/Prusa MINIIS 0.4 nozzle.json index 418dc5fef3..38ea5980f2 100644 --- a/resources/profiles/Prusa/machine/Prusa MINIIS 0.4 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa MINIIS 0.4 nozzle.json @@ -99,7 +99,7 @@ "printable_height": "180", "machine_end_gcode": "{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+2, max_print_height)} F720 ; Move print head up{endif}\nG1 X170 Y170 F4200 ; park print head\n{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+50, max_print_height)} F720 ; Move print head further up{endif}\nG4 ; wait\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nM221 S100 ; reset flow\nM572 S0 ; reset PA\nM569 S1 X Y ; reset to stealthchop for X Y\nM84 ; disable motors\n; max_layer_z = [max_layer_z]", "machine_pause_gcode": "M601", - "machine_start_gcode": "M862.3 P \"MINI\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM862.5 P2 ; g-code level check\nM862.6 P\"Input shaper\" ; FW feature check\nM115 6.0.0+14794\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S170 ; set extruder temp for bed leveling\nM140 S[first_layer_bed_temperature] ; set bed temp\nM109 R170 ; wait for bed leveling temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM569 S1 X Y ; set stealthchop for X Y\nM204 T1250 ; set travel acceleration\nG28 ; home all without mesh bed level\nG29 ; mesh bed leveling \nM104 S[first_layer_temperature] ; set extruder temp\nG92 E0\n\nG1 X0 Y-2 Z3 F2400\n\nM109 S[first_layer_temperature] ; wait for extruder temp\n\n; intro line\nG1 X10 Z0.2 F1000\nG1 X70 E8 F900\nG1 X140 E10 F700\nG92 E0\n\nM569 S0 X Y ; set spreadcycle for X Y\nM204 T[machine_max_acceleration_travel] ; restore travel acceleration\nM572 W0.06 ; set smooth time\nM221 S95 ; set flow", + "machine_start_gcode": "M862.3 P \"MINI\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM862.5 P2 ; g-code level check\nM862.6 P\"Input shaper\" ; FW feature check\nM115 U6.0.1+14848\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S170 ; set extruder temp for bed leveling\nM140 S[first_layer_bed_temperature] ; set bed temp\nM109 R170 ; wait for bed leveling temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM569 S1 X Y ; set stealthchop for X Y\nM204 T1250 ; set travel acceleration\nG28 ; home all without mesh bed level\nG29 ; mesh bed leveling \nM104 S[first_layer_temperature] ; set extruder temp\nG92 E0\n\nG1 X0 Y-2 Z3 F2400\n\nM109 S[first_layer_temperature] ; wait for extruder temp\n\n; intro line\nG1 X10 Z0.2 F1000\nG1 X70 E8 F900\nG1 X140 E10 F700\nG92 E0\n\nM569 S0 X Y ; set spreadcycle for X Y\nM204 T[machine_max_acceleration_travel] ; restore travel acceleration\nM572 W0.06 ; set smooth time\nM221 S95 ; set flow", "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\nG92 E0.0\n;[layer_z]\nM201 X{interpolate_table(extruded_weight_total, (0,4000), (1000,1700), (10000,1700))} Y{interpolate_table(extruded_weight_total, (0,4000), (1000,1700), (10000,1700))}\n{if ! spiral_mode}M74 W[extruded_weight_total]{endif}\n", "change_filament_gcode": "M600\nG1 E0.4 F1500 ; prime after color change", "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", diff --git a/resources/profiles/Prusa/machine/Prusa MINIIS 0.6 nozzle.json b/resources/profiles/Prusa/machine/Prusa MINIIS 0.6 nozzle.json index 69775ca1e5..fc25320c97 100644 --- a/resources/profiles/Prusa/machine/Prusa MINIIS 0.6 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa MINIIS 0.6 nozzle.json @@ -9,7 +9,7 @@ "printer_model": "MINIIS", "printer_variant": "0.6", "default_filament_profile": [ - "Prusa Generic PLA @MINIIS" + "Prusa Generic PLA @MINIIS 0.6" ], "default_print_profile": "0.25mm Standard @MINIIS", "nozzle_diameter": [ diff --git a/resources/profiles/Prusa/machine/Prusa MINIIS 0.8 nozzle.json b/resources/profiles/Prusa/machine/Prusa MINIIS 0.8 nozzle.json index 9eb6861bfb..f6bba228ca 100644 --- a/resources/profiles/Prusa/machine/Prusa MINIIS 0.8 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa MINIIS 0.8 nozzle.json @@ -9,7 +9,7 @@ "printer_model": "MINIIS", "printer_variant": "0.8", "default_filament_profile": [ - "Prusa Generic PLA @MINIIS" + "Prusa Generic PLA @MINIIS 0.8" ], "default_print_profile": "0.40mm Standard @MINIIS", "nozzle_diameter": [ diff --git a/resources/profiles/Prusa/machine/Prusa XL 0.25 nozzle.json b/resources/profiles/Prusa/machine/Prusa XL 0.25 nozzle.json new file mode 100644 index 0000000000..a8a7cd75da --- /dev/null +++ b/resources/profiles/Prusa/machine/Prusa XL 0.25 nozzle.json @@ -0,0 +1,118 @@ +{ + "type": "machine", + "setting_id": "GM003", + "name": "Prusa XL 0.25 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_machine_common", + "gcode_flavor": "marlin2", + "printer_model": "Prusa XL", + "default_filament_profile": "Prusa Generic PLA @XL", + "default_print_profile": "0.15mm Speed @Prusa XL 0.25", + "extruder_clearance_radius": "67", + "extruder_clearance_height_to_rod": "21", + "extruder_clearance_height_to_lid": "21", + "printer_variant": "0.25", + "nozzle_diameter": [ + "0.25" + ], + "max_layer_height": "0.15", + "min_layer_height": "0.05", + "bed_exclude_area": [ + "0x0" + ], + "printable_area": [ + "0x0", + "360x0", + "360x360", + "0x360" + ], + "machine_max_acceleration_e": [ + "2500", + "2500" + ], + "machine_max_acceleration_extruding": [ + "4000", + "4000" + ], + "machine_max_acceleration_retracting": [ + "1200", + "1200" + ], + "machine_max_acceleration_x": [ + "7000", + "7000" + ], + "machine_max_acceleration_y": [ + "7000", + "7000" + ], + "machine_max_acceleration_z": [ + "200", + "200" + ], + "machine_max_acceleration_travel": [ + "2500", + "2500" + ], + "machine_max_speed_e": [ + "100", + "100" + ], + "machine_max_speed_x": [ + "400", + "400" + ], + "machine_max_speed_y": [ + "400", + "400" + ], + "machine_max_speed_z": [ + "12", + "12" + ], + "machine_max_jerk_e": [ + "10", + "10" + ], + "machine_max_jerk_x": [ + "8", + "8" + ], + "machine_max_jerk_y": [ + "8", + "8" + ], + "machine_max_jerk_z": [ + "2", + "2" + ], + "retraction_length": "0.8", + "retraction_speed": "35", + "detraction_speed": "25", + "retraction_minimum_travel": "1.5", + "retract_when_changing_layer": "1", + "wipe": "1", + "retract_before_wipe": "80%", + "retract_lift_below": "1.5", + "z_hop_types": "Auto Lift", + "host_type": "prusalink", + "printable_height": "360", + "machine_end_gcode": "{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+2, max_print_height)} F720{endif} ; Move bed down\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X6 Y350 F6000 ; park\n{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+100, max_print_height)} F300{endif} ; Move bed down\nM900 K0 ; reset LA\nM142 S36 ; reset heatbreak target temp\nM221 S100 ; reset flow percentage\nM84 ; disable motors\n; max_layer_z = [max_layer_z]", + "machine_pause_gcode": "M601", + "machine_start_gcode": "M17 ; enable steppers\nM862.3 P \"XL\" ; printer model check\nM115 U6.0.1+14848\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\n; set print area\nM555 X{first_layer_print_min[0]} Y{first_layer_print_min[1]} W{(first_layer_print_max[0]) - (first_layer_print_min[0])} H{(first_layer_print_max[1]) - (first_layer_print_min[1])}\n; inform about nozzle diameter\nM862.1 P[nozzle_diameter]\n; set & wait for bed and extruder temp for MBL\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; home carriage, pick tool, home all\nG28 XY\nM84 E ; turn off E motor\nG28 Z\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nG29 G ; absorb heat\n; move to the nozzle cleanup area\nG1 X{(min(((((first_layer_print_min[0] + first_layer_print_max[0]) / 2) < ((print_bed_min[0] + print_bed_max[0]) / 2)) ? (((first_layer_print_min[1] - 7) < -2) ? 70 : (min(print_bed_max[0], first_layer_print_min[0] + 32) - 32)) : (((first_layer_print_min[1] - 7) < -2) ? 260 : (min(print_bed_max[0], first_layer_print_min[0] + 32) - 32))), first_layer_print_min[0])) + 32} Y{(min((first_layer_print_min[1] - 7), first_layer_print_min[1]))} Z{5} F4800\nM302 S160 ; lower cold extrusion limit to 160C\nG1 E{-(filament_type[0] == \"FLEX\" ? 4 : 2)} F2400 ; retraction for nozzle cleanup\n; nozzle cleanup\nM84 E ; turn off E motor\nG29 P9 X{((((first_layer_print_min[0] + first_layer_print_max[0]) / 2) < ((print_bed_min[0] + print_bed_max[0]) / 2)) ? (((first_layer_print_min[1] - 7) < -2) ? 70 : (min(print_bed_max[0], first_layer_print_min[0] + 32) - 32)) : (((first_layer_print_min[1] - 7) < -2) ? 260 : (min(print_bed_max[0], first_layer_print_min[0] + 32) - 32)))} Y{(first_layer_print_min[1] - 7)} W{32} H{7}\nG0 Z10 F480 ; move away in Z\n{if first_layer_bed_temperature[0] > 60}\nG0 Z70 F480 ; move away (a bit more) in Z\nG0 X30 Y{print_bed_min[1]} F6000 ; move away in X/Y for higher bed temperatures\n{endif}\nM106 S100 ; cool off the nozzle\nM107 ; stop cooling off the nozzle - turn off the fan\n; MBL\nM84 E ; turn off E motor\nG29 P1 ; invalidate mbl & probe print area\nG29 P1 X30 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\nM104 S[first_layer_temperature] ; set extruder temp\nG1 Z10 F720 ; move away in Z\nG0 X30 Y-8 F6000 ; move next to the sheet\n; wait for extruder temp\nM109 T0 S{first_layer_temperature[0]}\n;\n; purge\n;\nG92 E0 ; reset extruder position\nG0 X{(0 == 0 ? 30 : (0 == 1 ? 150 : (0 == 2 ? 210 : 330)))} Y{(0 < 4 ? -8 : -5.5)} ; move close to the sheet's edge\nG1 E{(filament_type[0] == \"FLEX\" ? 4 : 2)} F2400 ; deretraction after the initial one before nozzle cleaning\nG0 E10 X40 Z0.2 F500 ; purge\nG0 X70 E9 F800 ; purge\nG0 X{70 + 3} Z{0.05} F{8000} ; wipe, move close to the bed\nG0 X{70 + 3 * 2} Z0.2 F{8000} ; wipe, move quickly away from the bed\nG92 E0 ; reset extruder position", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\nG92 E0.0\n;[layer_z]", + "change_filament_gcode": "M600\nG1 E0.3 F1500 ; prime after color change", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", + "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_XLIS\nPG\nINPUT_SHAPER", + "scan_first_layer": "0", + "nozzle_type": "hardened_steel", + "auxiliary_fan": "0", + "thumbnails": [ + "16x16/QOI", + "313x173/QOI", + "440x240/QOI", + "480x240/QOI", + "640x480/PNG" + ] +} diff --git a/resources/profiles/Prusa/machine/Prusa XL 0.3 nozzle.json b/resources/profiles/Prusa/machine/Prusa XL 0.3 nozzle.json new file mode 100644 index 0000000000..e83f1871a1 --- /dev/null +++ b/resources/profiles/Prusa/machine/Prusa XL 0.3 nozzle.json @@ -0,0 +1,118 @@ +{ + "type": "machine", + "setting_id": "GM003", + "name": "Prusa XL 0.3 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_machine_common", + "gcode_flavor": "marlin2", + "printer_model": "Prusa XL", + "default_filament_profile": "Prusa Generic PLA @XL", + "default_print_profile": "0.20mm Speed @Prusa XL 0.3", + "extruder_clearance_radius": "67", + "extruder_clearance_height_to_rod": "21", + "extruder_clearance_height_to_lid": "21", + "printer_variant": "0.3", + "nozzle_diameter": [ + "0.3" + ], + "max_layer_height": "0.22", + "min_layer_height": "0.05", + "bed_exclude_area": [ + "0x0" + ], + "printable_area": [ + "0x0", + "360x0", + "360x360", + "0x360" + ], + "machine_max_acceleration_e": [ + "2500", + "2500" + ], + "machine_max_acceleration_extruding": [ + "4000", + "4000" + ], + "machine_max_acceleration_retracting": [ + "1200", + "1200" + ], + "machine_max_acceleration_x": [ + "7000", + "7000" + ], + "machine_max_acceleration_y": [ + "7000", + "7000" + ], + "machine_max_acceleration_z": [ + "200", + "200" + ], + "machine_max_acceleration_travel": [ + "3000", + "3000" + ], + "machine_max_speed_e": [ + "100", + "100" + ], + "machine_max_speed_x": [ + "400", + "400" + ], + "machine_max_speed_y": [ + "400", + "400" + ], + "machine_max_speed_z": [ + "12", + "12" + ], + "machine_max_jerk_e": [ + "10", + "10" + ], + "machine_max_jerk_x": [ + "8", + "8" + ], + "machine_max_jerk_y": [ + "8", + "8" + ], + "machine_max_jerk_z": [ + "2", + "2" + ], + "retraction_length": "0.7", + "retraction_speed": "35", + "detraction_speed": "25", + "retraction_minimum_travel": "1.5", + "retract_when_changing_layer": "1", + "wipe": "1", + "retract_before_wipe": "80%", + "retract_lift_below": "1.5", + "z_hop_types": "Auto Lift", + "host_type": "prusalink", + "printable_height": "360", + "machine_end_gcode": "{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+2, max_print_height)} F720{endif} ; Move bed down\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X6 Y350 F6000 ; park\n{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+100, max_print_height)} F300{endif} ; Move bed down\nM900 K0 ; reset LA\nM142 S36 ; reset heatbreak target temp\nM221 S100 ; reset flow percentage\nM84 ; disable motors\n; max_layer_z = [max_layer_z]", + "machine_pause_gcode": "M601", + "machine_start_gcode": "M17 ; enable steppers\nM862.3 P \"XL\" ; printer model check\nM115 U6.0.1+14848\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\n; set print area\nM555 X{first_layer_print_min[0]} Y{first_layer_print_min[1]} W{(first_layer_print_max[0]) - (first_layer_print_min[0])} H{(first_layer_print_max[1]) - (first_layer_print_min[1])}\n; inform about nozzle diameter\nM862.1 P[nozzle_diameter]\n; set & wait for bed and extruder temp for MBL\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; home carriage, pick tool, home all\nG28 XY\nM84 E ; turn off E motor\nG28 Z\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nG29 G ; absorb heat\n; move to the nozzle cleanup area\nG1 X{(min(((((first_layer_print_min[0] + first_layer_print_max[0]) / 2) < ((print_bed_min[0] + print_bed_max[0]) / 2)) ? (((first_layer_print_min[1] - 7) < -2) ? 70 : (min(print_bed_max[0], first_layer_print_min[0] + 32) - 32)) : (((first_layer_print_min[1] - 7) < -2) ? 260 : (min(print_bed_max[0], first_layer_print_min[0] + 32) - 32))), first_layer_print_min[0])) + 32} Y{(min((first_layer_print_min[1] - 7), first_layer_print_min[1]))} Z{5} F4800\nM302 S160 ; lower cold extrusion limit to 160C\nG1 E{-(filament_type[0] == \"FLEX\" ? 4 : 2)} F2400 ; retraction for nozzle cleanup\n; nozzle cleanup\nM84 E ; turn off E motor\nG29 P9 X{((((first_layer_print_min[0] + first_layer_print_max[0]) / 2) < ((print_bed_min[0] + print_bed_max[0]) / 2)) ? (((first_layer_print_min[1] - 7) < -2) ? 70 : (min(print_bed_max[0], first_layer_print_min[0] + 32) - 32)) : (((first_layer_print_min[1] - 7) < -2) ? 260 : (min(print_bed_max[0], first_layer_print_min[0] + 32) - 32)))} Y{(first_layer_print_min[1] - 7)} W{32} H{7}\nG0 Z10 F480 ; move away in Z\n{if first_layer_bed_temperature[0] > 60}\nG0 Z70 F480 ; move away (a bit more) in Z\nG0 X30 Y{print_bed_min[1]} F6000 ; move away in X/Y for higher bed temperatures\n{endif}\nM106 S100 ; cool off the nozzle\nM107 ; stop cooling off the nozzle - turn off the fan\n; MBL\nM84 E ; turn off E motor\nG29 P1 ; invalidate mbl & probe print area\nG29 P1 X30 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\nM104 S[first_layer_temperature] ; set extruder temp\nG1 Z10 F720 ; move away in Z\nG0 X30 Y-8 F6000 ; move next to the sheet\n; wait for extruder temp\nM109 T0 S{first_layer_temperature[0]}\n;\n; purge\n;\nG92 E0 ; reset extruder position\nG0 X{(0 == 0 ? 30 : (0 == 1 ? 150 : (0 == 2 ? 210 : 330)))} Y{(0 < 4 ? -8 : -5.5)} ; move close to the sheet's edge\nG1 E{(filament_type[0] == \"FLEX\" ? 4 : 2)} F2400 ; deretraction after the initial one before nozzle cleaning\nG0 E10 X40 Z0.2 F500 ; purge\nG0 X70 E9 F800 ; purge\nG0 X{70 + 3} Z{0.05} F{8000} ; wipe, move close to the bed\nG0 X{70 + 3 * 2} Z0.2 F{8000} ; wipe, move quickly away from the bed\nG92 E0 ; reset extruder position", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\nG92 E0.0\n;[layer_z]", + "change_filament_gcode": "M600\nG1 E0.3 F1500 ; prime after color change", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", + "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_XLIS\nPG\nINPUT_SHAPER", + "scan_first_layer": "0", + "nozzle_type": "hardened_steel", + "auxiliary_fan": "0", + "thumbnails": [ + "16x16/QOI", + "313x173/QOI", + "440x240/QOI", + "480x240/QOI", + "640x480/PNG" + ] +} diff --git a/resources/profiles/Prusa/machine/Prusa XL 0.4 nozzle.json b/resources/profiles/Prusa/machine/Prusa XL 0.4 nozzle.json new file mode 100644 index 0000000000..cbb286aa5b --- /dev/null +++ b/resources/profiles/Prusa/machine/Prusa XL 0.4 nozzle.json @@ -0,0 +1,118 @@ +{ + "type": "machine", + "setting_id": "GM003", + "name": "Prusa XL 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_machine_common", + "gcode_flavor": "marlin2", + "printer_model": "Prusa XL", + "default_filament_profile": "Prusa Generic PLA @XL", + "default_print_profile": "0.20mm Speed @Prusa XL 0.4", + "extruder_clearance_radius": "67", + "extruder_clearance_height_to_rod": "21", + "extruder_clearance_height_to_lid": "21", + "printer_variant": "0.4", + "nozzle_diameter": [ + "0.4" + ], + "max_layer_height": "0.3", + "min_layer_height": "0.07", + "bed_exclude_area": [ + "0x0" + ], + "printable_area": [ + "0x0", + "360x0", + "360x360", + "0x360" + ], + "machine_max_acceleration_e": [ + "2500", + "2500" + ], + "machine_max_acceleration_extruding": [ + "4000", + "4000" + ], + "machine_max_acceleration_retracting": [ + "1200", + "1200" + ], + "machine_max_acceleration_x": [ + "7000", + "7000" + ], + "machine_max_acceleration_y": [ + "7000", + "7000" + ], + "machine_max_acceleration_z": [ + "200", + "200" + ], + "machine_max_acceleration_travel": [ + "5000", + "5000" + ], + "machine_max_speed_e": [ + "100", + "100" + ], + "machine_max_speed_x": [ + "400", + "400" + ], + "machine_max_speed_y": [ + "400", + "400" + ], + "machine_max_speed_z": [ + "12", + "12" + ], + "machine_max_jerk_e": [ + "10", + "10" + ], + "machine_max_jerk_x": [ + "8", + "8" + ], + "machine_max_jerk_y": [ + "8", + "8" + ], + "machine_max_jerk_z": [ + "2", + "2" + ], + "retraction_length": "0.8", + "retraction_speed": "35", + "detraction_speed": "25", + "retraction_minimum_travel": "1.5", + "retract_when_changing_layer": "1", + "wipe": "1", + "retract_before_wipe": "80%", + "retract_lift_below": "1.5", + "z_hop_types": "Auto Lift", + "host_type": "prusalink", + "printable_height": "360", + "machine_end_gcode": "{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+2, max_print_height)} F720{endif} ; Move bed down\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X6 Y350 F6000 ; park\n{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+100, max_print_height)} F300{endif} ; Move bed down\nM900 K0 ; reset LA\nM142 S36 ; reset heatbreak target temp\nM221 S100 ; reset flow percentage\nM84 ; disable motors\n; max_layer_z = [max_layer_z]", + "machine_pause_gcode": "M601", + "machine_start_gcode": "M17 ; enable steppers\nM862.3 P \"XL\" ; printer model check\nM115 U6.0.1+14848\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\n; set print area\nM555 X{first_layer_print_min[0]} Y{first_layer_print_min[1]} W{(first_layer_print_max[0]) - (first_layer_print_min[0])} H{(first_layer_print_max[1]) - (first_layer_print_min[1])}\n; inform about nozzle diameter\nM862.1 P[nozzle_diameter]\n; set & wait for bed and extruder temp for MBL\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; home carriage, pick tool, home all\nG28 XY\nM84 E ; turn off E motor\nG28 Z\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nG29 G ; absorb heat\n; move to the nozzle cleanup area\nG1 X{(min(((((first_layer_print_min[0] + first_layer_print_max[0]) / 2) < ((print_bed_min[0] + print_bed_max[0]) / 2)) ? (((first_layer_print_min[1] - 7) < -2) ? 70 : (min(print_bed_max[0], first_layer_print_min[0] + 32) - 32)) : (((first_layer_print_min[1] - 7) < -2) ? 260 : (min(print_bed_max[0], first_layer_print_min[0] + 32) - 32))), first_layer_print_min[0])) + 32} Y{(min((first_layer_print_min[1] - 7), first_layer_print_min[1]))} Z{5} F4800\nM302 S160 ; lower cold extrusion limit to 160C\nG1 E{-(filament_type[0] == \"FLEX\" ? 4 : 2)} F2400 ; retraction for nozzle cleanup\n; nozzle cleanup\nM84 E ; turn off E motor\nG29 P9 X{((((first_layer_print_min[0] + first_layer_print_max[0]) / 2) < ((print_bed_min[0] + print_bed_max[0]) / 2)) ? (((first_layer_print_min[1] - 7) < -2) ? 70 : (min(print_bed_max[0], first_layer_print_min[0] + 32) - 32)) : (((first_layer_print_min[1] - 7) < -2) ? 260 : (min(print_bed_max[0], first_layer_print_min[0] + 32) - 32)))} Y{(first_layer_print_min[1] - 7)} W{32} H{7}\nG0 Z10 F480 ; move away in Z\n{if first_layer_bed_temperature[0] > 60}\nG0 Z70 F480 ; move away (a bit more) in Z\nG0 X30 Y{print_bed_min[1]} F6000 ; move away in X/Y for higher bed temperatures\n{endif}\nM106 S100 ; cool off the nozzle\nM107 ; stop cooling off the nozzle - turn off the fan\n; MBL\nM84 E ; turn off E motor\nG29 P1 ; invalidate mbl & probe print area\nG29 P1 X30 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\nM104 S[first_layer_temperature] ; set extruder temp\nG1 Z10 F720 ; move away in Z\nG0 X30 Y-8 F6000 ; move next to the sheet\n; wait for extruder temp\nM109 T0 S{first_layer_temperature[0]}\n;\n; purge\n;\nG92 E0 ; reset extruder position\nG0 X{(0 == 0 ? 30 : (0 == 1 ? 150 : (0 == 2 ? 210 : 330)))} Y{(0 < 4 ? -8 : -5.5)} ; move close to the sheet's edge\nG1 E{(filament_type[0] == \"FLEX\" ? 4 : 2)} F2400 ; deretraction after the initial one before nozzle cleaning\nG0 E10 X40 Z0.2 F500 ; purge\nG0 X70 E9 F800 ; purge\nG0 X{70 + 3} Z{0.05} F{8000} ; wipe, move close to the bed\nG0 X{70 + 3 * 2} Z0.2 F{8000} ; wipe, move quickly away from the bed\nG92 E0 ; reset extruder position", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\nG92 E0.0\n;[layer_z]", + "change_filament_gcode": "M600\nG1 E0.3 F1500 ; prime after color change", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", + "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_XLIS\nPG\nINPUT_SHAPER", + "scan_first_layer": "0", + "nozzle_type": "hardened_steel", + "auxiliary_fan": "0", + "thumbnails": [ + "16x16/QOI", + "313x173/QOI", + "440x240/QOI", + "480x240/QOI", + "640x480/PNG" + ] +} diff --git a/resources/profiles/Prusa/machine/Prusa XL 0.5 nozzle.json b/resources/profiles/Prusa/machine/Prusa XL 0.5 nozzle.json new file mode 100644 index 0000000000..937e88f016 --- /dev/null +++ b/resources/profiles/Prusa/machine/Prusa XL 0.5 nozzle.json @@ -0,0 +1,118 @@ +{ + "type": "machine", + "setting_id": "GM003", + "name": "Prusa XL 0.5 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_machine_common", + "gcode_flavor": "marlin2", + "printer_model": "Prusa XL", + "default_filament_profile": "Prusa Generic PLA @XL", + "default_print_profile": "0.25mm Speed @Prusa XL 0.5", + "extruder_clearance_radius": "67", + "extruder_clearance_height_to_rod": "21", + "extruder_clearance_height_to_lid": "21", + "printer_variant": "0.5", + "nozzle_diameter": [ + "0.5" + ], + "max_layer_height": "0.32", + "min_layer_height": "0.07", + "bed_exclude_area": [ + "0x0" + ], + "printable_area": [ + "0x0", + "360x0", + "360x360", + "0x360" + ], + "machine_max_acceleration_e": [ + "2500", + "2500" + ], + "machine_max_acceleration_extruding": [ + "4000", + "4000" + ], + "machine_max_acceleration_retracting": [ + "1200", + "1200" + ], + "machine_max_acceleration_x": [ + "7000", + "7000" + ], + "machine_max_acceleration_y": [ + "7000", + "7000" + ], + "machine_max_acceleration_z": [ + "200", + "200" + ], + "machine_max_acceleration_travel": [ + "5000", + "5000" + ], + "machine_max_speed_e": [ + "100", + "100" + ], + "machine_max_speed_x": [ + "400", + "400" + ], + "machine_max_speed_y": [ + "400", + "400" + ], + "machine_max_speed_z": [ + "12", + "12" + ], + "machine_max_jerk_e": [ + "10", + "10" + ], + "machine_max_jerk_x": [ + "8", + "8" + ], + "machine_max_jerk_y": [ + "8", + "8" + ], + "machine_max_jerk_z": [ + "2", + "2" + ], + "retraction_length": "0.7", + "retraction_speed": "35", + "detraction_speed": "25", + "retraction_minimum_travel": "1.5", + "retract_when_changing_layer": "1", + "wipe": "1", + "retract_before_wipe": "80%", + "retract_lift_below": "1.5", + "z_hop_types": "Auto Lift", + "host_type": "prusalink", + "printable_height": "360", + "machine_end_gcode": "{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+2, max_print_height)} F720{endif} ; Move bed down\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X6 Y350 F6000 ; park\n{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+100, max_print_height)} F300{endif} ; Move bed down\nM900 K0 ; reset LA\nM142 S36 ; reset heatbreak target temp\nM221 S100 ; reset flow percentage\nM84 ; disable motors\n; max_layer_z = [max_layer_z]", + "machine_pause_gcode": "M601", + "machine_start_gcode": "M17 ; enable steppers\nM862.3 P \"XL\" ; printer model check\nM115 U6.0.1+14848\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\n; set print area\nM555 X{first_layer_print_min[0]} Y{first_layer_print_min[1]} W{(first_layer_print_max[0]) - (first_layer_print_min[0])} H{(first_layer_print_max[1]) - (first_layer_print_min[1])}\n; inform about nozzle diameter\nM862.1 P[nozzle_diameter]\n; set & wait for bed and extruder temp for MBL\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; home carriage, pick tool, home all\nG28 XY\nM84 E ; turn off E motor\nG28 Z\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nG29 G ; absorb heat\n; move to the nozzle cleanup area\nG1 X{(min(((((first_layer_print_min[0] + first_layer_print_max[0]) / 2) < ((print_bed_min[0] + print_bed_max[0]) / 2)) ? (((first_layer_print_min[1] - 7) < -2) ? 70 : (min(print_bed_max[0], first_layer_print_min[0] + 32) - 32)) : (((first_layer_print_min[1] - 7) < -2) ? 260 : (min(print_bed_max[0], first_layer_print_min[0] + 32) - 32))), first_layer_print_min[0])) + 32} Y{(min((first_layer_print_min[1] - 7), first_layer_print_min[1]))} Z{5} F4800\nM302 S160 ; lower cold extrusion limit to 160C\nG1 E{-(filament_type[0] == \"FLEX\" ? 4 : 2)} F2400 ; retraction for nozzle cleanup\n; nozzle cleanup\nM84 E ; turn off E motor\nG29 P9 X{((((first_layer_print_min[0] + first_layer_print_max[0]) / 2) < ((print_bed_min[0] + print_bed_max[0]) / 2)) ? (((first_layer_print_min[1] - 7) < -2) ? 70 : (min(print_bed_max[0], first_layer_print_min[0] + 32) - 32)) : (((first_layer_print_min[1] - 7) < -2) ? 260 : (min(print_bed_max[0], first_layer_print_min[0] + 32) - 32)))} Y{(first_layer_print_min[1] - 7)} W{32} H{7}\nG0 Z10 F480 ; move away in Z\n{if first_layer_bed_temperature[0] > 60}\nG0 Z70 F480 ; move away (a bit more) in Z\nG0 X30 Y{print_bed_min[1]} F6000 ; move away in X/Y for higher bed temperatures\n{endif}\nM106 S100 ; cool off the nozzle\nM107 ; stop cooling off the nozzle - turn off the fan\n; MBL\nM84 E ; turn off E motor\nG29 P1 ; invalidate mbl & probe print area\nG29 P1 X30 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\nM104 S[first_layer_temperature] ; set extruder temp\nG1 Z10 F720 ; move away in Z\nG0 X30 Y-8 F6000 ; move next to the sheet\n; wait for extruder temp\nM109 T0 S{first_layer_temperature[0]}\n;\n; purge\n;\nG92 E0 ; reset extruder position\nG0 X{(0 == 0 ? 30 : (0 == 1 ? 150 : (0 == 2 ? 210 : 330)))} Y{(0 < 4 ? -8 : -5.5)} ; move close to the sheet's edge\nG1 E{(filament_type[0] == \"FLEX\" ? 4 : 2)} F2400 ; deretraction after the initial one before nozzle cleaning\nG0 E10 X40 Z0.2 F500 ; purge\nG0 X70 E9 F800 ; purge\nG0 X{70 + 3} Z{0.05} F{8000} ; wipe, move close to the bed\nG0 X{70 + 3 * 2} Z0.2 F{8000} ; wipe, move quickly away from the bed\nG92 E0 ; reset extruder position", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\nG92 E0.0\n;[layer_z]", + "change_filament_gcode": "M600\nG1 E0.3 F1500 ; prime after color change", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", + "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_XLIS\nPG\nINPUT_SHAPER", + "scan_first_layer": "0", + "nozzle_type": "hardened_steel", + "auxiliary_fan": "0", + "thumbnails": [ + "16x16/QOI", + "313x173/QOI", + "440x240/QOI", + "480x240/QOI", + "640x480/PNG" + ] +} diff --git a/resources/profiles/Prusa/machine/Prusa XL 0.6 nozzle.json b/resources/profiles/Prusa/machine/Prusa XL 0.6 nozzle.json new file mode 100644 index 0000000000..e0d47b46c6 --- /dev/null +++ b/resources/profiles/Prusa/machine/Prusa XL 0.6 nozzle.json @@ -0,0 +1,118 @@ +{ + "type": "machine", + "setting_id": "GM003", + "name": "Prusa XL 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_machine_common", + "gcode_flavor": "marlin2", + "printer_model": "Prusa XL", + "default_filament_profile": "Prusa Generic PLA @XL", + "default_print_profile": "0.32mm Speed @Prusa XL 0.6", + "extruder_clearance_radius": "67", + "extruder_clearance_height_to_rod": "21", + "extruder_clearance_height_to_lid": "21", + "printer_variant": "0.6", + "nozzle_diameter": [ + "0.6" + ], + "max_layer_height": "0.4", + "min_layer_height": "0.15", + "bed_exclude_area": [ + "0x0" + ], + "printable_area": [ + "0x0", + "360x0", + "360x360", + "0x360" + ], + "machine_max_acceleration_e": [ + "2500", + "2500" + ], + "machine_max_acceleration_extruding": [ + "4000", + "4000" + ], + "machine_max_acceleration_retracting": [ + "1200", + "1200" + ], + "machine_max_acceleration_x": [ + "7000", + "7000" + ], + "machine_max_acceleration_y": [ + "7000", + "7000" + ], + "machine_max_acceleration_z": [ + "200", + "200" + ], + "machine_max_acceleration_travel": [ + "5000", + "5000" + ], + "machine_max_speed_e": [ + "100", + "100" + ], + "machine_max_speed_x": [ + "400", + "400" + ], + "machine_max_speed_y": [ + "400", + "400" + ], + "machine_max_speed_z": [ + "12", + "12" + ], + "machine_max_jerk_e": [ + "10", + "10" + ], + "machine_max_jerk_x": [ + "8", + "8" + ], + "machine_max_jerk_y": [ + "8", + "8" + ], + "machine_max_jerk_z": [ + "2", + "2" + ], + "retraction_length": "0.7", + "retraction_speed": "35", + "detraction_speed": "25", + "retraction_minimum_travel": "1.5", + "retract_when_changing_layer": "1", + "wipe": "1", + "retract_before_wipe": "0%", + "retract_lift_below": "1.5", + "z_hop_types": "Auto Lift", + "host_type": "prusalink", + "printable_height": "360", + "machine_end_gcode": "{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+2, max_print_height)} F720{endif} ; Move bed down\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X6 Y350 F6000 ; park\n{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+100, max_print_height)} F300{endif} ; Move bed down\nM900 K0 ; reset LA\nM142 S36 ; reset heatbreak target temp\nM221 S100 ; reset flow percentage\nM84 ; disable motors\n; max_layer_z = [max_layer_z]", + "machine_pause_gcode": "M601", + "machine_start_gcode": "M17 ; enable steppers\nM862.3 P \"XL\" ; printer model check\nM115 U6.0.1+14848\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\n; set print area\nM555 X{first_layer_print_min[0]} Y{first_layer_print_min[1]} W{(first_layer_print_max[0]) - (first_layer_print_min[0])} H{(first_layer_print_max[1]) - (first_layer_print_min[1])}\n; inform about nozzle diameter\nM862.1 P[nozzle_diameter]\n; set & wait for bed and extruder temp for MBL\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; home carriage, pick tool, home all\nG28 XY\nM84 E ; turn off E motor\nG28 Z\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nG29 G ; absorb heat\n; move to the nozzle cleanup area\nG1 X{(min(((((first_layer_print_min[0] + first_layer_print_max[0]) / 2) < ((print_bed_min[0] + print_bed_max[0]) / 2)) ? (((first_layer_print_min[1] - 7) < -2) ? 70 : (min(print_bed_max[0], first_layer_print_min[0] + 32) - 32)) : (((first_layer_print_min[1] - 7) < -2) ? 260 : (min(print_bed_max[0], first_layer_print_min[0] + 32) - 32))), first_layer_print_min[0])) + 32} Y{(min((first_layer_print_min[1] - 7), first_layer_print_min[1]))} Z{5} F4800\nM302 S160 ; lower cold extrusion limit to 160C\nG1 E{-(filament_type[0] == \"FLEX\" ? 4 : 2)} F2400 ; retraction for nozzle cleanup\n; nozzle cleanup\nM84 E ; turn off E motor\nG29 P9 X{((((first_layer_print_min[0] + first_layer_print_max[0]) / 2) < ((print_bed_min[0] + print_bed_max[0]) / 2)) ? (((first_layer_print_min[1] - 7) < -2) ? 70 : (min(print_bed_max[0], first_layer_print_min[0] + 32) - 32)) : (((first_layer_print_min[1] - 7) < -2) ? 260 : (min(print_bed_max[0], first_layer_print_min[0] + 32) - 32)))} Y{(first_layer_print_min[1] - 7)} W{32} H{7}\nG0 Z10 F480 ; move away in Z\n{if first_layer_bed_temperature[0] > 60}\nG0 Z70 F480 ; move away (a bit more) in Z\nG0 X30 Y{print_bed_min[1]} F6000 ; move away in X/Y for higher bed temperatures\n{endif}\nM106 S100 ; cool off the nozzle\nM107 ; stop cooling off the nozzle - turn off the fan\n; MBL\nM84 E ; turn off E motor\nG29 P1 ; invalidate mbl & probe print area\nG29 P1 X30 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\nM104 S[first_layer_temperature] ; set extruder temp\nG1 Z10 F720 ; move away in Z\nG0 X30 Y-8 F6000 ; move next to the sheet\n; wait for extruder temp\nM109 T0 S{first_layer_temperature[0]}\n;\n; purge\n;\nG92 E0 ; reset extruder position\nG0 X{(0 == 0 ? 30 : (0 == 1 ? 150 : (0 == 2 ? 210 : 330)))} Y{(0 < 4 ? -8 : -5.5)} ; move close to the sheet's edge\nG1 E{(filament_type[0] == \"FLEX\" ? 4 : 2)} F2400 ; deretraction after the initial one before nozzle cleaning\nG0 E10 X40 Z0.2 F500 ; purge\nG0 X70 E9 F800 ; purge\nG0 X{70 + 3} Z{0.05} F{8000} ; wipe, move close to the bed\nG0 X{70 + 3 * 2} Z0.2 F{8000} ; wipe, move quickly away from the bed\nG92 E0 ; reset extruder position", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\nG92 E0.0\n;[layer_z]", + "change_filament_gcode": "M600\nG1 E0.3 F1500 ; prime after color change", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", + "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_XLIS\nPG\nINPUT_SHAPER", + "scan_first_layer": "0", + "nozzle_type": "hardened_steel", + "auxiliary_fan": "0", + "thumbnails": [ + "16x16/QOI", + "313x173/QOI", + "440x240/QOI", + "480x240/QOI", + "640x480/PNG" + ] +} diff --git a/resources/profiles/Prusa/machine/Prusa XL 0.8 nozzle.json b/resources/profiles/Prusa/machine/Prusa XL 0.8 nozzle.json new file mode 100644 index 0000000000..85c1631bcb --- /dev/null +++ b/resources/profiles/Prusa/machine/Prusa XL 0.8 nozzle.json @@ -0,0 +1,118 @@ +{ + "type": "machine", + "setting_id": "GM003", + "name": "Prusa XL 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_machine_common", + "gcode_flavor": "marlin2", + "printer_model": "Prusa XL", + "default_filament_profile": "Prusa Generic PLA @XL", + "default_print_profile": "0.40mm Quality @Prusa XL 0.8", + "extruder_clearance_radius": "67", + "extruder_clearance_height_to_rod": "21", + "extruder_clearance_height_to_lid": "21", + "printer_variant": "0.8", + "nozzle_diameter": [ + "0.8" + ], + "max_layer_height": "0.6", + "min_layer_height": "0.2", + "bed_exclude_area": [ + "0x0" + ], + "printable_area": [ + "0x0", + "360x0", + "360x360", + "0x360" + ], + "machine_max_acceleration_e": [ + "2500", + "2500" + ], + "machine_max_acceleration_extruding": [ + "4000", + "4000" + ], + "machine_max_acceleration_retracting": [ + "1200", + "1200" + ], + "machine_max_acceleration_x": [ + "7000", + "7000" + ], + "machine_max_acceleration_y": [ + "7000", + "7000" + ], + "machine_max_acceleration_z": [ + "200", + "200" + ], + "machine_max_acceleration_travel": [ + "5000", + "5000" + ], + "machine_max_speed_e": [ + "100", + "100" + ], + "machine_max_speed_x": [ + "400", + "400" + ], + "machine_max_speed_y": [ + "400", + "400" + ], + "machine_max_speed_z": [ + "12", + "12" + ], + "machine_max_jerk_e": [ + "10", + "10" + ], + "machine_max_jerk_x": [ + "8", + "8" + ], + "machine_max_jerk_y": [ + "8", + "8" + ], + "machine_max_jerk_z": [ + "2", + "2" + ], + "retraction_length": "0.6", + "retraction_speed": "25", + "detraction_speed": "15", + "retraction_minimum_travel": "1.5", + "retract_when_changing_layer": "1", + "wipe": "1", + "retract_before_wipe": "50%", + "retract_lift_below": "1.5", + "z_hop_types": "Auto Lift", + "host_type": "prusalink", + "printable_height": "360", + "machine_end_gcode": "{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+2, max_print_height)} F720{endif} ; Move bed down\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X6 Y350 F6000 ; park\n{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+100, max_print_height)} F300{endif} ; Move bed down\nM900 K0 ; reset LA\nM142 S36 ; reset heatbreak target temp\nM221 S100 ; reset flow percentage\nM84 ; disable motors\n; max_layer_z = [max_layer_z]", + "machine_pause_gcode": "M601", + "machine_start_gcode": "M17 ; enable steppers\nM862.3 P \"XL\" ; printer model check\nM115 U6.0.1+14848\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\n; set print area\nM555 X{first_layer_print_min[0]} Y{first_layer_print_min[1]} W{(first_layer_print_max[0]) - (first_layer_print_min[0])} H{(first_layer_print_max[1]) - (first_layer_print_min[1])}\n; inform about nozzle diameter\nM862.1 P[nozzle_diameter]\n; set & wait for bed and extruder temp for MBL\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; home carriage, pick tool, home all\nG28 XY\nM84 E ; turn off E motor\nG28 Z\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nG29 G ; absorb heat\n; move to the nozzle cleanup area\nG1 X{(min(((((first_layer_print_min[0] + first_layer_print_max[0]) / 2) < ((print_bed_min[0] + print_bed_max[0]) / 2)) ? (((first_layer_print_min[1] - 7) < -2) ? 70 : (min(print_bed_max[0], first_layer_print_min[0] + 32) - 32)) : (((first_layer_print_min[1] - 7) < -2) ? 260 : (min(print_bed_max[0], first_layer_print_min[0] + 32) - 32))), first_layer_print_min[0])) + 32} Y{(min((first_layer_print_min[1] - 7), first_layer_print_min[1]))} Z{5} F4800\nM302 S160 ; lower cold extrusion limit to 160C\nG1 E{-(filament_type[0] == \"FLEX\" ? 4 : 2)} F2400 ; retraction for nozzle cleanup\n; nozzle cleanup\nM84 E ; turn off E motor\nG29 P9 X{((((first_layer_print_min[0] + first_layer_print_max[0]) / 2) < ((print_bed_min[0] + print_bed_max[0]) / 2)) ? (((first_layer_print_min[1] - 7) < -2) ? 70 : (min(print_bed_max[0], first_layer_print_min[0] + 32) - 32)) : (((first_layer_print_min[1] - 7) < -2) ? 260 : (min(print_bed_max[0], first_layer_print_min[0] + 32) - 32)))} Y{(first_layer_print_min[1] - 7)} W{32} H{7}\nG0 Z10 F480 ; move away in Z\n{if first_layer_bed_temperature[0] > 60}\nG0 Z70 F480 ; move away (a bit more) in Z\nG0 X30 Y{print_bed_min[1]} F6000 ; move away in X/Y for higher bed temperatures\n{endif}\nM106 S100 ; cool off the nozzle\nM107 ; stop cooling off the nozzle - turn off the fan\n; MBL\nM84 E ; turn off E motor\nG29 P1 ; invalidate mbl & probe print area\nG29 P1 X30 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\nM104 S[first_layer_temperature] ; set extruder temp\nG1 Z10 F720 ; move away in Z\nG0 X30 Y-8 F6000 ; move next to the sheet\n; wait for extruder temp\nM109 T0 S{first_layer_temperature[0]}\n;\n; purge\n;\nG92 E0 ; reset extruder position\nG0 X{(0 == 0 ? 30 : (0 == 1 ? 150 : (0 == 2 ? 210 : 330)))} Y{(0 < 4 ? -8 : -5.5)} ; move close to the sheet's edge\nG1 E{(filament_type[0] == \"FLEX\" ? 4 : 2)} F2400 ; deretraction after the initial one before nozzle cleaning\nG0 E10 X40 Z0.2 F500 ; purge\nG0 X70 E9 F800 ; purge\nG0 X{70 + 3} Z{0.05} F{8000} ; wipe, move close to the bed\nG0 X{70 + 3 * 2} Z0.2 F{8000} ; wipe, move quickly away from the bed\nG92 E0 ; reset extruder position", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\nG92 E0.0\n;[layer_z]", + "change_filament_gcode": "M600\nG1 E0.3 F1500 ; prime after color change", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", + "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_XLIS\nPG\nINPUT_SHAPER", + "scan_first_layer": "0", + "nozzle_type": "hardened_steel", + "auxiliary_fan": "0", + "thumbnails": [ + "16x16/QOI", + "313x173/QOI", + "440x240/QOI", + "480x240/QOI", + "640x480/PNG" + ] +} diff --git a/resources/profiles/Prusa/machine/Prusa XL.json b/resources/profiles/Prusa/machine/Prusa XL.json new file mode 100644 index 0000000000..eb8487609c --- /dev/null +++ b/resources/profiles/Prusa/machine/Prusa XL.json @@ -0,0 +1,12 @@ +{ + "type": "machine_model", + "name": "Prusa XL", + "model_id": "Prusa XL", + "nozzle_diameter": "0.25;0.3;0.4;0.5;0.6;0.8", + "machine_tech": "FFF", + "family": "Prusa", + "bed_model": "Prusa XL_bed.stl", + "bed_texture": "Prusa XL.svg", + "hotend_model": "", + "default_materials": "Prusa Generic PLA @XL;Prusament PLA @XL;Prusament rPLA @XL;Prusa Generic PETG @XL;Prusament PETG @XL;Prusa Generic ABS @XL;Prusament ASA @XL;Prusament PC Blend @XL;Prusament PC-CF @XL;Prusament PVB @XL;Prusament PA-CF @XL" +} diff --git a/resources/profiles/Prusa/process/0.05mm Detail @MINIIS.json b/resources/profiles/Prusa/process/0.05mm Detail @MINIIS.json index bc1222ce36..033f40d22f 100644 --- a/resources/profiles/Prusa/process/0.05mm Detail @MINIIS.json +++ b/resources/profiles/Prusa/process/0.05mm Detail @MINIIS.json @@ -14,7 +14,7 @@ "internal_solid_infill_line_width": "0.25", "support_line_width": "0.25", "layer_height": "0.05", - "initial_layer_print_height": "0.2", + "initial_layer_print_height": "0.15", "top_shell_thickness": "0.7", "top_shell_layers": "13", "bottom_shell_thickness": "0.5", diff --git a/resources/profiles/Prusa/process/0.05mm Detail @Prusa XL 0.25.json b/resources/profiles/Prusa/process/0.05mm Detail @Prusa XL 0.25.json new file mode 100644 index 0000000000..408eecaf69 --- /dev/null +++ b/resources/profiles/Prusa/process/0.05mm Detail @Prusa XL 0.25.json @@ -0,0 +1,67 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.05mm Detail @Prusa XL 0.25", + "from": "system", + "instantiation": "true", + "inherits": "process_common_xl", + "inital_layer_height": "0.2", + "layer_height": "0.05", + "wall_loops": "3", + "top_shell_layers": "13", + "bottom_shell_layers": "10", + "top_shell_thickness": "0.7", + "bottom_shell_thickness": "0.5", + "sparse_infill_density": "15%", + "infill_anchor": "1", + "brim_object_gap": "0", + "support_threshold_angle": "40", + "raft_first_layer_density": "95%", + "raft_first_layer_expansion": "3.5", + "raft_contact_distance": "0.1", + "support_top_z_distance": "0.1", + "support_bottom_z_distance": "0.1", + "support_base_pattern_spacing": "1", + "support_interface_top_layers": "5", + "support_interface_spacing": "0.2", + "support_object_xy_distance": "150%", + "tree_support_bramch_diameter_angle": "5", + "tree_support_tip_diameter": "0.8", + "inner_wall_speed": "65", + "small_perimeter_speed": "40", + "outer_wall_speed": "40", + "sparse_infill_speed": "100", + "internal_solid_infill_speed": "100", + "top_surface_speed": "60", + "support_speed": "70", + "support_interface_speed": "75%", + "bridge_speed": "25", + "gap_infill_speed": "40", + "overhang_1_4_speed": "15", + "overhang_2_4_speed": "25", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "80%", + "default_acceleration": "1500", + "outer_wall_acceleration": "800", + "inner_wall_acceleration": "1200", + "top_surface_acceleration": "1000", + "internal_solid_infill_acceleration": "2000", + "sparse_infill_acceleration": "2500", + "bridge_acceleration": "1000", + "initial_layer_acceleration": "500", + "travel_acceleration": "4000", + "line_width": "0.27", + "initial_layer_line_width": "0.32", + "inner_wall_line_width": "0.25", + "outer_wall_line_width": "0.25", + "sparse_infill_line_width": "0.25", + "internal_solid_infill_line_width": "0.25", + "top_surface_line_width": "0.27", + "support_line_width": "0.25", + "infill_wall_overlap": "15%", + "resolution": "0.008", + "elefant_foot_compensation": "0", + "compatible_printers": [ + "Prusa XL 0.25 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.07mm Detail @MINIIS.json b/resources/profiles/Prusa/process/0.07mm Detail @MINIIS.json index 575a23a674..51e281895e 100644 --- a/resources/profiles/Prusa/process/0.07mm Detail @MINIIS.json +++ b/resources/profiles/Prusa/process/0.07mm Detail @MINIIS.json @@ -14,7 +14,7 @@ "internal_solid_infill_line_width": "0.25", "support_line_width": "0.25", "layer_height": "0.07", - "initial_layer_print_height": "0.2", + "initial_layer_print_height": "0.15", "top_shell_thickness": "0.7", "top_shell_layers": "10", "bottom_shell_thickness": "0.5", diff --git a/resources/profiles/Prusa/process/0.07mm Detail @Prusa XL 0.25.json b/resources/profiles/Prusa/process/0.07mm Detail @Prusa XL 0.25.json new file mode 100644 index 0000000000..e0c16d6552 --- /dev/null +++ b/resources/profiles/Prusa/process/0.07mm Detail @Prusa XL 0.25.json @@ -0,0 +1,67 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.07mm Detail @Prusa XL 0.25", + "from": "system", + "instantiation": "true", + "inherits": "process_common_xl", + "inital_layer_height": "0.2", + "layer_height": "0.07", + "wall_loops": "3", + "top_shell_layers": "11", + "bottom_shell_layers": "9", + "top_shell_thickness": "0.7", + "bottom_shell_thickness": "0.5", + "sparse_infill_density": "15%", + "infill_anchor": "1", + "brim_object_gap": "0", + "support_threshold_angle": "40", + "raft_first_layer_density": "95%", + "raft_first_layer_expansion": "3.5", + "raft_contact_distance": "0.1", + "support_top_z_distance": "0.09", + "support_bottom_z_distance": "0.09", + "support_base_pattern_spacing": "1", + "support_interface_top_layers": "5", + "support_interface_spacing": "0.2", + "support_object_xy_distance": "150%", + "tree_support_bramch_diameter_angle": "5", + "tree_support_tip_diameter": "0.8", + "inner_wall_speed": "65", + "small_perimeter_speed": "40", + "outer_wall_speed": "40", + "sparse_infill_speed": "100", + "internal_solid_infill_speed": "140", + "top_surface_speed": "70", + "support_speed": "70", + "support_interface_speed": "75%", + "bridge_speed": "30", + "gap_infill_speed": "40", + "overhang_1_4_speed": "15", + "overhang_2_4_speed": "25", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "80%", + "default_acceleration": "1500", + "outer_wall_acceleration": "800", + "inner_wall_acceleration": "1200", + "top_surface_acceleration": "1000", + "internal_solid_infill_acceleration": "2000", + "sparse_infill_acceleration": "2500", + "bridge_acceleration": "1000", + "initial_layer_acceleration": "500", + "travel_acceleration": "4000", + "line_width": "0.27", + "initial_layer_line_width": "0.32", + "inner_wall_line_width": "0.25", + "outer_wall_line_width": "0.25", + "sparse_infill_line_width": "0.25", + "internal_solid_infill_line_width": "0.25", + "top_surface_line_width": "0.27", + "support_line_width": "0.25", + "infill_wall_overlap": "15%", + "resolution": "0.008", + "elefant_foot_compensation": "0", + "compatible_printers": [ + "Prusa XL 0.25 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.10mm FastDetail @Prusa XL 0.4.json b/resources/profiles/Prusa/process/0.10mm FastDetail @Prusa XL 0.4.json new file mode 100644 index 0000000000..69947f0fc9 --- /dev/null +++ b/resources/profiles/Prusa/process/0.10mm FastDetail @Prusa XL 0.4.json @@ -0,0 +1,67 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.10mm FastDetail @Prusa XL 0.4", + "from": "system", + "instantiation": "true", + "inherits": "process_common_xl", + "inital_layer_height": "0.2", + "layer_height": "0.1", + "wall_loops": "3", + "top_shell_layers": "8", + "bottom_shell_layers": "7", + "top_shell_thickness": "0.7", + "bottom_shell_thickness": "0.5", + "sparse_infill_density": "15%", + "infill_anchor": "2", + "brim_object_gap": "0.1", + "support_threshold_angle": "40", + "raft_first_layer_density": "80%", + "raft_first_layer_expansion": "3.5", + "raft_contact_distance": "0.15", + "support_top_z_distance": "0.17", + "support_bottom_z_distance": "0.17", + "support_base_pattern_spacing": "2", + "support_interface_top_layers": "5", + "support_interface_spacing": "0.2", + "support_object_xy_distance": "80%", + "tree_support_bramch_diameter_angle": "5", + "tree_support_tip_diameter": "0.8", + "inner_wall_speed": "140", + "small_perimeter_speed": "140", + "outer_wall_speed": "140", + "sparse_infill_speed": "140", + "internal_solid_infill_speed": "200", + "top_surface_speed": "100", + "support_speed": "120", + "support_interface_speed": "50", + "bridge_speed": "40", + "gap_infill_speed": "120", + "overhang_1_4_speed": "15", + "overhang_2_4_speed": "25", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "80%", + "default_acceleration": "2500", + "outer_wall_acceleration": "2000", + "inner_wall_acceleration": "2000", + "top_surface_acceleration": "1500", + "internal_solid_infill_acceleration": "2500", + "sparse_infill_acceleration": "4000", + "bridge_acceleration": "1500", + "initial_layer_acceleration": "500", + "travel_acceleration": "5000", + "line_width": "0.45", + "initial_layer_line_width": "0.5", + "inner_wall_line_width": "0.45", + "outer_wall_line_width": "0.45", + "sparse_infill_line_width": "0.45", + "internal_solid_infill_line_width": "0.45", + "top_surface_line_width": "0.4", + "support_line_width": "0.36", + "infill_wall_overlap": "15%", + "resolution": "0.008", + "elefant_foot_compensation": "0.2", + "compatible_printers": [ + "Prusa XL 0.4 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.10mm Structural @Prusa XL 0.5.json b/resources/profiles/Prusa/process/0.10mm Structural @Prusa XL 0.5.json new file mode 100644 index 0000000000..ff2f1c73ed --- /dev/null +++ b/resources/profiles/Prusa/process/0.10mm Structural @Prusa XL 0.5.json @@ -0,0 +1,68 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.10mm Structural @Prusa XL 0.5", + "from": "system", + "instantiation": "true", + "inherits": "process_common_xl", + "inital_layer_height": "0.2", + "layer_height": "0.1", + "wall_loops": "2", + "top_shell_layers": "8", + "bottom_shell_layers": "7", + "top_shell_thickness": "0.7", + "bottom_shell_thickness": "0.5", + "sparse_infill_density": "15%", + "infill_anchor": "2", + "infill_anchor_max": "15", + "brim_object_gap": "0.1", + "support_threshold_angle": "40", + "raft_first_layer_density": "80%", + "raft_first_layer_expansion": "3.5", + "raft_contact_distance": "0.25", + "support_top_z_distance": "0.2", + "support_bottom_z_distance": "0.2", + "support_base_pattern_spacing": "2", + "support_interface_top_layers": "5", + "support_interface_spacing": "0.22", + "support_object_xy_distance": "80%", + "tree_support_bramch_diameter_angle": "5", + "tree_support_tip_diameter": "0.8", + "inner_wall_speed": "70", + "small_perimeter_speed": "40", + "outer_wall_speed": "40", + "sparse_infill_speed": "200", + "internal_solid_infill_speed": "200", + "top_surface_speed": "70", + "support_speed": "75", + "support_interface_speed": "75%", + "bridge_speed": "30", + "gap_infill_speed": "40", + "overhang_1_4_speed": "15", + "overhang_2_4_speed": "25", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "80%", + "default_acceleration": "2000", + "outer_wall_acceleration": "1500", + "inner_wall_acceleration": "2000", + "top_surface_acceleration": "1000", + "internal_solid_infill_acceleration": "2500", + "sparse_infill_acceleration": "3000", + "bridge_acceleration": "1000", + "initial_layer_acceleration": "500", + "travel_acceleration": "5000", + "line_width": "0.55", + "initial_layer_line_width": "0.55", + "inner_wall_line_width": "0.5", + "outer_wall_line_width": "0.5", + "sparse_infill_line_width": "0.5", + "internal_solid_infill_line_width": "0.5", + "top_surface_line_width": "0.45", + "support_line_width": "0.4", + "infill_wall_overlap": "15%", + "resolution": "0.008", + "elefant_foot_compensation": "0.2", + "compatible_printers": [ + "Prusa XL 0.5 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.12mm Speed @MINIIS.json b/resources/profiles/Prusa/process/0.12mm Speed @MINIIS.json index 2d2ee203ab..983535f48d 100644 --- a/resources/profiles/Prusa/process/0.12mm Speed @MINIIS.json +++ b/resources/profiles/Prusa/process/0.12mm Speed @MINIIS.json @@ -14,7 +14,7 @@ "internal_solid_infill_line_width": "0.27", "support_line_width": "0.25", "layer_height": "0.12", - "initial_layer_print_height": "0.2", + "initial_layer_print_height": "0.15", "top_shell_thickness": "0.7", "top_shell_layers": "9", "bottom_shell_thickness": "0.5", diff --git a/resources/profiles/Prusa/process/0.12mm Speed @Prusa XL 0.25.json b/resources/profiles/Prusa/process/0.12mm Speed @Prusa XL 0.25.json new file mode 100644 index 0000000000..59b981f9de --- /dev/null +++ b/resources/profiles/Prusa/process/0.12mm Speed @Prusa XL 0.25.json @@ -0,0 +1,67 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.12mm Speed @Prusa XL 0.25", + "from": "system", + "instantiation": "true", + "inherits": "process_common_xl", + "inital_layer_height": "0.2", + "layer_height": "0.12", + "wall_loops": "3", + "top_shell_layers": "9", + "bottom_shell_layers": "6", + "top_shell_thickness": "0.6", + "bottom_shell_thickness": "0.5", + "sparse_infill_density": "15%", + "infill_anchor": "1", + "brim_object_gap": "0", + "support_threshold_angle": "40", + "raft_first_layer_density": "95%", + "raft_first_layer_expansion": "3.5", + "raft_contact_distance": "0.08", + "support_top_z_distance": "0.09", + "support_bottom_z_distance": "0.09", + "support_base_pattern_spacing": "1", + "support_interface_top_layers": "5", + "support_interface_spacing": "0.2", + "support_object_xy_distance": "150%", + "tree_support_bramch_diameter_angle": "5", + "tree_support_tip_diameter": "0.8", + "inner_wall_speed": "120", + "small_perimeter_speed": "120", + "outer_wall_speed": "120", + "sparse_infill_speed": "100", + "internal_solid_infill_speed": "140", + "top_surface_speed": "60", + "support_speed": "70", + "support_interface_speed": "75%", + "bridge_speed": "30", + "gap_infill_speed": "50", + "overhang_1_4_speed": "15", + "overhang_2_4_speed": "25", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "80%", + "default_acceleration": "2000", + "outer_wall_acceleration": "1500", + "inner_wall_acceleration": "2000", + "top_surface_acceleration": "1000", + "internal_solid_infill_acceleration": "2500", + "sparse_infill_acceleration": "3000", + "bridge_acceleration": "1500", + "initial_layer_acceleration": "500", + "travel_acceleration": "4000", + "line_width": "0.27", + "initial_layer_line_width": "0.32", + "inner_wall_line_width": "0.27", + "outer_wall_line_width": "0.27", + "sparse_infill_line_width": "0.27", + "internal_solid_infill_line_width": "0.27", + "top_surface_line_width": "0.27", + "support_line_width": "0.25", + "infill_wall_overlap": "15%", + "resolution": "0.008", + "elefant_foot_compensation": "0", + "compatible_printers": [ + "Prusa XL 0.25 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.12mm Standard @MINIIS.json b/resources/profiles/Prusa/process/0.12mm Standard @MINIIS.json index ffbd39268f..4192e7d5f7 100644 --- a/resources/profiles/Prusa/process/0.12mm Standard @MINIIS.json +++ b/resources/profiles/Prusa/process/0.12mm Standard @MINIIS.json @@ -14,7 +14,7 @@ "internal_solid_infill_line_width": "0.27", "support_line_width": "0.25", "layer_height": "0.12", - "initial_layer_print_height": "0.2", + "initial_layer_print_height": "0.15", "top_shell_thickness": "0.7", "top_shell_layers": "9", "bottom_shell_thickness": "0.5", diff --git a/resources/profiles/Prusa/process/0.12mm Structural @Prusa XL 0.25.json b/resources/profiles/Prusa/process/0.12mm Structural @Prusa XL 0.25.json new file mode 100644 index 0000000000..d6dd18a043 --- /dev/null +++ b/resources/profiles/Prusa/process/0.12mm Structural @Prusa XL 0.25.json @@ -0,0 +1,67 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.12mm Structural @Prusa XL 0.25", + "from": "system", + "instantiation": "true", + "inherits": "process_common_xl", + "inital_layer_height": "0.2", + "layer_height": "0.12", + "wall_loops": "3", + "top_shell_layers": "9", + "bottom_shell_layers": "7", + "top_shell_thickness": "0.6", + "bottom_shell_thickness": "0.5", + "sparse_infill_density": "15%", + "infill_anchor": "1", + "brim_object_gap": "0", + "support_threshold_angle": "40", + "raft_first_layer_density": "95%", + "raft_first_layer_expansion": "3.5", + "raft_contact_distance": "0.08", + "support_top_z_distance": "0.09", + "support_bottom_z_distance": "0.09", + "support_base_pattern_spacing": "1", + "support_interface_top_layers": "5", + "support_interface_spacing": "0.2", + "support_object_xy_distance": "150%", + "tree_support_bramch_diameter_angle": "5", + "tree_support_tip_diameter": "0.8", + "inner_wall_speed": "70", + "small_perimeter_speed": "40", + "outer_wall_speed": "40", + "sparse_infill_speed": "100", + "internal_solid_infill_speed": "140", + "top_surface_speed": "60", + "support_speed": "70", + "support_interface_speed": "75%", + "bridge_speed": "30", + "gap_infill_speed": "50", + "overhang_1_4_speed": "15", + "overhang_2_4_speed": "25", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "80%", + "default_acceleration": "2000", + "outer_wall_acceleration": "1000", + "inner_wall_acceleration": "1500", + "top_surface_acceleration": "1000", + "internal_solid_infill_acceleration": "2500", + "sparse_infill_acceleration": "2500", + "bridge_acceleration": "1500", + "initial_layer_acceleration": "500", + "travel_acceleration": "4000", + "line_width": "0.27", + "initial_layer_line_width": "0.32", + "inner_wall_line_width": "0.27", + "outer_wall_line_width": "0.27", + "sparse_infill_line_width": "0.27", + "internal_solid_infill_line_width": "0.27", + "top_surface_line_width": "0.27", + "support_line_width": "0.25", + "infill_wall_overlap": "15%", + "resolution": "0.008", + "elefant_foot_compensation": "0", + "compatible_printers": [ + "Prusa XL 0.25 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.12mm Structural @Prusa XL 0.3.json b/resources/profiles/Prusa/process/0.12mm Structural @Prusa XL 0.3.json new file mode 100644 index 0000000000..ccb7d0fb73 --- /dev/null +++ b/resources/profiles/Prusa/process/0.12mm Structural @Prusa XL 0.3.json @@ -0,0 +1,67 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.12mm Structural @Prusa XL 0.3", + "from": "system", + "instantiation": "true", + "inherits": "process_common_xl", + "inital_layer_height": "0.2", + "layer_height": "0.12", + "wall_loops": "3", + "top_shell_layers": "7", + "bottom_shell_layers": "6", + "top_shell_thickness": "0.7", + "bottom_shell_thickness": "0.5", + "sparse_infill_density": "15%", + "infill_anchor": "1", + "brim_object_gap": "0", + "support_threshold_angle": "40", + "raft_first_layer_density": "90%", + "raft_first_layer_expansion": "3.5", + "raft_contact_distance": "0.12", + "support_top_z_distance": "0.12", + "support_bottom_z_distance": "0.12", + "support_base_pattern_spacing": "1", + "support_interface_top_layers": "5", + "support_interface_spacing": "0.2", + "support_object_xy_distance": "100%", + "tree_support_bramch_diameter_angle": "5", + "tree_support_tip_diameter": "0.8", + "inner_wall_speed": "80", + "small_perimeter_speed": "40", + "outer_wall_speed": "40", + "sparse_infill_speed": "100", + "internal_solid_infill_speed": "200", + "top_surface_speed": "40", + "support_speed": "70", + "support_interface_speed": "75%", + "bridge_speed": "30", + "gap_infill_speed": "50", + "overhang_1_4_speed": "15", + "overhang_2_4_speed": "25", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "80%", + "default_acceleration": "1500", + "outer_wall_acceleration": "1200", + "inner_wall_acceleration": "1500", + "top_surface_acceleration": "1000", + "internal_solid_infill_acceleration": "2500", + "sparse_infill_acceleration": "3000", + "bridge_acceleration": "1000", + "initial_layer_acceleration": "500", + "travel_acceleration": "5000", + "line_width": "0.34", + "initial_layer_line_width": "0.4", + "inner_wall_line_width": "0.34", + "outer_wall_line_width": "0.34", + "sparse_infill_line_width": "0.34", + "internal_solid_infill_line_width": "0.34", + "top_surface_line_width": "0.3", + "support_line_width": "0.3", + "infill_wall_overlap": "15%", + "resolution": "0.008", + "elefant_foot_compensation": "0", + "compatible_printers": [ + "Prusa XL 0.3 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.15mm Speed @MINIIS 0.25.json b/resources/profiles/Prusa/process/0.15mm Speed @MINIIS 0.25.json index aa50d7e06e..da4e58bc3b 100644 --- a/resources/profiles/Prusa/process/0.15mm Speed @MINIIS 0.25.json +++ b/resources/profiles/Prusa/process/0.15mm Speed @MINIIS 0.25.json @@ -14,7 +14,7 @@ "internal_solid_infill_line_width": "0.27", "support_line_width": "0.25", "layer_height": "0.15", - "initial_layer_print_height": "0.20", + "initial_layer_print_height": "0.15", "top_shell_thickness": "0.7", "top_shell_layers": "5", "bottom_shell_thickness": "0.5", diff --git a/resources/profiles/Prusa/process/0.15mm Speed @Prusa XL 0.25.json b/resources/profiles/Prusa/process/0.15mm Speed @Prusa XL 0.25.json new file mode 100644 index 0000000000..c267c2fa28 --- /dev/null +++ b/resources/profiles/Prusa/process/0.15mm Speed @Prusa XL 0.25.json @@ -0,0 +1,67 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.15mm Speed @Prusa XL 0.25", + "from": "system", + "instantiation": "true", + "inherits": "process_common_xl", + "inital_layer_height": "0.2", + "layer_height": "0.15", + "wall_loops": "3", + "top_shell_layers": "6", + "bottom_shell_layers": "7", + "top_shell_thickness": "0.7", + "bottom_shell_thickness": "0.5", + "sparse_infill_density": "15%", + "infill_anchor": "1", + "brim_object_gap": "0", + "support_threshold_angle": "40", + "raft_first_layer_density": "95%", + "raft_first_layer_expansion": "3.5", + "raft_contact_distance": "0.08", + "support_top_z_distance": "0.09", + "support_bottom_z_distance": "0.09", + "support_base_pattern_spacing": "1", + "support_interface_top_layers": "5", + "support_interface_spacing": "0.2", + "support_object_xy_distance": "150%", + "tree_support_bramch_diameter_angle": "5", + "tree_support_tip_diameter": "0.8", + "inner_wall_speed": "120", + "small_perimeter_speed": "120", + "outer_wall_speed": "120", + "sparse_infill_speed": "100", + "internal_solid_infill_speed": "140", + "top_surface_speed": "60", + "support_speed": "70", + "support_interface_speed": "75%", + "bridge_speed": "30", + "gap_infill_speed": "50", + "overhang_1_4_speed": "15", + "overhang_2_4_speed": "25", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "80%", + "default_acceleration": "2000", + "outer_wall_acceleration": "1500", + "inner_wall_acceleration": "2000", + "top_surface_acceleration": "1000", + "internal_solid_infill_acceleration": "2500", + "sparse_infill_acceleration": "3000", + "bridge_acceleration": "1500", + "initial_layer_acceleration": "500", + "travel_acceleration": "4000", + "line_width": "0.27", + "initial_layer_line_width": "0.32", + "inner_wall_line_width": "0.27", + "outer_wall_line_width": "0.27", + "sparse_infill_line_width": "0.27", + "internal_solid_infill_line_width": "0.27", + "top_surface_line_width": "0.27", + "support_line_width": "0.25", + "infill_wall_overlap": "15%", + "resolution": "0.008", + "elefant_foot_compensation": "0", + "compatible_printers": [ + "Prusa XL 0.25 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.15mm Speed @Prusa XL 0.4.json b/resources/profiles/Prusa/process/0.15mm Speed @Prusa XL 0.4.json new file mode 100644 index 0000000000..d73fd44ca1 --- /dev/null +++ b/resources/profiles/Prusa/process/0.15mm Speed @Prusa XL 0.4.json @@ -0,0 +1,67 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.15mm Speed @Prusa XL 0.4", + "from": "system", + "instantiation": "true", + "inherits": "process_common_xl", + "inital_layer_height": "0.2", + "layer_height": "0.15", + "wall_loops": "2", + "top_shell_layers": "6", + "bottom_shell_layers": "5", + "top_shell_thickness": "0.7", + "bottom_shell_thickness": "0.5", + "sparse_infill_density": "15%", + "infill_anchor": "2", + "brim_object_gap": "0.1", + "support_threshold_angle": "40", + "raft_first_layer_density": "80%", + "raft_first_layer_expansion": "3.5", + "raft_contact_distance": "0.15", + "support_top_z_distance": "0.17", + "support_bottom_z_distance": "0.17", + "support_base_pattern_spacing": "2", + "support_interface_top_layers": "5", + "support_interface_spacing": "0.2", + "support_object_xy_distance": "80%", + "tree_support_bramch_diameter_angle": "5", + "tree_support_tip_diameter": "0.8", + "inner_wall_speed": "170", + "small_perimeter_speed": "170", + "outer_wall_speed": "170", + "sparse_infill_speed": "200", + "internal_solid_infill_speed": "200", + "top_surface_speed": "100", + "support_speed": "120", + "support_interface_speed": "50", + "bridge_speed": "45", + "gap_infill_speed": "120", + "overhang_1_4_speed": "15", + "overhang_2_4_speed": "25", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "80%", + "default_acceleration": "2500", + "outer_wall_acceleration": "2500", + "inner_wall_acceleration": "3000", + "top_surface_acceleration": "1500", + "internal_solid_infill_acceleration": "3500", + "sparse_infill_acceleration": "4000", + "bridge_acceleration": "1500", + "initial_layer_acceleration": "500", + "travel_acceleration": "5000", + "line_width": "0.45", + "initial_layer_line_width": "0.5", + "inner_wall_line_width": "0.45", + "outer_wall_line_width": "0.45", + "sparse_infill_line_width": "0.45", + "internal_solid_infill_line_width": "0.45", + "top_surface_line_width": "0.42", + "support_line_width": "0.36", + "infill_wall_overlap": "15%", + "resolution": "0.008", + "elefant_foot_compensation": "0.2", + "compatible_printers": [ + "Prusa XL 0.4 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.15mm Standard @MINIIS 0.25.json b/resources/profiles/Prusa/process/0.15mm Standard @MINIIS 0.25.json index d6e26a6a34..57c789f5bd 100644 --- a/resources/profiles/Prusa/process/0.15mm Standard @MINIIS 0.25.json +++ b/resources/profiles/Prusa/process/0.15mm Standard @MINIIS 0.25.json @@ -14,7 +14,7 @@ "internal_solid_infill_line_width": "0.27", "support_line_width": "0.25", "layer_height": "0.15", - "initial_layer_print_height": "0.20", + "initial_layer_print_height": "0.15", "top_shell_thickness": "0.7", "top_shell_layers": "5", "bottom_shell_thickness": "0.5", diff --git a/resources/profiles/Prusa/process/0.15mm Standard @MINIIS 0.6.json b/resources/profiles/Prusa/process/0.15mm Standard @MINIIS 0.6.json index dca892dfcc..52819af718 100644 --- a/resources/profiles/Prusa/process/0.15mm Standard @MINIIS 0.6.json +++ b/resources/profiles/Prusa/process/0.15mm Standard @MINIIS 0.6.json @@ -14,7 +14,8 @@ "internal_solid_infill_line_width": "0.6", "support_line_width": "0.5", "layer_height": "0.15", - "initial_layer_print_height": "0.20", + "initial_layer_print_height": "0.25", + "wall_loops": "2", "top_shell_thickness": "0.7", "top_shell_layers": "5", "bottom_shell_thickness": "0.5", diff --git a/resources/profiles/Prusa/process/0.15mm Structural @Prusa XL 0.25.json b/resources/profiles/Prusa/process/0.15mm Structural @Prusa XL 0.25.json new file mode 100644 index 0000000000..8395f8f596 --- /dev/null +++ b/resources/profiles/Prusa/process/0.15mm Structural @Prusa XL 0.25.json @@ -0,0 +1,67 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.15mm Structural @Prusa XL 0.25", + "from": "system", + "instantiation": "true", + "inherits": "process_common_xl", + "inital_layer_height": "0.2", + "layer_height": "0.15", + "wall_loops": "3", + "top_shell_layers": "6", + "bottom_shell_layers": "5", + "top_shell_thickness": "0.7", + "bottom_shell_thickness": "0.5", + "sparse_infill_density": "15%", + "infill_anchor": "1", + "brim_object_gap": "0", + "support_threshold_angle": "40", + "raft_first_layer_density": "95%", + "raft_first_layer_expansion": "3.5", + "raft_contact_distance": "0.08", + "support_top_z_distance": "0.09", + "support_bottom_z_distance": "0.09", + "support_base_pattern_spacing": "1", + "support_interface_top_layers": "5", + "support_interface_spacing": "0.2", + "support_object_xy_distance": "150%", + "tree_support_bramch_diameter_angle": "5", + "tree_support_tip_diameter": "0.8", + "inner_wall_speed": "70", + "small_perimeter_speed": "40", + "outer_wall_speed": "40", + "sparse_infill_speed": "100", + "internal_solid_infill_speed": "140", + "top_surface_speed": "60", + "support_speed": "70", + "support_interface_speed": "75%", + "bridge_speed": "30", + "gap_infill_speed": "50", + "overhang_1_4_speed": "15", + "overhang_2_4_speed": "25", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "80%", + "default_acceleration": "2000", + "outer_wall_acceleration": "1000", + "inner_wall_acceleration": "1500", + "top_surface_acceleration": "1000", + "internal_solid_infill_acceleration": "2500", + "sparse_infill_acceleration": "3000", + "bridge_acceleration": "1500", + "initial_layer_acceleration": "500", + "travel_acceleration": "4000", + "line_width": "0.27", + "initial_layer_line_width": "0.32", + "inner_wall_line_width": "0.27", + "outer_wall_line_width": "0.27", + "sparse_infill_line_width": "0.27", + "internal_solid_infill_line_width": "0.27", + "top_surface_line_width": "0.27", + "support_line_width": "0.25", + "infill_wall_overlap": "15%", + "resolution": "0.008", + "elefant_foot_compensation": "0", + "compatible_printers": [ + "Prusa XL 0.25 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.15mm Structural @Prusa XL 0.4.json b/resources/profiles/Prusa/process/0.15mm Structural @Prusa XL 0.4.json new file mode 100644 index 0000000000..e4194b3a53 --- /dev/null +++ b/resources/profiles/Prusa/process/0.15mm Structural @Prusa XL 0.4.json @@ -0,0 +1,67 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.15mm Structural @Prusa XL 0.4", + "from": "system", + "instantiation": "true", + "inherits": "process_common_xl", + "inital_layer_height": "0.2", + "layer_height": "0.15", + "wall_loops": "2", + "top_shell_layers": "6", + "bottom_shell_layers": "5", + "top_shell_thickness": "0.7", + "bottom_shell_thickness": "0.5", + "sparse_infill_density": "15%", + "infill_anchor": "2", + "brim_object_gap": "0.1", + "support_threshold_angle": "40", + "raft_first_layer_density": "80%", + "raft_first_layer_expansion": "3.5", + "raft_contact_distance": "0.15", + "support_top_z_distance": "0.17", + "support_bottom_z_distance": "0.17", + "support_base_pattern_spacing": "2", + "support_interface_top_layers": "5", + "support_interface_spacing": "0.2", + "support_object_xy_distance": "80%", + "tree_support_bramch_diameter_angle": "5", + "tree_support_tip_diameter": "0.8", + "inner_wall_speed": "80", + "small_perimeter_speed": "45", + "outer_wall_speed": "45", + "sparse_infill_speed": "110", + "internal_solid_infill_speed": "140", + "top_surface_speed": "75", + "support_speed": "120", + "support_interface_speed": "50", + "bridge_speed": "45", + "gap_infill_speed": "65", + "overhang_1_4_speed": "15", + "overhang_2_4_speed": "25", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "90%", + "default_acceleration": "2500", + "outer_wall_acceleration": "1500", + "inner_wall_acceleration": "2500", + "top_surface_acceleration": "1000", + "internal_solid_infill_acceleration": "3000", + "sparse_infill_acceleration": "4000", + "bridge_acceleration": "1500", + "initial_layer_acceleration": "500", + "travel_acceleration": "5000", + "line_width": "0.45", + "initial_layer_line_width": "0.5", + "inner_wall_line_width": "0.45", + "outer_wall_line_width": "0.45", + "sparse_infill_line_width": "0.45", + "internal_solid_infill_line_width": "0.45", + "top_surface_line_width": "0.42", + "support_line_width": "0.36", + "infill_wall_overlap": "15%", + "resolution": "0.008", + "elefant_foot_compensation": "0.2", + "compatible_printers": [ + "Prusa XL 0.4 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.15mm Structural @Prusa XL 0.5.json b/resources/profiles/Prusa/process/0.15mm Structural @Prusa XL 0.5.json new file mode 100644 index 0000000000..e32188d18f --- /dev/null +++ b/resources/profiles/Prusa/process/0.15mm Structural @Prusa XL 0.5.json @@ -0,0 +1,68 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.15mm Structural @Prusa XL 0.5", + "from": "system", + "instantiation": "true", + "inherits": "process_common_xl", + "inital_layer_height": "0.2", + "layer_height": "0.15", + "wall_loops": "2", + "top_shell_layers": "6", + "bottom_shell_layers": "5", + "top_shell_thickness": "0.7", + "bottom_shell_thickness": "0.5", + "sparse_infill_density": "15%", + "infill_anchor": "2", + "infill_anchor_max": "15", + "brim_object_gap": "0.1", + "support_threshold_angle": "40", + "raft_first_layer_density": "80%", + "raft_first_layer_expansion": "3.5", + "raft_contact_distance": "0.25", + "support_top_z_distance": "0.2", + "support_bottom_z_distance": "0.2", + "support_base_pattern_spacing": "2", + "support_interface_top_layers": "5", + "support_interface_spacing": "0.22", + "support_object_xy_distance": "80%", + "tree_support_bramch_diameter_angle": "5", + "tree_support_tip_diameter": "0.8", + "inner_wall_speed": "80", + "small_perimeter_speed": "45", + "outer_wall_speed": "45", + "sparse_infill_speed": "200", + "internal_solid_infill_speed": "180", + "top_surface_speed": "70", + "support_speed": "75", + "support_interface_speed": "75%", + "bridge_speed": "40", + "gap_infill_speed": "50", + "overhang_1_4_speed": "15", + "overhang_2_4_speed": "25", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "80%", + "default_acceleration": "2000", + "outer_wall_acceleration": "1500", + "inner_wall_acceleration": "2000", + "top_surface_acceleration": "1000", + "internal_solid_infill_acceleration": "2500", + "sparse_infill_acceleration": "3000", + "bridge_acceleration": "1000", + "initial_layer_acceleration": "500", + "travel_acceleration": "5000", + "line_width": "0.55", + "initial_layer_line_width": "0.55", + "inner_wall_line_width": "0.55", + "outer_wall_line_width": "0.55", + "sparse_infill_line_width": "0.55", + "internal_solid_infill_line_width": "0.55", + "top_surface_line_width": "0.5", + "support_line_width": "0.4", + "infill_wall_overlap": "15%", + "resolution": "0.008", + "elefant_foot_compensation": "0.2", + "compatible_printers": [ + "Prusa XL 0.5 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.15mm Structural @Prusa XL 0.6.json b/resources/profiles/Prusa/process/0.15mm Structural @Prusa XL 0.6.json new file mode 100644 index 0000000000..912270b547 --- /dev/null +++ b/resources/profiles/Prusa/process/0.15mm Structural @Prusa XL 0.6.json @@ -0,0 +1,69 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.15mm Structural @Prusa XL 0.6", + "from": "system", + "instantiation": "true", + "inherits": "process_common_xl", + "inital_layer_height": "0.2", + "layer_height": "0.15", + "wall_loops": "2", + "top_shell_layers": "6", + "bottom_shell_layers": "5", + "top_shell_thickness": "0.9", + "bottom_shell_thickness": "0.6", + "sparse_infill_density": "20%", + "infill_anchor": "2.5", + "infill_anchor_max": "20", + "brim_object_gap": "0.1", + "support_threshold_angle": "40", + "raft_first_layer_density": "80%", + "raft_first_layer_expansion": "3.5", + "raft_contact_distance": "0.25", + "support_top_z_distance": "0.22", + "support_bottom_z_distance": "0.22", + "support_base_pattern_spacing": "2", + "support_interface_top_layers": "5", + "support_interface_spacing": "0.25", + "support_object_xy_distance": "80%", + "tree_support_bramch_diameter_angle": "5", + "tree_support_branch_diameter_double_wall": "5", + "tree_support_tip_diameter": "0.8", + "inner_wall_speed": "80", + "small_perimeter_speed": "45", + "outer_wall_speed": "45", + "sparse_infill_speed": "105", + "internal_solid_infill_speed": "160", + "top_surface_speed": "70", + "support_speed": "110", + "support_interface_speed": "75%", + "bridge_speed": "40", + "gap_infill_speed": "75", + "overhang_1_4_speed": "15", + "overhang_2_4_speed": "20", + "overhang_3_4_speed": "25", + "overhang_4_4_speed": "90%", + "default_acceleration": "2500", + "outer_wall_acceleration": "1500", + "inner_wall_acceleration": "2500", + "top_surface_acceleration": "1500", + "internal_solid_infill_acceleration": "2500", + "sparse_infill_acceleration": "4000", + "bridge_acceleration": "1500", + "initial_layer_acceleration": "500", + "travel_acceleration": "5000", + "line_width": "0.68", + "initial_layer_line_width": "0.68", + "inner_wall_line_width": "0.6", + "outer_wall_line_width": "0.6", + "sparse_infill_line_width": "0.6", + "internal_solid_infill_line_width": "0.6", + "top_surface_line_width": "0.5", + "support_line_width": "0.55", + "infill_wall_overlap": "15%", + "resolution": "0.0125", + "elefant_foot_compensation": "0.2", + "compatible_printers": [ + "Prusa XL 0.6 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.16mm Speed @Prusa XL 0.3.json b/resources/profiles/Prusa/process/0.16mm Speed @Prusa XL 0.3.json new file mode 100644 index 0000000000..235fa3deeb --- /dev/null +++ b/resources/profiles/Prusa/process/0.16mm Speed @Prusa XL 0.3.json @@ -0,0 +1,67 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.16mm Speed @Prusa XL 0.3", + "from": "system", + "instantiation": "true", + "inherits": "process_common_xl", + "inital_layer_height": "0.2", + "layer_height": "0.16", + "wall_loops": "3", + "top_shell_layers": "6", + "bottom_shell_layers": "5", + "top_shell_thickness": "0.7", + "bottom_shell_thickness": "0.5", + "sparse_infill_density": "15%", + "infill_anchor": "1", + "brim_object_gap": "0", + "support_threshold_angle": "40", + "raft_first_layer_density": "90%", + "raft_first_layer_expansion": "3.5", + "raft_contact_distance": "0.12", + "support_top_z_distance": "0.12", + "support_bottom_z_distance": "0.12", + "support_base_pattern_spacing": "1", + "support_interface_top_layers": "5", + "support_interface_spacing": "0.2", + "support_object_xy_distance": "100%", + "tree_support_bramch_diameter_angle": "5", + "tree_support_tip_diameter": "0.8", + "inner_wall_speed": "140", + "small_perimeter_speed": "120", + "outer_wall_speed": "120", + "sparse_infill_speed": "120", + "internal_solid_infill_speed": "200", + "top_surface_speed": "50", + "support_speed": "100", + "support_interface_speed": "45%", + "bridge_speed": "30", + "gap_infill_speed": "50", + "overhang_1_4_speed": "15", + "overhang_2_4_speed": "25", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "80%", + "default_acceleration": "2000", + "outer_wall_acceleration": "2500", + "inner_wall_acceleration": "2500", + "top_surface_acceleration": "1000", + "internal_solid_infill_acceleration": "3000", + "sparse_infill_acceleration": "4000", + "bridge_acceleration": "1000", + "initial_layer_acceleration": "500", + "travel_acceleration": "5000", + "line_width": "0.34", + "initial_layer_line_width": "0.4", + "inner_wall_line_width": "0.34", + "outer_wall_line_width": "0.34", + "sparse_infill_line_width": "0.34", + "internal_solid_infill_line_width": "0.34", + "top_surface_line_width": "0.3", + "support_line_width": "0.3", + "infill_wall_overlap": "15%", + "resolution": "0.008", + "elefant_foot_compensation": "0", + "compatible_printers": [ + "Prusa XL 0.3 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.16mm Structural @Prusa XL 0.3.json b/resources/profiles/Prusa/process/0.16mm Structural @Prusa XL 0.3.json new file mode 100644 index 0000000000..b27221145e --- /dev/null +++ b/resources/profiles/Prusa/process/0.16mm Structural @Prusa XL 0.3.json @@ -0,0 +1,67 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.16mm Structural @Prusa XL 0.3", + "from": "system", + "instantiation": "true", + "inherits": "process_common_xl", + "inital_layer_height": "0.2", + "layer_height": "0.16", + "wall_loops": "3", + "top_shell_layers": "6", + "bottom_shell_layers": "5", + "top_shell_thickness": "0.7", + "bottom_shell_thickness": "0.5", + "sparse_infill_density": "15%", + "infill_anchor": "1", + "brim_object_gap": "0", + "support_threshold_angle": "40", + "raft_first_layer_density": "90%", + "raft_first_layer_expansion": "3.5", + "raft_contact_distance": "0.12", + "support_top_z_distance": "0.12", + "support_bottom_z_distance": "0.12", + "support_base_pattern_spacing": "1", + "support_interface_top_layers": "5", + "support_interface_spacing": "0.2", + "support_object_xy_distance": "100%", + "tree_support_bramch_diameter_angle": "5", + "tree_support_tip_diameter": "0.8", + "inner_wall_speed": "80", + "small_perimeter_speed": "45", + "outer_wall_speed": "45", + "sparse_infill_speed": "120", + "internal_solid_infill_speed": "200", + "top_surface_speed": "50", + "support_speed": "70", + "support_interface_speed": "75%", + "bridge_speed": "30", + "gap_infill_speed": "50", + "overhang_1_4_speed": "15", + "overhang_2_4_speed": "25", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "80%", + "default_acceleration": "2000", + "outer_wall_acceleration": "1500", + "inner_wall_acceleration": "2000", + "top_surface_acceleration": "1000", + "internal_solid_infill_acceleration": "2500", + "sparse_infill_acceleration": "4000", + "bridge_acceleration": "1000", + "initial_layer_acceleration": "500", + "travel_acceleration": "5000", + "line_width": "0.34", + "initial_layer_line_width": "0.4", + "inner_wall_line_width": "0.34", + "outer_wall_line_width": "0.34", + "sparse_infill_line_width": "0.34", + "internal_solid_infill_line_width": "0.34", + "top_surface_line_width": "0.3", + "support_line_width": "0.3", + "infill_wall_overlap": "15%", + "resolution": "0.008", + "elefant_foot_compensation": "0", + "compatible_printers": [ + "Prusa XL 0.3 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.20mm Speed @MINIIS 0.6.json b/resources/profiles/Prusa/process/0.20mm Speed @MINIIS 0.6.json index 34f2125fa2..0d7930f441 100644 --- a/resources/profiles/Prusa/process/0.20mm Speed @MINIIS 0.6.json +++ b/resources/profiles/Prusa/process/0.20mm Speed @MINIIS 0.6.json @@ -8,6 +8,8 @@ "compatible_printers": [ "Prusa MINIIS 0.6 nozzle" ], + "layer_height": "0.20", + "initial_layer_print_height": "0.25", "line_width": "0.68", "inner_wall_line_width": "0.62", "outer_wall_line_width": "0.62", @@ -16,6 +18,7 @@ "initial_layer_line_width": "0.68", "internal_solid_infill_line_width": "0.62", "support_line_width": "0.5", + "wall_loops": "2", "outer_wall_speed": "115", "inner_wall_speed": "115", "small_perimeter_speed": "115", diff --git a/resources/profiles/Prusa/process/0.20mm Speed @Prusa XL 0.3.json b/resources/profiles/Prusa/process/0.20mm Speed @Prusa XL 0.3.json new file mode 100644 index 0000000000..c8f4d1c288 --- /dev/null +++ b/resources/profiles/Prusa/process/0.20mm Speed @Prusa XL 0.3.json @@ -0,0 +1,67 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.20mm Speed @Prusa XL 0.3", + "from": "system", + "instantiation": "true", + "inherits": "process_common_xl", + "inital_layer_height": "0.2", + "layer_height": "0.2", + "wall_loops": "3", + "top_shell_layers": "5", + "bottom_shell_layers": "4", + "top_shell_thickness": "0.7", + "bottom_shell_thickness": "0.5", + "sparse_infill_density": "15%", + "infill_anchor": "1", + "brim_object_gap": "0", + "support_threshold_angle": "40", + "raft_first_layer_density": "90%", + "raft_first_layer_expansion": "3.5", + "raft_contact_distance": "0.12", + "support_top_z_distance": "0.12", + "support_bottom_z_distance": "0.12", + "support_base_pattern_spacing": "1", + "support_interface_top_layers": "5", + "support_interface_spacing": "0.2", + "support_object_xy_distance": "100%", + "tree_support_bramch_diameter_angle": "5", + "tree_support_tip_diameter": "0.8", + "inner_wall_speed": "140", + "small_perimeter_speed": "120", + "outer_wall_speed": "120", + "sparse_infill_speed": "120", + "internal_solid_infill_speed": "200", + "top_surface_speed": "50", + "support_speed": "100", + "support_interface_speed": "45%", + "bridge_speed": "30", + "gap_infill_speed": "50", + "overhang_1_4_speed": "15", + "overhang_2_4_speed": "25", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "80%", + "default_acceleration": "2000", + "outer_wall_acceleration": "2500", + "inner_wall_acceleration": "2500", + "top_surface_acceleration": "1000", + "internal_solid_infill_acceleration": "3000", + "sparse_infill_acceleration": "4000", + "bridge_acceleration": "1000", + "initial_layer_acceleration": "500", + "travel_acceleration": "5000", + "line_width": "0.34", + "initial_layer_line_width": "0.4", + "inner_wall_line_width": "0.34", + "outer_wall_line_width": "0.34", + "sparse_infill_line_width": "0.34", + "internal_solid_infill_line_width": "0.34", + "top_surface_line_width": "0.3", + "support_line_width": "0.3", + "infill_wall_overlap": "15%", + "resolution": "0.008", + "elefant_foot_compensation": "0", + "compatible_printers": [ + "Prusa XL 0.3 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.20mm Speed @Prusa XL 0.4.json b/resources/profiles/Prusa/process/0.20mm Speed @Prusa XL 0.4.json new file mode 100644 index 0000000000..214c125a8d --- /dev/null +++ b/resources/profiles/Prusa/process/0.20mm Speed @Prusa XL 0.4.json @@ -0,0 +1,67 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.20mm Speed @Prusa XL 0.4", + "from": "system", + "instantiation": "true", + "inherits": "process_common_xl", + "inital_layer_height": "0.2", + "layer_height": "0.2", + "wall_loops": "2", + "top_shell_layers": "5", + "bottom_shell_layers": "4", + "top_shell_thickness": "0.7", + "bottom_shell_thickness": "0.5", + "sparse_infill_density": "15%", + "infill_anchor": "2", + "brim_object_gap": "0.1", + "support_threshold_angle": "40", + "raft_first_layer_density": "80%", + "raft_first_layer_expansion": "3.5", + "raft_contact_distance": "0.15", + "support_top_z_distance": "0.2", + "support_bottom_z_distance": "0.2", + "support_base_pattern_spacing": "2", + "support_interface_top_layers": "5", + "support_interface_spacing": "0.2", + "support_object_xy_distance": "80%", + "tree_support_bramch_diameter_angle": "5", + "tree_support_tip_diameter": "0.8", + "inner_wall_speed": "170", + "small_perimeter_speed": "170", + "outer_wall_speed": "170", + "sparse_infill_speed": "200", + "internal_solid_infill_speed": "200", + "top_surface_speed": "100", + "support_speed": "110", + "support_interface_speed": "50%", + "bridge_speed": "50", + "gap_infill_speed": "120", + "overhang_1_4_speed": "15", + "overhang_2_4_speed": "25", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "90%", + "default_acceleration": "2500", + "outer_wall_acceleration": "2500", + "inner_wall_acceleration": "3000", + "top_surface_acceleration": "1500", + "internal_solid_infill_acceleration": "4000", + "sparse_infill_acceleration": "4000", + "bridge_acceleration": "1500", + "initial_layer_acceleration": "500", + "travel_acceleration": "5000", + "line_width": "0.45", + "initial_layer_line_width": "0.5", + "inner_wall_line_width": "0.45", + "outer_wall_line_width": "0.45", + "sparse_infill_line_width": "0.45", + "internal_solid_infill_line_width": "0.45", + "top_surface_line_width": "0.42", + "support_line_width": "0.36", + "infill_wall_overlap": "15%", + "resolution": "0.008", + "elefant_foot_compensation": "0.2", + "compatible_printers": [ + "Prusa XL 0.4 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.20mm Speed @Prusa XL 0.5.json b/resources/profiles/Prusa/process/0.20mm Speed @Prusa XL 0.5.json new file mode 100644 index 0000000000..469f93b422 --- /dev/null +++ b/resources/profiles/Prusa/process/0.20mm Speed @Prusa XL 0.5.json @@ -0,0 +1,68 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.20mm Speed @Prusa XL 0.5", + "from": "system", + "instantiation": "true", + "inherits": "process_common_xl", + "inital_layer_height": "0.2", + "layer_height": "0.2", + "wall_loops": "2", + "top_shell_layers": "5", + "bottom_shell_layers": "4", + "top_shell_thickness": "0.7", + "bottom_shell_thickness": "0.5", + "sparse_infill_density": "15%", + "infill_anchor": "2", + "infill_anchor_max": "15", + "brim_object_gap": "0.1", + "support_threshold_angle": "40", + "raft_first_layer_density": "80%", + "raft_first_layer_expansion": "3.5", + "raft_contact_distance": "0.25", + "support_top_z_distance": "0.2", + "support_bottom_z_distance": "0.2", + "support_base_pattern_spacing": "2", + "support_interface_top_layers": "5", + "support_interface_spacing": "0.22", + "support_object_xy_distance": "80%", + "tree_support_bramch_diameter_angle": "5", + "tree_support_tip_diameter": "0.8", + "inner_wall_speed": "140", + "small_perimeter_speed": "140", + "outer_wall_speed": "140", + "sparse_infill_speed": "200", + "internal_solid_infill_speed": "135", + "top_surface_speed": "70", + "support_speed": "120", + "support_interface_speed": "75%", + "bridge_speed": "40", + "gap_infill_speed": "70", + "overhang_1_4_speed": "15", + "overhang_2_4_speed": "25", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "80%", + "default_acceleration": "2500", + "outer_wall_acceleration": "2500", + "inner_wall_acceleration": "3000", + "top_surface_acceleration": "1000", + "internal_solid_infill_acceleration": "3000", + "sparse_infill_acceleration": "4000", + "bridge_acceleration": "1000", + "initial_layer_acceleration": "500", + "travel_acceleration": "5000", + "line_width": "0.55", + "initial_layer_line_width": "0.55", + "inner_wall_line_width": "0.55", + "outer_wall_line_width": "0.55", + "sparse_infill_line_width": "0.55", + "internal_solid_infill_line_width": "0.55", + "top_surface_line_width": "0.5", + "support_line_width": "0.4", + "infill_wall_overlap": "15%", + "resolution": "0.008", + "elefant_foot_compensation": "0.2", + "compatible_printers": [ + "Prusa XL 0.5 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.20mm Speed @Prusa XL 0.6.json b/resources/profiles/Prusa/process/0.20mm Speed @Prusa XL 0.6.json new file mode 100644 index 0000000000..4a9ff4d9e8 --- /dev/null +++ b/resources/profiles/Prusa/process/0.20mm Speed @Prusa XL 0.6.json @@ -0,0 +1,69 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.20mm Speed @Prusa XL 0.6", + "from": "system", + "instantiation": "true", + "inherits": "process_common_xl", + "inital_layer_height": "0.2", + "layer_height": "0.2", + "wall_loops": "2", + "top_shell_layers": "5", + "bottom_shell_layers": "4", + "top_shell_thickness": "0.9", + "bottom_shell_thickness": "0.6", + "sparse_infill_density": "20%", + "infill_anchor": "2.5", + "infill_anchor_max": "20", + "brim_object_gap": "0.1", + "support_threshold_angle": "40", + "raft_first_layer_density": "80%", + "raft_first_layer_expansion": "3.5", + "raft_contact_distance": "0.25", + "support_top_z_distance": "0.22", + "support_bottom_z_distance": "0.22", + "support_base_pattern_spacing": "2", + "support_interface_top_layers": "5", + "support_interface_spacing": "0.25", + "support_object_xy_distance": "80%", + "tree_support_bramch_diameter_angle": "5", + "tree_support_branch_diameter_double_wall": "5", + "tree_support_tip_diameter": "0.8", + "inner_wall_speed": "120", + "small_perimeter_speed": "120", + "outer_wall_speed": "120", + "sparse_infill_speed": "120", + "internal_solid_infill_speed": "110", + "top_surface_speed": "70", + "support_speed": "110", + "support_interface_speed": "75%", + "bridge_speed": "40", + "gap_infill_speed": "75", + "overhang_1_4_speed": "15", + "overhang_2_4_speed": "20", + "overhang_3_4_speed": "25", + "overhang_4_4_speed": "50", + "default_acceleration": "2500", + "outer_wall_acceleration": "2500", + "inner_wall_acceleration": "3000", + "top_surface_acceleration": "1500", + "internal_solid_infill_acceleration": "3000", + "sparse_infill_acceleration": "4000", + "bridge_acceleration": "1500", + "initial_layer_acceleration": "500", + "travel_acceleration": "5000", + "line_width": "0.68", + "initial_layer_line_width": "0.68", + "inner_wall_line_width": "0.62", + "outer_wall_line_width": "0.62", + "sparse_infill_line_width": "0.62", + "internal_solid_infill_line_width": "0.62", + "top_surface_line_width": "0.5", + "support_line_width": "0.55", + "infill_wall_overlap": "15%", + "resolution": "0.0125", + "elefant_foot_compensation": "0.2", + "compatible_printers": [ + "Prusa XL 0.6 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.20mm Standard @MINIIS 0.6.json b/resources/profiles/Prusa/process/0.20mm Standard @MINIIS 0.6.json index 70a388dc98..16d53885bc 100644 --- a/resources/profiles/Prusa/process/0.20mm Standard @MINIIS 0.6.json +++ b/resources/profiles/Prusa/process/0.20mm Standard @MINIIS 0.6.json @@ -5,6 +5,8 @@ "from": "system", "instantiation": "true", "inherits": "process_common_miniis", + "layer_height": "0.20", + "initial_layer_print_height": "0.25", "line_width": "0.68", "inner_wall_line_width": "0.62", "outer_wall_line_width": "0.62", @@ -13,6 +15,7 @@ "initial_layer_line_width": "0.68", "internal_solid_infill_line_width": "0.62", "support_line_width": "0.5", + "wall_loops": "2", "sparse_infill_speed": "120", "internal_solid_infill_speed": "100", "top_surface_speed": "70", diff --git a/resources/profiles/Prusa/process/0.20mm Structural @Prusa XL 0.4.json b/resources/profiles/Prusa/process/0.20mm Structural @Prusa XL 0.4.json new file mode 100644 index 0000000000..6b94db2fde --- /dev/null +++ b/resources/profiles/Prusa/process/0.20mm Structural @Prusa XL 0.4.json @@ -0,0 +1,67 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.20mm Structural @Prusa XL 0.4", + "from": "system", + "instantiation": "true", + "inherits": "process_common_xl", + "inital_layer_height": "0.2", + "layer_height": "0.2", + "wall_loops": "2", + "top_shell_layers": "5", + "bottom_shell_layers": "4", + "top_shell_thickness": "0.7", + "bottom_shell_thickness": "0.5", + "sparse_infill_density": "15%", + "infill_anchor": "2", + "brim_object_gap": "0.1", + "support_threshold_angle": "40", + "raft_first_layer_density": "80%", + "raft_first_layer_expansion": "3.5", + "raft_contact_distance": "0.15", + "support_top_z_distance": "0.2", + "support_bottom_z_distance": "0.2", + "support_base_pattern_spacing": "2", + "support_interface_top_layers": "5", + "support_interface_spacing": "0.2", + "support_object_xy_distance": "80%", + "tree_support_bramch_diameter_angle": "5", + "tree_support_tip_diameter": "0.8", + "inner_wall_speed": "80", + "small_perimeter_speed": "45", + "outer_wall_speed": "45", + "sparse_infill_speed": "120", + "internal_solid_infill_speed": "140", + "top_surface_speed": "75", + "support_speed": "120", + "support_interface_speed": "50", + "bridge_speed": "50", + "gap_infill_speed": "65", + "overhang_1_4_speed": "15", + "overhang_2_4_speed": "25", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "90%", + "default_acceleration": "2500", + "outer_wall_acceleration": "1500", + "inner_wall_acceleration": "2500", + "top_surface_acceleration": "1000", + "internal_solid_infill_acceleration": "3000", + "sparse_infill_acceleration": "4000", + "bridge_acceleration": "1500", + "initial_layer_acceleration": "500", + "travel_acceleration": "5000", + "line_width": "0.45", + "initial_layer_line_width": "0.5", + "inner_wall_line_width": "0.45", + "outer_wall_line_width": "0.45", + "sparse_infill_line_width": "0.45", + "internal_solid_infill_line_width": "0.45", + "top_surface_line_width": "0.42", + "support_line_width": "0.36", + "infill_wall_overlap": "15%", + "resolution": "0.008", + "elefant_foot_compensation": "0.2", + "compatible_printers": [ + "Prusa XL 0.4 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.20mm Structural @Prusa XL 0.5.json b/resources/profiles/Prusa/process/0.20mm Structural @Prusa XL 0.5.json new file mode 100644 index 0000000000..d12f979788 --- /dev/null +++ b/resources/profiles/Prusa/process/0.20mm Structural @Prusa XL 0.5.json @@ -0,0 +1,68 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.20mm Structural @Prusa XL 0.5", + "from": "system", + "instantiation": "true", + "inherits": "process_common_xl", + "inital_layer_height": "0.2", + "layer_height": "0.2", + "wall_loops": "2", + "top_shell_layers": "5", + "bottom_shell_layers": "4", + "top_shell_thickness": "0.7", + "bottom_shell_thickness": "0.5", + "sparse_infill_density": "15%", + "infill_anchor": "2", + "infill_anchor_max": "15", + "brim_object_gap": "0.1", + "support_threshold_angle": "40", + "raft_first_layer_density": "80%", + "raft_first_layer_expansion": "3.5", + "raft_contact_distance": "0.25", + "support_top_z_distance": "0.2", + "support_bottom_z_distance": "0.2", + "support_base_pattern_spacing": "2", + "support_interface_top_layers": "5", + "support_interface_spacing": "0.22", + "support_object_xy_distance": "80%", + "tree_support_bramch_diameter_angle": "5", + "tree_support_tip_diameter": "0.8", + "inner_wall_speed": "80", + "small_perimeter_speed": "45", + "outer_wall_speed": "45", + "sparse_infill_speed": "200", + "internal_solid_infill_speed": "120", + "top_surface_speed": "70", + "support_speed": "75", + "support_interface_speed": "75%", + "bridge_speed": "40", + "gap_infill_speed": "70", + "overhang_1_4_speed": "15", + "overhang_2_4_speed": "25", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "80%", + "default_acceleration": "2500", + "outer_wall_acceleration": "1500", + "inner_wall_acceleration": "2000", + "top_surface_acceleration": "1000", + "internal_solid_infill_acceleration": "2500", + "sparse_infill_acceleration": "4000", + "bridge_acceleration": "1000", + "initial_layer_acceleration": "500", + "travel_acceleration": "5000", + "line_width": "0.55", + "initial_layer_line_width": "0.55", + "inner_wall_line_width": "0.55", + "outer_wall_line_width": "0.55", + "sparse_infill_line_width": "0.55", + "internal_solid_infill_line_width": "0.55", + "top_surface_line_width": "0.5", + "support_line_width": "0.4", + "infill_wall_overlap": "15%", + "resolution": "0.008", + "elefant_foot_compensation": "0.2", + "compatible_printers": [ + "Prusa XL 0.5 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.20mm Structural @Prusa XL 0.6.json b/resources/profiles/Prusa/process/0.20mm Structural @Prusa XL 0.6.json new file mode 100644 index 0000000000..bd9ad1e9dc --- /dev/null +++ b/resources/profiles/Prusa/process/0.20mm Structural @Prusa XL 0.6.json @@ -0,0 +1,69 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.20mm Structural @Prusa XL 0.6", + "from": "system", + "instantiation": "true", + "inherits": "process_common_xl", + "inital_layer_height": "0.2", + "layer_height": "0.2", + "wall_loops": "2", + "top_shell_layers": "5", + "bottom_shell_layers": "4", + "top_shell_thickness": "0.9", + "bottom_shell_thickness": "0.6", + "sparse_infill_density": "20%", + "infill_anchor": "2.5", + "infill_anchor_max": "20", + "brim_object_gap": "0.1", + "support_threshold_angle": "40", + "raft_first_layer_density": "80%", + "raft_first_layer_expansion": "3.5", + "raft_contact_distance": "0.25", + "support_top_z_distance": "0.22", + "support_bottom_z_distance": "0.22", + "support_base_pattern_spacing": "2", + "support_interface_top_layers": "5", + "support_interface_spacing": "0.25", + "support_object_xy_distance": "80%", + "tree_support_bramch_diameter_angle": "5", + "tree_support_branch_diameter_double_wall": "5", + "tree_support_tip_diameter": "0.8", + "inner_wall_speed": "80", + "small_perimeter_speed": "45", + "outer_wall_speed": "45", + "sparse_infill_speed": "120", + "internal_solid_infill_speed": "110", + "top_surface_speed": "70", + "support_speed": "110", + "support_interface_speed": "75%", + "bridge_speed": "40", + "gap_infill_speed": "75", + "overhang_1_4_speed": "15", + "overhang_2_4_speed": "20", + "overhang_3_4_speed": "25", + "overhang_4_4_speed": "90%", + "default_acceleration": "2500", + "outer_wall_acceleration": "1500", + "inner_wall_acceleration": "2500", + "top_surface_acceleration": "1500", + "internal_solid_infill_acceleration": "2500", + "sparse_infill_acceleration": "4000", + "bridge_acceleration": "1500", + "initial_layer_acceleration": "500", + "travel_acceleration": "5000", + "line_width": "0.68", + "initial_layer_line_width": "0.68", + "inner_wall_line_width": "0.6", + "outer_wall_line_width": "0.6", + "sparse_infill_line_width": "0.6", + "internal_solid_infill_line_width": "0.6", + "top_surface_line_width": "0.5", + "support_line_width": "0.55", + "infill_wall_overlap": "15%", + "resolution": "0.0125", + "elefant_foot_compensation": "0.2", + "compatible_printers": [ + "Prusa XL 0.6 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.25mm Speed @MINIIS.json b/resources/profiles/Prusa/process/0.25mm Speed @MINIIS.json index edb6a5430b..a0dcf72759 100644 --- a/resources/profiles/Prusa/process/0.25mm Speed @MINIIS.json +++ b/resources/profiles/Prusa/process/0.25mm Speed @MINIIS.json @@ -8,13 +8,14 @@ "line_width": "0.68", "inner_wall_line_width": "0.68", "outer_wall_line_width": "0.68", - "top_surface_line_width": "0.5", + "top_surface_line_width": "0.55", "sparse_infill_line_width": "0.68", "initial_layer_line_width": "0.68", "internal_solid_infill_line_width": "0.68", - "support_line_width": "0.55", + "support_line_width": "0.5", "layer_height": "0.25", - "initial_layer_print_height": "0.2", + "initial_layer_print_height": "0.25", + "wall_loops": "2", "top_shell_thickness": "0.9", "top_shell_layers": "4", "bottom_shell_thickness": "0.6", diff --git a/resources/profiles/Prusa/process/0.25mm Speed @Prusa XL 0.5.json b/resources/profiles/Prusa/process/0.25mm Speed @Prusa XL 0.5.json new file mode 100644 index 0000000000..6bdd86ca3f --- /dev/null +++ b/resources/profiles/Prusa/process/0.25mm Speed @Prusa XL 0.5.json @@ -0,0 +1,68 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.25mm Speed @Prusa XL 0.5", + "from": "system", + "instantiation": "true", + "inherits": "process_common_xl", + "inital_layer_height": "0.2", + "layer_height": "0.25", + "wall_loops": "2", + "top_shell_layers": "4", + "bottom_shell_layers": "3", + "top_shell_thickness": "0.7", + "bottom_shell_thickness": "0.5", + "sparse_infill_density": "15%", + "infill_anchor": "2", + "infill_anchor_max": "15", + "brim_object_gap": "0.1", + "support_threshold_angle": "40", + "raft_first_layer_density": "80%", + "raft_first_layer_expansion": "3.5", + "raft_contact_distance": "0.25", + "support_top_z_distance": "0.25", + "support_bottom_z_distance": "0.25", + "support_base_pattern_spacing": "2", + "support_interface_top_layers": "5", + "support_interface_spacing": "0.22", + "support_object_xy_distance": "80%", + "tree_support_bramch_diameter_angle": "5", + "tree_support_tip_diameter": "0.8", + "inner_wall_speed": "140", + "small_perimeter_speed": "140", + "outer_wall_speed": "140", + "sparse_infill_speed": "200", + "internal_solid_infill_speed": "110", + "top_surface_speed": "70", + "support_speed": "120", + "support_interface_speed": "75%", + "bridge_speed": "40", + "gap_infill_speed": "70", + "overhang_1_4_speed": "15", + "overhang_2_4_speed": "25", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "80%", + "default_acceleration": "2500", + "outer_wall_acceleration": "2500", + "inner_wall_acceleration": "3000", + "top_surface_acceleration": "1000", + "internal_solid_infill_acceleration": "3000", + "sparse_infill_acceleration": "4000", + "bridge_acceleration": "1000", + "initial_layer_acceleration": "500", + "travel_acceleration": "5000", + "line_width": "0.55", + "initial_layer_line_width": "0.55", + "inner_wall_line_width": "0.55", + "outer_wall_line_width": "0.55", + "sparse_infill_line_width": "0.55", + "internal_solid_infill_line_width": "0.55", + "top_surface_line_width": "0.5", + "support_line_width": "0.4", + "infill_wall_overlap": "15%", + "resolution": "0.008", + "elefant_foot_compensation": "0.2", + "compatible_printers": [ + "Prusa XL 0.5 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.25mm Speed @Prusa XL 0.6.json b/resources/profiles/Prusa/process/0.25mm Speed @Prusa XL 0.6.json new file mode 100644 index 0000000000..22654cab4e --- /dev/null +++ b/resources/profiles/Prusa/process/0.25mm Speed @Prusa XL 0.6.json @@ -0,0 +1,69 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.25mm Speed @Prusa XL 0.6", + "from": "system", + "instantiation": "true", + "inherits": "process_common_xl", + "inital_layer_height": "0.2", + "layer_height": "0.25", + "wall_loops": "2", + "top_shell_layers": "4", + "bottom_shell_layers": "3", + "top_shell_thickness": "0.9", + "bottom_shell_thickness": "0.6", + "sparse_infill_density": "20%", + "infill_anchor": "2.5", + "infill_anchor_max": "20", + "brim_object_gap": "0.1", + "support_threshold_angle": "40", + "raft_first_layer_density": "80%", + "raft_first_layer_expansion": "3.5", + "raft_contact_distance": "0.25", + "support_top_z_distance": "0.25", + "support_bottom_z_distance": "0.25", + "support_base_pattern_spacing": "2", + "support_interface_top_layers": "5", + "support_interface_spacing": "0.25", + "support_object_xy_distance": "80%", + "tree_support_bramch_diameter_angle": "5", + "tree_support_branch_diameter_double_wall": "5", + "tree_support_tip_diameter": "0.8", + "inner_wall_speed": "80", + "small_perimeter_speed": "80", + "outer_wall_speed": "80", + "sparse_infill_speed": "100", + "internal_solid_infill_speed": "90", + "top_surface_speed": "60", + "support_speed": "80", + "support_interface_speed": "75%", + "bridge_speed": "40", + "gap_infill_speed": "70", + "overhang_1_4_speed": "15", + "overhang_2_4_speed": "20", + "overhang_3_4_speed": "25", + "overhang_4_4_speed": "50", + "default_acceleration": "2500", + "outer_wall_acceleration": "2500", + "inner_wall_acceleration": "3000", + "top_surface_acceleration": "1500", + "internal_solid_infill_acceleration": "3000", + "sparse_infill_acceleration": "4000", + "bridge_acceleration": "1500", + "initial_layer_acceleration": "500", + "travel_acceleration": "5000", + "line_width": "0.68", + "initial_layer_line_width": "0.68", + "inner_wall_line_width": "0.68", + "outer_wall_line_width": "0.68", + "sparse_infill_line_width": "0.68", + "internal_solid_infill_line_width": "0.68", + "top_surface_line_width": "0.55", + "support_line_width": "0.55", + "infill_wall_overlap": "15%", + "resolution": "0.0125", + "elefant_foot_compensation": "0.2", + "compatible_printers": [ + "Prusa XL 0.6 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.25mm Standard @MINIIS.json b/resources/profiles/Prusa/process/0.25mm Standard @MINIIS.json index d46e23e0ff..0f3dcf81b6 100644 --- a/resources/profiles/Prusa/process/0.25mm Standard @MINIIS.json +++ b/resources/profiles/Prusa/process/0.25mm Standard @MINIIS.json @@ -8,13 +8,14 @@ "line_width": "0.68", "inner_wall_line_width": "0.68", "outer_wall_line_width": "0.68", - "top_surface_line_width": "0.5", + "top_surface_line_width": "0.55", "sparse_infill_line_width": "0.68", "initial_layer_line_width": "0.68", "internal_solid_infill_line_width": "0.68", - "support_line_width": "0.55", + "support_line_width": "0.5", "layer_height": "0.25", - "initial_layer_print_height": "0.2", + "initial_layer_print_height": "0.25", + "wall_loops": "2", "top_shell_thickness": "0.9", "top_shell_layers": "4", "bottom_shell_thickness": "0.6", diff --git a/resources/profiles/Prusa/process/0.25mm Structural @Prusa XL 0.4.json b/resources/profiles/Prusa/process/0.25mm Structural @Prusa XL 0.4.json new file mode 100644 index 0000000000..2e068b2d37 --- /dev/null +++ b/resources/profiles/Prusa/process/0.25mm Structural @Prusa XL 0.4.json @@ -0,0 +1,67 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.25mm Structural @Prusa XL 0.4", + "from": "system", + "instantiation": "true", + "inherits": "process_common_xl", + "inital_layer_height": "0.2", + "layer_height": "0.25", + "wall_loops": "2", + "top_shell_layers": "4", + "bottom_shell_layers": "3", + "top_shell_thickness": "0.7", + "bottom_shell_thickness": "0.5", + "sparse_infill_density": "15%", + "infill_anchor": "2", + "brim_object_gap": "0.1", + "support_threshold_angle": "40", + "raft_first_layer_density": "80%", + "raft_first_layer_expansion": "3.5", + "raft_contact_distance": "0.15", + "support_top_z_distance": "0.2", + "support_bottom_z_distance": "0.2", + "support_base_pattern_spacing": "2", + "support_interface_top_layers": "5", + "support_interface_spacing": "0.2", + "support_object_xy_distance": "80%", + "tree_support_bramch_diameter_angle": "5", + "tree_support_tip_diameter": "0.8", + "inner_wall_speed": "80", + "small_perimeter_speed": "45", + "outer_wall_speed": "45", + "sparse_infill_speed": "120", + "internal_solid_infill_speed": "140", + "top_surface_speed": "75", + "support_speed": "120", + "support_interface_speed": "50", + "bridge_speed": "50", + "gap_infill_speed": "65", + "overhang_1_4_speed": "15", + "overhang_2_4_speed": "25", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "90%", + "default_acceleration": "2500", + "outer_wall_acceleration": "1500", + "inner_wall_acceleration": "2500", + "top_surface_acceleration": "1000", + "internal_solid_infill_acceleration": "3000", + "sparse_infill_acceleration": "4000", + "bridge_acceleration": "1500", + "initial_layer_acceleration": "500", + "travel_acceleration": "5000", + "line_width": "0.45", + "initial_layer_line_width": "0.5", + "inner_wall_line_width": "0.45", + "outer_wall_line_width": "0.45", + "sparse_infill_line_width": "0.45", + "internal_solid_infill_line_width": "0.45", + "top_surface_line_width": "0.42", + "support_line_width": "0.36", + "infill_wall_overlap": "15%", + "resolution": "0.008", + "elefant_foot_compensation": "0.2", + "compatible_printers": [ + "Prusa XL 0.4 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.25mm Structural @Prusa XL 0.5.json b/resources/profiles/Prusa/process/0.25mm Structural @Prusa XL 0.5.json new file mode 100644 index 0000000000..8d52826fa8 --- /dev/null +++ b/resources/profiles/Prusa/process/0.25mm Structural @Prusa XL 0.5.json @@ -0,0 +1,68 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.25mm Structural @Prusa XL 0.5", + "from": "system", + "instantiation": "true", + "inherits": "process_common_xl", + "inital_layer_height": "0.2", + "layer_height": "0.25", + "wall_loops": "2", + "top_shell_layers": "4", + "bottom_shell_layers": "3", + "top_shell_thickness": "0.7", + "bottom_shell_thickness": "0.5", + "sparse_infill_density": "15%", + "infill_anchor": "2", + "infill_anchor_max": "15", + "brim_object_gap": "0.1", + "support_threshold_angle": "40", + "raft_first_layer_density": "80%", + "raft_first_layer_expansion": "3.5", + "raft_contact_distance": "0.25", + "support_top_z_distance": "0.25", + "support_bottom_z_distance": "0.25", + "support_base_pattern_spacing": "2", + "support_interface_top_layers": "5", + "support_interface_spacing": "0.22", + "support_object_xy_distance": "80%", + "tree_support_bramch_diameter_angle": "5", + "tree_support_tip_diameter": "0.8", + "inner_wall_speed": "80", + "small_perimeter_speed": "45", + "outer_wall_speed": "45", + "sparse_infill_speed": "200", + "internal_solid_infill_speed": "110", + "top_surface_speed": "70", + "support_speed": "75", + "support_interface_speed": "75%", + "bridge_speed": "40", + "gap_infill_speed": "70", + "overhang_1_4_speed": "15", + "overhang_2_4_speed": "25", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "80%", + "default_acceleration": "2500", + "outer_wall_acceleration": "1500", + "inner_wall_acceleration": "2000", + "top_surface_acceleration": "1000", + "internal_solid_infill_acceleration": "2500", + "sparse_infill_acceleration": "4000", + "bridge_acceleration": "1000", + "initial_layer_acceleration": "500", + "travel_acceleration": "5000", + "line_width": "0.55", + "initial_layer_line_width": "0.55", + "inner_wall_line_width": "0.55", + "outer_wall_line_width": "0.55", + "sparse_infill_line_width": "0.55", + "internal_solid_infill_line_width": "0.55", + "top_surface_line_width": "0.5", + "support_line_width": "0.4", + "infill_wall_overlap": "15%", + "resolution": "0.008", + "elefant_foot_compensation": "0.2", + "compatible_printers": [ + "Prusa XL 0.5 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.25mm Structural @Prusa XL 0.6.json b/resources/profiles/Prusa/process/0.25mm Structural @Prusa XL 0.6.json new file mode 100644 index 0000000000..9091395c5d --- /dev/null +++ b/resources/profiles/Prusa/process/0.25mm Structural @Prusa XL 0.6.json @@ -0,0 +1,69 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.25mm Structural @Prusa XL 0.6", + "from": "system", + "instantiation": "true", + "inherits": "process_common_xl", + "inital_layer_height": "0.2", + "layer_height": "0.25", + "wall_loops": "2", + "top_shell_layers": "4", + "bottom_shell_layers": "3", + "top_shell_thickness": "0.9", + "bottom_shell_thickness": "0.6", + "sparse_infill_density": "20%", + "infill_anchor": "2.5", + "infill_anchor_max": "20", + "brim_object_gap": "0.1", + "support_threshold_angle": "40", + "raft_first_layer_density": "80%", + "raft_first_layer_expansion": "3.5", + "raft_contact_distance": "0.25", + "support_top_z_distance": "0.25", + "support_bottom_z_distance": "0.25", + "support_base_pattern_spacing": "2", + "support_interface_top_layers": "5", + "support_interface_spacing": "0.25", + "support_object_xy_distance": "80%", + "tree_support_bramch_diameter_angle": "5", + "tree_support_branch_diameter_double_wall": "5", + "tree_support_tip_diameter": "0.8", + "inner_wall_speed": "80", + "small_perimeter_speed": "45", + "outer_wall_speed": "45", + "sparse_infill_speed": "100", + "internal_solid_infill_speed": "95", + "top_surface_speed": "70", + "support_speed": "80", + "support_interface_speed": "75%", + "bridge_speed": "40", + "gap_infill_speed": "70", + "overhang_1_4_speed": "15", + "overhang_2_4_speed": "20", + "overhang_3_4_speed": "25", + "overhang_4_4_speed": "90%", + "default_acceleration": "2500", + "outer_wall_acceleration": "1500", + "inner_wall_acceleration": "2500", + "top_surface_acceleration": "1500", + "internal_solid_infill_acceleration": "3000", + "sparse_infill_acceleration": "4000", + "bridge_acceleration": "1500", + "initial_layer_acceleration": "500", + "travel_acceleration": "5000", + "line_width": "0.68", + "initial_layer_line_width": "0.68", + "inner_wall_line_width": "0.68", + "outer_wall_line_width": "0.68", + "sparse_infill_line_width": "0.68", + "internal_solid_infill_line_width": "0.68", + "top_surface_line_width": "0.55", + "support_line_width": "0.55", + "infill_wall_overlap": "15%", + "resolution": "0.0125", + "elefant_foot_compensation": "0.2", + "compatible_printers": [ + "Prusa XL 0.6 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.30mm Detail @MINIIS.json b/resources/profiles/Prusa/process/0.30mm Detail @MINIIS.json index 80cda29acc..447720117b 100644 --- a/resources/profiles/Prusa/process/0.30mm Detail @MINIIS.json +++ b/resources/profiles/Prusa/process/0.30mm Detail @MINIIS.json @@ -14,9 +14,10 @@ "internal_solid_infill_line_width": "0.9", "support_line_width": "0.65", "layer_height": "0.3", - "initial_layer_print_height": "0.2", + "initial_layer_print_height": "0.4", "top_shell_thickness": "0.7", "top_shell_layers": "3", + "wall_loops": "2", "bottom_shell_thickness": "0.5", "bottom_shell_layers": "2", "travel_speed": "300", diff --git a/resources/profiles/Prusa/process/0.30mm Detail @Prusa XL 0.8.json b/resources/profiles/Prusa/process/0.30mm Detail @Prusa XL 0.8.json new file mode 100644 index 0000000000..6307ceb9c2 --- /dev/null +++ b/resources/profiles/Prusa/process/0.30mm Detail @Prusa XL 0.8.json @@ -0,0 +1,71 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.30mm Detail @Prusa XL 0.8", + "from": "system", + "instantiation": "true", + "inherits": "process_common_xl", + "inital_layer_height": "0.2", + "layer_height": "0.3", + "wall_loops": "2", + "top_shell_layers": "4", + "bottom_shell_layers": "3", + "top_shell_thickness": "1.2", + "bottom_shell_thickness": "0.8", + "thick_bridges": "1", + "seam_position": "nearest", + "sparse_infill_density": "15%", + "sparse_infill_pattern": "crosshatch", + "infill_anchor": "2.5", + "infill_anchor_max": "20", + "brim_object_gap": "0.1", + "support_threshold_angle": "40", + "raft_first_layer_density": "80%", + "raft_first_layer_expansion": "3.5", + "raft_contact_distance": "0.2", + "support_top_z_distance": "0.25", + "support_bottom_z_distance": "0.25", + "support_base_pattern_spacing": "2", + "support_interface_top_layers": "5", + "support_interface_spacing": "0.35", + "support_object_xy_distance": "80%", + "tree_support_bramch_diameter_angle": "5", + "tree_support_tip_diameter": "0.8", + "inner_wall_speed": "70", + "small_perimeter_speed": "45", + "outer_wall_speed": "45", + "sparse_infill_speed": "100", + "internal_solid_infill_speed": "50", + "top_surface_speed": "35", + "support_speed": "65", + "support_interface_speed": "85%", + "bridge_speed": "22", + "gap_infill_speed": "40", + "overhang_1_4_speed": "15", + "overhang_2_4_speed": "20", + "overhang_3_4_speed": "25", + "overhang_4_4_speed": "80%", + "default_acceleration": "2000", + "outer_wall_acceleration": "1500", + "inner_wall_acceleration": "2000", + "top_surface_acceleration": "1000", + "internal_solid_infill_acceleration": "3000", + "sparse_infill_acceleration": "4000", + "bridge_acceleration": "1000", + "initial_layer_acceleration": "500", + "travel_acceleration": "5000", + "line_width": "0.9", + "initial_layer_line_width": "1", + "inner_wall_line_width": "0.9", + "outer_wall_line_width": "0.9", + "sparse_infill_line_width": "0.9", + "internal_solid_infill_line_width": "0.9", + "top_surface_line_width": "0.7", + "support_line_width": "0.65", + "infill_wall_overlap": "15%", + "resolution": "0.0125", + "elefant_foot_compensation": "0.2", + "compatible_printers": [ + "Prusa XL 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.32mm Speed @Prusa XL 0.6.json b/resources/profiles/Prusa/process/0.32mm Speed @Prusa XL 0.6.json new file mode 100644 index 0000000000..d7ba66b9ed --- /dev/null +++ b/resources/profiles/Prusa/process/0.32mm Speed @Prusa XL 0.6.json @@ -0,0 +1,69 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.32mm Speed @Prusa XL 0.6", + "from": "system", + "instantiation": "true", + "inherits": "process_common_xl", + "inital_layer_height": "0.2", + "layer_height": "0.32", + "wall_loops": "2", + "top_shell_layers": "4", + "bottom_shell_layers": "3", + "top_shell_thickness": "0.9", + "bottom_shell_thickness": "0.6", + "sparse_infill_density": "20%", + "infill_anchor": "2.5", + "infill_anchor_max": "20", + "brim_object_gap": "0.1", + "support_threshold_angle": "40", + "raft_first_layer_density": "80%", + "raft_first_layer_expansion": "3.5", + "raft_contact_distance": "0.25", + "support_top_z_distance": "0.25", + "support_bottom_z_distance": "0.25", + "support_base_pattern_spacing": "2", + "support_interface_top_layers": "5", + "support_interface_spacing": "0.25", + "support_object_xy_distance": "80%", + "tree_support_bramch_diameter_angle": "5", + "tree_support_branch_diameter_double_wall": "5", + "tree_support_tip_diameter": "0.8", + "inner_wall_speed": "70", + "small_perimeter_speed": "70", + "outer_wall_speed": "70", + "sparse_infill_speed": "100", + "internal_solid_infill_speed": "70", + "top_surface_speed": "60", + "support_speed": "70", + "support_interface_speed": "75%", + "bridge_speed": "40", + "gap_infill_speed": "65", + "overhang_1_4_speed": "15", + "overhang_2_4_speed": "20", + "overhang_3_4_speed": "25", + "overhang_4_4_speed": "50", + "default_acceleration": "2500", + "outer_wall_acceleration": "2500", + "inner_wall_acceleration": "3000", + "top_surface_acceleration": "1500", + "internal_solid_infill_acceleration": "3000", + "sparse_infill_acceleration": "4000", + "bridge_acceleration": "1500", + "initial_layer_acceleration": "500", + "travel_acceleration": "5000", + "line_width": "0.68", + "initial_layer_line_width": "0.68", + "inner_wall_line_width": "0.68", + "outer_wall_line_width": "0.68", + "sparse_infill_line_width": "0.68", + "internal_solid_infill_line_width": "0.68", + "top_surface_line_width": "0.55", + "support_line_width": "0.55", + "infill_wall_overlap": "15%", + "resolution": "0.0125", + "elefant_foot_compensation": "0.2", + "compatible_printers": [ + "Prusa XL 0.6 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.32mm Structural @Prusa XL 0.6.json b/resources/profiles/Prusa/process/0.32mm Structural @Prusa XL 0.6.json new file mode 100644 index 0000000000..38e6891060 --- /dev/null +++ b/resources/profiles/Prusa/process/0.32mm Structural @Prusa XL 0.6.json @@ -0,0 +1,69 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.32mm Structural @Prusa XL 0.6", + "from": "system", + "instantiation": "true", + "inherits": "process_common_xl", + "inital_layer_height": "0.2", + "layer_height": "0.32", + "wall_loops": "2", + "top_shell_layers": "5", + "bottom_shell_layers": "4", + "top_shell_thickness": "0.9", + "bottom_shell_thickness": "0.6", + "sparse_infill_density": "20%", + "infill_anchor": "2.5", + "infill_anchor_max": "20", + "brim_object_gap": "0.1", + "support_threshold_angle": "40", + "raft_first_layer_density": "80%", + "raft_first_layer_expansion": "3.5", + "raft_contact_distance": "0.25", + "support_top_z_distance": "0.25", + "support_bottom_z_distance": "0.25", + "support_base_pattern_spacing": "2", + "support_interface_top_layers": "5", + "support_interface_spacing": "0.25", + "support_object_xy_distance": "80%", + "tree_support_bramch_diameter_angle": "5", + "tree_support_branch_diameter_double_wall": "5", + "tree_support_tip_diameter": "0.8", + "inner_wall_speed": "70", + "small_perimeter_speed": "45", + "outer_wall_speed": "45", + "sparse_infill_speed": "70", + "internal_solid_infill_speed": "70", + "top_surface_speed": "70", + "support_speed": "80", + "support_interface_speed": "75%", + "bridge_speed": "40", + "gap_infill_speed": "70", + "overhang_1_4_speed": "15", + "overhang_2_4_speed": "20", + "overhang_3_4_speed": "25", + "overhang_4_4_speed": "90%", + "default_acceleration": "2500", + "outer_wall_acceleration": "1500", + "inner_wall_acceleration": "2500", + "top_surface_acceleration": "1500", + "internal_solid_infill_acceleration": "3000", + "sparse_infill_acceleration": "4000", + "bridge_acceleration": "1500", + "initial_layer_acceleration": "500", + "travel_acceleration": "5000", + "line_width": "0.68", + "initial_layer_line_width": "0.68", + "inner_wall_line_width": "0.68", + "outer_wall_line_width": "0.68", + "sparse_infill_line_width": "0.68", + "internal_solid_infill_line_width": "0.68", + "top_surface_line_width": "0.55", + "support_line_width": "0.55", + "infill_wall_overlap": "15%", + "resolution": "0.0125", + "elefant_foot_compensation": "0.2", + "compatible_printers": [ + "Prusa XL 0.6 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.35mm Standard @MINIIS.json b/resources/profiles/Prusa/process/0.35mm Standard @MINIIS.json index e3d12815f5..6aaff5322a 100644 --- a/resources/profiles/Prusa/process/0.35mm Standard @MINIIS.json +++ b/resources/profiles/Prusa/process/0.35mm Standard @MINIIS.json @@ -8,13 +8,14 @@ "line_width": "0.68", "inner_wall_line_width": "0.68", "outer_wall_line_width": "0.68", - "top_surface_line_width": "0.5", + "top_surface_line_width": "0.55", "sparse_infill_line_width": "0.68", "initial_layer_line_width": "0.68", "internal_solid_infill_line_width": "0.68", - "support_line_width": "0.55", - "initial_layer_print_height": "0.2", + "support_line_width": "0.5", + "initial_layer_print_height": "0.25", "layer_height": "0.35", + "wall_loops": "2", "top_shell_thickness": "0.9", "top_shell_layers": "4", "bottom_shell_thickness": "0.6", diff --git a/resources/profiles/Prusa/process/0.40mm Quality @Prusa XL 0.8.json b/resources/profiles/Prusa/process/0.40mm Quality @Prusa XL 0.8.json new file mode 100644 index 0000000000..9788a261da --- /dev/null +++ b/resources/profiles/Prusa/process/0.40mm Quality @Prusa XL 0.8.json @@ -0,0 +1,71 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.40mm Quality @Prusa XL 0.8", + "from": "system", + "instantiation": "true", + "inherits": "process_common_xl", + "inital_layer_height": "0.2", + "layer_height": "0.4", + "wall_loops": "2", + "top_shell_layers": "4", + "bottom_shell_layers": "3", + "top_shell_thickness": "1.2", + "bottom_shell_thickness": "0.8", + "thick_bridges": "1", + "seam_position": "nearest", + "sparse_infill_density": "15%", + "sparse_infill_pattern": "crosshatch", + "infill_anchor": "2.5", + "infill_anchor_max": "20", + "brim_object_gap": "0.1", + "support_threshold_angle": "40", + "raft_first_layer_density": "80%", + "raft_first_layer_expansion": "3.5", + "raft_contact_distance": "0.2", + "support_top_z_distance": "0.25", + "support_bottom_z_distance": "0.25", + "support_base_pattern_spacing": "2", + "support_interface_top_layers": "5", + "support_interface_spacing": "0.35", + "support_object_xy_distance": "80%", + "tree_support_bramch_diameter_angle": "5", + "tree_support_tip_diameter": "0.8", + "inner_wall_speed": "50", + "small_perimeter_speed": "45", + "outer_wall_speed": "45", + "sparse_infill_speed": "90", + "internal_solid_infill_speed": "45", + "top_surface_speed": "35", + "support_speed": "50", + "support_interface_speed": "85%", + "bridge_speed": "22", + "gap_infill_speed": "35", + "overhang_1_4_speed": "15", + "overhang_2_4_speed": "20", + "overhang_3_4_speed": "25", + "overhang_4_4_speed": "80%", + "default_acceleration": "2000", + "outer_wall_acceleration": "1500", + "inner_wall_acceleration": "2000", + "top_surface_acceleration": "1000", + "internal_solid_infill_acceleration": "3000", + "sparse_infill_acceleration": "4000", + "bridge_acceleration": "1000", + "initial_layer_acceleration": "500", + "travel_acceleration": "5000", + "line_width": "0.9", + "initial_layer_line_width": "1", + "inner_wall_line_width": "0.9", + "outer_wall_line_width": "0.9", + "sparse_infill_line_width": "0.9", + "internal_solid_infill_line_width": "0.9", + "top_surface_line_width": "0.75", + "support_line_width": "0.65", + "infill_wall_overlap": "15%", + "resolution": "0.0125", + "elefant_foot_compensation": "0.2", + "compatible_printers": [ + "Prusa XL 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.40mm Standard @MINIIS.json b/resources/profiles/Prusa/process/0.40mm Standard @MINIIS.json index 3f2bd1d86a..ab085de8be 100644 --- a/resources/profiles/Prusa/process/0.40mm Standard @MINIIS.json +++ b/resources/profiles/Prusa/process/0.40mm Standard @MINIIS.json @@ -14,7 +14,8 @@ "internal_solid_infill_line_width": "0.9", "support_line_width": "0.65", "layer_height": "0.4", - "initial_layer_print_height": "0.2", + "initial_layer_print_height": "0.3", + "wall_loops": "2", "top_shell_thickness": "1.2", "top_shell_layers": "4", "bottom_shell_thickness": "0.8", diff --git a/resources/profiles/Prusa/process/0.55mm Draft @Prusa XL 0.8.json b/resources/profiles/Prusa/process/0.55mm Draft @Prusa XL 0.8.json new file mode 100644 index 0000000000..5abb705a88 --- /dev/null +++ b/resources/profiles/Prusa/process/0.55mm Draft @Prusa XL 0.8.json @@ -0,0 +1,71 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.55mm Draft @Prusa XL 0.8", + "from": "system", + "instantiation": "true", + "inherits": "process_common_xl", + "inital_layer_height": "0.2", + "layer_height": "0.55", + "wall_loops": "2", + "top_shell_layers": "4", + "bottom_shell_layers": "3", + "top_shell_thickness": "1.2", + "bottom_shell_thickness": "0.8", + "thick_bridges": "1", + "seam_position": "nearest", + "sparse_infill_density": "15%", + "sparse_infill_pattern": "crosshatch", + "infill_anchor": "2.5", + "infill_anchor_max": "20", + "brim_object_gap": "0.1", + "support_threshold_angle": "40", + "raft_first_layer_density": "80%", + "raft_first_layer_expansion": "3.5", + "raft_contact_distance": "0.2", + "support_top_z_distance": "0.25", + "support_bottom_z_distance": "0.25", + "support_base_pattern_spacing": "2", + "support_interface_top_layers": "5", + "support_interface_spacing": "0.35", + "support_object_xy_distance": "80%", + "tree_support_bramch_diameter_angle": "5", + "tree_support_tip_diameter": "0.8", + "inner_wall_speed": "40", + "small_perimeter_speed": "35", + "outer_wall_speed": "35", + "sparse_infill_speed": "55", + "internal_solid_infill_speed": "35", + "top_surface_speed": "30", + "support_speed": "35", + "support_interface_speed": "85%", + "bridge_speed": "22", + "gap_infill_speed": "30", + "overhang_1_4_speed": "15", + "overhang_2_4_speed": "20", + "overhang_3_4_speed": "25", + "overhang_4_4_speed": "80%", + "default_acceleration": "2000", + "outer_wall_acceleration": "1500", + "inner_wall_acceleration": "2000", + "top_surface_acceleration": "1000", + "internal_solid_infill_acceleration": "3000", + "sparse_infill_acceleration": "4000", + "bridge_acceleration": "1000", + "initial_layer_acceleration": "500", + "travel_acceleration": "5000", + "line_width": "0.9", + "initial_layer_line_width": "1", + "inner_wall_line_width": "1", + "outer_wall_line_width": "1", + "sparse_infill_line_width": "0.9", + "internal_solid_infill_line_width": "0.9", + "top_surface_line_width": "0.75", + "support_line_width": "0.65", + "infill_wall_overlap": "15%", + "resolution": "0.0125", + "elefant_foot_compensation": "0.2", + "compatible_printers": [ + "Prusa XL 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Prusa/process/fdm_process_common.json b/resources/profiles/Prusa/process/fdm_process_common.json index 1727668cde..70f8582d43 100644 --- a/resources/profiles/Prusa/process/fdm_process_common.json +++ b/resources/profiles/Prusa/process/fdm_process_common.json @@ -57,7 +57,8 @@ "raft_layers": "0", "seam_position": "aligned", "skirt_distance": "2", - "skirt_height": "1", + "skirt_height": "3", + "min_skirt_length": "4", "skirt_loops": "0", "minimum_sparse_infill_area": "15", "spiral_mode": "0", @@ -75,7 +76,7 @@ "support_interface_bottom_layers": "2", "support_interface_spacing": "0.5", "support_interface_speed": "80", - "support_base_pattern": "rectilinear", + "support_base_pattern": "default", "support_base_pattern_spacing": "2.5", "support_speed": "150", "support_threshold_angle": "30", diff --git a/resources/profiles/Prusa/process/process_common_miniis.json b/resources/profiles/Prusa/process/process_common_miniis.json index 7260a44fd2..0bc991159b 100644 --- a/resources/profiles/Prusa/process/process_common_miniis.json +++ b/resources/profiles/Prusa/process/process_common_miniis.json @@ -49,6 +49,7 @@ "infill_wall_overlap": "10%", "enable_arc_fitting": "1", "support_speed": "100", + "support_style": "snug", "precise_outer_wall": "1", "overhang_reverse": "1" } \ No newline at end of file diff --git a/resources/profiles/Prusa/process/process_common_mk3.json b/resources/profiles/Prusa/process/process_common_mk3.json index df6f34df22..7a4b8c5d7e 100644 --- a/resources/profiles/Prusa/process/process_common_mk3.json +++ b/resources/profiles/Prusa/process/process_common_mk3.json @@ -70,10 +70,10 @@ "staggered_inner_seams": "0", "standby_temperature_delta": "-5", "support_angle": "0", - "support_base_pattern": "rectilinear", + "support_base_pattern": "default", "support_interface_bottom_layers": "0", "support_interface_loop_pattern": "0", - "support_interface_pattern": "rectilinear", + "support_interface_pattern": "auto", "support_interface_spacing": "0.2", "support_interface_top_layers": "2", "support_on_build_plate_only": "0", diff --git a/resources/profiles/Prusa/process/process_common_xl.json b/resources/profiles/Prusa/process/process_common_xl.json new file mode 100644 index 0000000000..f3f2a7e791 --- /dev/null +++ b/resources/profiles/Prusa/process/process_common_xl.json @@ -0,0 +1,96 @@ +{ + "type": "process", + "name": "process_common_xl", + "from": "system", + "instantiation": "false", + "inherits": "fdm_process_common", + "infill_combination": "1", + "infill_anchor": "2", + "wall_loops": "2", + "top_shell_layers": "5", + "bottom_shell_layers": "4", + "top_shell_thickness": "0.7", + "detect_overhang_wall": "1", + "wall_generator": "arachne", + "gap_fill_target": "everywhere", + "bottom_shell_thickness": "0.5", + "infill_anchor_max": "12", + "sparse_infill_pattern": "crosshatch", + "sparse_infill_density": "15%", + "fuzzy_skin_point_distance": "0.8", + "fuzzy_skin_thickness": "0.3", + "skirt_height": "3", + "brim_type": "outer_only", + "brim_width": "0", + "support_threshold_angle": "45", + "raft_first_layer_density": "80%", + "raft_first_layer_expansion": "3", + "raft_contact_distance": "0.2", + "support_type": "tree(auto)", + "support_style": "organic", + "support_base_pattern_spacing": "2", + "support_interface_top_layers": "5", + "support_interface_bottom_layers": "0", + "support_interface_pattern": "auto", + "support_interface_spacing": "0.2", + "support_object_xy_distance": "80%", + "tree_support_branch_angle_organic": "40", + "tree_support_angle_slow": "30", + "tree_support_branch_diameter_organic": "2", + "tree_support_bramch_diameter_angle": "3", + "tree_support_branch_diameter_double_wall": "3", + "tree_support_tip_diameter": "0.6", + "tree_support_top_rate": "30%", + "tree_support_branch_distance_organic": "1", + "initial_layer_speed": "25", + "initial_layer_infill_speed": "25", + "outer_wall_speed": "70", + "inner_wall_speed": "90", + "small_perimeter_speed": "40", + "sparse_infill_speed": "200", + "top_surface_speed": "40", + "internal_solid_infill_speed": "140", + "support_speed": "60", + "support_interface_speed": "70%", + "bridge_speed": "25", + "gap_infill_speed": "45", + "ironing_speed": "15", + "ironing_flow": "15%", + "ironing_spacing": "0.1", + "enable_overhang_speed": "1", + "overhang_1_4_speed": "15", + "overhang_2_4_speed": "15", + "overhang_3_4_speed": "20", + "overhang_4_4_speed": "25", + "travel_speed": "400", + "default_acceleration": "1250", + "outer_wall_acceleration": "1000", + "inner_wall_acceleration": "1200", + "top_surface_acceleration": "800", + "internal_solid_infill_acceleration": "2000", + "sparse_infill_acceleration": "3000", + "bridge_acceleration": "1000", + "initial_layer_acceleration": "600", + "travel_acceleration": "0", + "line_width": "0.45", + "initial_layer_line_width": "0.5", + "outer_wall_line_width": "0.45", + "inner_wall_line_width": "0.45", + "top_surface_line_width": "0.42", + "sparse_infill_line_width": "0.45", + "internal_solid_infill_line_width": "0.45", + "support_line_width": "0.37", + "infill_wall_overlap": "10%", + "slice_closing_radius": "0.049", + "resolution": "0.0125", + "enable_arc_fitting": "1", + "elefant_foot_compensation": "0.2", + "wall_transition_angle": "10", + "wall_transition_filter_deviation": "25%", + "wall_transition_length": "100%", + "wall_distribution_count": "1", + "min_bead_width": "85%", + "min_feature_size": "25%", + "filename_format": "{input_filename_base}_{layer_height}mm_{filament_type[initial_tool]}_{print_time}.gcode", + "gcode_label_objects": "1" +} \ No newline at end of file diff --git a/resources/profiles/Qidi.json b/resources/profiles/Qidi.json index 8b820d30ad..49349ee0dd 100644 --- a/resources/profiles/Qidi.json +++ b/resources/profiles/Qidi.json @@ -1,6 +1,6 @@ { "name": "Qidi", - "version": "02.01.00.00", + "version": "02.01.00.01", "force_update": "0", "description": "Qidi configurations", "machine_model_list": [ @@ -1040,6 +1040,10 @@ "name": "Qidi Generic PLA Silk", "sub_path": "filament/Qidi Generic PLA Silk.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" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Odorless @0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Odorless @0.2 nozzle.json index 8f0cd8942d..4692ab21e1 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Odorless @0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Odorless @0.2 nozzle.json @@ -18,10 +18,10 @@ "filament_max_volumetric_speed": [ "2" ], - "max_fan_speed":[ + "fan_max_speed":[ "80" ], - "min_fan_speed":[ + "fan_min_speed":[ "10" ], "compatible_printers": [ diff --git a/resources/profiles/Qidi/filament/QIDI ABS Odorless @0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Odorless @0.8 nozzle.json index 0474f72171..1ad2babeb7 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Odorless @0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Odorless @0.8 nozzle.json @@ -24,10 +24,10 @@ "slow_down_min_speed": [ "10" ], - "max_fan_speed":[ + "fan_max_speed":[ "80" ], - "min_fan_speed":[ + "fan_min_speed":[ "10" ], "compatible_printers": [ diff --git a/resources/profiles/Qidi/filament/QIDI ABS Odorless.json b/resources/profiles/Qidi/filament/QIDI ABS Odorless.json index ccc24c26c7..6a103b36b7 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Odorless.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Odorless.json @@ -18,10 +18,10 @@ "pressure_advance": [ "0.021" ], - "max_fan_speed":[ + "fan_max_speed":[ "80" ], - "min_fan_speed":[ + "fan_min_speed":[ "10" ], "overhang_fan_speed": [ diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido.json index e9b5f75734..377ae61cc7 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Rapido.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido.json @@ -18,10 +18,10 @@ "pressure_advance": [ "0.021" ], - "max_fan_speed":[ + "fan_max_speed":[ "80" ], - "min_fan_speed":[ + "fan_min_speed":[ "20" ], "overhang_fan_speed": [ diff --git a/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi Q1 Pro 0.4 nozzle.json index c17e501b93..d815a3fd13 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi Q1 Pro 0.4 nozzle.json @@ -3,7 +3,7 @@ "setting_id": "GFSA04", "instantiation": "true", "activate_chamber_temp_control": [ - "1" + "0" ], "fan_max_speed": [ "20" diff --git a/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi Q1 Pro 0.6 nozzle.json index 01f7deabda..b7cd33d00f 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi Q1 Pro 0.6 nozzle.json @@ -3,7 +3,7 @@ "setting_id": "GFSA04", "instantiation": "true", "activate_chamber_temp_control": [ - "1" + "0" ], "fan_max_speed": [ "20" diff --git a/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi Q1 Pro 0.8 nozzle.json index ae7abb3feb..8d1ffc61d2 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi Q1 Pro 0.8 nozzle.json @@ -3,7 +3,7 @@ "setting_id": "GFSA04", "instantiation": "true", "activate_chamber_temp_control": [ - "1" + "0" ], "fan_max_speed": [ "20" diff --git a/resources/profiles/Qidi/filament/QIDI ASA.json b/resources/profiles/Qidi/filament/QIDI ASA.json index 860d743bba..2659ea9299 100644 --- a/resources/profiles/Qidi/filament/QIDI ASA.json +++ b/resources/profiles/Qidi/filament/QIDI ASA.json @@ -48,10 +48,10 @@ "pressure_advance": [ "0.021" ], - "max_fan_speed":[ + "fan_max_speed":[ "50" ], - "min_fan_speed":[ + "fan_min_speed":[ "10" ], "filament_retraction_length": [ diff --git a/resources/profiles/Qidi/filament/QIDI PA-Ultra.json b/resources/profiles/Qidi/filament/QIDI PA-Ultra.json index 91b0873137..3f25c72692 100644 --- a/resources/profiles/Qidi/filament/QIDI PA-Ultra.json +++ b/resources/profiles/Qidi/filament/QIDI PA-Ultra.json @@ -24,10 +24,10 @@ "pressure_advance": [ "0.03" ], - "max_fan_speed":[ + "fan_max_speed":[ "40" ], -"min_fan_speed":[ +"fan_min_speed":[ "20" ], "hot_plate_temp_initial_layer" : [ diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi Q1 Pro 0.2 nozzle.json index f2b961f821..4e6b1dcbb7 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi Q1 Pro 0.2 nozzle.json @@ -40,7 +40,7 @@ "210" ], "pressure_advance": [ - "0.042" + "0.036" ], "slow_down_min_speed": [ "20" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi Q1 Pro 0.4 nozzle.json index 9fde954540..35127f6813 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi Q1 Pro 0.4 nozzle.json @@ -40,7 +40,7 @@ "210" ], "pressure_advance": [ - "0.042" + "0.036" ], "slow_down_min_speed": [ "20" diff --git a/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi Q1 Pro 0.4 nozzle.json index 7b47a552f7..1298e6b1fb 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi Q1 Pro 0.4 nozzle.json @@ -2,10 +2,10 @@ "filament_id": "GFL98", "setting_id": "GFSL98", "instantiation": "true", - "extrusion_multiplier": [ + "filament_flow_ratio": [ "0.93" ], - "first_layer_temperature": [ + "nozzle_temperature_initial_layer": [ "220" ], "filament_max_volumetric_speed": [ diff --git a/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi Q1 Pro 0.6 nozzle.json index 0fec335289..2816edc17d 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi Q1 Pro 0.6 nozzle.json @@ -2,10 +2,10 @@ "filament_id": "GFL98", "setting_id": "GFSL98", "instantiation": "true", - "extrusion_multiplier": [ + "filament_flow_ratio": [ "0.93" ], - "first_layer_temperature": [ + "nozzle_temperature_initial_layer": [ "220" ], "filament_max_volumetric_speed": [ diff --git a/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi Q1 Pro 0.8 nozzle.json index d0387282d7..d5fdc0cfe7 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi Q1 Pro 0.8 nozzle.json @@ -2,10 +2,10 @@ "filament_id": "GFL98", "setting_id": "GFSL98", "instantiation": "true", - "extrusion_multiplier": [ + "filament_flow_ratio": [ "0.93" ], - "first_layer_temperature": [ + "nozzle_temperature_initial_layer": [ "220" ], "filament_max_volumetric_speed": [ diff --git a/resources/profiles/Qidi/filament/Qidi ASA-Aero.json b/resources/profiles/Qidi/filament/Qidi ASA-Aero.json index ca2c07fcf3..fe344d1a98 100644 --- a/resources/profiles/Qidi/filament/Qidi ASA-Aero.json +++ b/resources/profiles/Qidi/filament/Qidi ASA-Aero.json @@ -51,10 +51,10 @@ "filament_retraction_length": [ "0.01" ], - "max_fan_speed":[ + "fan_max_speed":[ "50" ], - "min_fan_speed":[ + "fan_min_speed":[ "10" ], "overhang_fan_speed": [ diff --git a/resources/profiles/Qidi/filament/Qidi Generic ABS.json b/resources/profiles/Qidi/filament/Qidi Generic ABS.json index fecf1b88cc..a69b373488 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ABS.json +++ b/resources/profiles/Qidi/filament/Qidi Generic ABS.json @@ -21,10 +21,10 @@ "pressure_advance": [ "0.021" ], - "max_fan_speed":[ + "fan_max_speed":[ "80" ], - "min_fan_speed":[ + "fan_min_speed":[ "10" ], "overhang_fan_speed": [ diff --git a/resources/profiles/Qidi/filament/Qidi Generic ASA.json b/resources/profiles/Qidi/filament/Qidi Generic ASA.json index 93a94c4630..16630b9d73 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ASA.json +++ b/resources/profiles/Qidi/filament/Qidi Generic ASA.json @@ -24,10 +24,10 @@ "enable_pressure_advance": [ "1" ], - "max_fan_speed":[ + "fan_max_speed":[ "50" ], - "min_fan_speed":[ + "fan_min_speed":[ "10" ], "pressure_advance": [ 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 index 8a7d1c3ae9..26f71de6b8 100644 --- 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 @@ -16,7 +16,7 @@ "1" ], "pressure_advance": [ - "0.042" + "0.036" ], "filament_max_volumetric_speed": [ "14" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA Silk @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA Silk @Qidi Q1 Pro 0.4 nozzle.json new file mode 100644 index 0000000000..9475b0bdfc --- /dev/null +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA Silk @Qidi Q1 Pro 0.4 nozzle.json @@ -0,0 +1,37 @@ +{ + "type": "filament", + "filament_id": "GFA05", + "setting_id": "GFSL99_01", + "name": "Qidi Generic PLA Silk @Qidi Q1 Pro 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Qidi Generic PLA Silk", + "enable_pressure_advance":"1", + "pressure_advance": [ + "0.032" + ], + "nozzle_temperature_initial_layer":[ + "220" + ], + "filament_max_volumetric_speed": [ + "7.5" + ], + "filament_retraction_length": [ + "0.5" + ], + "filament_flow_ratio": [ + "0.98" + ], + "slow_down_layer_time": [ + "8" + ], + "hot_plate_temp_initial_layer" : [ + "55" + ], + "hot_plate_temp" : [ + "55" + ], + "compatible_printers": [ + "Qidi Q1 Pro 0.4 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA Silk.json b/resources/profiles/Qidi/filament/Qidi Generic PLA Silk.json index e99189fd80..e57df57286 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA Silk.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA Silk.json @@ -8,7 +8,7 @@ "inherits": "fdm_filament_pla", "enable_pressure_advance":"1", "pressure_advance": [ - "0.032" + "0.024" ], "nozzle_temperature_initial_layer":[ "220" @@ -58,7 +58,6 @@ "Qidi X-Plus 3 0.8 nozzle", "Qidi X-Max 3 0.8 nozzle", "Qidi Q1 Pro 0.2 nozzle", - "Qidi Q1 Pro 0.4 nozzle", "Qidi Q1 Pro 0.6 nozzle", "Qidi Q1 Pro 0.8 nozzle" ] diff --git a/resources/profiles/Qidi/filament/Qidi PC-ABS-FR.json b/resources/profiles/Qidi/filament/Qidi PC-ABS-FR.json index b5f8921369..42e4515943 100644 --- a/resources/profiles/Qidi/filament/Qidi PC-ABS-FR.json +++ b/resources/profiles/Qidi/filament/Qidi PC-ABS-FR.json @@ -21,10 +21,10 @@ "overhang_fan_speed": [ "60" ], - "max_fan_speed":[ + "fan_max_speed":[ "40" ], - "min_fan_speed":[ + "fan_min_speed":[ "10" ], "hot_plate_temp_initial_layer" : [ diff --git a/resources/profiles/Qidi/filament/Qidi PLA-CF.json b/resources/profiles/Qidi/filament/Qidi PLA-CF.json index dda26e182f..ff6fec8cf2 100644 --- a/resources/profiles/Qidi/filament/Qidi PLA-CF.json +++ b/resources/profiles/Qidi/filament/Qidi PLA-CF.json @@ -15,19 +15,16 @@ "filament_max_volumetric_speed": [ "9" ], - "temperature": [ + "nozzle_temperature": [ "230" ], - "first_layer_temperature": [ + "nozzle_temperature_initial_layer": [ "230" ], "filament_density": [ "1.25" ], - "extrusion_multiplier": [ - "0.96" - ], - "advance_pressure": [ + "pressure_advance": [ "0.02" ], diff --git a/resources/profiles/Qidi/filament/fdm_filament_common.json b/resources/profiles/Qidi/filament/fdm_filament_common.json index d04f771b95..35774ff53c 100644 --- a/resources/profiles/Qidi/filament/fdm_filament_common.json +++ b/resources/profiles/Qidi/filament/fdm_filament_common.json @@ -144,5 +144,8 @@ "activate_chamber_temp_control": [ "0" ], + "enable_pressure_advance": [ + "1" + ], "compatible_printers": [] } diff --git a/resources/profiles/Qidi/machine/Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/machine/Qidi Q1 Pro 0.4 nozzle.json index 8d849c8dcf..0cb869e20d 100644 --- a/resources/profiles/Qidi/machine/Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/machine/Qidi Q1 Pro 0.4 nozzle.json @@ -61,8 +61,8 @@ "112x112" ], "layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nLOG_Z\nG92 E0\n", - "machine_end_gcode": "M141 S0\nM104 S0\nM140 S0\nG1 E-3 F1800\nG91\nG0 Z5 F600\nG90\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=[first_layer_bed_temperature] HOTEND=[first_layer_temperature] CHAMBER=[chamber_temperature]\nM83\nM140 S[first_layer_bed_temperature]\nM104 S[first_layer_temperature]\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[first_layer_height] F600\nG1 E3 F1800\nG1 X{(min(print_bed_max[0], first_layer_print_min[0] + 80))} E{85 * 0.5 * first_layer_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 * first_layer_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 * first_layer_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 * first_layer_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 * first_layer_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 * first_layer_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0) + 3} Z0\nG1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0) + 6}\nG1 Z1 F600", + "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]\nM83\nM140 S[hot_plate_temp_initial_layer]\nM104 S[nozzle_temperature_initial_layer]\nG4 P3000\nG0 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0)} Y{max((min(print_bed_max[1], 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) + 3} Z0\nG1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0) + 6}\nG1 Z1 F600", "thumbnails_format": "PNG", "default_filament_profile": [ "Qidi Generic PLA @Qidi Q1 Pro 0.4 nozzle" diff --git a/resources/profiles/Qidi/machine/fdm_machine_common.json b/resources/profiles/Qidi/machine/fdm_machine_common.json index 995c22940d..bdfb8dd658 100644 --- a/resources/profiles/Qidi/machine/fdm_machine_common.json +++ b/resources/profiles/Qidi/machine/fdm_machine_common.json @@ -115,6 +115,5 @@ "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n", "machine_start_gcode": "G28\nG0 Z50 F600\nM190 S[first_layer_bed_temperature]\nG28 Z\nG29 ; mesh bed leveling ,comment this code to close it\nG0 X0 Y0 Z50 F6000\nM109 S[first_layer_temperature]\nM83\nG0 Z5 F1200\nG0 X{first_layer_print_min[0]} Y{max(0, first_layer_print_min[1] - 2)} F12000\nG0 Z0.2 F600\nG1 E3 F1800\nG0 Z0.3 F600\nG1 X{min(first_layer_print_min[0] + 30,print_bed_max[0])} E6 F600", "machine_end_gcode": "M104 S0\nM140 S0\nG92 E0\nG1 E-3 F1800\nG90\n{if max_layer_z < max_print_height / 2}\nG1 Z{max_print_height / 2 + 10} F600\n{else}\nG1 Z{min(max_print_height, max_layer_z + 10)}\n{endif}\nG0 X5 Y{print_bed_max[1]-11} F12000\nM141 S0", - "time_lapse_gcode":";TIMELAPSE_TAKE_FRAME\n" - + "time_lapse_gcode":";TIMELAPSE_TAKE_FRAME\n" } diff --git a/resources/profiles/Qidi/machine/fdm_qidi_x3_common.json b/resources/profiles/Qidi/machine/fdm_qidi_x3_common.json index 2186dc925f..d172d554e4 100644 --- a/resources/profiles/Qidi/machine/fdm_qidi_x3_common.json +++ b/resources/profiles/Qidi/machine/fdm_qidi_x3_common.json @@ -23,8 +23,8 @@ "210x210/COLPIC", "380x380/PNG" ], - "thumbnails_format": "PNG", - "machine_start_gcode": "G28\nG0 Z50 F600\nM190 S[first_layer_bed_temperature]\nG28 Z\nG29 ; mesh bed leveling ,comment this code to close it\nG0 X0 Y0 Z50 F6000\nM109 S[first_layer_temperature]\nM83\nG0 Z5 F1200\nG0 X{first_layer_print_min[0]} Y{max(0, first_layer_print_min[1] - 2)} F12000\nG0 Z0.2 F600\nG1 E3 F1800\nG0 Z0.3 F600\nG1 X{min(first_layer_print_min[0] + 30,print_bed_max[0])} E6 F600", - "machine_end_gcode": "M104 S0\nM140 S0\nG92 E0\nG1 E-3 F1800\nG90\n{if max_layer_z < max_print_height / 2}\nG1 Z{max_print_height / 2 + 10} F600\n{else}\nG1 Z{min(max_print_height, max_layer_z + 10)}\n{endif}\nG0 X5 Y{print_bed_max[1]-11} F12000\nM141 S0", + "thumbnails_format": "ColPic", + "machine_start_gcode": "PRINT_START\nG28\nM141 S0\nG0 Z50 F600\nM190 S[hot_plate_temp_initial_layer]\nG28 Z\nG29; mesh bed leveling ,comment this code to close it\nG0 X0 Y0 Z50 F6000\nM191 S{overall_chamber_temperature}\nM109 S[nozzle_temperature_initial_layer]\nM106 P3 S255\nM83\nG4 P3000\nG0 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0)} Y{max((min(print_bed_max[1], first_layer_print_min[1] + 80) - 85),0)} Z5 F6000\nG0 Z[initial_layer_print_height] F600\nG1 E3 F1800\nG1 X{(min(print_bed_max[0], first_layer_print_min[0] + 80))} E{85 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 Y{max((min(print_bed_max[1], first_layer_print_min[1] + 80) - 85),0) + 2} E{2 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0)} E{85 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 Y{max((min(print_bed_max[1], first_layer_print_min[1] + 80) - 85),0) + 85} E{83 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0) + 2} E{2 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 Y{max((min(print_bed_max[1], first_layer_print_min[1] + 80) - 85),0) + 3} E{82 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0) + 12} E{-10 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 E{10 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\n", + "machine_end_gcode": "M141 S0\nM104 S0\nM140 S0\nG1 E-3 F1800\nG0 Z{min(max_print_height, max_layer_z + 3)} F600\nG0 X0 Y0 F12000\n{if max_layer_z < max_print_height / 2}G1 Z{max_print_height / 2 + 10} F600{else}G1 Z{min(max_print_height, max_layer_z + 3)}{endif}", "scan_first_layer": "0" } diff --git a/resources/profiles/Raise3D.json b/resources/profiles/Raise3D.json index ad5a2be34b..cb600c0168 100644 --- a/resources/profiles/Raise3D.json +++ b/resources/profiles/Raise3D.json @@ -1,7 +1,7 @@ { "name": "Raise3D", "url": "", - "version": "02.01.00.00", + "version": "02.01.00.01", "force_update": "0", "description": "Raise3D configurations", "machine_model_list": [ diff --git a/resources/profiles/Ratrig.json b/resources/profiles/Ratrig.json index 8768544f5d..3e8178d8c0 100644 --- a/resources/profiles/Ratrig.json +++ b/resources/profiles/Ratrig.json @@ -1,6 +1,6 @@ { "name": "RatRig", - "version": "02.01.00.00", + "version": "02.01.00.01", "force_update": "0", "description": "RatRig configurations", "machine_model_list": [ @@ -27,6 +27,30 @@ { "name": "RatRig V-Cast", "sub_path": "machine/RatRig V-Cast.json" + }, + { + "name": "RatRig V-Core 4 300", + "sub_path": "machine/RatRig V-Core 4 300.json" + }, + { + "name": "RatRig V-Core 4 400", + "sub_path": "machine/RatRig V-Core 4 400.json" + }, + { + "name": "RatRig V-Core 4 500", + "sub_path": "machine/RatRig V-Core 4 500.json" + }, + { + "name": "RatRig V-Core 4 HYBRID 300", + "sub_path": "machine/RatRig V-Core 4 HYBRID 300.json" + }, + { + "name": "RatRig V-Core 4 HYBRID 400", + "sub_path": "machine/RatRig V-Core 4 HYBRID 400.json" + }, + { + "name": "RatRig V-Core 4 HYBRID 500", + "sub_path": "machine/RatRig V-Core 4 HYBRID 500.json" } ], "process_list": [ @@ -61,6 +85,78 @@ { "name": "0.28mm Extra Draft @RatRig", "sub_path": "process/0.28mm Extra Draft @RatRig.json" + }, + { + "name": "0.30mm Big @RatRig V-Core 4 0.6", + "sub_path": "process/0.30mm Big @RatRig V-Core 4 0.6.json" + }, + { + "name": "0.25mm Speed @RatRig V-Core 4 0.4", + "sub_path": "process/0.25mm Speed @RatRig V-Core 4 0.4.json" + }, + { + "name": "0.25mm Speed @RatRig V-Core 4 0.5", + "sub_path": "process/0.25mm Speed @RatRig V-Core 4 0.5.json" + }, + { + "name": "0.25mm Speed @RatRig V-Core 4 0.6", + "sub_path": "process/0.25mm Speed @RatRig V-Core 4 0.6.json" + }, + { + "name": "0.25mm Quality Speed @RatRig V-Core 4 0.4", + "sub_path": "process/0.25mm Quality Speed @RatRig V-Core 4 0.4.json" + }, + { + "name": "0.25mm Quality Speed @RatRig V-Core 4 0.5", + "sub_path": "process/0.25mm Quality Speed @RatRig V-Core 4 0.5.json" + }, + { + "name": "0.25mm Quality Speed @RatRig V-Core 4 0.6", + "sub_path": "process/0.25mm Quality Speed @RatRig V-Core 4 0.6.json" + }, + { + "name": "0.20mm Quality @RatRig V-Core 4 0.4", + "sub_path": "process/0.20mm Quality @RatRig V-Core 4 0.4.json" + }, + { + "name": "0.20mm Quality @RatRig V-Core 4 0.5", + "sub_path": "process/0.20mm Quality @RatRig V-Core 4 0.5.json" + }, + { + "name": "0.30mm Big @RatRig V-Core 4 HYBRID 0.6", + "sub_path": "process/0.30mm Big @RatRig V-Core 4 HYBRID 0.6.json" + }, + { + "name": "0.25mm Speed @RatRig V-Core 4 HYBRID 0.4", + "sub_path": "process/0.25mm Speed @RatRig V-Core 4 HYBRID 0.4.json" + }, + { + "name": "0.25mm Speed @RatRig V-Core 4 HYBRID 0.5", + "sub_path": "process/0.25mm Speed @RatRig V-Core 4 HYBRID 0.5.json" + }, + { + "name": "0.25mm Speed @RatRig V-Core 4 HYBRID 0.6", + "sub_path": "process/0.25mm Speed @RatRig V-Core 4 HYBRID 0.6.json" + }, + { + "name": "0.25mm Quality Speed @RatRig V-Core 4 HYBRID 0.4", + "sub_path": "process/0.25mm Quality Speed @RatRig V-Core 4 HYBRID 0.4.json" + }, + { + "name": "0.25mm Quality Speed @RatRig V-Core 4 HYBRID 0.5", + "sub_path": "process/0.25mm Quality Speed @RatRig V-Core 4 HYBRID 0.5.json" + }, + { + "name": "0.25mm Quality Speed @RatRig V-Core 4 HYBRID 0.6", + "sub_path": "process/0.25mm Quality Speed @RatRig V-Core 4 HYBRID 0.6.json" + }, + { + "name": "0.20mm Quality @RatRig V-Core 4 HYBRID 0.4", + "sub_path": "process/0.20mm Quality @RatRig V-Core 4 HYBRID 0.4.json" + }, + { + "name": "0.20mm Quality @RatRig V-Core 4 HYBRID 0.5", + "sub_path": "process/0.20mm Quality @RatRig V-Core 4 HYBRID 0.5.json" } ], "filament_list": [ @@ -177,6 +273,78 @@ { "name": "RatRig V-Cast 0.6 nozzle", "sub_path": "machine/RatRig V-Cast 0.6 nozzle.json" + }, + { + "name": "RatRig V-Core 4 300 0.4 nozzle", + "sub_path": "machine/RatRig V-Core 4 300 0.4 nozzle.json" + }, + { + "name": "RatRig V-Core 4 300 0.5 nozzle", + "sub_path": "machine/RatRig V-Core 4 300 0.5 nozzle.json" + }, + { + "name": "RatRig V-Core 4 300 0.6 nozzle", + "sub_path": "machine/RatRig V-Core 4 300 0.6 nozzle.json" + }, + { + "name": "RatRig V-Core 4 400 0.4 nozzle", + "sub_path": "machine/RatRig V-Core 4 400 0.4 nozzle.json" + }, + { + "name": "RatRig V-Core 4 400 0.5 nozzle", + "sub_path": "machine/RatRig V-Core 4 400 0.5 nozzle.json" + }, + { + "name": "RatRig V-Core 4 400 0.6 nozzle", + "sub_path": "machine/RatRig V-Core 4 400 0.6 nozzle.json" + }, + { + "name": "RatRig V-Core 4 500 0.4 nozzle", + "sub_path": "machine/RatRig V-Core 4 500 0.4 nozzle.json" + }, + { + "name": "RatRig V-Core 4 500 0.5 nozzle", + "sub_path": "machine/RatRig V-Core 4 500 0.5 nozzle.json" + }, + { + "name": "RatRig V-Core 4 500 0.6 nozzle", + "sub_path": "machine/RatRig V-Core 4 500 0.6 nozzle.json" + }, + { + "name": "RatRig V-Core 4 HYBRID 300 0.4 nozzle", + "sub_path": "machine/RatRig V-Core 4 HYBRID 300 0.4 nozzle.json" + }, + { + "name": "RatRig V-Core 4 HYBRID 300 0.5 nozzle", + "sub_path": "machine/RatRig V-Core 4 HYBRID 300 0.5 nozzle.json" + }, + { + "name": "RatRig V-Core 4 HYBRID 300 0.6 nozzle", + "sub_path": "machine/RatRig V-Core 4 HYBRID 300 0.6 nozzle.json" + }, + { + "name": "RatRig V-Core 4 HYBRID 400 0.4 nozzle", + "sub_path": "machine/RatRig V-Core 4 HYBRID 400 0.4 nozzle.json" + }, + { + "name": "RatRig V-Core 4 HYBRID 400 0.5 nozzle", + "sub_path": "machine/RatRig V-Core 4 HYBRID 400 0.5 nozzle.json" + }, + { + "name": "RatRig V-Core 4 HYBRID 400 0.6 nozzle", + "sub_path": "machine/RatRig V-Core 4 HYBRID 400 0.6 nozzle.json" + }, + { + "name": "RatRig V-Core 4 HYBRID 500 0.4 nozzle", + "sub_path": "machine/RatRig V-Core 4 HYBRID 500 0.4 nozzle.json" + }, + { + "name": "RatRig V-Core 4 HYBRID 500 0.5 nozzle", + "sub_path": "machine/RatRig V-Core 4 HYBRID 500 0.5 nozzle.json" + }, + { + "name": "RatRig V-Core 4 HYBRID 500 0.6 nozzle", + "sub_path": "machine/RatRig V-Core 4 HYBRID 500 0.6 nozzle.json" } ] } diff --git a/resources/profiles/Ratrig/RatRig V-Core 4 300_cover.png b/resources/profiles/Ratrig/RatRig V-Core 4 300_cover.png new file mode 100644 index 0000000000..8490bf74a0 Binary files /dev/null and b/resources/profiles/Ratrig/RatRig V-Core 4 300_cover.png differ diff --git a/resources/profiles/Ratrig/RatRig V-Core 4 400_cover.png b/resources/profiles/Ratrig/RatRig V-Core 4 400_cover.png new file mode 100644 index 0000000000..8490bf74a0 Binary files /dev/null and b/resources/profiles/Ratrig/RatRig V-Core 4 400_cover.png differ diff --git a/resources/profiles/Ratrig/RatRig V-Core 4 500_cover.png b/resources/profiles/Ratrig/RatRig V-Core 4 500_cover.png new file mode 100644 index 0000000000..8490bf74a0 Binary files /dev/null and b/resources/profiles/Ratrig/RatRig V-Core 4 500_cover.png differ diff --git a/resources/profiles/Ratrig/RatRig V-Core 4 HYBRID 300_cover.png b/resources/profiles/Ratrig/RatRig V-Core 4 HYBRID 300_cover.png new file mode 100644 index 0000000000..8490bf74a0 Binary files /dev/null and b/resources/profiles/Ratrig/RatRig V-Core 4 HYBRID 300_cover.png differ diff --git a/resources/profiles/Ratrig/RatRig V-Core 4 HYBRID 400_cover.png b/resources/profiles/Ratrig/RatRig V-Core 4 HYBRID 400_cover.png new file mode 100644 index 0000000000..8490bf74a0 Binary files /dev/null and b/resources/profiles/Ratrig/RatRig V-Core 4 HYBRID 400_cover.png differ diff --git a/resources/profiles/Ratrig/RatRig V-Core 4 HYBRID 500_cover.png b/resources/profiles/Ratrig/RatRig V-Core 4 HYBRID 500_cover.png new file mode 100644 index 0000000000..8490bf74a0 Binary files /dev/null and b/resources/profiles/Ratrig/RatRig V-Core 4 HYBRID 500_cover.png differ diff --git a/resources/profiles/Ratrig/filament/RatRig Generic ABS.json b/resources/profiles/Ratrig/filament/RatRig Generic ABS.json index fe4f9c504a..5be01be8c9 100644 --- a/resources/profiles/Ratrig/filament/RatRig Generic ABS.json +++ b/resources/profiles/Ratrig/filament/RatRig Generic ABS.json @@ -52,6 +52,24 @@ "RatRig V-Core 3 500 0.4 nozzle", "RatRig V-Minion 0.4 nozzle", "RatRig V-Cast 0.4 nozzle", - "RatRig V-Cast 0.6 nozzle" + "RatRig V-Cast 0.6 nozzle", + "RatRig V-Core 4 300 0.4 nozzle", + "RatRig V-Core 4 300 0.5 nozzle", + "RatRig V-Core 4 300 0.6 nozzle", + "RatRig V-Core 4 400 0.4 nozzle", + "RatRig V-Core 4 400 0.5 nozzle", + "RatRig V-Core 4 400 0.6 nozzle", + "RatRig V-Core 4 500 0.4 nozzle", + "RatRig V-Core 4 500 0.5 nozzle", + "RatRig V-Core 4 500 0.6 nozzle", + "RatRig V-Core 4 HYBRID 300 0.4 nozzle", + "RatRig V-Core 4 HYBRID 300 0.5 nozzle", + "RatRig V-Core 4 HYBRID 300 0.6 nozzle", + "RatRig V-Core 4 HYBRID 400 0.4 nozzle", + "RatRig V-Core 4 HYBRID 400 0.5 nozzle", + "RatRig V-Core 4 HYBRID 400 0.6 nozzle", + "RatRig V-Core 4 HYBRID 500 0.4 nozzle", + "RatRig V-Core 4 HYBRID 500 0.5 nozzle", + "RatRig V-Core 4 HYBRID 500 0.6 nozzle" ] } diff --git a/resources/profiles/Ratrig/filament/RatRig Generic ASA.json b/resources/profiles/Ratrig/filament/RatRig Generic ASA.json index 07a1b81880..eeff92f76f 100644 --- a/resources/profiles/Ratrig/filament/RatRig Generic ASA.json +++ b/resources/profiles/Ratrig/filament/RatRig Generic ASA.json @@ -46,6 +46,24 @@ "RatRig V-Core 3 500 0.4 nozzle", "RatRig V-Minion 0.4 nozzle", "RatRig V-Cast 0.4 nozzle", - "RatRig V-Cast 0.6 nozzle" + "RatRig V-Cast 0.6 nozzle", + "RatRig V-Core 4 300 0.4 nozzle", + "RatRig V-Core 4 300 0.5 nozzle", + "RatRig V-Core 4 300 0.6 nozzle", + "RatRig V-Core 4 400 0.4 nozzle", + "RatRig V-Core 4 400 0.5 nozzle", + "RatRig V-Core 4 400 0.6 nozzle", + "RatRig V-Core 4 500 0.4 nozzle", + "RatRig V-Core 4 500 0.5 nozzle", + "RatRig V-Core 4 500 0.6 nozzle", + "RatRig V-Core 4 HYBRID 300 0.4 nozzle", + "RatRig V-Core 4 HYBRID 300 0.5 nozzle", + "RatRig V-Core 4 HYBRID 300 0.6 nozzle", + "RatRig V-Core 4 HYBRID 400 0.4 nozzle", + "RatRig V-Core 4 HYBRID 400 0.5 nozzle", + "RatRig V-Core 4 HYBRID 400 0.6 nozzle", + "RatRig V-Core 4 HYBRID 500 0.4 nozzle", + "RatRig V-Core 4 HYBRID 500 0.5 nozzle", + "RatRig V-Core 4 HYBRID 500 0.6 nozzle" ] } diff --git a/resources/profiles/Ratrig/filament/RatRig Generic PA-CF.json b/resources/profiles/Ratrig/filament/RatRig Generic PA-CF.json index 69d8b492cd..dec08573fc 100644 --- a/resources/profiles/Ratrig/filament/RatRig Generic PA-CF.json +++ b/resources/profiles/Ratrig/filament/RatRig Generic PA-CF.json @@ -46,6 +46,24 @@ "RatRig V-Core 3 500 0.4 nozzle", "RatRig V-Minion 0.4 nozzle", "RatRig V-Cast 0.4 nozzle", - "RatRig V-Cast 0.6 nozzle" + "RatRig V-Cast 0.6 nozzle", + "RatRig V-Core 4 300 0.4 nozzle", + "RatRig V-Core 4 300 0.5 nozzle", + "RatRig V-Core 4 300 0.6 nozzle", + "RatRig V-Core 4 400 0.4 nozzle", + "RatRig V-Core 4 400 0.5 nozzle", + "RatRig V-Core 4 400 0.6 nozzle", + "RatRig V-Core 4 500 0.4 nozzle", + "RatRig V-Core 4 500 0.5 nozzle", + "RatRig V-Core 4 500 0.6 nozzle", + "RatRig V-Core 4 HYBRID 300 0.4 nozzle", + "RatRig V-Core 4 HYBRID 300 0.5 nozzle", + "RatRig V-Core 4 HYBRID 300 0.6 nozzle", + "RatRig V-Core 4 HYBRID 400 0.4 nozzle", + "RatRig V-Core 4 HYBRID 400 0.5 nozzle", + "RatRig V-Core 4 HYBRID 400 0.6 nozzle", + "RatRig V-Core 4 HYBRID 500 0.4 nozzle", + "RatRig V-Core 4 HYBRID 500 0.5 nozzle", + "RatRig V-Core 4 HYBRID 500 0.6 nozzle" ] } diff --git a/resources/profiles/Ratrig/filament/RatRig Generic PA.json b/resources/profiles/Ratrig/filament/RatRig Generic PA.json index c1a3fa2e59..e408857516 100644 --- a/resources/profiles/Ratrig/filament/RatRig Generic PA.json +++ b/resources/profiles/Ratrig/filament/RatRig Generic PA.json @@ -43,6 +43,24 @@ "RatRig V-Core 3 500 0.4 nozzle", "RatRig V-Minion 0.4 nozzle", "RatRig V-Cast 0.4 nozzle", - "RatRig V-Cast 0.6 nozzle" + "RatRig V-Cast 0.6 nozzle", + "RatRig V-Core 4 300 0.4 nozzle", + "RatRig V-Core 4 300 0.5 nozzle", + "RatRig V-Core 4 300 0.6 nozzle", + "RatRig V-Core 4 400 0.4 nozzle", + "RatRig V-Core 4 400 0.5 nozzle", + "RatRig V-Core 4 400 0.6 nozzle", + "RatRig V-Core 4 500 0.4 nozzle", + "RatRig V-Core 4 500 0.5 nozzle", + "RatRig V-Core 4 500 0.6 nozzle", + "RatRig V-Core 4 HYBRID 300 0.4 nozzle", + "RatRig V-Core 4 HYBRID 300 0.5 nozzle", + "RatRig V-Core 4 HYBRID 300 0.6 nozzle", + "RatRig V-Core 4 HYBRID 400 0.4 nozzle", + "RatRig V-Core 4 HYBRID 400 0.5 nozzle", + "RatRig V-Core 4 HYBRID 400 0.6 nozzle", + "RatRig V-Core 4 HYBRID 500 0.4 nozzle", + "RatRig V-Core 4 HYBRID 500 0.5 nozzle", + "RatRig V-Core 4 HYBRID 500 0.6 nozzle" ] } diff --git a/resources/profiles/Ratrig/filament/RatRig Generic PC.json b/resources/profiles/Ratrig/filament/RatRig Generic PC.json index 174e85b3d0..d73a99bf3f 100644 --- a/resources/profiles/Ratrig/filament/RatRig Generic PC.json +++ b/resources/profiles/Ratrig/filament/RatRig Generic PC.json @@ -40,6 +40,24 @@ "RatRig V-Core 3 500 0.4 nozzle", "RatRig V-Minion 0.4 nozzle", "RatRig V-Cast 0.4 nozzle", - "RatRig V-Cast 0.6 nozzle" + "RatRig V-Cast 0.6 nozzle", + "RatRig V-Core 4 300 0.4 nozzle", + "RatRig V-Core 4 300 0.5 nozzle", + "RatRig V-Core 4 300 0.6 nozzle", + "RatRig V-Core 4 400 0.4 nozzle", + "RatRig V-Core 4 400 0.5 nozzle", + "RatRig V-Core 4 400 0.6 nozzle", + "RatRig V-Core 4 500 0.4 nozzle", + "RatRig V-Core 4 500 0.5 nozzle", + "RatRig V-Core 4 500 0.6 nozzle", + "RatRig V-Core 4 HYBRID 300 0.4 nozzle", + "RatRig V-Core 4 HYBRID 300 0.5 nozzle", + "RatRig V-Core 4 HYBRID 300 0.6 nozzle", + "RatRig V-Core 4 HYBRID 400 0.4 nozzle", + "RatRig V-Core 4 HYBRID 400 0.5 nozzle", + "RatRig V-Core 4 HYBRID 400 0.6 nozzle", + "RatRig V-Core 4 HYBRID 500 0.4 nozzle", + "RatRig V-Core 4 HYBRID 500 0.5 nozzle", + "RatRig V-Core 4 HYBRID 500 0.6 nozzle" ] } diff --git a/resources/profiles/Ratrig/filament/RatRig Generic PETG.json b/resources/profiles/Ratrig/filament/RatRig Generic PETG.json index c9e2a45977..8c355a5966 100644 --- a/resources/profiles/Ratrig/filament/RatRig Generic PETG.json +++ b/resources/profiles/Ratrig/filament/RatRig Generic PETG.json @@ -64,6 +64,24 @@ "RatRig V-Core 3 500 0.4 nozzle", "RatRig V-Minion 0.4 nozzle", "RatRig V-Cast 0.4 nozzle", - "RatRig V-Cast 0.6 nozzle" + "RatRig V-Cast 0.6 nozzle", + "RatRig V-Core 4 300 0.4 nozzle", + "RatRig V-Core 4 300 0.5 nozzle", + "RatRig V-Core 4 300 0.6 nozzle", + "RatRig V-Core 4 400 0.4 nozzle", + "RatRig V-Core 4 400 0.5 nozzle", + "RatRig V-Core 4 400 0.6 nozzle", + "RatRig V-Core 4 500 0.4 nozzle", + "RatRig V-Core 4 500 0.5 nozzle", + "RatRig V-Core 4 500 0.6 nozzle", + "RatRig V-Core 4 HYBRID 300 0.4 nozzle", + "RatRig V-Core 4 HYBRID 300 0.5 nozzle", + "RatRig V-Core 4 HYBRID 300 0.6 nozzle", + "RatRig V-Core 4 HYBRID 400 0.4 nozzle", + "RatRig V-Core 4 HYBRID 400 0.5 nozzle", + "RatRig V-Core 4 HYBRID 400 0.6 nozzle", + "RatRig V-Core 4 HYBRID 500 0.4 nozzle", + "RatRig V-Core 4 HYBRID 500 0.5 nozzle", + "RatRig V-Core 4 HYBRID 500 0.6 nozzle" ] } diff --git a/resources/profiles/Ratrig/filament/RatRig Generic PLA-CF.json b/resources/profiles/Ratrig/filament/RatRig Generic PLA-CF.json index 2ec922ac30..1d0a0b99ea 100644 --- a/resources/profiles/Ratrig/filament/RatRig Generic PLA-CF.json +++ b/resources/profiles/Ratrig/filament/RatRig Generic PLA-CF.json @@ -40,6 +40,24 @@ "RatRig V-Core 3 500 0.4 nozzle", "RatRig V-Minion 0.4 nozzle", "RatRig V-Cast 0.4 nozzle", - "RatRig V-Cast 0.6 nozzle" + "RatRig V-Cast 0.6 nozzle", + "RatRig V-Core 4 300 0.4 nozzle", + "RatRig V-Core 4 300 0.5 nozzle", + "RatRig V-Core 4 300 0.6 nozzle", + "RatRig V-Core 4 400 0.4 nozzle", + "RatRig V-Core 4 400 0.5 nozzle", + "RatRig V-Core 4 400 0.6 nozzle", + "RatRig V-Core 4 500 0.4 nozzle", + "RatRig V-Core 4 500 0.5 nozzle", + "RatRig V-Core 4 500 0.6 nozzle", + "RatRig V-Core 4 HYBRID 300 0.4 nozzle", + "RatRig V-Core 4 HYBRID 300 0.5 nozzle", + "RatRig V-Core 4 HYBRID 300 0.6 nozzle", + "RatRig V-Core 4 HYBRID 400 0.4 nozzle", + "RatRig V-Core 4 HYBRID 400 0.5 nozzle", + "RatRig V-Core 4 HYBRID 400 0.6 nozzle", + "RatRig V-Core 4 HYBRID 500 0.4 nozzle", + "RatRig V-Core 4 HYBRID 500 0.5 nozzle", + "RatRig V-Core 4 HYBRID 500 0.6 nozzle" ] } diff --git a/resources/profiles/Ratrig/filament/RatRig Generic PLA.json b/resources/profiles/Ratrig/filament/RatRig Generic PLA.json index 7a90fc2dce..9f69c7f91d 100644 --- a/resources/profiles/Ratrig/filament/RatRig Generic PLA.json +++ b/resources/profiles/Ratrig/filament/RatRig Generic PLA.json @@ -37,6 +37,24 @@ "RatRig V-Core 3 500 0.4 nozzle", "RatRig V-Minion 0.4 nozzle", "RatRig V-Cast 0.4 nozzle", - "RatRig V-Cast 0.6 nozzle" + "RatRig V-Cast 0.6 nozzle", + "RatRig V-Core 4 300 0.4 nozzle", + "RatRig V-Core 4 300 0.5 nozzle", + "RatRig V-Core 4 300 0.6 nozzle", + "RatRig V-Core 4 400 0.4 nozzle", + "RatRig V-Core 4 400 0.5 nozzle", + "RatRig V-Core 4 400 0.6 nozzle", + "RatRig V-Core 4 500 0.4 nozzle", + "RatRig V-Core 4 500 0.5 nozzle", + "RatRig V-Core 4 500 0.6 nozzle", + "RatRig V-Core 4 HYBRID 300 0.4 nozzle", + "RatRig V-Core 4 HYBRID 300 0.5 nozzle", + "RatRig V-Core 4 HYBRID 300 0.6 nozzle", + "RatRig V-Core 4 HYBRID 400 0.4 nozzle", + "RatRig V-Core 4 HYBRID 400 0.5 nozzle", + "RatRig V-Core 4 HYBRID 400 0.6 nozzle", + "RatRig V-Core 4 HYBRID 500 0.4 nozzle", + "RatRig V-Core 4 HYBRID 500 0.5 nozzle", + "RatRig V-Core 4 HYBRID 500 0.6 nozzle" ] } diff --git a/resources/profiles/Ratrig/filament/RatRig Generic PVA.json b/resources/profiles/Ratrig/filament/RatRig Generic PVA.json index 26217a73c8..35a7fc8579 100644 --- a/resources/profiles/Ratrig/filament/RatRig Generic PVA.json +++ b/resources/profiles/Ratrig/filament/RatRig Generic PVA.json @@ -34,6 +34,24 @@ "RatRig V-Core 3 500 0.4 nozzle", "RatRig V-Minion 0.4 nozzle", "RatRig V-Cast 0.4 nozzle", - "RatRig V-Cast 0.6 nozzle" + "RatRig V-Cast 0.6 nozzle", + "RatRig V-Core 4 300 0.4 nozzle", + "RatRig V-Core 4 300 0.5 nozzle", + "RatRig V-Core 4 300 0.6 nozzle", + "RatRig V-Core 4 400 0.4 nozzle", + "RatRig V-Core 4 400 0.5 nozzle", + "RatRig V-Core 4 400 0.6 nozzle", + "RatRig V-Core 4 500 0.4 nozzle", + "RatRig V-Core 4 500 0.5 nozzle", + "RatRig V-Core 4 500 0.6 nozzle", + "RatRig V-Core 4 HYBRID 300 0.4 nozzle", + "RatRig V-Core 4 HYBRID 300 0.5 nozzle", + "RatRig V-Core 4 HYBRID 300 0.6 nozzle", + "RatRig V-Core 4 HYBRID 400 0.4 nozzle", + "RatRig V-Core 4 HYBRID 400 0.5 nozzle", + "RatRig V-Core 4 HYBRID 400 0.6 nozzle", + "RatRig V-Core 4 HYBRID 500 0.4 nozzle", + "RatRig V-Core 4 HYBRID 500 0.5 nozzle", + "RatRig V-Core 4 HYBRID 500 0.6 nozzle" ] } diff --git a/resources/profiles/Ratrig/filament/RatRig Generic TPU.json b/resources/profiles/Ratrig/filament/RatRig Generic TPU.json index 4097e688a0..784537f231 100644 --- a/resources/profiles/Ratrig/filament/RatRig Generic TPU.json +++ b/resources/profiles/Ratrig/filament/RatRig Generic TPU.json @@ -31,6 +31,24 @@ "RatRig V-Core 3 500 0.4 nozzle", "RatRig V-Minion 0.4 nozzle", "RatRig V-Cast 0.4 nozzle", - "RatRig V-Cast 0.6 nozzle" + "RatRig V-Cast 0.6 nozzle", + "RatRig V-Core 4 300 0.4 nozzle", + "RatRig V-Core 4 300 0.5 nozzle", + "RatRig V-Core 4 300 0.6 nozzle", + "RatRig V-Core 4 400 0.4 nozzle", + "RatRig V-Core 4 400 0.5 nozzle", + "RatRig V-Core 4 400 0.6 nozzle", + "RatRig V-Core 4 500 0.4 nozzle", + "RatRig V-Core 4 500 0.5 nozzle", + "RatRig V-Core 4 500 0.6 nozzle", + "RatRig V-Core 4 HYBRID 300 0.4 nozzle", + "RatRig V-Core 4 HYBRID 300 0.5 nozzle", + "RatRig V-Core 4 HYBRID 300 0.6 nozzle", + "RatRig V-Core 4 HYBRID 400 0.4 nozzle", + "RatRig V-Core 4 HYBRID 400 0.5 nozzle", + "RatRig V-Core 4 HYBRID 400 0.6 nozzle", + "RatRig V-Core 4 HYBRID 500 0.4 nozzle", + "RatRig V-Core 4 HYBRID 500 0.5 nozzle", + "RatRig V-Core 4 HYBRID 500 0.6 nozzle" ] } diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 300 0.4 nozzle.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 300 0.4 nozzle.json new file mode 100644 index 0000000000..ca065917b4 --- /dev/null +++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 300 0.4 nozzle.json @@ -0,0 +1,52 @@ +{ + "type": "machine", + "setting_id": "GM002", + "name": "RatRig V-Core 4 300 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_klipper_common", + "printer_model": "RatRig V-Core 4 300", + "printer_variant": "0.4", + "nozzle_diameter": [ + "0.4" + ], + "printable_area": [ + "0x0", + "300x0", + "300x300", + "0x300" + ], + "machine_max_speed_x": ["400", "400"], + "machine_max_speed_y": ["400", "400"], + "machine_max_speed_z": ["50", "50"], + "machine_max_speed_e": ["120", "120"], + "machine_max_acceleration_x": ["10000", "10000"], + "machine_max_acceleration_y": ["10000", "10000"], + "machine_max_acceleration_z": ["200", "200"], + "machine_max_acceleration_e": ["5000", "5000"], + "machine_max_acceleration_extruding": ["10000", "10000"], + "machine_max_acceleration_retracting": ["10000", "10000"], + "machine_max_jerk_x": ["5", "5"], + "machine_max_jerk_y": ["5", "5"], + "machine_max_jerk_z": ["0.4", "0.4"], + "machine_max_jerk_e": ["5", "5"], + "min_layer_height": ["0.06"], + "max_layer_height": ["0.3"], + "retract_lift_below": ["0.2"], + "retraction_length": ["0.8"], + "retraction_speed": ["120"], + "deretraction_speed": ["120"], + "wipe": ["0"], + "retract_before_wipe": ["0%"], + "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nTOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]\nG92 E0\n_ON_LAYER_CHANGE LAYER={layer_num + 1}", + "before_layer_change_gcode": ";[layer_z]", + "change_filament_gcode": "M600", + "machine_pause_gcode": "M601", + "printing_by_object_gcode": ";BETWEEN_OBJECTS\nG92 E0", + "printable_height": "300", + "thumbnails": [ + "64x64/PNG", + "400x300/PNG" + ] +} diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 300 0.5 nozzle.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 300 0.5 nozzle.json new file mode 100644 index 0000000000..8f78b122fe --- /dev/null +++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 300 0.5 nozzle.json @@ -0,0 +1,52 @@ +{ + "type": "machine", + "setting_id": "GM002", + "name": "RatRig V-Core 4 300 0.5 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_klipper_common", + "printer_model": "RatRig V-Core 4 300", + "printer_variant": "0.5", + "nozzle_diameter": [ + "0.5" + ], + "printable_area": [ + "0x0", + "300x0", + "300x300", + "0x300" + ], + "machine_max_speed_x": ["400", "400"], + "machine_max_speed_y": ["400", "400"], + "machine_max_speed_z": ["50", "50"], + "machine_max_speed_e": ["120", "120"], + "machine_max_acceleration_x": ["10000", "10000"], + "machine_max_acceleration_y": ["10000", "10000"], + "machine_max_acceleration_z": ["200", "200"], + "machine_max_acceleration_e": ["5000", "5000"], + "machine_max_acceleration_extruding": ["10000", "10000"], + "machine_max_acceleration_retracting": ["10000", "10000"], + "machine_max_jerk_x": ["5", "5"], + "machine_max_jerk_y": ["5", "5"], + "machine_max_jerk_z": ["0.4", "0.4"], + "machine_max_jerk_e": ["5", "5"], + "min_layer_height": ["0.07"], + "max_layer_height": ["0.32"], + "retract_lift_below": ["0.2"], + "retraction_length": ["0.8"], + "retraction_speed": ["120"], + "deretraction_speed": ["120"], + "wipe": ["0"], + "retract_before_wipe": ["0%"], + "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nTOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]\nG92 E0\n_ON_LAYER_CHANGE LAYER={layer_num + 1}", + "before_layer_change_gcode": ";[layer_z]", + "change_filament_gcode": "M600", + "machine_pause_gcode": "M601", + "printing_by_object_gcode": ";BETWEEN_OBJECTS\nG92 E0", + "printable_height": "300", + "thumbnails": [ + "64x64/PNG", + "400x300/PNG" + ] +} diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 300 0.6 nozzle.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 300 0.6 nozzle.json new file mode 100644 index 0000000000..1383d316a2 --- /dev/null +++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 300 0.6 nozzle.json @@ -0,0 +1,52 @@ +{ + "type": "machine", + "setting_id": "GM002", + "name": "RatRig V-Core 4 300 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_klipper_common", + "printer_model": "RatRig V-Core 4 300", + "printer_variant": "0.6", + "nozzle_diameter": [ + "0.6" + ], + "printable_area": [ + "0x0", + "300x0", + "300x300", + "0x300" + ], + "machine_max_speed_x": ["400", "400"], + "machine_max_speed_y": ["400", "400"], + "machine_max_speed_z": ["50", "50"], + "machine_max_speed_e": ["120", "120"], + "machine_max_acceleration_x": ["10000", "10000"], + "machine_max_acceleration_y": ["10000", "10000"], + "machine_max_acceleration_z": ["200", "200"], + "machine_max_acceleration_e": ["5000", "5000"], + "machine_max_acceleration_extruding": ["10000", "10000"], + "machine_max_acceleration_retracting": ["10000", "10000"], + "machine_max_jerk_x": ["5", "5"], + "machine_max_jerk_y": ["5", "5"], + "machine_max_jerk_z": ["0.4", "0.4"], + "machine_max_jerk_e": ["5", "5"], + "min_layer_height": ["0.1"], + "max_layer_height": ["0.4"], + "retract_lift_below": ["0.3"], + "retraction_length": ["0.8"], + "retraction_speed": ["120"], + "deretraction_speed": ["120"], + "wipe": ["0"], + "retract_before_wipe": ["0%"], + "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nTOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]\nG92 E0\n_ON_LAYER_CHANGE LAYER={layer_num + 1}", + "before_layer_change_gcode": ";[layer_z]", + "change_filament_gcode": "M600", + "machine_pause_gcode": "M601", + "printing_by_object_gcode": ";BETWEEN_OBJECTS\nG92 E0", + "printable_height": "300", + "thumbnails": [ + "64x64/PNG", + "400x300/PNG" + ] +} diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 300.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 300.json new file mode 100644 index 0000000000..fbe0699647 --- /dev/null +++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 300.json @@ -0,0 +1,12 @@ +{ + "type": "machine_model", + "name": "RatRig V-Core 4 300", + "model_id": "V-Core_4_300", + "nozzle_diameter": "0.4;0.5;0.6", + "machine_tech": "FFF", + "family": "RatRig_V-Core", + "bed_model": "ratrig-vcore-bed-300.stl", + "bed_texture": "ratrig_logo.svg", + "hotend_model": "", + "default_materials": "RatRig Generic ABS;RatRig Generic PLA;RatRig Generic PLA-CF;RatRig Generic PETG;RatRig Generic TPU;RatRig Generic ASA;RatRig Generic PC;RatRig Generic PVA;RatRig Generic PA;RatRig Generic PA-CF" +} diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 400 0.4 nozzle.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 400 0.4 nozzle.json new file mode 100644 index 0000000000..4b065733f1 --- /dev/null +++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 400 0.4 nozzle.json @@ -0,0 +1,52 @@ +{ + "type": "machine", + "setting_id": "GM002", + "name": "RatRig V-Core 4 400 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_klipper_common", + "printer_model": "RatRig V-Core 4 400", + "printer_variant": "0.4", + "nozzle_diameter": [ + "0.4" + ], + "printable_area": [ + "0x0", + "400x0", + "400x400", + "0x400" + ], + "machine_max_speed_x": ["400", "400"], + "machine_max_speed_y": ["400", "400"], + "machine_max_speed_z": ["50", "50"], + "machine_max_speed_e": ["120", "120"], + "machine_max_acceleration_x": ["10000", "10000"], + "machine_max_acceleration_y": ["10000", "10000"], + "machine_max_acceleration_z": ["200", "200"], + "machine_max_acceleration_e": ["5000", "5000"], + "machine_max_acceleration_extruding": ["10000", "10000"], + "machine_max_acceleration_retracting": ["10000", "10000"], + "machine_max_jerk_x": ["5", "5"], + "machine_max_jerk_y": ["5", "5"], + "machine_max_jerk_z": ["0.4", "0.4"], + "machine_max_jerk_e": ["5", "5"], + "min_layer_height": ["0.06"], + "max_layer_height": ["0.3"], + "retract_lift_below": ["0.2"], + "retraction_length": ["0.8"], + "retraction_speed": ["120"], + "deretraction_speed": ["120"], + "wipe": ["0"], + "retract_before_wipe": ["0%"], + "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nTOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]\nG92 E0\n_ON_LAYER_CHANGE LAYER={layer_num + 1}", + "before_layer_change_gcode": ";[layer_z]", + "change_filament_gcode": "M600", + "machine_pause_gcode": "M601", + "printing_by_object_gcode": ";BETWEEN_OBJECTS\nG92 E0", + "printable_height": "400", + "thumbnails": [ + "64x64/PNG", + "400x300/PNG" + ] +} diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 400 0.5 nozzle.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 400 0.5 nozzle.json new file mode 100644 index 0000000000..c6c81a73eb --- /dev/null +++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 400 0.5 nozzle.json @@ -0,0 +1,52 @@ +{ + "type": "machine", + "setting_id": "GM002", + "name": "RatRig V-Core 4 400 0.5 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_klipper_common", + "printer_model": "RatRig V-Core 4 400", + "printer_variant": "0.5", + "nozzle_diameter": [ + "0.5" + ], + "printable_area": [ + "0x0", + "400x0", + "400x400", + "0x400" + ], + "machine_max_speed_x": ["400", "400"], + "machine_max_speed_y": ["400", "400"], + "machine_max_speed_z": ["50", "50"], + "machine_max_speed_e": ["120", "120"], + "machine_max_acceleration_x": ["10000", "10000"], + "machine_max_acceleration_y": ["10000", "10000"], + "machine_max_acceleration_z": ["200", "200"], + "machine_max_acceleration_e": ["5000", "5000"], + "machine_max_acceleration_extruding": ["10000", "10000"], + "machine_max_acceleration_retracting": ["10000", "10000"], + "machine_max_jerk_x": ["5", "5"], + "machine_max_jerk_y": ["5", "5"], + "machine_max_jerk_z": ["0.4", "0.4"], + "machine_max_jerk_e": ["5", "5"], + "min_layer_height": ["0.07"], + "max_layer_height": ["0.32"], + "retract_lift_below": ["0.2"], + "retraction_length": ["0.8"], + "retraction_speed": ["120"], + "deretraction_speed": ["120"], + "wipe": ["0"], + "retract_before_wipe": ["0%"], + "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nTOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]\nG92 E0\n_ON_LAYER_CHANGE LAYER={layer_num + 1}", + "before_layer_change_gcode": ";[layer_z]", + "change_filament_gcode": "M600", + "machine_pause_gcode": "M601", + "printing_by_object_gcode": ";BETWEEN_OBJECTS\nG92 E0", + "printable_height": "400", + "thumbnails": [ + "64x64/PNG", + "400x300/PNG" + ] +} diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 400 0.6 nozzle.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 400 0.6 nozzle.json new file mode 100644 index 0000000000..2efa2e53cf --- /dev/null +++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 400 0.6 nozzle.json @@ -0,0 +1,53 @@ +{ + "type": "machine", + "setting_id": "GM002", + "name": "RatRig V-Core 4 400 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_klipper_common", + "printer_model": "RatRig V-Core 4 400", + "printer_variant": "0.6", + "nozzle_diameter": [ + "0.6" + ], + "printable_area": [ + "0x0", + "400x0", + "400x400", + "0x400" + ], + "machine_max_speed_x": ["400", "400"], + "machine_max_speed_y": ["400", "400"], + "machine_max_speed_z": ["50", "50"], + "machine_max_speed_e": ["120", "120"], + "machine_max_acceleration_x": ["10000", "10000"], + "machine_max_acceleration_y": ["10000", "10000"], + "machine_max_acceleration_z": ["200", "200"], + "machine_max_acceleration_e": ["5000", "5000"], + "machine_max_acceleration_extruding": ["10000", "10000"], + "machine_max_acceleration_retracting": ["10000", "10000"], + "machine_max_jerk_x": ["5", "5"], + "machine_max_jerk_y": ["5", "5"], + "machine_max_jerk_z": ["0.4", "0.4"], + "machine_max_jerk_e": ["5", "5"], + "min_layer_height": ["0.1"], + "max_layer_height": ["0.4"], + "retract_lift_below": ["0.3"], + "retraction_length": ["2"], + "retraction_speed": ["40"], + "deretraction_speed": ["0"], + "retraction_minimum_travel": ["2"], + "wipe": ["0"], + "retract_before_wipe": ["0%"], + "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nTOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]\nG92 E0\n_ON_LAYER_CHANGE LAYER={layer_num + 1}", + "before_layer_change_gcode": ";[layer_z]", + "change_filament_gcode": "M600", + "machine_pause_gcode": "M601", + "printing_by_object_gcode": ";BETWEEN_OBJECTS\nG92 E0", + "printable_height": "400", + "thumbnails": [ + "64x64/PNG", + "400x300/PNG" + ] +} diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 400.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 400.json new file mode 100644 index 0000000000..a3f9c85191 --- /dev/null +++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 400.json @@ -0,0 +1,12 @@ +{ + "type": "machine_model", + "name": "RatRig V-Core 4 400", + "model_id": "V-Core_4_400", + "nozzle_diameter": "0.4;0.5;0.6", + "machine_tech": "FFF", + "family": "RatRig_V-Core", + "bed_model": "ratrig-vcore-bed-400.stl", + "bed_texture": "ratrig_logo.svg", + "hotend_model": "", + "default_materials": "RatRig Generic ABS;RatRig Generic PLA;RatRig Generic PLA-CF;RatRig Generic PETG;RatRig Generic TPU;RatRig Generic ASA;RatRig Generic PC;RatRig Generic PVA;RatRig Generic PA;RatRig Generic PA-CF" +} 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 new file mode 100644 index 0000000000..e34c326e7f --- /dev/null +++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 500 0.4 nozzle.json @@ -0,0 +1,52 @@ +{ + "type": "machine", + "setting_id": "GM002", + "name": "RatRig V-Core 4 500 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_klipper_common", + "printer_model": "RatRig V-Core 4 500", + "printer_variant": "0.4", + "nozzle_diameter": [ + "0.4" + ], + "printable_area": [ + "0x0", + "500x0", + "500x500", + "0x500" + ], + "machine_max_speed_x": ["400", "400"], + "machine_max_speed_y": ["400", "400"], + "machine_max_speed_z": ["50", "50"], + "machine_max_speed_e": ["120", "120"], + "machine_max_acceleration_x": ["10000", "10000"], + "machine_max_acceleration_y": ["10000", "10000"], + "machine_max_acceleration_z": ["200", "200"], + "machine_max_acceleration_e": ["5000", "5000"], + "machine_max_acceleration_extruding": ["10000", "10000"], + "machine_max_acceleration_retracting": ["10000", "10000"], + "machine_max_jerk_x": ["5", "5"], + "machine_max_jerk_y": ["5", "5"], + "machine_max_jerk_z": ["0.4", "0.4"], + "machine_max_jerk_e": ["5", "5"], + "min_layer_height": ["0.06"], + "max_layer_height": ["0.3"], + "retract_lift_below": ["0.2"], + "retraction_length": ["0.8"], + "retraction_speed": ["120"], + "deretraction_speed": ["120"], + "wipe": ["0"], + "retract_before_wipe": ["0%"], + "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nTOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]\nG92 E0\n_ON_LAYER_CHANGE LAYER={layer_num + 1}", + "before_layer_change_gcode": ";[layer_z]", + "change_filament_gcode": "M600", + "machine_pause_gcode": "M601", + "printing_by_object_gcode": ";BETWEEN_OBJECTS\nG92 E0", + "printable_height": "500", + "thumbnails": [ + "64x64/PNG", + "400x300/PNG" + ] +} diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 500 0.5 nozzle.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 500 0.5 nozzle.json new file mode 100644 index 0000000000..6bc08fb473 --- /dev/null +++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 500 0.5 nozzle.json @@ -0,0 +1,52 @@ +{ + "type": "machine", + "setting_id": "GM002", + "name": "RatRig V-Core 4 500 0.5 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_klipper_common", + "printer_model": "RatRig V-Core 4 500", + "printer_variant": "0.5", + "nozzle_diameter": [ + "0.5" + ], + "printable_area": [ + "0x0", + "500x0", + "500x500", + "0x500" + ], + "machine_max_speed_x": ["400", "400"], + "machine_max_speed_y": ["400", "400"], + "machine_max_speed_z": ["50", "50"], + "machine_max_speed_e": ["120", "120"], + "machine_max_acceleration_x": ["10000", "10000"], + "machine_max_acceleration_y": ["10000", "10000"], + "machine_max_acceleration_z": ["200", "200"], + "machine_max_acceleration_e": ["5000", "5000"], + "machine_max_acceleration_extruding": ["10000", "10000"], + "machine_max_acceleration_retracting": ["10000", "10000"], + "machine_max_jerk_x": ["5", "5"], + "machine_max_jerk_y": ["5", "5"], + "machine_max_jerk_z": ["0.4", "0.4"], + "machine_max_jerk_e": ["5", "5"], + "min_layer_height": ["0.07"], + "max_layer_height": ["0.32"], + "retract_lift_below": ["0.25"], + "retraction_length": ["0.8"], + "retraction_speed": ["120"], + "deretraction_speed": ["120"], + "wipe": ["0"], + "retract_before_wipe": ["0%"], + "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nTOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]\nG92 E0\n_ON_LAYER_CHANGE LAYER={layer_num + 1}", + "before_layer_change_gcode": ";[layer_z]", + "change_filament_gcode": "M600", + "machine_pause_gcode": "M601", + "printing_by_object_gcode": ";BETWEEN_OBJECTS\nG92 E0", + "printable_height": "500", + "thumbnails": [ + "64x64/PNG", + "400x300/PNG" + ] +} diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 500 0.6 nozzle.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 500 0.6 nozzle.json new file mode 100644 index 0000000000..7c27538c58 --- /dev/null +++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 500 0.6 nozzle.json @@ -0,0 +1,52 @@ +{ + "type": "machine", + "setting_id": "GM002", + "name": "RatRig V-Core 4 500 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_klipper_common", + "printer_model": "RatRig V-Core 4 500", + "printer_variant": "0.6", + "nozzle_diameter": [ + "0.6" + ], + "printable_area": [ + "0x0", + "500x0", + "500x500", + "0x500" + ], + "machine_max_speed_x": ["400", "400"], + "machine_max_speed_y": ["400", "400"], + "machine_max_speed_z": ["50", "50"], + "machine_max_speed_e": ["120", "120"], + "machine_max_acceleration_x": ["10000", "10000"], + "machine_max_acceleration_y": ["10000", "10000"], + "machine_max_acceleration_z": ["200", "200"], + "machine_max_acceleration_e": ["5000", "5000"], + "machine_max_acceleration_extruding": ["10000", "10000"], + "machine_max_acceleration_retracting": ["10000", "10000"], + "machine_max_jerk_x": ["5", "5"], + "machine_max_jerk_y": ["5", "5"], + "machine_max_jerk_z": ["0.4", "0.4"], + "machine_max_jerk_e": ["5", "5"], + "min_layer_height": ["0.1"], + "max_layer_height": ["0.4"], + "retract_lift_below": ["0.3"], + "retraction_length": ["0.8"], + "retraction_speed": ["120"], + "deretraction_speed": ["120"], + "wipe": ["0"], + "retract_before_wipe": ["0%"], + "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nTOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]\nG92 E0\n_ON_LAYER_CHANGE LAYER={layer_num + 1}", + "before_layer_change_gcode": ";[layer_z]", + "change_filament_gcode": "M600", + "machine_pause_gcode": "M601", + "printing_by_object_gcode": ";BETWEEN_OBJECTS\nG92 E0", + "printable_height": "500", + "thumbnails": [ + "64x64/PNG", + "400x300/PNG" + ] +} diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 500.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 500.json new file mode 100644 index 0000000000..2803355533 --- /dev/null +++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 500.json @@ -0,0 +1,12 @@ +{ + "type": "machine_model", + "name": "RatRig V-Core 4 500", + "model_id": "V-Core_4_500", + "nozzle_diameter": "0.4;0.5;0.6", + "machine_tech": "FFF", + "family": "RatRig_V-Core", + "bed_model": "ratrig-vcore-bed-500.stl", + "bed_texture": "ratrig_logo.svg", + "hotend_model": "", + "default_materials": "RatRig Generic ABS;RatRig Generic PLA;RatRig Generic PLA-CF;RatRig Generic PETG;RatRig Generic TPU;RatRig Generic ASA;RatRig Generic PC;RatRig Generic PVA;RatRig Generic PA;RatRig Generic PA-CF" +} diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 300 0.4 nozzle.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 300 0.4 nozzle.json new file mode 100644 index 0000000000..d72a3a5b2d --- /dev/null +++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 300 0.4 nozzle.json @@ -0,0 +1,52 @@ +{ + "type": "machine", + "setting_id": "GM002", + "name": "RatRig V-Core 4 HYBRID 300 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_klipper_common", + "printer_model": "RatRig V-Core 4 HYBRID 300", + "printer_variant": "0.4", + "nozzle_diameter": [ + "0.4" + ], + "printable_area": [ + "0x0", + "300x0", + "300x300", + "0x300" + ], + "machine_max_speed_x": ["500", "500"], + "machine_max_speed_y": ["500", "500"], + "machine_max_speed_z": ["50", "50"], + "machine_max_speed_e": ["120", "120"], + "machine_max_acceleration_x": ["20000", "20000"], + "machine_max_acceleration_y": ["20000", "20000"], + "machine_max_acceleration_z": ["200", "200"], + "machine_max_acceleration_e": ["20000", "20000"], + "machine_max_acceleration_extruding": ["20000", "20000"], + "machine_max_acceleration_retracting": ["20000", "20000"], + "machine_max_jerk_x": ["5", "5"], + "machine_max_jerk_y": ["5", "5"], + "machine_max_jerk_z": ["0.4", "0.4"], + "machine_max_jerk_e": ["5", "5"], + "min_layer_height": ["0.06"], + "max_layer_height": ["0.3"], + "retract_lift_below": ["0.2"], + "retraction_length": ["0.8"], + "retraction_speed": ["120"], + "deretraction_speed": ["120"], + "wipe": ["0"], + "retract_before_wipe": ["0%"], + "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nTOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]\nG92 E0\n_ON_LAYER_CHANGE LAYER={layer_num + 1}", + "before_layer_change_gcode": ";[layer_z]", + "change_filament_gcode": "M600", + "machine_pause_gcode": "M601", + "printing_by_object_gcode": ";BETWEEN_OBJECTS\nG92 E0", + "printable_height": "300", + "thumbnails": [ + "64x64/PNG", + "400x300/PNG" + ] +} diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 300 0.5 nozzle.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 300 0.5 nozzle.json new file mode 100644 index 0000000000..bf8651e3ff --- /dev/null +++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 300 0.5 nozzle.json @@ -0,0 +1,52 @@ +{ + "type": "machine", + "setting_id": "GM002", + "name": "RatRig V-Core 4 HYBRID 300 0.5 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_klipper_common", + "printer_model": "RatRig V-Core 4 HYBRID 300", + "printer_variant": "0.5", + "nozzle_diameter": [ + "0.5" + ], + "printable_area": [ + "0x0", + "300x0", + "300x300", + "0x300" + ], + "machine_max_speed_x": ["500", "500"], + "machine_max_speed_y": ["500", "500"], + "machine_max_speed_z": ["50", "50"], + "machine_max_speed_e": ["120", "120"], + "machine_max_acceleration_x": ["20000", "20000"], + "machine_max_acceleration_y": ["20000", "20000"], + "machine_max_acceleration_z": ["200", "200"], + "machine_max_acceleration_e": ["20000", "20000"], + "machine_max_acceleration_extruding": ["20000", "20000"], + "machine_max_acceleration_retracting": ["20000", "20000"], + "machine_max_jerk_x": ["5", "5"], + "machine_max_jerk_y": ["5", "5"], + "machine_max_jerk_z": ["0.4", "0.4"], + "machine_max_jerk_e": ["5", "5"], + "min_layer_height": ["0.07"], + "max_layer_height": ["0.32"], + "retract_lift_below": ["0.2"], + "retraction_length": ["0.8"], + "retraction_speed": ["120"], + "deretraction_speed": ["120"], + "wipe": ["0"], + "retract_before_wipe": ["0%"], + "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nTOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]\nG92 E0\n_ON_LAYER_CHANGE LAYER={layer_num + 1}", + "before_layer_change_gcode": ";[layer_z]", + "change_filament_gcode": "M600", + "machine_pause_gcode": "M601", + "printing_by_object_gcode": ";BETWEEN_OBJECTS\nG92 E0", + "printable_height": "300", + "thumbnails": [ + "64x64/PNG", + "400x300/PNG" + ] +} diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 300 0.6 nozzle.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 300 0.6 nozzle.json new file mode 100644 index 0000000000..e40e4beaf1 --- /dev/null +++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 300 0.6 nozzle.json @@ -0,0 +1,52 @@ +{ + "type": "machine", + "setting_id": "GM002", + "name": "RatRig V-Core 4 HYBRID 300 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_klipper_common", + "printer_model": "RatRig V-Core 4 HYBRID 300", + "printer_variant": "0.6", + "nozzle_diameter": [ + "0.6" + ], + "printable_area": [ + "0x0", + "300x0", + "300x300", + "0x300" + ], + "machine_max_speed_x": ["500", "500"], + "machine_max_speed_y": ["500", "500"], + "machine_max_speed_z": ["50", "50"], + "machine_max_speed_e": ["120", "120"], + "machine_max_acceleration_x": ["20000", "20000"], + "machine_max_acceleration_y": ["20000", "20000"], + "machine_max_acceleration_z": ["200", "200"], + "machine_max_acceleration_e": ["20000", "20000"], + "machine_max_acceleration_extruding": ["20000", "20000"], + "machine_max_acceleration_retracting": ["20000", "20000"], + "machine_max_jerk_x": ["5", "5"], + "machine_max_jerk_y": ["5", "5"], + "machine_max_jerk_z": ["0.4", "0.4"], + "machine_max_jerk_e": ["5", "5"], + "min_layer_height": ["0.1"], + "max_layer_height": ["0.4"], + "retract_lift_below": ["0.3"], + "retraction_length": ["0.8"], + "retraction_speed": ["120"], + "deretraction_speed": ["120"], + "wipe": ["0"], + "retract_before_wipe": ["0%"], + "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nTOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]\nG92 E0\n_ON_LAYER_CHANGE LAYER={layer_num + 1}", + "before_layer_change_gcode": ";[layer_z]", + "change_filament_gcode": "M600", + "machine_pause_gcode": "M601", + "printing_by_object_gcode": ";BETWEEN_OBJECTS\nG92 E0", + "printable_height": "300", + "thumbnails": [ + "64x64/PNG", + "400x300/PNG" + ] +} diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 300.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 300.json new file mode 100644 index 0000000000..d1016f2662 --- /dev/null +++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 300.json @@ -0,0 +1,12 @@ +{ + "type": "machine_model", + "name": "RatRig V-Core 4 HYBRID 300", + "model_id": "V-Core_4_HYBRID_300", + "nozzle_diameter": "0.4;0.5;0.6", + "machine_tech": "FFF", + "family": "RatRig_V-Core", + "bed_model": "ratrig-vcore-bed-300.stl", + "bed_texture": "ratrig_logo.svg", + "hotend_model": "", + "default_materials": "RatRig Generic ABS;RatRig Generic PLA;RatRig Generic PLA-CF;RatRig Generic PETG;RatRig Generic TPU;RatRig Generic ASA;RatRig Generic PC;RatRig Generic PVA;RatRig Generic PA;RatRig Generic PA-CF" +} diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 400 0.4 nozzle.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 400 0.4 nozzle.json new file mode 100644 index 0000000000..d6e8b028fd --- /dev/null +++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 400 0.4 nozzle.json @@ -0,0 +1,52 @@ +{ + "type": "machine", + "setting_id": "GM002", + "name": "RatRig V-Core 4 HYBRID 400 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_klipper_common", + "printer_model": "RatRig V-Core 4 HYBRID 400", + "printer_variant": "0.4", + "nozzle_diameter": [ + "0.4" + ], + "printable_area": [ + "0x0", + "400x0", + "400x400", + "0x400" + ], + "machine_max_speed_x": ["500", "500"], + "machine_max_speed_y": ["500", "500"], + "machine_max_speed_z": ["50", "50"], + "machine_max_speed_e": ["120", "120"], + "machine_max_acceleration_x": ["20000", "20000"], + "machine_max_acceleration_y": ["20000", "20000"], + "machine_max_acceleration_z": ["200", "200"], + "machine_max_acceleration_e": ["20000", "20000"], + "machine_max_acceleration_extruding": ["20000", "20000"], + "machine_max_acceleration_retracting": ["20000", "20000"], + "machine_max_jerk_x": ["5", "5"], + "machine_max_jerk_y": ["5", "5"], + "machine_max_jerk_z": ["0.4", "0.4"], + "machine_max_jerk_e": ["5", "5"], + "min_layer_height": ["0.06"], + "max_layer_height": ["0.3"], + "retract_lift_below": ["0.2"], + "retraction_length": ["0.8"], + "retraction_speed": ["120"], + "deretraction_speed": ["120"], + "wipe": ["0"], + "retract_before_wipe": ["0%"], + "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nTOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]\nG92 E0\n_ON_LAYER_CHANGE LAYER={layer_num + 1}", + "before_layer_change_gcode": ";[layer_z]", + "change_filament_gcode": "M600", + "machine_pause_gcode": "M601", + "printing_by_object_gcode": ";BETWEEN_OBJECTS\nG92 E0", + "printable_height": "400", + "thumbnails": [ + "64x64/PNG", + "400x300/PNG" + ] +} diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 400 0.5 nozzle.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 400 0.5 nozzle.json new file mode 100644 index 0000000000..29d095b567 --- /dev/null +++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 400 0.5 nozzle.json @@ -0,0 +1,52 @@ +{ + "type": "machine", + "setting_id": "GM002", + "name": "RatRig V-Core 4 HYBRID 400 0.5 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_klipper_common", + "printer_model": "RatRig V-Core 4 HYBRID 400", + "printer_variant": "0.5", + "nozzle_diameter": [ + "0.5" + ], + "printable_area": [ + "0x0", + "400x0", + "400x400", + "0x400" + ], + "machine_max_speed_x": ["500", "500"], + "machine_max_speed_y": ["500", "500"], + "machine_max_speed_z": ["50", "50"], + "machine_max_speed_e": ["120", "120"], + "machine_max_acceleration_x": ["20000", "20000"], + "machine_max_acceleration_y": ["20000", "20000"], + "machine_max_acceleration_z": ["200", "200"], + "machine_max_acceleration_e": ["20000", "20000"], + "machine_max_acceleration_extruding": ["20000", "20000"], + "machine_max_acceleration_retracting": ["20000", "20000"], + "machine_max_jerk_x": ["5", "5"], + "machine_max_jerk_y": ["5", "5"], + "machine_max_jerk_z": ["0.4", "0.4"], + "machine_max_jerk_e": ["5", "5"], + "min_layer_height": ["0.07"], + "max_layer_height": ["0.32"], + "retract_lift_below": ["0.2"], + "retraction_length": ["0.8"], + "retraction_speed": ["120"], + "deretraction_speed": ["120"], + "wipe": ["0"], + "retract_before_wipe": ["0%"], + "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nTOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]\nG92 E0\n_ON_LAYER_CHANGE LAYER={layer_num + 1}", + "before_layer_change_gcode": ";[layer_z]", + "change_filament_gcode": "M600", + "machine_pause_gcode": "M601", + "printing_by_object_gcode": ";BETWEEN_OBJECTS\nG92 E0", + "printable_height": "400", + "thumbnails": [ + "64x64/PNG", + "400x300/PNG" + ] +} diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 400 0.6 nozzle.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 400 0.6 nozzle.json new file mode 100644 index 0000000000..95e1bbf29c --- /dev/null +++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 400 0.6 nozzle.json @@ -0,0 +1,52 @@ +{ + "type": "machine", + "setting_id": "GM002", + "name": "RatRig V-Core 4 HYBRID 400 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_klipper_common", + "printer_model": "RatRig V-Core 4 HYBRID 400", + "printer_variant": "0.6", + "nozzle_diameter": [ + "0.6" + ], + "printable_area": [ + "0x0", + "400x0", + "400x400", + "0x400" + ], + "machine_max_speed_x": ["500", "500"], + "machine_max_speed_y": ["500", "500"], + "machine_max_speed_z": ["50", "50"], + "machine_max_speed_e": ["120", "120"], + "machine_max_acceleration_x": ["20000", "20000"], + "machine_max_acceleration_y": ["20000", "20000"], + "machine_max_acceleration_z": ["200", "200"], + "machine_max_acceleration_e": ["20000", "20000"], + "machine_max_acceleration_extruding": ["20000", "20000"], + "machine_max_acceleration_retracting": ["20000", "20000"], + "machine_max_jerk_x": ["5", "5"], + "machine_max_jerk_y": ["5", "5"], + "machine_max_jerk_z": ["0.4", "0.4"], + "machine_max_jerk_e": ["5", "5"], + "min_layer_height": ["0.1"], + "max_layer_height": ["0.4"], + "retract_lift_below": ["0.3"], + "retraction_length": ["0.8"], + "retraction_speed": ["120"], + "deretraction_speed": ["120"], + "wipe": ["0"], + "retract_before_wipe": ["0%"], + "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nTOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]\nG92 E0\n_ON_LAYER_CHANGE LAYER={layer_num + 1}", + "before_layer_change_gcode": ";[layer_z]", + "change_filament_gcode": "M600", + "machine_pause_gcode": "M601", + "printing_by_object_gcode": ";BETWEEN_OBJECTS\nG92 E0", + "printable_height": "400", + "thumbnails": [ + "64x64/PNG", + "400x300/PNG" + ] +} diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 400.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 400.json new file mode 100644 index 0000000000..dce309372c --- /dev/null +++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 400.json @@ -0,0 +1,12 @@ +{ + "type": "machine_model", + "name": "RatRig V-Core 4 HYBRID 400", + "model_id": "V-Core_4_HYBRID_400", + "nozzle_diameter": "0.4;0.5;0.6", + "machine_tech": "FFF", + "family": "RatRig_V-Core", + "bed_model": "ratrig-vcore-bed-400.stl", + "bed_texture": "ratrig_logo.svg", + "hotend_model": "", + "default_materials": "RatRig Generic ABS;RatRig Generic PLA;RatRig Generic PLA-CF;RatRig Generic PETG;RatRig Generic TPU;RatRig Generic ASA;RatRig Generic PC;RatRig Generic PVA;RatRig Generic PA;RatRig Generic PA-CF" +} diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 500 0.4 nozzle.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 500 0.4 nozzle.json new file mode 100644 index 0000000000..d2ded5365f --- /dev/null +++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 500 0.4 nozzle.json @@ -0,0 +1,52 @@ +{ + "type": "machine", + "setting_id": "GM002", + "name": "RatRig V-Core 4 HYBRID 500 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_klipper_common", + "printer_model": "RatRig V-Core 4 HYBRID 500", + "printer_variant": "0.4", + "nozzle_diameter": [ + "0.4" + ], + "printable_area": [ + "0x0", + "500x0", + "500x500", + "0x500" + ], + "machine_max_speed_x": ["500", "500"], + "machine_max_speed_y": ["500", "500"], + "machine_max_speed_z": ["50", "50"], + "machine_max_speed_e": ["120", "120"], + "machine_max_acceleration_x": ["20000", "20000"], + "machine_max_acceleration_y": ["20000", "20000"], + "machine_max_acceleration_z": ["200", "200"], + "machine_max_acceleration_e": ["20000", "20000"], + "machine_max_acceleration_extruding": ["20000", "20000"], + "machine_max_acceleration_retracting": ["20000", "20000"], + "machine_max_jerk_x": ["5", "5"], + "machine_max_jerk_y": ["5", "5"], + "machine_max_jerk_z": ["0.4", "0.4"], + "machine_max_jerk_e": ["5", "5"], + "min_layer_height": ["0.06"], + "max_layer_height": ["0.3"], + "retract_lift_below": ["0.2"], + "retraction_length": ["0.8"], + "retraction_speed": ["120"], + "deretraction_speed": ["120"], + "wipe": ["0"], + "retract_before_wipe": ["0%"], + "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nTOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]\nG92 E0\n_ON_LAYER_CHANGE LAYER={layer_num + 1}", + "before_layer_change_gcode": ";[layer_z]", + "change_filament_gcode": "M600", + "machine_pause_gcode": "M601", + "printing_by_object_gcode": ";BETWEEN_OBJECTS\nG92 E0", + "printable_height": "500", + "thumbnails": [ + "64x64/PNG", + "400x300/PNG" + ] +} diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 500 0.5 nozzle.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 500 0.5 nozzle.json new file mode 100644 index 0000000000..83428f708b --- /dev/null +++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 500 0.5 nozzle.json @@ -0,0 +1,52 @@ +{ + "type": "machine", + "setting_id": "GM002", + "name": "RatRig V-Core 4 HYBRID 500 0.5 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_klipper_common", + "printer_model": "RatRig V-Core 4 HYBRID 500", + "printer_variant": "0.5", + "nozzle_diameter": [ + "0.4" + ], + "printable_area": [ + "0x0", + "500x0", + "500x500", + "0x500" + ], + "machine_max_speed_x": ["500", "500"], + "machine_max_speed_y": ["500", "500"], + "machine_max_speed_z": ["50", "50"], + "machine_max_speed_e": ["120", "120"], + "machine_max_acceleration_x": ["20000", "20000"], + "machine_max_acceleration_y": ["20000", "20000"], + "machine_max_acceleration_z": ["200", "200"], + "machine_max_acceleration_e": ["20000", "20000"], + "machine_max_acceleration_extruding": ["20000", "20000"], + "machine_max_acceleration_retracting": ["20000", "20000"], + "machine_max_jerk_x": ["5", "5"], + "machine_max_jerk_y": ["5", "5"], + "machine_max_jerk_z": ["0.4", "0.4"], + "machine_max_jerk_e": ["5", "5"], + "min_layer_height": ["0.07"], + "max_layer_height": ["0.32"], + "retract_lift_below": ["0.25"], + "retraction_length": ["0.8"], + "retraction_speed": ["120"], + "deretraction_speed": ["120"], + "wipe": ["0"], + "retract_before_wipe": ["0%"], + "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nTOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]\nG92 E0\n_ON_LAYER_CHANGE LAYER={layer_num + 1}", + "before_layer_change_gcode": ";[layer_z]", + "change_filament_gcode": "M600", + "machine_pause_gcode": "M601", + "printing_by_object_gcode": ";BETWEEN_OBJECTS\nG92 E0", + "printable_height": "500", + "thumbnails": [ + "64x64/PNG", + "400x300/PNG" + ] +} diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 500 0.6 nozzle.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 500 0.6 nozzle.json new file mode 100644 index 0000000000..38797ef1e2 --- /dev/null +++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 500 0.6 nozzle.json @@ -0,0 +1,52 @@ +{ + "type": "machine", + "setting_id": "GM002", + "name": "RatRig V-Core 4 HYBRID 500 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_klipper_common", + "printer_model": "RatRig V-Core 4 HYBRID 500", + "printer_variant": "0.6", + "nozzle_diameter": [ + "0.6" + ], + "printable_area": [ + "0x0", + "500x0", + "500x500", + "0x500" + ], + "machine_max_speed_x": ["500", "500"], + "machine_max_speed_y": ["500", "500"], + "machine_max_speed_z": ["50", "50"], + "machine_max_speed_e": ["120", "120"], + "machine_max_acceleration_x": ["20000", "20000"], + "machine_max_acceleration_y": ["20000", "20000"], + "machine_max_acceleration_z": ["200", "200"], + "machine_max_acceleration_e": ["20000", "20000"], + "machine_max_acceleration_extruding": ["20000", "20000"], + "machine_max_acceleration_retracting": ["20000", "20000"], + "machine_max_jerk_x": ["5", "5"], + "machine_max_jerk_y": ["5", "5"], + "machine_max_jerk_z": ["0.4", "0.4"], + "machine_max_jerk_e": ["5", "5"], + "min_layer_height": ["0.1"], + "max_layer_height": ["0.4"], + "retract_lift_below": ["0.3"], + "retraction_length": ["0.8"], + "retraction_speed": ["120"], + "deretraction_speed": ["120"], + "wipe": ["0"], + "retract_before_wipe": ["0%"], + "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nTOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]\nG92 E0\n_ON_LAYER_CHANGE LAYER={layer_num + 1}", + "before_layer_change_gcode": ";[layer_z]", + "change_filament_gcode": "M600", + "machine_pause_gcode": "M601", + "printing_by_object_gcode": ";BETWEEN_OBJECTS\nG92 E0", + "printable_height": "500", + "thumbnails": [ + "64x64/PNG", + "400x300/PNG" + ] +} diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 500.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 500.json new file mode 100644 index 0000000000..0c27eeea8d --- /dev/null +++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 500.json @@ -0,0 +1,12 @@ +{ + "type": "machine_model", + "name": "RatRig V-Core 4 HYBRID 500", + "model_id": "V-Core_4_HYBRID_500", + "nozzle_diameter": "0.4;0.5;0.6", + "machine_tech": "FFF", + "family": "RatRig_V-Core", + "bed_model": "ratrig-vcore-bed-500.stl", + "bed_texture": "ratrig_logo.svg", + "hotend_model": "", + "default_materials": "RatRig Generic ABS;RatRig Generic PLA;RatRig Generic PLA-CF;RatRig Generic PETG;RatRig Generic TPU;RatRig Generic ASA;RatRig Generic PC;RatRig Generic PVA;RatRig Generic PA;RatRig Generic PA-CF" +} diff --git a/resources/profiles/Ratrig/process/0.08mm Extra Fine @RatRig.json b/resources/profiles/Ratrig/process/0.08mm Extra Fine @RatRig.json index b0c4119cd1..6e0634b6ca 100644 --- a/resources/profiles/Ratrig/process/0.08mm Extra Fine @RatRig.json +++ b/resources/profiles/Ratrig/process/0.08mm Extra Fine @RatRig.json @@ -7,5 +7,14 @@ "inherits": "fdm_process_ratrig_common", "layer_height": "0.08", "bottom_shell_layers": "7", - "top_shell_layers": "9" + "top_shell_layers": "9", + "compatible_printers": [ + "RatRig V-Core 3 200 0.4 nozzle", + "RatRig V-Core 3 300 0.4 nozzle", + "RatRig V-Core 3 400 0.4 nozzle", + "RatRig V-Core 3 500 0.4 nozzle", + "RatRig V-Minion 0.4 nozzle", + "RatRig V-Cast 0.4 nozzle", + "RatRig V-Cast 0.6 nozzle" + ] } diff --git a/resources/profiles/Ratrig/process/0.12mm Fine @RatRig.json b/resources/profiles/Ratrig/process/0.12mm Fine @RatRig.json index df5043532b..3ccac5be9b 100644 --- a/resources/profiles/Ratrig/process/0.12mm Fine @RatRig.json +++ b/resources/profiles/Ratrig/process/0.12mm Fine @RatRig.json @@ -7,5 +7,14 @@ "inherits": "fdm_process_ratrig_common", "layer_height": "0.12", "bottom_shell_layers": "5", - "top_shell_layers": "6" + "top_shell_layers": "6", + "compatible_printers": [ + "RatRig V-Core 3 200 0.4 nozzle", + "RatRig V-Core 3 300 0.4 nozzle", + "RatRig V-Core 3 400 0.4 nozzle", + "RatRig V-Core 3 500 0.4 nozzle", + "RatRig V-Minion 0.4 nozzle", + "RatRig V-Cast 0.4 nozzle", + "RatRig V-Cast 0.6 nozzle" + ] } diff --git a/resources/profiles/Ratrig/process/0.15mm Optimal @RatRig.json b/resources/profiles/Ratrig/process/0.15mm Optimal @RatRig.json index d9404d259a..80e1c1274e 100644 --- a/resources/profiles/Ratrig/process/0.15mm Optimal @RatRig.json +++ b/resources/profiles/Ratrig/process/0.15mm Optimal @RatRig.json @@ -7,5 +7,14 @@ "inherits": "fdm_process_ratrig_common", "bottom_shell_layers": "4", "top_shell_layers": "5", - "layer_height": "0.15" + "layer_height": "0.15", + "compatible_printers": [ + "RatRig V-Core 3 200 0.4 nozzle", + "RatRig V-Core 3 300 0.4 nozzle", + "RatRig V-Core 3 400 0.4 nozzle", + "RatRig V-Core 3 500 0.4 nozzle", + "RatRig V-Minion 0.4 nozzle", + "RatRig V-Cast 0.4 nozzle", + "RatRig V-Cast 0.6 nozzle" + ] } diff --git a/resources/profiles/Ratrig/process/0.20mm Quality @RatRig V-Core 4 0.4.json b/resources/profiles/Ratrig/process/0.20mm Quality @RatRig V-Core 4 0.4.json new file mode 100644 index 0000000000..b65a4b50cd --- /dev/null +++ b/resources/profiles/Ratrig/process/0.20mm Quality @RatRig V-Core 4 0.4.json @@ -0,0 +1,62 @@ +{ + "type": "process", + "setting_id": "GP006", + "name": "0.20mm Quality @RatRig V-Core 4 0.4", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_ratrig_common", + "layer_height": "0.2", + "inital_layer_height": "0.3", + "wall_count": "4", + "top_shell_layers": "4", + "bottom_shell_layers": "3", + "top_shell_thickness": "0", + "sparse_infill_density": "25%", + "infill_anchor": "600%", + "infill_anchor_max": "5", + "infill_combination": "1", + "skirt_loops": "2", + "skirt_distance": "10", + "support_threshold_angle": "65", + "support_bottom_z_distance": "0.2", + "support_on_build_plate_only": "1", + "support_object_xy_distance": "60%", + "inner_wall_speed": "350", + "small_perimeter_speed": "250", + "outer_wall_speed": "250", + "sparse_infill_speed": "400", + "internal_solid_infill_speed": "100%", + "top_surface_speed": "100%", + "support_speed": "50", + "support_interface_speed": "100%", + "bridge_speed": "50", + "gap_infill_speed": "200", + "travel_speed": "500", + "initial_layer_speed": "50", + "outer_wall_acceleration": "4000", + "inner_wall_acceleration": "8000", + "top_surface_acceleration": "0", + "internal_solid_infill_acceleration": "0", + "sparse_infill_acceleration": "10000", + "bridge_acceleration": "2500", + "initial_layer_acceleration": "1500", + "travel_acceleration": "10000", + "default_acceleration": "10000", + "line_width": "0.45", + "initial_layer_line_width": "0.5", + "inner_wall_line_width": "0.45", + "outer_wall_line_width": "0.45", + "sparse_infill_line_width": "0.45", + "internal_solid_infill_line_width": "0.45", + "top_surface_line_width": "0.45", + "support_line_width": "0.45", + "infill_wall_overlap": "18%", + "bridge_flow": "0.85", + "resolution": "0.0125", + "elefant_foot_compensation": "0.1", + "compatible_printers": [ + "RatRig V-Core 4 300 0.4 nozzle", + "RatRig V-Core 4 400 0.4 nozzle", + "RatRig V-Core 4 500 0.4 nozzle" + ] +} diff --git a/resources/profiles/Ratrig/process/0.20mm Quality @RatRig V-Core 4 0.5.json b/resources/profiles/Ratrig/process/0.20mm Quality @RatRig V-Core 4 0.5.json new file mode 100644 index 0000000000..1bc3d680c8 --- /dev/null +++ b/resources/profiles/Ratrig/process/0.20mm Quality @RatRig V-Core 4 0.5.json @@ -0,0 +1,62 @@ +{ + "type": "process", + "setting_id": "GP006", + "name": "0.20mm Quality @RatRig V-Core 4 0.5", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_ratrig_common", + "layer_height": "0.2", + "inital_layer_height": "0.3", + "wall_count": "4", + "top_shell_layers": "4", + "bottom_shell_layers": "3", + "top_shell_thickness": "0", + "sparse_infill_density": "25%", + "infill_anchor": "600%", + "infill_anchor_max": "5", + "infill_combination": "1", + "skirt_loops": "2", + "skirt_distance": "10", + "support_threshold_angle": "65", + "support_bottom_z_distance": "0.2", + "support_on_build_plate_only": "1", + "support_object_xy_distance": "60%", + "inner_wall_speed": "350", + "small_perimeter_speed": "250", + "outer_wall_speed": "250", + "sparse_infill_speed": "400", + "internal_solid_infill_speed": "100%", + "top_surface_speed": "100%", + "support_speed": "50", + "support_interface_speed": "100%", + "bridge_speed": "50", + "gap_infill_speed": "200", + "travel_speed": "500", + "initial_layer_speed": "50", + "outer_wall_acceleration": "4000", + "inner_wall_acceleration": "8000", + "top_surface_acceleration": "0", + "internal_solid_infill_acceleration": "0", + "sparse_infill_acceleration": "10000", + "bridge_acceleration": "2500", + "initial_layer_acceleration": "1500", + "travel_acceleration": "10000", + "default_acceleration": "10000", + "line_width": "0.55", + "initial_layer_line_width": "0.7", + "inner_wall_line_width": "0.55", + "outer_wall_line_width": "0.52", + "sparse_infill_line_width": "0.55", + "internal_solid_infill_line_width": "0.55", + "top_surface_line_width": "0.55", + "support_line_width": "0.55", + "infill_wall_overlap": "18%", + "bridge_flow": "0.85", + "resolution": "0.0125", + "elefant_foot_compensation": "0.1", + "compatible_printers": [ + "RatRig V-Core 4 300 0.5 nozzle", + "RatRig V-Core 4 400 0.5 nozzle", + "RatRig V-Core 4 500 0.5 nozzle" + ] +} diff --git a/resources/profiles/Ratrig/process/0.20mm Quality @RatRig V-Core 4 HYBRID 0.4.json b/resources/profiles/Ratrig/process/0.20mm Quality @RatRig V-Core 4 HYBRID 0.4.json new file mode 100644 index 0000000000..4027e25c7f --- /dev/null +++ b/resources/profiles/Ratrig/process/0.20mm Quality @RatRig V-Core 4 HYBRID 0.4.json @@ -0,0 +1,62 @@ +{ + "type": "process", + "setting_id": "GP006", + "name": "0.20mm Quality @RatRig V-Core 4 HYBRID 0.4", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_ratrig_common", + "layer_height": "0.2", + "inital_layer_height": "0.3", + "wall_count": "4", + "top_shell_layers": "4", + "bottom_shell_layers": "3", + "top_shell_thickness": "0", + "sparse_infill_density": "25%", + "infill_anchor": "600%", + "infill_anchor_max": "5", + "infill_combination": "1", + "skirt_loops": "2", + "skirt_distance": "10", + "support_threshold_angle": "65", + "support_bottom_z_distance": "0.2", + "support_on_build_plate_only": "1", + "support_object_xy_distance": "60%", + "inner_wall_speed": "300", + "small_perimeter_speed": "250", + "outer_wall_speed": "250", + "sparse_infill_speed": "400", + "internal_solid_infill_speed": "100%", + "top_surface_speed": "100%", + "support_speed": "50", + "support_interface_speed": "100%", + "bridge_speed": "50", + "gap_infill_speed": "200", + "travel_speed": "600", + "initial_layer_speed": "80", + "outer_wall_acceleration": "8000", + "inner_wall_acceleration": "10000", + "top_surface_acceleration": "0", + "internal_solid_infill_acceleration": "0", + "sparse_infill_acceleration": "15000", + "bridge_acceleration": "5000", + "initial_layer_acceleration": "2500", + "travel_acceleration": "15000", + "default_acceleration": "15000", + "line_width": "0.45", + "initial_layer_line_width": "0.5", + "inner_wall_line_width": "0.45", + "outer_wall_line_width": "0.45", + "sparse_infill_line_width": "0.45", + "internal_solid_infill_line_width": "0.45", + "top_surface_line_width": "0.45", + "support_line_width": "0.45", + "infill_wall_overlap": "18%", + "bridge_flow": "0.85", + "resolution": "0.0125", + "elefant_foot_compensation": "0.1", + "compatible_printers": [ + "RatRig V-Core 4 HYBRID 300 0.4 nozzle", + "RatRig V-Core 4 HYBRID 400 0.4 nozzle", + "RatRig V-Core 4 HYBRID 500 0.4 nozzle" + ] +} diff --git a/resources/profiles/Ratrig/process/0.20mm Quality @RatRig V-Core 4 HYBRID 0.5.json b/resources/profiles/Ratrig/process/0.20mm Quality @RatRig V-Core 4 HYBRID 0.5.json new file mode 100644 index 0000000000..be118426d1 --- /dev/null +++ b/resources/profiles/Ratrig/process/0.20mm Quality @RatRig V-Core 4 HYBRID 0.5.json @@ -0,0 +1,62 @@ +{ + "type": "process", + "setting_id": "GP006", + "name": "0.20mm Quality @RatRig V-Core 4 HYBRID 0.5", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_ratrig_common", + "layer_height": "0.2", + "inital_layer_height": "0.3", + "wall_count": "4", + "top_shell_layers": "4", + "bottom_shell_layers": "3", + "top_shell_thickness": "0", + "sparse_infill_density": "25%", + "infill_anchor": "600%", + "infill_anchor_max": "5", + "infill_combination": "1", + "skirt_loops": "2", + "skirt_distance": "10", + "support_threshold_angle": "65", + "support_bottom_z_distance": "0.2", + "support_on_build_plate_only": "1", + "support_object_xy_distance": "60%", + "inner_wall_speed": "300", + "small_perimeter_speed": "250", + "outer_wall_speed": "250", + "sparse_infill_speed": "400", + "internal_solid_infill_speed": "100%", + "top_surface_speed": "100%", + "support_speed": "50", + "support_interface_speed": "100%", + "bridge_speed": "50", + "gap_infill_speed": "200", + "travel_speed": "600", + "initial_layer_speed": "80", + "outer_wall_acceleration": "8000", + "inner_wall_acceleration": "10000", + "top_surface_acceleration": "0", + "internal_solid_infill_acceleration": "0", + "sparse_infill_acceleration": "15000", + "bridge_acceleration": "5000", + "initial_layer_acceleration": "2500", + "travel_acceleration": "15000", + "default_acceleration": "15000", + "line_width": "0.55", + "initial_layer_line_width": "0.7", + "inner_wall_line_width": "0.55", + "outer_wall_line_width": "0.52", + "sparse_infill_line_width": "0.55", + "internal_solid_infill_line_width": "0.55", + "top_surface_line_width": "0.55", + "support_line_width": "0.55", + "infill_wall_overlap": "18%", + "bridge_flow": "0.85", + "resolution": "0.0125", + "elefant_foot_compensation": "0.1", + "compatible_printers": [ + "RatRig V-Core 4 HYBRID 300 0.5 nozzle", + "RatRig V-Core 4 HYBRID 400 0.5 nozzle", + "RatRig V-Core 4 HYBRID 500 0.5 nozzle" + ] +} diff --git a/resources/profiles/Ratrig/process/0.20mm Standard @RatRig.json b/resources/profiles/Ratrig/process/0.20mm Standard @RatRig.json index eb73d2b3f6..4d27bb0b72 100644 --- a/resources/profiles/Ratrig/process/0.20mm Standard @RatRig.json +++ b/resources/profiles/Ratrig/process/0.20mm Standard @RatRig.json @@ -7,5 +7,14 @@ "instantiation": "true", "layer_height": "0.2", "bottom_shell_layers": "3", - "top_shell_layers": "4" + "top_shell_layers": "4", + "compatible_printers": [ + "RatRig V-Core 3 200 0.4 nozzle", + "RatRig V-Core 3 300 0.4 nozzle", + "RatRig V-Core 3 400 0.4 nozzle", + "RatRig V-Core 3 500 0.4 nozzle", + "RatRig V-Minion 0.4 nozzle", + "RatRig V-Cast 0.4 nozzle", + "RatRig V-Cast 0.6 nozzle" + ] } diff --git a/resources/profiles/Ratrig/process/0.24mm Draft @RatRig.json b/resources/profiles/Ratrig/process/0.24mm Draft @RatRig.json index 827a3a4800..253cbc11f5 100644 --- a/resources/profiles/Ratrig/process/0.24mm Draft @RatRig.json +++ b/resources/profiles/Ratrig/process/0.24mm Draft @RatRig.json @@ -8,5 +8,14 @@ "layer_height": "0.24", "top_surface_line_width": "0.45", "bottom_shell_layers": "3", - "top_shell_layers": "4" + "top_shell_layers": "4", + "compatible_printers": [ + "RatRig V-Core 3 200 0.4 nozzle", + "RatRig V-Core 3 300 0.4 nozzle", + "RatRig V-Core 3 400 0.4 nozzle", + "RatRig V-Core 3 500 0.4 nozzle", + "RatRig V-Minion 0.4 nozzle", + "RatRig V-Cast 0.4 nozzle", + "RatRig V-Cast 0.6 nozzle" + ] } diff --git a/resources/profiles/Ratrig/process/0.25mm Quality Speed @RatRig V-Core 4 0.4.json b/resources/profiles/Ratrig/process/0.25mm Quality Speed @RatRig V-Core 4 0.4.json new file mode 100644 index 0000000000..3bf5a1faa2 --- /dev/null +++ b/resources/profiles/Ratrig/process/0.25mm Quality Speed @RatRig V-Core 4 0.4.json @@ -0,0 +1,62 @@ +{ + "type": "process", + "setting_id": "GP006", + "name": "0.25mm Quality Speed @RatRig V-Core 4 0.4", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_ratrig_common", + "layer_height": "0.25", + "inital_layer_height": "0.3", + "wall_count": "4", + "top_shell_layers": "4", + "bottom_shell_layers": "3", + "top_shell_thickness": "0", + "sparse_infill_density": "25%", + "infill_anchor": "600%", + "infill_anchor_max": "5", + "infill_combination": "1", + "skirt_loops": "2", + "skirt_distance": "10", + "support_threshold_angle": "65", + "support_bottom_z_distance": "0.2", + "support_on_build_plate_only": "1", + "support_object_xy_distance": "60%", + "inner_wall_speed": "350", + "small_perimeter_speed": "250", + "outer_wall_speed": "250", + "sparse_infill_speed": "400", + "internal_solid_infill_speed": "100%", + "top_surface_speed": "100%", + "support_speed": "50", + "support_interface_speed": "100%", + "bridge_speed": "50", + "gap_infill_speed": "200", + "travel_speed": "500", + "initial_layer_speed": "50", + "outer_wall_acceleration": "4000", + "inner_wall_acceleration": "8000", + "top_surface_acceleration": "0", + "internal_solid_infill_acceleration": "0", + "sparse_infill_acceleration": "10000", + "bridge_acceleration": "2500", + "initial_layer_acceleration": "1500", + "travel_acceleration": "10000", + "default_acceleration": "10000", + "line_width": "0.45", + "initial_layer_line_width": "0.5", + "inner_wall_line_width": "0.45", + "outer_wall_line_width": "0.45", + "sparse_infill_line_width": "0.45", + "internal_solid_infill_line_width": "0.45", + "top_surface_line_width": "0.45", + "support_line_width": "0.45", + "infill_wall_overlap": "18%", + "bridge_flow": "0.85", + "resolution": "0.0125", + "elefant_foot_compensation": "0.1", + "compatible_printers": [ + "RatRig V-Core 4 300 0.4 nozzle", + "RatRig V-Core 4 400 0.4 nozzle", + "RatRig V-Core 4 500 0.4 nozzle" + ] +} diff --git a/resources/profiles/Ratrig/process/0.25mm Quality Speed @RatRig V-Core 4 0.5.json b/resources/profiles/Ratrig/process/0.25mm Quality Speed @RatRig V-Core 4 0.5.json new file mode 100644 index 0000000000..5f9277cd55 --- /dev/null +++ b/resources/profiles/Ratrig/process/0.25mm Quality Speed @RatRig V-Core 4 0.5.json @@ -0,0 +1,62 @@ +{ + "type": "process", + "setting_id": "GP006", + "name": "0.25mm Quality Speed @RatRig V-Core 4 0.5", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_ratrig_common", + "layer_height": "0.25", + "inital_layer_height": "0.3", + "wall_count": "4", + "top_shell_layers": "4", + "bottom_shell_layers": "3", + "top_shell_thickness": "0", + "sparse_infill_density": "25%", + "infill_anchor": "600%", + "infill_anchor_max": "5", + "infill_combination": "1", + "skirt_loops": "2", + "skirt_distance": "10", + "support_threshold_angle": "65", + "support_bottom_z_distance": "0.2", + "support_on_build_plate_only": "1", + "support_object_xy_distance": "60%", + "inner_wall_speed": "350", + "small_perimeter_speed": "250", + "outer_wall_speed": "250", + "sparse_infill_speed": "400", + "internal_solid_infill_speed": "100%", + "top_surface_speed": "100%", + "support_speed": "50", + "support_interface_speed": "100%", + "bridge_speed": "50", + "gap_infill_speed": "200", + "travel_speed": "500", + "initial_layer_speed": "50", + "outer_wall_acceleration": "4000", + "inner_wall_acceleration": "8000", + "top_surface_acceleration": "0", + "internal_solid_infill_acceleration": "0", + "sparse_infill_acceleration": "10000", + "bridge_acceleration": "2500", + "initial_layer_acceleration": "1500", + "travel_acceleration": "10000", + "default_acceleration": "10000", + "line_width": "0.55", + "initial_layer_line_width": "0.7", + "inner_wall_line_width": "0.55", + "outer_wall_line_width": "0.52", + "sparse_infill_line_width": "0.55", + "internal_solid_infill_line_width": "0.55", + "top_surface_line_width": "0.55", + "support_line_width": "0.55", + "infill_wall_overlap": "18%", + "bridge_flow": "0.85", + "resolution": "0.0125", + "elefant_foot_compensation": "0.1", + "compatible_printers": [ + "RatRig V-Core 4 300 0.5 nozzle", + "RatRig V-Core 4 400 0.5 nozzle", + "RatRig V-Core 4 500 0.5 nozzle" + ] +} diff --git a/resources/profiles/Ratrig/process/0.25mm Quality Speed @RatRig V-Core 4 0.6.json b/resources/profiles/Ratrig/process/0.25mm Quality Speed @RatRig V-Core 4 0.6.json new file mode 100644 index 0000000000..785ec5e762 --- /dev/null +++ b/resources/profiles/Ratrig/process/0.25mm Quality Speed @RatRig V-Core 4 0.6.json @@ -0,0 +1,62 @@ +{ + "type": "process", + "setting_id": "GP006", + "name": "0.25mm Quality Speed @RatRig V-Core 4 0.6", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_ratrig_common", + "layer_height": "0.25", + "inital_layer_height": "0.35", + "wall_count": "3", + "top_shell_layers": "4", + "bottom_shell_layers": "3", + "top_shell_thickness": "0", + "sparse_infill_density": "25%", + "infill_anchor": "600%", + "infill_anchor_max": "5", + "infill_combination": "1", + "skirt_loops": "2", + "skirt_distance": "10", + "support_threshold_angle": "65", + "support_bottom_z_distance": "0.2", + "support_on_build_plate_only": "1", + "support_object_xy_distance": "60%", + "inner_wall_speed": "350", + "small_perimeter_speed": "250", + "outer_wall_speed": "250", + "sparse_infill_speed": "400", + "internal_solid_infill_speed": "100%", + "top_surface_speed": "100%", + "support_speed": "50", + "support_interface_speed": "100%", + "bridge_speed": "50", + "gap_infill_speed": "200", + "travel_speed": "500", + "initial_layer_speed": "50", + "outer_wall_acceleration": "4000", + "inner_wall_acceleration": "8000", + "top_surface_acceleration": "0", + "internal_solid_infill_acceleration": "0", + "sparse_infill_acceleration": "10000", + "bridge_acceleration": "2500", + "initial_layer_acceleration": "1500", + "travel_acceleration": "10000", + "default_acceleration": "10000", + "line_width": "0.65", + "initial_layer_line_width": "0.84", + "inner_wall_line_width": "0.65", + "outer_wall_line_width": "0.65", + "sparse_infill_line_width": "0.65", + "internal_solid_infill_line_width": "0.65", + "top_surface_line_width": "0.65", + "support_line_width": "0.65", + "infill_wall_overlap": "18%", + "bridge_flow": "0.85", + "resolution": "0.0125", + "elefant_foot_compensation": "0.1", + "compatible_printers": [ + "RatRig V-Core 4 300 0.6 nozzle", + "RatRig V-Core 4 400 0.6 nozzle", + "RatRig V-Core 4 500 0.6 nozzle" + ] +} diff --git a/resources/profiles/Ratrig/process/0.25mm Quality Speed @RatRig V-Core 4 HYBRID 0.4.json b/resources/profiles/Ratrig/process/0.25mm Quality Speed @RatRig V-Core 4 HYBRID 0.4.json new file mode 100644 index 0000000000..24a7497b61 --- /dev/null +++ b/resources/profiles/Ratrig/process/0.25mm Quality Speed @RatRig V-Core 4 HYBRID 0.4.json @@ -0,0 +1,62 @@ +{ + "type": "process", + "setting_id": "GP006", + "name": "0.25mm Quality Speed @RatRig V-Core 4 HYBRID 0.4", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_ratrig_common", + "layer_height": "0.25", + "inital_layer_height": "0.3", + "wall_count": "4", + "top_shell_layers": "4", + "bottom_shell_layers": "3", + "top_shell_thickness": "0", + "sparse_infill_density": "25%", + "infill_anchor": "600%", + "infill_anchor_max": "5", + "infill_combination": "1", + "skirt_loops": "2", + "skirt_distance": "10", + "support_threshold_angle": "65", + "support_bottom_z_distance": "0.2", + "support_on_build_plate_only": "1", + "support_object_xy_distance": "60%", + "inner_wall_speed": "300", + "small_perimeter_speed": "250", + "outer_wall_speed": "250", + "sparse_infill_speed": "400", + "internal_solid_infill_speed": "100%", + "top_surface_speed": "100%", + "support_speed": "50", + "support_interface_speed": "100%", + "bridge_speed": "50", + "gap_infill_speed": "200", + "travel_speed": "600", + "initial_layer_speed": "80", + "outer_wall_acceleration": "8000", + "inner_wall_acceleration": "10000", + "top_surface_acceleration": "0", + "internal_solid_infill_acceleration": "0", + "sparse_infill_acceleration": "15000", + "bridge_acceleration": "5000", + "initial_layer_acceleration": "2500", + "travel_acceleration": "15000", + "default_acceleration": "15000", + "line_width": "0.45", + "initial_layer_line_width": "0.5", + "inner_wall_line_width": "0.45", + "outer_wall_line_width": "0.45", + "sparse_infill_line_width": "0.45", + "internal_solid_infill_line_width": "0.45", + "top_surface_line_width": "0.45", + "support_line_width": "0.45", + "infill_wall_overlap": "18%", + "bridge_flow": "0.85", + "resolution": "0.0125", + "elefant_foot_compensation": "0.1", + "compatible_printers": [ + "RatRig V-Core 4 HYBRID 300 0.4 nozzle", + "RatRig V-Core 4 HYBRID 400 0.4 nozzle", + "RatRig V-Core 4 HYBIRD 500 0.4 nozzle" + ] +} diff --git a/resources/profiles/Ratrig/process/0.25mm Quality Speed @RatRig V-Core 4 HYBRID 0.5.json b/resources/profiles/Ratrig/process/0.25mm Quality Speed @RatRig V-Core 4 HYBRID 0.5.json new file mode 100644 index 0000000000..dbf3f1e9e4 --- /dev/null +++ b/resources/profiles/Ratrig/process/0.25mm Quality Speed @RatRig V-Core 4 HYBRID 0.5.json @@ -0,0 +1,62 @@ +{ + "type": "process", + "setting_id": "GP006", + "name": "0.25mm Quality Speed @RatRig V-Core 4 HYBRID 0.5", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_ratrig_common", + "layer_height": "0.25", + "inital_layer_height": "0.3", + "wall_count": "4", + "top_shell_layers": "4", + "bottom_shell_layers": "3", + "top_shell_thickness": "0", + "sparse_infill_density": "25%", + "infill_anchor": "600%", + "infill_anchor_max": "5", + "infill_combination": "1", + "skirt_loops": "2", + "skirt_distance": "10", + "support_threshold_angle": "65", + "support_bottom_z_distance": "0.2", + "support_on_build_plate_only": "1", + "support_object_xy_distance": "60%", + "inner_wall_speed": "300", + "small_perimeter_speed": "250", + "outer_wall_speed": "250", + "sparse_infill_speed": "400", + "internal_solid_infill_speed": "100%", + "top_surface_speed": "100%", + "support_speed": "50", + "support_interface_speed": "100%", + "bridge_speed": "50", + "gap_infill_speed": "200", + "travel_speed": "600", + "initial_layer_speed": "80", + "outer_wall_acceleration": "8000", + "inner_wall_acceleration": "10000", + "top_surface_acceleration": "0", + "internal_solid_infill_acceleration": "0", + "sparse_infill_acceleration": "15000", + "bridge_acceleration": "5000", + "initial_layer_acceleration": "2500", + "travel_acceleration": "15000", + "default_acceleration": "15000", + "line_width": "0.55", + "initial_layer_line_width": "0.7", + "inner_wall_line_width": "0.55", + "outer_wall_line_width": "0.52", + "sparse_infill_line_width": "0.55", + "internal_solid_infill_line_width": "0.55", + "top_surface_line_width": "0.55", + "support_line_width": "0.55", + "infill_wall_overlap": "18%", + "bridge_flow": "0.85", + "resolution": "0.0125", + "elefant_foot_compensation": "0.1", + "compatible_printers": [ + "RatRig V-Core 4 HYBRID 300 0.5 nozzle", + "RatRig V-Core 4 HYBRID 400 0.5 nozzle", + "RatRig V-Core 4 HYBIRD 500 0.5 nozzle" + ] +} diff --git a/resources/profiles/Ratrig/process/0.25mm Quality Speed @RatRig V-Core 4 HYBRID 0.6.json b/resources/profiles/Ratrig/process/0.25mm Quality Speed @RatRig V-Core 4 HYBRID 0.6.json new file mode 100644 index 0000000000..975e82da8a --- /dev/null +++ b/resources/profiles/Ratrig/process/0.25mm Quality Speed @RatRig V-Core 4 HYBRID 0.6.json @@ -0,0 +1,62 @@ +{ + "type": "process", + "setting_id": "GP006", + "name": "0.25mm Quality Speed @RatRig V-Core 4 HYBRID 0.6", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_ratrig_common", + "layer_height": "0.25", + "inital_layer_height": "0.3", + "wall_count": "4", + "top_shell_layers": "4", + "bottom_shell_layers": "3", + "top_shell_thickness": "0", + "sparse_infill_density": "25%", + "infill_anchor": "600%", + "infill_anchor_max": "5", + "infill_combination": "1", + "skirt_loops": "2", + "skirt_distance": "10", + "support_threshold_angle": "65", + "support_bottom_z_distance": "0.2", + "support_on_build_plate_only": "1", + "support_object_xy_distance": "60%", + "inner_wall_speed": "300", + "small_perimeter_speed": "250", + "outer_wall_speed": "250", + "sparse_infill_speed": "400", + "internal_solid_infill_speed": "100%", + "top_surface_speed": "100%", + "support_speed": "50", + "support_interface_speed": "100%", + "bridge_speed": "50", + "gap_infill_speed": "200", + "travel_speed": "600", + "initial_layer_speed": "80", + "outer_wall_acceleration": "8000", + "inner_wall_acceleration": "10000", + "top_surface_acceleration": "0", + "internal_solid_infill_acceleration": "0", + "sparse_infill_acceleration": "15000", + "bridge_acceleration": "5000", + "initial_layer_acceleration": "2500", + "travel_acceleration": "15000", + "default_acceleration": "15000", + "line_width": "0.65", + "initial_layer_line_width": "0.84", + "inner_wall_line_width": "0.65", + "outer_wall_line_width": "0.65", + "sparse_infill_line_width": "0.65", + "internal_solid_infill_line_width": "0.65", + "top_surface_line_width": "0.65", + "support_line_width": "0.65", + "infill_wall_overlap": "18%", + "bridge_flow": "0.85", + "resolution": "0.0125", + "elefant_foot_compensation": "0.1", + "compatible_printers": [ + "RatRig V-Core 4 HYBRID 300 0.6 nozzle", + "RatRig V-Core 4 HYBRID 400 0.6 nozzle", + "RatRig V-Core 4 HYBIRD 500 0.6 nozzle" + ] +} diff --git a/resources/profiles/Ratrig/process/0.25mm Speed @RatRig V-Core 4 0.4.json b/resources/profiles/Ratrig/process/0.25mm Speed @RatRig V-Core 4 0.4.json new file mode 100644 index 0000000000..c14483511d --- /dev/null +++ b/resources/profiles/Ratrig/process/0.25mm Speed @RatRig V-Core 4 0.4.json @@ -0,0 +1,60 @@ +{ + "type": "process", + "setting_id": "GP006", + "name": "0.25mm Speed @RatRig V-Core 4 0.4", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_ratrig_common", + "layer_height": "0.25", + "inital_layer_height": "0.3", + "wall_count": "2", + "top_shell_layers": "3", + "bottom_shell_layers": "2", + "top_shell_thickness": "0", + "sparse_infill_density": "10%", + "infill_anchor": "600%", + "infill_anchor_max": "5", + "infill_combination": "1", + "support_threshold_angle": "65", + "support_bottom_z_distance": "0.2", + "support_on_build_plate_only": "1", + "support_object_xy_distance": "60%", + "inner_wall_speed": "400", + "small_perimeter_speed": "350", + "outer_wall_speed": "400", + "sparse_infill_speed": "500", + "internal_solid_infill_speed": "100%", + "top_surface_speed": "100%", + "support_speed": "50", + "support_interface_speed": "100%", + "bridge_speed": "150", + "gap_infill_speed": "200", + "travel_speed": "600", + "initial_layer_speed": "200", + "outer_wall_acceleration": "8000", + "inner_wall_acceleration": "10000", + "top_surface_acceleration": "0", + "internal_solid_infill_acceleration": "0", + "sparse_infill_acceleration": "10000", + "bridge_acceleration": "5000", + "initial_layer_acceleration": "2500", + "travel_acceleration": "15000", + "default_acceleration": "10000", + "line_width": "0.45", + "initial_layer_line_width": "0.5", + "inner_wall_line_width": "0.45", + "outer_wall_line_width": "0.45", + "sparse_infill_line_width": "0.45", + "internal_solid_infill_line_width": "0.45", + "top_surface_line_width": "0.45", + "support_line_width": "0.45", + "infill_wall_overlap": "18%", + "bridge_flow": "0.85", + "resolution": "0.0125", + "elefant_foot_compensation": "0.1", + "compatible_printers": [ + "RatRig V-Core 4 300 0.4 nozzle", + "RatRig V-Core 4 400 0.4 nozzle", + "RatRig V-Core 4 500 0.4 nozzle" + ] +} diff --git a/resources/profiles/Ratrig/process/0.25mm Speed @RatRig V-Core 4 0.5.json b/resources/profiles/Ratrig/process/0.25mm Speed @RatRig V-Core 4 0.5.json new file mode 100644 index 0000000000..c720ad9ad1 --- /dev/null +++ b/resources/profiles/Ratrig/process/0.25mm Speed @RatRig V-Core 4 0.5.json @@ -0,0 +1,60 @@ +{ + "type": "process", + "setting_id": "GP006", + "name": "0.25mm Speed @RatRig V-Core 4 0.5", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_ratrig_common", + "layer_height": "0.25", + "inital_layer_height": "0.3", + "wall_count": "2", + "top_shell_layers": "3", + "bottom_shell_layers": "2", + "top_shell_thickness": "0", + "sparse_infill_density": "10%", + "infill_anchor": "600%", + "infill_anchor_max": "5", + "infill_combination": "1", + "support_threshold_angle": "65", + "support_bottom_z_distance": "0.2", + "support_on_build_plate_only": "1", + "support_object_xy_distance": "60%", + "inner_wall_speed": "400", + "small_perimeter_speed": "350", + "outer_wall_speed": "400", + "sparse_infill_speed": "500", + "internal_solid_infill_speed": "100%", + "top_surface_speed": "100%", + "support_speed": "50", + "support_interface_speed": "100%", + "bridge_speed": "150", + "gap_infill_speed": "200", + "travel_speed": "600", + "initial_layer_speed": "200", + "outer_wall_acceleration": "8000", + "inner_wall_acceleration": "10000", + "top_surface_acceleration": "0", + "internal_solid_infill_acceleration": "0", + "sparse_infill_acceleration": "10000", + "bridge_acceleration": "5000", + "initial_layer_acceleration": "2500", + "travel_acceleration": "15000", + "default_acceleration": "10000", + "line_width": "0.55", + "initial_layer_line_width": "0.7", + "inner_wall_line_width": "0.55", + "outer_wall_line_width": "0.52", + "sparse_infill_line_width": "0.55", + "internal_solid_infill_line_width": "0.55", + "top_surface_line_width": "0.55", + "support_line_width": "0.55", + "infill_wall_overlap": "18%", + "bridge_flow": "0.85", + "resolution": "0.0125", + "elefant_foot_compensation": "0.1", + "compatible_printers": [ + "RatRig V-Core 4 300 0.5 nozzle", + "RatRig V-Core 4 400 0.5 nozzle", + "RatRig V-Core 4 500 0.5 nozzle" + ] +} diff --git a/resources/profiles/Ratrig/process/0.25mm Speed @RatRig V-Core 4 0.6.json b/resources/profiles/Ratrig/process/0.25mm Speed @RatRig V-Core 4 0.6.json new file mode 100644 index 0000000000..1ff1df93c8 --- /dev/null +++ b/resources/profiles/Ratrig/process/0.25mm Speed @RatRig V-Core 4 0.6.json @@ -0,0 +1,60 @@ +{ + "type": "process", + "setting_id": "GP006", + "name": "0.25mm Speed @RatRig V-Core 4 0.6", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_ratrig_common", + "layer_height": "0.25", + "inital_layer_height": "0.3", + "wall_count": "2", + "top_shell_layers": "3", + "bottom_shell_layers": "2", + "top_shell_thickness": "0", + "sparse_infill_density": "10%", + "infill_anchor": "600%", + "infill_anchor_max": "5", + "infill_combination": "1", + "support_threshold_angle": "65", + "support_bottom_z_distance": "0.2", + "support_on_build_plate_only": "1", + "support_object_xy_distance": "60%", + "inner_wall_speed": "400", + "small_perimeter_speed": "350", + "outer_wall_speed": "400", + "sparse_infill_speed": "500", + "internal_solid_infill_speed": "100%", + "top_surface_speed": "100%", + "support_speed": "50", + "support_interface_speed": "100%", + "bridge_speed": "150", + "gap_infill_speed": "200", + "travel_speed": "600", + "initial_layer_speed": "200", + "outer_wall_acceleration": "8000", + "inner_wall_acceleration": "10000", + "top_surface_acceleration": "0", + "internal_solid_infill_acceleration": "0", + "sparse_infill_acceleration": "10000", + "bridge_acceleration": "5000", + "initial_layer_acceleration": "2500", + "travel_acceleration": "15000", + "default_acceleration": "10000", + "line_width": "0.45", + "initial_layer_line_width": "0.5", + "inner_wall_line_width": "0.45", + "outer_wall_line_width": "0.45", + "sparse_infill_line_width": "0.45", + "internal_solid_infill_line_width": "0.45", + "top_surface_line_width": "0.45", + "support_line_width": "0.45", + "infill_wall_overlap": "18%", + "bridge_flow": "0.85", + "resolution": "0.0125", + "elefant_foot_compensation": "0.1", + "compatible_printers": [ + "RatRig V-Core 4 300 0.6 nozzle", + "RatRig V-Core 4 400 0.6 nozzle", + "RatRig V-Core 4 500 0.6 nozzle" + ] +} diff --git a/resources/profiles/Ratrig/process/0.25mm Speed @RatRig V-Core 4 HYBRID 0.4.json b/resources/profiles/Ratrig/process/0.25mm Speed @RatRig V-Core 4 HYBRID 0.4.json new file mode 100644 index 0000000000..c277f10ff3 --- /dev/null +++ b/resources/profiles/Ratrig/process/0.25mm Speed @RatRig V-Core 4 HYBRID 0.4.json @@ -0,0 +1,60 @@ +{ + "type": "process", + "setting_id": "GP006", + "name": "0.25mm Speed @RatRig V-Core 4 HYBRID 0.4", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_ratrig_common", + "layer_height": "0.25", + "inital_layer_height": "0.3", + "wall_count": "2", + "top_shell_layers": "3", + "bottom_shell_layers": "2", + "top_shell_thickness": "0", + "sparse_infill_density": "10%", + "infill_anchor": "600%", + "infill_anchor_max": "5", + "infill_combination": "1", + "support_threshold_angle": "65", + "support_bottom_z_distance": "0.2", + "support_on_build_plate_only": "1", + "support_object_xy_distance": "60%", + "inner_wall_speed": "500", + "small_perimeter_speed": "500", + "outer_wall_speed": "500", + "sparse_infill_speed": "500", + "internal_solid_infill_speed": "100%", + "top_surface_speed": "100%", + "support_speed": "50", + "support_interface_speed": "100%", + "bridge_speed": "150", + "gap_infill_speed": "200", + "travel_speed": "800", + "initial_layer_speed": "200", + "outer_wall_acceleration": "15000", + "inner_wall_acceleration": "20000", + "top_surface_acceleration": "0", + "internal_solid_infill_acceleration": "0", + "sparse_infill_acceleration": "20000", + "bridge_acceleration": "5000", + "initial_layer_acceleration": "2500", + "travel_acceleration": "10000", + "default_acceleration": "20000", + "line_width": "0.45", + "initial_layer_line_width": "0.5", + "inner_wall_line_width": "0.45", + "outer_wall_line_width": "0.45", + "sparse_infill_line_width": "0.45", + "internal_solid_infill_line_width": "0.45", + "top_surface_line_width": "0.45", + "support_line_width": "0.45", + "infill_wall_overlap": "18%", + "bridge_flow": "0.85", + "resolution": "0.0125", + "elefant_foot_compensation": "0.1", + "compatible_printers": [ + "RatRig V-Core 4 HYBRID 300 0.4 nozzle", + "RatRig V-Core 4 HYBRID 400 0.4 nozzle", + "RatRig V-Core 4 HYBRID 500 0.4 nozzle" + ] +} diff --git a/resources/profiles/Ratrig/process/0.25mm Speed @RatRig V-Core 4 HYBRID 0.5.json b/resources/profiles/Ratrig/process/0.25mm Speed @RatRig V-Core 4 HYBRID 0.5.json new file mode 100644 index 0000000000..d9351ba3b1 --- /dev/null +++ b/resources/profiles/Ratrig/process/0.25mm Speed @RatRig V-Core 4 HYBRID 0.5.json @@ -0,0 +1,60 @@ +{ + "type": "process", + "setting_id": "GP006", + "name": "0.25mm Speed @RatRig V-Core 4 HYBRID 0.5", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_ratrig_common", + "layer_height": "0.25", + "inital_layer_height": "0.3", + "wall_count": "2", + "top_shell_layers": "3", + "bottom_shell_layers": "2", + "top_shell_thickness": "0", + "sparse_infill_density": "10%", + "infill_anchor": "600%", + "infill_anchor_max": "5", + "infill_combination": "1", + "support_threshold_angle": "65", + "support_bottom_z_distance": "0.2", + "support_on_build_plate_only": "1", + "support_object_xy_distance": "60%", + "inner_wall_speed": "500", + "small_perimeter_speed": "500", + "outer_wall_speed": "500", + "sparse_infill_speed": "500", + "internal_solid_infill_speed": "100%", + "top_surface_speed": "100%", + "support_speed": "50", + "support_interface_speed": "100%", + "bridge_speed": "150", + "gap_infill_speed": "200", + "travel_speed": "800", + "initial_layer_speed": "200", + "outer_wall_acceleration": "15000", + "inner_wall_acceleration": "20000", + "top_surface_acceleration": "0", + "internal_solid_infill_acceleration": "0", + "sparse_infill_acceleration": "20000", + "bridge_acceleration": "5000", + "initial_layer_acceleration": "2500", + "travel_acceleration": "10000", + "default_acceleration": "20000", + "line_width": "0.45", + "initial_layer_line_width": "0.5", + "inner_wall_line_width": "0.45", + "outer_wall_line_width": "0.45", + "sparse_infill_line_width": "0.45", + "internal_solid_infill_line_width": "0.45", + "top_surface_line_width": "0.45", + "support_line_width": "0.45", + "infill_wall_overlap": "18%", + "bridge_flow": "0.85", + "resolution": "0.0125", + "elefant_foot_compensation": "0.1", + "compatible_printers": [ + "RatRig V-Core 4 HYBRID 300 0.5 nozzle", + "RatRig V-Core 4 HYBRID 400 0.5 nozzle", + "RatRig V-Core 4 HYBRID 500 0.5 nozzle" + ] +} diff --git a/resources/profiles/Ratrig/process/0.25mm Speed @RatRig V-Core 4 HYBRID 0.6.json b/resources/profiles/Ratrig/process/0.25mm Speed @RatRig V-Core 4 HYBRID 0.6.json new file mode 100644 index 0000000000..00d6c2113f --- /dev/null +++ b/resources/profiles/Ratrig/process/0.25mm Speed @RatRig V-Core 4 HYBRID 0.6.json @@ -0,0 +1,60 @@ +{ + "type": "process", + "setting_id": "GP006", + "name": "0.25mm Speed @RatRig V-Core 4 HYBRID 0.6", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_ratrig_common", + "layer_height": "0.25", + "inital_layer_height": "0.3", + "wall_count": "2", + "top_shell_layers": "3", + "bottom_shell_layers": "2", + "top_shell_thickness": "0", + "sparse_infill_density": "10%", + "infill_anchor": "600%", + "infill_anchor_max": "5", + "infill_combination": "1", + "support_threshold_angle": "65", + "support_bottom_z_distance": "0.2", + "support_on_build_plate_only": "1", + "support_object_xy_distance": "60%", + "inner_wall_speed": "500", + "small_perimeter_speed": "500", + "outer_wall_speed": "500", + "sparse_infill_speed": "500", + "internal_solid_infill_speed": "100%", + "top_surface_speed": "100%", + "support_speed": "50", + "support_interface_speed": "100%", + "bridge_speed": "150", + "gap_infill_speed": "200", + "travel_speed": "800", + "initial_layer_speed": "200", + "outer_wall_acceleration": "15000", + "inner_wall_acceleration": "20000", + "top_surface_acceleration": "0", + "internal_solid_infill_acceleration": "0", + "sparse_infill_acceleration": "20000", + "bridge_acceleration": "5000", + "initial_layer_acceleration": "2500", + "travel_acceleration": "10000", + "default_acceleration": "20000", + "line_width": "0.45", + "initial_layer_line_width": "0.5", + "inner_wall_line_width": "0.45", + "outer_wall_line_width": "0.45", + "sparse_infill_line_width": "0.45", + "internal_solid_infill_line_width": "0.45", + "top_surface_line_width": "0.45", + "support_line_width": "0.45", + "infill_wall_overlap": "18%", + "bridge_flow": "0.85", + "resolution": "0.0125", + "elefant_foot_compensation": "0.1", + "compatible_printers": [ + "RatRig V-Core 4 HYBRID 300 0.6 nozzle", + "RatRig V-Core 4 HYBRID 400 0.6 nozzle", + "RatRig V-Core 4 HYBRID 500 0.6 nozzle" + ] +} diff --git a/resources/profiles/Ratrig/process/0.28mm Extra Draft @RatRig.json b/resources/profiles/Ratrig/process/0.28mm Extra Draft @RatRig.json index 7bca592548..e0935d7fe5 100644 --- a/resources/profiles/Ratrig/process/0.28mm Extra Draft @RatRig.json +++ b/resources/profiles/Ratrig/process/0.28mm Extra Draft @RatRig.json @@ -8,5 +8,14 @@ "layer_height": "0.28", "top_surface_line_width": "0.45", "bottom_shell_layers": "3", - "top_shell_layers": "4" + "top_shell_layers": "4", + "compatible_printers": [ + "RatRig V-Core 3 200 0.4 nozzle", + "RatRig V-Core 3 300 0.4 nozzle", + "RatRig V-Core 3 400 0.4 nozzle", + "RatRig V-Core 3 500 0.4 nozzle", + "RatRig V-Minion 0.4 nozzle", + "RatRig V-Cast 0.4 nozzle", + "RatRig V-Cast 0.6 nozzle" + ] } diff --git a/resources/profiles/Ratrig/process/0.30mm Big @RatRig V-Core 4 0.6.json b/resources/profiles/Ratrig/process/0.30mm Big @RatRig V-Core 4 0.6.json new file mode 100644 index 0000000000..70df1a4edb --- /dev/null +++ b/resources/profiles/Ratrig/process/0.30mm Big @RatRig V-Core 4 0.6.json @@ -0,0 +1,67 @@ +{ + "type": "process", + "setting_id": "GP006", + "name": "0.30mm Big @RatRig V-Core 4 0.6", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_ratrig_common", + "layer_height": "0.3", + "inital_layer_height": "0.35", + "wall_count": "3", + "top_shell_layers": "4", + "bottom_shell_layers": "3", + "top_shell_thickness": "0", + "sparse_infill_density": "25%", + "infill_anchor": "600%", + "infill_anchor_max": "5", + "infill_combination": "1", + "skirt_loops": "2", + "skirt_distance": "10", + "support_threshold_angle": "65", + "support_bottom_z_distance": "0.2", + "support_on_build_plate_only": "1", + "support_object_xy_distance": "60%", + "inner_wall_speed": "350", + "small_perimeter_speed": "250", + "outer_wall_speed": "250", + "sparse_infill_speed": "400", + "internal_solid_infill_speed": "100%", + "top_surface_speed": "100%", + "support_speed": "50", + "support_interface_speed": "100%", + "bridge_speed": "50", + "gap_infill_speed": "200", + "travel_speed": "500", + "initial_layer_speed": "50", + "enable_overhang_speed": "1", + "overhang_1_4_speed": "20", + "overhang_2_4_speed": "45", + "overhang_3_4_speed": "80", + "overhang_4_4_speed": "100", + "outer_wall_acceleration": "4000", + "inner_wall_acceleration": "8000", + "top_surface_acceleration": "0", + "internal_solid_infill_acceleration": "0", + "sparse_infill_acceleration": "10000", + "bridge_acceleration": "2500", + "initial_layer_acceleration": "1500", + "travel_acceleration": "10000", + "default_acceleration": "10000", + "line_width": "0.65", + "initial_layer_line_width": "0.84", + "inner_wall_line_width": "0.65", + "outer_wall_line_width": "0.65", + "sparse_infill_line_width": "0.65", + "internal_solid_infill_line_width": "0.65", + "top_surface_line_width": "0.65", + "support_line_width": "0.65", + "infill_wall_overlap": "18%", + "bridge_flow": "0.85", + "resolution": "0.0125", + "elefant_foot_compensation": "0.1", + "compatible_printers": [ + "RatRig V-Core 4 300 0.6 nozzle", + "RatRig V-Core 4 400 0.6 nozzle", + "RatRig V-Core 4 500 0.6 nozzle" + ] +} diff --git a/resources/profiles/Ratrig/process/0.30mm Big @RatRig V-Core 4 HYBRID 0.6.json b/resources/profiles/Ratrig/process/0.30mm Big @RatRig V-Core 4 HYBRID 0.6.json new file mode 100644 index 0000000000..0bbc5f062e --- /dev/null +++ b/resources/profiles/Ratrig/process/0.30mm Big @RatRig V-Core 4 HYBRID 0.6.json @@ -0,0 +1,67 @@ +{ + "type": "process", + "setting_id": "GP006", + "name": "0.30mm Big @RatRig V-Core 4 HYBRID 0.6", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_ratrig_common", + "layer_height": "0.3", + "inital_layer_height": "0.35", + "wall_count": "3", + "top_shell_layers": "4", + "bottom_shell_layers": "3", + "top_shell_thickness": "0", + "sparse_infill_density": "25%", + "infill_anchor": "600%", + "infill_anchor_max": "5", + "infill_combination": "1", + "skirt_loops": "2", + "skirt_distance": "10", + "support_threshold_angle": "65", + "support_bottom_z_distance": "0.2", + "support_on_build_plate_only": "1", + "support_object_xy_distance": "60%", + "inner_wall_speed": "300", + "small_perimeter_speed": "250", + "outer_wall_speed": "250", + "sparse_infill_speed": "400", + "internal_solid_infill_speed": "100%", + "top_surface_speed": "100%", + "support_speed": "50", + "support_interface_speed": "100%", + "bridge_speed": "50", + "gap_infill_speed": "200", + "travel_speed": "600", + "initial_layer_speed": "80", + "enable_overhang_speed": "1", + "overhang_1_4_speed": "20", + "overhang_2_4_speed": "45", + "overhang_3_4_speed": "80", + "overhang_4_4_speed": "100", + "outer_wall_acceleration": "8000", + "inner_wall_acceleration": "10000", + "top_surface_acceleration": "0", + "internal_solid_infill_acceleration": "0", + "sparse_infill_acceleration": "15000", + "bridge_acceleration": "5000", + "initial_layer_acceleration": "2500", + "travel_acceleration": "15000", + "default_acceleration": "15000", + "line_width": "0.65", + "initial_layer_line_width": "0.84", + "inner_wall_line_width": "0.65", + "outer_wall_line_width": "0.65", + "sparse_infill_line_width": "0.65", + "internal_solid_infill_line_width": "0.65", + "top_surface_line_width": "0.65", + "support_line_width": "0.65", + "infill_wall_overlap": "18%", + "bridge_flow": "0.85", + "resolution": "0.0125", + "elefant_foot_compensation": "0.1", + "compatible_printers": [ + "RatRig V-Core 4 HYBRID 300 0.6 nozzle", + "RatRig V-Core 4 HYBRID 400 0.6 nozzle", + "RatRig V-Core 4 HYBRID 500 0.6 nozzle" + ] +} diff --git a/resources/profiles/Ratrig/process/fdm_process_ratrig_common.json b/resources/profiles/Ratrig/process/fdm_process_ratrig_common.json index 6cba8b7d31..e5da6affa1 100644 --- a/resources/profiles/Ratrig/process/fdm_process_ratrig_common.json +++ b/resources/profiles/Ratrig/process/fdm_process_ratrig_common.json @@ -25,7 +25,6 @@ "bridge_no_support": "0", "draft_shield": "disabled", "elefant_foot_compensation": "0", - "outer_wall_line_width": "0.4", "wall_infill_order": "inner wall/outer wall/infill", "line_width": "0.4", @@ -34,7 +33,7 @@ "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "500", "initial_layer_line_width": "0.45", - "initial_layer_print_height": "0.2", + "inital_layer_height": "0.2", "infill_combination": "0", "sparse_infill_line_width": "0.4", "infill_wall_overlap": "25%", diff --git a/resources/profiles/SecKit.json b/resources/profiles/SecKit.json index 1b4f846c01..ecacdd31fb 100644 --- a/resources/profiles/SecKit.json +++ b/resources/profiles/SecKit.json @@ -1,6 +1,6 @@ { "name": "SecKit", - "version": "02.01.00.00", + "version": "02.01.00.01", "force_update": "0", "description": "SecKit configurations", "machine_model_list": [ diff --git a/resources/profiles/Snapmaker.json b/resources/profiles/Snapmaker.json index e063a9c7e1..e795fc8cb1 100644 --- a/resources/profiles/Snapmaker.json +++ b/resources/profiles/Snapmaker.json @@ -1,6 +1,6 @@ { "name": "Snapmaker", - "version": "01.06.03", + "version": "02.01.00.01", "force_update": "0", "description": "Snapmaker configurations", "machine_model_list": [ diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PET @Dual.json b/resources/profiles/Snapmaker/filament/Snapmaker PET @Dual.json index a77525a0e9..801cb64b05 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PET @Dual.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PET @Dual.json @@ -5,5 +5,7 @@ "name": "Snapmaker PET @Dual", "setting_id": "145337790", "inherits": "Snapmaker Dual PET @base", - "compatible_printers": "" + "compatible_printers": [ + "Snapmaker A250 Dual (0.8 nozzle)" + ] } \ No newline at end of file diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PET @base.json b/resources/profiles/Snapmaker/filament/Snapmaker PET @base.json index fd188706aa..47594a10d7 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PET @base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PET @base.json @@ -4,6 +4,5 @@ "instantiation": "false", "name": "Snapmaker PET @base", "filament_id": "2549587591", - "inherits": "fdm_filament_pet", - "compatible_printers": "" + "inherits": "fdm_filament_pet" } \ No newline at end of file diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PVA @0.2 nozzle.json b/resources/profiles/Snapmaker/filament/Snapmaker PVA @0.2 nozzle.json index 521a5d53d5..18b8430d15 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PVA @0.2 nozzle.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PVA @0.2 nozzle.json @@ -4,5 +4,8 @@ "instantiation": "true", "name": "Snapmaker PVA @0.2 nozzle", "setting_id": "1131479069", - "inherits": "Snapmaker PVA @base" + "inherits": "Snapmaker PVA @base", + "compatible_printers": [ + "Snapmaker A250 (0.2 nozzle)" + ] } \ No newline at end of file diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PVA.json b/resources/profiles/Snapmaker/filament/Snapmaker PVA.json index b49e2cfb4c..0a44bae8ee 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PVA.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PVA.json @@ -5,5 +5,30 @@ "name": "Snapmaker PVA", "setting_id": "3741816734", "inherits": "Snapmaker PVA @base", - "compatible_printers": "" + "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/process/0.08 Extra Fine @Snapmaker (0.4 nozzle).json b/resources/profiles/Snapmaker/process/0.08 Extra Fine @Snapmaker (0.4 nozzle).json index dd1be72edb..a081fe766e 100644 --- a/resources/profiles/Snapmaker/process/0.08 Extra Fine @Snapmaker (0.4 nozzle).json +++ b/resources/profiles/Snapmaker/process/0.08 Extra Fine @Snapmaker (0.4 nozzle).json @@ -29,7 +29,7 @@ "ironing_flow": "8%", "layer_height": "0.08", "initial_layer_print_height": "0.1", - "support_threshold_angle": "30", + "support_threshold_angle": "15", "top_shell_layers": "9", "gap_infill_speed": "85", "initial_layer_infill_speed": "65", diff --git a/resources/profiles/Snapmaker/process/0.08 Extra Fine @Snapmaker Artisan (0.4 nozzle).json b/resources/profiles/Snapmaker/process/0.08 Extra Fine @Snapmaker Artisan (0.4 nozzle).json index 3b160147bd..22bdb6cb08 100644 --- a/resources/profiles/Snapmaker/process/0.08 Extra Fine @Snapmaker Artisan (0.4 nozzle).json +++ b/resources/profiles/Snapmaker/process/0.08 Extra Fine @Snapmaker Artisan (0.4 nozzle).json @@ -14,7 +14,7 @@ "ironing_flow": "8%", "layer_height": "0.08", "initial_layer_print_height": "0.1", - "support_threshold_angle": "30", + "support_threshold_angle": "15", "top_shell_layers": "5", "initial_layer_infill_speed": "80", "inner_wall_speed": "145", diff --git a/resources/profiles/Snapmaker/process/0.08 Extra Fine @Snapmaker J1 (0.4 nozzle).json b/resources/profiles/Snapmaker/process/0.08 Extra Fine @Snapmaker J1 (0.4 nozzle).json index c93c20378f..eaf51d4cd6 100644 --- a/resources/profiles/Snapmaker/process/0.08 Extra Fine @Snapmaker J1 (0.4 nozzle).json +++ b/resources/profiles/Snapmaker/process/0.08 Extra Fine @Snapmaker J1 (0.4 nozzle).json @@ -14,7 +14,7 @@ "ironing_flow": "8%", "layer_height": "0.08", "initial_layer_print_height": "0.1", - "support_threshold_angle": "30", + "support_threshold_angle": "15", "top_shell_layers": "5", "initial_layer_infill_speed": "80", "inner_wall_speed": "145", diff --git a/resources/profiles/Snapmaker/process/0.12 Fine @Snapmaker (0.4 nozzle).json b/resources/profiles/Snapmaker/process/0.12 Fine @Snapmaker (0.4 nozzle).json index 554733174f..24216b3c5c 100644 --- a/resources/profiles/Snapmaker/process/0.12 Fine @Snapmaker (0.4 nozzle).json +++ b/resources/profiles/Snapmaker/process/0.12 Fine @Snapmaker (0.4 nozzle).json @@ -30,7 +30,7 @@ "top_shell_layers": "5", "top_shell_thickness": "0.6", "bridge_flow": "1", - "support_threshold_angle": "30", + "support_threshold_angle": "20", "initial_layer_infill_speed": "65", "outer_wall_speed": "75", "inner_wall_speed": "120", diff --git a/resources/profiles/Snapmaker/process/0.12 Fine @Snapmaker Artisan (0.4 nozzle).json b/resources/profiles/Snapmaker/process/0.12 Fine @Snapmaker Artisan (0.4 nozzle).json index 1626107191..41cfa41d21 100644 --- a/resources/profiles/Snapmaker/process/0.12 Fine @Snapmaker Artisan (0.4 nozzle).json +++ b/resources/profiles/Snapmaker/process/0.12 Fine @Snapmaker Artisan (0.4 nozzle).json @@ -14,7 +14,7 @@ "top_shell_layers": "5", "top_shell_thickness": "0.6", "bridge_flow": "1", - "support_threshold_angle": "30", + "support_threshold_angle": "20", "initial_layer_infill_speed": "80", "inner_wall_speed": "145", "internal_solid_infill_speed": "150" diff --git a/resources/profiles/Snapmaker/process/0.12 Fine @Snapmaker J1 (0.4 nozzle).json b/resources/profiles/Snapmaker/process/0.12 Fine @Snapmaker J1 (0.4 nozzle).json index be2dd48aff..1ff7629339 100644 --- a/resources/profiles/Snapmaker/process/0.12 Fine @Snapmaker J1 (0.4 nozzle).json +++ b/resources/profiles/Snapmaker/process/0.12 Fine @Snapmaker J1 (0.4 nozzle).json @@ -14,7 +14,7 @@ "top_shell_layers": "5", "top_shell_thickness": "0.6", "bridge_flow": "1", - "support_threshold_angle": "30", + "support_threshold_angle": "20", "initial_layer_infill_speed": "80", "inner_wall_speed": "145", "internal_solid_infill_speed": "150" diff --git a/resources/profiles/Snapmaker/process/0.16 Optimal @Snapmaker (0.4 nozzle).json b/resources/profiles/Snapmaker/process/0.16 Optimal @Snapmaker (0.4 nozzle).json index e8b091eb7d..119ae1e3e5 100644 --- a/resources/profiles/Snapmaker/process/0.16 Optimal @Snapmaker (0.4 nozzle).json +++ b/resources/profiles/Snapmaker/process/0.16 Optimal @Snapmaker (0.4 nozzle).json @@ -29,7 +29,7 @@ "bottom_shell_layers": "4", "top_shell_thickness": "0.6", "bridge_flow": "1", - "support_threshold_angle": "30", + "support_threshold_angle": "25", "initial_layer_infill_speed": "65", "outer_wall_speed": "80", "inner_wall_speed": "100", diff --git a/resources/profiles/Snapmaker/process/0.16 Optimal @Snapmaker Artisan (0.4 nozzle).json b/resources/profiles/Snapmaker/process/0.16 Optimal @Snapmaker Artisan (0.4 nozzle).json index ea9ab92b4b..e2547e522b 100644 --- a/resources/profiles/Snapmaker/process/0.16 Optimal @Snapmaker Artisan (0.4 nozzle).json +++ b/resources/profiles/Snapmaker/process/0.16 Optimal @Snapmaker Artisan (0.4 nozzle).json @@ -14,7 +14,7 @@ "top_shell_layers": "5", "top_shell_thickness": "0.6", "bridge_flow": "1", - "support_threshold_angle": "30", + "support_threshold_angle": "25", "initial_layer_infill_speed": "80", "inner_wall_speed": "145" } \ No newline at end of file diff --git a/resources/profiles/Snapmaker/process/0.16 Optimal @Snapmaker J1 (0.4 nozzle).json b/resources/profiles/Snapmaker/process/0.16 Optimal @Snapmaker J1 (0.4 nozzle).json index d303e2e5da..77a170ef61 100644 --- a/resources/profiles/Snapmaker/process/0.16 Optimal @Snapmaker J1 (0.4 nozzle).json +++ b/resources/profiles/Snapmaker/process/0.16 Optimal @Snapmaker J1 (0.4 nozzle).json @@ -14,7 +14,7 @@ "top_shell_layers": "5", "top_shell_thickness": "0.6", "bridge_flow": "1", - "support_threshold_angle": "30", + "support_threshold_angle": "25", "initial_layer_infill_speed": "80", "inner_wall_speed": "145" } \ No newline at end of file diff --git a/resources/profiles/Snapmaker/process/0.24 Draft @Snapmaker (0.4 nozzle).json b/resources/profiles/Snapmaker/process/0.24 Draft @Snapmaker (0.4 nozzle).json index 8f94f6c47d..17089131eb 100644 --- a/resources/profiles/Snapmaker/process/0.24 Draft @Snapmaker (0.4 nozzle).json +++ b/resources/profiles/Snapmaker/process/0.24 Draft @Snapmaker (0.4 nozzle).json @@ -28,7 +28,7 @@ "top_surface_line_width": "0.45", "top_shell_layers": "3", "top_shell_thickness": "0.6", - "support_threshold_angle": "30", + "support_threshold_angle": "35", "initial_layer_infill_speed": "65", "outer_wall_speed": "90", "inner_wall_speed": "100", diff --git a/resources/profiles/Snapmaker/process/0.24 Draft @Snapmaker Artisan (0.4 nozzle).json b/resources/profiles/Snapmaker/process/0.24 Draft @Snapmaker Artisan (0.4 nozzle).json index c8486952a0..43947ed427 100644 --- a/resources/profiles/Snapmaker/process/0.24 Draft @Snapmaker Artisan (0.4 nozzle).json +++ b/resources/profiles/Snapmaker/process/0.24 Draft @Snapmaker Artisan (0.4 nozzle).json @@ -13,6 +13,6 @@ "top_surface_line_width": "0.45", "top_shell_layers": "3", "top_shell_thickness": "0.6", - "support_threshold_angle": "30", + "support_threshold_angle": "35", "initial_layer_infill_speed": "65" } \ No newline at end of file diff --git a/resources/profiles/Snapmaker/process/0.24 Draft @Snapmaker J1 (0.4 nozzle).json b/resources/profiles/Snapmaker/process/0.24 Draft @Snapmaker J1 (0.4 nozzle).json index 0fd04fa649..23877e116c 100644 --- a/resources/profiles/Snapmaker/process/0.24 Draft @Snapmaker J1 (0.4 nozzle).json +++ b/resources/profiles/Snapmaker/process/0.24 Draft @Snapmaker J1 (0.4 nozzle).json @@ -13,6 +13,6 @@ "top_surface_line_width": "0.45", "top_shell_layers": "3", "top_shell_thickness": "0.6", - "support_threshold_angle": "30", + "support_threshold_angle": "35", "initial_layer_infill_speed": "65" } \ No newline at end of file diff --git a/resources/profiles/Snapmaker/process/0.25 Benchy @Snapmaker Artisan (0.4 nozzle).json b/resources/profiles/Snapmaker/process/0.25 Benchy @Snapmaker Artisan (0.4 nozzle).json index ab306e914b..6cb96ddab1 100644 --- a/resources/profiles/Snapmaker/process/0.25 Benchy @Snapmaker Artisan (0.4 nozzle).json +++ b/resources/profiles/Snapmaker/process/0.25 Benchy @Snapmaker Artisan (0.4 nozzle).json @@ -31,7 +31,7 @@ "ensure_vertical_shell_thickness": "none", "filename_format": "ArtisanBenchy_{print_time}.gcode", "sparse_infill_density": "10%", - "sparse_infill_pattern": "crosshatch", + "sparse_infill_pattern": "alignedrectilinear", "wall_generator": "classic", "seam_position": "nearest", "wall_loops": "2", diff --git a/resources/profiles/Snapmaker/process/0.25 Benchy @Snapmaker J1 (0.4 nozzle).json b/resources/profiles/Snapmaker/process/0.25 Benchy @Snapmaker J1 (0.4 nozzle).json index 3e8f9db16a..da364c6b57 100644 --- a/resources/profiles/Snapmaker/process/0.25 Benchy @Snapmaker J1 (0.4 nozzle).json +++ b/resources/profiles/Snapmaker/process/0.25 Benchy @Snapmaker J1 (0.4 nozzle).json @@ -30,7 +30,7 @@ "ensure_vertical_shell_thickness": "none", "filename_format": "J1Benchy_{print_time}.gcode", "sparse_infill_density": "10%", - "sparse_infill_pattern": "crosshatch", + "sparse_infill_pattern": "alignedrectilinear", "wall_generator": "classic", "seam_position": "nearest", "wall_loops": "2", diff --git a/resources/profiles/Snapmaker/process/0.28 Extra Draft @Snapmaker (0.4 nozzle).json b/resources/profiles/Snapmaker/process/0.28 Extra Draft @Snapmaker (0.4 nozzle).json index 8e9da23b21..1fa3b0654e 100644 --- a/resources/profiles/Snapmaker/process/0.28 Extra Draft @Snapmaker (0.4 nozzle).json +++ b/resources/profiles/Snapmaker/process/0.28 Extra Draft @Snapmaker (0.4 nozzle).json @@ -28,7 +28,7 @@ "top_surface_line_width": "0.45", "top_shell_layers": "3", "top_shell_thickness": "0.6", - "support_threshold_angle": "30", + "support_threshold_angle": "40", "wall_loops": "2", "initial_layer_infill_speed": "65", "outer_wall_speed": "85", diff --git a/resources/profiles/Snapmaker/process/0.28 Extra Draft @Snapmaker Artisan (0.4 nozzle).json b/resources/profiles/Snapmaker/process/0.28 Extra Draft @Snapmaker Artisan (0.4 nozzle).json index 10d2759083..0780fd81b3 100644 --- a/resources/profiles/Snapmaker/process/0.28 Extra Draft @Snapmaker Artisan (0.4 nozzle).json +++ b/resources/profiles/Snapmaker/process/0.28 Extra Draft @Snapmaker Artisan (0.4 nozzle).json @@ -13,7 +13,7 @@ "top_surface_line_width": "0.45", "top_shell_layers": "3", "top_shell_thickness": "0.6", - "support_threshold_angle": "30", + "support_threshold_angle": "40", "wall_loops": "2", "initial_layer_infill_speed": "65" } \ No newline at end of file diff --git a/resources/profiles/Snapmaker/process/0.28 Extra Draft @Snapmaker J1 (0.4 nozzle).json b/resources/profiles/Snapmaker/process/0.28 Extra Draft @Snapmaker J1 (0.4 nozzle).json index 2060ea0211..b18c01c857 100644 --- a/resources/profiles/Snapmaker/process/0.28 Extra Draft @Snapmaker J1 (0.4 nozzle).json +++ b/resources/profiles/Snapmaker/process/0.28 Extra Draft @Snapmaker J1 (0.4 nozzle).json @@ -13,7 +13,7 @@ "top_surface_line_width": "0.45", "top_shell_layers": "3", "top_shell_thickness": "0.6", - "support_threshold_angle": "30", + "support_threshold_angle": "40", "wall_loops": "2", "initial_layer_infill_speed": "65" } \ No newline at end of file diff --git a/resources/profiles/Snapmaker/process/fdm_process_common.json b/resources/profiles/Snapmaker/process/fdm_process_common.json index e894e7f0d2..f35f39ffb1 100644 --- a/resources/profiles/Snapmaker/process/fdm_process_common.json +++ b/resources/profiles/Snapmaker/process/fdm_process_common.json @@ -56,14 +56,14 @@ "print_flow_ratio": "1", "wall_loops": "3", "detect_thin_wall": "0", - "top_surface_pattern": "monotonicline", + "top_surface_pattern": "monotonic", "top_shell_layers": "4", "top_shell_thickness": "0.8", "bottom_surface_pattern": "monotonic", "bottom_shell_layers": "3", "bottom_shell_thickness": "0", "sparse_infill_density": "15%", - "sparse_infill_pattern": "crosshatch", + "sparse_infill_pattern": "cubic", "filter_out_gap_fill": "0", "infill_wall_overlap": "15%", "infill_direction": "45", diff --git a/resources/profiles/Sovol.json b/resources/profiles/Sovol.json index b356440482..000c72cc9e 100644 --- a/resources/profiles/Sovol.json +++ b/resources/profiles/Sovol.json @@ -1,7 +1,7 @@ { "name": "Sovol", "url": "", - "version": "02.01.00.00", + "version": "02.01.00.01", "force_update": "0", "description": "Sovol configurations", "machine_model_list": [ @@ -114,6 +114,10 @@ { "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": [ diff --git a/resources/profiles/Sovol/machine/Sovol SV08 0.2 nozzle.json b/resources/profiles/Sovol/machine/Sovol SV08 0.2 nozzle.json index 399df18ba4..2ee1d7a4d7 100644 --- a/resources/profiles/Sovol/machine/Sovol SV08 0.2 nozzle.json +++ b/resources/profiles/Sovol/machine/Sovol SV08 0.2 nozzle.json @@ -7,6 +7,7 @@ "inherits": "fdm_machine_common", "printer_model": "Sovol SV08", "default_print_profile": "0.10mm Standard @Sovol SV08 0.2 nozzle", + "printer_variant": "0.2", "nozzle_diameter": [ "0.2" ], diff --git a/resources/profiles/Sovol/machine/Sovol SV08 0.4 nozzle.json b/resources/profiles/Sovol/machine/Sovol SV08 0.4 nozzle.json index ad8664a355..7f2c1887dc 100644 --- a/resources/profiles/Sovol/machine/Sovol SV08 0.4 nozzle.json +++ b/resources/profiles/Sovol/machine/Sovol SV08 0.4 nozzle.json @@ -7,6 +7,7 @@ "inherits": "fdm_machine_common", "printer_model": "Sovol SV08", "default_print_profile": "0.20mm Standard @Sovol SV08", + "printer_variant": "0.4", "nozzle_diameter": [ "0.4" ], diff --git a/resources/profiles/Sovol/machine/Sovol SV08 0.6 nozzle.json b/resources/profiles/Sovol/machine/Sovol SV08 0.6 nozzle.json index 3409885478..fec88e538b 100644 --- a/resources/profiles/Sovol/machine/Sovol SV08 0.6 nozzle.json +++ b/resources/profiles/Sovol/machine/Sovol SV08 0.6 nozzle.json @@ -7,6 +7,7 @@ "inherits": "fdm_machine_common", "printer_model": "Sovol SV08", "default_print_profile": "0.30mm Standard @Sovol SV08 0.6 nozzle", + "printer_variant": "0.6", "nozzle_diameter": [ "0.6" ], diff --git a/resources/profiles/Sovol/machine/Sovol SV08 0.8 nozzle.json b/resources/profiles/Sovol/machine/Sovol SV08 0.8 nozzle.json index 0322f78053..2f0daf9b32 100644 --- a/resources/profiles/Sovol/machine/Sovol SV08 0.8 nozzle.json +++ b/resources/profiles/Sovol/machine/Sovol SV08 0.8 nozzle.json @@ -7,6 +7,7 @@ "inherits": "fdm_machine_common", "printer_model": "Sovol SV08", "default_print_profile": "0.20mm Standard @Sovol SV08 0.8 nozzle", + "printer_variant": "0.8", "nozzle_diameter": [ "0.8" ], diff --git a/resources/profiles/Sovol/process/0.20mm High-Speed @Sovol SV06.json b/resources/profiles/Sovol/process/0.20mm High-Speed @Sovol SV06.json new file mode 100644 index 0000000000..0c57b02b39 --- /dev/null +++ b/resources/profiles/Sovol/process/0.20mm High-Speed @Sovol SV06.json @@ -0,0 +1,116 @@ +{ + "type": "process", + "setting_id": "GP004", + "name": "0.20mm High-Speed @Sovol SV06", + "from": "system", + "inherits": "fdm_process_common", + "instantiation": "true", + "adaptive_layer_height": "1", + "reduce_crossing_wall": "0", + "layer_height": "0.20", + "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": "outer_only", + "brim_width": "5", + "brim_object_gap": "0", + "compatible_printers_condition": "", + "print_sequence": "by layer", + "default_acceleration": "2500", + "outer_wall_acceleration": "2500", + "top_surface_acceleration": "2500", + "bridge_no_support": "1", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.1", + "enable_arc_fitting": "0", + "outer_wall_line_width": "0.4", + "wall_infill_order": "inner wall/outer wall/infill", + "wall_sequence": "inner-outer-inner wall", + "line_width": "0.4", + "infill_direction": "45", + "sparse_infill_density": "10%", + "sparse_infill_pattern": "grid", + "initial_layer_acceleration": "500", + "travel_acceleration": "2500", + "inner_wall_acceleration": "2500", + "initial_layer_line_width": "0.5", + "initial_layer_print_height": "0.25", + "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": "10", + "inner_wall_line_width": "0.42", + "wall_loops": "3", + "print_settings_id": "", + "raft_layers": "0", + "seam_position": "aligned", + "skirt_distance": "3", + "skirt_height": "1", + "skirt_speed": "30", + "skirt_loops": "1", + "minimum_sparse_infill_area": "15", + "internal_solid_infill_line_width": "0.4", + "spiral_mode": "0", + "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.18", + "support_filament": "0", + "support_line_width": "0.4", + "support_interface_loop_pattern": "0", + "support_interface_filament": "0", + "support_interface_top_layers": "3", + "support_interface_bottom_layers": "-1", + "support_interface_spacing": "0.2", + "support_interface_pattern": "concentric", + "support_interface_speed": "100%", + "support_base_pattern": "hollow", + "support_base_pattern_spacing": "0.2", + "support_speed": "40", + "support_threshold_angle": "20", + "support_object_xy_distance": "60%", + "tree_support_branch_angle": "40", + "tree_support_wall_count": "0", + "detect_thin_wall": "1", + "top_surface_pattern": "monotonic", + "top_surface_line_width": "0.4", + "top_shell_layers": "4", + "top_shell_thickness": "0.8", + "initial_layer_speed": "20", + "initial_layer_infill_speed": "25", + "slow_down_layers": "3", + "outer_wall_speed": "100", + "inner_wall_speed": "150", + "internal_solid_infill_speed": "150", + "top_surface_speed": "100", + "gap_infill_speed": "80", + "sparse_infill_speed": "150", + "travel_speed": "150", + "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", + "compatible_printers": [ + "Sovol SV06 0.4 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Tronxy.json b/resources/profiles/Tronxy.json index 55fa64a864..4381ed9493 100644 --- a/resources/profiles/Tronxy.json +++ b/resources/profiles/Tronxy.json @@ -1,6 +1,6 @@ { "name": "Tronxy", - "version": "02.01.00.00", + "version": "02.01.00.01", "force_update": "0", "description": "Tronxy configurations", "machine_model_list": [ diff --git a/resources/profiles/TwoTrees.json b/resources/profiles/TwoTrees.json index 54408265be..710a7cc62e 100644 --- a/resources/profiles/TwoTrees.json +++ b/resources/profiles/TwoTrees.json @@ -1,6 +1,6 @@ { "name": "TwoTrees", - "version": "02.01.00.00", + "version": "02.01.00.01", "force_update": "1", "description": "TwoTrees configurations", "machine_model_list": [ diff --git a/resources/profiles/UltiMaker.json b/resources/profiles/UltiMaker.json index 840ebb17ee..eca199f40f 100644 --- a/resources/profiles/UltiMaker.json +++ b/resources/profiles/UltiMaker.json @@ -1,7 +1,7 @@ { "name": "UltiMaker", "url": "", - "version": "02.01.00.00", + "version": "02.01.00.01", "force_update": "0", "description": "UltiMaker configurations", "machine_model_list": [ diff --git a/resources/profiles/Vivedino.json b/resources/profiles/Vivedino.json index 40fdf10c16..a7c394d436 100644 --- a/resources/profiles/Vivedino.json +++ b/resources/profiles/Vivedino.json @@ -1,6 +1,6 @@ { "name": "Vivedino", - "version": "02.01.00.00", + "version": "02.01.00.01", "force_update": "0", "description": "Vivedino configurations", "machine_model_list": [ diff --git a/resources/profiles/Voron.json b/resources/profiles/Voron.json index 9e9083ecef..abeeb669ef 100644 --- a/resources/profiles/Voron.json +++ b/resources/profiles/Voron.json @@ -1,6 +1,6 @@ { "name": "Voron", - "version": "02.01.00.00", + "version": "02.01.00.01", "force_update": "0", "description": "Voron configurations", "machine_model_list": [ diff --git a/resources/profiles/Voxelab.json b/resources/profiles/Voxelab.json index b1a585d396..f1a4bf101a 100644 --- a/resources/profiles/Voxelab.json +++ b/resources/profiles/Voxelab.json @@ -1,7 +1,7 @@ { "name": "Voxelab", "url": "", - "version": "02.01.00.00", + "version": "02.01.00.01", "force_update": "0", "description": "Voxelab configurations", "machine_model_list": [ diff --git a/resources/profiles/Vzbot.json b/resources/profiles/Vzbot.json index 81b2611c5c..9257d30174 100644 --- a/resources/profiles/Vzbot.json +++ b/resources/profiles/Vzbot.json @@ -1,6 +1,6 @@ { "name": "Vzbot", - "version": "02.01.00.00", + "version": "02.01.00.01", "force_update": "0", "description": "Vzbot configurations", "machine_model_list": [ diff --git a/resources/profiles/Wanhao.json b/resources/profiles/Wanhao.json index c80b0ecf0d..b46fbc552e 100644 --- a/resources/profiles/Wanhao.json +++ b/resources/profiles/Wanhao.json @@ -1,6 +1,6 @@ { "name": "Wanhao", - "version": "02.01.00.00", + "version": "02.01.00.01", "force_update": "0", "description": "Wanhao configurations", "machine_model_list": [ diff --git a/resources/shaders/110/thumbnail.fs b/resources/shaders/110/thumbnail.fs index 4b269734ee..5a57674602 100644 --- a/resources/shaders/110/thumbnail.fs +++ b/resources/shaders/110/thumbnail.fs @@ -1,5 +1,6 @@ #version 110 +uniform bool ban_light; uniform vec4 uniform_color; uniform float emission_factor; @@ -12,5 +13,9 @@ void main() { if (world_pos.z < 0.0) discard; - gl_FragColor = vec4(vec3(intensity.y) + uniform_color.rgb * (intensity.x + emission_factor), uniform_color.a); + if(ban_light){ + gl_FragColor = uniform_color; + } else{ + gl_FragColor = vec4(vec3(intensity.y) + uniform_color.rgb * (intensity.x + emission_factor), uniform_color.a); + } } diff --git a/resources/shaders/140/thumbnail.fs b/resources/shaders/140/thumbnail.fs index 9e6d5d854c..e7963328f9 100644 --- a/resources/shaders/140/thumbnail.fs +++ b/resources/shaders/140/thumbnail.fs @@ -1,5 +1,6 @@ #version 140 +uniform bool ban_light; uniform vec4 uniform_color; uniform float emission_factor; @@ -12,5 +13,9 @@ void main() { if (world_pos.z < 0.0) discard; - gl_FragColor = vec4(vec3(intensity.y) + uniform_color.rgb * (intensity.x + emission_factor), uniform_color.a); + if(ban_light){ + gl_FragColor = uniform_color; + } else{ + gl_FragColor = vec4(vec3(intensity.y) + uniform_color.rgb * (intensity.x + emission_factor), uniform_color.a); + } } diff --git a/resources/web/data/text.js b/resources/web/data/text.js index cbf359f1e6..c80bb979c8 100644 --- a/resources/web/data/text.js +++ b/resources/web/data/text.js @@ -108,6 +108,115 @@ var LangText = { orca1: "Edit Project Info", orca2: "no model information", }, + ca_ES: { + t1: "Benvingut a Orca Slicer", + t2: "Orca Slicer es configurarà en diversos passos. Comencem!", + t3: "Acord de l'Usuari", + t4: "No accepto", + t5: "Accepto", + t6: "Sol·licitem la vostra ajuda per millorar la impressió de tothom.
Vine i uneix-te al nostre Programa de Millora de l'Experiència del Client", + t7: "Uneix-te al nostre Programa de Millora de l'Experiència del Client", + t8: "Enrere", + t9: "Següent", + t10: "Selecció d'Impressora", + t11: "Totes", + t12: "Netejar tot", + t13: "mm broquet", + t14: "Selecció de Filament", + t15: "Impressora", + t16: "Tipus de filament", + t17: "Proveïdor", + t18: "error", + t19: "S'ha de seleccionar almenys un filament.", + t20: "Vols utilitzar el filament per defecte?", + t21: "sí", + t22: "no", + t23: "Nota de llançament", + t24: "Comença", + t25: "Finalitzar", + t26: "Iniciar sessió", + t27: "Registrar", + t28: "Recent", + t29: "Botiga", + t30: "Manual", + t31: "Nou Projecte", + t32: "Crear nou projecte", + t33: "Obrir Projecte", + t34: "hotspot", + t35: "Obert recentment", + t36: "d'acord", + t37: "S'ha de seleccionar almenys una impressora.", + t38: "Cancel·lar", + t39: "Confirmar", + t40: "Desconnexió de la xarxa, si us plau comprova i intenta-ho de nou més tard.", + t47: "Si us plau selecciona la teva regió d'inici de sessió", + t48: "Àsia-Pacífic", + t49: "Xina", + t50: "Tancar sessió", + t52: "Saltar", + t53: "Unir-se", + t54: "A la comunitat d'Impressió 3D, aprenem dels èxits i fracassos dels altres per ajustar els nostres propis paràmetres i configuracions de laminació. Orca Slicer segueix el mateix principi i utilitza l'aprenentatge automàtic per millorar el seu rendiment a partir dels èxits i fracassos d'un gran nombre d'impressions dels nostres usuaris. Estem entrenant Orca Slicer per ser més intel·ligent alimentant-lo amb dades del món real. Si estàs disposat, aquest servei accedirà a informació dels teus registres d'errors i registres d'ús, que poden incloure informació descrita a la ", + t55: "Política de Privacitat", + t56: ". No recopilarem cap dada personal que pugui identificar directament o indirectament a un individu, incloent-hi noms, adreces, informació de pagament o números de telèfon. En habilitar aquest servei, acceptes aquests termes i la declaració sobre la Política de Privacitat.", + t57: "", + t58: "", + t59: ".", + t60: "Europa", + t61: "Amèrica del Nord", + t62: "Altres", + t63: "Després de canviar la regió, el teu compte es tancarà la sessió. Si us plau inicia sessió de nou més tard.", + t64: "Connectors propietaris", + t65: "Tingues en compte que aquests connectors no són desenvolupats ni mantinguts per OrcaSlicer. S'han d'utilitzar a la teva discreció i risc.", + t66: "Control remot complet", + t67: "Transmissió en directe", + t68: "Sincronització de dades de l'usuari", + t69: "Instal·lar connector Bambu Network", + t70: "", + t71: "Descarregant", + t72: "Descàrrega fallida", + t73: "Instal·lació exitosa.", + t74: "Reiniciar", + t75: "Alguns proveïdors d'impressora requereixen connectors propietaris per comunicar-se amb les seves impressores. Si us plau selecciona el connector corresponent si utilitzes aquestes impressores.", + t76: "No s'ha detectat el connector Bambu Network. Fes clic ", + t77: "aquí", + t78: " per instal·lar-lo.", + t79: "No s'ha pogut instal·lar el connector.", + t80: "Prova els següents passos:", + t81: "1, Fes clic ", + t82: " per obrir el directori de connectors", + t83: "2, Tanca totes les Orca Slicer obertes", + t84: "3, Elimina tots els fitxers del directori de connectors", + t85: "4, Reobre Orca Slicer i instal·la el connector de nou", + t86: "Tancar", + t87: "Manual de l'Usuari", + t88: "Eliminar", + t89: "Obrir Carpeta Contenidora", + t90: "Model 3D", + t91: "Descarregar models 3D", + t92: "Creat per", + t93: "Remesclat per", + t94: "Compartit per", + t95: "Informació del Model", + t96: "Accessoris", + t97: "Informació del Perfil", + t98: "Nom del model", + t100: "Descripció del model", + t101: "BOM", + t102: "Guia d'Assemblea", + t103: "Altres", + t104: "Nom del perfil", + t105: "Autor del perfil", + t106: "Descripció del perfil", + t107: "Models en línia", + t108: "MÉS", + t109: "Filaments del Sistema", + t110: "Filaments Personalitzats", + t111: "Crear Nou", + t112: "Unir-se al Programa", + t113: "Pots canviar la teva elecció en les preferències en qualsevol moment.", + orca1: "Editar Informació del Projecte", + orca2: "no hi ha informació del model" +}, es_ES: { t1: "Bienvenido a Orca Slicer", t2: "Va a configurar Orca Slicer mediante varios pasos. ¡Vamos a comenzar!", @@ -214,8 +323,8 @@ var LangText = { t111: "Crear nuevo", t112: "Unirse al programa", t113: "Puede cambiar su elección en preferencias en cualquier momento.", - orca1: "Editar información del proyecto", - orca2: "no hay información sobre el modelo", + orca1: "Edit Project Info", + orca2: "no model information", }, de_DE: { t1: "Willkommen im Orca Slicer", @@ -275,7 +384,7 @@ var LangText = { t62: "Andere", t63: "Nach Ändern der Region wird Ihr Konto abgemeldet. Bitte melden Sie sich später erneut an.", t64: "Bambu Network-Plug-in", - t65: "Bitte beachten Sie, dass diese Plugins nicht von OrcaSlicer entwickelt oder gewartet werden. Die Verwendung erfolgt auf eigenes Ermessen und Risiko.", + t65: "Please be aware that these plugins are not developed or maintained by OrcaSlicer. They should be used at your own discretion and risk.", t66: "Vollständige Fernsteuerung", t67: "Live-View-Streaming", t68: "Synchronisierung von Benutzerdaten", @@ -285,7 +394,7 @@ var LangText = { t72: "Herunterladen fehlgeschlagen", t73: "Installation erfolgreich.", t74: "Neustart", - t75: "Einige Druckeranbieter erfordern proprietäre Plugins für die Kommunikation mit ihren Druckern. Bitte wählen Sie das entsprechende Plugin aus, wenn Sie solche Drucker verwenden.", + t75: "Some printer vendors require proprietary plugins for communication with their printers. Please select the corresponding plugin if you use such printers.", t76: "Das Bambu Network-Plug-in wurde nicht erkannt. Klicken Sie ", t77: "hier", t78: ", um es zu installieren.", @@ -316,8 +425,8 @@ var LangText = { t104: "Profilname", t105: "Profilautor", t106: "Profilbeschreibung", - orca1: "Projektinformationen bearbeiten", - orca2: "Keine Modellinformationen", + orca1: "Edit Project Info", + orca2: "no model information", }, cs_CZ: { t1: "Vítejte v Orca Slicer", diff --git a/src/OrcaSlicer.cpp b/src/OrcaSlicer.cpp index e9a5d6e641..bb52a0aea1 100644 --- a/src/OrcaSlicer.cpp +++ b/src/OrcaSlicer.cpp @@ -161,6 +161,8 @@ typedef struct _sliced_info { std::vector sliced_plates; size_t prepare_time; size_t export_time; + std::vector upward_machines; + std::vector downward_machines; }sliced_info_t; std::vector g_slicing_warnings; @@ -409,6 +411,10 @@ void record_exit_reson(std::string outputdir, int code, int plate_id, std::strin try { json j; //record the headers + if (sliced_info.downward_machines.size() > 0) + j["downward_compatible_machine"] = sliced_info.downward_machines; + if (sliced_info.upward_machines.size() > 0) + j["upward_compatible_machine"] = sliced_info.upward_machines; j["plate_index"] = plate_id; j["return_code"] = code; j["error_string"] = error_message; @@ -679,6 +685,51 @@ static int load_assemble_plate_list(std::string config_file, std::vector>(); BOOST_LOG_TRIVIAL(debug) << boost::format("Plate %1%, object %2% has %3% print params") % (plate_index + 1) %assemble_object.path % assemble_object.print_params.size(); } + if (object_json.contains(JSON_ASSEMPLE_OBJECT_HEIGHT_RANGES)) { + json height_range_json = object_json[JSON_ASSEMPLE_OBJECT_HEIGHT_RANGES]; + int range_count = height_range_json.size(); + + BOOST_LOG_TRIVIAL(debug) << boost::format("Plate %1%, object %2% has %3% height ranges") % (plate_index + 1) %assemble_object.path % range_count; + + assemble_object.height_ranges.resize(range_count); + for (int range_index = 0; range_index < range_count; range_index++) + { + height_range_info_t& height_range = assemble_object.height_ranges[range_index]; + height_range.min_z = height_range_json[range_index][JSON_ASSEMPLE_OBJECT_MIN_Z]; + height_range.max_z = height_range_json[range_index][JSON_ASSEMPLE_OBJECT_MAX_Z]; + height_range.range_params = height_range_json[range_index][JSON_ASSEMPLE_OBJECT_RANGE_PARAMS].get>(); + } + } + } + if (plate_json.contains(JSON_ASSEMPLE_ASSEMBLE_PARAMS)) { + json assemble_params_json = plate_json[JSON_ASSEMPLE_ASSEMBLE_PARAMS]; + int assemble_count = assemble_params_json.size(); + for (int i = 0; i < assemble_count; i++) + { + assembled_param_info_t assembled_param; + int assemble_index = assemble_params_json[i][JSON_ASSEMPLE_OBJECT_ASSEMBLE_INDEX]; + if (assemble_params_json[i].contains(JSON_ASSEMPLE_OBJECT_PRINT_PARAMS)) { + assembled_param.print_params = assemble_params_json[i][JSON_ASSEMPLE_OBJECT_PRINT_PARAMS].get>(); + BOOST_LOG_TRIVIAL(debug) << boost::format("Plate %1%, assemble object %2% has %3% print params") % (plate_index + 1) %i % assembled_param.print_params.size(); + } + if (assemble_params_json[i].contains(JSON_ASSEMPLE_OBJECT_HEIGHT_RANGES)) { + json height_range_json = assemble_params_json[i][JSON_ASSEMPLE_OBJECT_HEIGHT_RANGES]; + int range_count = height_range_json.size(); + + BOOST_LOG_TRIVIAL(debug) << boost::format("Plate %1%, assemble object %2% has %3% height ranges") % (plate_index + 1) %i % range_count; + + assembled_param.height_ranges.resize(range_count); + for (int range_index = 0; range_index < range_count; range_index++) + { + height_range_info_t& height_range = assembled_param.height_ranges[range_index]; + height_range.min_z = height_range_json[range_index][JSON_ASSEMPLE_OBJECT_MIN_Z]; + height_range.max_z = height_range_json[range_index][JSON_ASSEMPLE_OBJECT_MAX_Z]; + height_range.range_params = height_range_json[range_index][JSON_ASSEMPLE_OBJECT_RANGE_PARAMS].get>(); + } + } + assemble_plate.assembled_param_list.emplace(assemble_index, std::move(assembled_param)); + } + BOOST_LOG_TRIVIAL(debug) << boost::format("Plate %1%, has %2% plate params") % (plate_index + 1) % assemble_plate.plate_params.size(); } } } @@ -820,6 +871,21 @@ static int construct_assemble_list(std::vector &assemble_ } } + if (!assemble_object.height_ranges.empty()) + { + for (int range_index = 0; range_index < assemble_object.height_ranges.size(); range_index++) + { + height_range_info_t& range = assemble_object.height_ranges[range_index]; + DynamicPrintConfig range_config; + for (auto range_config_iter = range.range_params.begin(); range_config_iter != range.range_params.end(); range_config_iter++) + { + range_config.set_deserialize(range_config_iter->first, range_config_iter->second, config_substitutions); + BOOST_LOG_TRIVIAL(debug) << boost::format("object %1%, height range %2% key %3%, value %4%") % object_1_name % range_index % range_config_iter->first % range_config_iter->second; + } + object->layer_config_ranges[{ range.min_z, range.max_z }].assign_config(std::move(range_config)); + } + } + if (assemble_object.pos_x.empty()) assemble_object.pos_x.resize(1, 0.f); if (assemble_object.pos_y.empty()) @@ -864,6 +930,46 @@ static int construct_assemble_list(std::vector &assemble_ } } + size_t assemble_count = merged_objects.size(); + if ((assemble_count > 0) && (assemble_plate_info.assembled_param_list.size() > 0)) + { + for (auto& iter : merged_objects) + { + ModelObject* assemble_obj = iter.second; + int assemble_index = iter.first; + + auto assemble_iter = assemble_plate_info.assembled_param_list.find(assemble_index); + + if (assemble_iter != assemble_plate_info.assembled_param_list.end()) + { + assembled_param_info_t& assembled_param = assemble_iter->second; + if (!assembled_param.print_params.empty()) + { + for (auto param_iter = assembled_param.print_params.begin(); param_iter != assembled_param.print_params.end(); param_iter++) + { + assemble_obj->config.set_deserialize(param_iter->first, param_iter->second, config_substitutions); + BOOST_LOG_TRIVIAL(debug) << boost::format("Plate %1%, assemble object %2% key %3%, value %4%") % (index + 1) % assemble_obj->name % param_iter->first % param_iter->second; + } + } + + if (!assembled_param.height_ranges.empty()) + { + for (int range_index = 0; range_index < assembled_param.height_ranges.size(); range_index++) + { + height_range_info_t& range = assembled_param.height_ranges[range_index]; + DynamicPrintConfig range_config; + for (auto range_config_iter = range.range_params.begin(); range_config_iter != range.range_params.end(); range_config_iter++) + { + range_config.set_deserialize(range_config_iter->first, range_config_iter->second, config_substitutions); + BOOST_LOG_TRIVIAL(debug) << boost::format("assenble object %1%, height range %2% key %3%, value %4%") % assemble_obj->name % range_index % range_config_iter->first % range_config_iter->second; + } + assemble_obj->layer_config_ranges[{ range.min_z, range.max_z }].assign_config(std::move(range_config)); + } + } + } + } + } + assemble_plate_info.filaments_count = used_filaments.size(); assemble_plate_info.assemble_obj_list.clear(); assemble_plate_info.assemble_obj_list.shrink_to_fit(); @@ -879,6 +985,56 @@ static int construct_assemble_list(std::vector &assemble_ return ret; } +static void load_downward_settings_list_from_config(std::string config_file, std::string printer_name, std::string printer_model, std::vector& downward_settings) +{ + std::map printer_params; + + boost::filesystem::path directory_path(config_file); + + BOOST_LOG_TRIVIAL(info) << boost::format("%1%, will parse file %2% for printer mode %3%, printer name %4%")%__FUNCTION__ % config_file %printer_model %printer_name; + if (!fs::exists(directory_path)) { + BOOST_LOG_TRIVIAL(warning) << boost::format("file %1% not exist.")%config_file; + } + else { + try { + json root_json; + boost::nowide::ifstream ifs(config_file); + ifs >> root_json; + ifs.close(); + + if (root_json.contains("printer")) { + json printer_json = root_json["printer"]; + if (!printer_model.empty() && printer_json.contains(printer_model)) { + json printer_model_json = printer_json[printer_model]; + + if (printer_model_json.contains("downward_check")) { + json downward_check_json = printer_model_json["downward_check"]; + if (downward_check_json.contains(printer_name)) { + downward_settings = downward_check_json[printer_name].get>(); + BOOST_LOG_TRIVIAL(info) << boost::format("got %1% downward settings of %2% in cli_config.json")%downward_settings.size() %printer_name; + } + else { + BOOST_LOG_TRIVIAL(info) << boost::format("can not find %1% in downward_check of %2% in cli_config.json")%printer_name %printer_model; + } + } + else { + BOOST_LOG_TRIVIAL(info) << boost::format("can not find downward_check for %1% in cli_config.json")%printer_model; + } + } + else { + BOOST_LOG_TRIVIAL(info) << boost::format("can not find printer_model %1% in the file")%printer_model; + } + } + else { + BOOST_LOG_TRIVIAL(warning) << boost::format("can not find key printer in the file"); + } + } + catch (std::exception &err) { + BOOST_LOG_TRIVIAL(error) << __FUNCTION__<< ": parse file "< &load_configs = m_config.option("load_settings", true)->values; const std::vector &uptodate_configs = m_config.option("uptodate_settings", true)->values; const std::vector &uptodate_filaments = m_config.option("uptodate_filaments", true)->values; + std::vector downward_settings = m_config.option("downward_settings", true)->values; + std::vector downward_compatible_machines; //BBS: always use ForwardCompatibilitySubstitutionRule::Enable //const ForwardCompatibilitySubstitutionRule config_substitution_rule = m_config.option>("config_compatibility", true)->value; const ForwardCompatibilitySubstitutionRule config_substitution_rule = ForwardCompatibilitySubstitutionRule::Enable; @@ -960,6 +1116,11 @@ int CLI::run(int argc, char **argv) sliced_info_t sliced_info; std::map record_key_values; + ConfigOptionBool* downward_check_option = m_config.option("downward_check"); + if (downward_check_option) + downward_check = downward_check_option->value; + + bool start_gui = m_actions.empty() && !downward_check; if (start_gui) { BOOST_LOG_TRIVIAL(info) << "no action, start gui directly" << std::endl; ::Label::initSysFont(); @@ -1028,6 +1189,7 @@ int CLI::run(int argc, char **argv) //BBS: add plate data related logic PlateDataPtrs plate_data_src; + std::vector plate_obj_size_infos; int arrange_option; int plate_to_slice = 0, filament_count = 0, duplicate_count = 0, real_duplicate_count = 0; bool first_file = true, is_bbl_3mf = false, need_arrange = true, has_thumbnails = false, up_config_to_date = false, normative_check = true, duplicate_single_object = false, use_first_fila_as_default = false, minimum_save = false, enable_timelapse = false; @@ -1035,12 +1197,21 @@ int CLI::run(int argc, char **argv) Semver file_version; std::map orients_requirement; std::vector project_presets; - std::string new_printer_name, current_printer_name, new_process_name, current_process_name, current_printer_system_name, current_process_system_name, new_process_system_name, new_printer_system_name, printer_model_id, printer_model;//, printer_inherits, print_inherits; + std::string new_printer_name, current_printer_name, new_process_name, current_process_name, current_printer_system_name, current_process_system_name, new_process_system_name, new_printer_system_name, printer_model_id, current_printer_model, printer_model;//, printer_inherits, print_inherits; std::vector upward_compatible_printers, new_print_compatible_printers, current_print_compatible_printers, current_different_settings; std::vector current_filaments_name, current_filaments_system_name, current_inherits_group; DynamicPrintConfig load_process_config, load_machine_config; bool new_process_config_is_system = true, new_printer_config_is_system = true; - std::string pipe_name, makerlab_name, makerlab_version; + std::string pipe_name, makerlab_name, makerlab_version, different_process_setting; + const std::vector &metadata_name = m_config.option("metadata_name", true)->values; + const std::vector &metadata_value = m_config.option("metadata_value", true)->values; + + if (metadata_name.size() != metadata_value.size()) + { + BOOST_LOG_TRIVIAL(error) << boost::format("metadata_name should be the same size with metadata_value"); + record_exit_reson(outfile_dir, CLI_INVALID_PARAMS, 0, cli_errors[CLI_INVALID_PARAMS], sliced_info); + flush_and_exit(CLI_INVALID_PARAMS); + } // Read input file(s) if any. BOOST_LOG_TRIVIAL(info) << "Will start to read model file now, file count :" << m_input_files.size() << "\n"; @@ -1270,6 +1441,7 @@ int CLI::run(int argc, char **argv) }*/ current_printer_name = config.option("printer_settings_id")->value; current_process_name = config.option("print_settings_id")->value; + current_printer_model = config.option("printer_model", true)->value; current_filaments_name = config.option("filament_settings_id")->values; BOOST_LOG_TRIVIAL(info) << boost::format("current_printer_name %1%, current_process_name %2%")%current_printer_name %current_process_name; @@ -1631,6 +1803,11 @@ int CLI::run(int argc, char **argv) config.set("print_settings_id", new_process_name, true); //print_inherits = config.option("inherits", true)->value; new_print_compatible_printers = config.option("compatible_printers", true)->values; + + if (!is_bbl_3mf && config.option("different_settings_to_system")) { + std::vector diff_settings = config.option("different_settings_to_system")->values; + different_process_setting = diff_settings[0]; + } load_process_config = std::move(config); BOOST_LOG_TRIVIAL(info) << boost::format("loaded process config %1%, type %2%, name %3%, inherits %4%")%file %config_name %config_from % new_process_system_name; } @@ -2043,7 +2220,7 @@ int CLI::run(int argc, char **argv) } //upwards check - bool process_compatible = false, machine_upwards = false; + bool process_compatible = false, machine_upwards = false, machine_switch = false; BOOST_LOG_TRIVIAL(info) << boost::format("current printer %1%, new printer %2%, current process %3%, new process %4%")%current_printer_name %new_printer_name %current_process_name %new_process_name; BOOST_LOG_TRIVIAL(info) << boost::format("current printer inherits %1%, new printer inherits %2%, current process inherits %3%, new process inherits %4%") %current_printer_system_name %new_printer_system_name %current_process_system_name %new_process_system_name; @@ -2105,11 +2282,16 @@ int CLI::run(int argc, char **argv) %current_printer_name %current_printer_system_name %current_process_name %current_process_system_name %process_compatible; } if (!process_compatible && !new_printer_name.empty() && !current_printer_name.empty() && (new_printer_name != current_printer_name)) { + //set all printer to compatible + process_compatible = true; + machine_switch = true; + BOOST_LOG_TRIVIAL(info) << boost::format("switch to new printers, set to compatible"); if (upward_compatible_printers.size() > 0) { for (int index = 0; index < upward_compatible_printers.size(); index++) { if (upward_compatible_printers[index] == new_printer_system_name) { process_compatible = true; machine_upwards = true; + BOOST_LOG_TRIVIAL(info) << boost::format("new printer is upward_compatible"); break; } } @@ -2119,11 +2301,11 @@ int CLI::run(int argc, char **argv) flush_and_exit(CLI_3MF_NEW_MACHINE_NOT_SUPPORTED); } } - else { + /*else { BOOST_LOG_TRIVIAL(error) <<__FUNCTION__ << boost::format(" %1%: current 3mf file not support upward_compatible_printers, can not change machine preset.")%__LINE__; record_exit_reson(outfile_dir, CLI_3MF_NOT_SUPPORT_MACHINE_CHANGE, 0, cli_errors[CLI_3MF_NOT_SUPPORT_MACHINE_CHANGE], sliced_info); flush_and_exit(CLI_3MF_NOT_SUPPORT_MACHINE_CHANGE); - } + }*/ } if (!process_compatible) { @@ -2131,10 +2313,11 @@ int CLI::run(int argc, char **argv) record_exit_reson(outfile_dir, CLI_PROCESS_NOT_COMPATIBLE, 0, cli_errors[CLI_PROCESS_NOT_COMPATIBLE], sliced_info); flush_and_exit(CLI_PROCESS_NOT_COMPATIBLE); } + sliced_info.upward_machines = upward_compatible_printers; //create project embedded preset if needed Preset *new_preset = NULL; - if (is_bbl_3mf && machine_upwards) { + if (is_bbl_3mf && machine_switch) { //we need to update the compatible printer and create a new process here, or if we load the 3mf in studio, the process preset can not be loaded as not compatible Preset *current_preset = NULL; size_t project_presets_count = project_presets.size(); @@ -2226,6 +2409,9 @@ int CLI::run(int argc, char **argv) std::vector& inherits_group = m_print_config.option("inherits_group", true)->values; inherits_group.resize(filament_count + 2, std::string()); different_settings.resize(filament_count + 2, std::string()); + if (!is_bbl_3mf && !different_process_setting.empty()) { + different_settings[0] = different_process_setting; + } //set the machine settings into print config if (!new_printer_name.empty() || up_config_to_date) { std::vector different_keys; @@ -2291,33 +2477,40 @@ int CLI::run(int argc, char **argv) if (root_json.contains("printer")) { json printer_json = root_json["printer"]; if (!printer_model.empty() && printer_json.contains(printer_model)) { - json new_printer_json = printer_json[printer_model]; - printer_params = new_printer_json.get>(); + json printer_model_json = printer_json[printer_model]; - for (auto param_iter = printer_params.begin(); param_iter != printer_params.end(); param_iter++) - { - std::string key = param_iter->first; - //replace "cli_safe" with "machine_max" - key.replace(0, 8, "machine_max"); + if (printer_model_json.contains("machine_limits")) { + json machine_limits_json = printer_model_json["machine_limits"]; + printer_params = machine_limits_json.get>(); - ConfigOptionFloats* option = m_print_config.option(key); - if (option) { - //de-serialize the values from param_iter->second, and do the compare here - unsigned int array_count = option->size(); - ConfigOptionFloats new_option; - new_option.deserialize(param_iter->second); - unsigned int new_array_count = new_option.size(); - for (unsigned int index = 0; index < array_count; index++) - { - if ((index < new_array_count) && new_option.values[index] != 0.f && (new_option.values[index] < option->values[index])) + for (auto param_iter = printer_params.begin(); param_iter != printer_params.end(); param_iter++) + { + std::string key = param_iter->first; + //replace "cli_safe" with "machine_max" + key.replace(0, 8, "machine_max"); + + ConfigOptionFloats* option = m_print_config.option(key); + if (option) { + //de-serialize the values from param_iter->second, and do the compare here + unsigned int array_count = option->size(); + ConfigOptionFloats new_option; + new_option.deserialize(param_iter->second); + unsigned int new_array_count = new_option.size(); + for (unsigned int index = 0; index < array_count; index++) { - BOOST_LOG_TRIVIAL(info) << boost::format("set key %1% index %2%, from %3% to %4%") % key %index %option->values[index] % new_option.values[index]; - option->values[index] = new_option.values[index]; + if ((index < new_array_count) && new_option.values[index] != 0.f && (new_option.values[index] < option->values[index])) + { + BOOST_LOG_TRIVIAL(info) << boost::format("set key %1% index %2%, from %3% to %4%") % key %index %option->values[index] % new_option.values[index]; + option->values[index] = new_option.values[index]; + } } } + else + BOOST_LOG_TRIVIAL(warning) << boost::format("can not find key %1% in config") %key; } - else - BOOST_LOG_TRIVIAL(warning) << boost::format("can not find key %1% in config") %key; + } + else { + BOOST_LOG_TRIVIAL(info) << boost::format("can not find machine_limits for printer %1% in cli_config.json")%printer_model; } } else { @@ -2407,7 +2600,7 @@ int CLI::run(int argc, char **argv) } } - if (machine_upwards) { + if (machine_switch) { print_compatible_printers.push_back(new_printer_system_name); std::string old_setting = different_settings[0]; @@ -2792,134 +2985,6 @@ int CLI::run(int argc, char **argv) flush_and_exit(CLI_INVALID_VALUES_IN_3MF); } - //BBS: partplate list - Slic3r::GUI::PartPlateList partplate_list(NULL, m_models.data(), printer_technology); - //use Pointfs insteadof Points - Pointfs current_printable_area = m_print_config.opt("printable_area")->values; - Pointfs current_exclude_area = m_print_config.opt("bed_exclude_area")->values; - //update part plate's size - double print_height = m_print_config.opt_float("printable_height"); - double height_to_lid = m_print_config.opt_float("extruder_clearance_height_to_lid"); - double height_to_rod = m_print_config.opt_float("extruder_clearance_height_to_rod"); - double cleareance_radius = m_print_config.opt_float("extruder_clearance_radius"); - //double plate_stride; - std::string bed_texture; - - current_printable_width = current_printable_area[2].x() - current_printable_area[0].x(); - current_printable_depth = current_printable_area[2].y() - current_printable_area[0].y(); - current_printable_height = print_height; - if (old_printable_width == 0) - old_printable_width = current_printable_width; - if (old_printable_depth == 0) - old_printable_depth = current_printable_depth; - if (old_printable_height == 0) - old_printable_height = current_printable_height; - if ((old_printable_width > 0)&&(old_printable_depth > 0)&&(old_printable_height > 0)) - { - //check the printable size logic - //if ((old_printable_width > current_printable_width) || (old_printable_depth > current_printable_depth) || (old_printable_height > current_printable_height)) - if ((old_printable_width > current_printable_width) || (old_printable_depth > current_printable_depth)) - { - BOOST_LOG_TRIVIAL(error) << boost::format("old printable size {%1%, %2%, %3%} is larger than new printable size {%4%, %5%, %6%}, can not print") - %old_printable_width %old_printable_depth %old_printable_height %current_printable_width %current_printable_depth %current_printable_height; - record_exit_reson(outfile_dir, CLI_PRINTABLE_SIZE_REDUCED, 0, cli_errors[CLI_PRINTABLE_SIZE_REDUCED], sliced_info); - flush_and_exit(CLI_PRINTABLE_SIZE_REDUCED); - } - else if ((old_printable_width < current_printable_width) || (old_printable_depth < current_printable_depth)) - { - BOOST_LOG_TRIVIAL(info) << boost::format("old printable size {%1%, %2%, %3%} is smaller than new printable size {%4%, %5%, %6%}, need to center the model") - %old_printable_width %old_printable_depth %old_printable_height %current_printable_width %current_printable_depth %current_printable_height; - shrink_to_new_bed = true; - } - else { - BOOST_LOG_TRIVIAL(info) << boost::format("old printable size {%1%, %2%, %3%}, new printable size {%4%, %5%, %6%}") - %old_printable_width %old_printable_depth %old_printable_height %current_printable_width %current_printable_depth %current_printable_height; - } - } - - if (m_models.size() > 0) - { - BOOST_LOG_TRIVIAL(info) << boost::format("translate_old %1%, shrink_to_new_bed %2%, old bed size {%3%, %4%, %5%}")%translate_old%shrink_to_new_bed %old_printable_width %old_printable_depth %old_printable_height; - if (translate_old) { - BOOST_LOG_TRIVIAL(info) << boost::format("translate old 3mf, switch to older bed size,{%1%, %2%, %3%}")%(old_printable_width + bed3d_ax3s_default_tip_radius)%(old_printable_depth+bed3d_ax3s_default_tip_radius) %old_printable_height; - partplate_list.reset_size(old_printable_width + bed3d_ax3s_default_tip_radius, old_printable_depth + bed3d_ax3s_default_tip_radius, old_printable_height, false); - } - else { - partplate_list.reset_size(old_printable_width, old_printable_depth, old_printable_height, false); - } - partplate_list.set_shapes(current_printable_area, current_exclude_area, bed_texture, height_to_lid, height_to_rod); - //plate_stride = partplate_list.plate_stride_x(); - } - - auto translate_models = [translate_old, shrink_to_new_bed, old_printable_width, old_printable_depth, old_printable_height, current_printable_width, current_printable_depth, current_printable_height] (Slic3r::GUI::PartPlateList& plate_list, DynamicPrintConfig& print_config) { - //BBS: translate old 3mf to correct positions - if (translate_old) { - //translate the objects - int plate_count = plate_list.get_plate_count(); - for (int index = 1; index < plate_count; index ++) { - Slic3r::GUI::PartPlate* cur_plate = (Slic3r::GUI::PartPlate *)plate_list.get_plate(index); - - Vec3d cur_origin = cur_plate->get_origin(); - Vec3d new_origin = plate_list.compute_origin_using_new_size(index, old_printable_width, old_printable_depth); - - cur_plate->translate_all_instance(new_origin - cur_origin); - } - BOOST_LOG_TRIVIAL(info) << boost::format("translate old 3mf, switch back to current bed size,{%1%, %2%, %3%}")%old_printable_width %old_printable_depth %old_printable_height; - plate_list.reset_size(old_printable_width, old_printable_depth, old_printable_height, true, true); - } - - if (shrink_to_new_bed) - { - int plate_count = plate_list.get_plate_count(); - ConfigOptionFloats *wipe_x_option = nullptr, *wipe_y_option = nullptr; - Vec3d wipe_offset; - if (print_config.has("wipe_tower_x")) { - wipe_x_option = dynamic_cast(print_config.option("wipe_tower_x")); - wipe_y_option = dynamic_cast(print_config.option("wipe_tower_y")); - } - for (int index = 0; index < plate_count; index ++) { - Slic3r::GUI::PartPlate* cur_plate = (Slic3r::GUI::PartPlate *)plate_list.get_plate(index); - - Vec3d cur_origin = cur_plate->get_origin(); - Vec3d new_origin = plate_list.compute_origin_using_new_size(index, current_printable_width, current_printable_depth); - Vec3d cur_center_offset { ((double)old_printable_width)/2, ((double)old_printable_depth)/2, 0}, new_center_offset { ((double)current_printable_width)/2, ((double)current_printable_depth)/2, 0}; - Vec3d cur_center = cur_origin + cur_center_offset; - Vec3d new_center = new_origin + new_center_offset; - Vec3d offset = new_center - cur_center; - - cur_plate->translate_all_instance(offset); - if (index == 0) - wipe_offset = offset; - if (wipe_x_option) { - BOOST_LOG_TRIVIAL(info) << boost::format("shrink_to_new_bed, plate %1%: wipe tower src: {%2%, %3%}")%(index+1) %wipe_x_option->get_at(index) %wipe_y_option->get_at(index); - ConfigOptionFloat wipe_tower_x(wipe_x_option->get_at(index) + wipe_offset(0)); - ConfigOptionFloat wipe_tower_y(wipe_y_option->get_at(index) + wipe_offset(1)); - - wipe_x_option->set_at(&wipe_tower_x, index, 0); - wipe_y_option->set_at(&wipe_tower_y, index, 0); - BOOST_LOG_TRIVIAL(info) << boost::format("shrink_to_new_bed, plate %1% wipe tower changes to: {%2%, %3%}")%(index+1) %wipe_x_option->get_at(index) %wipe_y_option->get_at(index); - } - - BOOST_LOG_TRIVIAL(info) << boost::format("shrink_to_new_bed, plate %1% translate offset: {%2%, %3%, %4%}")%(index+1) %offset[0] %offset[1] %offset[2]; - } - BOOST_LOG_TRIVIAL(info) << boost::format("shrink_to_new_bed, shrink all the models to current bed size,{%1%, %2%, %3%}")%current_printable_width %current_printable_depth %current_printable_height; - plate_list.reset_size(current_printable_width, current_printable_depth, current_printable_height, true, true); - } - }; - if (plate_data_src.size() > 0) - { - partplate_list.load_from_3mf_structure(plate_data_src); - - translate_models(partplate_list, m_print_config); - } - - /*for (ModelObject *model_object : m_models[0].objects) - for (ModelInstance *model_instance : model_object->instances) - { - const Vec3d &instance_offset = model_instance->get_offset(); - BOOST_LOG_TRIVIAL(info) << boost::format("instance %1% transform {%2%,%3%,%4%} at %5%:%6%")% model_object->name % instance_offset.x() % instance_offset.y() %instance_offset.z() % __FUNCTION__ % __LINE__<< std::endl; - }*/ - auto timelapse_type_opt = m_print_config.option("timelapse_type"); bool is_smooth_timelapse = false; if (enable_timelapse && timelapse_type_opt && (timelapse_type_opt->getInt() == TimelapseType::tlSmooth)) @@ -2955,6 +3020,378 @@ int CLI::run(int argc, char **argv) } } + //BBS: partplate list + Slic3r::GUI::PartPlateList partplate_list(NULL, m_models.data(), printer_technology); + //use Pointfs insteadof Points + Pointfs current_printable_area = m_print_config.opt("printable_area")->values; + Pointfs current_exclude_area = m_print_config.opt("bed_exclude_area")->values; + //update part plate's size + double print_height = m_print_config.opt_float("printable_height"); + double height_to_lid = m_print_config.opt_float("extruder_clearance_height_to_lid"); + double height_to_rod = m_print_config.opt_float("extruder_clearance_height_to_rod"); + double cleareance_radius = m_print_config.opt_float("extruder_clearance_radius"); + //double plate_stride; + std::string bed_texture; + + current_printable_width = current_printable_area[2].x() - current_printable_area[0].x(); + current_printable_depth = current_printable_area[2].y() - current_printable_area[0].y(); + current_printable_height = print_height; + if (old_printable_width == 0) + old_printable_width = current_printable_width; + if (old_printable_depth == 0) + old_printable_depth = current_printable_depth; + if (old_printable_height == 0) + old_printable_height = current_printable_height; + if (is_bbl_3mf && (old_printable_width > 0) && (old_printable_depth > 0) && (old_printable_height > 0)) + { + //check the printable size logic + //if ((old_printable_width > current_printable_width) || (old_printable_depth > current_printable_depth) || (old_printable_height > current_printable_height)) + if ((old_printable_width > current_printable_width) || (old_printable_depth > current_printable_depth) || (old_printable_height > current_printable_height)) + { + BOOST_LOG_TRIVIAL(error) << boost::format("old printable size {%1%, %2%, %3%} is larger than new printable size {%4%, %5%, %6%}, the object size should be limited") + %old_printable_width %old_printable_depth %old_printable_height %current_printable_width %current_printable_depth %current_printable_height; + /*record_exit_reson(outfile_dir, CLI_PRINTABLE_SIZE_REDUCED, 0, cli_errors[CLI_PRINTABLE_SIZE_REDUCED], sliced_info); + flush_and_exit(CLI_PRINTABLE_SIZE_REDUCED);*/ + shrink_to_new_bed = 2; + } + else if ((old_printable_width < current_printable_width) || (old_printable_depth < current_printable_depth)) + { + BOOST_LOG_TRIVIAL(info) << boost::format("old printable size {%1%, %2%, %3%} is smaller than new printable size {%4%, %5%, %6%}, need to center the model") + %old_printable_width %old_printable_depth %old_printable_height %current_printable_width %current_printable_depth %current_printable_height; + shrink_to_new_bed = 1; + } + else { + if ((current_exclude_area.size() > 0)&&(current_exclude_area != old_exclude_area)) { + BOOST_LOG_TRIVIAL(info) << boost::format("old printable size {%1%, %2%, %3%}, new printable size {%4%, %5%, %6%}, exclude_area different, need to shrink") + %old_printable_width %old_printable_depth %old_printable_height %current_printable_width %current_printable_depth %current_printable_height; + shrink_to_new_bed = 2; + } + else { + BOOST_LOG_TRIVIAL(info) << boost::format("old printable size {%1%, %2%, %3%}, new printable size {%4%, %5%, %6%}, extract the same, no need shrink") + %old_printable_width %old_printable_depth %old_printable_height %current_printable_width %current_printable_depth %current_printable_height; + } + } + } + + if (m_models.size() > 0) + { + BOOST_LOG_TRIVIAL(info) << boost::format("translate_old %1%, shrink_to_new_bed %2%, old bed size {%3%, %4%, %5%}")%translate_old%shrink_to_new_bed %old_printable_width %old_printable_depth %old_printable_height; + if (translate_old) { + BOOST_LOG_TRIVIAL(info) << boost::format("translate old 3mf, switch to older bed size,{%1%, %2%, %3%}")%(old_printable_width + bed3d_ax3s_default_tip_radius)%(old_printable_depth+bed3d_ax3s_default_tip_radius) %old_printable_height; + partplate_list.reset_size(old_printable_width + bed3d_ax3s_default_tip_radius, old_printable_depth + bed3d_ax3s_default_tip_radius, old_printable_height, false); + } + else { + partplate_list.reset_size(old_printable_width, old_printable_depth, old_printable_height, false); + } + partplate_list.set_shapes(current_printable_area, current_exclude_area, bed_texture, height_to_lid, height_to_rod); + //plate_stride = partplate_list.plate_stride_x(); + } + + auto get_print_sequence = [](Slic3r::GUI::PartPlate* plate, DynamicPrintConfig& print_config, bool &is_seq_print) { + PrintSequence curr_plate_seq = plate->get_print_seq(); + if (curr_plate_seq == PrintSequence::ByDefault) { + auto seq_print = print_config.option>("print_sequence"); + if (seq_print && (seq_print->value == PrintSequence::ByObject)) { + BOOST_LOG_TRIVIAL(info) << boost::format("plate print by object, set from global"); + is_seq_print = true; + } + } + else if (curr_plate_seq == PrintSequence::ByObject) { + BOOST_LOG_TRIVIAL(info) << boost::format("plate print by object, set from plate self"); + is_seq_print = true; + } + }; + + auto check_plate_wipe_tower = [get_print_sequence, is_smooth_timelapse](Slic3r::GUI::PartPlate* plate, int plate_index, DynamicPrintConfig& print_config, plate_obj_size_info_t &plate_obj_size_info) { + plate_obj_size_info.obj_bbox= plate->get_objects_bounding_box(); + BOOST_LOG_TRIVIAL(info) << boost::format("plate %1%, object bbox: min {%2%, %3%, %4%} - max {%5%, %6%, %7%}") + %(plate_index+1) %plate_obj_size_info.obj_bbox.min.x() % plate_obj_size_info.obj_bbox.min.y() % plate_obj_size_info.obj_bbox.min.z() %plate_obj_size_info.obj_bbox.max.x() % plate_obj_size_info.obj_bbox.max.y() % plate_obj_size_info.obj_bbox.max.z(); + if (!print_config.has("wipe_tower_x")) { + plate_obj_size_info.has_wipe_tower = false; + BOOST_LOG_TRIVIAL(info) << boost::format("can not found wipe_tower_x in config, set to no wipe tower"); + return; + } + + int valid_count = plate->printable_instance_size(); + if (valid_count <= 0){ + plate_obj_size_info.has_wipe_tower = false; + BOOST_LOG_TRIVIAL(info) << boost::format("no printable object found, set to no wipe tower"); + return; + } + + bool is_sequence = false; + get_print_sequence(plate, print_config, is_sequence); + if (is_sequence && valid_count > 1) { + plate_obj_size_info.has_wipe_tower = false; + BOOST_LOG_TRIVIAL(info) << boost::format("sequence print, valid_count=%1%, set to no wipe tower")%valid_count; + return; + } + + std::vector extruders = plate->get_extruders_under_cli(true, print_config); + unsigned int filaments_cnt = extruders.size(); + if ((filaments_cnt <= 1) && !is_smooth_timelapse){ + plate_obj_size_info.has_wipe_tower = false; + BOOST_LOG_TRIVIAL(info) << boost::format("filaments_cnt=%1%, set to no wipe tower")%filaments_cnt; + return; + } + + ConfigOptionFloats *wipe_x_option = dynamic_cast(print_config.option("wipe_tower_x")); + ConfigOptionFloats *wipe_y_option = dynamic_cast(print_config.option("wipe_tower_y")); + + plate_obj_size_info.wipe_x = wipe_x_option->get_at(plate_index); + plate_obj_size_info.wipe_y = wipe_y_option->get_at(plate_index); + + ConfigOptionFloat* width_option = print_config.option("prime_tower_width", true); + plate_obj_size_info.wipe_width = width_option->value; + + ConfigOptionFloat* brim_width_option = print_config.option("prime_tower_brim_width", true); + float brim_width = brim_width_option->value; + + ConfigOptionFloat* volume_option = print_config.option("prime_volume", true); + float wipe_volume = volume_option->value; + + Vec3d wipe_tower_size = plate->estimate_wipe_tower_size(print_config, plate_obj_size_info.wipe_width, wipe_volume, filaments_cnt); + plate_obj_size_info.wipe_depth = wipe_tower_size(1); + + Vec3d origin = plate->get_origin(); + Vec3d start(origin(0) + plate_obj_size_info.wipe_x - brim_width, origin(1) + plate_obj_size_info.wipe_y, 0.f); + plate_obj_size_info.obj_bbox.merge(start); + Vec3d end(origin(0) + plate_obj_size_info.wipe_x + plate_obj_size_info.wipe_width + brim_width, origin(1) + plate_obj_size_info.wipe_y + plate_obj_size_info.wipe_depth, 0.f); + plate_obj_size_info.obj_bbox.merge(end); + plate_obj_size_info.has_wipe_tower = true; + BOOST_LOG_TRIVIAL(info) << boost::format("plate %1%, has wipe tower, wipe bbox: min {%2%, %3%, %4%} - max {%5%, %6%, %7%}") + %(plate_index+1) %start.x() % start.y() % start.z() %end.x() % end.y() % end.z(); + }; + + auto translate_models = [translate_old, shrink_to_new_bed, old_printable_width, old_printable_depth, old_printable_height, current_printable_width, current_printable_depth, current_printable_height, current_exclude_area, &plate_obj_size_infos] (Slic3r::GUI::PartPlateList& plate_list, DynamicPrintConfig& print_config) { + //BBS: translate old 3mf to correct positions + if (translate_old) { + //translate the objects + int plate_count = plate_list.get_plate_count(); + for (int index = 1; index < plate_count; index ++) { + Slic3r::GUI::PartPlate* cur_plate = (Slic3r::GUI::PartPlate *)plate_list.get_plate(index); + + Vec3d cur_origin = cur_plate->get_origin(); + Vec3d new_origin = plate_list.compute_origin_using_new_size(index, old_printable_width, old_printable_depth); + + cur_plate->translate_all_instance(new_origin - cur_origin); + } + BOOST_LOG_TRIVIAL(info) << boost::format("translate old 3mf, switch back to current bed size,{%1%, %2%, %3%}")%old_printable_width %old_printable_depth %old_printable_height; + plate_list.reset_size(old_printable_width, old_printable_depth, old_printable_height, true, true); + } + + if (shrink_to_new_bed > 0) + { + int plate_count = plate_list.get_plate_count(); + ConfigOptionFloats *wipe_x_option = nullptr, *wipe_y_option = nullptr; + Vec3d wipe_offset; + if (print_config.has("wipe_tower_x")) { + wipe_x_option = dynamic_cast(print_config.option("wipe_tower_x")); + wipe_y_option = dynamic_cast(print_config.option("wipe_tower_y")); + } + double exclude_width = 0.f, exclude_depth = 0.f; + + if (current_exclude_area.size() >= 4) { + exclude_width = current_exclude_area[2].x() - current_exclude_area[0].x(); + exclude_depth = current_exclude_area[2].y() - current_exclude_area[0].y(); + } + for (int index = 0; index < plate_count; index ++) { + Slic3r::GUI::PartPlate* cur_plate = (Slic3r::GUI::PartPlate *)plate_list.get_plate(index); + Vec3d cur_origin = cur_plate->get_origin(); + Vec3d new_origin = plate_list.compute_origin_using_new_size(index, current_printable_width, current_printable_depth); + Vec3d offset; + + + if (shrink_to_new_bed == 1) { + Vec3d cur_center_offset { ((double)old_printable_width)/2, ((double)old_printable_depth)/2, 0}, new_center_offset { ((double)current_printable_width)/2, ((double)current_printable_depth)/2, 0}; + Vec3d cur_center = cur_origin + cur_center_offset; + Vec3d new_center = new_origin + new_center_offset; + + offset = new_center - cur_center; + + if (index == 0) + wipe_offset = offset; + + BOOST_LOG_TRIVIAL(info) << boost::format("shrink_to_new_bed 1, plate %1%, cur_origin: {%2%, %3%}, new_origin: {%4%, %5%}, cur_center {%6%, %7%} new_center {%8%, %9%}") + %(index+1) %cur_origin(0) %cur_origin(1) %new_origin(0) %new_origin(1) %cur_center(0) %cur_center(1) %new_center(0) %new_center(1); + } + else { + //center the object + Vec3d new_center_offset { ((double)current_printable_width + exclude_width)/2, ((double)current_printable_depth + exclude_depth)/2, 0}; + BoundingBoxf3& bbox = plate_obj_size_infos[index].obj_bbox; + Vec3d size = bbox.size(); + if (size.x() > (current_printable_width - exclude_width)) + new_center_offset(0) = ((double)current_printable_width)/2; + if (size.y() > (current_printable_depth - exclude_depth)) + new_center_offset(1) = ((double)current_printable_depth)/2; + Vec3d new_center = new_origin + new_center_offset; + + offset = new_center - bbox.center(); + + wipe_offset = offset + cur_origin - new_origin; + BOOST_LOG_TRIVIAL(info) << boost::format("shrink_to_new_bed 2, plate %1%, new_origin: {%2%, %3%}, new_center: {%4%, %5%}, obj bbox(including wipe tower) min {%6%, %7%} max {%8%, %9%}") + %(index+1) %new_origin(0) %new_origin(1) %new_center(0) %new_center(1) %bbox.min(0) %bbox.min(1) %bbox.max(0) %bbox.max(1); + } + offset(2) = 0.f; + BOOST_LOG_TRIVIAL(info) << boost::format("shrink_to_new_bed %1%, plate %2% translate offset: {%3%, %4%} wipe_offset {%5%, %6%}") %shrink_to_new_bed %(index+1) %offset[0] %offset[1] %wipe_offset[0] %wipe_offset[1]; + cur_plate->translate_all_instance(offset); + + if (wipe_x_option) { + BOOST_LOG_TRIVIAL(info) << boost::format("shrink_to_new_bed %4%, plate %1%: wipe tower src: {%2%, %3%}")%(index+1) %wipe_x_option->get_at(index) %wipe_y_option->get_at(index)%shrink_to_new_bed; + ConfigOptionFloat wipe_tower_x(wipe_x_option->get_at(index) + wipe_offset(0)); + ConfigOptionFloat wipe_tower_y(wipe_y_option->get_at(index) + wipe_offset(1)); + + wipe_x_option->set_at(&wipe_tower_x, index, 0); + wipe_y_option->set_at(&wipe_tower_y, index, 0); + BOOST_LOG_TRIVIAL(info) << boost::format("shrink_to_new_bed %4%, plate %1% wipe tower changes to: {%2%, %3%}")%(index+1) %wipe_x_option->get_at(index) %wipe_y_option->get_at(index) %shrink_to_new_bed; + } + + + } + BOOST_LOG_TRIVIAL(info) << boost::format("shrink_to_new_bed, shrink all the models to current bed size,{%1%, %2%, %3%}")%current_printable_width %current_printable_depth %current_printable_height; + plate_list.reset_size(current_printable_width, current_printable_depth, current_printable_height, true, true); + } + }; + if (plate_data_src.size() > 0) + { + partplate_list.load_from_3mf_structure(plate_data_src); + + int plate_count = partplate_list.get_plate_count(); + plate_obj_size_infos.resize(plate_count, plate_obj_size_info_t()); + for (int index = 0; index < plate_count; index ++) { + Slic3r::GUI::PartPlate* cur_plate = (Slic3r::GUI::PartPlate *)partplate_list.get_plate(index); + + check_plate_wipe_tower(cur_plate, index, m_print_config, plate_obj_size_infos[index]); + BOOST_LOG_TRIVIAL(info) << boost::format("plate %1%, has_wipe_tower %2%, wipe_x %3%, wipe_y %4%, width %5%, depth %6%") + %(index+1) %plate_obj_size_infos[index].has_wipe_tower %plate_obj_size_infos[index].wipe_x %plate_obj_size_infos[index].wipe_y %plate_obj_size_infos[index].wipe_width %plate_obj_size_infos[index].wipe_depth; + } + + translate_models(partplate_list, m_print_config); + } + + /*for (ModelObject *model_object : m_models[0].objects) + for (ModelInstance *model_instance : model_object->instances) + { + const Vec3d &instance_offset = model_instance->get_offset(); + BOOST_LOG_TRIVIAL(info) << boost::format("instance %1% transform {%2%,%3%,%4%} at %5%:%6%")% model_object->name % instance_offset.x() % instance_offset.y() %instance_offset.z() % __FUNCTION__ % __LINE__<< std::endl; + }*/ + + //doing downward_check + std::vector downward_check_printers; + std::vector downward_check_status; + if (downward_check) { + bool use_default = false; + std::string default_path; + if (downward_settings.size() == 0) { + //parse from internal + std::string cli_config_file = resources_dir() + "/profiles/BBL/cli_config.json"; + load_downward_settings_list_from_config(cli_config_file, current_printer_name, current_printer_model, downward_settings); + use_default = true; + default_path = resources_dir() + "/profiles/BBL/machine_full/"; + } + for (auto const &file : downward_settings) { + DynamicPrintConfig config; + std::string config_type, config_name, filament_id, config_from, downward_printer; + std::string file_path = use_default?(default_path+file+".json"):file; + int ret = load_config_file(file_path, config, config_type, config_name, filament_id, config_from); + if (ret) { + record_exit_reson(outfile_dir, ret, 0, cli_errors[ret], sliced_info); + flush_and_exit(ret); + } + if ((config_type != "machine") || (config_from != "system")) { + BOOST_LOG_TRIVIAL(info) << boost::format("found invalid config type %1% or from %2% in file %3% when downward_check")%config_type %config_from %file_path; + record_exit_reson(outfile_dir, ret, 0, cli_errors[CLI_CONFIG_FILE_ERROR], sliced_info); + flush_and_exit(ret); + + } + BOOST_LOG_TRIVIAL(info) << boost::format("downward_check: loaded machine config %1%, from %2%")%config_name %file_path ; + + printer_plate_info_t printer_plate; + Pointfs temp_printable_area, temp_exclude_area; + + printer_plate.printer_name = config_name; + + temp_printable_area = config.option("printable_area", true)->values; + temp_exclude_area = config.option("bed_exclude_area", true)->values; + if (temp_printable_area.size() >= 4) { + printer_plate.printable_width = (int)(temp_printable_area[2].x() - temp_printable_area[0].x()); + printer_plate.printable_depth = (int)(temp_printable_area[2].y() - temp_printable_area[0].y()); + printer_plate.printable_height = (int)(config.opt_float("printable_height")); + } + if (temp_exclude_area.size() >= 4) { + printer_plate.exclude_width = (int)(temp_exclude_area[2].x() - temp_exclude_area[0].x()); + printer_plate.exclude_depth = (int)(temp_exclude_area[2].y() - temp_exclude_area[0].y()); + printer_plate.exclude_x = (int)temp_exclude_area[0].x(); + printer_plate.exclude_y = (int)temp_exclude_area[0].y(); + } + BOOST_LOG_TRIVIAL(info) << boost::format("downward_check: printable size{%1%,%2%, %3%}, exclude area{%4%, %5%: %6% x %7%}") + %printer_plate.printable_width %printer_plate.printable_depth %printer_plate.printable_height + %printer_plate.exclude_x %printer_plate.exclude_y %printer_plate.exclude_width %printer_plate.exclude_depth; + downward_check_printers.push_back(std::move(printer_plate)); + } + } + + int downward_check_size = downward_check_printers.size(); + if (downward_check_size > 0) + { + downward_check_status.resize(downward_check_size, false); + int plate_count = partplate_list.get_plate_count(); + int failed_count = 0; + for (int index = 0; index < plate_count; index ++) + { + if (failed_count == downward_check_size) { + BOOST_LOG_TRIVIAL(info) << boost::format("downward_check: all failed, size %1%")%downward_check_size; + break; + } + Slic3r::GUI::PartPlate* cur_plate = (Slic3r::GUI::PartPlate *)partplate_list.get_plate(index); + Vec3d size = plate_obj_size_infos[index].obj_bbox.size(); + + for (int index2 = 0; index2 < downward_check_size; index2 ++) + { + if (failed_count == downward_check_size) { + break; + } + if (downward_check_status[index2]) + continue; + printer_plate_info_t& plate_info = downward_check_printers[index2]; + if ((size.z() > plate_info.printable_height) || (size.y() > plate_info.printable_depth) || (size.x() > plate_info.printable_width)) { + BOOST_LOG_TRIVIAL(info) << boost::format("plate %1%, downward_check index %2%, name %3%, bbox {%4%, %5%, %6%} exceeds printer size {%7%, %8%, %9%}") + %(index+1) %(index2+1) %plate_info.printer_name + %size.x() % size.y() % size.z() %plate_info.printable_width %plate_info.printable_depth %plate_info.printable_height; + downward_check_status[index2] = true; + failed_count ++; + continue; + } + if (plate_info.exclude_width > 0) { + int real_width = plate_info.printable_width - plate_info.exclude_width; + int real_depth = plate_info.printable_depth - plate_info.exclude_depth; + if ((size.x() > real_width) && (size.y() > real_depth)) { + BOOST_LOG_TRIVIAL(info) << boost::format("plate %1%, downward_check index %2%, name %3%, bbox {%4%, %5%} exceeds real size without exclude_area {%6%, %7%}") + %(index+1) %(index2+1) %plate_info.printer_name + %size.x() % size.y() %real_width %real_depth; + downward_check_status[index2] = true; + failed_count ++; + continue; + } + } + } + } + if (failed_count < downward_check_size) + { + //has success ones + BOOST_LOG_TRIVIAL(info) << boost::format("downward_check: downward_check_size %1%, failed_count %2%")%downward_check_size %failed_count; + for (int index2 = 0; index2 < downward_check_size; index2 ++) + { + if (downward_check_status[index2]) + continue; + printer_plate_info_t& plate_info = downward_check_printers[index2]; + BOOST_LOG_TRIVIAL(info) << boost::format("downward_check: found compatible printer %1%")%plate_info.printer_name; + downward_compatible_machines.push_back(plate_info.printer_name); + } + sliced_info.downward_machines = downward_compatible_machines; + } + } + // Loop through transform options. bool user_center_specified = false; Points beds = get_bed_shape(m_print_config); @@ -3262,7 +3699,7 @@ int CLI::run(int argc, char **argv) } else { - BOOST_LOG_TRIVIAL(info) << "Before process command, no need to orient, object id :" << o->id().id<id().id<thumbnail_file; plate_data_src[index]->thumbnail_file.clear(); } + if (!plate_data_src[index]->no_light_thumbnail_file.empty()) { + BOOST_LOG_TRIVIAL(info) << boost::format("Plate %1%: clear loaded no_light_thumbnail %2%.")%(index+1)%plate_data_src[index]->no_light_thumbnail_file; + plate_data_src[index]->no_light_thumbnail_file.clear(); + } if (!plate_data_src[index]->top_file.empty()) { BOOST_LOG_TRIVIAL(info) << boost::format("Plate %1%: clear loaded top_thumbnail %2%.")%(index+1)%plate_data_src[index]->top_file; plate_data_src[index]->top_file.clear(); @@ -3350,21 +3791,6 @@ int CLI::run(int argc, char **argv) } } - auto get_print_sequence = [](Slic3r::GUI::PartPlate* plate, DynamicPrintConfig& print_config, bool &is_seq_print) { - PrintSequence curr_plate_seq = plate->get_print_seq(); - if (curr_plate_seq == PrintSequence::ByDefault) { - auto seq_print = print_config.option>("print_sequence"); - if (seq_print && (seq_print->value == PrintSequence::ByObject)) { - BOOST_LOG_TRIVIAL(info) << boost::format("plate print by object, set from global"); - is_seq_print = true; - } - } - else if (curr_plate_seq == PrintSequence::ByObject) { - BOOST_LOG_TRIVIAL(info) << boost::format("plate print by object, set from plate self"); - is_seq_print = true; - } - }; - if (!assemble_plate_info_list.empty()) { //need to arrange for assemble cases @@ -3422,6 +3848,9 @@ int CLI::run(int argc, char **argv) int plate_count = partplate_list.get_plate_count(); auto printer_structure_opt = m_print_config.option>("printer_structure"); + const float tower_brim_width = m_print_config.option("prime_tower_width", true)->value; + const float tower_margin = WIPE_TOWER_MARGIN + tower_brim_width; + // set the default position, the same with print config(left top) float x = WIPE_TOWER_DEFAULT_X_POS; float y = WIPE_TOWER_DEFAULT_Y_POS; @@ -3429,11 +3858,11 @@ int CLI::run(int argc, char **argv) x = I3_WIPE_TOWER_DEFAULT_X_POS; y = I3_WIPE_TOWER_DEFAULT_Y_POS; } - if (x < WIPE_TOWER_MARGIN) { - x = WIPE_TOWER_MARGIN; + if (x < tower_margin) { + x = tower_margin; } - if (y < WIPE_TOWER_MARGIN) { - y = WIPE_TOWER_MARGIN; + if (y < tower_margin) { + y = tower_margin; } ConfigOptionFloat wt_x_opt(x); @@ -3674,6 +4103,8 @@ int CLI::run(int argc, char **argv) int extruder_size = used_filament_set.size(); auto printer_structure_opt = m_print_config.option>("printer_structure"); + const float tower_brim_width = m_print_config.option("prime_tower_width", true)->value; + const float tower_margin = WIPE_TOWER_MARGIN + tower_brim_width; // set the default position, the same with print config(left top) float x = WIPE_TOWER_DEFAULT_X_POS; float y = WIPE_TOWER_DEFAULT_Y_POS; @@ -3682,11 +4113,11 @@ int CLI::run(int argc, char **argv) y = I3_WIPE_TOWER_DEFAULT_Y_POS; } - if (x < WIPE_TOWER_MARGIN) { - x = WIPE_TOWER_MARGIN; + if (x < tower_margin) { + x = tower_margin; } - if (y < WIPE_TOWER_MARGIN) { - y = WIPE_TOWER_MARGIN; + if (y < tower_margin) { + y = tower_margin; } ConfigOptionFloat wt_x_opt(x); ConfigOptionFloat wt_y_opt(y); @@ -4181,7 +4612,7 @@ int CLI::run(int argc, char **argv) // loop through action options bool export_to_3mf = false, load_slicedata = false, export_slicedata = false, export_slicedata_error = false; bool no_check = false; - std::string export_3mf_file, load_slice_data_dir, export_slice_data_dir; + std::string export_3mf_file, load_slice_data_dir, export_slice_data_dir, export_stls_dir; std::vector calibration_thumbnails; std::vector plate_object_count(partplate_list.get_plate_count(), 0); int max_slicing_time_per_plate = 0, max_triangle_count_per_plate = 0, sliced_plate = -1; @@ -4215,9 +4646,9 @@ int CLI::run(int argc, char **argv) record_exit_reson(outfile_dir, CLI_INVALID_PARAMS, 0, cli_errors[CLI_INVALID_PARAMS], sliced_info); flush_and_exit(CLI_INVALID_PARAMS); } - else if (shrink_to_new_bed) + else if (shrink_to_new_bed > 0) { - BOOST_LOG_TRIVIAL(warning) << "use load_slicedata when shrink_to_new_bed(switch printer from small to bigger." << std::endl; + BOOST_LOG_TRIVIAL(warning) << "use load_slicedata when shrink_to_new_bed." << std::endl; //record_exit_reson(outfile_dir, CLI_INVALID_PARAMS, 0, cli_errors[CLI_INVALID_PARAMS], sliced_info); //flush_and_exit(CLI_INVALID_PARAMS); } @@ -4249,6 +4680,14 @@ int CLI::run(int argc, char **argv) record_exit_reson(outfile_dir, CLI_EXPORT_STL_ERROR, 0, cli_errors[CLI_EXPORT_STL_ERROR], sliced_info); flush_and_exit(CLI_EXPORT_STL_ERROR); } + } else if (opt_key == "export_stls") { + export_stls_dir = m_config.opt_string(opt_key); + for (auto &model : m_models) + model.add_default_instances(); + if (! this->export_models(IO::STL, export_stls_dir)) { + record_exit_reson(outfile_dir, CLI_EXPORT_STL_ERROR, 0, cli_errors[CLI_EXPORT_STL_ERROR], sliced_info); + flush_and_exit(CLI_EXPORT_STL_ERROR); + } } else if (opt_key == "export_obj") { for (auto &model : m_models) model.add_default_instances(); @@ -4389,6 +4828,10 @@ int CLI::run(int argc, char **argv) BOOST_LOG_TRIVIAL(info) << boost::format("Plate %1%: clear loaded thumbnail %2%.")%(index+1)%plate_data_src[index]->thumbnail_file; plate_data_src[index]->thumbnail_file.clear(); } + if (!plate_data_src[index]->no_light_thumbnail_file.empty()) { + BOOST_LOG_TRIVIAL(info) << boost::format("Plate %1%: clear loaded no_light_thumbnail %2%.")%(index+1)%plate_data_src[index]->no_light_thumbnail_file; + plate_data_src[index]->no_light_thumbnail_file.clear(); + } if (!plate_data_src[index]->top_file.empty()) { BOOST_LOG_TRIVIAL(info) << boost::format("Plate %1%: clear loaded top_thumbnail %2%.")%(index+1)%plate_data_src[index]->top_file; plate_data_src[index]->top_file.clear(); @@ -4415,7 +4858,7 @@ int CLI::run(int argc, char **argv) if (vol->is_model_part()) { size_t volume_triangle_count = vol->mesh().facets_count(); triangle_count += volume_triangle_count; - BOOST_LOG_TRIVIAL(info) << boost::format("volume triangle count %1%, total %2%")%volume_triangle_count %triangle_count; + BOOST_LOG_TRIVIAL(debug) << boost::format("volume triangle count %1%, total %2%")%volume_triangle_count %triangle_count; if ((max_triangle_count_per_plate != 0) && (triangle_count > max_triangle_count_per_plate)) { BOOST_LOG_TRIVIAL(error) << "plate "<< index+1<< ": triangle count " << triangle_count <<" exceeds the limit:" << max_triangle_count_per_plate; @@ -4740,7 +5183,7 @@ int CLI::run(int argc, char **argv) global_begin_time = (long long)Slic3r::Utils::get_current_time_utc(); if (export_to_3mf) { //BBS: export as bbl 3mf - std::vector thumbnails, top_thumbnails, pick_thumbnails; + std::vector thumbnails, no_light_thumbnails, top_thumbnails, pick_thumbnails; std::vector plate_bboxes; PlateDataPtrs plate_data_list; partplate_list.store_to_3mf_structure(plate_data_list); @@ -4779,8 +5222,9 @@ int CLI::run(int argc, char **argv) #endif bool need_regenerate_thumbnail = oriented_or_arranged || regenerate_thumbnails; + bool need_regenerate_no_light_thumbnail = oriented_or_arranged || regenerate_thumbnails; bool need_regenerate_top_thumbnail = oriented_or_arranged || regenerate_thumbnails; - bool need_create_thumbnail_group = false, need_create_top_group = false; + bool need_create_thumbnail_group = false, need_create_no_light_group = false, need_create_top_group = false; // get type and color for platedata auto* filament_types = dynamic_cast(m_print_config.option("filament_type")); @@ -4837,6 +5281,27 @@ int CLI::run(int argc, char **argv) } } + if (plate_data->no_light_thumbnail_file.empty()) { + if (!regenerate_thumbnails && (plate_data_src.size() > i)) { + plate_data->no_light_thumbnail_file = plate_data_src[i]->no_light_thumbnail_file; + } + if (plate_data->no_light_thumbnail_file.empty() || (!boost::filesystem::exists(plate_data->no_light_thumbnail_file))) { + BOOST_LOG_TRIVIAL(info) << boost::format("thumbnails stage: plate %1%'s no_light_thumbnail_file %2% also not there, need to regenerate")%(i+1)%plate_data->no_light_thumbnail_file; + if (!skip_this_plate) { + need_regenerate_no_light_thumbnail = true; + need_create_no_light_group = true; + } + } + else { + if (regenerate_thumbnails) { + BOOST_LOG_TRIVIAL(info) << boost::format("thumbnails stage: plate %1%'s no_light_thumbnail file %2% cleared, need to regenerate")%(i+1) %plate_data->no_light_thumbnail_file; + plate_data->no_light_thumbnail_file.clear(); + } + else + BOOST_LOG_TRIVIAL(info) << boost::format("thumbnails stage: plate %1%'s no_light_thumbnail file exists, no need to regenerate")%(i+1); + } + } + if (plate_data->top_file.empty() || plate_data->pick_file.empty()) { if (!regenerate_thumbnails && (plate_data_src.size() > i)) { plate_data->top_file = plate_data_src[i]->top_file; @@ -4862,7 +5327,7 @@ int CLI::run(int argc, char **argv) } } - if (need_regenerate_thumbnail || need_regenerate_top_thumbnail) { + if (need_regenerate_thumbnail || need_regenerate_no_light_thumbnail || need_regenerate_top_thumbnail) { std::vector colors; if (filament_color) { colors= filament_color->vserialize(); @@ -5050,6 +5515,60 @@ int CLI::run(int argc, char **argv) BOOST_LOG_TRIVIAL(info) << boost::format("plate %1%: add thumbnail data into group")%(i+1); } + //no light thumbnail + if (!plate_data->no_light_thumbnail_file.empty() && (boost::filesystem::exists(plate_data->no_light_thumbnail_file))) + { + if ((plate_to_slice != 0) && (plate_to_slice != (i + 1))) { + BOOST_LOG_TRIVIAL(info) << boost::format("Line %1%: regenerate thumbnail, clear plate %2%'s no_light_thumbnail_file path to empty.")%__LINE__%(i+1); + plate_data->no_light_thumbnail_file.clear(); + } + else + BOOST_LOG_TRIVIAL(info) << boost::format("plate %1% has valid no_light_thumbnail_file extracted from 3mf, directly using it")%(i+1); + } + else{ + ThumbnailData *no_light_thumbnail = &part_plate->no_light_thumbnail_data; + if ((plate_to_slice != 0) && (plate_to_slice != (i + 1))) { + BOOST_LOG_TRIVIAL(info) << boost::format("Line %1%: regenerate thumbnail, Skip plate %2%.")%__LINE__%(i+1); + part_plate->no_light_thumbnail_data.reset(); + plate_data->no_light_thumbnail_file.clear(); + } + else { + unsigned int thumbnail_width = 512, thumbnail_height = 512; + const ThumbnailsParams thumbnail_params = { {}, false, true, false, true, i }; + + BOOST_LOG_TRIVIAL(info) << boost::format("plate %1%'s no_light_thumbnail_file missed, need to regenerate")%(i+1); + switch (Slic3r::GUI::OpenGLManager::get_framebuffers_type()) + { + case Slic3r::GUI::OpenGLManager::EFramebufferType::Arb: + { + BOOST_LOG_TRIVIAL(info) << boost::format("framebuffer_type: ARB"); + Slic3r::GUI::GLCanvas3D::render_thumbnail_framebuffer(*no_light_thumbnail, + thumbnail_width, thumbnail_height, thumbnail_params, + partplate_list, model.objects, glvolume_collection, colors_out, shader, Slic3r::GUI::Camera::EType::Ortho, false, false, true); + break; + } + case Slic3r::GUI::OpenGLManager::EFramebufferType::Ext: + { + BOOST_LOG_TRIVIAL(info) << boost::format("framebuffer_type: EXT"); + Slic3r::GUI::GLCanvas3D::render_thumbnail_framebuffer_ext(*no_light_thumbnail, + thumbnail_width, thumbnail_height, thumbnail_params, + partplate_list, model.objects, glvolume_collection, colors_out, shader, Slic3r::GUI::Camera::EType::Ortho, false, false, true); + break; + } + default: + BOOST_LOG_TRIVIAL(info) << boost::format("framebuffer_type: unknown"); + break; + } + plate_data->no_light_thumbnail_file = "valid_no_light"; + BOOST_LOG_TRIVIAL(info) << boost::format("plate %1%'s no_light thumbnail,finished rendering")%(i+1); + } + } + + if (need_create_no_light_group) { + no_light_thumbnails.push_back(&part_plate->no_light_thumbnail_data); + BOOST_LOG_TRIVIAL(info) << boost::format("plate %1%: add thumbnail data for no_light into group")%(i+1); + } + //top thumbnails /*if (part_plate->top_thumbnail_data.is_valid() && part_plate->pick_thumbnail_data.is_valid()) { if ((plate_to_slice != 0) && (plate_to_slice != (i + 1))) { @@ -5160,6 +5679,9 @@ int CLI::run(int argc, char **argv) BOOST_LOG_TRIVIAL(info) << boost::format("plate %1%'s all the thumbnails skipped, reset here")%(i+1); plate_data->plate_thumbnail.reset(); plate_data->thumbnail_file.clear(); + part_plate->no_light_thumbnail_data.reset(); + plate_data->no_light_thumbnail_file.clear(); + part_plate->top_thumbnail_data.reset(); part_plate->pick_thumbnail_data.reset(); plate_data->top_file.clear(); @@ -5189,6 +5711,11 @@ int CLI::run(int argc, char **argv) BOOST_LOG_TRIVIAL(info) << boost::format("plate %1%: add thumbnail data into group")%(i+1); } + if (need_create_no_light_group) { + no_light_thumbnails.push_back(&part_plate->no_light_thumbnail_data); + BOOST_LOG_TRIVIAL(info) << boost::format("plate %1%: add thumbnail data into group")%(i+1); + } + if (need_create_top_group) { top_thumbnails.push_back(&part_plate->top_thumbnail_data); pick_thumbnails.push_back(&part_plate->pick_thumbnail_data); @@ -5334,7 +5861,19 @@ int CLI::run(int argc, char **argv) model.mk_version = makerlab_version; BOOST_LOG_TRIVIAL(info) << boost::format("mk_name %1%, mk_version %2%")%makerlab_name %makerlab_version; } - if (! this->export_project(&m_models[0], export_3mf_file, plate_data_list, project_presets, thumbnails, top_thumbnails, pick_thumbnails, + + if (!metadata_name.empty()) { + Model &model = m_models[0]; + + model.md_value = metadata_value; + model.md_name = metadata_name; + for (unsigned int i = 0; i < metadata_name.size(); i++) + { + BOOST_LOG_TRIVIAL(info) << boost::format("index %1% metadata_name %2%, metadata_value %3%")%i %metadata_name[i] %metadata_value[i]; + } + } + + if (!this->export_project(&m_models[0], export_3mf_file, plate_data_list, project_presets, thumbnails, no_light_thumbnails, top_thumbnails, pick_thumbnails, calibration_thumbnails, plate_bboxes, &m_print_config, minimum_save, plate_to_slice - 1)) { release_PlateData_list(plate_data_list); @@ -5344,6 +5883,8 @@ int CLI::run(int argc, char **argv) for (unsigned int i = 0; i < thumbnails.size(); i++) thumbnails[i]->reset(); + for (unsigned int i = 0; i < no_light_thumbnails.size(); i++) + no_light_thumbnails[i]->reset(); for (unsigned int i = 0; i < top_thumbnails.size(); i++) top_thumbnails[i]->reset(); for (unsigned int i = 0; i < pick_thumbnails.size(); i++) @@ -5517,7 +6058,7 @@ void CLI::print_help(bool include_print_options, PrinterTechnology printer_techn }*/ } -bool CLI::export_models(IO::ExportFormat format) +bool CLI::export_models(IO::ExportFormat format, std::string path_dir) { for (Model &model : m_models) { const std::string path = this->output_filepath(model, format); @@ -5538,7 +6079,7 @@ bool CLI::export_models(IO::ExportFormat format) unsigned int index = 1; for (ModelObject* model_object : model.objects) { - const std::string path = this->output_filepath(*model_object, index++, format); + const std::string path = this->output_filepath(*model_object, index++, format, path_dir); success = Slic3r::store_stl(path.c_str(), model_object, true); if (success) BOOST_LOG_TRIVIAL(info) << "Model successfully exported to " << path << std::endl; @@ -5559,7 +6100,11 @@ bool CLI::export_models(IO::ExportFormat format) //BBS: add export_project function bool CLI::export_project(Model *model, std::string& path, PlateDataPtrs &partplate_data, - std::vector& project_presets, std::vector& thumbnails, std::vector& top_thumbnails, std::vector& pick_thumbnails, + std::vector & project_presets, + std::vector &thumbnails, + std::vector &no_light_thumbnails, + std::vector &top_thumbnails, + std::vector &pick_thumbnails, std::vector& calibration_thumbnails, std::vector& plate_bboxes, const DynamicPrintConfig* config, bool minimum_save, int plate_to_export) { //const std::string path = this->output_filepath(*model, IO::TMF); @@ -5572,6 +6117,7 @@ bool CLI::export_project(Model *model, std::string& path, PlateDataPtrs &partpla store_params.project_presets = project_presets; store_params.config = (DynamicPrintConfig*)config; store_params.thumbnail_data = thumbnails; + store_params.no_light_thumbnail_data = no_light_thumbnails; store_params.top_thumbnail_data = top_thumbnails; store_params.pick_thumbnail_data = pick_thumbnails; store_params.calibration_thumbnail_data = calibration_thumbnails; @@ -5616,7 +6162,7 @@ std::string CLI::output_filepath(const Model &model, IO::ExportFormat format) co return proposed_path.string(); } -std::string CLI::output_filepath(const ModelObject &object, unsigned int index, IO::ExportFormat format) const +std::string CLI::output_filepath(const ModelObject &object, unsigned int index, IO::ExportFormat format, std::string path_dir) const { std::string ext, subdir, file_name, output_path; switch (format) { @@ -5645,10 +6191,15 @@ std::string CLI::output_filepath(const ModelObject &object, unsigned int index, if (pos != ext_pos) file_name += ext; - BOOST_LOG_TRIVIAL(trace) << __FUNCTION__ << ": file_name="< range_params; +}height_range_info_t; + +typedef struct _assembled_param_info { + std::map print_params; + std::vector height_ranges; +}assembled_param_info_t; + typedef struct _assemble_object_info { std::string path; int count; @@ -42,6 +60,7 @@ typedef struct _assemble_object_info { std::vector pos_y; std::vector pos_z; std::map print_params; + std::vector height_ranges; }assemble_object_info_t; typedef struct _assemble_plate_info { @@ -52,9 +71,32 @@ typedef struct _assemble_plate_info { std::map plate_params; std::vector assemble_obj_list; std::vector loaded_obj_list; + std::map assembled_param_list; }assemble_plate_info_t; +typedef struct _printer_plate_info { + std::string printer_name; + int printable_width{0}; + int printable_depth{0}; + int printable_height{0}; + + int exclude_width{0}; + int exclude_depth{0}; + int exclude_x{0}; + int exclude_y{0}; +}printer_plate_info_t; + +typedef struct _plate_obj_size_info { + bool has_wipe_tower{false}; + float wipe_x{0.f}; + float wipe_y{0.f}; + float wipe_width{0.f}; + float wipe_depth{0.f}; + BoundingBoxf3 obj_bbox; +}plate_obj_size_info_t; + + class CLI { public: int run(int argc, char **argv); @@ -74,17 +116,20 @@ private: void print_help(bool include_print_options = false, PrinterTechnology printer_technology = ptAny) const; /// Exports loaded models to a file of the specified format, according to the options affecting output filename. - bool export_models(IO::ExportFormat format); + bool export_models(IO::ExportFormat format, std::string path = std::string()); //BBS: add export_project function bool export_project(Model *model, std::string& path, PlateDataPtrs &partplate_data, std::vector& project_presets, - std::vector& thumbnails, std::vector& top_thumbnails, std::vector& pick_thumbnails, + std::vector &thumbnails, + std::vector &no_light_thumbnails, + std::vector &top_thumbnails, + std::vector &pick_thumbnails, std::vector& calibration_thumbnails, std::vector& plate_bboxes, const DynamicPrintConfig* config, bool minimum_save, int plate_to_export = -1); bool has_print_action() const { return m_config.opt_bool("export_gcode") || m_config.opt_bool("export_sla"); } std::string output_filepath(const Model &model, IO::ExportFormat format) const; - std::string output_filepath(const ModelObject &object, unsigned int index, IO::ExportFormat format) const; + std::string output_filepath(const ModelObject &object, unsigned int index, IO::ExportFormat format, std::string path_dir) const; }; } diff --git a/src/imguizmo/ImGuizmo.cpp b/src/imguizmo/ImGuizmo.cpp index 20ec388cb6..1acf8b63e4 100644 --- a/src/imguizmo/ImGuizmo.cpp +++ b/src/imguizmo/ImGuizmo.cpp @@ -662,10 +662,18 @@ namespace IMGUIZMO_NAMESPACE Colors[HATCHED_AXIS_LINES] = ImVec4(0.000f, 0.000f, 0.000f, 0.500f); Colors[TEXT] = ImVec4(1.000f, 1.000f, 1.000f, 1.000f); Colors[TEXT_SHADOW] = ImVec4(0.000f, 0.000f, 0.000f, 1.000f); + Colors[FACE] = ImVec4(0.776f, 0.804f, 0.839f, 1.000f); strcpy(AxisLabels[Axis_X], "x"); strcpy(AxisLabels[Axis_Y], "y"); strcpy(AxisLabels[Axis_Z], "z"); + + strcpy(FaceLabels[FACE_BACK], "back"); + strcpy(FaceLabels[FACE_TOP], "top"); + strcpy(FaceLabels[FACE_RIGHT], "right"); + strcpy(FaceLabels[FACE_FRONT], "front"); + strcpy(FaceLabels[FACE_BOTTOM], "bottom"); + strcpy(FaceLabels[FACE_LEFT], "left"); } struct Context @@ -2885,6 +2893,7 @@ namespace IMGUIZMO_NAMESPACE const vec_t dx = directionUnary[perpXIndex]; const vec_t dy = directionUnary[perpYIndex]; const vec_t origin = directionUnary[normalIndex] - dx - dy; + ImU32 faceColor = GetColorU32(FACE); for (int iPanel = 0; iPanel < 9; iPanel++) { vec_t boxCoord = boxOrigin + indexVectorX * float(iPanel % 3) + indexVectorY * float(iPanel / 3) + makeVect(1.f, 1.f, 1.f); @@ -2910,8 +2919,7 @@ namespace IMGUIZMO_NAMESPACE // draw face with lighter color if (iPass) { - ImU32 directionColor = GetColorU32(DIRECTION_X + normalIndex); - gContext.mDrawList->AddConvexPolyFilled(faceCoordsScreen, 4, (directionColor | IM_COL32(0x80, 0x80, 0x80, 0x80)) | (isInside ? IM_COL32(0x08, 0x08, 0x08, 0) : 0)); + gContext.mDrawList->AddConvexPolyFilled(faceCoordsScreen, 4, faceColor); if (boxes[boxCoordInt]) { gContext.mDrawList->AddConvexPolyFilled(faceCoordsScreen, 4, IM_COL32(0xF0, 0xA0, 0x60, 0x80)); @@ -2929,6 +2937,53 @@ namespace IMGUIZMO_NAMESPACE } } } + + if (iPass) { + // Draw face label + ImDrawList* drawList = gContext.mDrawList; + int vtx_write_start = drawList->VtxBuffer.Size; + + const auto label = gContext.mStyle.FaceLabels[iFace]; + ImVec2 labelSize = ImGui::CalcTextSize(label); + float scaleFactor = 2 / size.y; + auto labelOrigin = labelSize * 0.5; + + drawList->AddText(ImVec2(0, 0), GetColorU32(TEXT), label); + ImDrawVert* vtx_write_end = drawList->_VtxWritePtr; + + vec_t tdx = directionUnary[perpXIndex]; + vec_t tdy = directionUnary[perpYIndex]; + ImVec2 invert2 = {1, 1}; + switch (iFace) { + case 0: // Back + tdx = directionUnary[2]; + tdy = directionUnary[1]; + invert2 = {-1, - 1}; + break; + case 3: // Front + tdx = directionUnary[2]; + tdy = directionUnary[1]; + invert2.x = -1; + break; + case 1: // Top + invert2.y = -1; + break; + case 4: // Bottom + invert2 = {-1, -1}; + break; + case 2: // Right + invert2.y = -1; + break; + case 5: // Left + break; + } + + for (auto v = (drawList->VtxBuffer.Data + vtx_write_start); v < vtx_write_end; v++) { + auto pp = ((v->pos - labelOrigin) * scaleFactor * invert2 + ImVec2{0.5, 0.5}) * 2.f; + vec_t pt = tdx * pp.x + tdy * pp.y; + v->pos = worldToPos((pt + origin) * 0.5 * invert, res, position, size); + } + } } } @@ -2962,7 +3017,7 @@ namespace IMGUIZMO_NAMESPACE if (!visible) { directionColorV.w *= 0.3f; } - ImU32 directionColor = ImGui::ColorConvertFloat4ToU32(directionColorV); + ImU32 directionColor = ImGui::ColorConvertFloat4ToU32(directionColorV) | IM_COL32(0x80, 0x80, 0x80, 0x00); drawList->AddLine(baseSSpace, worldDirSSpace, directionColor, gContext.mStyle.TranslationLineThickness); // Arrow head begin diff --git a/src/imguizmo/ImGuizmo.h b/src/imguizmo/ImGuizmo.h index 493cd7ce6d..7f20bc13c2 100644 --- a/src/imguizmo/ImGuizmo.h +++ b/src/imguizmo/ImGuizmo.h @@ -249,6 +249,7 @@ namespace IMGUIZMO_NAMESPACE HATCHED_AXIS_LINES, TEXT, TEXT_SHADOW, + FACE, COUNT }; @@ -260,6 +261,17 @@ namespace IMGUIZMO_NAMESPACE Axis_COUNT, }; + enum FACES + { + FACE_BACK, + FACE_TOP, + FACE_RIGHT, + FACE_FRONT, + FACE_BOTTOM, + FACE_LEFT, + FACES_COUNT + }; + struct Style { IMGUI_API Style(); @@ -276,6 +288,7 @@ namespace IMGUIZMO_NAMESPACE ImVec4 Colors[COLOR::COUNT]; char AxisLabels[Axis::Axis_COUNT][32]; + char FaceLabels[FACES::FACES_COUNT][32]; }; IMGUI_API Style& GetStyle(); diff --git a/src/libslic3r/Algorithm/PathSorting.hpp b/src/libslic3r/Algorithm/PathSorting.hpp index da35f93786..ab44627281 100644 --- a/src/libslic3r/Algorithm/PathSorting.hpp +++ b/src/libslic3r/Algorithm/PathSorting.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2023 Pavel Mikuš @Godrak -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef SRC_LIBSLIC3R_PATH_SORTING_HPP_ #define SRC_LIBSLIC3R_PATH_SORTING_HPP_ diff --git a/src/libslic3r/Algorithm/RegionExpansion.cpp b/src/libslic3r/Algorithm/RegionExpansion.cpp index 17e8bd9a72..ee2a5aaf2a 100644 --- a/src/libslic3r/Algorithm/RegionExpansion.cpp +++ b/src/libslic3r/Algorithm/RegionExpansion.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2022 - 2023 Vojtěch Bubník @bubnikv -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "RegionExpansion.hpp" #include diff --git a/src/libslic3r/Algorithm/RegionExpansion.hpp b/src/libslic3r/Algorithm/RegionExpansion.hpp index 62e32526aa..eb99674902 100644 --- a/src/libslic3r/Algorithm/RegionExpansion.hpp +++ b/src/libslic3r/Algorithm/RegionExpansion.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2022 - 2023 Vojtěch Bubník @bubnikv -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef SRC_LIBSLIC3R_ALGORITHM_REGION_EXPANSION_HPP_ #define SRC_LIBSLIC3R_ALGORITHM_REGION_EXPANSION_HPP_ diff --git a/src/libslic3r/AppConfig.cpp b/src/libslic3r/AppConfig.cpp index 49a7228f1f..51b7a10372 100644 --- a/src/libslic3r/AppConfig.cpp +++ b/src/libslic3r/AppConfig.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2017 - 2023 Oleksandra Iushchenko @YuSanka, Vojtěch Bubník @bubnikv, Pavel Mikuš @Godrak, David Kocík @kocikdav, Lukáš Matěna @lukasmatena, Enrico Turri @enricoturri1966, Lukáš Hejl @hejllukas, Filip Sykala @Jony01, Vojtěch Král @vojtechkral -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "libslic3r/libslic3r.h" #include "libslic3r/Utils.hpp" #include "AppConfig.hpp" diff --git a/src/libslic3r/AppConfig.hpp b/src/libslic3r/AppConfig.hpp index 2d2134f10b..f58cfedb65 100644 --- a/src/libslic3r/AppConfig.hpp +++ b/src/libslic3r/AppConfig.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2017 - 2023 Vojtěch Bubník @bubnikv, David Kocík @kocikdav, Lukáš Matěna @lukasmatena, Filip Sykala @Jony01, Enrico Turri @enricoturri1966, Oleksandra Iushchenko @YuSanka, Vojtěch Král @vojtechkral -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_AppConfig_hpp_ #define slic3r_AppConfig_hpp_ diff --git a/src/libslic3r/BoundingBox.hpp b/src/libslic3r/BoundingBox.hpp index 8654669eb3..64f9725218 100644 --- a/src/libslic3r/BoundingBox.hpp +++ b/src/libslic3r/BoundingBox.hpp @@ -1,8 +1,3 @@ -///|/ Copyright (c) Prusa Research 2016 - 2023 Tomáš Mészáros @tamasmeszaros, Vojtěch Bubník @bubnikv, Filip Sykala @Jony01, Enrico Turri @enricoturri1966 -///|/ Copyright (c) Slic3r 2014 - 2015 Alessandro Ranellucci @alranel -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_BoundingBox_hpp_ #define slic3r_BoundingBox_hpp_ diff --git a/src/libslic3r/BridgeDetector.hpp b/src/libslic3r/BridgeDetector.hpp index 6025f9d3e0..1e5bb1a101 100644 --- a/src/libslic3r/BridgeDetector.hpp +++ b/src/libslic3r/BridgeDetector.hpp @@ -1,8 +1,3 @@ -///|/ Copyright (c) Prusa Research 2016 - 2023 Pavel Mikuš @Godrak, Vojtěch Bubník @bubnikv -///|/ Copyright (c) Slic3r 2014 - 2015 Alessandro Ranellucci @alranel -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_BridgeDetector_hpp_ #define slic3r_BridgeDetector_hpp_ diff --git a/src/libslic3r/Brim.cpp b/src/libslic3r/Brim.cpp index 940e5e1ee6..fe8f778647 100644 --- a/src/libslic3r/Brim.cpp +++ b/src/libslic3r/Brim.cpp @@ -1,8 +1,3 @@ -///|/ Copyright (c) Prusa Research 2021 - 2023 Vojtěch Bubník @bubnikv, Lukáš Matěna @lukasmatena, Lukáš Hejl @hejllukas -///|/ Copyright (c) SuperSlicer 2023 Remi Durand @supermerill -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "clipper/clipper_z.hpp" #include "ClipperUtils.hpp" @@ -595,7 +590,8 @@ double getadhesionCoeff(const PrintObject* printObject) for (auto iter = extrudersFirstLayer.begin(); iter != extrudersFirstLayer.end(); iter++) if (modelVolume->extruder_id() == *iter) { if (Model::extruderParamsMap.find(modelVolume->extruder_id()) != Model::extruderParamsMap.end()) - if (Model::extruderParamsMap.at(modelVolume->extruder_id()).materialName == "PETG") { + if (Model::extruderParamsMap.at(modelVolume->extruder_id()).materialName == "PETG" || + Model::extruderParamsMap.at(modelVolume->extruder_id()).materialName == "PCTG") { adhesionCoeff = 2; } else if (Model::extruderParamsMap.at(modelVolume->extruder_id()).materialName == "TPU") { diff --git a/src/libslic3r/CMakeLists.txt b/src/libslic3r/CMakeLists.txt index 3ed7972d22..38a1b24996 100644 --- a/src/libslic3r/CMakeLists.txt +++ b/src/libslic3r/CMakeLists.txt @@ -1,10 +1,3 @@ -#/|/ Copyright (c) Prusa Research 2018 - 2023 Tomáš Mészáros @tamasmeszaros, Oleksandra Iushchenko @YuSanka, Enrico Turri @enricoturri1966, Vojtěch Bubník @bubnikv, Pavel Mikuš @Godrak, Lukáš Hejl @hejllukas, Lukáš Matěna @lukasmatena, Filip Sykala @Jony01, David Kocík @kocikdav, Vojtěch Král @vojtechkral -#/|/ Copyright (c) BambuStudio 2023 manch1n @manch1n -#/|/ Copyright (c) 2023 Mimoja @Mimoja -#/|/ Copyright (c) 2022 ole00 @ole00 -#/|/ -#/|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -#/|/ cmake_minimum_required(VERSION 3.13) project(libslic3r) diff --git a/src/libslic3r/ClipperUtils.cpp b/src/libslic3r/ClipperUtils.cpp index eeb43f6f02..4c73ac87ee 100644 --- a/src/libslic3r/ClipperUtils.cpp +++ b/src/libslic3r/ClipperUtils.cpp @@ -1,14 +1,3 @@ -///|/ Copyright (c) Prusa Research 2016 - 2023 Tomáš Mészáros @tamasmeszaros, Vojtěch Bubník @bubnikv, Pavel Mikuš @Godrak, Lukáš Matěna @lukasmatena, Lukáš Hejl @hejllukas, Filip Sykala @Jony01 -///|/ Copyright (c) Slic3r 2013 - 2015 Alessandro Ranellucci @alranel -///|/ Copyright (c) 2015 Maksim Derbasov @ntfshard -///|/ -///|/ ported from lib/Slic3r/Geometry/Clipper.pm: -///|/ Copyright (c) Prusa Research 2016 - 2022 Vojtěch Bubník @bubnikv -///|/ Copyright (c) Slic3r 2011 - 2014 Alessandro Ranellucci @alranel -///|/ Copyright (c) 2012 - 2013 Mike Sheldrake @mesheldrake -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "ClipperUtils.hpp" #include "Geometry.hpp" #include "ShortestPath.hpp" diff --git a/src/libslic3r/ClipperUtils.hpp b/src/libslic3r/ClipperUtils.hpp index 3607b0a69d..05c3eb4a57 100644 --- a/src/libslic3r/ClipperUtils.hpp +++ b/src/libslic3r/ClipperUtils.hpp @@ -1,8 +1,3 @@ -///|/ Copyright (c) Prusa Research 2016 - 2023 Tomáš Mészáros @tamasmeszaros, Vojtěch Bubník @bubnikv, Pavel Mikuš @Godrak, Lukáš Matěna @lukasmatena, Lukáš Hejl @hejllukas, Filip Sykala @Jony01 -///|/ Copyright (c) Slic3r 2013 - 2015 Alessandro Ranellucci @alranel -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_ClipperUtils_hpp_ #define slic3r_ClipperUtils_hpp_ diff --git a/src/libslic3r/ClipperZUtils.hpp b/src/libslic3r/ClipperZUtils.hpp index f6b249b47f..001a3f2daa 100644 --- a/src/libslic3r/ClipperZUtils.hpp +++ b/src/libslic3r/ClipperZUtils.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2022 - 2023 Vojtěch Bubník @bubnikv -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_ClipperZUtils_hpp_ #define slic3r_ClipperZUtils_hpp_ diff --git a/src/libslic3r/Color.hpp b/src/libslic3r/Color.hpp index 4c96458b40..ad119d3c56 100644 --- a/src/libslic3r/Color.hpp +++ b/src/libslic3r/Color.hpp @@ -91,8 +91,10 @@ public: bool operator != (const ColorRGBA& other) const { return !operator==(other); } bool operator < (const ColorRGBA& other) const; bool operator > (const ColorRGBA& other) const; + float operator[](int i) const { return m_data[i]; } + float& operator[](int i) { return m_data[i]; } - ColorRGBA operator + (const ColorRGBA& other) const; + ColorRGBA operator + (const ColorRGBA& other) const; ColorRGBA operator * (float value) const; const float* const data() const { return m_data.data(); } diff --git a/src/libslic3r/CutSurface.cpp b/src/libslic3r/CutSurface.cpp index 2fe23ead09..619e5e9f72 100644 --- a/src/libslic3r/CutSurface.cpp +++ b/src/libslic3r/CutSurface.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2022 - 2023 Vojtěch Bubník @bubnikv, Filip Sykala @Jony01 -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "CutSurface.hpp" /// models_input.obj - Check transormation of model to each others diff --git a/src/libslic3r/CutSurface.hpp b/src/libslic3r/CutSurface.hpp index f5b41cdaeb..9f4e3159cf 100644 --- a/src/libslic3r/CutSurface.hpp +++ b/src/libslic3r/CutSurface.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2022 Filip Sykala @Jony01 -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_CutSurface_hpp_ #define slic3r_CutSurface_hpp_ diff --git a/src/libslic3r/CutUtils.cpp b/src/libslic3r/CutUtils.cpp index 9f4dbdaacc..8611ec302d 100644 --- a/src/libslic3r/CutUtils.cpp +++ b/src/libslic3r/CutUtils.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2023 Oleksandra Iushchenko @YuSanka -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "CutUtils.hpp" #include "Geometry.hpp" diff --git a/src/libslic3r/CutUtils.hpp b/src/libslic3r/CutUtils.hpp index 5067aaaff1..2c477a3e2b 100644 --- a/src/libslic3r/CutUtils.hpp +++ b/src/libslic3r/CutUtils.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2023 Oleksandra Iushchenko @YuSanka -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_CutUtils_hpp_ #define slic3r_CutUtils_hpp_ diff --git a/src/libslic3r/Emboss.cpp b/src/libslic3r/Emboss.cpp index a7bb8c5678..13d494d949 100644 --- a/src/libslic3r/Emboss.cpp +++ b/src/libslic3r/Emboss.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2021 - 2023 Lukáš Matěna @lukasmatena, Oleksandra Iushchenko @YuSanka, Filip Sykala @Jony01, Vojtěch Bubník @bubnikv -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include #include "Emboss.hpp" #include diff --git a/src/libslic3r/Emboss.hpp b/src/libslic3r/Emboss.hpp index ded2196a7a..15f0316327 100644 --- a/src/libslic3r/Emboss.hpp +++ b/src/libslic3r/Emboss.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2021 - 2022 Filip Sykala @Jony01 -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_Emboss_hpp_ #define slic3r_Emboss_hpp_ diff --git a/src/libslic3r/ExPolygon.cpp b/src/libslic3r/ExPolygon.cpp index dee115194b..364d2a6126 100644 --- a/src/libslic3r/ExPolygon.cpp +++ b/src/libslic3r/ExPolygon.cpp @@ -1,15 +1,3 @@ -///|/ Copyright (c) Prusa Research 2016 - 2023 Vojtěch Bubník @bubnikv, Lukáš Matěna @lukasmatena, Lukáš Hejl @hejllukas -///|/ Copyright (c) Slic3r 2013 - 2016 Alessandro Ranellucci @alranel -///|/ Copyright (c) 2015 Maksim Derbasov @ntfshard -///|/ Copyright (c) 2014 Petr Ledvina @ledvinap -///|/ -///|/ ported from lib/Slic3r/ExPolygon.pm: -///|/ Copyright (c) Prusa Research 2017 - 2022 Vojtěch Bubník @bubnikv -///|/ Copyright (c) Slic3r 2011 - 2014 Alessandro Ranellucci @alranel -///|/ Copyright (c) 2012 Mark Hindess -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "BoundingBox.hpp" #include "ExPolygon.hpp" #include "Exception.hpp" diff --git a/src/libslic3r/ExPolygon.hpp b/src/libslic3r/ExPolygon.hpp index 39974ab7af..d72fdf3389 100644 --- a/src/libslic3r/ExPolygon.hpp +++ b/src/libslic3r/ExPolygon.hpp @@ -1,14 +1,3 @@ -///|/ Copyright (c) Prusa Research 2016 - 2023 Pavel Mikuš @Godrak, Vojtěch Bubník @bubnikv, Lukáš Matěna @lukasmatena, Enrico Turri @enricoturri1966, Filip Sykala @Jony01, Lukáš Hejl @hejllukas, Tomáš Mészáros @tamasmeszaros -///|/ Copyright (c) 2016 Sakari Kapanen @Flannelhead -///|/ Copyright (c) Slic3r 2013 - 2016 Alessandro Ranellucci @alranel -///|/ -///|/ ported from lib/Slic3r/ExPolygon.pm: -///|/ Copyright (c) Prusa Research 2017 - 2022 Vojtěch Bubník @bubnikv -///|/ Copyright (c) Slic3r 2011 - 2014 Alessandro Ranellucci @alranel -///|/ Copyright (c) 2012 Mark Hindess -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_ExPolygon_hpp_ #define slic3r_ExPolygon_hpp_ diff --git a/src/libslic3r/Fill/Fill.cpp b/src/libslic3r/Fill/Fill.cpp index ea9f9d0cad..6e3886d6db 100644 --- a/src/libslic3r/Fill/Fill.cpp +++ b/src/libslic3r/Fill/Fill.cpp @@ -1,12 +1,3 @@ -///|/ Copyright (c) Prusa Research 2016 - 2023 Lukáš Matěna @lukasmatena, Vojtěch Bubník @bubnikv, Pavel Mikuš @Godrak, Lukáš Hejl @hejllukas -///|/ Copyright (c) SuperSlicer 2023 Remi Durand @supermerill -///|/ Copyright (c) 2016 Sakari Kapanen @Flannelhead -///|/ Copyright (c) Slic3r 2011 - 2015 Alessandro Ranellucci @alranel -///|/ Copyright (c) 2013 Mark Hindess -///|/ Copyright (c) 2011 Michael Moon -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include #include #include @@ -498,7 +489,7 @@ std::vector group_fills(const Layer &layer) params.bridge_angle = float(surface.bridge_angle); if (params.extrusion_role == erInternalInfill) { params.angle = float(Geometry::deg2rad(region_config.infill_direction.value)); - params.rotate_angle = (params.pattern == ipRectilinear); + params.rotate_angle = (params.pattern == ipRectilinear || params.pattern == ipLine); } else { params.angle = float(Geometry::deg2rad(region_config.solid_infill_direction.value)); params.rotate_angle = region_config.rotate_solid_infill_direction; diff --git a/src/libslic3r/Fill/FillBase.cpp b/src/libslic3r/Fill/FillBase.cpp index 3d368e01c7..6225987486 100644 --- a/src/libslic3r/Fill/FillBase.cpp +++ b/src/libslic3r/Fill/FillBase.cpp @@ -1,12 +1,3 @@ -///|/ Copyright (c) Prusa Research 2016 - 2023 Vojtěch Bubník @bubnikv, Lukáš Hejl @hejllukas, Tomáš Mészáros @tamasmeszaros, Lukáš Matěna @lukasmatena -///|/ Copyright (c) SuperSlicer 2018 - 2019 Remi Durand @supermerill -///|/ -///|/ ported from lib/Slic3r/Fill/Base.pm: -///|/ Copyright (c) Prusa Research 2016 Vojtěch Bubník @bubnikv -///|/ Copyright (c) Slic3r 2011 - 2014 Alessandro Ranellucci @alranel -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include #include diff --git a/src/libslic3r/Fill/FillConcentric.cpp b/src/libslic3r/Fill/FillConcentric.cpp index ed9c070437..93a54a0739 100644 --- a/src/libslic3r/Fill/FillConcentric.cpp +++ b/src/libslic3r/Fill/FillConcentric.cpp @@ -1,12 +1,3 @@ -///|/ Copyright (c) Prusa Research 2016 - 2023 Vojtěch Bubník @bubnikv, Lukáš Hejl @hejllukas -///|/ -///|/ ported from lib/Slic3r/Fill/Concentric.pm: -///|/ Copyright (c) Prusa Research 2016 Vojtěch Bubník @bubnikv -///|/ Copyright (c) Slic3r 2011 - 2015 Alessandro Ranellucci @alranel -///|/ Copyright (c) 2012 Mark Hindess -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "../ClipperUtils.hpp" #include "../ExPolygon.hpp" #include "../Surface.hpp" diff --git a/src/libslic3r/Fill/FillConcentric.hpp b/src/libslic3r/Fill/FillConcentric.hpp index 4902c43b30..476c9b8757 100644 --- a/src/libslic3r/Fill/FillConcentric.hpp +++ b/src/libslic3r/Fill/FillConcentric.hpp @@ -1,13 +1,3 @@ -///|/ Copyright (c) Prusa Research 2016 - 2023 Vojtěch Bubník @bubnikv, Lukáš Hejl @hejllukas -///|/ Copyright (c) Slic3r 2016 Alessandro Ranellucci @alranel -///|/ -///|/ ported from lib/Slic3r/Fill/Concentric.pm: -///|/ Copyright (c) Prusa Research 2016 Vojtěch Bubník @bubnikv -///|/ Copyright (c) Slic3r 2011 - 2015 Alessandro Ranellucci @alranel -///|/ Copyright (c) 2012 Mark Hindess -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_FillConcentric_hpp_ #define slic3r_FillConcentric_hpp_ diff --git a/src/libslic3r/Fill/FillCrossHatch.cpp b/src/libslic3r/Fill/FillCrossHatch.cpp index d62db0b4ea..10f421bef3 100644 --- a/src/libslic3r/Fill/FillCrossHatch.cpp +++ b/src/libslic3r/Fill/FillCrossHatch.cpp @@ -148,7 +148,7 @@ static Polylines generate_infill_layers(coordf_t z_height, double repeat_ratio, Polylines result; coordf_t trans_layer_size = grid_size * 0.4; // upper. coordf_t repeat_layer_size = grid_size * repeat_ratio; // lower. - z_height += repeat_layer_size / 2; // offset to improve first few layer strength + z_height += repeat_layer_size / 2 + trans_layer_size; // offset to improve first few layer strength and reduce the risk of warpping. coordf_t period = trans_layer_size + repeat_layer_size; coordf_t remains = z_height - std::floor(z_height / period) * period; coordf_t trans_z = remains - repeat_layer_size; // put repeat layer first. diff --git a/src/libslic3r/Format/SL1.cpp b/src/libslic3r/Format/SL1.cpp index 88fa038dcc..3973ab27af 100644 --- a/src/libslic3r/Format/SL1.cpp +++ b/src/libslic3r/Format/SL1.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2020 - 2023 Tomáš Mészáros @tamasmeszaros, Oleksandra Iushchenko @YuSanka, Lukáš Matěna @lukasmatena, Vojtěch Bubník @bubnikv -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "SL1.hpp" #include "GCode/ThumbnailData.hpp" #include "libslic3r/Time.hpp" diff --git a/src/libslic3r/Format/ZipperArchiveImport.cpp b/src/libslic3r/Format/ZipperArchiveImport.cpp index 426e0d3252..657e420bbc 100644 --- a/src/libslic3r/Format/ZipperArchiveImport.cpp +++ b/src/libslic3r/Format/ZipperArchiveImport.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2022 - 2023 Tomáš Mészáros @tamasmeszaros, David Kocík @kocikdav -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "ZipperArchiveImport.hpp" #include "libslic3r/miniz_extension.hpp" diff --git a/src/libslic3r/Format/ZipperArchiveImport.hpp b/src/libslic3r/Format/ZipperArchiveImport.hpp index d375cf55d6..adddcacd40 100644 --- a/src/libslic3r/Format/ZipperArchiveImport.hpp +++ b/src/libslic3r/Format/ZipperArchiveImport.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2022 Tomáš Mészáros @tamasmeszaros -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef ZIPPERARCHIVEIMPORT_HPP #define ZIPPERARCHIVEIMPORT_HPP diff --git a/src/libslic3r/Format/bbs_3mf.cpp b/src/libslic3r/Format/bbs_3mf.cpp index e8d2fac2f5..7df4fbca49 100644 --- a/src/libslic3r/Format/bbs_3mf.cpp +++ b/src/libslic3r/Format/bbs_3mf.cpp @@ -1,8 +1,3 @@ -///|/ Copyright (c) Prusa Research 2018 - 2023 Oleksandra Iushchenko @YuSanka, David Kocík @kocikdav, Enrico Turri @enricoturri1966, Lukáš Matěna @lukasmatena, Lukáš Hejl @hejllukas, Filip Sykala @Jony01, Vojtěch Bubník @bubnikv, Tomáš Mészáros @tamasmeszaros -///|/ Copyright (c) 2020 Henner Zeller -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "../libslic3r.h" #include "../Exception.hpp" #include "../Model.hpp" @@ -297,6 +292,7 @@ static constexpr const char* OTHER_LAYERS_PRINT_SEQUENCE_NUMS_ATTR = "other_laye static constexpr const char* SPIRAL_VASE_MODE = "spiral_mode"; static constexpr const char* GCODE_FILE_ATTR = "gcode_file"; static constexpr const char* THUMBNAIL_FILE_ATTR = "thumbnail_file"; +static constexpr const char* NO_LIGHT_THUMBNAIL_FILE_ATTR = "thumbnail_no_light_file"; static constexpr const char* TOP_FILE_ATTR = "top_file"; static constexpr const char* PICK_FILE_ATTR = "pick_file"; static constexpr const char* PATTERN_FILE_ATTR = "pattern_file"; @@ -1496,6 +1492,7 @@ void PlateData::parse_filament_info(GCodeProcessorResult *result) boost::algorithm::replace_all(plate->thumbnail_file, ".gcode", ".png"); } //plate->pattern_file = it->second->pattern_file; + plate->no_light_thumbnail_file = it->second->no_light_thumbnail_file; plate->top_file = it->second->top_file; plate->pick_file = it->second->pick_file.empty(); plate->pattern_bbox_file = it->second->pattern_bbox_file.empty(); @@ -1507,7 +1504,7 @@ void PlateData::parse_filament_info(GCodeProcessorResult *result) return mz_zip_reader_extract_to_mem(&archive, stat.m_file_index, pixels.data(), pixels.size(), 0); }); - BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ":" << __LINE__ << boost::format(", plate %1%, thumbnail_file=%2%")%it->first %plate->thumbnail_file; + BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ":" << __LINE__ << boost::format(", plate %1%, thumbnail_file=%2%, no_light_thumbnail_file=%3%")%it->first %plate->thumbnail_file %plate->no_light_thumbnail_file; BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ":" << __LINE__ << boost::format(", top_thumbnail_file=%1%, pick_thumbnail_file=%2%")%plate->top_file %plate->pick_file; it++; } @@ -2141,13 +2138,14 @@ void PlateData::parse_filament_info(GCodeProcessorResult *result) plate_data_list[it->first-1]->warnings = it->second->warnings; plate_data_list[it->first-1]->thumbnail_file = (m_load_restore || it->second->thumbnail_file.empty()) ? it->second->thumbnail_file : m_backup_path + "/" + it->second->thumbnail_file; //plate_data_list[it->first-1]->pattern_file = (m_load_restore || it->second->pattern_file.empty()) ? it->second->pattern_file : m_backup_path + "/" + it->second->pattern_file; + plate_data_list[it->first-1]->no_light_thumbnail_file = (m_load_restore || it->second->no_light_thumbnail_file.empty()) ? it->second->no_light_thumbnail_file : m_backup_path + "/" + it->second->no_light_thumbnail_file; plate_data_list[it->first-1]->top_file = (m_load_restore || it->second->top_file.empty()) ? it->second->top_file : m_backup_path + "/" + it->second->top_file; plate_data_list[it->first-1]->pick_file = (m_load_restore || it->second->pick_file.empty()) ? it->second->pick_file : m_backup_path + "/" + it->second->pick_file; plate_data_list[it->first-1]->pattern_bbox_file = (m_load_restore || it->second->pattern_bbox_file.empty()) ? it->second->pattern_bbox_file : m_backup_path + "/" + it->second->pattern_bbox_file; plate_data_list[it->first-1]->config = it->second->config; current_plate_data = plate_data_list[it->first - 1]; - BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ":" << __LINE__ << boost::format(", plate %1%, thumbnail_file=%2%")%it->first %plate_data_list[it->first-1]->thumbnail_file; + BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ":" << __LINE__ << boost::format(", plate %1%, thumbnail_file=%2%, no_light_thumbnail_file=%3%")%it->first %plate_data_list[it->first-1]->thumbnail_file %plate_data_list[it->first-1]->no_light_thumbnail_file; BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ":" << __LINE__ << boost::format(", top_thumbnail_file=%1%, pick_thumbnail_file=%2%")%plate_data_list[it->first-1]->top_file %plate_data_list[it->first-1]->pick_file; it++; @@ -4120,6 +4118,10 @@ void PlateData::parse_filament_info(GCodeProcessorResult *result) { m_curr_plater->thumbnail_file = value; } + else if (key == NO_LIGHT_THUMBNAIL_FILE_ATTR) + { + m_curr_plater->no_light_thumbnail_file = value; + } else if (key == TOP_FILE_ATTR) { m_curr_plater->top_file = value; @@ -5475,6 +5477,7 @@ void PlateData::parse_filament_info(GCodeProcessorResult *result) std::vector& project_presets, const DynamicPrintConfig* config, const std::vector& thumbnail_data, + const std::vector& no_light_thumbnail_data, const std::vector& top_thumbnail_data, const std::vector& pick_thumbnail_data, Export3mfProgressFn proFn, @@ -5561,7 +5564,8 @@ void PlateData::parse_filament_info(GCodeProcessorResult *result) boost::filesystem::remove(filename + ".tmp", ec); bool result = _save_model_to_file(filename + ".tmp", *store_params.model, store_params.plate_data_list, store_params.project_presets, store_params.config, - store_params.thumbnail_data, store_params.top_thumbnail_data, store_params.pick_thumbnail_data, store_params.proFn, + store_params.thumbnail_data, store_params.no_light_thumbnail_data, store_params.top_thumbnail_data, store_params.pick_thumbnail_data, + store_params.proFn, store_params.calibration_thumbnail_data, store_params.id_bboxes, store_params.project, store_params.export_plate_idx); if (result) { boost::filesystem::rename(filename + ".tmp", filename, ec); @@ -5637,6 +5641,7 @@ void PlateData::parse_filament_info(GCodeProcessorResult *result) std::vector& project_presets, const DynamicPrintConfig* config, const std::vector& thumbnail_data, + const std::vector& no_light_thumbnail_data, const std::vector& top_thumbnail_data, const std::vector& pick_thumbnail_data, Export3mfProgressFn proFn, @@ -5701,6 +5706,7 @@ void PlateData::parse_filament_info(GCodeProcessorResult *result) //BBS: add thumbnail for each plate if (!m_skip_static) { std::vector thumbnail_status(plate_data_list.size(), false); + std::vector no_light_thumbnail_status(plate_data_list.size(), false); std::vector top_thumbnail_status(plate_data_list.size(), false); std::vector pick_thumbnail_status(plate_data_list.size(), false); @@ -5709,6 +5715,11 @@ void PlateData::parse_filament_info(GCodeProcessorResult *result) % thumbnail_data.size() %plate_data_list.size(); return false; } + if ((no_light_thumbnail_data.size() > 0) && (no_light_thumbnail_data.size() > plate_data_list.size())) { + BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << ":" << __LINE__ << boost::format(", no_light_thumbnail_data size %1% > plate count %2%") % + no_light_thumbnail_data.size() % plate_data_list.size(); + return false; + } if ((top_thumbnail_data.size() > 0)&&(top_thumbnail_data.size() > plate_data_list.size())) { BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << ":" << __LINE__ << boost::format(", top_thumbnail_data size %1% > plate count %2%") % top_thumbnail_data.size() %plate_data_list.size(); @@ -5744,6 +5755,16 @@ void PlateData::parse_filament_info(GCodeProcessorResult *result) } } + for (unsigned int index = 0; index < no_light_thumbnail_data.size(); index++) { + if (no_light_thumbnail_data[index]->is_valid()) { + if (!_add_thumbnail_file_to_archive(archive, *no_light_thumbnail_data[index], "Metadata/plate_no_light", index)) { + return false; + } + + BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ":" << __LINE__ << boost::format(",add no light thumbnail %1%'s data into 3mf") % (index + 1); + thumbnail_status[index] = true; + } + } // Adds the file Metadata/top_i.png and Metadata/pick_i.png for (unsigned int index = 0; index < top_thumbnail_data.size(); index++) { @@ -5779,6 +5800,16 @@ void PlateData::parse_filament_info(GCodeProcessorResult *result) } } + if (!no_light_thumbnail_status[i] && !plate_data->no_light_thumbnail_file.empty() && (boost::filesystem::exists(plate_data->no_light_thumbnail_file))){ + std::string dst_in_3mf = (boost::format("Metadata/plate_no_light_%1%.png") % (i + 1)).str(); + BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ":" <<__LINE__ << boost::format(", add no light thumbnail %1% from file %2%") % (i+1) %plate_data->no_light_thumbnail_file; + + if (!_add_file_to_archive(archive, dst_in_3mf, plate_data->no_light_thumbnail_file)) { + BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << ":" << __LINE__ << boost::format(", add no light thumbnail %1% from file %2% failed\n") % (i+1) %plate_data->no_light_thumbnail_file; + return false; + } + } + if (!top_thumbnail_status[i] && !plate_data->top_file.empty() && (boost::filesystem::exists(plate_data->top_file))){ std::string dst_in_3mf = (boost::format("Metadata/top_%1%.png") % (i + 1)).str(); @@ -6419,6 +6450,13 @@ void PlateData::parse_filament_info(GCodeProcessorResult *result) metadata_item_map[BBL_MAKERLAB_VERSION_TAG] = xml_escape(model.mk_version); BOOST_LOG_TRIVIAL(info) << "saved mk_version " << model.mk_version; } + if (!model.md_name.empty()) { + for (unsigned int i = 0; i < model.md_name.size(); i++) + { + BOOST_LOG_TRIVIAL(info) << boost::format("saved metadata_name %1%, metadata_value %2%") %model.md_name[i] %model.md_value[i]; + metadata_item_map[model.md_name[i]] = xml_escape(model.md_value[i]); + } + } // store metadata info for (auto item : metadata_item_map) { @@ -7473,6 +7511,11 @@ void PlateData::parse_filament_info(GCodeProcessorResult *result) stream << " <" << METADATA_TAG << " " << KEY_ATTR << "=\"" << THUMBNAIL_FILE_ATTR << "\" " << VALUE_ATTR << "=\"" << std::boolalpha << thumbnail_file_in_3mf << "\"/>\n"; } + if (!plate_data->no_light_thumbnail_file.empty()){ + std::string no_light_thumbnail_file_in_3mf = (boost::format(NO_LIGHT_THUMBNAIL_FILE_FORMAT) % (plate_data->plate_index + 1)).str(); + stream << " <" << METADATA_TAG << " " << KEY_ATTR << "=\"" << NO_LIGHT_THUMBNAIL_FILE_ATTR << "\" " << VALUE_ATTR << "=\"" << std::boolalpha << no_light_thumbnail_file_in_3mf << "\"/>\n"; + } + if (!plate_data->top_file.empty()) { std::string top_file_in_3mf = (boost::format(TOP_FILE_FORMAT) % (plate_data->plate_index + 1)).str(); stream << " <" << METADATA_TAG << " " << KEY_ATTR << "=\"" << TOP_FILE_ATTR << "\" " << VALUE_ATTR << "=\"" << std::boolalpha << top_file_in_3mf << "\"/>\n"; diff --git a/src/libslic3r/Format/bbs_3mf.hpp b/src/libslic3r/Format/bbs_3mf.hpp index d2f46be3e0..6d0c092b77 100644 --- a/src/libslic3r/Format/bbs_3mf.hpp +++ b/src/libslic3r/Format/bbs_3mf.hpp @@ -21,6 +21,7 @@ struct ThumbnailData; #define GCODE_FILE_FORMAT "Metadata/plate_%1%.gcode" #define THUMBNAIL_FILE_FORMAT "Metadata/plate_%1%.png" +#define NO_LIGHT_THUMBNAIL_FILE_FORMAT "Metadata/plate_no_light_%1%.png" #define TOP_FILE_FORMAT "Metadata/top_%1%.png" #define PICK_FILE_FORMAT "Metadata/pick_%1%.png" //#define PATTERN_FILE_FORMAT "Metadata/plate_%1%_pattern_layer_0.png" @@ -75,6 +76,7 @@ struct PlateData std::string gcode_file; std::string gcode_file_md5; std::string thumbnail_file; + std::string no_light_thumbnail_file; ThumbnailData plate_thumbnail; std::string top_file; std::string pick_file; @@ -213,6 +215,7 @@ struct StoreParams std::vector project_presets; DynamicPrintConfig* config; std::vector thumbnail_data; + std::vector no_light_thumbnail_data; std::vector top_thumbnail_data; std::vector pick_thumbnail_data; std::vector calibration_thumbnail_data; diff --git a/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp index 43a8054fe7..a4f2d8eb45 100644 --- a/src/libslic3r/GCode.cpp +++ b/src/libslic3r/GCode.cpp @@ -1398,6 +1398,8 @@ namespace DoExport { total_cost += weight * extruder->filament_cost() * 0.001; } + total_cost += config.time_cost.getFloat() * (normal_print_time/3600.0); + print_statistics.total_extruded_volume = total_extruded_volume; print_statistics.total_used_filament = total_used_filament; print_statistics.total_weight = total_weight; @@ -4140,7 +4142,7 @@ LayerResult GCode::process_layer( } // BBS - if (print.config().print_sequence == PrintSequence::ByObject && prime_extruder && first_layer && extruder_id == first_extruder_id) { + if (print.has_skirt() && print.config().print_sequence == PrintSequence::ByObject && prime_extruder && first_layer && extruder_id == first_extruder_id) { for (InstanceToPrint& instance_to_print : instances_to_print) { if (this->m_objSupportsWithBrim.find(instance_to_print.print_object.id()) != this->m_objSupportsWithBrim.end() && print.m_supportBrimMap.at(instance_to_print.print_object.id()).entities.size() > 0) diff --git a/src/libslic3r/GCode/AvoidCrossingPerimeters.cpp b/src/libslic3r/GCode/AvoidCrossingPerimeters.cpp index 0598db3b17..9f01f81945 100644 --- a/src/libslic3r/GCode/AvoidCrossingPerimeters.cpp +++ b/src/libslic3r/GCode/AvoidCrossingPerimeters.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2020 - 2022 Vojtěch Bubník @bubnikv, Lukáš Hejl @hejllukas -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "../Layer.hpp" #include "../GCode.hpp" #include "../EdgeGrid.hpp" diff --git a/src/libslic3r/GCode/AvoidCrossingPerimeters.hpp b/src/libslic3r/GCode/AvoidCrossingPerimeters.hpp index 5d85aace7f..83a447806b 100644 --- a/src/libslic3r/GCode/AvoidCrossingPerimeters.hpp +++ b/src/libslic3r/GCode/AvoidCrossingPerimeters.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2020 - 2022 Lukáš Hejl @hejllukas, Vojtěch Bubník @bubnikv -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_AvoidCrossingPerimeters_hpp_ #define slic3r_AvoidCrossingPerimeters_hpp_ diff --git a/src/libslic3r/GCode/CoolingBuffer.cpp b/src/libslic3r/GCode/CoolingBuffer.cpp index 812e71f714..ff36ce7e21 100644 --- a/src/libslic3r/GCode/CoolingBuffer.cpp +++ b/src/libslic3r/GCode/CoolingBuffer.cpp @@ -222,6 +222,9 @@ struct PerExtruderAdjustments float slow_down_layer_time = 0.f; // Minimum print speed allowed for this extruder. float slow_down_min_speed = 0.f; + + bool dont_slow_down_outer_wall = false; + // Parsed lines. std::vector lines; @@ -330,6 +333,8 @@ std::vector CoolingBuffer::parse_layer_gcode(const std:: adj.cooling_slow_down_enabled = m_config.slow_down_for_layer_cooling.get_at(extruder_id); adj.slow_down_layer_time = float(m_config.slow_down_layer_time.get_at(extruder_id)); adj.slow_down_min_speed = float(m_config.slow_down_min_speed.get_at(extruder_id)); + // ORCA: To enable dont slow down external perimeters feature per filament (extruder) + adj.dont_slow_down_outer_wall = m_config.dont_slow_down_outer_wall.get_at(extruder_id); map_extruder_to_per_extruder_adjustment[extruder_id] = i; } @@ -399,7 +404,15 @@ std::vector CoolingBuffer::parse_layer_gcode(const std:: line.type |= CoolingLine::TYPE_EXTERNAL_PERIMETER; if (wipe) line.type |= CoolingLine::TYPE_WIPE; - if (boost::contains(sline, ";_EXTRUDE_SET_SPEED") && ! wipe) { + + // ORCA: Dont slowdown external perimeters for layer time feature + // use the adjustment pointer to ensure the value for the current extruder (filament) is used. + bool adjust_external = true; + if(adjustment->dont_slow_down_outer_wall && external_perimeter) adjust_external = false; + + // ORCA: Dont slowdown external perimeters for layer time works by not marking the external perimeter as adjustable, + // hence the slowdown algorithm ignores it. + if (boost::contains(sline, ";_EXTRUDE_SET_SPEED") && ! wipe && adjust_external) { line.type |= CoolingLine::TYPE_ADJUSTABLE; active_speed_modifier = adjustment->lines.size(); } diff --git a/src/libslic3r/GCode/GCodeProcessor.cpp b/src/libslic3r/GCode/GCodeProcessor.cpp index ebe3947008..648b570d82 100644 --- a/src/libslic3r/GCode/GCodeProcessor.cpp +++ b/src/libslic3r/GCode/GCodeProcessor.cpp @@ -45,6 +45,7 @@ static const float DEFAULT_FILAMENT_DIAMETER = 1.75f; static const int DEFAULT_FILAMENT_HRC = 0; static const float DEFAULT_FILAMENT_DENSITY = 1.245f; static const float DEFAULT_FILAMENT_COST = 29.99f; +static const float DEFAULT_FILAMENT_FLOW_RATIOS = 1.0f; static const int DEFAULT_FILAMENT_VITRIFICATION_TEMPERATURE = 0; static const Slic3r::Vec3f DEFAULT_EXTRUDER_OFFSET = Slic3r::Vec3f::Zero(); @@ -945,6 +946,7 @@ void GCodeProcessorResult::reset() { required_nozzle_HRC = std::vector(MIN_EXTRUDERS_COUNT, DEFAULT_FILAMENT_HRC); filament_densities = std::vector(MIN_EXTRUDERS_COUNT, DEFAULT_FILAMENT_DENSITY); filament_costs = std::vector(MIN_EXTRUDERS_COUNT, DEFAULT_FILAMENT_COST); + filament_flow_ratios = std::vector(MIN_EXTRUDERS_COUNT, DEFAULT_FILAMENT_FLOW_RATIOS); custom_gcode_per_print_z = std::vector(); spiral_vase_layers = std::vector>>(); bed_match_result = BedMatchResult(true); @@ -1057,6 +1059,7 @@ void GCodeProcessor::apply_config(const PrintConfig& config) m_result.filament_densities.resize(extruders_count); m_result.filament_vitrification_temperature.resize(extruders_count); m_result.filament_costs.resize(extruders_count); + m_result.filament_flow_ratios.resize(extruders_count); m_extruder_temps.resize(extruders_count); m_result.nozzle_hrc = static_cast(config.nozzle_hrc.getInt()); m_result.nozzle_type = config.nozzle_type; @@ -1068,6 +1071,7 @@ void GCodeProcessor::apply_config(const PrintConfig& config) m_result.filament_densities[i] = static_cast(config.filament_density.get_at(i)); m_result.filament_vitrification_temperature[i] = static_cast(config.temperature_vitrification.get_at(i)); m_result.filament_costs[i] = static_cast(config.filament_cost.get_at(i)); + m_result.filament_flow_ratios[i] = static_cast(config.filament_flow_ratio.get_at(i)); } if (m_flavor == gcfMarlinLegacy || m_flavor == gcfMarlinFirmware || m_flavor == gcfKlipper || m_flavor == gcfRepRapFirmware) { @@ -1245,6 +1249,15 @@ void GCodeProcessor::apply_config(const DynamicPrintConfig& config) m_result.filament_costs.emplace_back(DEFAULT_FILAMENT_COST); } + // Orca: filament flow ratio + const ConfigOptionFloats* filament_flow_ratios = config.option("filament_flow_ratio"); + if (filament_flow_ratios != nullptr) { + m_result.filament_flow_ratios.clear(); + m_result.filament_flow_ratios.resize(filament_flow_ratios->values.size()); + for (size_t i = 0; i < filament_flow_ratios->values.size(); ++i) + m_result.filament_flow_ratios[i]=static_cast(filament_flow_ratios->values[i]); + } + //BBS const ConfigOptionInts* filament_vitrification_temperature = config.option("temperature_vitrification"); if (filament_vitrification_temperature != nullptr) { @@ -2917,6 +2930,7 @@ void GCodeProcessor::process_G0(const GCodeReader::GCodeLine& line) void GCodeProcessor::process_G1(const GCodeReader::GCodeLine& line) { float filament_diameter = (static_cast(m_extruder_id) < m_result.filament_diameters.size()) ? m_result.filament_diameters[m_extruder_id] : m_result.filament_diameters.back(); + float filament_flowratio = (static_cast(m_extruder_id) < m_result.filament_flow_ratios.size()) ? m_result.filament_flow_ratios[m_extruder_id] : m_result.filament_flow_ratios.back(); float filament_radius = 0.5f * filament_diameter; float area_filament_cross_section = static_cast(M_PI) * sqr(filament_radius); auto absolute_position = [this, area_filament_cross_section](Axis axis, const GCodeReader::GCodeLine& lineG1) { @@ -2994,7 +3008,7 @@ void GCodeProcessor::process_G1(const GCodeReader::GCodeLine& line) m_used_filaments.increase_model_caches(volume_extruded_filament); } // volume extruded filament / tool displacement = area toolpath cross section - m_mm3_per_mm = area_toolpath_cross_section; + m_mm3_per_mm = area_toolpath_cross_section * filament_flowratio; #if ENABLE_GCODE_VIEWER_DATA_CHECKING m_mm3_per_mm_compare.update(area_toolpath_cross_section, m_extrusion_role); #endif // ENABLE_GCODE_VIEWER_DATA_CHECKING @@ -3344,6 +3358,7 @@ void GCodeProcessor::process_G1(const GCodeReader::GCodeLine& line) void GCodeProcessor::process_G2_G3(const GCodeReader::GCodeLine& line) { float filament_diameter = (static_cast(m_extruder_id) < m_result.filament_diameters.size()) ? m_result.filament_diameters[m_extruder_id] : m_result.filament_diameters.back(); + float filament_flowratio = (static_cast(m_extruder_id) < m_result.filament_flow_ratios.size()) ? m_result.filament_flow_ratios[m_extruder_id] : m_result.filament_flow_ratios.back(); float filament_radius = 0.5f * filament_diameter; float area_filament_cross_section = static_cast(M_PI) * sqr(filament_radius); auto absolute_position = [this, area_filament_cross_section](Axis axis, const GCodeReader::GCodeLine& lineG2_3) { @@ -3472,7 +3487,7 @@ void GCodeProcessor::process_G2_G3(const GCodeReader::GCodeLine& line) m_used_filaments.increase_model_caches(volume_extruded_filament); } //BBS: volume extruded filament / tool displacement = area toolpath cross section - m_mm3_per_mm = area_toolpath_cross_section; + m_mm3_per_mm = area_toolpath_cross_section * filament_flowratio; #if ENABLE_GCODE_VIEWER_DATA_CHECKING m_mm3_per_mm_compare.update(area_toolpath_cross_section, m_extrusion_role); #endif // ENABLE_GCODE_VIEWER_DATA_CHECKING diff --git a/src/libslic3r/GCode/GCodeProcessor.hpp b/src/libslic3r/GCode/GCodeProcessor.hpp index 0a56ce2b0e..a1fd5237e3 100644 --- a/src/libslic3r/GCode/GCodeProcessor.hpp +++ b/src/libslic3r/GCode/GCodeProcessor.hpp @@ -212,6 +212,7 @@ namespace Slic3r { std::vector required_nozzle_HRC; std::vector filament_densities; std::vector filament_costs; + std::vector filament_flow_ratios; std::vector filament_vitrification_temperature; PrintEstimatedStatistics print_statistics; std::vector custom_gcode_per_print_z; @@ -247,6 +248,7 @@ namespace Slic3r { filament_diameters = other.filament_diameters; filament_densities = other.filament_densities; filament_costs = other.filament_costs; + filament_flow_ratios = other.filament_flow_ratios; print_statistics = other.print_statistics; custom_gcode_per_print_z = other.custom_gcode_per_print_z; spiral_vase_layers = other.spiral_vase_layers; diff --git a/src/libslic3r/GCode/PressureEqualizer.cpp b/src/libslic3r/GCode/PressureEqualizer.cpp index 0a1ffaa131..681bd92083 100644 --- a/src/libslic3r/GCode/PressureEqualizer.cpp +++ b/src/libslic3r/GCode/PressureEqualizer.cpp @@ -1,8 +1,3 @@ -///|/ Copyright (c) Prusa Research 2016 - 2023 Vojtěch Bubník @bubnikv, Lukáš Hejl @hejllukas, Oleksandra Iushchenko @YuSanka, Lukáš Matěna @lukasmatena -///|/ Copyright (c) SuperSlicer 2023 Remi Durand @supermerill -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include #include #include diff --git a/src/libslic3r/GCode/PressureEqualizer.hpp b/src/libslic3r/GCode/PressureEqualizer.hpp index f03ecaeaec..3563cdabc6 100644 --- a/src/libslic3r/GCode/PressureEqualizer.hpp +++ b/src/libslic3r/GCode/PressureEqualizer.hpp @@ -1,8 +1,3 @@ -///|/ Copyright (c) Prusa Research 2016 - 2023 Vojtěch Bubník @bubnikv, Lukáš Hejl @hejllukas -///|/ Copyright (c) SuperSlicer 2023 Remi Durand @supermerill -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_GCode_PressureEqualizer_hpp_ #define slic3r_GCode_PressureEqualizer_hpp_ diff --git a/src/libslic3r/GCode/Thumbnails.cpp b/src/libslic3r/GCode/Thumbnails.cpp index b16432c25f..352cc8444b 100644 --- a/src/libslic3r/GCode/Thumbnails.cpp +++ b/src/libslic3r/GCode/Thumbnails.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2022 Enrico Turri @enricoturri1966, Vojtěch Bubník @bubnikv -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "Thumbnails.hpp" #include "../miniz_extension.hpp" diff --git a/src/libslic3r/GCode/Thumbnails.hpp b/src/libslic3r/GCode/Thumbnails.hpp index c0ecfd342d..3a6a6d69fb 100644 --- a/src/libslic3r/GCode/Thumbnails.hpp +++ b/src/libslic3r/GCode/Thumbnails.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2022 Lukáš Hejl @hejllukas, Vojtěch Bubník @bubnikv -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_GCodeThumbnails_hpp_ #define slic3r_GCodeThumbnails_hpp_ diff --git a/src/libslic3r/GCode/ToolOrdering.cpp b/src/libslic3r/GCode/ToolOrdering.cpp index dc272e9464..e5c3260084 100644 --- a/src/libslic3r/GCode/ToolOrdering.cpp +++ b/src/libslic3r/GCode/ToolOrdering.cpp @@ -25,14 +25,20 @@ const static bool g_wipe_into_objects = false; // Shortest hamilton path problem -static std::vector solve_extruder_order(const std::vector>& wipe_volumes, std::vector all_extruders, unsigned int start_extruder_id) +static std::vector solve_extruder_order(const std::vector>& wipe_volumes, std::vector all_extruders, std::optional start_extruder_id) { - auto start_iter = std::find(all_extruders.begin(), all_extruders.end(), start_extruder_id); bool add_start_extruder_flag = false; - if (start_iter == all_extruders.end()) - all_extruders.insert(all_extruders.begin(), start_extruder_id), add_start_extruder_flag = true; - else - std::swap(*all_extruders.begin(), *start_iter); + + if (start_extruder_id) { + auto start_iter = std::find(all_extruders.begin(), all_extruders.end(), start_extruder_id); + if (start_iter == all_extruders.end()) + all_extruders.insert(all_extruders.begin(), *start_extruder_id), add_start_extruder_flag = true; + else + std::swap(*all_extruders.begin(), *start_iter); + } + else { + *start_extruder_id = all_extruders.front(); + } unsigned int iterations = (1 << all_extruders.size()); unsigned int final_state = iterations - 1; @@ -84,7 +90,7 @@ static std::vector solve_extruder_order(const std::vector get_extruders_order(const std::vector> &wipe_volumes, std::vector all_extruders, unsigned int start_extruder_id) +std::vector get_extruders_order(const std::vector> &wipe_volumes, std::vector all_extruders, std::optionalstart_extruder_id) { #define USE_DP_OPTIMIZE #ifdef USE_DP_OPTIMIZE @@ -123,7 +129,6 @@ if (all_extruders.size() > 1) { #endif // OPTIMIZE } - // Returns true in case that extruder a comes before b (b does not have to be present). False otherwise. bool LayerTools::is_extruder_order(unsigned int a, unsigned int b) const { @@ -837,11 +842,13 @@ void ToolOrdering::reorder_extruders_for_minimum_flush_volume() for (unsigned int i = 0; i < number_of_extruders; ++i) wipe_volumes.push_back(std::vector(number_of_extruders, print_config->prime_volume)); } - - auto extruders_to_hash_key = [](const std::vector& extruders, unsigned int initial_extruder_id)->uint32_t { + + auto extruders_to_hash_key = [](const std::vector& extruders, + std::optional initial_extruder_id) -> uint32_t { uint32_t hash_key = 0; // high 16 bit define initial extruder ,low 16 bit define extruder set - hash_key |= (1 << (16 + initial_extruder_id)); + if (initial_extruder_id) + hash_key |= (1 << (16 + *initial_extruder_id)); for (auto item : extruders) hash_key |= (1 << item); return hash_key; @@ -868,7 +875,7 @@ void ToolOrdering::reorder_extruders_for_minimum_flush_volume() return false; }; - unsigned int current_extruder_id = -1; + std::optionalcurrent_extruder_id; for (int i = 0; i < m_layer_tools.size(); ++i) { LayerTools& lt = m_layer_tools[i]; if (lt.extruders.empty()) diff --git a/src/libslic3r/GCode/WipeTower2.cpp b/src/libslic3r/GCode/WipeTower2.cpp index cfe605c1ca..6e96e21150 100644 --- a/src/libslic3r/GCode/WipeTower2.cpp +++ b/src/libslic3r/GCode/WipeTower2.cpp @@ -1,13 +1,6 @@ // Orca: This file is ported from latest PrusaSlicer // Original PrusaSlicer Copyright: -///|/ Copyright (c) Prusa Research 2017 - 2023 Lukáš Matěna @lukasmatena, Vojtěch Bubník @bubnikv, Enrico Turri @enricoturri1966 -///|/ Copyright (c) SuperSlicer 2023 Remi Durand @supermerill -///|/ Copyright (c) 2020 Paul Arden @ardenpm -///|/ Copyright (c) 2019 Thomas Moore -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "WipeTower2.hpp" #include diff --git a/src/libslic3r/GCode/WipeTower2.hpp b/src/libslic3r/GCode/WipeTower2.hpp index cb1c11b4e9..58bdd6fc39 100644 --- a/src/libslic3r/GCode/WipeTower2.hpp +++ b/src/libslic3r/GCode/WipeTower2.hpp @@ -1,10 +1,6 @@ // Orca: This file is ported from latest PrusaSlicer // Original PrusaSlicer Copyright: -///|/ Copyright (c) Prusa Research 2017 - 2023 Lukáš Matěna @lukasmatena, Vojtěch Bubník @bubnikv -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef WipeTower2_ #define WipeTower2_ diff --git a/src/libslic3r/Geometry.cpp b/src/libslic3r/Geometry.cpp index 46f7b10368..54dcb14cca 100644 --- a/src/libslic3r/Geometry.cpp +++ b/src/libslic3r/Geometry.cpp @@ -1,17 +1,3 @@ -///|/ Copyright (c) Prusa Research 2016 - 2023 Vojtěch Bubník @bubnikv, Enrico Turri @enricoturri1966, Lukáš Matěna @lukasmatena, Filip Sykala @Jony01, Tomáš Mészáros @tamasmeszaros -///|/ Copyright (c) Slic3r 2013 - 2016 Alessandro Ranellucci @alranel -///|/ -///|/ ported from lib/Slic3r/Geometry.pm: -///|/ Copyright (c) Prusa Research 2017 - 2022 Vojtěch Bubník @bubnikv -///|/ Copyright (c) Slic3r 2011 - 2015 Alessandro Ranellucci @alranel -///|/ Copyright (c) 2013 Jose Luis Perez Diez -///|/ Copyright (c) 2013 Anders Sundman -///|/ Copyright (c) 2013 Jesse Vincent -///|/ Copyright (c) 2012 Mike Sheldrake @mesheldrake -///|/ Copyright (c) 2012 Mark Hindess -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "libslic3r.h" #include "Exception.hpp" #include "Geometry.hpp" diff --git a/src/libslic3r/Geometry.hpp b/src/libslic3r/Geometry.hpp index cac5b96868..67b27dd293 100644 --- a/src/libslic3r/Geometry.hpp +++ b/src/libslic3r/Geometry.hpp @@ -1,18 +1,3 @@ -///|/ Copyright (c) Prusa Research 2016 - 2023 Vojtěch Bubník @bubnikv, Enrico Turri @enricoturri1966, Tomáš Mészáros @tamasmeszaros, Lukáš Matěna @lukasmatena, Filip Sykala @Jony01, Lukáš Hejl @hejllukas -///|/ Copyright (c) 2017 Eyal Soha @eyal0 -///|/ Copyright (c) Slic3r 2013 - 2016 Alessandro Ranellucci @alranel -///|/ -///|/ ported from lib/Slic3r/Geometry.pm: -///|/ Copyright (c) Prusa Research 2017 - 2022 Vojtěch Bubník @bubnikv -///|/ Copyright (c) Slic3r 2011 - 2015 Alessandro Ranellucci @alranel -///|/ Copyright (c) 2013 Jose Luis Perez Diez -///|/ Copyright (c) 2013 Anders Sundman -///|/ Copyright (c) 2013 Jesse Vincent -///|/ Copyright (c) 2012 Mike Sheldrake @mesheldrake -///|/ Copyright (c) 2012 Mark Hindess -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_Geometry_hpp_ #define slic3r_Geometry_hpp_ diff --git a/src/libslic3r/Geometry/Circle.cpp b/src/libslic3r/Geometry/Circle.cpp index 012b240f8a..6796671954 100644 --- a/src/libslic3r/Geometry/Circle.cpp +++ b/src/libslic3r/Geometry/Circle.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2021 - 2022 Lukáš Matěna @lukasmatena, Filip Sykala @Jony01, Vojtěch Bubník @bubnikv -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "Circle.hpp" #include "../Polygon.hpp" diff --git a/src/libslic3r/Geometry/Circle.hpp b/src/libslic3r/Geometry/Circle.hpp index a192cc2fd6..653102e2ab 100644 --- a/src/libslic3r/Geometry/Circle.hpp +++ b/src/libslic3r/Geometry/Circle.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2021 - 2022 Lukáš Matěna @lukasmatena, Filip Sykala @Jony01, Vojtěch Bubník @bubnikv, Enrico Turri @enricoturri1966 -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_Geometry_Circle_hpp_ #define slic3r_Geometry_Circle_hpp_ diff --git a/src/libslic3r/IntersectionPoints.cpp b/src/libslic3r/IntersectionPoints.cpp index bdf66d5905..888285f834 100644 --- a/src/libslic3r/IntersectionPoints.cpp +++ b/src/libslic3r/IntersectionPoints.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2023 Vojtěch Bubník @bubnikv -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "IntersectionPoints.hpp" #include diff --git a/src/libslic3r/IntersectionPoints.hpp b/src/libslic3r/IntersectionPoints.hpp index cf06c718a0..49694c8a8e 100644 --- a/src/libslic3r/IntersectionPoints.hpp +++ b/src/libslic3r/IntersectionPoints.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2023 Vojtěch Bubník @bubnikv -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_IntersectionPoints_hpp_ #define slic3r_IntersectionPoints_hpp_ diff --git a/src/libslic3r/LayerRegion.cpp b/src/libslic3r/LayerRegion.cpp index 224c2a8daf..2900c2fae9 100644 --- a/src/libslic3r/LayerRegion.cpp +++ b/src/libslic3r/LayerRegion.cpp @@ -1,8 +1,3 @@ -///|/ Copyright (c) Prusa Research 2016 - 2023 Vojtěch Bubník @bubnikv, Pavel Mikuš @Godrak, Lukáš Matěna @lukasmatena, Lukáš Hejl @hejllukas -///|/ Copyright (c) Slic3r 2014 - 2016 Alessandro Ranellucci @alranel -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "Layer.hpp" #include "BridgeDetector.hpp" #include "ClipperUtils.hpp" diff --git a/src/libslic3r/Measure.cpp b/src/libslic3r/Measure.cpp index 59cd9e99fb..c6f1276e83 100644 --- a/src/libslic3r/Measure.cpp +++ b/src/libslic3r/Measure.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2022 - 2023 Lukáš Matěna @lukasmatena, Enrico Turri @enricoturri1966, Vojtěch Bubník @bubnikv, Pavel Mikuš @Godrak -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "libslic3r/libslic3r.h" #include "Measure.hpp" #include "MeasureUtils.hpp" diff --git a/src/libslic3r/Measure.hpp b/src/libslic3r/Measure.hpp index dcccafb70d..70f446afd9 100644 --- a/src/libslic3r/Measure.hpp +++ b/src/libslic3r/Measure.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2022 - 2023 Lukáš Matěna @lukasmatena, Enrico Turri @enricoturri1966, Vojtěch Bubník @bubnikv -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef Slic3r_Measure_hpp_ #define Slic3r_Measure_hpp_ diff --git a/src/libslic3r/MeasureUtils.hpp b/src/libslic3r/MeasureUtils.hpp index 8a63de5a1f..0ab4ac121d 100644 --- a/src/libslic3r/MeasureUtils.hpp +++ b/src/libslic3r/MeasureUtils.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2022 Enrico Turri @enricoturri1966 -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef Slic3r_MeasureUtils_hpp_ #define Slic3r_MeasureUtils_hpp_ diff --git a/src/libslic3r/Model.cpp b/src/libslic3r/Model.cpp index 9074fa49f2..c2fd0f6796 100644 --- a/src/libslic3r/Model.cpp +++ b/src/libslic3r/Model.cpp @@ -1,16 +1,3 @@ -///|/ Copyright (c) Prusa Research 2016 - 2023 Tomáš Mészáros @tamasmeszaros, Oleksandra Iushchenko @YuSanka, David Kocík @kocikdav, Enrico Turri @enricoturri1966, Lukáš Matěna @lukasmatena, Vojtěch Bubník @bubnikv, Lukáš Hejl @hejllukas, Filip Sykala @Jony01, Vojtěch Král @vojtechkral -///|/ Copyright (c) 2021 Boleslaw Ciesielski -///|/ Copyright (c) 2019 John Drake @foxox -///|/ Copyright (c) 2019 Sijmen Schoon -///|/ Copyright (c) Slic3r 2014 - 2016 Alessandro Ranellucci @alranel -///|/ Copyright (c) 2015 Maksim Derbasov @ntfshard -///|/ -///|/ ported from lib/Slic3r/Model.pm: -///|/ Copyright (c) Prusa Research 2016 - 2022 Vojtěch Bubník @bubnikv, Enrico Turri @enricoturri1966 -///|/ Copyright (c) Slic3r 2012 - 2016 Alessandro Ranellucci @alranel -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "Model.hpp" #include "libslic3r.h" #include "BuildVolume.hpp" @@ -109,6 +96,8 @@ Model& Model::assign_copy(const Model &rhs) this->mk_name = rhs.mk_name; this->mk_version = rhs.mk_version; + this->md_name = rhs.md_name; + this->md_value = rhs.md_value; return *this; } @@ -142,6 +131,8 @@ Model& Model::assign_copy(Model &&rhs) this->stl_design_country = rhs.stl_design_country; this->mk_name = rhs.mk_name; this->mk_version = rhs.mk_version; + this->md_name = rhs.md_name; + this->md_value = rhs.md_value; this->backup_path = std::move(rhs.backup_path); this->object_backup_id_map = std::move(rhs.object_backup_id_map); this->next_object_backup_id = rhs.next_object_backup_id; @@ -996,6 +987,8 @@ void Model::load_from(Model& model) profile_info = model.profile_info; mk_name = model.mk_name; mk_version = model.mk_version; + md_name = model.md_name; + md_value = model.md_value; model.design_info.reset(); model.model_info.reset(); model.profile_info.reset(); @@ -2969,7 +2962,7 @@ bool Model::obj_import_vertex_color_deal(const std::vector &verte case _3_SAME_COLOR: { std::string result; get_real_filament_id(filament_id0, result); - volume->mmu_segmentation_facets.set_triangle_from_string(i, result); + volume->mmu_segmentation_facets.set_triangle_from_string(i, result); break; } case _3_DIFF_COLOR: { @@ -3174,7 +3167,8 @@ double getadhesionCoeff(const ModelVolumePtrs objectVolumes) double adhesionCoeff = 1; for (const ModelVolume* modelVolume : objectVolumes) { if (Model::extruderParamsMap.find(modelVolume->extruder_id()) != Model::extruderParamsMap.end()) - if (Model::extruderParamsMap.at(modelVolume->extruder_id()).materialName == "PETG") { + if (Model::extruderParamsMap.at(modelVolume->extruder_id()).materialName == "PETG" || + Model::extruderParamsMap.at(modelVolume->extruder_id()).materialName == "PCTG") { adhesionCoeff = 2; } else if (Model::extruderParamsMap.at(modelVolume->extruder_id()).materialName == "TPU") { diff --git a/src/libslic3r/Model.hpp b/src/libslic3r/Model.hpp index 41ddd83aa9..b035c2bdd2 100644 --- a/src/libslic3r/Model.hpp +++ b/src/libslic3r/Model.hpp @@ -1,15 +1,3 @@ -///|/ Copyright (c) Prusa Research 2016 - 2023 Tomáš Mészáros @tamasmeszaros, Oleksandra Iushchenko @YuSanka, Enrico Turri @enricoturri1966, Lukáš Matěna @lukasmatena, Vojtěch Bubník @bubnikv, Filip Sykala @Jony01, Lukáš Hejl @hejllukas, David Kocík @kocikdav, Vojtěch Král @vojtechkral -///|/ Copyright (c) 2019 John Drake @foxox -///|/ Copyright (c) 2019 Sijmen Schoon -///|/ Copyright (c) 2017 Eyal Soha @eyal0 -///|/ Copyright (c) Slic3r 2014 - 2015 Alessandro Ranellucci @alranel -///|/ -///|/ ported from lib/Slic3r/Model.pm: -///|/ Copyright (c) Prusa Research 2016 - 2022 Vojtěch Bubník @bubnikv, Enrico Turri @enricoturri1966 -///|/ Copyright (c) Slic3r 2012 - 2016 Alessandro Ranellucci @alranel -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_Model_hpp_ #define slic3r_Model_hpp_ @@ -435,7 +423,7 @@ public: bool is_mm_painted() const; // This object may have a varying layer height by painting or by a table. // Even if true is returned, the layer height profile may be "flat" with no difference to default layering. - bool has_custom_layering() const + bool has_custom_layering() const { return ! this->layer_config_ranges.empty() || ! this->layer_height_profile.empty(); } ModelInstance* add_instance(); @@ -1520,6 +1508,8 @@ public: //makerlab information std::string mk_name; std::string mk_version; + std::vector md_name; + std::vector md_value; void SetDesigner(std::string designer, std::string designer_user_id) { if (design_info == nullptr) { diff --git a/src/libslic3r/MultiMaterialSegmentation.cpp b/src/libslic3r/MultiMaterialSegmentation.cpp index 148fdc9921..6fba47f5b8 100644 --- a/src/libslic3r/MultiMaterialSegmentation.cpp +++ b/src/libslic3r/MultiMaterialSegmentation.cpp @@ -31,6 +31,454 @@ //#define MM_SEGMENTATION_DEBUG_TOP_BOTTOM namespace Slic3r { +using boost::polygon::voronoi_diagram; + +static inline Point mk_point(const Voronoi::VD::vertex_type *point) { return {coord_t(point->x()), coord_t(point->y())}; } + +static inline Point mk_point(const Voronoi::Internal::point_type &point) { return {coord_t(point.x()), coord_t(point.y())}; } + +static inline Point mk_point(const voronoi_diagram::vertex_type &point) { return {coord_t(point.x()), coord_t(point.y())}; } + +static inline Point mk_point(const Vec2d &point) { return {coord_t(std::round(point.x())), coord_t(std::round(point.y()))}; } + +static inline Vec2d mk_vec2(const voronoi_diagram::vertex_type *point) { return {point->x(), point->y()}; } + +static bool vertex_equal_to_point(const Voronoi::VD::vertex_type &vertex, const Vec2d &ipt) +{ + // Convert ipt to doubles, force the 80bit FPU temporary to 64bit and then compare. + // This should work with any settings of math compiler switches and the C++ compiler + // shall understand the memcpies as type punning and it shall optimize them out. + using ulp_cmp_type = boost::polygon::detail::ulp_comparison; + ulp_cmp_type ulp_cmp; + static constexpr int ULPS = boost::polygon::voronoi_diagram_traits::vertex_equality_predicate_type::ULPS; + return ulp_cmp(vertex.x(), ipt.x(), ULPS) == ulp_cmp_type::EQUAL && ulp_cmp(vertex.y(), ipt.y(), ULPS) == ulp_cmp_type::EQUAL; +} + +static inline bool vertex_equal_to_point(const Voronoi::VD::vertex_type *vertex, const Vec2d &ipt) { return vertex_equal_to_point(*vertex, ipt); } + +struct MMU_Graph +{ + enum class ARC_TYPE { BORDER, NON_BORDER }; + + struct Arc + { + size_t from_idx; + size_t to_idx; + int color; + ARC_TYPE type; + + bool operator==(const Arc &rhs) const { return (from_idx == rhs.from_idx) && (to_idx == rhs.to_idx) && (color == rhs.color) && (type == rhs.type); } + bool operator!=(const Arc &rhs) const { return !operator==(rhs); } + }; + + struct Node + { + Vec2d point; + std::list arc_idxs; + + void remove_edge(const size_t to_idx, MMU_Graph &graph) + { + for (auto arc_it = this->arc_idxs.begin(); arc_it != this->arc_idxs.end(); ++arc_it) { + MMU_Graph::Arc &arc = graph.arcs[*arc_it]; + if (arc.to_idx == to_idx) { + assert(arc.type != ARC_TYPE::BORDER); + this->arc_idxs.erase(arc_it); + break; + } + } + } + }; + + std::vector nodes; + std::vector arcs; + size_t all_border_points{}; + + std::vector polygon_idx_offset; + std::vector polygon_sizes; + + void remove_edge(const size_t from_idx, const size_t to_idx) + { + nodes[from_idx].remove_edge(to_idx, *this); + nodes[to_idx].remove_edge(from_idx, *this); + } + + [[nodiscard]] size_t get_global_index(const size_t poly_idx, const size_t point_idx) const { return polygon_idx_offset[poly_idx] + point_idx; } + + void append_edge(const size_t &from_idx, const size_t &to_idx, int color = -1, ARC_TYPE type = ARC_TYPE::NON_BORDER) + { + // Don't append duplicate edges between the same nodes. + for (const size_t &arc_idx : this->nodes[from_idx].arc_idxs) + if (arcs[arc_idx].to_idx == to_idx) return; + for (const size_t &arc_idx : this->nodes[to_idx].arc_idxs) + if (arcs[arc_idx].to_idx == from_idx) return; + + this->nodes[from_idx].arc_idxs.push_back(this->arcs.size()); + this->arcs.push_back({from_idx, to_idx, color, type}); + + // Always insert only one directed arc for the input polygons. + // Two directed arcs in both directions are inserted if arcs aren't between points of the input polygons. + if (type == ARC_TYPE::NON_BORDER) { + this->nodes[to_idx].arc_idxs.push_back(this->arcs.size()); + this->arcs.push_back({to_idx, from_idx, color, type}); + } + } + + // It assumes that between points of the input polygons is always only one directed arc, + // with the same direction as lines of the input polygon. + [[nodiscard]] MMU_Graph::Arc get_border_arc(size_t idx) const + { + assert(idx < this->all_border_points); + return this->arcs[idx]; + } + + [[nodiscard]] size_t nodes_count() const { return this->nodes.size(); } + + void remove_nodes_with_one_arc() + { + std::queue update_queue; + for (const MMU_Graph::Node &node : this->nodes) { + size_t node_idx = &node - &this->nodes.front(); + // Skip nodes that represent points of input polygons. + if (node.arc_idxs.size() == 1 && node_idx >= this->all_border_points) update_queue.emplace(&node - &this->nodes.front()); + } + + while (!update_queue.empty()) { + size_t node_from_idx = update_queue.front(); + MMU_Graph::Node &node_from = this->nodes[update_queue.front()]; + update_queue.pop(); + if (node_from.arc_idxs.empty()) continue; + + assert(node_from.arc_idxs.size() == 1); + size_t node_to_idx = arcs[node_from.arc_idxs.front()].to_idx; + MMU_Graph::Node &node_to = this->nodes[node_to_idx]; + this->remove_edge(node_from_idx, node_to_idx); + if (node_to.arc_idxs.size() == 1 && node_to_idx >= this->all_border_points) update_queue.emplace(node_to_idx); + } + } + + void add_contours(const std::vector> &color_poly) + { + this->all_border_points = nodes.size(); + this->polygon_sizes = std::vector(color_poly.size()); + for (size_t polygon_idx = 0; polygon_idx < color_poly.size(); ++polygon_idx) this->polygon_sizes[polygon_idx] = color_poly[polygon_idx].size(); + this->polygon_idx_offset = std::vector(color_poly.size()); + this->polygon_idx_offset[0] = 0; + for (size_t polygon_idx = 1; polygon_idx < color_poly.size(); ++polygon_idx) { + this->polygon_idx_offset[polygon_idx] = this->polygon_idx_offset[polygon_idx - 1] + color_poly[polygon_idx - 1].size(); + } + + size_t poly_idx = 0; + for (const std::vector &color_lines : color_poly) { + size_t line_idx = 0; + for (const ColoredLine &color_line : color_lines) { + size_t from_idx = this->get_global_index(poly_idx, line_idx); + size_t to_idx = this->get_global_index(poly_idx, (line_idx + 1) % color_lines.size()); + this->append_edge(from_idx, to_idx, color_line.color, ARC_TYPE::BORDER); + ++line_idx; + } + ++poly_idx; + } + } + + // Nodes 0..all_border_points are only one with are on countour. Other vertexis are consider as not on coouter. So we check if base on attach index + inline bool is_vertex_on_contour(const Voronoi::VD::vertex_type *vertex) const + { + assert(vertex != nullptr); + return vertex->color() < this->all_border_points; + } + + [[nodiscard]] inline bool is_edge_attach_to_contour(const voronoi_diagram::const_edge_iterator &edge_iterator) const + { + return this->is_vertex_on_contour(edge_iterator->vertex0()) || this->is_vertex_on_contour(edge_iterator->vertex1()); + } + + [[nodiscard]] inline bool is_edge_connecting_two_contour_vertices(const voronoi_diagram::const_edge_iterator &edge_iterator) const + { + return this->is_vertex_on_contour(edge_iterator->vertex0()) && this->is_vertex_on_contour(edge_iterator->vertex1()); + } + + // All Voronoi vertices are post-processes to merge very close vertices to single. Witch eliminates issues with intersection edges. + // Also, Voronoi vertices outside of the bounding of input polygons are throw away by marking them. + void append_voronoi_vertices(const Geometry::VoronoiDiagram &vd, const Polygons &color_poly_tmp, BoundingBox bbox) + { + bbox.offset(SCALED_EPSILON); + + struct CPoint + { + CPoint() = delete; + CPoint(const Vec2d &point, size_t contour_idx, size_t point_idx) : m_point_double(point), m_point(mk_point(point)), m_point_idx(point_idx), m_contour_idx(contour_idx) + {} + CPoint(const Vec2d &point, size_t point_idx) : m_point_double(point), m_point(mk_point(point)), m_point_idx(point_idx), m_contour_idx(0) {} + const Vec2d m_point_double; + const Point m_point; + size_t m_point_idx; + size_t m_contour_idx; + + [[nodiscard]] const Vec2d &point_double() const { return m_point_double; } + [[nodiscard]] const Point &point() const { return m_point; } + bool operator==(const CPoint &rhs) const + { + return this->m_point_double == rhs.m_point_double && this->m_contour_idx == rhs.m_contour_idx && this->m_point_idx == rhs.m_point_idx; + } + }; + struct CPointAccessor + { + const Point *operator()(const CPoint &pt) const { return &pt.point(); } + }; + typedef ClosestPointInRadiusLookup CPointLookupType; + + CPointLookupType closest_voronoi_point(coord_t(SCALED_EPSILON)); + CPointLookupType closest_contour_point(3 * coord_t(SCALED_EPSILON)); + for (const Polygon &polygon : color_poly_tmp) + for (const Point &pt : polygon.points) closest_contour_point.insert(CPoint(Vec2d(pt.x(), pt.y()), &polygon - &color_poly_tmp.front(), &pt - &polygon.points.front())); + + for (const voronoi_diagram::vertex_type &vertex : vd.vertices()) { + vertex.color(-1); + Vec2d vertex_point_double = Vec2d(vertex.x(), vertex.y()); + Point vertex_point = mk_point(vertex); + + const Vec2d &first_point_double = this->nodes[this->get_border_arc(vertex.incident_edge()->cell()->source_index()).from_idx].point; + const Vec2d &second_point_double = this->nodes[this->get_border_arc(vertex.incident_edge()->twin()->cell()->source_index()).from_idx].point; + + if (vertex_equal_to_point(&vertex, first_point_double)) { + assert(vertex.color() != vertex.incident_edge()->cell()->source_index()); + assert(vertex.color() != vertex.incident_edge()->twin()->cell()->source_index()); + vertex.color(this->get_border_arc(vertex.incident_edge()->cell()->source_index()).from_idx); + } else if (vertex_equal_to_point(&vertex, second_point_double)) { + assert(vertex.color() != vertex.incident_edge()->cell()->source_index()); + assert(vertex.color() != vertex.incident_edge()->twin()->cell()->source_index()); + vertex.color(this->get_border_arc(vertex.incident_edge()->twin()->cell()->source_index()).from_idx); + } else if (bbox.contains(vertex_point)) { + if (auto [contour_pt, c_dist_sqr] = closest_contour_point.find(vertex_point); contour_pt != nullptr && c_dist_sqr < Slic3r::sqr(3 * SCALED_EPSILON)) { + vertex.color(this->get_global_index(contour_pt->m_contour_idx, contour_pt->m_point_idx)); + } else if (auto [voronoi_pt, v_dist_sqr] = closest_voronoi_point.find(vertex_point); voronoi_pt == nullptr || v_dist_sqr >= Slic3r::sqr(SCALED_EPSILON / 10.0)) { + closest_voronoi_point.insert(CPoint(vertex_point_double, this->nodes_count())); + vertex.color(this->nodes_count()); + this->nodes.push_back({vertex_point_double}); + } else { + // Boost Voronoi diagram generator sometimes creates two very closed points instead of one point. + // For the example points (146872.99999999997, -146872.99999999997) and (146873, -146873), this example also included in Voronoi generator test cases. + std::vector> all_closes_c_points = closest_voronoi_point.find_all(vertex_point); + int merge_to_point = -1; + for (const std::pair &c_point : all_closes_c_points) + if ((vertex_point_double - c_point.first->point_double()).squaredNorm() <= Slic3r::sqr(EPSILON)) { + merge_to_point = int(c_point.first->m_point_idx); + break; + } + + if (merge_to_point != -1) { + vertex.color(merge_to_point); + } else { + closest_voronoi_point.insert(CPoint(vertex_point_double, this->nodes_count())); + vertex.color(this->nodes_count()); + this->nodes.push_back({vertex_point_double}); + } + } + } + } + } + + void garbage_collect() + { + std::vector nodes_map(this->nodes.size(), -1); + int nodes_count = 0; + size_t arcs_count = 0; + for (const MMU_Graph::Node &node : this->nodes) + if (size_t node_idx = &node - &this->nodes.front(); !node.arc_idxs.empty()) { + nodes_map[node_idx] = nodes_count++; + arcs_count += node.arc_idxs.size(); + } + + std::vector new_nodes; + std::vector new_arcs; + new_nodes.reserve(nodes_count); + new_arcs.reserve(arcs_count); + for (const MMU_Graph::Node &node : this->nodes) + if (size_t node_idx = &node - &this->nodes.front(); nodes_map[node_idx] >= 0) { + new_nodes.push_back({node.point}); + for (const size_t &arc_idx : node.arc_idxs) { + const Arc &arc = this->arcs[arc_idx]; + new_nodes.back().arc_idxs.emplace_back(new_arcs.size()); + new_arcs.push_back({size_t(nodes_map[arc.from_idx]), size_t(nodes_map[arc.to_idx]), arc.color, arc.type}); + } + } + + this->nodes = std::move(new_nodes); + this->arcs = std::move(new_arcs); + } +}; + +static Polygon colored_points_to_polygon(const std::vector &lines) +{ + Polygon out; + out.points.reserve(lines.size()); + for (const ColoredLine &l : lines) out.points.emplace_back(l.line.a); + return out; +} + +static Polygons colored_points_to_polygon(const std::vector> &lines) +{ + Polygons out; + out.reserve(lines.size()); + for (const std::vector &l : lines) out.emplace_back(colored_points_to_polygon(l)); + return out; +} + +static std::vector> get_all_next_arcs( + const MMU_Graph &graph, std::vector &used_arcs, const Linef &process_line, const MMU_Graph::Arc &original_arc, const int color) +{ + std::vector> all_next_arcs; + for (const size_t &arc_idx : graph.nodes[original_arc.to_idx].arc_idxs) { + std::vector next_continue_arc; + + const MMU_Graph::Arc &arc = graph.arcs[arc_idx]; + if (graph.nodes[arc.to_idx].point == process_line.a || used_arcs[arc_idx]) continue; + + if (original_arc.type == MMU_Graph::ARC_TYPE::BORDER && original_arc.color != color) continue; + + if (arc.type == MMU_Graph::ARC_TYPE::BORDER && arc.color != color) continue; + + Vec2d arc_line = graph.nodes[arc.to_idx].point - graph.nodes[arc.from_idx].point; + next_continue_arc.emplace_back(&arc); + all_next_arcs.emplace_back(next_continue_arc); + } + return all_next_arcs; +} + +static std::vector get_next_arc( + const MMU_Graph &graph, std::vector &used_arcs, const Linef &process_line, const MMU_Graph::Arc &original_arc, const int color) +{ + std::vector res; + + std::vector> all_next_arcs = get_all_next_arcs(graph, used_arcs, process_line, original_arc, color); + if (all_next_arcs.empty()) { + res.emplace_back(&original_arc); + return res; + } + + std::vector, double>> sorted_arcs; + for (auto next_arc : all_next_arcs) { + if (next_arc.empty()) continue; + + Vec2d process_line_vec_n = (process_line.a - process_line.b).normalized(); + Vec2d neighbour_line_vec_n = (graph.nodes[next_arc.back()->to_idx].point - graph.nodes[next_arc.back()->from_idx].point).normalized(); + + double angle = ::acos(std::clamp(neighbour_line_vec_n.dot(process_line_vec_n), -1.0, 1.0)); + if (Slic3r::cross2(neighbour_line_vec_n, process_line_vec_n) < 0.0) angle = 2.0 * (double) PI - angle; + + sorted_arcs.emplace_back(next_arc, angle); + } + + std::sort(sorted_arcs.begin(), sorted_arcs.end(), + [](std::pair, double> &l, std::pair, double> &r) -> bool { return l.second < r.second; }); + + // Try to return left most edge witch is unused + for (auto &sorted_arc : sorted_arcs) { + if (size_t arc_idx = sorted_arc.first.back() - &graph.arcs.front(); !used_arcs[arc_idx]) return sorted_arc.first; + } + + if (sorted_arcs.empty()) { + res.emplace_back(&original_arc); + return res; + } + + return sorted_arcs.front().first; +} + +static bool is_profile_self_interaction(Polygon poly) +{ + auto lines = poly.lines(); + Point intersection; + for (int i = 0; i < lines.size(); ++i) { + for (int j = i + 2; j < std::min(lines.size(), lines.size() + i - 1); ++j) { + if (lines[i].intersection(lines[j], &intersection)) return true; + } + } + return false; +} + +static inline Polygon to_polygon(const std::vector> &id_to_lines) +{ + std::vector lines; + for (auto id_to_line : id_to_lines) lines.emplace_back(id_to_line.second); + + Polygon poly_out; + poly_out.points.reserve(lines.size()); + for (const Linef &line : lines) poly_out.points.emplace_back(mk_point(line.a)); + return poly_out; +} + +static std::vector extract_colored_segments(const MMU_Graph &graph, const size_t num_extruders) +{ + std::vector used_arcs(graph.arcs.size(), false); + + auto all_arc_used = [&used_arcs](const MMU_Graph::Node &node) -> bool { + return std::all_of(node.arc_idxs.cbegin(), node.arc_idxs.cend(), [&used_arcs](const size_t &arc_idx) -> bool { return used_arcs[arc_idx]; }); + }; + + std::vector expolygons_segments(num_extruders + 1); + for (size_t node_idx = 0; node_idx < graph.all_border_points; ++node_idx) { + const MMU_Graph::Node &node = graph.nodes[node_idx]; + + for (const size_t &arc_idx : node.arc_idxs) { + const MMU_Graph::Arc &arc = graph.arcs[arc_idx]; + if (arc.type == MMU_Graph::ARC_TYPE::NON_BORDER || used_arcs[arc_idx]) continue; + + Linef process_line(graph.nodes[arc.from_idx].point, graph.nodes[arc.to_idx].point); + used_arcs[arc_idx] = true; + + std::vector> arc_id_to_face_lines; + arc_id_to_face_lines.emplace_back(std::make_pair(arc_idx, process_line)); + Vec2d start_p = process_line.a; + + Linef p_vec = process_line; + const MMU_Graph::Arc *p_arc = &arc; + bool flag = false; + do { + std::vector nexts = get_next_arc(graph, used_arcs, p_vec, *p_arc, arc.color); + for (auto next : nexts) { + size_t next_arc_idx = next - &graph.arcs.front(); + if (used_arcs[next_arc_idx]) { + flag = true; + break; + } + } + + if (flag) break; + + for (auto next : nexts) { + size_t next_arc_idx = next - &graph.arcs.front(); + arc_id_to_face_lines.emplace_back(std::make_pair(next_arc_idx, Linef(graph.nodes[next->from_idx].point, graph.nodes[next->to_idx].point))); + used_arcs[next_arc_idx] = true; + } + + p_vec = Linef(graph.nodes[nexts.back()->from_idx].point, graph.nodes[nexts.back()->to_idx].point); + p_arc = nexts.back(); + + } while (graph.nodes[p_arc->to_idx].point != start_p || !all_arc_used(graph.nodes[p_arc->to_idx])); + + if (Polygon poly = to_polygon(arc_id_to_face_lines); poly.is_counter_clockwise() && poly.is_valid()) { + expolygons_segments[arc.color].emplace_back(std::move(poly)); + } else { + while (arc_id_to_face_lines.size() > 1) { + auto id_to_line = arc_id_to_face_lines.back(); + used_arcs[id_to_line.first] = false; + arc_id_to_face_lines.pop_back(); + Linef add_line(arc_id_to_face_lines.back().second.b, arc_id_to_face_lines.front().second.a); + arc_id_to_face_lines.emplace_back(std::make_pair(-1, add_line)); + Polygon poly = to_polygon(arc_id_to_face_lines); + if (!is_profile_self_interaction(poly) && poly.is_counter_clockwise() && poly.is_valid()) { + expolygons_segments[arc.color].emplace_back(std::move(poly)); + break; + } + arc_id_to_face_lines.pop_back(); + } + } + } + } + return expolygons_segments; +} + bool is_equal(float left, float right, float eps = 1e-3) { return abs(left - right) <= eps; } @@ -693,6 +1141,7 @@ static void remove_multiple_edges_in_vertex(const VD::vertex_type &vertex) { } } +#if (0) // Returns list of ExPolygons for each extruder + 1 for default unpainted regions. // It iterates through all nodes on the border between two different colors, and from this point, // start selection always left most edges for every node to construct CCW polygons. @@ -828,6 +1277,7 @@ static std::vector extract_colored_segments(const std::vector &input_expolygons, std::vector> &segmented_regions, @@ -837,10 +1287,11 @@ static void cut_segmented_layers(const std::vector &input_exp { BOOST_LOG_TRIVIAL(debug) << "MM segmentation - cutting segmented layers in parallel - begin"; const float interlocking_cut_width = interlocking_depth > 0.f ? std::max(cut_width - interlocking_depth, 0.f) : 0.f; - tbb::parallel_for(tbb::blocked_range(0, segmented_regions.size()),[&segmented_regions, &input_expolygons, &cut_width, &interlocking_cut_width, &throw_on_cancel_callback](const tbb::blocked_range& range) { + tbb::parallel_for(tbb::blocked_range(0, segmented_regions.size()), + [&segmented_regions, &input_expolygons, &cut_width, &interlocking_depth, &throw_on_cancel_callback](const tbb::blocked_range &range) { for (size_t layer_idx = range.begin(); layer_idx < range.end(); ++layer_idx) { throw_on_cancel_callback(); - const float region_cut_width = (layer_idx % 2 == 0 && interlocking_cut_width > 0.f) ? interlocking_cut_width : cut_width; + const float region_cut_width = ((layer_idx % 2 == 0) && (interlocking_depth != 0.f)) ? interlocking_depth : cut_width; const size_t num_extruders_plus_one = segmented_regions[layer_idx].size(); if (region_cut_width > 0.f) { std::vector segmented_regions_cuts(num_extruders_plus_one); // Indexed by extruder_id @@ -1155,6 +1606,358 @@ static inline std::vector> mmu_segmentation_top_and_bott return triangles_by_color_merged; } +// For every ColoredLine in lines_colored_out, assign the index of the polygon to which belongs and also the index of this line inside of the polygon. +static inline void init_polygon_indices(const MMU_Graph &graph, const std::vector> &color_poly, std::vector &lines_colored_out) +{ + size_t poly_idx = 0; + for (const std::vector &color_lines : color_poly) { + size_t line_idx = 0; + for (size_t color_line_idx = 0; color_line_idx < color_lines.size(); ++color_line_idx) { + size_t from_idx = graph.get_global_index(poly_idx, line_idx); + lines_colored_out[from_idx].poly_idx = int(poly_idx); + lines_colored_out[from_idx].local_line_idx = int(line_idx); + ++line_idx; + } + ++poly_idx; + } +} + +static inline bool line_intersection_with_epsilon(const Line &line_to_extend, const Line &other, Point *intersection) +{ + Line extended_line = line_to_extend; + extended_line.extend(15 * SCALED_EPSILON); + return extended_line.intersection(other, intersection); +} + +static inline void mark_processed(const voronoi_diagram::const_edge_iterator &edge_iterator) +{ + edge_iterator->color(true); + edge_iterator->twin()->color(true); +} + +static inline bool is_point_closer_to_beginning_of_line(const Line &line, const Point &p) +{ + return (p - line.a).cast().squaredNorm() < (p - line.b).cast().squaredNorm(); +} + +static inline Line clip_finite_voronoi_edge(const Voronoi::VD::edge_type &edge, const BoundingBoxf &bbox) +{ + assert(edge.is_finite()); + Vec2d v0 = mk_vec2(edge.vertex0()); + Vec2d v1 = mk_vec2(edge.vertex1()); + bool contains_v0 = bbox.contains(v0); + bool contains_v1 = bbox.contains(v1); + if ((contains_v0 && contains_v1) || (!contains_v0 && !contains_v1)) return {mk_point(edge.vertex0()), mk_point(edge.vertex1())}; + + Vec2d vector = (v1 - v0).normalized() * bbox.size().norm(); + if (!contains_v0) + v0 = (v1 - vector); + else + v1 = (v0 + vector); + + return {v0.cast(), v1.cast()}; +} + +static inline bool has_same_color(const ColoredLine &cl1, const ColoredLine &cl2) { return cl1.color == cl2.color; } + +static MMU_Graph build_graph(size_t layer_idx, const std::vector> &color_poly) +{ + const Polygons color_poly_tmp = colored_points_to_polygon(color_poly); + const Points points = to_points(color_poly_tmp); + const Lines lines = to_lines(color_poly_tmp); + + // The algorithm adds edges to the graph that are between two different colors. + // If a polygon is colored entirely with one color, we need to add at least one edge from that polygon artificially. + // Adding this edge is necessary for cases where the expolygon has an outer contour colored whole with one color + // and a hole colored with a different color. If an edge wasn't added to the graph, + // the entire expolygon would be colored with single random color instead of two different. + std::vector force_edge_adding(color_poly.size()); + + // For each polygon, check if it is all colored with the same color. If it is, we need to force adding one edge to it. + for (const std::vector &c_poly : color_poly) { + bool force_edge = true; + for (const ColoredLine &c_line : c_poly) + if (c_line.color != c_poly.front().color) { + force_edge = false; + break; + } + force_edge_adding[&c_poly - &color_poly.front()] = force_edge; + } + + ColoredLines lines_colored = to_lines(color_poly); + const ColoredLines colored_lines = lines_colored; + + Voronoi::VD vd; + vd.construct_voronoi(colored_lines.begin(), colored_lines.end()); + // boost::polygon::construct_voronoi(lines_colored.begin(), lines_colored.end(), &vd); + MMU_Graph graph; + graph.nodes.reserve(points.size() + vd.vertices().size()); + for (const Point &point : points) graph.nodes.push_back({Vec2d(double(point.x()), double(point.y()))}); + + graph.add_contours(color_poly); + init_polygon_indices(graph, color_poly, lines_colored); + + assert(graph.nodes.size() == lines_colored.size()); + BoundingBox bbox = get_extents(color_poly_tmp); + graph.append_voronoi_vertices(vd, color_poly_tmp, bbox); + + auto get_prev_contour_line = [&lines_colored, &color_poly, &graph](const voronoi_diagram::const_edge_iterator &edge_it) -> ColoredLine { + size_t contour_line_local_idx = lines_colored[edge_it->cell()->source_index()].local_line_idx; + size_t contour_line_size = color_poly[lines_colored[edge_it->cell()->source_index()].poly_idx].size(); + size_t contour_prev_idx = graph.get_global_index(lines_colored[edge_it->cell()->source_index()].poly_idx, + (contour_line_local_idx > 0) ? contour_line_local_idx - 1 : contour_line_size - 1); + return lines_colored[contour_prev_idx]; + }; + + auto get_next_contour_line = [&lines_colored, &color_poly, &graph](const voronoi_diagram::const_edge_iterator &edge_it) -> ColoredLine { + size_t contour_line_local_idx = lines_colored[edge_it->cell()->source_index()].local_line_idx; + size_t contour_line_size = color_poly[lines_colored[edge_it->cell()->source_index()].poly_idx].size(); + size_t contour_next_idx = graph.get_global_index(lines_colored[edge_it->cell()->source_index()].poly_idx, (contour_line_local_idx + 1) % contour_line_size); + return lines_colored[contour_next_idx]; + }; + + bbox.offset(scale_(10.)); + const BoundingBoxf bbox_clip(bbox.min.cast(), bbox.max.cast()); + const double bbox_dim_max = double(std::max(bbox.size().x(), bbox.size().y())); + + // Make a copy of the input segments with the double type. + std::vector segments; + for (const Line &line : lines) + segments.emplace_back(Voronoi::Internal::point_type(double(line.a(0)), double(line.a(1))), Voronoi::Internal::point_type(double(line.b(0)), double(line.b(1)))); + + for (auto edge_it = vd.edges().begin(); edge_it != vd.edges().end(); ++edge_it) { + // Skip second half-edge + if (edge_it->cell()->source_index() > edge_it->twin()->cell()->source_index() || edge_it->color()) continue; + + if (edge_it->is_infinite() && (edge_it->vertex0() != nullptr || edge_it->vertex1() != nullptr)) { + // Infinite edge is leading through a point on the counter, but there are no Voronoi vertices. + // So we could fix this case by computing the intersection between the contour line and infinity edge. + std::vector samples; + Voronoi::Internal::clip_infinite_edge(points, segments, *edge_it, bbox_dim_max, &samples); + if (samples.empty()) continue; + + const Line edge_line(mk_point(samples[0]), mk_point(samples[1])); + const ColoredLine &contour_line = lines_colored[edge_it->cell()->source_index()]; + Point contour_intersection; + + if (line_intersection_with_epsilon(contour_line.line, edge_line, &contour_intersection)) { + const MMU_Graph::Arc &graph_arc = graph.get_border_arc(edge_it->cell()->source_index()); + const size_t from_idx = (edge_it->vertex1() != nullptr) ? edge_it->vertex1()->color() : edge_it->vertex0()->color(); + size_t to_idx = ((contour_line.line.a - contour_intersection).cast().squaredNorm() < + (contour_line.line.b - contour_intersection).cast().squaredNorm()) ? + graph_arc.from_idx : + graph_arc.to_idx; + if (from_idx != to_idx && from_idx < graph.nodes_count() && to_idx < graph.nodes_count()) { + graph.append_edge(from_idx, to_idx); + mark_processed(edge_it); + } + } + } else if (edge_it->is_finite()) { + // Both points are on contour, so skip them. In cases of duplicate Voronoi vertices, skip edges between the same two points. + if (graph.is_edge_connecting_two_contour_vertices(edge_it) || (edge_it->vertex0()->color() == edge_it->vertex1()->color())) continue; + + const Line edge_line = clip_finite_voronoi_edge(*edge_it, bbox_clip); + const Line contour_line = lines_colored[edge_it->cell()->source_index()].line; + const ColoredLine colored_line = lines_colored[edge_it->cell()->source_index()]; + const ColoredLine contour_line_prev = get_prev_contour_line(edge_it); + const ColoredLine contour_line_next = get_next_contour_line(edge_it); + + if (edge_it->vertex0()->color() >= graph.nodes_count() || edge_it->vertex1()->color() >= graph.nodes_count()) { + enum class Vertex { VERTEX0, VERTEX1 }; + auto append_edge_if_intersects_with_contour = [&graph, &lines_colored, &edge_line, + &contour_line](const voronoi_diagram::const_edge_iterator &edge_iterator, const Vertex vertex) { + Point intersection; + Line contour_line_twin = lines_colored[edge_iterator->twin()->cell()->source_index()].line; + if (line_intersection_with_epsilon(contour_line_twin, edge_line, &intersection)) { + const MMU_Graph::Arc &graph_arc = graph.get_border_arc(edge_iterator->twin()->cell()->source_index()); + const size_t to_idx_l = is_point_closer_to_beginning_of_line(contour_line_twin, intersection) ? graph_arc.from_idx : graph_arc.to_idx; + graph.append_edge(vertex == Vertex::VERTEX0 ? edge_iterator->vertex0()->color() : edge_iterator->vertex1()->color(), to_idx_l); + } else if (line_intersection_with_epsilon(contour_line, edge_line, &intersection)) { + const MMU_Graph::Arc &graph_arc = graph.get_border_arc(edge_iterator->cell()->source_index()); + const size_t to_idx_l = is_point_closer_to_beginning_of_line(contour_line, intersection) ? graph_arc.from_idx : graph_arc.to_idx; + graph.append_edge(vertex == Vertex::VERTEX0 ? edge_iterator->vertex0()->color() : edge_iterator->vertex1()->color(), to_idx_l); + } + mark_processed(edge_iterator); + }; + + if (edge_it->vertex0()->color() < graph.nodes_count() && !graph.is_vertex_on_contour(edge_it->vertex0())) + append_edge_if_intersects_with_contour(edge_it, Vertex::VERTEX0); + + if (edge_it->vertex1()->color() < graph.nodes_count() && !graph.is_vertex_on_contour(edge_it->vertex1())) + append_edge_if_intersects_with_contour(edge_it, Vertex::VERTEX1); + } else if (graph.is_edge_attach_to_contour(edge_it)) { + mark_processed(edge_it); + // Skip edges witch connection two points on a contour + if (graph.is_edge_connecting_two_contour_vertices(edge_it)) continue; + + const size_t from_idx = edge_it->vertex0()->color(); + const size_t to_idx = edge_it->vertex1()->color(); + if (graph.is_vertex_on_contour(edge_it->vertex0())) { + if (is_point_closer_to_beginning_of_line(contour_line, edge_line.a)) { + if ((!has_same_color(contour_line_prev, colored_line) || force_edge_adding[colored_line.poly_idx]) && + points_inside(contour_line_prev.line, contour_line, edge_line.b)) { + graph.append_edge(from_idx, to_idx); + force_edge_adding[colored_line.poly_idx] = false; + } + } else { + if ((!has_same_color(contour_line_next, colored_line) || force_edge_adding[colored_line.poly_idx]) && + points_inside(contour_line, contour_line_next.line, edge_line.b)) { + graph.append_edge(from_idx, to_idx); + force_edge_adding[colored_line.poly_idx] = false; + } + } + } else { + assert(graph.is_vertex_on_contour(edge_it->vertex1())); + if (is_point_closer_to_beginning_of_line(contour_line, edge_line.b)) { + if ((!has_same_color(contour_line_prev, colored_line) || force_edge_adding[colored_line.poly_idx]) && + points_inside(contour_line_prev.line, contour_line, edge_line.a)) { + graph.append_edge(from_idx, to_idx); + force_edge_adding[colored_line.poly_idx] = false; + } + } else { + if ((!has_same_color(contour_line_next, colored_line) || force_edge_adding[colored_line.poly_idx]) && + points_inside(contour_line, contour_line_next.line, edge_line.a)) { + graph.append_edge(from_idx, to_idx); + force_edge_adding[colored_line.poly_idx] = false; + } + } + } + } else if (Point intersection; line_intersection_with_epsilon(contour_line, edge_line, &intersection)) { + mark_processed(edge_it); + Vec2d real_v0_double = graph.nodes[edge_it->vertex0()->color()].point; + Vec2d real_v1_double = graph.nodes[edge_it->vertex1()->color()].point; + Point real_v0 = Point(coord_t(real_v0_double.x()), coord_t(real_v0_double.y())); + Point real_v1 = Point(coord_t(real_v1_double.x()), coord_t(real_v1_double.y())); + + if (is_point_closer_to_beginning_of_line(contour_line, intersection)) { + Line first_part(intersection, real_v0); + Line second_part(intersection, real_v1); + + if (!has_same_color(contour_line_prev, colored_line)) { + if (points_inside(contour_line_prev.line, contour_line, first_part.b)) + graph.append_edge(edge_it->vertex0()->color(), graph.get_border_arc(edge_it->cell()->source_index()).from_idx); + + if (points_inside(contour_line_prev.line, contour_line, second_part.b)) + graph.append_edge(edge_it->vertex1()->color(), graph.get_border_arc(edge_it->cell()->source_index()).from_idx); + } + } else { + const size_t int_point_idx = graph.get_border_arc(edge_it->cell()->source_index()).to_idx; + const Vec2d int_point_double = graph.nodes[int_point_idx].point; + const Point int_point = Point(coord_t(int_point_double.x()), coord_t(int_point_double.y())); + + const Line first_part(int_point, real_v0); + const Line second_part(int_point, real_v1); + + if (!has_same_color(contour_line_next, colored_line)) { + if (points_inside(contour_line, contour_line_next.line, first_part.b)) graph.append_edge(edge_it->vertex0()->color(), int_point_idx); + + if (points_inside(contour_line, contour_line_next.line, second_part.b)) graph.append_edge(edge_it->vertex1()->color(), int_point_idx); + } + } + } + } + } + + for (auto edge_it = vd.edges().begin(); edge_it != vd.edges().end(); ++edge_it) { + // Skip second half-edge and processed edges + if (edge_it->cell()->source_index() > edge_it->twin()->cell()->source_index() || edge_it->color()) continue; + + if (edge_it->is_finite() && !bool(edge_it->color()) && edge_it->vertex0()->color() < graph.nodes_count() && edge_it->vertex1()->color() < graph.nodes_count()) { + // Skip cases, when the edge is between two same vertices, which is in cases two near vertices were merged together. + if (edge_it->vertex0()->color() == edge_it->vertex1()->color()) continue; + + size_t from_idx = edge_it->vertex0()->color(); + size_t to_idx = edge_it->vertex1()->color(); + graph.append_edge(from_idx, to_idx); + } + mark_processed(edge_it); + } + + graph.remove_nodes_with_one_arc(); + return graph; +} + +static std::vector>> get_all_segments(const std::vector> &color_poly) +{ + std::vector>> all_segments(color_poly.size()); + for (size_t poly_idx = 0; poly_idx < color_poly.size(); ++poly_idx) { + const std::vector &c_polygon = color_poly[poly_idx]; + all_segments[poly_idx] = get_segments(c_polygon); + } + return all_segments; +} + +static inline double compute_edge_length(const MMU_Graph &graph, const size_t start_idx, const size_t &start_arc_idx) +{ + assert(start_arc_idx < graph.arcs.size()); + std::vector used_arcs(graph.arcs.size(), false); + + used_arcs[start_arc_idx] = true; + const MMU_Graph::Arc *arc = &graph.arcs[start_arc_idx]; + size_t idx = start_idx; + double line_total_length = (graph.nodes[arc->to_idx].point - graph.nodes[idx].point).norm(); + while (graph.nodes[arc->to_idx].arc_idxs.size() == 2) { + bool found = false; + for (const size_t &arc_idx : graph.nodes[arc->to_idx].arc_idxs) { + if (const MMU_Graph::Arc &arc_n = graph.arcs[arc_idx]; arc_n.type == MMU_Graph::ARC_TYPE::NON_BORDER && !used_arcs[arc_idx] && arc_n.to_idx != idx) { + Linef first_line(graph.nodes[idx].point, graph.nodes[arc->to_idx].point); + Linef second_line(graph.nodes[arc->to_idx].point, graph.nodes[arc_n.to_idx].point); + + Vec2d first_line_vec = (first_line.a - first_line.b); + Vec2d second_line_vec = (second_line.b - second_line.a); + Vec2d first_line_vec_n = first_line_vec.normalized(); + Vec2d second_line_vec_n = second_line_vec.normalized(); + double angle = ::acos(std::clamp(first_line_vec_n.dot(second_line_vec_n), -1.0, 1.0)); + if (Slic3r::cross2(first_line_vec_n, second_line_vec_n) < 0.0) angle = 2.0 * (double) PI - angle; + + if (std::abs(angle - PI) >= (PI / 12)) continue; + + idx = arc->to_idx; + arc = &arc_n; + + line_total_length += (graph.nodes[arc->to_idx].point - graph.nodes[idx].point).norm(); + used_arcs[arc_idx] = true; + found = true; + break; + } + } + if (!found) break; + } + + return line_total_length; +} + +static void remove_multiple_edges_in_vertices(MMU_Graph &graph, const std::vector> &color_poly) +{ + std::vector>> colored_segments = get_all_segments(color_poly); + for (const std::vector> &colored_segment_p : colored_segments) { + size_t poly_idx = &colored_segment_p - &colored_segments.front(); + for (const std::pair &colored_segment : colored_segment_p) { + size_t first_idx = graph.get_global_index(poly_idx, colored_segment.first); + size_t second_idx = graph.get_global_index(poly_idx, (colored_segment.second + 1) % graph.polygon_sizes[poly_idx]); + Linef seg_line(graph.nodes[first_idx].point, graph.nodes[second_idx].point); + + if (graph.nodes[first_idx].arc_idxs.size() >= 3) { + std::vector> arc_to_check; + for (const size_t &arc_idx : graph.nodes[first_idx].arc_idxs) { + MMU_Graph::Arc &n_arc = graph.arcs[arc_idx]; + if (n_arc.type == MMU_Graph::ARC_TYPE::NON_BORDER) { + double total_len = compute_edge_length(graph, first_idx, arc_idx); + arc_to_check.emplace_back(&n_arc, total_len); + } + } + std::sort(arc_to_check.begin(), arc_to_check.end(), + [](std::pair &l, std::pair &r) -> bool { return l.second > r.second; }); + + while (arc_to_check.size() > 1) { + graph.remove_edge(first_idx, arc_to_check.back().first->to_idx); + arc_to_check.pop_back(); + } + } + } + } +} + static std::vector> merge_segmented_layers( const std::vector> &segmented_regions, std::vector> &&top_and_bottom_layers, @@ -1473,7 +2276,11 @@ std::vector> multi_material_segmentation_by_painting(con // If the whole layer is painted using the same color, it is not needed to construct a Voronoi diagram for the segmentation of this layer. segmented_regions[layer_idx][size_t(color_poly.front().front().color)] = input_expolygons[layer_idx]; } else { - segmented_regions[layer_idx] = extract_colored_segments(color_poly, num_extruders, layer_idx); + MMU_Graph graph = build_graph(layer_idx, color_poly); + remove_multiple_edges_in_vertices(graph, color_poly); + graph.remove_nodes_with_one_arc(); + segmented_regions[layer_idx] = extract_colored_segments(graph, num_extruders); + //segmented_regions[layer_idx] = extract_colored_segments(color_poly, num_extruders, layer_idx); } #ifdef MM_SEGMENTATION_DEBUG_REGIONS @@ -1485,7 +2292,7 @@ std::vector> multi_material_segmentation_by_painting(con BOOST_LOG_TRIVIAL(debug) << "MM segmentation - layers segmentation in parallel - end"; throw_on_cancel_callback(); - if (auto max_width = print_object.config().mmu_segmented_region_max_width, interlocking_depth = print_object.config().mmu_segmented_region_interlocking_depth; max_width > 0.f) { + if (auto max_width = print_object.config().mmu_segmented_region_max_width, interlocking_depth = print_object.config().mmu_segmented_region_interlocking_depth; max_width > 0.f || interlocking_depth > 0.f) { cut_segmented_layers(input_expolygons, segmented_regions, float(scale_(max_width)), float(scale_(interlocking_depth)), throw_on_cancel_callback); throw_on_cancel_callback(); } diff --git a/src/libslic3r/NSVGUtils.cpp b/src/libslic3r/NSVGUtils.cpp index 6bfb89b74e..e27a6738e2 100644 --- a/src/libslic3r/NSVGUtils.cpp +++ b/src/libslic3r/NSVGUtils.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2021 - 2022 Filip Sykala @Jony01 -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "NSVGUtils.hpp" #include #include // to_chars diff --git a/src/libslic3r/NSVGUtils.hpp b/src/libslic3r/NSVGUtils.hpp index fe76fa0459..8d6a3bc3ef 100644 --- a/src/libslic3r/NSVGUtils.hpp +++ b/src/libslic3r/NSVGUtils.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2021 Filip Sykala @Jony01 -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_NSVGUtils_hpp_ #define slic3r_NSVGUtils_hpp_ diff --git a/src/libslic3r/PerimeterGenerator.cpp b/src/libslic3r/PerimeterGenerator.cpp index 8cdf36238d..a3c123c10c 100644 --- a/src/libslic3r/PerimeterGenerator.cpp +++ b/src/libslic3r/PerimeterGenerator.cpp @@ -1,10 +1,3 @@ -///|/ Copyright (c) Prusa Research 2016 - 2023 Vojtěch Bubník @bubnikv, Pavel Mikuš @Godrak, Lukáš Hejl @hejllukas, Lukáš Matěna @lukasmatena -///|/ Copyright (c) SuperSlicer 2023 Remi Durand @supermerill -///|/ Copyright (c) 2021 Ilya @xorza -///|/ Copyright (c) Slic3r 2015 - 2016 Alessandro Ranellucci @alranel -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "PerimeterGenerator.hpp" #include "AABBTreeLines.hpp" #include "BridgeDetector.hpp" @@ -23,6 +16,7 @@ #include "Line.hpp" #include #include +#include #include #include "libslic3r/AABBTreeLines.hpp" static const int overhang_sampling_number = 6; @@ -36,6 +30,15 @@ static constexpr double SMALLER_EXT_INSET_OVERLAP_TOLERANCE = 0.22; namespace Slic3r { +// Produces a random value between 0 and 1. Thread-safe. +static double random_value() { + thread_local std::random_device rd; + // Hash thread ID for random number seed if no hardware rng seed is available + thread_local std::mt19937 gen(rd.entropy() > 0 ? rd() : std::hash()(std::this_thread::get_id())); + thread_local std::uniform_real_distribution dist(0.0, 1.0); + return dist(gen); +} + // Hierarchy of perimeters. class PerimeterGeneratorLoop { public: @@ -65,7 +68,7 @@ static void fuzzy_polygon(Polygon &poly, double fuzzy_skin_thickness, double fuz { const double min_dist_between_points = fuzzy_skin_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 = fuzzy_skin_point_distance / 2.; - double dist_left_over = double(rand()) * (min_dist_between_points / 2) / double(RAND_MAX); // the distance to be traversed on the line before making the first new point + 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 Point* p0 = &poly.points.back(); Points out; out.reserve(poly.points.size()); @@ -75,9 +78,9 @@ static void fuzzy_polygon(Polygon &poly, double fuzzy_skin_thickness, double fuz double p0p1_size = p0p1.norm(); double p0pa_dist = dist_left_over; for (; p0pa_dist < p0p1_size; - p0pa_dist += min_dist_between_points + double(rand()) * range_random_point_dist / double(RAND_MAX)) + p0pa_dist += min_dist_between_points + random_value() * range_random_point_dist) { - double r = double(rand()) * (fuzzy_skin_thickness * 2.) / double(RAND_MAX) - fuzzy_skin_thickness; + double r = random_value() * (fuzzy_skin_thickness * 2.) - fuzzy_skin_thickness; out.emplace_back(*p0 + (p0p1 * (p0pa_dist / p0p1_size) + perp(p0p1).cast().normalized() * r).cast()); } dist_left_over = p0pa_dist - p0p1_size; diff --git a/src/libslic3r/Point.cpp b/src/libslic3r/Point.cpp index d0cea481be..e06b3d5ca6 100644 --- a/src/libslic3r/Point.cpp +++ b/src/libslic3r/Point.cpp @@ -1,15 +1,3 @@ -///|/ Copyright (c) Prusa Research 2016 - 2023 Vojtěch Bubník @bubnikv, Pavel Mikuš @Godrak, Filip Sykala @Jony01, Lukáš Hejl @hejllukas, Enrico Turri @enricoturri1966, Lukáš Matěna @lukasmatena, Tomáš Mészáros @tamasmeszaros -///|/ Copyright (c) Slic3r 2013 - 2016 Alessandro Ranellucci @alranel -///|/ Copyright (c) 2014 Petr Ledvina @ledvinap -///|/ Copyright (c) 2014 Kamil Kwolek -///|/ Copyright (c) 2013 Jose Luis Perez Diez -///|/ -///|/ ported from lib/Slic3r/Point.pm: -///|/ Copyright (c) Prusa Research 2018 Vojtěch Bubník @bubnikv -///|/ Copyright (c) Slic3r 2011 - 2015 Alessandro Ranellucci @alranel -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "Point.hpp" #include "Line.hpp" #include "MultiPoint.hpp" diff --git a/src/libslic3r/Point.hpp b/src/libslic3r/Point.hpp index 8181da4268..1c5aa43c09 100644 --- a/src/libslic3r/Point.hpp +++ b/src/libslic3r/Point.hpp @@ -1,14 +1,3 @@ -///|/ Copyright (c) Prusa Research 2016 - 2023 Vojtěch Bubník @bubnikv, Pavel Mikuš @Godrak, Enrico Turri @enricoturri1966, Lukáš Matěna @lukasmatena, Lukáš Hejl @hejllukas, Filip Sykala @Jony01, Tomáš Mészáros @tamasmeszaros, Vojtěch Král @vojtechkral -///|/ Copyright (c) SuperSlicer 2019 Remi Durand @supermerill -///|/ Copyright (c) Slic3r 2013 - 2016 Alessandro Ranellucci @alranel -///|/ Copyright (c) 2016 Mark Walker -///|/ -///|/ ported from lib/Slic3r/Point.pm: -///|/ Copyright (c) Prusa Research 2018 Vojtěch Bubník @bubnikv -///|/ Copyright (c) Slic3r 2011 - 2015 Alessandro Ranellucci @alranel -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_Point_hpp_ #define slic3r_Point_hpp_ diff --git a/src/libslic3r/Polygon.cpp b/src/libslic3r/Polygon.cpp index 697def1f5b..5d3d643349 100644 --- a/src/libslic3r/Polygon.cpp +++ b/src/libslic3r/Polygon.cpp @@ -1,14 +1,3 @@ -///|/ Copyright (c) Prusa Research 2016 - 2023 Vojtěch Bubník @bubnikv, Filip Sykala @Jony01, Lukáš Matěna @lukasmatena, Tomáš Mészáros @tamasmeszaros, Enrico Turri @enricoturri1966 -///|/ Copyright (c) Slic3r 2013 - 2015 Alessandro Ranellucci @alranel -///|/ Copyright (c) 2014 Petr Ledvina @ledvinap -///|/ -///|/ ported from lib/Slic3r/Polygon.pm: -///|/ Copyright (c) Prusa Research 2017 - 2022 Vojtěch Bubník @bubnikv -///|/ Copyright (c) Slic3r 2011 - 2014 Alessandro Ranellucci @alranel -///|/ Copyright (c) 2012 Mark Hindess -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "BoundingBox.hpp" #include "ClipperUtils.hpp" #include "Exception.hpp" diff --git a/src/libslic3r/Polygon.hpp b/src/libslic3r/Polygon.hpp index 848e37c0ad..eacf5a6636 100644 --- a/src/libslic3r/Polygon.hpp +++ b/src/libslic3r/Polygon.hpp @@ -1,13 +1,3 @@ -///|/ Copyright (c) Prusa Research 2016 - 2023 Tomáš Mészáros @tamasmeszaros, Vojtěch Bubník @bubnikv, Lukáš Matěna @lukasmatena, Lukáš Hejl @hejllukas, Filip Sykala @Jony01, Oleksandra Iushchenko @YuSanka -///|/ Copyright (c) Slic3r 2013 - 2016 Alessandro Ranellucci @alranel -///|/ -///|/ ported from lib/Slic3r/Polygon.pm: -///|/ Copyright (c) Prusa Research 2017 - 2022 Vojtěch Bubník @bubnikv -///|/ Copyright (c) Slic3r 2011 - 2014 Alessandro Ranellucci @alranel -///|/ Copyright (c) 2012 Mark Hindess -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_Polygon_hpp_ #define slic3r_Polygon_hpp_ diff --git a/src/libslic3r/Polyline.cpp b/src/libslic3r/Polyline.cpp index bab74a93cf..b30564f3c1 100644 --- a/src/libslic3r/Polyline.cpp +++ b/src/libslic3r/Polyline.cpp @@ -1,15 +1,3 @@ -///|/ Copyright (c) Prusa Research 2016 - 2023 Vojtěch Bubník @bubnikv, Lukáš Hejl @hejllukas, Enrico Turri @enricoturri1966 -///|/ Copyright (c) Slic3r 2013 - 2016 Alessandro Ranellucci @alranel -///|/ Copyright (c) 2015 Maksim Derbasov @ntfshard -///|/ Copyright (c) 2014 Petr Ledvina @ledvinap -///|/ -///|/ ported from lib/Slic3r/Polyline.pm: -///|/ Copyright (c) Prusa Research 2018 Vojtěch Bubník @bubnikv -///|/ Copyright (c) Slic3r 2011 - 2014 Alessandro Ranellucci @alranel -///|/ Copyright (c) 2012 Mark Hindess -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "BoundingBox.hpp" #include "Polyline.hpp" #include "Exception.hpp" diff --git a/src/libslic3r/Polyline.hpp b/src/libslic3r/Polyline.hpp index 6b5479e669..bff65f7a2f 100644 --- a/src/libslic3r/Polyline.hpp +++ b/src/libslic3r/Polyline.hpp @@ -1,13 +1,3 @@ -///|/ Copyright (c) Prusa Research 2016 - 2023 Tomáš Mészáros @tamasmeszaros, Pavel Mikuš @Godrak, Vojtěch Bubník @bubnikv, Lukáš Hejl @hejllukas, Lukáš Matěna @lukasmatena, Oleksandra Iushchenko @YuSanka, Enrico Turri @enricoturri1966 -///|/ Copyright (c) Slic3r 2013 - 2016 Alessandro Ranellucci @alranel -///|/ -///|/ ported from lib/Slic3r/Polyline.pm: -///|/ Copyright (c) Prusa Research 2018 Vojtěch Bubník @bubnikv -///|/ Copyright (c) Slic3r 2011 - 2014 Alessandro Ranellucci @alranel -///|/ Copyright (c) 2012 Mark Hindess -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_Polyline_hpp_ #define slic3r_Polyline_hpp_ diff --git a/src/libslic3r/Preset.cpp b/src/libslic3r/Preset.cpp index 4d6572376b..c4db6a53e0 100644 --- a/src/libslic3r/Preset.cpp +++ b/src/libslic3r/Preset.cpp @@ -1,11 +1,3 @@ -///|/ Copyright (c) Prusa Research 2017 - 2023 Oleksandra Iushchenko @YuSanka, Lukáš Matěna @lukasmatena, Tomáš Mészáros @tamasmeszaros, Lukáš Hejl @hejllukas, Vojtěch Bubník @bubnikv, Pavel Mikuš @Godrak, David Kocík @kocikdav, Enrico Turri @enricoturri1966, Vojtěch Král @vojtechkral -///|/ Copyright (c) 2021 Martin Budden -///|/ Copyright (c) 2021 Ilya @xorza -///|/ Copyright (c) 2019 John Drake @foxox -///|/ Copyright (c) 2018 Martin Loidl @LoidlM -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include #include "Config.hpp" @@ -833,7 +825,7 @@ static std::vector s_Preset_filament_options { "cool_plate_temp", "eng_plate_temp", "hot_plate_temp", "textured_plate_temp", "cool_plate_temp_initial_layer", "eng_plate_temp_initial_layer", "hot_plate_temp_initial_layer","textured_plate_temp_initial_layer", // "bed_type", //BBS:temperature_vitrification - "temperature_vitrification", "reduce_fan_stop_start_freq", "slow_down_for_layer_cooling", "fan_min_speed", + "temperature_vitrification", "reduce_fan_stop_start_freq","dont_slow_down_outer_wall", "slow_down_for_layer_cooling", "fan_min_speed", "fan_max_speed", "enable_overhang_bridge_fan", "overhang_fan_speed", "overhang_fan_threshold", "close_fan_the_first_x_layers", "full_fan_speed_layer", "fan_cooling_layer_time", "slow_down_layer_time", "slow_down_min_speed", "filament_start_gcode", "filament_end_gcode", //exhaust fan control diff --git a/src/libslic3r/PresetBundle.cpp b/src/libslic3r/PresetBundle.cpp index 029009d866..859df030b1 100644 --- a/src/libslic3r/PresetBundle.cpp +++ b/src/libslic3r/PresetBundle.cpp @@ -351,6 +351,20 @@ bool PresetBundle::use_bbl_network() return use_bbl_network; } +bool PresetBundle::use_bbl_device_tab() { + if (!is_bbl_vendor()) { + return false; + } + + if (use_bbl_network()) { + return true; + } + + const auto cfg = printers.get_edited_preset().config; + // Use bbl device tab if printhost webui url is not set + return cfg.opt_string("print_host_webui").empty(); +} + //BBS: load project embedded presets PresetsConfigSubstitutions PresetBundle::load_project_embedded_presets(std::vector project_presets, ForwardCompatibilitySubstitutionRule substitution_rule) { diff --git a/src/libslic3r/PresetBundle.hpp b/src/libslic3r/PresetBundle.hpp index 8d3f9e1bdc..1bf8b4465a 100644 --- a/src/libslic3r/PresetBundle.hpp +++ b/src/libslic3r/PresetBundle.hpp @@ -1,8 +1,3 @@ -///|/ Copyright (c) Prusa Research 2017 - 2023 Oleksandra Iushchenko @YuSanka, Enrico Turri @enricoturri1966, Lukáš Matěna @lukasmatena, Vojtěch Bubník @bubnikv, David Kocík @kocikdav, Vojtěch Král @vojtechkral -///|/ Copyright (c) 2019 John Drake @foxox -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_PresetBundle_hpp_ #define slic3r_PresetBundle_hpp_ @@ -97,7 +92,10 @@ public: VendorType get_current_vendor_type(); // Vendor related handy functions bool is_bbl_vendor() { return get_current_vendor_type() == VendorType::Marlin_BBL; } + // Whether using bbl network for print upload bool use_bbl_network(); + // Whether using bbl's device tab + bool use_bbl_device_tab(); //BBS: project embedded preset logic PresetsConfigSubstitutions load_project_embedded_presets(std::vector project_presets, ForwardCompatibilitySubstitutionRule substitution_rule); diff --git a/src/libslic3r/Print.cpp b/src/libslic3r/Print.cpp index 2b1492a2f5..5d19c04279 100644 --- a/src/libslic3r/Print.cpp +++ b/src/libslic3r/Print.cpp @@ -1,25 +1,3 @@ -///|/ Copyright (c) Prusa Research 2016 - 2023 Lukáš Matěna @lukasmatena, Tomáš Mészáros @tamasmeszaros, Enrico Turri @enricoturri1966, Vojtěch Bubník @bubnikv, Pavel Mikuš @Godrak, Oleksandra Iushchenko @YuSanka, Lukáš Hejl @hejllukas, Filip Sykala @Jony01, Roman Beránek @zavorka, David Kocík @kocikdav -///|/ Copyright (c) BambuStudio 2023 manch1n @manch1n -///|/ Copyright (c) SuperSlicer 2023 Remi Durand @supermerill -///|/ Copyright (c) 2021 Martin Budden -///|/ Copyright (c) 2020 Paul Arden @ardenpm -///|/ Copyright (c) 2019 Thomas Moore -///|/ Copyright (c) 2019 Bryan Smith -///|/ Copyright (c) Slic3r 2013 - 2016 Alessandro Ranellucci @alranel -///|/ Copyright (c) 2014 Petr Ledvina @ledvinap -///|/ -///|/ ported from lib/Slic3r/Print.pm: -///|/ Copyright (c) Prusa Research 2016 - 2018 Vojtěch Bubník @bubnikv, Tomáš Mészáros @tamasmeszaros -///|/ Copyright (c) Slic3r 2011 - 2016 Alessandro Ranellucci @alranel -///|/ Copyright (c) 2012 - 2013 Mark Hindess -///|/ Copyright (c) 2013 Devin Grady -///|/ Copyright (c) 2012 - 2013 Mike Sheldrake @mesheldrake -///|/ Copyright (c) 2012 Henrik Brix Andersen @henrikbrixandersen -///|/ Copyright (c) 2012 Michael Moon -///|/ Copyright (c) 2011 Richard Goodwin -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "Config.hpp" #include "Exception.hpp" #include "Print.hpp" @@ -131,6 +109,7 @@ bool Print::invalidate_state_by_config_options(const ConfigOptionResolver & /* n "extruder_offset", "filament_flow_ratio", "reduce_fan_stop_start_freq", + "dont_slow_down_outer_wall", "fan_cooling_layer_time", "full_fan_speed_layer", "fan_kickstart", @@ -2473,9 +2452,9 @@ FilamentTempType Print::get_filament_temp_type(const std::string& filament_type) catch (const json::parse_error& err){ in.close(); BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << ": parse " << file_path.string() << " got a nlohmann::detail::parse_error, reason = " << err.what(); - filament_temp_type_map[HighTempFilamentStr] = {"ABS","ASA","PC","PA","PA-CF","PA6-CF","PET-CF","PPS","PPS-CF","PPA-GF","PPA-CF"}; - filament_temp_type_map[LowTempFilamentStr] = {"PLA","TPU","PLA-CF","PLA-AERO","PVA"}; - filament_temp_type_map[HighLowCompatibleFilamentStr] = { "HIPS","PETG" }; + filament_temp_type_map[HighTempFilamentStr] = {"ABS","ASA","PC","PA","PA-CF","PA-GF","PA6-CF","PET-CF","PPS","PPS-CF","PPA-GF","PPA-CF","ABS-Aero","ABS-GF"}; + filament_temp_type_map[LowTempFilamentStr] = {"PLA","TPU","PLA-CF","PLA-AERO","PVA","BVOH"}; + filament_temp_type_map[HighLowCompatibleFilamentStr] = { "HIPS","PETG","PCTG","PE","PP","EVA","PE-CF","PP-CF","PP-GF","PHA"}; } } diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index f5db651c27..ce086084de 100644 --- a/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp @@ -1,24 +1,3 @@ -///|/ Copyright (c) Prusa Research 2016 - 2023 Vojtěch Bubník @bubnikv, Lukáš Matěna @lukasmatena, Lukáš Hejl @hejllukas, Tomáš Mészáros @tamasmeszaros, Oleksandra Iushchenko @YuSanka, Pavel Mikuš @Godrak, David Kocík @kocikdav, Enrico Turri @enricoturri1966, Filip Sykala @Jony01, Vojtěch Král @vojtechkral -///|/ Copyright (c) 2023 Pedro Lamas @PedroLamas -///|/ Copyright (c) 2023 Mimoja @Mimoja -///|/ Copyright (c) 2020 - 2021 Sergey Kovalev @RandoMan70 -///|/ Copyright (c) 2021 Niall Sheridan @nsheridan -///|/ Copyright (c) 2021 Martin Budden -///|/ Copyright (c) 2021 Ilya @xorza -///|/ Copyright (c) 2020 Paul Arden @ardenpm -///|/ Copyright (c) 2020 rongith -///|/ Copyright (c) 2019 Spencer Owen @spuder -///|/ Copyright (c) 2019 Stephan Reichhelm @stephanr -///|/ Copyright (c) 2018 Martin Loidl @LoidlM -///|/ Copyright (c) SuperSlicer 2018 Remi Durand @supermerill -///|/ Copyright (c) 2016 - 2017 Joseph Lenox @lordofhyphens -///|/ Copyright (c) Slic3r 2013 - 2016 Alessandro Ranellucci @alranel -///|/ Copyright (c) 2016 Vanessa Ezekowitz @VanessaE -///|/ Copyright (c) 2015 Alexander Rössler @machinekoder -///|/ Copyright (c) 2014 Petr Ledvina @ledvinap -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "PrintConfig.hpp" #include "ClipperUtils.hpp" #include "Config.hpp" @@ -586,7 +565,6 @@ void PrintConfigDef::init_common_params() def->cli = ConfigOptionDef::nocli; def->set_default_value(new ConfigOptionString("")); - def = this->add("printhost_apikey", coString); def->label = L("API Key / Password"); def->tooltip = L("Orca Slicer can upload G-code files to a printer host. This field should contain " @@ -1737,6 +1715,15 @@ void PrintConfigDef::init_fff_params() def->tooltip = L("If enable this setting, part cooling fan will never be stoped and will run at least " "at minimum speed to reduce the frequency of starting and stoping"); def->set_default_value(new ConfigOptionBools { false }); + + def = this->add("dont_slow_down_outer_wall", coBools); + def->label = L("Don't slow down outer walls"); + def->tooltip = L("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 artefacts that appear like z banding \n" + "3. To avoid printing at speeds which cause VFAs (fine artefacts) on the external walls\n\n"); + def->set_default_value(new ConfigOptionBools { false }); def = this->add("fan_cooling_layer_time", coFloats); def->label = L("Layer time"); @@ -1827,7 +1814,7 @@ void PrintConfigDef::init_fff_params() def->mode = comAdvanced; def->set_default_value(new ConfigOptionPercents{ 100 }); -def = this->add("filament_loading_speed", coFloats); + def = this->add("filament_loading_speed", coFloats); def->label = L("Loading speed"); def->tooltip = L("Speed used for loading the filament on the wipe tower."); def->sidetext = L("mm/s"); @@ -1966,25 +1953,42 @@ def = this->add("filament_loading_speed", coFloats); def->tooltip = L("The material type of filament"); def->gui_type = ConfigOptionDef::GUIType::f_enum_open; def->gui_flags = "show_value"; - def->enum_values.push_back("PLA"); + def->enum_values.push_back("ABS"); + def->enum_values.push_back("ABS-GF"); def->enum_values.push_back("ASA"); - def->enum_values.push_back("PETG"); - def->enum_values.push_back("TPU"); - def->enum_values.push_back("PC"); + def->enum_values.push_back("ASA-Aero"); + def->enum_values.push_back("BVOH"); + def->enum_values.push_back("PCTG"); + def->enum_values.push_back("EVA"); + def->enum_values.push_back("HIPS"); def->enum_values.push_back("PA"); def->enum_values.push_back("PA-CF"); + def->enum_values.push_back("PA-GF"); def->enum_values.push_back("PA6-CF"); - def->enum_values.push_back("PLA-CF"); + def->enum_values.push_back("PA11-CF"); + def->enum_values.push_back("PC"); + def->enum_values.push_back("PC-CF"); + def->enum_values.push_back("PCTG"); + def->enum_values.push_back("PE"); + def->enum_values.push_back("PE-CF"); def->enum_values.push_back("PET-CF"); + def->enum_values.push_back("PETG"); def->enum_values.push_back("PETG-CF"); - def->enum_values.push_back("PVA"); - def->enum_values.push_back("HIPS"); + def->enum_values.push_back("PHA"); + def->enum_values.push_back("PLA"); def->enum_values.push_back("PLA-AERO"); - def->enum_values.push_back("PPS"); - def->enum_values.push_back("PPS-CF"); + def->enum_values.push_back("PLA-CF"); + def->enum_values.push_back("PP"); + def->enum_values.push_back("PP-CF"); + def->enum_values.push_back("PP-GF"); def->enum_values.push_back("PPA-CF"); def->enum_values.push_back("PPA-GF"); + def->enum_values.push_back("PPS"); + def->enum_values.push_back("PPS-CF"); + def->enum_values.push_back("PVA"); + def->enum_values.push_back("PVB"); + def->enum_values.push_back("TPU"); def->mode = comSimple; def->set_default_value(new ConfigOptionStrings { "PLA" }); @@ -6699,9 +6703,14 @@ CLIActionsConfigDef::CLIActionsConfigDef() def = this->add("export_stl", coBool); def->label = "Export STL"; - def->tooltip = "Export the objects as multiple STL."; + def->tooltip = "Export the objects as single STL."; def->set_default_value(new ConfigOptionBool(false)); + def = this->add("export_stls", coString); + def->label = "Export multiple stls"; + def->tooltip = "Export the objects as multiple stls to directory"; + def->set_default_value(new ConfigOptionString("stl_path")); + /*def = this->add("export_gcode", coBool); def->label = L("Export G-code"); def->tooltip = L("Slice the model and export toolpaths as G-code."); @@ -6734,6 +6743,12 @@ CLIActionsConfigDef::CLIActionsConfigDef() def->cli = "uptodate"; def->set_default_value(new ConfigOptionBool(false)); + def = this->add("downward_check", coStrings); + def->label = "downward machines check"; + def->tooltip = "check whether current machine downward compatible with the machines in the list"; + def->cli_params = "\"machine1.json;machine2.json;...\""; + def->set_default_value(new ConfigOptionStrings()); + def = this->add("load_defaultfila", coBool); def->label = "Load default filaments"; def->tooltip = "Load first filament as default for those not loaded"; @@ -6987,6 +7002,17 @@ CLIMiscConfigDef::CLIMiscConfigDef() def->cli_params = "\"filament1.json;filament2.json;...\""; def->set_default_value(new ConfigOptionStrings()); + def = this->add("downward_check", coBool); + def->label = "downward machines check"; + def->tooltip = "if enabled, check whether current machine downward compatible with the machines in the list"; + def->set_default_value(new ConfigOptionBool(false)); + + def = this->add("downward_settings", coStrings); + def->label = "downward machines settings"; + def->tooltip = "the machine settings list need to do downward checking"; + def->cli_params = "\"machine1.json;machine2.json;...\""; + def->set_default_value(new ConfigOptionStrings()); + def = this->add("load_assemble_list", coString); def->label = "Load assemble list"; def->tooltip = "Load assemble object list from config file"; @@ -7085,6 +7111,18 @@ CLIMiscConfigDef::CLIMiscConfigDef() def->cli_params = "version"; def->set_default_value(new ConfigOptionString()); + def = this->add("metadata_name", coStrings); + def->label = "metadata name list"; + def->tooltip = "matadata name list added into 3mf"; + def->cli_params = "\"name1;name2;...\""; + def->set_default_value(new ConfigOptionStrings()); + + def = this->add("metadata_value", coStrings); + def->label = "metadata value list"; + def->tooltip = "matadata value list added into 3mf"; + def->cli_params = "\"value1;value2;...\""; + def->set_default_value(new ConfigOptionStrings()); + def = this->add("allow_newer_file", coBool); def->label = "Allow 3mf with newer version to be sliced"; def->tooltip = "Allow 3mf with newer version to be sliced"; diff --git a/src/libslic3r/PrintConfig.hpp b/src/libslic3r/PrintConfig.hpp index da9d3fcae9..92fbd2e444 100644 --- a/src/libslic3r/PrintConfig.hpp +++ b/src/libslic3r/PrintConfig.hpp @@ -1,20 +1,3 @@ -///|/ Copyright (c) Prusa Research 2016 - 2023 Vojtěch Bubník @bubnikv, Lukáš Matěna @lukasmatena, Lukáš Hejl @hejllukas, Tomáš Mészáros @tamasmeszaros, Pavel Mikuš @Godrak, David Kocík @kocikdav, Oleksandra Iushchenko @YuSanka, Vojtěch Král @vojtechkral, Enrico Turri @enricoturri1966 -///|/ Copyright (c) 2023 Pedro Lamas @PedroLamas -///|/ Copyright (c) 2020 Sergey Kovalev @RandoMan70 -///|/ Copyright (c) 2021 Martin Budden -///|/ Copyright (c) 2021 Ilya @xorza -///|/ Copyright (c) 2020 Paul Arden @ardenpm -///|/ Copyright (c) 2019 Spencer Owen @spuder -///|/ Copyright (c) 2019 Stephan Reichhelm @stephanr -///|/ Copyright (c) 2018 Martin Loidl @LoidlM -///|/ Copyright (c) SuperSlicer 2018 Remi Durand @supermerill -///|/ Copyright (c) 2016 - 2017 Joseph Lenox @lordofhyphens -///|/ Copyright (c) Slic3r 2013 - 2015 Alessandro Ranellucci @alranel -///|/ Copyright (c) 2015 Maksim Derbasov @ntfshard -///|/ Copyright (c) 2015 Alexander Rössler @machinekoder -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ // Configuration store of Slic3r. // // The configuration store is either static or dynamic. @@ -1195,6 +1178,7 @@ PRINT_CONFIG_CLASS_DERIVED_DEFINE( ((ConfigOptionStrings, extruder_colour)) ((ConfigOptionPoints, extruder_offset)) ((ConfigOptionBools, reduce_fan_stop_start_freq)) + ((ConfigOptionBools, dont_slow_down_outer_wall)) ((ConfigOptionFloats, fan_cooling_layer_time)) ((ConfigOptionStrings, filament_colour)) ((ConfigOptionBools, activate_air_filtration)) diff --git a/src/libslic3r/PrintObject.cpp b/src/libslic3r/PrintObject.cpp index e20cead2ce..d4ae44c967 100644 --- a/src/libslic3r/PrintObject.cpp +++ b/src/libslic3r/PrintObject.cpp @@ -1,12 +1,3 @@ -///|/ Copyright (c) Prusa Research 2016 - 2023 Lukáš Hejl @hejllukas, Pavel Mikuš @Godrak, Lukáš Matěna @lukasmatena, Vojtěch Bubník @bubnikv, Enrico Turri @enricoturri1966, Oleksandra Iushchenko @YuSanka, David Kocík @kocikdav, Roman Beránek @zavorka -///|/ Copyright (c) 2021 Justin Schuh @jschuh -///|/ Copyright (c) 2021 Ilya @xorza -///|/ Copyright (c) 2016 Joseph Lenox @lordofhyphens -///|/ Copyright (c) Slic3r 2014 - 2016 Alessandro Ranellucci @alranel -///|/ Copyright (c) 2015 Maksim Derbasov @ntfshard -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "Exception.hpp" #include "Print.hpp" #include "BoundingBox.hpp" @@ -1046,8 +1037,8 @@ bool PrintObject::invalidate_state_by_config_options( opt_key == "bottom_shell_layers" || opt_key == "top_shell_layers") { - steps.emplace_back(posPrepareInfill); - + steps.emplace_back(posSlice); +#if (0) const auto *old_shell_layers = old_config.option(opt_key); const auto *new_shell_layers = new_config.option(opt_key); assert(old_shell_layers && new_shell_layers); @@ -1063,6 +1054,7 @@ bool PrintObject::invalidate_state_by_config_options( // Otherwise, holes in the bottom layers could be filled, as is reported in GH #5528. steps.emplace_back(posSlice); } +#endif } else if ( opt_key == "interface_shells" || opt_key == "infill_combination" diff --git a/src/libslic3r/SLA/AGGRaster.hpp b/src/libslic3r/SLA/AGGRaster.hpp index 8d86962fcc..7c8e71c2ae 100644 --- a/src/libslic3r/SLA/AGGRaster.hpp +++ b/src/libslic3r/SLA/AGGRaster.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2020 - 2022 Tomáš Mészáros @tamasmeszaros, Vojtěch Bubník @bubnikv -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef AGGRASTER_HPP #define AGGRASTER_HPP diff --git a/src/libslic3r/SLA/RasterBase.cpp b/src/libslic3r/SLA/RasterBase.cpp index 9f599e0486..7240b198da 100644 --- a/src/libslic3r/SLA/RasterBase.cpp +++ b/src/libslic3r/SLA/RasterBase.cpp @@ -1,8 +1,3 @@ -///|/ Copyright (c) Prusa Research 2020 - 2022 Tomáš Mészáros @tamasmeszaros -///|/ Copyright (c) 2022 ole00 @ole00 -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef SLARASTER_CPP #define SLARASTER_CPP diff --git a/src/libslic3r/SLA/RasterBase.hpp b/src/libslic3r/SLA/RasterBase.hpp index 5f2826aec4..33d39eafbd 100644 --- a/src/libslic3r/SLA/RasterBase.hpp +++ b/src/libslic3r/SLA/RasterBase.hpp @@ -1,8 +1,3 @@ -///|/ Copyright (c) Prusa Research 2020 - 2022 Tomáš Mészáros @tamasmeszaros, Vojtěch Bubník @bubnikv -///|/ Copyright (c) 2022 ole00 @ole00 -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef SLA_RASTERBASE_HPP #define SLA_RASTERBASE_HPP diff --git a/src/libslic3r/Shape/TextShape.cpp b/src/libslic3r/Shape/TextShape.cpp index 63c5f96df2..dce731af19 100644 --- a/src/libslic3r/Shape/TextShape.cpp +++ b/src/libslic3r/Shape/TextShape.cpp @@ -241,6 +241,9 @@ static void MakeMesh(TopoDS_Shape& theSolid, TriangleMesh& theMesh) void load_text_shape(const char*text, const char* font, const float text_height, const float thickness, bool is_bold, bool is_italic, TextResult &text_result) { + if (thickness <= 0) + return; + Handle(Font_FontMgr) aFontMgr = Font_FontMgr::GetInstance(); if (aFontMgr->GetAvailableFonts().IsEmpty()) aFontMgr->InitFontDataBase(); diff --git a/src/libslic3r/Slicing.cpp b/src/libslic3r/Slicing.cpp index 97a8700d83..636a3c471f 100644 --- a/src/libslic3r/Slicing.cpp +++ b/src/libslic3r/Slicing.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2016 - 2023 Vojtěch Bubník @bubnikv, Enrico Turri @enricoturri1966, David Kocík @kocikdav, Lukáš Matěna @lukasmatena, Oleksandra Iushchenko @YuSanka -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include #include "libslic3r.h" diff --git a/src/libslic3r/Slicing.hpp b/src/libslic3r/Slicing.hpp index 74b99eb8df..c519a3d194 100644 --- a/src/libslic3r/Slicing.hpp +++ b/src/libslic3r/Slicing.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2016 - 2023 Vojtěch Bubník @bubnikv, Lukáš Matěna @lukasmatena, David Kocík @kocikdav, Enrico Turri @enricoturri1966, Oleksandra Iushchenko @YuSanka, Vojtěch Král @vojtechkral -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ // Based on implementation by @platsch #ifndef slic3r_Slicing_hpp_ diff --git a/src/libslic3r/Support/OrganicSupport.cpp b/src/libslic3r/Support/OrganicSupport.cpp index 69cc0cf7e1..05e515d94e 100644 --- a/src/libslic3r/Support/OrganicSupport.cpp +++ b/src/libslic3r/Support/OrganicSupport.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2023 Vojtěch Bubník @bubnikv -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "OrganicSupport.hpp" #include "SupportCommon.hpp" diff --git a/src/libslic3r/Support/OrganicSupport.hpp b/src/libslic3r/Support/OrganicSupport.hpp index c7b13b9db5..f86caabe99 100644 --- a/src/libslic3r/Support/OrganicSupport.hpp +++ b/src/libslic3r/Support/OrganicSupport.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2023 Vojtěch Bubník @bubnikv -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_OrganicSupport_hpp #define slic3r_OrganicSupport_hpp diff --git a/src/libslic3r/Support/SupportCommon.cpp b/src/libslic3r/Support/SupportCommon.cpp index c494507c78..f51e992256 100644 --- a/src/libslic3r/Support/SupportCommon.cpp +++ b/src/libslic3r/Support/SupportCommon.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2023 Vojtěch Bubník @bubnikv, Pavel Mikuš @Godrak -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "../ClipperUtils.hpp" // #include "../ClipperZUtils.hpp" #include "../ExtrusionEntityCollection.hpp" diff --git a/src/libslic3r/Support/SupportCommon.hpp b/src/libslic3r/Support/SupportCommon.hpp index f8df25e503..753665e596 100644 --- a/src/libslic3r/Support/SupportCommon.hpp +++ b/src/libslic3r/Support/SupportCommon.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2023 Vojtěch Bubník @bubnikv -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_SupportCommon_hpp_ #define slic3r_SupportCommon_hpp_ diff --git a/src/libslic3r/Support/SupportDebug.cpp b/src/libslic3r/Support/SupportDebug.cpp index 24e92a0eb1..5c18bc7694 100644 --- a/src/libslic3r/Support/SupportDebug.cpp +++ b/src/libslic3r/Support/SupportDebug.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2023 Vojtěch Bubník @bubnikv -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #if 1 //#ifdef SLIC3R_DEBUG #include "../ClipperUtils.hpp" diff --git a/src/libslic3r/Support/SupportDebug.hpp b/src/libslic3r/Support/SupportDebug.hpp index fb2375efbd..22a43bc4ea 100644 --- a/src/libslic3r/Support/SupportDebug.hpp +++ b/src/libslic3r/Support/SupportDebug.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2023 Vojtěch Bubník @bubnikv -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_SupportCommon_hpp_ #define slic3r_SupportCommon_hpp_ diff --git a/src/libslic3r/Support/SupportLayer.hpp b/src/libslic3r/Support/SupportLayer.hpp index e017d7421c..a3c60b9fd8 100644 --- a/src/libslic3r/Support/SupportLayer.hpp +++ b/src/libslic3r/Support/SupportLayer.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2023 Vojtěch Bubník @bubnikv, Pavel Mikuš @Godrak -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_SupportLayer_hpp_ #define slic3r_SupportLayer_hpp_ diff --git a/src/libslic3r/Support/SupportMaterial.cpp b/src/libslic3r/Support/SupportMaterial.cpp index bc84af8deb..c6d250e420 100644 --- a/src/libslic3r/Support/SupportMaterial.cpp +++ b/src/libslic3r/Support/SupportMaterial.cpp @@ -1,9 +1,3 @@ -///|/ Copyright (c) Prusa Research 2016 - 2023 Vojtěch Bubník @bubnikv, Pavel Mikuš @Godrak, Lukáš Hejl @hejllukas, Roman Beránek @zavorka, Lukáš Matěna @lukasmatena, Vojtěch Král @vojtechkral -///|/ Copyright (c) SuperSlicer 2023 Remi Durand @supermerill -///|/ Copyright (c) 2016 Sakari Kapanen @Flannelhead -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "../ClipperUtils.hpp" #include "../ExtrusionEntityCollection.hpp" #include "../Layer.hpp" diff --git a/src/libslic3r/Support/SupportMaterial.hpp b/src/libslic3r/Support/SupportMaterial.hpp index 1b421959ed..f626150f04 100644 --- a/src/libslic3r/Support/SupportMaterial.hpp +++ b/src/libslic3r/Support/SupportMaterial.hpp @@ -1,8 +1,3 @@ -///|/ Copyright (c) Prusa Research 2016 - 2023 Vojtěch Bubník @bubnikv, Lukáš Matěna @lukasmatena -///|/ Copyright (c) Slic3r 2014 Alessandro Ranellucci @alranel -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_SupportMaterial_hpp_ #define slic3r_SupportMaterial_hpp_ diff --git a/src/libslic3r/Support/SupportParameters.cpp b/src/libslic3r/Support/SupportParameters.cpp index c4cf2bee1c..8508206cb9 100644 --- a/src/libslic3r/Support/SupportParameters.cpp +++ b/src/libslic3r/Support/SupportParameters.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2023 Vojtěch Bubník @bubnikv -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "../Print.hpp" #include "../PrintConfig.hpp" #include "../Slicing.hpp" diff --git a/src/libslic3r/Support/SupportParameters.hpp b/src/libslic3r/Support/SupportParameters.hpp index b042e7640f..8a63d9f3f0 100644 --- a/src/libslic3r/Support/SupportParameters.hpp +++ b/src/libslic3r/Support/SupportParameters.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2023 Vojtěch Bubník @bubnikv -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_SupportParameters_hpp_ #define slic3r_SupportParameters_hpp_ diff --git a/src/libslic3r/Support/TreeModelVolumes.cpp b/src/libslic3r/Support/TreeModelVolumes.cpp index 2e14e81f49..d77400309b 100644 --- a/src/libslic3r/Support/TreeModelVolumes.cpp +++ b/src/libslic3r/Support/TreeModelVolumes.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2022 - 2023 Vojtěch Bubník @bubnikv, Pavel Mikuš @Godrak -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ // Tree supports by Thomas Rahm, losely based on Tree Supports by CuraEngine. // Original source of Thomas Rahm's tree supports: // https://github.com/ThomasRahm/CuraEngine diff --git a/src/libslic3r/Support/TreeModelVolumes.hpp b/src/libslic3r/Support/TreeModelVolumes.hpp index 9234061b49..abe0a5535b 100644 --- a/src/libslic3r/Support/TreeModelVolumes.hpp +++ b/src/libslic3r/Support/TreeModelVolumes.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2022 - 2023 Vojtěch Bubník @bubnikv, Oleksandra Iushchenko @YuSanka -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ // Tree supports by Thomas Rahm, losely based on Tree Supports by CuraEngine. // Original source of Thomas Rahm's tree supports: // https://github.com/ThomasRahm/CuraEngine diff --git a/src/libslic3r/Support/TreeSupport.cpp b/src/libslic3r/Support/TreeSupport.cpp index f52f1e218c..1de97173dd 100644 --- a/src/libslic3r/Support/TreeSupport.cpp +++ b/src/libslic3r/Support/TreeSupport.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2022 - 2023 Vojtěch Bubník @bubnikv, Lukáš Matěna @lukasmatena, Tomáš Mészáros @tamasmeszaros -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ // Tree supports by Thomas Rahm, losely based on Tree Supports by CuraEngine. // Original source of Thomas Rahm's tree supports: // https://github.com/ThomasRahm/CuraEngine diff --git a/src/libslic3r/Support/TreeSupport.hpp b/src/libslic3r/Support/TreeSupport.hpp index 76387146f7..c79f1d4a3a 100644 --- a/src/libslic3r/Support/TreeSupport.hpp +++ b/src/libslic3r/Support/TreeSupport.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2022 - 2023 Vojtěch Bubník @bubnikv -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ // Tree supports by Thomas Rahm, losely based on Tree Supports by CuraEngine. // Original source of Thomas Rahm's tree supports: // https://github.com/ThomasRahm/CuraEngine diff --git a/src/libslic3r/Support/TreeSupportCommon.cpp b/src/libslic3r/Support/TreeSupportCommon.cpp index bd44134018..98796784b1 100644 --- a/src/libslic3r/Support/TreeSupportCommon.cpp +++ b/src/libslic3r/Support/TreeSupportCommon.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2023 Vojtěch Bubník @bubnikv -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ // Tree supports by Thomas Rahm, losely based on Tree Supports by CuraEngine. // Original source of Thomas Rahm's tree supports: // https://github.com/ThomasRahm/CuraEngine diff --git a/src/libslic3r/Support/TreeSupportCommon.hpp b/src/libslic3r/Support/TreeSupportCommon.hpp index 0f14c96e20..ee7d4b3338 100644 --- a/src/libslic3r/Support/TreeSupportCommon.hpp +++ b/src/libslic3r/Support/TreeSupportCommon.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2023 Vojtěch Bubník @bubnikv -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ // Tree supports by Thomas Rahm, losely based on Tree Supports by CuraEngine. // Original source of Thomas Rahm's tree supports: // https://github.com/ThomasRahm/CuraEngine diff --git a/src/libslic3r/SurfaceMesh.hpp b/src/libslic3r/SurfaceMesh.hpp index 6e52a77e20..82dff2e22d 100644 --- a/src/libslic3r/SurfaceMesh.hpp +++ b/src/libslic3r/SurfaceMesh.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2022 Lukáš Matěna @lukasmatena -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_SurfaceMesh_hpp_ #define slic3r_SurfaceMesh_hpp_ diff --git a/src/libslic3r/TextConfiguration.hpp b/src/libslic3r/TextConfiguration.hpp index 8da67cdd0a..40c8c836ac 100644 --- a/src/libslic3r/TextConfiguration.hpp +++ b/src/libslic3r/TextConfiguration.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2021 - 2022 Filip Sykala @Jony01, Vojtěch Bubník @bubnikv -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_TextConfiguration_hpp_ #define slic3r_TextConfiguration_hpp_ diff --git a/src/libslic3r/Timer.cpp b/src/libslic3r/Timer.cpp index 18dd844bc8..91f3b0f09e 100644 --- a/src/libslic3r/Timer.cpp +++ b/src/libslic3r/Timer.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2023 Vojtěch Bubník @bubnikv -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "Timer.hpp" #include diff --git a/src/libslic3r/Timer.hpp b/src/libslic3r/Timer.hpp index 2fd63f234e..f2e5dde1a8 100644 --- a/src/libslic3r/Timer.hpp +++ b/src/libslic3r/Timer.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2023 Vojtěch Bubník @bubnikv -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef libslic3r_Timer_hpp_ #define libslic3r_Timer_hpp_ diff --git a/src/libslic3r/TriangleMesh.cpp b/src/libslic3r/TriangleMesh.cpp index b2ab0adb5d..ecb99bf643 100644 --- a/src/libslic3r/TriangleMesh.cpp +++ b/src/libslic3r/TriangleMesh.cpp @@ -1,18 +1,3 @@ -///|/ Copyright (c) Prusa Research 2016 - 2023 Oleksandra Iushchenko @YuSanka, Enrico Turri @enricoturri1966, Lukáš Matěna @lukasmatena, Vojtěch Bubník @bubnikv, Tomáš Mészáros @tamasmeszaros, Filip Sykala @Jony01, Lukáš Hejl @hejllukas, Vojtěch Král @vojtechkral -///|/ Copyright (c) 2019 Jason Tibbitts @jasontibbitts -///|/ Copyright (c) 2019 Sijmen Schoon -///|/ Copyright (c) 2016 Joseph Lenox @lordofhyphens -///|/ Copyright (c) Slic3r 2013 - 2016 Alessandro Ranellucci @alranel -///|/ Copyright (c) 2015 Maksim Derbasov @ntfshard -///|/ Copyright (c) 2014 Miro Hrončok @hroncok -///|/ Copyright (c) 2014 Petr Ledvina @ledvinap -///|/ -///|/ ported from lib/Slic3r/TriangleMesh.pm: -///|/ Copyright (c) Slic3r 2011 - 2014 Alessandro Ranellucci @alranel -///|/ Copyright (c) 2012 - 2013 Mark Hindess -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "Exception.hpp" #include "TriangleMesh.hpp" #include "TriangleMeshSlicer.hpp" diff --git a/src/libslic3r/TriangleMesh.hpp b/src/libslic3r/TriangleMesh.hpp index 15054246ac..a30d8836ea 100644 --- a/src/libslic3r/TriangleMesh.hpp +++ b/src/libslic3r/TriangleMesh.hpp @@ -1,14 +1,3 @@ -///|/ Copyright (c) Prusa Research 2017 - 2023 Oleksandra Iushchenko @YuSanka, Lukáš Matěna @lukasmatena, Vojtěch Bubník @bubnikv, Tomáš Mészáros @tamasmeszaros, Enrico Turri @enricoturri1966, Filip Sykala @Jony01 -///|/ Copyright (c) 2019 Sijmen Schoon -///|/ Copyright (c) 2016 Joseph Lenox @lordofhyphens -///|/ Copyright (c) Slic3r 2013 - 2016 Alessandro Ranellucci @alranel -///|/ -///|/ ported from lib/Slic3r/TriangleMesh.pm: -///|/ Copyright (c) Slic3r 2011 - 2014 Alessandro Ranellucci @alranel -///|/ Copyright (c) 2012 - 2013 Mark Hindess -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_TriangleMesh_hpp_ #define slic3r_TriangleMesh_hpp_ diff --git a/src/libslic3r/TriangleMeshSlicer.cpp b/src/libslic3r/TriangleMeshSlicer.cpp index 07a685184b..4e102887e3 100644 --- a/src/libslic3r/TriangleMeshSlicer.cpp +++ b/src/libslic3r/TriangleMeshSlicer.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2021 - 2023 Vojtěch Bubník @bubnikv, Lukáš Matěna @lukasmatena, Pavel Mikuš @Godrak, Lukáš Hejl @hejllukas -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "ClipperUtils.hpp" #include "Geometry.hpp" #include "Tesselate.hpp" diff --git a/src/libslic3r/TriangleMeshSlicer.hpp b/src/libslic3r/TriangleMeshSlicer.hpp index a7ad62acd9..ea6a7262cc 100644 --- a/src/libslic3r/TriangleMeshSlicer.hpp +++ b/src/libslic3r/TriangleMeshSlicer.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2021 - 2022 Vojtěch Bubník @bubnikv -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_TriangleMeshSlicer_hpp_ #define slic3r_TriangleMeshSlicer_hpp_ diff --git a/src/libslic3r/Triangulation.cpp b/src/libslic3r/Triangulation.cpp index 48b40b5d7f..f290442bf1 100644 --- a/src/libslic3r/Triangulation.cpp +++ b/src/libslic3r/Triangulation.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2021 - 2022 Filip Sykala @Jony01, Vojtěch Bubník @bubnikv -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "Triangulation.hpp" #include "IntersectionPoints.hpp" #include diff --git a/src/libslic3r/Triangulation.hpp b/src/libslic3r/Triangulation.hpp index b26ef0c62b..6a168d1d20 100644 --- a/src/libslic3r/Triangulation.hpp +++ b/src/libslic3r/Triangulation.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2021 - 2022 Vojtěch Bubník @bubnikv, Filip Sykala @Jony01 -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef libslic3r_Triangulation_hpp_ #define libslic3r_Triangulation_hpp_ diff --git a/src/libslic3r/Utils.hpp b/src/libslic3r/Utils.hpp index a642d6d350..9f249246f4 100644 --- a/src/libslic3r/Utils.hpp +++ b/src/libslic3r/Utils.hpp @@ -1,8 +1,3 @@ -///|/ Copyright (c) Prusa Research 2016 - 2023 Oleksandra Iushchenko @YuSanka, Vojtěch Bubník @bubnikv, Filip Sykala @Jony01, David Kocík @kocikdav, Enrico Turri @enricoturri1966, Tomáš Mészáros @tamasmeszaros, Lukáš Matěna @lukasmatena, Vojtěch Král @vojtechkral -///|/ Copyright (c) 2019 Sijmen Schoon -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_Utils_hpp_ #define slic3r_Utils_hpp_ diff --git a/src/libslic3r/calib.cpp b/src/libslic3r/calib.cpp index e5e0923c7d..f3890dd6dc 100644 --- a/src/libslic3r/calib.cpp +++ b/src/libslic3r/calib.cpp @@ -37,7 +37,7 @@ double CalibPressureAdvance::e_per_mm( const Flow line_flow = Flow(line_width, layer_height, nozzle_diameter); const double filament_area = M_PI * std::pow(filament_diameter / 2, 2); - return line_flow.mm3_per_mm() / filament_area * print_flow_ratio; + return line_flow.mm3_per_mm() * print_flow_ratio / filament_area ; } std::string CalibPressureAdvance::convert_number_to_string(double num) const diff --git a/src/libslic3r/utils.cpp b/src/libslic3r/utils.cpp index 3a620a9e73..733ac626f4 100644 --- a/src/libslic3r/utils.cpp +++ b/src/libslic3r/utils.cpp @@ -1,9 +1,3 @@ -///|/ Copyright (c) Prusa Research 2016 - 2023 Pavel Mikuš @Godrak, Oleksandra Iushchenko @YuSanka, Vojtěch Bubník @bubnikv, Lukáš Matěna @lukasmatena, Filip Sykala @Jony01, David Kocík @kocikdav, Roman Beránek @zavorka, Enrico Turri @enricoturri1966, Tomáš Mészáros @tamasmeszaros, Vojtěch Král @vojtechkral -///|/ Copyright (c) 2021 Justin Schuh @jschuh -///|/ Copyright (c) Slic3r 2013 - 2015 Alessandro Ranellucci @alranel -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "Utils.hpp" #include "I18N.hpp" diff --git a/src/slic3r/CMakeLists.txt b/src/slic3r/CMakeLists.txt index d4712b3bcd..e322d6f8a5 100644 --- a/src/slic3r/CMakeLists.txt +++ b/src/slic3r/CMakeLists.txt @@ -1,12 +1,3 @@ -#/|/ Copyright (c) Prusa Research 2018 - 2023 Tomáš Mészáros @tamasmeszaros, David Kocík @kocikdav, Lukáš Matěna @lukasmatena, Enrico Turri @enricoturri1966, Vojtěch Bubník @bubnikv, Pavel Mikuš @Godrak, Filip Sykala @Jony01, Oleksandra Iushchenko @YuSanka, Lukáš Hejl @hejllukas, Vojtěch Král @vojtechkral -#/|/ Copyright (c) 2023 Pedro Lamas @PedroLamas -#/|/ Copyright (c) 2020 Sergey Kovalev @RandoMan70 -#/|/ Copyright (c) 2021 Boleslaw Ciesielski -#/|/ Copyright (c) 2019 Spencer Owen @spuder -#/|/ Copyright (c) 2019 Stephan Reichhelm @stephanr -#/|/ -#/|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -#/|/ cmake_minimum_required(VERSION 3.13) project(libslic3r_gui) diff --git a/src/slic3r/GUI/3DScene.cpp b/src/slic3r/GUI/3DScene.cpp index aebb56f97c..86ab5d2239 100644 --- a/src/slic3r/GUI/3DScene.cpp +++ b/src/slic3r/GUI/3DScene.cpp @@ -1,14 +1,3 @@ -///|/ Copyright (c) Prusa Research 2016 - 2023 Lukáš Matěna @lukasmatena, Enrico Turri @enricoturri1966, Oleksandra Iushchenko @YuSanka, Tomáš Mészáros @tamasmeszaros, Vojtěch Bubník @bubnikv, Filip Sykala @Jony01, Lukáš Hejl @hejllukas, David Kocík @kocikdav, Vojtěch Král @vojtechkral -///|/ Copyright (c) 2017 Eyal Soha @eyal0 -///|/ Copyright (c) Slic3r 2015 Alessandro Ranellucci @alranel -///|/ -///|/ ported from lib/Slic3r/GUI/3DScene.pm: -///|/ Copyright (c) Prusa Research 2016 - 2019 Vojtěch Bubník @bubnikv, Enrico Turri @enricoturri1966, Oleksandra Iushchenko @YuSanka -///|/ Copyright (c) Slic3r 2013 - 2016 Alessandro Ranellucci @alranel -///|/ Copyright (c) 2013 Guillaume Seguin @iXce -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include #include "3DScene.hpp" @@ -77,17 +66,22 @@ void glAssertRecentCallImpl(const char* file_name, unsigned int line, const char // BBS std::vector get_extruders_colors() { - Slic3r::ColorRGBA rgba_color; - std::vector colors = Slic3r::GUI::wxGetApp().plater()->get_extruder_colors_from_plater_config(); + unsigned char rgba_color[4] = {}; + std::vector colors = Slic3r::GUI::wxGetApp().plater()->get_extruder_colors_from_plater_config(); std::vector colors_out(colors.size()); for (const std::string &color : colors) { - Slic3r::decode_color(color, rgba_color); + Slic3r::GUI::BitmapCache::parse_color4(color, rgba_color); size_t color_idx = &color - &colors.front(); - colors_out[color_idx] = rgba_color; + colors_out[color_idx] = { + float(rgba_color[0]) / 255.f, + float(rgba_color[1]) / 255.f, + float(rgba_color[2]) / 255.f, + float(rgba_color[3]) / 255.f, + }; } - return colors_out; } + float FullyTransparentMaterialThreshold = 0.1f; float FullTransparentModdifiedToFixAlpha = 0.3f; float FULL_BLACK_THRESHOLD = 0.18f; @@ -475,7 +469,7 @@ void GLVolume::render_with_outline(const Transform3d &view_model_matrix) } //BBS add render for simple case -void GLVolume::simple_render(GLShaderProgram* shader, ModelObjectPtrs& model_objects, std::vector extruder_colors) +void GLVolume::simple_render(GLShaderProgram* shader, ModelObjectPtrs& model_objects, std::vector& extruder_colors, bool ban_light) { if (this->is_left_handed()) glFrontFace(GL_CW); @@ -521,22 +515,36 @@ void GLVolume::simple_render(GLShaderProgram* shader, ModelObjectPtrs& model_obj if (!m.is_initialized()) continue; - if (idx == 0) { - int extruder_id = model_volume->extruder_id(); - //to make black not too hard too see - ColorRGBA new_color = adjust_color_for_rendering(extruder_colors[extruder_id - 1]); - m.set_color(new_color); - } - else { - if (idx <= extruder_colors.size()) { + if (shader) { + if (idx == 0) { + int extruder_id = model_volume->extruder_id(); //to make black not too hard too see - ColorRGBA new_color = adjust_color_for_rendering(extruder_colors[idx - 1]); + ColorRGBA new_color = adjust_color_for_rendering(extruder_colors[extruder_id - 1]); + if (ban_light) { + new_color[3] = (255 - (extruder_id - 1))/255.0f; + } m.set_color(new_color); + // shader->set_uniform("uniform_color", new_color); } else { - //to make black not too hard too see - ColorRGBA new_color = adjust_color_for_rendering(extruder_colors[0]); - m.set_color(new_color); + if (idx <= extruder_colors.size()) { + //to make black not too hard too see + ColorRGBA new_color = adjust_color_for_rendering(extruder_colors[idx - 1]); + if (ban_light) { + new_color[3] = (255 - (idx - 1))/255.0f; + } + m.set_color(new_color); + // shader->set_uniform("uniform_color", new_color); + } + else { + //to make black not too hard too see + ColorRGBA new_color = adjust_color_for_rendering(extruder_colors[0]); + if (ban_light) { + new_color[3] = (255 - 0) / 255.0f; + } + m.set_color(new_color); + // shader->set_uniform("uniform_color", new_color); + } } } if (tverts_range == std::make_pair(0, -1)) diff --git a/src/slic3r/GUI/3DScene.hpp b/src/slic3r/GUI/3DScene.hpp index a67127739a..4479c24632 100644 --- a/src/slic3r/GUI/3DScene.hpp +++ b/src/slic3r/GUI/3DScene.hpp @@ -1,14 +1,3 @@ -///|/ Copyright (c) Prusa Research 2017 - 2023 Lukáš Matěna @lukasmatena, Enrico Turri @enricoturri1966, Oleksandra Iushchenko @YuSanka, Tomáš Mészáros @tamasmeszaros, Filip Sykala @Jony01, Vojtěch Bubník @bubnikv, David Kocík @kocikdav, Vojtěch Král @vojtechkral -///|/ Copyright (c) 2017 Eyal Soha @eyal0 -///|/ Copyright (c) Slic3r 2015 Alessandro Ranellucci @alranel -///|/ -///|/ ported from lib/Slic3r/GUI/3DScene.pm: -///|/ Copyright (c) Prusa Research 2016 - 2019 Vojtěch Bubník @bubnikv, Enrico Turri @enricoturri1966, Oleksandra Iushchenko @YuSanka -///|/ Copyright (c) Slic3r 2013 - 2016 Alessandro Ranellucci @alranel -///|/ Copyright (c) 2013 Guillaume Seguin @iXce -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_3DScene_hpp_ #define slic3r_3DScene_hpp_ @@ -336,7 +325,7 @@ public: virtual void render_with_outline(const Transform3d &view_model_matrix); //BBS: add simple render function for thumbnail - void simple_render(GLShaderProgram* shader, ModelObjectPtrs& model_objects, std::vector extruder_colors); + void simple_render(GLShaderProgram* shader, ModelObjectPtrs& model_objects, std::vector& extruder_colors, bool ban_light =false); void set_bounding_boxes_as_dirty() { m_transformed_bounding_box.reset(); diff --git a/src/slic3r/GUI/AMSMaterialsSetting.cpp b/src/slic3r/GUI/AMSMaterialsSetting.cpp index 08e142755d..f44dc19917 100644 --- a/src/slic3r/GUI/AMSMaterialsSetting.cpp +++ b/src/slic3r/GUI/AMSMaterialsSetting.cpp @@ -581,8 +581,8 @@ void AMSMaterialsSetting::on_select_ok(wxCommandEvent &event) wxString n_text = m_input_n_val->GetTextCtrl()->GetValue(); if (obj->cali_version <= -1 && (obj->get_printer_series() != PrinterSeries::SERIES_X1) && !ExtrusionCalibration::check_k_validation(k_text)) { - wxString k_tips = _L("Please input a valid value (K in 0~0.3)"); - wxString kn_tips = _L("Please input a valid value (K in 0~0.3, N in 0.6~2.0)"); + wxString k_tips = wxString::Format(_L("Please input a valid value (K in %.1f~%.1f)"), MIN_PA_K_VALUE, MAX_PA_K_VALUE); + wxString kn_tips = wxString::Format(_L("Please input a valid value (K in %.1f~%.1f, N in %.1f~%.1f)"), MIN_PA_K_VALUE, MAX_PA_K_VALUE, 0.6, 2.0); MessageDialog msg_dlg(nullptr, k_tips, wxEmptyString, wxICON_WARNING | wxOK); msg_dlg.ShowModal(); return; diff --git a/src/slic3r/GUI/BackgroundSlicingProcess.cpp b/src/slic3r/GUI/BackgroundSlicingProcess.cpp index 0e98e85ea6..ca8c7a1663 100644 --- a/src/slic3r/GUI/BackgroundSlicingProcess.cpp +++ b/src/slic3r/GUI/BackgroundSlicingProcess.cpp @@ -901,23 +901,27 @@ void BackgroundSlicingProcess::prepare_upload() / boost::filesystem::unique_path("." SLIC3R_APP_KEY ".upload.%%%%-%%%%-%%%%-%%%%"); if (m_print == m_fff_print) { - m_print->set_status(95, _utf8(L("Running post-processing scripts"))); - std::string error_message; - if (copy_file(m_temp_output_path, source_path.string(), error_message) != SUCCESS) - throw Slic3r::RuntimeError(_utf8(L("Copying of the temporary G-code to the output G-code failed"))); - m_upload_job.upload_data.upload_path = m_fff_print->print_statistics().finalize_output_path(m_upload_job.upload_data.upload_path.string()); - // Orca: skip post-processing scripts for BBL printers as we have run them already in finalize_gcode() - // todo: do we need to copy the file? + if (m_upload_job.upload_data.use_3mf) { + source_path = m_upload_job.upload_data.source_path; + } else { + m_print->set_status(95, _utf8(L("Running post-processing scripts"))); + std::string error_message; + if (copy_file(m_temp_output_path, source_path.string(), error_message) != SUCCESS) + throw Slic3r::RuntimeError(_utf8(L("Copying of the temporary G-code to the output G-code failed"))); + m_upload_job.upload_data.upload_path = m_fff_print->print_statistics().finalize_output_path(m_upload_job.upload_data.upload_path.string()); + // Orca: skip post-processing scripts for BBL printers as we have run them already in finalize_gcode() + // todo: do we need to copy the file? - // Make a copy of the source path, as run_post_process_scripts() is allowed to change it when making a copy of the source file - // (not here, but when the final target is a file). - if (!m_fff_print->is_BBL_printer()) { - std::string source_path_str = source_path.string(); - std::string output_name_str = m_upload_job.upload_data.upload_path.string(); - if (run_post_process_scripts(source_path_str, false, m_upload_job.printhost->get_name(), output_name_str, - m_fff_print->full_print_config())) - m_upload_job.upload_data.upload_path = output_name_str; - } + // Make a copy of the source path, as run_post_process_scripts() is allowed to change it when making a copy of the source file + // (not here, but when the final target is a file). + if (!m_fff_print->is_BBL_printer()) { + std::string source_path_str = source_path.string(); + std::string output_name_str = m_upload_job.upload_data.upload_path.string(); + if (run_post_process_scripts(source_path_str, false, m_upload_job.printhost->get_name(), output_name_str, + m_fff_print->full_print_config())) + m_upload_job.upload_data.upload_path = output_name_str; + } + } } else { m_upload_job.upload_data.upload_path = m_sla_print->print_statistics().finalize_output_path(m_upload_job.upload_data.upload_path.string()); diff --git a/src/slic3r/GUI/CaliHistoryDialog.cpp b/src/slic3r/GUI/CaliHistoryDialog.cpp index e47c5bd2da..7224ec34e2 100644 --- a/src/slic3r/GUI/CaliHistoryDialog.cpp +++ b/src/slic3r/GUI/CaliHistoryDialog.cpp @@ -16,7 +16,6 @@ namespace GUI { #define EDIT_HISTORY_DIALOG_INPUT_SIZE wxSize(FromDIP(160), FromDIP(24)) #define NEW_HISTORY_DIALOG_INPUT_SIZE wxSize(FromDIP(250), FromDIP(24)) #define HISTORY_WINDOW_ITEMS_COUNT 5 -static const wxString k_tips = "Please input a valid value (K in 0~0.3)"; static wxString get_preset_name_by_filament_id(std::string filament_id) { @@ -472,7 +471,7 @@ void EditCalibrationHistoryDialog::on_save(wxCommandEvent& event) { float k = 0.0f; if (!CalibUtils::validate_input_k_value(m_k_value->GetTextCtrl()->GetValue(), &k)) { - MessageDialog msg_dlg(nullptr, _L(k_tips), wxEmptyString, wxICON_WARNING | wxOK); + MessageDialog msg_dlg(nullptr, wxString::Format(_L("Please input a valid value (K in %.1f~%.1f)"), MIN_PA_K_VALUE, MAX_PA_K_VALUE), wxEmptyString, wxICON_WARNING | wxOK); msg_dlg.ShowModal(); return; } @@ -678,7 +677,7 @@ void NewCalibrationHistoryDialog::on_ok(wxCommandEvent &event) float k = 0.0f; if (!CalibUtils::validate_input_k_value(m_k_value->GetTextCtrl()->GetValue(), &k)) { - MessageDialog msg_dlg(nullptr, _L(k_tips), wxEmptyString, wxICON_WARNING | wxOK); + MessageDialog msg_dlg(nullptr, wxString::Format(_L("Please input a valid value (K in %.1f~%.1f)"), MIN_PA_K_VALUE, MAX_PA_K_VALUE), wxEmptyString, wxICON_WARNING | wxOK); msg_dlg.ShowModal(); return; } diff --git a/src/slic3r/GUI/CalibrationWizard.cpp b/src/slic3r/GUI/CalibrationWizard.cpp index 713b3833f3..f6cbbc3065 100644 --- a/src/slic3r/GUI/CalibrationWizard.cpp +++ b/src/slic3r/GUI/CalibrationWizard.cpp @@ -15,8 +15,6 @@ wxDEFINE_EVENT(EVT_DEVICE_CHANGED, wxCommandEvent); wxDEFINE_EVENT(EVT_CALIBRATION_JOB_FINISHED, wxCommandEvent); static const wxString NA_STR = _L("N/A"); -static const float MIN_PA_K_VALUE = 0.0; -static const float MAX_PA_K_VALUE = 0.3; static const float MIN_PA_K_VALUE_STEP = 0.001; static const int MAX_PA_HISTORY_RESULTS_NUMS = 16; @@ -310,6 +308,9 @@ void CalibrationWizard::recover_preset_info(MachineObject *obj) void CalibrationWizard::back_preset_info(MachineObject *obj, bool cali_finish, bool back_cali_flag) { + if (!obj) + return; + PrinterCaliInfo printer_cali_info; printer_cali_info.dev_id = obj->dev_id; printer_cali_info.cali_finished = cali_finish; @@ -468,11 +469,11 @@ void PressureAdvanceWizard::on_cali_action(wxCommandEvent& evt) void PressureAdvanceWizard::update(MachineObject* obj) { + CalibrationWizard::update(obj); + if (!obj) return; - CalibrationWizard::update(obj); - if (!m_show_result_dialog) { if (obj->cali_version != -1 && obj->cali_version != cali_version) { cali_version = obj->cali_version; @@ -659,7 +660,7 @@ void PressureAdvanceWizard::on_cali_start() cali_page->set_pa_cali_image(int(pa_cali_method)); curr_obj->manual_pa_cali_method = pa_cali_method; - if (curr_obj->pa_calib_tab.size() >= MAX_PA_HISTORY_RESULTS_NUMS) { + if (curr_obj->get_printer_series() != PrinterSeries::SERIES_X1 && curr_obj->pa_calib_tab.size() >= MAX_PA_HISTORY_RESULTS_NUMS) { MessageDialog msg_dlg(nullptr, wxString::Format(_L("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" diff --git a/src/slic3r/GUI/CalibrationWizardSavePage.cpp b/src/slic3r/GUI/CalibrationWizardSavePage.cpp index 287fa61361..246623fffe 100644 --- a/src/slic3r/GUI/CalibrationWizardSavePage.cpp +++ b/src/slic3r/GUI/CalibrationWizardSavePage.cpp @@ -8,7 +8,6 @@ namespace Slic3r { namespace GUI { #define CALIBRATION_SAVE_INPUT_SIZE wxSize(FromDIP(240), FromDIP(24)) #define FLOW_RATE_MAX_VALUE 1.15 -static const wxString k_tips = "Please input a valid value (K in 0~0.3)"; static wxString get_default_name(wxString filament_name, CalibMode mode){ PresetBundle* preset_bundle = wxGetApp().preset_bundle; @@ -362,7 +361,7 @@ void CaliPASaveAutoPanel::save_to_result_from_widgets(wxWindow* window, bool* ou if (input->get_type() == GridTextInputType::K) { float k = 0.0f; if (!CalibUtils::validate_input_k_value(input->GetTextCtrl()->GetValue(), &k)) { - *out_msg = _L("Please input a valid value (K in 0~0.3)"); + *out_msg = wxString::Format(_L("Please input a valid value (K in %.1f~%.1f)"), MIN_PA_K_VALUE, MAX_PA_K_VALUE); *out_is_valid = false; } else @@ -408,7 +407,7 @@ bool CaliPASaveAutoPanel::get_result(std::vector& out_result) { std::unordered_set, PACalibResult> set; for (auto& result : m_calib_results) { if (!set.insert({ result.second.name, result.second.filament_id }).second) { - MessageDialog msg_dlg(nullptr, _L("Only one of the results with the same name will be saved. Are you sure you want to overrides the other results?"), wxEmptyString, wxICON_WARNING | wxYES_NO); + MessageDialog msg_dlg(nullptr, _L("Only one of the results with the same name will be saved. Are you sure you want to override the other results?"), wxEmptyString, wxICON_WARNING | wxYES_NO); if (msg_dlg.ShowModal() != wxID_YES) { return false; } @@ -420,7 +419,7 @@ bool CaliPASaveAutoPanel::get_result(std::vector& out_result) { // Check for duplicate names from history for (auto& result : m_history_results) { if (!set.insert({ result.name, result.filament_id }).second) { - MessageDialog msg_dlg(nullptr, wxString::Format(_L("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?"), result.name), wxEmptyString, wxICON_WARNING | wxYES_NO); + MessageDialog msg_dlg(nullptr, wxString::Format(_L("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?"), result.name), wxEmptyString, wxICON_WARNING | wxYES_NO); if (msg_dlg.ShowModal() != wxID_YES) { return false; } @@ -529,7 +528,7 @@ void CaliPASaveManualPanel::set_pa_cali_method(ManualPaCaliMethod method) m_complete_text->SetLabel(_L("Please find the best line on your plate")); set_save_img(); } else if (method == ManualPaCaliMethod::PA_PATTERN) { - m_complete_text->SetLabel(_L("Please find the cornor with perfect degree of extrusion")); + m_complete_text->SetLabel(_L("Please find the corner with perfect degree of extrusion")); if (wxGetApp().app_config->get_language_code() == "zh-cn") { m_picture_panel->set_bmp(ScalableBitmap(this, "fd_pattern_manual_result_CN", 350)); } else { @@ -546,7 +545,7 @@ bool CaliPASaveManualPanel::get_result(PACalibResult& out_result) { // Check if the value is valid float k; if (!CalibUtils::validate_input_k_value(m_k_val->GetTextCtrl()->GetValue(), &k)) { - MessageDialog msg_dlg(nullptr, _L(k_tips), wxEmptyString, wxICON_WARNING | wxOK); + MessageDialog msg_dlg(nullptr, wxString::Format(_L("Please input a valid value (K in %.1f~%.1f)"), MIN_PA_K_VALUE, MAX_PA_K_VALUE), wxEmptyString, wxICON_WARNING | wxOK); msg_dlg.ShowModal(); return false; } @@ -581,7 +580,6 @@ bool CaliPASaveManualPanel::get_result(PACalibResult& out_result) { bool CaliPASaveManualPanel::Show(bool show) { if (show) { if (m_obj) { - assert(m_obj->selected_cali_preset.size() <= 1); if (!m_obj->selected_cali_preset.empty()) { wxString default_name = get_default_name(m_obj->selected_cali_preset[0].name, CalibMode::Calib_PA_Line); set_default_name(default_name); @@ -683,7 +681,7 @@ void CaliPASaveP1PPanel::set_pa_cali_method(ManualPaCaliMethod method) set_save_img(); } else if (method == ManualPaCaliMethod::PA_PATTERN) { - m_complete_text->SetLabel(_L("Please find the cornor with perfect degree of extrusion")); + m_complete_text->SetLabel(_L("Please find the corner with perfect degree of extrusion")); if (wxGetApp().app_config->get_language_code() == "zh-cn") { m_picture_panel->set_bmp(ScalableBitmap(this, "fd_pattern_manual_result_CN", 350)); } else { @@ -695,7 +693,7 @@ void CaliPASaveP1PPanel::set_pa_cali_method(ManualPaCaliMethod method) bool CaliPASaveP1PPanel::get_result(float* out_k, float* out_n){ // Check if the value is valid if (!CalibUtils::validate_input_k_value(m_k_val->GetTextCtrl()->GetValue(), out_k)) { - MessageDialog msg_dlg(nullptr, _L(k_tips), wxEmptyString, wxICON_WARNING | wxOK); + MessageDialog msg_dlg(nullptr, wxString::Format(_L("Please input a valid value (K in %.1f~%.1f)"), MIN_PA_K_VALUE, MAX_PA_K_VALUE), wxEmptyString, wxICON_WARNING | wxOK); msg_dlg.ShowModal(); return false; } diff --git a/src/slic3r/GUI/CalibrationWizardStartPage.cpp b/src/slic3r/GUI/CalibrationWizardStartPage.cpp index 946cd871f2..c2e6c683b2 100644 --- a/src/slic3r/GUI/CalibrationWizardStartPage.cpp +++ b/src/slic3r/GUI/CalibrationWizardStartPage.cpp @@ -117,7 +117,7 @@ void CalibrationPAStartPage::create_page(wxWindow* parent) _L("About this calibration"), _L("Please find the details of Flow Dynamics Calibration from our wiki.\ \n\nUsually 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\nPlease 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\nPlease 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\nThe 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.")); m_top_sizer->Add(m_about_title); m_top_sizer->Add(m_about_content); diff --git a/src/slic3r/GUI/ConfigManipulation.cpp b/src/slic3r/GUI/ConfigManipulation.cpp index db02032451..4db54a93cf 100644 --- a/src/slic3r/GUI/ConfigManipulation.cpp +++ b/src/slic3r/GUI/ConfigManipulation.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2019 - 2023 Lukáš Hejl @hejllukas, Vojtěch Bubník @bubnikv, Lukáš Matěna @lukasmatena, Oleksandra Iushchenko @YuSanka, Pavel Mikuš @Godrak, Tomáš Mészáros @tamasmeszaros -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ // #include "libslic3r/GCodeSender.hpp" #include "ConfigManipulation.hpp" #include "I18N.hpp" @@ -155,6 +151,7 @@ void ConfigManipulation::check_chamber_temperature(DynamicPrintConfig* config) {"PVA",45}, {"TPU",50}, {"PETG",55}, + {"PCTG",55}, {"PETG-CF",55} }; bool support_chamber_temp_control=GUI::wxGetApp().preset_bundle->printers.get_selected_preset().config.opt_bool("support_chamber_temp_control"); diff --git a/src/slic3r/GUI/CreatePresetsDialog.cpp b/src/slic3r/GUI/CreatePresetsDialog.cpp index e6d44bf4f6..71590bee28 100644 --- a/src/slic3r/GUI/CreatePresetsDialog.cpp +++ b/src/slic3r/GUI/CreatePresetsDialog.cpp @@ -59,9 +59,9 @@ static const std::vector filament_vendors = "Voxelab", "VOXELPLA", "YOOPAI", "Yousu", "Ziro", "Zyltech"}; -static const std::vector filament_types = {"PLA", "PLA+", "PLA Tough", "PETG", "ABS", "ASA", "FLEX", "HIPS", "PA", "PACF", - "NYLON", "PVA", "PC", "PCABS", "PCTG", "PCCF", "PHA", "PP", "PEI", "PET", "PETG", - "PETGCF", "PTBA", "PTBA90A", "PEEK", "TPU93A", "TPU75D", "TPU", "TPU92A", "TPU98A", "Misc", +static const std::vector filament_types = {"PLA", "rPLA", "PLA+", "PLA Tough", "PETG", "ABS", "ASA", "FLEX", "HIPS", "PA", "PACF", + "NYLON", "PVA", "PVB", "PC", "PCABS", "PCTG", "PCCF", "PHA", "PP", "PEI", "PET", "PETG", + "PETGCF", "PTBA", "PTBA90A", "PEEK", "TPU93A", "TPU75D", "TPU", "TPU92A", "TPU98A", "Misc", "TPE", "GLAZE", "Nylon", "CPE", "METAL", "ABST", "Carbon Fiber"}; static const std::vector printer_vendors = @@ -4732,7 +4732,7 @@ void CreatePresetForPrinterDialog::get_visible_printer_and_compatible_filament_p m_preset_bundle->update_compatible(PresetSelectCompatibleType::Always); const std::deque &filament_presets = m_preset_bundle->filaments.get_presets(); for (const Preset &filament_preset : filament_presets) { - if (filament_preset.is_default || !filament_preset.is_compatible) continue; + if (filament_preset.is_default || !filament_preset.is_compatible || filament_preset.is_project_embedded) continue; ConfigOptionStrings *filament_types; const Preset * filament_preset_base = m_preset_bundle->filaments.get_preset_base(filament_preset); if (filament_preset_base == &filament_preset) { diff --git a/src/slic3r/GUI/DeviceManager.cpp b/src/slic3r/GUI/DeviceManager.cpp index a1d4d5b5d8..a79dd0a027 100644 --- a/src/slic3r/GUI/DeviceManager.cpp +++ b/src/slic3r/GUI/DeviceManager.cpp @@ -786,7 +786,20 @@ static float calc_color_distance(wxColour c1, wxColour c2) return DeltaE76(lab[0][0], lab[0][1], lab[0][2], lab[1][0], lab[1][1], lab[1][2]); } -int MachineObject::ams_filament_mapping(std::vector filaments, std::vector& result, std::vector exclude_id) +void MachineObject::get_ams_colors(std::vector &ams_colors) { + ams_colors.clear(); + ams_colors.reserve(amsList.size()); + for (auto ams = amsList.begin(); ams != amsList.end(); ams++) { + for (auto tray = ams->second->trayList.begin(); tray != ams->second->trayList.end(); tray++) { + if (tray->second->is_tray_info_ready()) { + auto ams_color = AmsTray::decode_color(tray->second->color); + ams_colors.emplace_back(ams_color); + } + } + } +} + +int MachineObject::ams_filament_mapping(std::vector filaments, std::vector &result, std::vector exclude_id) { if (filaments.empty()) return -1; @@ -1381,7 +1394,12 @@ void MachineObject::parse_status(int flag) xcam_allow_prompt_sound = ((flag >> 17) & 0x1) != 0; } + if (((flag >> 18) & 0x1) != 0) { + is_support_prompt_sound = true; + } + is_support_filament_tangle_detect = ((flag >> 19) & 0x1) != 0; + is_support_user_preset = ((flag >> 22) & 0x1) != 0; if (xcam_filament_tangle_detect_count > 0) xcam_filament_tangle_detect_count--; else { @@ -2883,7 +2901,7 @@ int MachineObject::parse_json(std::string payload, bool key_field_only) } } - if (key_field_only) { + if (!key_field_only) { if (!DeviceManager::EnableMultiMachine) { if (jj.contains("support_tunnel_mqtt")) { if (jj["support_tunnel_mqtt"].is_boolean()) { @@ -2891,7 +2909,7 @@ int MachineObject::parse_json(std::string payload, bool key_field_only) } } } - } else { + //supported function if (jj.contains("support_chamber_temp_edit")) { if (jj["support_chamber_temp_edit"].is_boolean()) { diff --git a/src/slic3r/GUI/DeviceManager.hpp b/src/slic3r/GUI/DeviceManager.hpp index 6aca7ee5f6..be177bba5a 100644 --- a/src/slic3r/GUI/DeviceManager.hpp +++ b/src/slic3r/GUI/DeviceManager.hpp @@ -526,6 +526,7 @@ public: bool can_unload_filament(); bool is_support_ams_mapping(); + void get_ams_colors(std::vector& ams_colors); int ams_filament_mapping(std::vector filaments, std::vector &result, std::vector exclude_id = std::vector()); bool is_valid_mapping_result(std::vector& result, bool check_empty_slot = false); // exceed index start with 0 diff --git a/src/slic3r/GUI/Downloader.cpp b/src/slic3r/GUI/Downloader.cpp index b0ea22c3ce..25e160f24d 100644 --- a/src/slic3r/GUI/Downloader.cpp +++ b/src/slic3r/GUI/Downloader.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2023 David Kocík @kocikdav, Oleksandra Iushchenko @YuSanka -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "Downloader.hpp" #include "GUI_App.hpp" #include "NotificationManager.hpp" diff --git a/src/slic3r/GUI/Downloader.hpp b/src/slic3r/GUI/Downloader.hpp index 4fe896f5ce..84a9a95697 100644 --- a/src/slic3r/GUI/Downloader.hpp +++ b/src/slic3r/GUI/Downloader.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2023 David Kocík @kocikdav -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_Downloader_hpp_ #define slic3r_Downloader_hpp_ diff --git a/src/slic3r/GUI/DownloaderFileGet.cpp b/src/slic3r/GUI/DownloaderFileGet.cpp index 469774653e..08d33951ef 100644 --- a/src/slic3r/GUI/DownloaderFileGet.cpp +++ b/src/slic3r/GUI/DownloaderFileGet.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2023 Oleksandra Iushchenko @YuSanka, David Kocík @kocikdav -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "DownloaderFileGet.hpp" #include diff --git a/src/slic3r/GUI/DownloaderFileGet.hpp b/src/slic3r/GUI/DownloaderFileGet.hpp index 37a59ec30e..022d4c0c10 100644 --- a/src/slic3r/GUI/DownloaderFileGet.hpp +++ b/src/slic3r/GUI/DownloaderFileGet.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2023 David Kocík @kocikdav -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_DownloaderFileGet_hpp_ #define slic3r_DownloaderFileGet_hpp_ diff --git a/src/slic3r/GUI/ExtrusionCalibration.cpp b/src/slic3r/GUI/ExtrusionCalibration.cpp index 8d5a939cba..26216edc93 100644 --- a/src/slic3r/GUI/ExtrusionCalibration.cpp +++ b/src/slic3r/GUI/ExtrusionCalibration.cpp @@ -5,6 +5,7 @@ #include "I18N.hpp" #include #include +#include "CalibUtils.hpp" namespace Slic3r { namespace GUI { @@ -509,7 +510,7 @@ bool ExtrusionCalibration::check_k_validation(wxString k_text) ; } - if (k < 0 || k > 0.3) + if (k < MIN_PA_K_VALUE || k > MAX_PA_K_VALUE) return false; return true; } @@ -533,7 +534,7 @@ bool ExtrusionCalibration::check_k_n_validation(wxString k_text, wxString n_text catch (...) { ; } - if (k < 0 || k > 0.5) + if (k < MIN_PA_K_VALUE || k > MAX_PA_K_VALUE) return false; if (n < 0.6 || n > 2.0) return false; @@ -545,8 +546,8 @@ void ExtrusionCalibration::on_click_save(wxCommandEvent &event) wxString k_text = m_k_val->GetTextCtrl()->GetValue(); wxString n_text = m_n_val->GetTextCtrl()->GetValue(); if (!ExtrusionCalibration::check_k_validation(k_text)) { - wxString k_tips = _L("Please input a valid value (K in 0~0.3)"); - wxString kn_tips = _L("Please input a valid value (K in 0~0.3, N in 0.6~2.0)"); + wxString k_tips = wxString::Format(_L("Please input a valid value (K in %.1f~%.1f)"), MIN_PA_K_VALUE, MAX_PA_K_VALUE); + wxString kn_tips = wxString::Format(_L("Please input a valid value (K in %.1f~%.1f, N in %.1f~%.1f)"), MIN_PA_K_VALUE, MAX_PA_K_VALUE, 0.6, 2.0); MessageDialog msg_dlg(nullptr, k_tips, wxEmptyString, wxICON_WARNING | wxOK); msg_dlg.ShowModal(); return; diff --git a/src/slic3r/GUI/Field.cpp b/src/slic3r/GUI/Field.cpp index dd4b454918..58c123fb18 100644 --- a/src/slic3r/GUI/Field.cpp +++ b/src/slic3r/GUI/Field.cpp @@ -111,11 +111,6 @@ Field::~Field() m_back_to_initial_value = nullptr; if (m_back_to_sys_value) m_back_to_sys_value = nullptr; - if (getWindow()) { - wxWindow* win = getWindow(); - win->Destroy(); - win = nullptr; - } } void Field::PostInitialize() @@ -181,7 +176,7 @@ void Field::PostInitialize() } evt.Skip(); - }); + }, getWindow()->GetId()); } } @@ -551,6 +546,105 @@ void Field::sys_color_changed() #endif } +std::vector**> spools; +std::vector*> spools2; + +void switch_window_pools() +{ + for (auto p : spools) { + spools2.push_back(*p); + *p = new std::deque; + } +} + +void release_window_pools() +{ + for (auto p : spools2) { + delete p; + } + spools2.clear(); +} + +template +struct Builder +{ + Builder() + { + pool_ = new std::deque; + spools.push_back(&pool_); + } + + template + T *build(wxWindow * p, Args ...args) + { + if (pool_->empty()) { + auto t = new T(p, args...); + t->SetClientData(pool_); + return t; + } + auto t = dynamic_cast(pool_->front()); + pool_->pop_front(); + t->Reparent(p); + t->Enable(); + t->Show(); + return t; + } + std::deque* pool_; +}; + +struct wxEventFunctorRef +{ + wxEventFunctor * func; +}; + +wxEventFunctor & wxMakeEventFunctor(const int, wxEventFunctorRef func) +{ + return *func.func; +} + +struct myEvtHandler : wxEvtHandler +{ + void UnbindAll() + { + size_t cookie; + for (wxDynamicEventTableEntry *entry = GetFirstDynamicEntry(cookie); + entry; + entry = GetNextDynamicEntry(cookie)) { + // In Field, All Bind has id, but for TextInput, ComboBox, SpinInput, all not + if (entry->m_id != wxID_ANY && entry->m_lastId == wxID_ANY) + Unbind(entry->m_eventType, + wxEventFunctorRef{entry->m_fn}, + entry->m_id, + entry->m_lastId, + entry->m_callbackUserData); + //DoUnbind(entry->m_id, entry->m_lastId, entry->m_eventType, *entry->m_fn, entry->m_callbackUserData); + } + } +}; + +static void unbind_events(wxEvtHandler *h) +{ + static_cast(h)->UnbindAll(); +} + +void free_window(wxWindow *win) +{ +#if !defined(__WXGTK__) + unbind_events(win); + for (auto c : win->GetChildren()) + if (dynamic_cast(c)) + unbind_events(c); + win->Hide(); + if (auto sizer = win->GetContainingSizer()) + sizer->Clear(); + win->Reparent(wxGetApp().mainframe); + if (win->GetClientData()) + reinterpret_cast*>(win->GetClientData())->push_back(win); +#else + delete win; +#endif +} + template bool is_defined_input_value(wxWindow* win, const ConfigOptionType& type) { @@ -615,10 +709,15 @@ void TextCtrl::BUILD() { // BBS: new param ui style // const long style = m_opt.multiline ? wxTE_MULTILINE : wxTE_PROCESS_ENTER/*0*/; + static Builder builder1; + static Builder<::TextInput> builder2; auto temp = m_opt.multiline - ? (wxWindow *) new wxTextCtrl(m_parent, wxID_ANY, text_value, wxDefaultPosition, size, wxTE_MULTILINE) - : new ::TextInput(m_parent, text_value, _L(m_opt.sidetext), "", wxDefaultPosition, size, wxTE_PROCESS_ENTER); + ? (wxWindow*)builder1.build(m_parent, wxID_ANY, "", wxDefaultPosition, size, wxTE_MULTILINE) + : builder2.build(m_parent, "", "", "", wxDefaultPosition, size, wxTE_PROCESS_ENTER); + temp->SetLabel(_L(m_opt.sidetext)); auto text_ctrl = m_opt.multiline ? (wxTextCtrl *)temp : ((TextInput *) temp)->GetTextCtrl(); + text_ctrl->SetLabel(text_value); + temp->SetSize(size); m_combine_side_text = !m_opt.multiline; if (parent_is_custom_ctrl && m_opt.height < 0) opt_height = (double) text_ctrl->GetSize().GetHeight() / m_em_unit; @@ -681,7 +780,7 @@ void TextCtrl::BUILD() { if (!bEnterPressed) propagate_value(); }), temp->GetId()); -/* + /* // select all text using Ctrl+A temp->Bind(wxEVT_CHAR, ([temp](wxKeyEvent& event) { @@ -850,7 +949,8 @@ void CheckBox::BUILD() { m_last_meaningful_value = static_cast(check_value); // BBS: use ::CheckBox - auto temp = new ::CheckBox(m_parent); + static Builder<::CheckBox> builder; + auto temp = builder.build(m_parent); if (!wxOSX) temp->SetBackgroundStyle(wxBG_STYLE_PAINT); //temp->SetBackgroundColour(*wxWHITE); temp->SetValue(check_value); @@ -969,8 +1069,14 @@ void SpinCtrl::BUILD() { ? 0 : m_opt.min; const int max_val = m_opt.max < 2147483647 ? m_opt.max : 2147483647; - auto temp = new SpinInput(m_parent, text_value, _L(m_opt.sidetext), wxDefaultPosition, size, - wxSP_ARROW_KEYS, min_val, max_val, default_value); + static Builder builder; + auto temp = builder.build(m_parent, "", "", wxDefaultPosition, size, + wxSP_ARROW_KEYS); + temp->SetSize(size); + temp->SetLabel(_L(m_opt.sidetext)); + temp->GetTextCtrl()->SetLabel(text_value); + temp->SetRange(min_val, max_val); + temp->SetValue(default_value); m_combine_side_text = true; #ifdef __WXGTK3__ wxSize best_sz = temp->GetBestSize(); @@ -993,7 +1099,7 @@ void SpinCtrl::BUILD() { } propagate_value(); - })); + }), temp->GetId()); temp->Bind(wxEVT_SPINCTRL, ([this](wxCommandEvent e) { propagate_value(); }), temp->GetId()); @@ -1145,14 +1251,15 @@ void Choice::BUILD() if (m_opt.nullable) m_last_meaningful_value = dynamic_cast(m_opt.default_value.get())->get_at(0); - choice_ctrl* temp; + choice_ctrl * temp; auto dynamic_list = dynamic_lists.find(m_opt.opt_key); if (dynamic_list != dynamic_lists.end()) m_list = dynamic_list->second; if (m_opt.gui_type != ConfigOptionDef::GUIType::undefined && m_opt.gui_type != ConfigOptionDef::GUIType::select_open && m_list == nullptr) { m_is_editable = true; - temp = new choice_ctrl(m_parent, wxID_ANY, wxString(""), wxDefaultPosition, size, 0, nullptr, wxTE_PROCESS_ENTER); + static Builder builder1; + temp = builder1.build(m_parent, wxID_ANY, wxString(""), wxDefaultPosition, size, 0, nullptr, wxTE_PROCESS_ENTER); } else { #ifdef UNDEIFNED__WXOSX__ // __WXOSX__ // BBS @@ -1164,9 +1271,12 @@ void Choice::BUILD() temp->SetTextCtrlStyle(wxTE_READONLY); temp->Create(m_parent, wxID_ANY, wxString(""), wxDefaultPosition, size, 0, nullptr); #else - temp = new choice_ctrl(m_parent, wxID_ANY, wxString(""), wxDefaultPosition, size, 0, nullptr, wxCB_READONLY); + static Builder builder2; + temp = builder2.build(m_parent, wxID_ANY, wxString(""), wxDefaultPosition, size, 0, nullptr, wxCB_READONLY); #endif //__WXOSX__ } + // temp->SetSize(size); + temp->Clear(); temp->GetDropDown().SetUseContentWidth(true); if (parent_is_custom_ctrl && m_opt.height < 0) opt_height = (double) temp->GetTextCtrl()->GetSize().GetHeight() / m_em_unit; @@ -1219,9 +1329,9 @@ void Choice::BUILD() e.StopPropagation(); else e.Skip(); - }); - temp->Bind(wxEVT_COMBOBOX_DROPDOWN, [this](wxCommandEvent&) { m_is_dropped = true; }); - temp->Bind(wxEVT_COMBOBOX_CLOSEUP, [this](wxCommandEvent&) { m_is_dropped = false; }); + }, temp->GetId()); + temp->Bind(wxEVT_COMBOBOX_DROPDOWN, [this](wxCommandEvent&) { m_is_dropped = true; }, temp->GetId()); + temp->Bind(wxEVT_COMBOBOX_CLOSEUP, [this](wxCommandEvent&) { m_is_dropped = false; }, temp->GetId()); temp->Bind(wxEVT_COMBOBOX, [this](wxCommandEvent&) { on_change_field(); }, temp->GetId()); @@ -1230,12 +1340,12 @@ void Choice::BUILD() e.Skip(); if (!bEnterPressed) propagate_value(); - } ); + }, temp->GetId() ); temp->Bind(wxEVT_TEXT_ENTER, [this](wxEvent& e) { EnterPressed enter(this); propagate_value(); - } ); + }, temp->GetId() ); } temp->SetToolTip(get_tooltip_text(temp->GetValue())); diff --git a/src/slic3r/GUI/FileArchiveDialog.cpp b/src/slic3r/GUI/FileArchiveDialog.cpp index 5f3927753f..2cd84b6acd 100644 --- a/src/slic3r/GUI/FileArchiveDialog.cpp +++ b/src/slic3r/GUI/FileArchiveDialog.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2023 David Kocík @kocikdav -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "FileArchiveDialog.hpp" #include "I18N.hpp" diff --git a/src/slic3r/GUI/FileArchiveDialog.hpp b/src/slic3r/GUI/FileArchiveDialog.hpp index f4b7c037e1..decb960589 100644 --- a/src/slic3r/GUI/FileArchiveDialog.hpp +++ b/src/slic3r/GUI/FileArchiveDialog.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2023 David Kocík @kocikdav -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_GUI_FileArchiveDialog_hpp_ #define slic3r_GUI_FileArchiveDialog_hpp_ diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp index 20a8de4a92..a378f63970 100644 --- a/src/slic3r/GUI/GLCanvas3D.cpp +++ b/src/slic3r/GUI/GLCanvas3D.cpp @@ -1,13 +1,3 @@ -///|/ Copyright (c) Prusa Research 2018 - 2023 Enrico Turri @enricoturri1966, Oleksandra Iushchenko @YuSanka, Tomáš Mészáros @tamasmeszaros, Lukáš Matěna @lukasmatena, Vojtěch Bubník @bubnikv, David Kocík @kocikdav, Filip Sykala @Jony01, Lukáš Hejl @hejllukas, Vojtěch Král @vojtechkral -///|/ Copyright (c) BambuStudio 2023 manch1n @manch1n -///|/ Copyright (c) SuperSlicer 2023 Remi Durand @supermerill -///|/ Copyright (c) 2020 Benjamin Greiner -///|/ Copyright (c) 2019 John Drake @foxox -///|/ Copyright (c) 2019 BeldrothTheGold @BeldrothTheGold -///|/ Copyright (c) 2019 Thomas Moore -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "libslic3r/libslic3r.h" #include "GLCanvas3D.hpp" @@ -2061,13 +2051,24 @@ void GLCanvas3D::render(bool only_init) m_render_stats.increment_fps_counter(); } -void GLCanvas3D::render_thumbnail(ThumbnailData& thumbnail_data, unsigned int w, unsigned int h, const ThumbnailsParams& thumbnail_params, Camera::EType camera_type, bool use_top_view, bool for_picking) +void GLCanvas3D::render_thumbnail(ThumbnailData & thumbnail_data, + unsigned int w, + unsigned int h, + const ThumbnailsParams &thumbnail_params, + Camera::EType camera_type, + bool use_top_view, + bool for_picking, + bool ban_light) { - render_thumbnail(thumbnail_data, w, h, thumbnail_params, m_volumes, camera_type, use_top_view, for_picking); + render_thumbnail(thumbnail_data, w, h, thumbnail_params, m_volumes, camera_type, use_top_view, for_picking, ban_light); } void GLCanvas3D::render_thumbnail(ThumbnailData& thumbnail_data, unsigned int w, unsigned int h, const ThumbnailsParams& thumbnail_params, - const GLVolumeCollection& volumes, Camera::EType camera_type, bool use_top_view, bool for_picking) + const GLVolumeCollection &volumes, + Camera::EType camera_type, + bool use_top_view, + bool for_picking, + bool ban_light) { GLShaderProgram* shader = nullptr; if (for_picking) @@ -2079,14 +2080,19 @@ void GLCanvas3D::render_thumbnail(ThumbnailData& thumbnail_data, unsigned int w, switch (OpenGLManager::get_framebuffers_type()) { case OpenGLManager::EFramebufferType::Arb: - { render_thumbnail_framebuffer(thumbnail_data, w, h, thumbnail_params, - wxGetApp().plater()->get_partplate_list(), model_objects, volumes, colors, shader, camera_type, use_top_view, for_picking); break; } + { render_thumbnail_framebuffer(thumbnail_data, w, h, thumbnail_params, wxGetApp().plater()->get_partplate_list(), model_objects, volumes, colors, shader, camera_type, + use_top_view, for_picking, ban_light); + break; + } case OpenGLManager::EFramebufferType::Ext: - { render_thumbnail_framebuffer_ext(thumbnail_data, w, h, thumbnail_params, - wxGetApp().plater()->get_partplate_list(), model_objects, volumes, colors, shader, camera_type, use_top_view, for_picking); break; } + { render_thumbnail_framebuffer_ext(thumbnail_data, w, h, thumbnail_params, wxGetApp().plater()->get_partplate_list(), model_objects, volumes, colors, shader, camera_type, + use_top_view, for_picking, ban_light); + break; + } default: - { render_thumbnail_legacy(thumbnail_data, w, h, thumbnail_params, - wxGetApp().plater()->get_partplate_list(), model_objects, volumes, colors, shader, camera_type); break; } + { render_thumbnail_legacy(thumbnail_data, w, h, thumbnail_params, wxGetApp().plater()->get_partplate_list(), model_objects, volumes, colors, shader, camera_type); + break; + } } } @@ -2686,6 +2692,7 @@ void GLCanvas3D::reload_scene(bool refresh_immediately, bool force_full_scene_re float y = dynamic_cast(proj_cfg.option("wipe_tower_y"))->get_at(plate_id); float w = dynamic_cast(m_config->option("prime_tower_width"))->value; float a = dynamic_cast(proj_cfg.option("wipe_tower_rotation_angle"))->value; + float tower_brim_width = dynamic_cast(m_config->option("prime_tower_brim_width"))->value; // BBS // float v = dynamic_cast(m_config->option("prime_volume"))->value; Vec3d plate_origin = ppl.get_plate(plate_id)->get_origin(); @@ -2696,7 +2703,7 @@ void GLCanvas3D::reload_scene(bool refresh_immediately, bool force_full_scene_re const DynamicPrintConfig &print_cfg = wxGetApp().preset_bundle->prints.get_edited_preset().config; Vec3d wipe_tower_size = ppl.get_plate(plate_id)->estimate_wipe_tower_size(print_cfg, w, wipe_tower_data.depth); - const float margin = WIPE_TOWER_MARGIN; + const float margin = WIPE_TOWER_MARGIN + tower_brim_width; BoundingBoxf3 plate_bbox = wxGetApp().plater()->get_partplate_list().get_plate(plate_id)->get_bounding_box(); coordf_t plate_bbox_x_max_local_coord = plate_bbox.max(0) - plate_origin(0); coordf_t plate_bbox_y_max_local_coord = plate_bbox.max(1) - plate_origin(1); @@ -5662,9 +5669,17 @@ void GLCanvas3D::_render_3d_navigator() style.Colors[ImGuizmo::COLOR::DIRECTION_X] = ImGuiWrapper::to_ImVec4(ColorRGBA::Y()); style.Colors[ImGuizmo::COLOR::DIRECTION_Y] = ImGuiWrapper::to_ImVec4(ColorRGBA::Z()); style.Colors[ImGuizmo::COLOR::DIRECTION_Z] = ImGuiWrapper::to_ImVec4(ColorRGBA::X()); + style.Colors[ImGuizmo::COLOR::TEXT] = m_is_dark ? ImVec4(224 / 255.f, 224 / 255.f, 224 / 255.f, 1.f) : ImVec4(.2f, .2f, .2f, 1.0f); + style.Colors[ImGuizmo::COLOR::FACE] = m_is_dark ? ImVec4(0.23f, 0.23f, 0.23f, 1.f) : ImVec4(0.77f, 0.77f, 0.77f, 1); strcpy(style.AxisLabels[ImGuizmo::Axis::Axis_X], "y"); strcpy(style.AxisLabels[ImGuizmo::Axis::Axis_Y], "z"); strcpy(style.AxisLabels[ImGuizmo::Axis::Axis_Z], "x"); + strcpy(style.FaceLabels[ImGuizmo::FACES::FACE_FRONT], _utf8("Front").c_str()); + strcpy(style.FaceLabels[ImGuizmo::FACES::FACE_BACK], _utf8("Back").c_str()); + strcpy(style.FaceLabels[ImGuizmo::FACES::FACE_TOP], _utf8("Top").c_str()); + strcpy(style.FaceLabels[ImGuizmo::FACES::FACE_BOTTOM], _utf8("Bottom").c_str()); + strcpy(style.FaceLabels[ImGuizmo::FACES::FACE_LEFT], _utf8("Left").c_str()); + strcpy(style.FaceLabels[ImGuizmo::FACES::FACE_RIGHT], _utf8("Right").c_str()); float sc = get_scale(); #ifdef WIN32 @@ -5694,7 +5709,7 @@ void GLCanvas3D::_render_3d_navigator() const float size = 128 * sc; const bool dirty = ImGuizmo::ViewManipulate(cameraView, cameraProjection, ImGuizmo::OPERATION::ROTATE, ImGuizmo::MODE::WORLD, identityMatrix, camDistance, ImVec2(viewManipulateLeft, viewManipulateTop - size), - ImVec2(size, size), 0x10101010); + ImVec2(size, size), 0x00101010); if (dirty) { for (unsigned int c = 0; c < 4; ++c) { @@ -5735,7 +5750,7 @@ static void debug_output_thumbnail(const ThumbnailData& thumbnail_data) void GLCanvas3D::render_thumbnail_internal(ThumbnailData& thumbnail_data, const ThumbnailsParams& thumbnail_params, PartPlateList& partplate_list, ModelObjectPtrs& model_objects, const GLVolumeCollection& volumes, std::vector& extruder_colors, - GLShaderProgram* shader, Camera::EType camera_type, bool use_top_view, bool for_picking) + GLShaderProgram* shader, Camera::EType camera_type, bool use_top_view, bool for_picking, bool ban_light) { //BBS modify visible calc function int plate_idx = thumbnail_params.plate_id; @@ -5851,7 +5866,9 @@ void GLCanvas3D::render_thumbnail_internal(ThumbnailData& thumbnail_data, const glsafe(::glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)); glsafe(::glEnable(GL_DEPTH_TEST)); - + if (ban_light) { + glsafe(::glDisable(GL_BLEND)); + } const Transform3d &projection_matrix = camera.get_projection_matrix(); if (for_picking) { @@ -5905,12 +5922,16 @@ void GLCanvas3D::render_thumbnail_internal(ThumbnailData& thumbnail_data, const else { shader->start_using(); shader->set_uniform("emission_factor", 0.1f); + shader->set_uniform("ban_light", ban_light); for (GLVolume* vol : visible_volumes) { //BBS set render color for thumbnails curr_color = vol->color; ColorRGBA new_color = adjust_color_for_rendering(curr_color); - vol->model.set_color(new_color); + if (ban_light) { + new_color[3] = (255 - vol->extruder_id) / 255.0f; + } + vol->model.set_color(new_color); shader->set_uniform("volume_world_matrix", vol->world_matrix()); //BBS set all volume to orange //shader->set_uniform("uniform_color", orange); @@ -5928,7 +5949,7 @@ void GLCanvas3D::render_thumbnail_internal(ThumbnailData& thumbnail_data, const shader->set_uniform("projection_matrix", projection_matrix); const Matrix3d view_normal_matrix = view_matrix.matrix().block(0, 0, 3, 3) * model_matrix.matrix().block(0, 0, 3, 3).inverse().transpose(); shader->set_uniform("view_normal_matrix", view_normal_matrix); - vol->simple_render(shader, model_objects, extruder_colors); + vol->simple_render(shader, model_objects, extruder_colors, ban_light); vol->is_active = is_active; } shader->stop_using(); @@ -5947,7 +5968,7 @@ void GLCanvas3D::render_thumbnail_internal(ThumbnailData& thumbnail_data, const void GLCanvas3D::render_thumbnail_framebuffer(ThumbnailData& thumbnail_data, unsigned int w, unsigned int h, const ThumbnailsParams& thumbnail_params, PartPlateList& partplate_list, ModelObjectPtrs& model_objects, const GLVolumeCollection& volumes, std::vector& extruder_colors, - GLShaderProgram* shader, Camera::EType camera_type, bool use_top_view, bool for_picking) + GLShaderProgram* shader, Camera::EType camera_type, bool use_top_view, bool for_picking, bool ban_light) { thumbnail_data.set(w, h); if (!thumbnail_data.is_valid()) @@ -6000,7 +6021,8 @@ void GLCanvas3D::render_thumbnail_framebuffer(ThumbnailData& thumbnail_data, uns glsafe(::glDrawBuffers(1, drawBufs)); if (::glCheckFramebufferStatus(GL_FRAMEBUFFER) == GL_FRAMEBUFFER_COMPLETE) { - render_thumbnail_internal(thumbnail_data, thumbnail_params, partplate_list, model_objects, volumes, extruder_colors, shader, camera_type, use_top_view, for_picking); + render_thumbnail_internal(thumbnail_data, thumbnail_params, partplate_list, model_objects, volumes, extruder_colors, shader, + camera_type, use_top_view, for_picking,ban_light); if (multisample) { GLuint resolve_fbo; @@ -6055,7 +6077,7 @@ void GLCanvas3D::render_thumbnail_framebuffer(ThumbnailData& thumbnail_data, uns void GLCanvas3D::render_thumbnail_framebuffer_ext(ThumbnailData& thumbnail_data, unsigned int w, unsigned int h, const ThumbnailsParams& thumbnail_params, PartPlateList& partplate_list, ModelObjectPtrs& model_objects, const GLVolumeCollection& volumes, std::vector& extruder_colors, - GLShaderProgram* shader, Camera::EType camera_type, bool use_top_view, bool for_picking) + GLShaderProgram* shader, Camera::EType camera_type, bool use_top_view, bool for_picking, bool ban_light) { thumbnail_data.set(w, h); if (!thumbnail_data.is_valid()) @@ -6107,7 +6129,8 @@ void GLCanvas3D::render_thumbnail_framebuffer_ext(ThumbnailData& thumbnail_data, glsafe(::glDrawBuffers(1, drawBufs)); if (::glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT) == GL_FRAMEBUFFER_COMPLETE_EXT) { - render_thumbnail_internal(thumbnail_data, thumbnail_params, partplate_list, model_objects, volumes, extruder_colors, shader, camera_type, use_top_view, for_picking); + render_thumbnail_internal(thumbnail_data, thumbnail_params, partplate_list, model_objects, volumes, extruder_colors, shader, camera_type, use_top_view, for_picking, + ban_light); if (multisample) { GLuint resolve_fbo; diff --git a/src/slic3r/GUI/GLCanvas3D.hpp b/src/slic3r/GUI/GLCanvas3D.hpp index a87b11460c..ad4d21cf3a 100644 --- a/src/slic3r/GUI/GLCanvas3D.hpp +++ b/src/slic3r/GUI/GLCanvas3D.hpp @@ -1,8 +1,3 @@ -///|/ Copyright (c) Prusa Research 2018 - 2023 Enrico Turri @enricoturri1966, Tomáš Mészáros @tamasmeszaros, Lukáš Matěna @lukasmatena, Oleksandra Iushchenko @YuSanka, Filip Sykala @Jony01, Vojtěch Bubník @bubnikv, Lukáš Hejl @hejllukas, David Kocík @kocikdav, Vojtěch Král @vojtechkral -///|/ Copyright (c) BambuStudio 2023 manch1n @manch1n -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_GLCanvas3D_hpp_ #define slic3r_GLCanvas3D_hpp_ @@ -879,20 +874,27 @@ public: // printable_only == false -> render also non printable volumes as grayed // parts_only == false -> render also sla support and pad void render_thumbnail(ThumbnailData& thumbnail_data, unsigned int w, unsigned int h, const ThumbnailsParams& thumbnail_params, - Camera::EType camera_type, bool use_top_view = false, bool for_picking = false); + Camera::EType camera_type, + bool use_top_view = false, + bool for_picking = false, + bool ban_light = false); void render_thumbnail(ThumbnailData& thumbnail_data, unsigned int w, unsigned int h, const ThumbnailsParams& thumbnail_params, - const GLVolumeCollection& volumes, Camera::EType camera_type, bool use_top_view = false, bool for_picking = false); + const GLVolumeCollection &volumes, + Camera::EType camera_type, + bool use_top_view = false, + bool for_picking = false, + bool ban_light = false); static void render_thumbnail_internal(ThumbnailData& thumbnail_data, const ThumbnailsParams& thumbnail_params, PartPlateList& partplate_list, ModelObjectPtrs& model_objects, const GLVolumeCollection& volumes, std::vector& extruder_colors, - GLShaderProgram* shader, Camera::EType camera_type, bool use_top_view = false, bool for_picking = false); + GLShaderProgram* shader, Camera::EType camera_type, bool use_top_view = false, bool for_picking = false, bool ban_light = false); // render thumbnail using an off-screen framebuffer static void render_thumbnail_framebuffer(ThumbnailData& thumbnail_data, unsigned int w, unsigned int h, const ThumbnailsParams& thumbnail_params, PartPlateList& partplate_list, ModelObjectPtrs& model_objects, const GLVolumeCollection& volumes, std::vector& extruder_colors, - GLShaderProgram* shader, Camera::EType camera_type, bool use_top_view = false, bool for_picking = false); + GLShaderProgram* shader, Camera::EType camera_type, bool use_top_view = false, bool for_picking = false, bool ban_light = false); // render thumbnail using an off-screen framebuffer when GLEW_EXT_framebuffer_object is supported static void render_thumbnail_framebuffer_ext(ThumbnailData& thumbnail_data, unsigned int w, unsigned int h, const ThumbnailsParams& thumbnail_params, PartPlateList& partplate_list, ModelObjectPtrs& model_objects, const GLVolumeCollection& volumes, std::vector& extruder_colors, - GLShaderProgram* shader, Camera::EType camera_type, bool use_top_view = false, bool for_picking = false); + GLShaderProgram* shader, Camera::EType camera_type, bool use_top_view = false, bool for_picking = false, bool ban_light = false); //BBS use gcoder viewer render calibration thumbnails void render_calibration_thumbnail(ThumbnailData& thumbnail_data, unsigned int w, unsigned int h, const ThumbnailsParams& thumbnail_params); diff --git a/src/slic3r/GUI/GLModel.cpp b/src/slic3r/GUI/GLModel.cpp index 959c9aa9ac..8f4546b620 100644 --- a/src/slic3r/GUI/GLModel.cpp +++ b/src/slic3r/GUI/GLModel.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2020 - 2023 Enrico Turri @enricoturri1966, Vojtěch Bubník @bubnikv, Filip Sykala @Jony01 -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "libslic3r/libslic3r.h" #include "GLModel.hpp" diff --git a/src/slic3r/GUI/GLModel.hpp b/src/slic3r/GUI/GLModel.hpp index e90c263ece..4511cc32a8 100644 --- a/src/slic3r/GUI/GLModel.hpp +++ b/src/slic3r/GUI/GLModel.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2020 - 2023 Enrico Turri @enricoturri1966, Vojtěch Bubník @bubnikv, Filip Sykala @Jony01, Lukáš Matěna @lukasmatena -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_GLModel_hpp_ #define slic3r_GLModel_hpp_ diff --git a/src/slic3r/GUI/GLSelectionRectangle.cpp b/src/slic3r/GUI/GLSelectionRectangle.cpp index 7eb5c29143..3cb9b82593 100644 --- a/src/slic3r/GUI/GLSelectionRectangle.cpp +++ b/src/slic3r/GUI/GLSelectionRectangle.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2019 - 2022 Enrico Turri @enricoturri1966, Filip Sykala @Jony01, Lukáš Matěna @lukasmatena, Vojtěch Bubník @bubnikv -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "GLSelectionRectangle.hpp" #include "Camera.hpp" #include "CameraUtils.hpp" diff --git a/src/slic3r/GUI/GLSelectionRectangle.hpp b/src/slic3r/GUI/GLSelectionRectangle.hpp index 8d87e18e46..f588b4fddd 100644 --- a/src/slic3r/GUI/GLSelectionRectangle.hpp +++ b/src/slic3r/GUI/GLSelectionRectangle.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2019 - 2022 Enrico Turri @enricoturri1966, Lukáš Matěna @lukasmatena -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_GLSelectionRectangle_hpp_ #define slic3r_GLSelectionRectangle_hpp_ diff --git a/src/slic3r/GUI/GLTexture.cpp b/src/slic3r/GUI/GLTexture.cpp index fcd9045cef..79cbb77370 100644 --- a/src/slic3r/GUI/GLTexture.cpp +++ b/src/slic3r/GUI/GLTexture.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2018 - 2023 Enrico Turri @enricoturri1966, Lukáš Hejl @hejllukas, Tomáš Mészáros @tamasmeszaros, Filip Sykala @Jony01, Vojtěch Bubník @bubnikv, Vojtěch Král @vojtechkral -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ //BBS:add i18n #include "I18N.hpp" //BBS: add fstream for debug output diff --git a/src/slic3r/GUI/GLToolbar.cpp b/src/slic3r/GUI/GLToolbar.cpp index c39d615d5e..be97e52e84 100644 --- a/src/slic3r/GUI/GLToolbar.cpp +++ b/src/slic3r/GUI/GLToolbar.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2018 - 2022 Enrico Turri @enricoturri1966, David Kocík @kocikdav, Lukáš Matěna @lukasmatena, Oleksandra Iushchenko @YuSanka, Vojtěch Bubník @bubnikv, Vojtěch Král @vojtechkral -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "libslic3r/Point.hpp" #include "libslic3r/libslic3r.h" diff --git a/src/slic3r/GUI/GLToolbar.hpp b/src/slic3r/GUI/GLToolbar.hpp index cdb7e27779..85413edc66 100644 --- a/src/slic3r/GUI/GLToolbar.hpp +++ b/src/slic3r/GUI/GLToolbar.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2018 - 2022 Enrico Turri @enricoturri1966, David Kocík @kocikdav, Oleksandra Iushchenko @YuSanka, Vojtěch Král @vojtechkral, Vojtěch Bubník @bubnikv -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_GLToolbar_hpp_ #define slic3r_GLToolbar_hpp_ diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index 6402d012b9..f9eb043ee7 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -1679,6 +1679,9 @@ 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"; @@ -3270,7 +3273,10 @@ void GUI_App::check_printer_presets() #endif } -void GUI_App::recreate_GUI(const wxString& msg_name) +void switch_window_pools(); +void release_window_pools(); + +void GUI_App::recreate_GUI(const wxString &msg_name) { BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << "recreate_GUI enter"; m_is_recreating_gui = true; @@ -3278,12 +3284,18 @@ void GUI_App::recreate_GUI(const wxString& msg_name) update_http_extra_header(); mainframe->shutdown(); - ProgressDialog dlg(msg_name, msg_name, 100, nullptr, wxPD_AUTO_HIDE); dlg.Pulse(); dlg.Update(10, _L("Rebuild") + dots); MainFrame *old_main_frame = mainframe; + struct ClientData : wxClientData + { + ~ClientData() { release_window_pools(); } + }; + old_main_frame->SetClientObject(new ClientData); + + switch_window_pools(); mainframe = new MainFrame(); if (is_editor()) // hide settings tabs after first Layout @@ -6571,10 +6583,7 @@ bool GUI_App::check_url_association(std::wstring url_prefix, std::wstring& reg_b reg_bin = key_full.QueryDefaultValue().ToStdWstring(); boost::filesystem::path binary_path(boost::filesystem::canonical(boost::dll::program_location())); - // wxString wbinary = wxString::FromUTF8(binary_path.string()); - // std::string binary_string = (boost::format("%1%") % wbinary).str(); - std::wstring key_string = L"\"" + binary_path.wstring() + L"\" L\"%1\""; - // return boost::iequals(key_string,(boost::format("%1%") % reg_bin).str()); + std::wstring key_string = L"\"" + binary_path.wstring() + L"\" \"%1\""; return key_string == reg_bin; #else return false; diff --git a/src/slic3r/GUI/GUI_App.hpp b/src/slic3r/GUI/GUI_App.hpp index 5817a47ebb..44d430d2d1 100644 --- a/src/slic3r/GUI/GUI_App.hpp +++ b/src/slic3r/GUI/GUI_App.hpp @@ -36,6 +36,7 @@ #define TIMEOUT_RESPONSE 15 #define BE_UNACTED_ON 0x00200001 +#define SHOW_BACKGROUND_BITMAP_PIXEL_THRESHOLD 80 #ifndef _MSW_DARK_MODE #define _MSW_DARK_MODE 1 #endif // _MSW_DARK_MODE diff --git a/src/slic3r/GUI/GUI_Factories.cpp b/src/slic3r/GUI/GUI_Factories.cpp index ab513af845..bd0d5ff856 100644 --- a/src/slic3r/GUI/GUI_Factories.cpp +++ b/src/slic3r/GUI/GUI_Factories.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2021 - 2023 Enrico Turri @enricoturri1966, Lukáš Matěna @lukasmatena, Oleksandra Iushchenko @YuSanka, Pavel Mikuš @Godrak, Tomáš Mészáros @tamasmeszaros, Filip Sykala @Jony01, Vojtěch Bubník @bubnikv -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "libslic3r/Config.hpp" #include "libslic3r/libslic3r.h" #include "libslic3r/PresetBundle.hpp" diff --git a/src/slic3r/GUI/GUI_Factories.hpp b/src/slic3r/GUI/GUI_Factories.hpp index 16e25533fa..f0e503c450 100644 --- a/src/slic3r/GUI/GUI_Factories.hpp +++ b/src/slic3r/GUI/GUI_Factories.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2021 - 2022 Oleksandra Iushchenko @YuSanka, Tomáš Mészáros @tamasmeszaros, Lukáš Matěna @lukasmatena, Pavel Mikuš @Godrak, Filip Sykala @Jony01, Vojtěch Bubník @bubnikv -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_GUI_Factories_hpp_ #define slic3r_GUI_Factories_hpp_ diff --git a/src/slic3r/GUI/GUI_Geometry.cpp b/src/slic3r/GUI/GUI_Geometry.cpp index 3cee023e12..b0ed0e04fc 100644 --- a/src/slic3r/GUI/GUI_Geometry.cpp +++ b/src/slic3r/GUI/GUI_Geometry.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2021 Enrico Turri @enricoturri1966 -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "libslic3r/libslic3r.h" #include "GUI_Geometry.hpp" diff --git a/src/slic3r/GUI/GUI_Geometry.hpp b/src/slic3r/GUI/GUI_Geometry.hpp index ed89af649c..b18e4ae5a5 100644 --- a/src/slic3r/GUI/GUI_Geometry.hpp +++ b/src/slic3r/GUI/GUI_Geometry.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2021 - 2023 Enrico Turri @enricoturri1966 -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_GUI_Geometry_hpp_ #define slic3r_GUI_Geometry_hpp_ diff --git a/src/slic3r/GUI/GUI_ObjectList.cpp b/src/slic3r/GUI/GUI_ObjectList.cpp index 25a18d2c6a..5ba1751daa 100644 --- a/src/slic3r/GUI/GUI_ObjectList.cpp +++ b/src/slic3r/GUI/GUI_ObjectList.cpp @@ -1,9 +1,3 @@ -///|/ Copyright (c) Prusa Research 2018 - 2023 Oleksandra Iushchenko @YuSanka, Enrico Turri @enricoturri1966, Lukáš Matěna @lukasmatena, Lukáš Hejl @hejllukas, Tomáš Mészáros @tamasmeszaros, Vojtěch Bubník @bubnikv, Pavel Mikuš @Godrak, David Kocík @kocikdav, Filip Sykala @Jony01, Vojtěch Král @vojtechkral -///|/ Copyright (c) 2021 Mathias Rasmussen -///|/ Copyright (c) 2020 rongith -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "libslic3r/libslic3r.h" #include "libslic3r/PresetBundle.hpp" #include "GUI_ObjectList.hpp" @@ -5662,11 +5656,22 @@ void ObjectList::set_extruder_for_selected_items(const int extruder) if (type & itLayerRoot) continue; + // BBS: handle extruder 0 for part, use it's parent extruder + int new_extruder = extruder; + if (extruder == 0) { + if (type & itObject) { + new_extruder = 1; + } + else if ((type & itVolume) && (m_objects_model->GetVolumeType(sel_item) == ModelVolumeType::MODEL_PART)) { + new_extruder = m_objects_model->GetExtruderNumber(m_objects_model->GetParent(sel_item)); + } + } + ModelConfig& config = get_item_config(item); if (config.has("extruder")) - config.set("extruder", extruder); + config.set("extruder", new_extruder); else - config.set_key_value("extruder", new ConfigOptionInt(extruder)); + config.set_key_value("extruder", new ConfigOptionInt(new_extruder)); // for object, clear all its part volume's extruder config if (type & itObject) { @@ -5677,7 +5682,7 @@ void ObjectList::set_extruder_for_selected_items(const int extruder) } } - const wxString extruder_str = wxString::Format("%d", extruder); + const wxString extruder_str = wxString::Format("%d", new_extruder); m_objects_model->SetExtruder(extruder_str, item); } diff --git a/src/slic3r/GUI/GUI_Preview.cpp b/src/slic3r/GUI/GUI_Preview.cpp index 7b11a9aa8e..91254111cf 100644 --- a/src/slic3r/GUI/GUI_Preview.cpp +++ b/src/slic3r/GUI/GUI_Preview.cpp @@ -1,9 +1,3 @@ -///|/ Copyright (c) Prusa Research 2018 - 2023 Enrico Turri @enricoturri1966, Oleksandra Iushchenko @YuSanka, Vojtěch Bubník @bubnikv, Lukáš Matěna @lukasmatena, Filip Sykala @Jony01, David Kocík @kocikdav, Tomáš Mészáros @tamasmeszaros, Vojtěch Král @vojtechkral -///|/ Copyright (c) 2022 André Althaus -///|/ Copyright (c) 2019 John Drake @foxox -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ //#include "stdlib.h" #include "libslic3r/libslic3r.h" #include "libslic3r/Layer.hpp" diff --git a/src/slic3r/GUI/GUI_Utils.hpp b/src/slic3r/GUI/GUI_Utils.hpp index 64bd8e6499..a0f4308f1a 100644 --- a/src/slic3r/GUI/GUI_Utils.hpp +++ b/src/slic3r/GUI/GUI_Utils.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2018 - 2023 Oleksandra Iushchenko @YuSanka, Enrico Turri @enricoturri1966, Lukáš Matěna @lukasmatena, Vojtěch Bubník @bubnikv, Vojtěch Král @vojtechkral -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_GUI_Utils_hpp_ #define slic3r_GUI_Utils_hpp_ diff --git a/src/slic3r/GUI/Gizmos/GLGizmoBase.cpp b/src/slic3r/GUI/Gizmos/GLGizmoBase.cpp index 1ba93df823..0a219a5cc3 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoBase.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoBase.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2019 - 2023 Oleksandra Iushchenko @YuSanka, Enrico Turri @enricoturri1966, Lukáš Matěna @lukasmatena, Filip Sykala @Jony01, Vojtěch Bubník @bubnikv -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "GLGizmoBase.hpp" #include "slic3r/GUI/GLCanvas3D.hpp" diff --git a/src/slic3r/GUI/Gizmos/GLGizmoBase.hpp b/src/slic3r/GUI/Gizmos/GLGizmoBase.hpp index 4ed37d5aeb..4a177f02fc 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoBase.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoBase.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2019 - 2023 Oleksandra Iushchenko @YuSanka, Lukáš Matěna @lukasmatena, Enrico Turri @enricoturri1966, Filip Sykala @Jony01, Vojtěch Bubník @bubnikv -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_GLGizmoBase_hpp_ #define slic3r_GLGizmoBase_hpp_ diff --git a/src/slic3r/GUI/Gizmos/GLGizmoCut.cpp b/src/slic3r/GUI/Gizmos/GLGizmoCut.cpp index 405ba3ca3d..011df0cd34 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoCut.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoCut.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2019 - 2023 Oleksandra Iushchenko @YuSanka, Vojtěch Bubník @bubnikv, Lukáš Matěna @lukasmatena, Enrico Turri @enricoturri1966, Filip Sykala @Jony01, Vojtěch Král @vojtechkral -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "GLGizmoCut.hpp" #include "slic3r/GUI/GLCanvas3D.hpp" diff --git a/src/slic3r/GUI/Gizmos/GLGizmoCut.hpp b/src/slic3r/GUI/Gizmos/GLGizmoCut.hpp index 2c36dbd2a5..f09ca7a4b8 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoCut.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoCut.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2019 - 2023 Oleksandra Iushchenko @YuSanka, Lukáš Matěna @lukasmatena, Enrico Turri @enricoturri1966, Filip Sykala @Jony01, Vojtěch Bubník @bubnikv -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_GLGizmoCut_hpp_ #define slic3r_GLGizmoCut_hpp_ diff --git a/src/slic3r/GUI/Gizmos/GLGizmoEmboss.cpp b/src/slic3r/GUI/Gizmos/GLGizmoEmboss.cpp index 89914639c8..87ae609d24 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoEmboss.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoEmboss.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2021 - 2023 Oleksandra Iushchenko @YuSanka, Enrico Turri @enricoturri1966, Lukáš Matěna @lukasmatena, Tomáš Mészáros @tamasmeszaros, Filip Sykala @Jony01, Vojtěch Bubník @bubnikv -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "GLGizmoEmboss.hpp" #include "slic3r/GUI/GLCanvas3D.hpp" #include "slic3r/GUI/GUI_App.hpp" diff --git a/src/slic3r/GUI/Gizmos/GLGizmoEmboss.hpp b/src/slic3r/GUI/Gizmos/GLGizmoEmboss.hpp index 968dde2818..8c4b084ec7 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoEmboss.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoEmboss.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2021 - 2023 Oleksandra Iushchenko @YuSanka, Lukáš Matěna @lukasmatena, Enrico Turri @enricoturri1966, Filip Sykala @Jony01 -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_GLGizmoEmboss_hpp_ #define slic3r_GLGizmoEmboss_hpp_ diff --git a/src/slic3r/GUI/Gizmos/GLGizmoFlatten.cpp b/src/slic3r/GUI/Gizmos/GLGizmoFlatten.cpp index e59931ab78..264e1d629e 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoFlatten.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoFlatten.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2019 - 2023 Oleksandra Iushchenko @YuSanka, Lukáš Matěna @lukasmatena, Enrico Turri @enricoturri1966, Filip Sykala @Jony01, Vojtěch Bubník @bubnikv -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "GLGizmoFlatten.hpp" #include "slic3r/GUI/GLCanvas3D.hpp" #include "slic3r/GUI/GUI_App.hpp" diff --git a/src/slic3r/GUI/Gizmos/GLGizmoFlatten.hpp b/src/slic3r/GUI/Gizmos/GLGizmoFlatten.hpp index 027480dbee..74e2062de4 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoFlatten.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoFlatten.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2019 - 2023 Oleksandra Iushchenko @YuSanka, Lukáš Matěna @lukasmatena, Enrico Turri @enricoturri1966, Filip Sykala @Jony01 -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_GLGizmoFlatten_hpp_ #define slic3r_GLGizmoFlatten_hpp_ diff --git a/src/slic3r/GUI/Gizmos/GLGizmoMeasure.cpp b/src/slic3r/GUI/Gizmos/GLGizmoMeasure.cpp index 0661168ece..276699beef 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoMeasure.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoMeasure.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2019 - 2023 Lukáš Matěna @lukasmatena, Oleksandra Iushchenko @YuSanka, Enrico Turri @enricoturri1966, Vojtěch Bubník @bubnikv, Filip Sykala @Jony01 -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "GLGizmoMeasure.hpp" #include "slic3r/GUI/GLCanvas3D.hpp" #include "slic3r/GUI/GUI_App.hpp" diff --git a/src/slic3r/GUI/Gizmos/GLGizmoMeasure.hpp b/src/slic3r/GUI/Gizmos/GLGizmoMeasure.hpp index 0fc7577b43..7982913653 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoMeasure.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoMeasure.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2019 - 2023 Oleksandra Iushchenko @YuSanka, Lukáš Matěna @lukasmatena, Enrico Turri @enricoturri1966, Vojtěch Bubník @bubnikv, Filip Sykala @Jony01 -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_GLGizmoMeasure_hpp_ #define slic3r_GLGizmoMeasure_hpp_ diff --git a/src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp b/src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp index 9d62f78547..283ccacb10 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp @@ -1,8 +1,3 @@ -///|/ Copyright (c) Prusa Research 2019 - 2023 Oleksandra Iushchenko @YuSanka, Lukáš Matěna @lukasmatena, Enrico Turri @enricoturri1966, Filip Sykala @Jony01, Lukáš Hejl @hejllukas, David Kocík @kocikdav, Vojtěch Bubník @bubnikv -///|/ Copyright (c) 2021 Justin Schuh @jschuh -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "GLGizmoMmuSegmentation.hpp" #include "slic3r/GUI/GLCanvas3D.hpp" diff --git a/src/slic3r/GUI/Gizmos/GLGizmoMove.cpp b/src/slic3r/GUI/Gizmos/GLGizmoMove.cpp index 1049e61f5e..6acf77a0f8 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoMove.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoMove.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2019 - 2023 Enrico Turri @enricoturri1966, Oleksandra Iushchenko @YuSanka, Lukáš Matěna @lukasmatena, Filip Sykala @Jony01, Vojtěch Bubník @bubnikv -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "GLGizmoMove.hpp" #include "slic3r/GUI/GLCanvas3D.hpp" #include "slic3r/GUI/GUI_App.hpp" diff --git a/src/slic3r/GUI/Gizmos/GLGizmoMove.hpp b/src/slic3r/GUI/Gizmos/GLGizmoMove.hpp index f4c04c730a..4d0b4581f0 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoMove.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoMove.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2019 - 2023 Lukáš Matěna @lukasmatena, Enrico Turri @enricoturri1966, Oleksandra Iushchenko @YuSanka, Filip Sykala @Jony01 -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_GLGizmoMove_hpp_ #define slic3r_GLGizmoMove_hpp_ diff --git a/src/slic3r/GUI/Gizmos/GLGizmoPainterBase.cpp b/src/slic3r/GUI/Gizmos/GLGizmoPainterBase.cpp index 211e327d15..2dbf7778e0 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoPainterBase.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoPainterBase.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2019 - 2023 Oleksandra Iushchenko @YuSanka, Lukáš Matěna @lukasmatena, Enrico Turri @enricoturri1966, Vojtěch Bubník @bubnikv, Filip Sykala @Jony01, Lukáš Hejl @hejllukas -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "GLGizmoPainterBase.hpp" #include "slic3r/GUI/GLCanvas3D.hpp" #include "slic3r/GUI/Gizmos/GLGizmosCommon.hpp" diff --git a/src/slic3r/GUI/Gizmos/GLGizmoPainterBase.hpp b/src/slic3r/GUI/Gizmos/GLGizmoPainterBase.hpp index 62fdfd28ff..5273aa06dd 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoPainterBase.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoPainterBase.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2019 - 2023 Pavel Mikuš @Godrak, Lukáš Matěna @lukasmatena, Enrico Turri @enricoturri1966, Vojtěch Bubník @bubnikv, Lukáš Hejl @hejllukas, Filip Sykala @Jony01 -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_GLGizmoPainterBase_hpp_ #define slic3r_GLGizmoPainterBase_hpp_ diff --git a/src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp b/src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp index 5a02e66669..5b79edb95d 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2019 - 2023 Oleksandra Iushchenko @YuSanka, Lukáš Matěna @lukasmatena, Enrico Turri @enricoturri1966, Tomáš Mészáros @tamasmeszaros, Filip Sykala @Jony01, Vojtěch Bubník @bubnikv -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "GLGizmoRotate.hpp" #include "slic3r/GUI/GLCanvas3D.hpp" #include "slic3r/GUI/ImGuiWrapper.hpp" diff --git a/src/slic3r/GUI/Gizmos/GLGizmoRotate.hpp b/src/slic3r/GUI/Gizmos/GLGizmoRotate.hpp index bc846f0ad0..769809df8d 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoRotate.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoRotate.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2019 - 2023 Lukáš Matěna @lukasmatena, Enrico Turri @enricoturri1966, Oleksandra Iushchenko @YuSanka, Filip Sykala @Jony01, Tomáš Mészáros @tamasmeszaros -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_GLGizmoRotate_hpp_ #define slic3r_GLGizmoRotate_hpp_ diff --git a/src/slic3r/GUI/Gizmos/GLGizmoScale.cpp b/src/slic3r/GUI/Gizmos/GLGizmoScale.cpp index b1fe396f21..8d2781e6a8 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoScale.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoScale.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2019 - 2023 Oleksandra Iushchenko @YuSanka, Lukáš Matěna @lukasmatena, Enrico Turri @enricoturri1966, Filip Sykala @Jony01, Vojtěch Bubník @bubnikv -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "GLGizmoScale.hpp" #include "slic3r/GUI/GLCanvas3D.hpp" #include "slic3r/GUI/GUI_App.hpp" diff --git a/src/slic3r/GUI/Gizmos/GLGizmoScale.hpp b/src/slic3r/GUI/Gizmos/GLGizmoScale.hpp index 5d8565aa05..77929bb538 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoScale.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoScale.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2019 - 2023 Oleksandra Iushchenko @YuSanka, Lukáš Matěna @lukasmatena, Enrico Turri @enricoturri1966, Filip Sykala @Jony01 -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_GLGizmoScale_hpp_ #define slic3r_GLGizmoScale_hpp_ diff --git a/src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp b/src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp index 2aba01f937..935a76ca0f 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2020 - 2022 Enrico Turri @enricoturri1966, Lukáš Matěna @lukasmatena, Lukáš Hejl @hejllukas, Oleksandra Iushchenko @YuSanka, Vojtěch Bubník @bubnikv -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "GLGizmoSeam.hpp" #include "libslic3r/Model.hpp" diff --git a/src/slic3r/GUI/Gizmos/GLGizmoSeam.hpp b/src/slic3r/GUI/Gizmos/GLGizmoSeam.hpp index 2e20f50183..4caa2dde63 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoSeam.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoSeam.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2019 - 2023 Oleksandra Iushchenko @YuSanka, Enrico Turri @enricoturri1966, Lukáš Matěna @lukasmatena, Lukáš Hejl @hejllukas -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_GLGizmoSeam_hpp_ #define slic3r_GLGizmoSeam_hpp_ diff --git a/src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp b/src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp index 0c82aae6ba..32f1591248 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2021 - 2023 Oleksandra Iushchenko @YuSanka, Lukáš Hejl @hejllukas, Enrico Turri @enricoturri1966, David Kocík @kocikdav, Filip Sykala @Jony01, Lukáš Matěna @lukasmatena, Vojtěch Bubník @bubnikv -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "GLGizmoSimplify.hpp" #include "slic3r/GUI/GLCanvas3D.hpp" #include "slic3r/GUI/GUI_App.hpp" diff --git a/src/slic3r/GUI/Gizmos/GLGizmoSimplify.hpp b/src/slic3r/GUI/Gizmos/GLGizmoSimplify.hpp index dedcea8971..b4be94d2c9 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoSimplify.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoSimplify.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2021 - 2023 Oleksandra Iushchenko @YuSanka, Enrico Turri @enricoturri1966, Vojtěch Bubník @bubnikv, Filip Sykala @Jony01, Lukáš Hejl @hejllukas, Lukáš Matěna @lukasmatena -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_GLGizmoSimplify_hpp_ #define slic3r_GLGizmoSimplify_hpp_ diff --git a/src/slic3r/GUI/Gizmos/GLGizmoText.cpp b/src/slic3r/GUI/Gizmos/GLGizmoText.cpp index 9d7c45e037..411ec8f2ff 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoText.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoText.cpp @@ -386,7 +386,7 @@ bool GLGizmoText::gizmo_event(SLAGizmoEventType action, const Vec2d &mouse_posit return false; Plater *plater = wxGetApp().plater(); - if (!plater) + if (!plater || m_thickness <= 0) return true; ModelObject *model_object = selection.get_model()->objects[m_object_idx]; diff --git a/src/slic3r/GUI/Gizmos/GLGizmos.hpp b/src/slic3r/GUI/Gizmos/GLGizmos.hpp index 36435919b7..9751c37232 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmos.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmos.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2019 - 2021 Lukáš Hejl @hejllukas, Lukáš Matěna @lukasmatena, Enrico Turri @enricoturri1966 -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_GLGizmos_hpp_ #define slic3r_GLGizmos_hpp_ diff --git a/src/slic3r/GUI/Gizmos/GLGizmosCommon.cpp b/src/slic3r/GUI/Gizmos/GLGizmosCommon.cpp index 140bed7565..56c3d1714b 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmosCommon.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmosCommon.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2020 - 2023 Lukáš Matěna @lukasmatena, Oleksandra Iushchenko @YuSanka, Enrico Turri @enricoturri1966, Tomáš Mészáros @tamasmeszaros, Vojtěch Bubník @bubnikv -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "GLGizmosCommon.hpp" #include diff --git a/src/slic3r/GUI/Gizmos/GLGizmosCommon.hpp b/src/slic3r/GUI/Gizmos/GLGizmosCommon.hpp index 6f2138346e..c14f2feeba 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmosCommon.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmosCommon.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2020 - 2023 Lukáš Matěna @lukasmatena, Oleksandra Iushchenko @YuSanka, Enrico Turri @enricoturri1966, Tomáš Mészáros @tamasmeszaros, Lukáš Hejl @hejllukas -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_GUI_GLGizmosCommon_hpp_ #define slic3r_GUI_GLGizmosCommon_hpp_ diff --git a/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp b/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp index 51171e8d8f..319c5c75f2 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp @@ -1,8 +1,3 @@ -///|/ Copyright (c) Prusa Research 2019 - 2023 Oleksandra Iushchenko @YuSanka, Enrico Turri @enricoturri1966, Lukáš Matěna @lukasmatena, David Kocík @kocikdav, Filip Sykala @Jony01, Vojtěch Bubník @bubnikv, Lukáš Hejl @hejllukas -///|/ Copyright (c) 2019 John Drake @foxox -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "libslic3r/libslic3r.h" #include "GLGizmosManager.hpp" #include "slic3r/GUI/GLCanvas3D.hpp" diff --git a/src/slic3r/GUI/Gizmos/GLGizmosManager.hpp b/src/slic3r/GUI/Gizmos/GLGizmosManager.hpp index fd444f4698..4511f02119 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmosManager.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmosManager.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2019 - 2022 Enrico Turri @enricoturri1966, Lukáš Matěna @lukasmatena, Oleksandra Iushchenko @YuSanka, Filip Sykala @Jony01, David Kocík @kocikdav, Lukáš Hejl @hejllukas, Vojtěch Bubník @bubnikv -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_GUI_GLGizmosManager_hpp_ #define slic3r_GUI_GLGizmosManager_hpp_ diff --git a/src/slic3r/GUI/Gizmos/GizmoObjectManipulation.cpp b/src/slic3r/GUI/Gizmos/GizmoObjectManipulation.cpp index 1aab82865c..a1490ebc70 100644 --- a/src/slic3r/GUI/Gizmos/GizmoObjectManipulation.cpp +++ b/src/slic3r/GUI/Gizmos/GizmoObjectManipulation.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2018 - 2023 Enrico Turri @enricoturri1966, Oleksandra Iushchenko @YuSanka, Lukáš Matěna @lukasmatena, Pavel Mikuš @Godrak, Filip Sykala @Jony01, Vojtěch Bubník @bubnikv, Vojtěch Král @vojtechkral -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "slic3r/GUI/ImGuiWrapper.hpp" #include diff --git a/src/slic3r/GUI/ImGuiWrapper.cpp b/src/slic3r/GUI/ImGuiWrapper.cpp index 58a97fceb0..6240d73c30 100644 --- a/src/slic3r/GUI/ImGuiWrapper.cpp +++ b/src/slic3r/GUI/ImGuiWrapper.cpp @@ -1,8 +1,3 @@ -///|/ Copyright (c) Prusa Research 2018 - 2023 Oleksandra Iushchenko @YuSanka, Lukáš Matěna @lukasmatena, Enrico Turri @enricoturri1966, David Kocík @kocikdav, Vojtěch Bubník @bubnikv, Tomáš Mészáros @tamasmeszaros, Filip Sykala @Jony01, Lukáš Hejl @hejllukas, Vojtěch Král @vojtechkral -///|/ Copyright (c) 2019 Jason Tibbitts @jasontibbitts -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "ImGuiWrapper.hpp" #include diff --git a/src/slic3r/GUI/ImGuiWrapper.hpp b/src/slic3r/GUI/ImGuiWrapper.hpp index c188f61cc6..ec492ed58c 100644 --- a/src/slic3r/GUI/ImGuiWrapper.hpp +++ b/src/slic3r/GUI/ImGuiWrapper.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2018 - 2023 Oleksandra Iushchenko @YuSanka, Enrico Turri @enricoturri1966, Filip Sykala @Jony01, Lukáš Matěna @lukasmatena, Vojtěch Bubník @bubnikv, Lukáš Hejl @hejllukas, David Kocík @kocikdav, Vojtěch Král @vojtechkral -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_ImGuiWrapper_hpp_ #define slic3r_ImGuiWrapper_hpp_ diff --git a/src/slic3r/GUI/Jobs/ArrangeJob.cpp b/src/slic3r/GUI/Jobs/ArrangeJob.cpp index c7a9a016c8..6648b0e632 100644 --- a/src/slic3r/GUI/Jobs/ArrangeJob.cpp +++ b/src/slic3r/GUI/Jobs/ArrangeJob.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2020 - 2023 Tomáš Mészáros @tamasmeszaros, Enrico Turri @enricoturri1966, Vojtěch Bubník @bubnikv, David Kocík @kocikdav, Filip Sykala @Jony01, Lukáš Matěna @lukasmatena -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "ArrangeJob.hpp" #include "libslic3r/BuildVolume.hpp" diff --git a/src/slic3r/GUI/Jobs/ArrangeJob.hpp b/src/slic3r/GUI/Jobs/ArrangeJob.hpp index 005d386fee..0c9f03de01 100644 --- a/src/slic3r/GUI/Jobs/ArrangeJob.hpp +++ b/src/slic3r/GUI/Jobs/ArrangeJob.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2020 - 2023 Tomáš Mészáros @tamasmeszaros, David Kocík @kocikdav -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef ARRANGEJOB_HPP #define ARRANGEJOB_HPP diff --git a/src/slic3r/GUI/Jobs/BoostThreadWorker.cpp b/src/slic3r/GUI/Jobs/BoostThreadWorker.cpp index f0ebf7baf4..57c9a62beb 100644 --- a/src/slic3r/GUI/Jobs/BoostThreadWorker.cpp +++ b/src/slic3r/GUI/Jobs/BoostThreadWorker.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2021 Tomáš Mészáros @tamasmeszaros -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include #include "BoostThreadWorker.hpp" diff --git a/src/slic3r/GUI/Jobs/BoostThreadWorker.hpp b/src/slic3r/GUI/Jobs/BoostThreadWorker.hpp index a4176dd094..b0b97e3894 100644 --- a/src/slic3r/GUI/Jobs/BoostThreadWorker.hpp +++ b/src/slic3r/GUI/Jobs/BoostThreadWorker.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2021 Tomáš Mészáros @tamasmeszaros -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef BOOSTTHREADWORKER_HPP #define BOOSTTHREADWORKER_HPP diff --git a/src/slic3r/GUI/Jobs/BusyCursorJob.hpp b/src/slic3r/GUI/Jobs/BusyCursorJob.hpp index e2067fbe6a..8504d1eb93 100644 --- a/src/slic3r/GUI/Jobs/BusyCursorJob.hpp +++ b/src/slic3r/GUI/Jobs/BusyCursorJob.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2021 - 2022 Tomáš Mészáros @tamasmeszaros -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef BUSYCURSORJOB_HPP #define BUSYCURSORJOB_HPP diff --git a/src/slic3r/GUI/Jobs/CreateFontNameImageJob.cpp b/src/slic3r/GUI/Jobs/CreateFontNameImageJob.cpp index 3c080148f1..417eb0ea4c 100644 --- a/src/slic3r/GUI/Jobs/CreateFontNameImageJob.cpp +++ b/src/slic3r/GUI/Jobs/CreateFontNameImageJob.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2022 Filip Sykala @Jony01 -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "CreateFontNameImageJob.hpp" #include "libslic3r/Emboss.hpp" diff --git a/src/slic3r/GUI/Jobs/CreateFontNameImageJob.hpp b/src/slic3r/GUI/Jobs/CreateFontNameImageJob.hpp index b725992b35..0bc6ebe9f7 100644 --- a/src/slic3r/GUI/Jobs/CreateFontNameImageJob.hpp +++ b/src/slic3r/GUI/Jobs/CreateFontNameImageJob.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2022 Filip Sykala @Jony01 -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_CreateFontNameImageJob_hpp_ #define slic3r_CreateFontNameImageJob_hpp_ diff --git a/src/slic3r/GUI/Jobs/CreateFontStyleImagesJob.cpp b/src/slic3r/GUI/Jobs/CreateFontStyleImagesJob.cpp index e429aca43b..8b25b183dc 100644 --- a/src/slic3r/GUI/Jobs/CreateFontStyleImagesJob.cpp +++ b/src/slic3r/GUI/Jobs/CreateFontStyleImagesJob.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2022 Filip Sykala @Jony01 -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "CreateFontStyleImagesJob.hpp" // rasterization of ExPoly diff --git a/src/slic3r/GUI/Jobs/CreateFontStyleImagesJob.hpp b/src/slic3r/GUI/Jobs/CreateFontStyleImagesJob.hpp index af7a2f827b..b8c2757a62 100644 --- a/src/slic3r/GUI/Jobs/CreateFontStyleImagesJob.hpp +++ b/src/slic3r/GUI/Jobs/CreateFontStyleImagesJob.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2022 Filip Sykala @Jony01 -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_CreateFontStyleImagesJob_hpp_ #define slic3r_CreateFontStyleImagesJob_hpp_ diff --git a/src/slic3r/GUI/Jobs/EmbossJob.cpp b/src/slic3r/GUI/Jobs/EmbossJob.cpp index 6b71b22f88..a6e7dd6c6d 100644 --- a/src/slic3r/GUI/Jobs/EmbossJob.cpp +++ b/src/slic3r/GUI/Jobs/EmbossJob.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2021 - 2023 Oleksandra Iushchenko @YuSanka, Filip Sykala @Jony01 -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "EmbossJob.hpp" #include diff --git a/src/slic3r/GUI/Jobs/EmbossJob.hpp b/src/slic3r/GUI/Jobs/EmbossJob.hpp index 46061f3bce..a9160619ca 100644 --- a/src/slic3r/GUI/Jobs/EmbossJob.hpp +++ b/src/slic3r/GUI/Jobs/EmbossJob.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2021 - 2022 Oleksandra Iushchenko @YuSanka, Filip Sykala @Jony01 -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_EmbossJob_hpp_ #define slic3r_EmbossJob_hpp_ diff --git a/src/slic3r/GUI/Jobs/FillBedJob.cpp b/src/slic3r/GUI/Jobs/FillBedJob.cpp index d671a70c91..e594f98ae1 100644 --- a/src/slic3r/GUI/Jobs/FillBedJob.cpp +++ b/src/slic3r/GUI/Jobs/FillBedJob.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2020 - 2023 Tomáš Mészáros @tamasmeszaros -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "FillBedJob.hpp" #include "libslic3r/Model.hpp" diff --git a/src/slic3r/GUI/Jobs/FillBedJob.hpp b/src/slic3r/GUI/Jobs/FillBedJob.hpp index 76413434a2..20672e0f37 100644 --- a/src/slic3r/GUI/Jobs/FillBedJob.hpp +++ b/src/slic3r/GUI/Jobs/FillBedJob.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2020 - 2023 Tomáš Mészáros @tamasmeszaros, David Kocík @kocikdav -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef FILLBEDJOB_HPP #define FILLBEDJOB_HPP diff --git a/src/slic3r/GUI/Jobs/Job.hpp b/src/slic3r/GUI/Jobs/Job.hpp index 55c6196c35..4058acf03f 100644 --- a/src/slic3r/GUI/Jobs/Job.hpp +++ b/src/slic3r/GUI/Jobs/Job.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2019 - 2021 Tomáš Mészáros @tamasmeszaros, David Kocík @kocikdav, Vojtěch Bubník @bubnikv -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef JOB_HPP #define JOB_HPP diff --git a/src/slic3r/GUI/Jobs/NotificationProgressIndicator.cpp b/src/slic3r/GUI/Jobs/NotificationProgressIndicator.cpp index 318cc066c4..bbe5898736 100644 --- a/src/slic3r/GUI/Jobs/NotificationProgressIndicator.cpp +++ b/src/slic3r/GUI/Jobs/NotificationProgressIndicator.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2021 Tomáš Mészáros @tamasmeszaros -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "NotificationProgressIndicator.hpp" #include "slic3r/GUI/NotificationManager.hpp" diff --git a/src/slic3r/GUI/Jobs/NotificationProgressIndicator.hpp b/src/slic3r/GUI/Jobs/NotificationProgressIndicator.hpp index 44fa41797a..cc09876e31 100644 --- a/src/slic3r/GUI/Jobs/NotificationProgressIndicator.hpp +++ b/src/slic3r/GUI/Jobs/NotificationProgressIndicator.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2021 Tomáš Mészáros @tamasmeszaros -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef NOTIFICATIONPROGRESSINDICATOR_HPP #define NOTIFICATIONPROGRESSINDICATOR_HPP diff --git a/src/slic3r/GUI/Jobs/PlaterWorker.hpp b/src/slic3r/GUI/Jobs/PlaterWorker.hpp index 7f155bd69c..2192d3b2ea 100644 --- a/src/slic3r/GUI/Jobs/PlaterWorker.hpp +++ b/src/slic3r/GUI/Jobs/PlaterWorker.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2021 - 2023 Oleksandra Iushchenko @YuSanka, Tomáš Mészáros @tamasmeszaros, David Kocík @kocikdav -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef PLATERWORKER_HPP #define PLATERWORKER_HPP diff --git a/src/slic3r/GUI/Jobs/PrintJob.cpp b/src/slic3r/GUI/Jobs/PrintJob.cpp index 0e7af93f36..338aca9842 100644 --- a/src/slic3r/GUI/Jobs/PrintJob.cpp +++ b/src/slic3r/GUI/Jobs/PrintJob.cpp @@ -497,7 +497,12 @@ void PrintJob::process(Ctl &ctl) //use ftp only - if (!wxGetApp().app_config->get("lan_mode_only").empty() && wxGetApp().app_config->get("lan_mode_only") == "1") { + if (m_print_type == "from_sdcard_view") { + BOOST_LOG_TRIVIAL(info) << "print_job: try to send with cloud, model is sdcard view"; + ctl.update_status(curr_percent, _u8L("Sending print job through cloud service")); + result = m_agent->start_sdcard_print(params, update_fn, cancel_fn); + } + else if (!wxGetApp().app_config->get("lan_mode_only").empty() && wxGetApp().app_config->get("lan_mode_only") == "1") { if (params.password.empty() || params.dev_ip.empty()) { error_text = wxString::Format("Access code:%s Ip address:%s", params.password, params.dev_ip); diff --git a/src/slic3r/GUI/Jobs/ProgressIndicator.hpp b/src/slic3r/GUI/Jobs/ProgressIndicator.hpp index 4f7ec5d9ff..c70d53bf2b 100644 --- a/src/slic3r/GUI/Jobs/ProgressIndicator.hpp +++ b/src/slic3r/GUI/Jobs/ProgressIndicator.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2018 - 2020 Tomáš Mészáros @tamasmeszaros, Vojtěch Bubník @bubnikv -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef IPROGRESSINDICATOR_HPP #define IPROGRESSINDICATOR_HPP diff --git a/src/slic3r/GUI/Jobs/RotoptimizeJob.cpp b/src/slic3r/GUI/Jobs/RotoptimizeJob.cpp index eb5140ec12..263273984b 100644 --- a/src/slic3r/GUI/Jobs/RotoptimizeJob.cpp +++ b/src/slic3r/GUI/Jobs/RotoptimizeJob.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2020 - 2023 Oleksandra Iushchenko @YuSanka, Tomáš Mészáros @tamasmeszaros, Lukáš Matěna @lukasmatena -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "RotoptimizeJob.hpp" #include "libslic3r/MTUtils.hpp" diff --git a/src/slic3r/GUI/Jobs/RotoptimizeJob.hpp b/src/slic3r/GUI/Jobs/RotoptimizeJob.hpp index 6f6830a9bf..5e462c6cc1 100644 --- a/src/slic3r/GUI/Jobs/RotoptimizeJob.hpp +++ b/src/slic3r/GUI/Jobs/RotoptimizeJob.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2020 - 2023 Oleksandra Iushchenko @YuSanka, Tomáš Mészáros @tamasmeszaros, David Kocík @kocikdav -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef ROTOPTIMIZEJOB_HPP #define ROTOPTIMIZEJOB_HPP diff --git a/src/slic3r/GUI/Jobs/SLAImportDialog.hpp b/src/slic3r/GUI/Jobs/SLAImportDialog.hpp index 9899fccefe..5bb101b74a 100644 --- a/src/slic3r/GUI/Jobs/SLAImportDialog.hpp +++ b/src/slic3r/GUI/Jobs/SLAImportDialog.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2021 - 2023 Oleksandra Iushchenko @YuSanka, Tomáš Mészáros @tamasmeszaros -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef SLAIMPORTDIALOG_HPP #define SLAIMPORTDIALOG_HPP diff --git a/src/slic3r/GUI/Jobs/SLAImportJob.cpp b/src/slic3r/GUI/Jobs/SLAImportJob.cpp index 2bb7915ade..1ae9c915fe 100644 --- a/src/slic3r/GUI/Jobs/SLAImportJob.cpp +++ b/src/slic3r/GUI/Jobs/SLAImportJob.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2020 - 2023 Oleksandra Iushchenko @YuSanka, Lukáš Matěna @lukasmatena, Tomáš Mészáros @tamasmeszaros, Vojtěch Bubník @bubnikv, David Kocík @kocikdav -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "SLAImportJob.hpp" #include "libslic3r/Format/SL1.hpp" diff --git a/src/slic3r/GUI/Jobs/SLAImportJob.hpp b/src/slic3r/GUI/Jobs/SLAImportJob.hpp index 695aa40161..4ea25bc752 100644 --- a/src/slic3r/GUI/Jobs/SLAImportJob.hpp +++ b/src/slic3r/GUI/Jobs/SLAImportJob.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2020 - 2022 Tomáš Mészáros @tamasmeszaros, David Kocík @kocikdav -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef SLAIMPORTJOB_HPP #define SLAIMPORTJOB_HPP diff --git a/src/slic3r/GUI/Jobs/ThreadSafeQueue.hpp b/src/slic3r/GUI/Jobs/ThreadSafeQueue.hpp index 94c63a0fd5..3ee1672bde 100644 --- a/src/slic3r/GUI/Jobs/ThreadSafeQueue.hpp +++ b/src/slic3r/GUI/Jobs/ThreadSafeQueue.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2021 Tomáš Mészáros @tamasmeszaros -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef THREADSAFEQUEUE_HPP #define THREADSAFEQUEUE_HPP diff --git a/src/slic3r/GUI/Jobs/Worker.hpp b/src/slic3r/GUI/Jobs/Worker.hpp index 69ec6f0b86..0bc7bc0863 100644 --- a/src/slic3r/GUI/Jobs/Worker.hpp +++ b/src/slic3r/GUI/Jobs/Worker.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2021 Tomáš Mészáros @tamasmeszaros -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef PRUSALSICER_WORKER_HPP #define PRUSALSICER_WORKER_HPP diff --git a/src/slic3r/GUI/KBShortcutsDialog.cpp b/src/slic3r/GUI/KBShortcutsDialog.cpp index 357a628cc7..bda65536b5 100644 --- a/src/slic3r/GUI/KBShortcutsDialog.cpp +++ b/src/slic3r/GUI/KBShortcutsDialog.cpp @@ -196,7 +196,12 @@ void KBShortcutsDialog::fill_shortcuts() // Configuration { ctrl + "P", L("Preferences") }, //3D control +#ifdef __APPLE__ + { ctrl + "Shift+M", L("Show/Hide 3Dconnexion devices settings dialog") }, +#else { ctrl + "M", L("Show/Hide 3Dconnexion devices settings dialog") }, +#endif // __APPLE + // Switch table page { ctrl + "Tab", L("Switch table page")}, //DEL diff --git a/src/slic3r/GUI/MainFrame.cpp b/src/slic3r/GUI/MainFrame.cpp index 24bc9423cb..0689c5a7d3 100644 --- a/src/slic3r/GUI/MainFrame.cpp +++ b/src/slic3r/GUI/MainFrame.cpp @@ -1,14 +1,3 @@ -///|/ Copyright (c) Prusa Research 2018 - 2023 Oleksandra Iushchenko @YuSanka, Lukáš Matěna @lukasmatena, David Kocík @kocikdav, Vojtěch Bubník @bubnikv, Tomáš Mészáros @tamasmeszaros, Enrico Turri @enricoturri1966, Filip Sykala @Jony01, Lukáš Hejl @hejllukas, Vojtěch Král @vojtechkral -///|/ Copyright (c) 2021 Jason Scurtu @xarbit -///|/ Copyright (c) 2019 John Drake @foxox -///|/ -///|/ ported from lib/Slic3r/GUI/MainFrame.pm: -///|/ Copyright (c) Prusa Research 2016 - 2019 Vojtěch Bubník @bubnikv, Vojtěch Král @vojtechkral, Oleksandra Iushchenko @YuSanka, Tomáš Mészáros @tamasmeszaros, Enrico Turri @enricoturri1966 -///|/ Copyright (c) Slic3r 2014 - 2016 Alessandro Ranellucci @alranel -///|/ Copyright (c) 2014 Mark Hindess -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "MainFrame.hpp" #include @@ -543,7 +532,7 @@ DPIFrame(NULL, wxID_ANY, "", wxDefaultPosition, wxDefaultSize, BORDERLESS_FRAME_ if (evt.CmdDown() && (evt.GetKeyCode() == 'H')) { //call parent_menu hide behavior return;} - if (evt.CmdDown() && (evt.GetKeyCode() == 'M')) { + if (evt.CmdDown() && (!evt.ShiftDown()) && (evt.GetKeyCode() == 'M')) { this->Iconize(); return; } @@ -1626,7 +1615,7 @@ wxBoxSizer* MainFrame::create_side_tools() SidePopup* p = new SidePopup(this); if (wxGetApp().preset_bundle - && !wxGetApp().preset_bundle->use_bbl_network()) { + && !wxGetApp().preset_bundle->is_bbl_vendor()) { // ThirdParty Buttons SideButton* export_gcode_btn = new SideButton(p, _L("Export G-code file"), ""); export_gcode_btn->SetCornerRadius(0); @@ -1726,10 +1715,32 @@ wxBoxSizer* MainFrame::create_side_tools() p->Dismiss(); }); + bool support_send = true; + bool support_print_all = true; + + const auto preset_bundle = wxGetApp().preset_bundle; + if (preset_bundle) { + if (preset_bundle->use_bbl_network()) { + // BBL network support everything + } else { + support_send = false; // All 3rd print hosts do not have the send options + + auto cfg = preset_bundle->printers.get_edited_preset().config; + const auto host_type = cfg.option>("host_type")->value; + + // Only simply print support uploading all plates + support_print_all = host_type == PrintHostType::htSimplyPrint; + } + } + p->append_button(print_plate_btn); - p->append_button(print_all_btn); - p->append_button(send_to_printer_btn); - p->append_button(send_to_printer_all_btn); + if (support_print_all) { + p->append_button(print_all_btn); + } + if (support_send) { + p->append_button(send_to_printer_btn); + p->append_button(send_to_printer_all_btn); + } if (enable_multi_machine) { SideButton* print_multi_machine_btn = new SideButton(p, _L("Send to Multi-device"), ""); print_multi_machine_btn->SetCornerRadius(0); @@ -3647,14 +3658,14 @@ void MainFrame::load_printer_url(wxString url, wxString apikey) void MainFrame::load_printer_url() { PresetBundle &preset_bundle = *wxGetApp().preset_bundle; - if (preset_bundle.use_bbl_network()) + if (preset_bundle.use_bbl_device_tab()) return; auto cfg = preset_bundle.printers.get_edited_preset().config; wxString url = cfg.opt_string("print_host_webui").empty() ? cfg.opt_string("print_host") : cfg.opt_string("print_host_webui"); wxString apikey; - if (cfg.has("printhost_apikey") && (cfg.option>("host_type")->value == htPrusaLink || - cfg.option>("host_type")->value == htPrusaConnect)) + const auto host_type = cfg.option>("host_type")->value; + if (cfg.has("printhost_apikey") && (host_type == htPrusaLink || host_type == htPrusaConnect)) apikey = cfg.opt_string("printhost_apikey"); if (!url.empty()) { if (!url.Lower().starts_with("http")) diff --git a/src/slic3r/GUI/MeshUtils.cpp b/src/slic3r/GUI/MeshUtils.cpp index ac772953ee..85e34c503e 100644 --- a/src/slic3r/GUI/MeshUtils.cpp +++ b/src/slic3r/GUI/MeshUtils.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2019 - 2023 Lukáš Matěna @lukasmatena, Oleksandra Iushchenko @YuSanka, Enrico Turri @enricoturri1966, Tomáš Mészáros @tamasmeszaros, Filip Sykala @Jony01, Lukáš Hejl @hejllukas, Vojtěch Bubník @bubnikv -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "MeshUtils.hpp" #include "libslic3r/Tesselate.hpp" diff --git a/src/slic3r/GUI/MeshUtils.hpp b/src/slic3r/GUI/MeshUtils.hpp index c3e0b4247d..679c0e2a97 100644 --- a/src/slic3r/GUI/MeshUtils.hpp +++ b/src/slic3r/GUI/MeshUtils.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2019 - 2023 Lukáš Matěna @lukasmatena, Oleksandra Iushchenko @YuSanka, Tomáš Mészáros @tamasmeszaros, Enrico Turri @enricoturri1966, Lukáš Hejl @hejllukas, Filip Sykala @Jony01, Vojtěch Bubník @bubnikv -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_MeshUtils_hpp_ #define slic3r_MeshUtils_hpp_ diff --git a/src/slic3r/GUI/MsgDialog.cpp b/src/slic3r/GUI/MsgDialog.cpp index 8eb1970627..3d67c5c2e5 100644 --- a/src/slic3r/GUI/MsgDialog.cpp +++ b/src/slic3r/GUI/MsgDialog.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2018 - 2023 Oleksandra Iushchenko @YuSanka, Lukáš Matěna @lukasmatena, Vojtěch Bubník @bubnikv, Enrico Turri @enricoturri1966, David Kocík @kocikdav, Lukáš Hejl @hejllukas, Vojtěch Král @vojtechkral -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "MsgDialog.hpp" #include diff --git a/src/slic3r/GUI/MultiMachine.cpp b/src/slic3r/GUI/MultiMachine.cpp index fc7f91daa7..220c3cab77 100644 --- a/src/slic3r/GUI/MultiMachine.cpp +++ b/src/slic3r/GUI/MultiMachine.cpp @@ -160,7 +160,7 @@ wxString DeviceItem::get_state_device() str_state_device.push_back(_L("Printing Finish")); str_state_device.push_back(_L("Printing Failed")); str_state_device.push_back(_L("Printing")); - str_state_device.push_back(_L("PrintingPause")); + str_state_device.push_back(_L("Printing Pause")); str_state_device.push_back(_L("Prepare")); str_state_device.push_back(_L("Slicing")); str_state_device.push_back(_L("syncing")); diff --git a/src/slic3r/GUI/MultiMachinePage.cpp b/src/slic3r/GUI/MultiMachinePage.cpp index ae13c30840..9aed022ba3 100644 --- a/src/slic3r/GUI/MultiMachinePage.cpp +++ b/src/slic3r/GUI/MultiMachinePage.cpp @@ -316,7 +316,7 @@ MultiMachinePickPage::MultiMachinePickPage(Plater* plater /*= nullptr*/) auto line_top = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxSize(-1, 1), wxTAB_TRAVERSAL); line_top->SetBackgroundColour(wxColour(166, 169, 170)); - m_label = new Label(this, _L("Select connected printetrs (0/6)")); + m_label = new Label(this, _L("Select connected printers (0/6)")); scroll_macine_list = new wxScrolledWindow(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxVSCROLL); scroll_macine_list->SetSize(wxSize(FromDIP(400), FromDIP(10 * 30))); @@ -372,7 +372,7 @@ void MultiMachinePickPage::update_selected_count() } m_selected_count = count; - m_label->SetLabel(wxString::Format(_L("Select Connected Printetrs (%d/6)"), m_selected_count)); + m_label->SetLabel(wxString::Format(_L("Select Connected Printers (%d/6)"), m_selected_count)); if (m_selected_count > PICK_DEVICE_MAX) { MessageDialog msg_wingow(nullptr, wxString::Format(_L("The maximum number of printers that can be selected is %d"), PICK_DEVICE_MAX), "", wxAPPLY | wxOK); diff --git a/src/slic3r/GUI/NotificationManager.hpp b/src/slic3r/GUI/NotificationManager.hpp index d971fd2d74..dce17f6080 100644 --- a/src/slic3r/GUI/NotificationManager.hpp +++ b/src/slic3r/GUI/NotificationManager.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2020 - 2023 David Kocík @kocikdav, Lukáš Matěna @lukasmatena, Pavel Mikuš @Godrak, Filip Sykala @Jony01, Vojtěch Bubník @bubnikv, Tomáš Mészáros @tamasmeszaros, Lukáš Hejl @hejllukas, Oleksandra Iushchenko @YuSanka, Enrico Turri @enricoturri1966 -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_GUI_NotificationManager_hpp_ #define slic3r_GUI_NotificationManager_hpp_ diff --git a/src/slic3r/GUI/ObjectDataViewModel.cpp b/src/slic3r/GUI/ObjectDataViewModel.cpp index efa8e94b26..cc28670443 100644 --- a/src/slic3r/GUI/ObjectDataViewModel.cpp +++ b/src/slic3r/GUI/ObjectDataViewModel.cpp @@ -1,8 +1,3 @@ -///|/ Copyright (c) Prusa Research 2018 - 2023 Oleksandra Iushchenko @YuSanka, Lukáš Matěna @lukasmatena, Vojtěch Bubník @bubnikv, Enrico Turri @enricoturri1966, Lukáš Hejl @hejllukas, David Kocík @kocikdav, Tomáš Mészáros @tamasmeszaros, Vojtěch Král @vojtechkral -///|/ Copyright (c) 2020 Gianni Ceccarelli @dakkar -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "ObjectDataViewModel.hpp" #include "slic3r/GUI/wxExtensions.hpp" #include "wxExtensions.hpp" diff --git a/src/slic3r/GUI/ObjectDataViewModel.hpp b/src/slic3r/GUI/ObjectDataViewModel.hpp index 83131dc5e0..5cb4cf5ef2 100644 --- a/src/slic3r/GUI/ObjectDataViewModel.hpp +++ b/src/slic3r/GUI/ObjectDataViewModel.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2018 - 2023 Oleksandra Iushchenko @YuSanka, Lukáš Matěna @lukasmatena, Lukáš Hejl @hejllukas, Enrico Turri @enricoturri1966, David Kocík @kocikdav, Vojtěch Bubník @bubnikv, Tomáš Mészáros @tamasmeszaros, Vojtěch Král @vojtechkral -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_GUI_ObjectDataViewModel_hpp_ #define slic3r_GUI_ObjectDataViewModel_hpp_ diff --git a/src/slic3r/GUI/OpenGLManager.cpp b/src/slic3r/GUI/OpenGLManager.cpp index 12912d750d..45879b9a40 100644 --- a/src/slic3r/GUI/OpenGLManager.cpp +++ b/src/slic3r/GUI/OpenGLManager.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2018 - 2023 Enrico Turri @enricoturri1966, Oleksandra Iushchenko @YuSanka, Lukáš Matěna @lukasmatena, Lukáš Hejl @hejllukas, Vojtěch Bubník @bubnikv, Vojtěch Král @vojtechkral -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "libslic3r/libslic3r.h" #include "OpenGLManager.hpp" diff --git a/src/slic3r/GUI/OpenGLManager.hpp b/src/slic3r/GUI/OpenGLManager.hpp index 65a3dce6e8..52d50a9578 100644 --- a/src/slic3r/GUI/OpenGLManager.hpp +++ b/src/slic3r/GUI/OpenGLManager.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2018 - 2023 Enrico Turri @enricoturri1966, Lukáš Matěna @lukasmatena, Lukáš Hejl @hejllukas, Vojtěch Bubník @bubnikv, Vojtěch Král @vojtechkral -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_OpenGLManager_hpp_ #define slic3r_OpenGLManager_hpp_ diff --git a/src/slic3r/GUI/OptionsGroup.cpp b/src/slic3r/GUI/OptionsGroup.cpp index 64d365c75e..4a1299b119 100644 --- a/src/slic3r/GUI/OptionsGroup.cpp +++ b/src/slic3r/GUI/OptionsGroup.cpp @@ -532,6 +532,9 @@ bool OptionsGroup::activate(std::function throw_if_canceled/* = [](){}*/ return true; } + +void free_window(wxWindow *win); + // delete all controls from the option group void OptionsGroup::clear(bool destroy_custom_ctrl) { @@ -560,8 +563,10 @@ void OptionsGroup::clear(bool destroy_custom_ctrl) if (custom_ctrl) { for (auto const &item : m_fields) { wxWindow* win = item.second.get()->getWindow(); - if (win) + if (win) { + free_window(win); win = nullptr; + } } //BBS: custom_ctrl already destroyed from sizer->clear(), no need to destroy here anymore if (destroy_custom_ctrl) diff --git a/src/slic3r/GUI/PartPlate.cpp b/src/slic3r/GUI/PartPlate.cpp index 6c4a75f06f..c4dfc651b9 100644 --- a/src/slic3r/GUI/PartPlate.cpp +++ b/src/slic3r/GUI/PartPlate.cpp @@ -287,7 +287,7 @@ PrintSequence PartPlate::get_real_print_seq(bool* plate_same_as_global) const if (curr_plate_seq == PrintSequence::ByDefault) { curr_plate_seq = global_print_seq; } - + if(plate_same_as_global) *plate_same_as_global = (curr_plate_seq == global_print_seq); @@ -1674,10 +1674,11 @@ arrangement::ArrangePolygon PartPlate::estimate_wipe_tower_polygon(const Dynamic float w = dynamic_cast(config.option("prime_tower_width"))->value; //float a = dynamic_cast(config.option("wipe_tower_rotation_angle"))->value; float v = dynamic_cast(config.option("prime_volume"))->value; - Vec3d wipe_tower_size = estimate_wipe_tower_size(config, w, v, plate_extruder_size, use_global_objects); + float tower_brim_width = dynamic_cast(config.option("prime_tower_brim_width"))->value; + Vec3d wipe_tower_size = estimate_wipe_tower_size(config, w, v, plate_extruder_size, use_global_objects); int plate_width=m_width, plate_depth=m_depth; float depth = wipe_tower_size(1); - float margin = WIPE_TOWER_MARGIN, wp_brim_width = 0.f; + float margin = WIPE_TOWER_MARGIN + tower_brim_width, wp_brim_width = 0.f; const ConfigOption* wipe_tower_brim_width_opt = config.option("prime_tower_brim_width"); if (wipe_tower_brim_width_opt) { wp_brim_width = wipe_tower_brim_width_opt->getFloat(); @@ -2145,6 +2146,27 @@ int PartPlate::remove_instance(int obj_id, int instance_id) return result; } +BoundingBoxf3 PartPlate::get_objects_bounding_box() +{ + BoundingBoxf3 bbox; + for (std::set>::iterator it = obj_to_instance_set.begin(); it != obj_to_instance_set.end(); ++it) + { + int obj_id = it->first; + int instance_id = it->second; + + if ((obj_id >= 0) && (obj_id < m_model->objects.size())) + { + ModelObject* object = m_model->objects[obj_id]; + if ((instance_id >= 0) && (instance_id < object->instances.size())) + { + BoundingBoxf3 instance_bbox = object->instance_bounding_box(instance_id); + bbox.merge(instance_bbox); + } + } + } + return bbox; +} + //translate instance on the plate void PartPlate::translate_all_instance(Vec3d position) { @@ -4083,6 +4105,7 @@ int PartPlateList::notify_instance_update(int obj_id, int instance_id, bool is_n PartPlate* plate = m_plate_list[obj_id - 1000]; plate->update_slice_result_valid_state( false ); plate->thumbnail_data.reset(); + plate->no_light_thumbnail_data.reset(); plate->top_thumbnail_data.reset(); plate->pick_thumbnail_data.reset(); @@ -4113,12 +4136,14 @@ int PartPlateList::notify_instance_update(int obj_id, int instance_id, bool is_n plate->update_states(); plate->update_slice_result_valid_state(); plate->thumbnail_data.reset(); + plate->no_light_thumbnail_data.reset(); plate->top_thumbnail_data.reset(); plate->pick_thumbnail_data.reset(); return 0; } plate->update_slice_result_valid_state(); plate->thumbnail_data.reset(); + plate->no_light_thumbnail_data.reset(); plate->top_thumbnail_data.reset(); plate->pick_thumbnail_data.reset(); } @@ -4164,7 +4189,7 @@ int PartPlateList::notify_instance_update(int obj_id, int instance_id, bool is_n { //found a new plate, add it to plate plate->add_instance(obj_id, instance_id, false, &boundingbox); - + // spiral mode, update object setting if (plate->config()->has("spiral_mode") && plate->config()->opt_bool("spiral_mode") && !is_object_config_compatible_with_spiral_vase(object)) { if (!is_new) { @@ -4180,6 +4205,7 @@ int PartPlateList::notify_instance_update(int obj_id, int instance_id, bool is_n plate->update_slice_result_valid_state(); plate->thumbnail_data.reset(); + plate->no_light_thumbnail_data.reset(); plate->top_thumbnail_data.reset(); plate->pick_thumbnail_data.reset(); BOOST_LOG_TRIVIAL(debug) << __FUNCTION__ << boost::format(": add it to new plate %1%") % i; @@ -4217,6 +4243,7 @@ int PartPlateList::notify_instance_removed(int obj_id, int instance_id) plate->remove_instance(obj_id, instance_to_delete); plate->update_slice_result_valid_state(); plate->thumbnail_data.reset(); + plate->no_light_thumbnail_data.reset(); plate->top_thumbnail_data.reset(); plate->pick_thumbnail_data.reset(); } @@ -5141,6 +5168,8 @@ int PartPlateList::store_to_3mf_structure(PlateDataPtrs& plate_data_list, bool w %(i+1) %plate_data_item->plate_thumbnail.width %plate_data_item->plate_thumbnail.height %plate_data_item->plate_thumbnail.pixels.size(); plate_data_item->config.apply(*m_plate_list[i]->config()); + if (m_plate_list[i]->no_light_thumbnail_data.is_valid()) + plate_data_item->no_light_thumbnail_file = "valid_no_light"; if (m_plate_list[i]->top_thumbnail_data.is_valid()) plate_data_item->top_file = "valid_top"; if (m_plate_list[i]->pick_thumbnail_data.is_valid()) @@ -5256,6 +5285,13 @@ int PartPlateList::load_from_3mf_structure(PlateDataPtrs& plate_data_list) } } + if (m_plater && !plate_data_list[i]->no_light_thumbnail_file.empty()) { + if (boost::filesystem::exists(plate_data_list[i]->no_light_thumbnail_file)) { + BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format(": plate %1%, load no_light_thumbnail_file from %2%.")%(i+1) %plate_data_list[i]->no_light_thumbnail_file; + m_plate_list[index]->load_thumbnail_data(plate_data_list[i]->no_light_thumbnail_file, m_plate_list[index]->no_light_thumbnail_data); + } + } + /*if (m_plater && !plate_data_list[i]->pattern_file.empty()) { if (boost::filesystem::exists(plate_data_list[i]->pattern_file)) { //no need to load pattern data currently diff --git a/src/slic3r/GUI/PartPlate.hpp b/src/slic3r/GUI/PartPlate.hpp index 530b994181..e0b0e90ace 100644 --- a/src/slic3r/GUI/PartPlate.hpp +++ b/src/slic3r/GUI/PartPlate.hpp @@ -246,6 +246,7 @@ public: //static const int plate_x_offset = 20; //mm //static const double plate_x_gap = 0.2; ThumbnailData thumbnail_data; + ThumbnailData no_light_thumbnail_data; static const int plate_thumbnail_width = 512; static const int plate_thumbnail_height = 512; @@ -295,6 +296,7 @@ public: ModelObjectPtrs get_objects() { return m_model->objects; } ModelObjectPtrs get_objects_on_this_plate(); ModelInstance* get_instance(int obj_id, int instance_id); + BoundingBoxf3 get_objects_bounding_box(); Vec3d get_origin() { return m_origin; } Vec3d estimate_wipe_tower_size(const DynamicPrintConfig & config, const double w, const double d, int plate_extruder_size = 0, bool use_global_objects = false) const; diff --git a/src/slic3r/GUI/PhysicalPrinterDialog.cpp b/src/slic3r/GUI/PhysicalPrinterDialog.cpp index 6ee9b5643d..bf57714ffa 100644 --- a/src/slic3r/GUI/PhysicalPrinterDialog.cpp +++ b/src/slic3r/GUI/PhysicalPrinterDialog.cpp @@ -130,6 +130,8 @@ void PhysicalPrinterDialog::build_printhost_settings(ConfigOptionsGroup* m_optgr this->update_printhost_buttons(); if (opt_key == "printhost_port") this->update_ports(); + if (opt_key == "bbl_use_print_host_webui") + this->update_webui(); }; m_optgroup->append_single_option_line("host_type"); @@ -259,6 +261,19 @@ void PhysicalPrinterDialog::build_printhost_settings(ConfigOptionsGroup* m_optgr option.opt.width = Field::def_width_wider(); m_optgroup->append_single_option_line(option); + { + // For bbl printers, we build a fake option to control whether the original device tab should be used + ConfigOptionDef def; + def.type = coBool; + def.width = Field::def_width(); + def.label = L("View print host webui in Device tab"); + def.tooltip = L("Replace the BambuLab's device tab with print host webui"); + def.set_default_value(new ConfigOptionBool(false)); + + auto option = Option(def, "bbl_use_print_host_webui"); + m_optgroup->append_single_option_line(option); + } + m_optgroup->append_single_option_line("printhost_authorization_type"); option = m_optgroup->get_option("printhost_apikey"); @@ -408,6 +423,30 @@ void PhysicalPrinterDialog::update_ports() { } } +void PhysicalPrinterDialog::update_webui() +{ + const PrinterTechnology tech = Preset::printer_technology(*m_config); + if (tech == ptFFF) { + const auto opt = m_config->option>("host_type"); + if (opt->value == htSimplyPrint) { + bool bbl_use_print_host_webui = false; + if (Field* printhost_webui_field = m_optgroup->get_field("bbl_use_print_host_webui"); printhost_webui_field) { + if (CheckBox* temp = dynamic_cast(printhost_webui_field); temp) { + bbl_use_print_host_webui = boost::any_cast(temp->get_value()); + } + } + + const std::string v = bbl_use_print_host_webui ? "https://simplyprint.io/panel" : ""; + if (Field* printhost_webui_field = m_optgroup->get_field("print_host_webui"); printhost_webui_field) { + if (wxTextCtrl* temp = dynamic_cast(printhost_webui_field)->text_ctrl(); temp) { + temp->SetValue(v); + } + } + m_config->opt_string("print_host_webui") = v; + } + } +} + void PhysicalPrinterDialog::update_printhost_buttons() { std::unique_ptr host(PrintHost::get_print_host(m_config)); @@ -511,7 +550,8 @@ void PhysicalPrinterDialog::update(bool printer_change) m_optgroup->show_field("host_type"); m_optgroup->enable_field("print_host"); - m_optgroup->enable_field("print_host_webui"); + m_optgroup->show_field("print_host_webui"); + m_optgroup->hide_field("bbl_use_print_host_webui"); m_optgroup->enable_field("printhost_cafile"); m_optgroup->enable_field("printhost_ssl_ignore_revoke"); if (m_printhost_cafile_browse_btn) @@ -523,22 +563,12 @@ void PhysicalPrinterDialog::update(bool printer_change) const auto current_host = temp->GetValue(); if (current_host == L"https://connect.prusa3d.com" || current_host == L"https://app.obico.io" || - current_host == "https://simplyprint.io") { + current_host == "https://simplyprint.io" || current_host == "https://simplyprint.io/panel") { temp->SetValue(wxString()); m_config->opt_string("print_host") = ""; } } } - if (Field* printhost_webui_field = m_optgroup->get_field("print_host_webui"); printhost_webui_field) { - if (wxTextCtrl* temp = dynamic_cast(printhost_webui_field)->text_ctrl(); temp) { - const auto current_host = temp->GetValue(); - if (current_host == "https://simplyprint.io/panel") { - temp->SetValue(wxString()); - m_config->opt_string("print_host_webui") = ""; - } - } - } - if (opt->value == htPrusaLink) { // PrusaConnect does NOT allow http digest m_optgroup->show_field("printhost_authorization_type"); AuthorizationType auth_type = m_config->option>("printhost_authorization_type")->value; @@ -571,7 +601,7 @@ void PhysicalPrinterDialog::update(bool printer_change) if (Field* printhost_field = m_optgroup->get_field("print_host"); printhost_field) { if (wxTextCtrl* temp = dynamic_cast(printhost_field)->text_ctrl(); temp && temp->GetValue().IsEmpty()) { temp->SetValue(L"https://connect.prusa3d.com"); - } + m_config->opt_string("print_host") = "https://connect.prusa3d.com";} } } else if (opt->value == htObico) { // automatically show default obico address if (Field* printhost_field = m_optgroup->get_field("print_host"); printhost_field) { @@ -585,17 +615,33 @@ void PhysicalPrinterDialog::update(bool printer_change) if (Field* printhost_field = m_optgroup->get_field("print_host"); printhost_field) { printhost_field->disable(); if (wxTextCtrl* temp = dynamic_cast(printhost_field)->text_ctrl(); temp && temp->GetValue().IsEmpty()) { - temp->SetValue("https://simplyprint.io"); - } - m_config->opt_string("print_host") = "https://simplyprint.io"; - } - if (Field* printhost_webui_field = m_optgroup->get_field("print_host_webui"); printhost_webui_field) { - printhost_webui_field->disable(); - if (wxTextCtrl* temp = dynamic_cast(printhost_webui_field)->text_ctrl(); temp && temp->GetValue().IsEmpty()) { temp->SetValue("https://simplyprint.io/panel"); } + m_config->opt_string("print_host") = "https://simplyprint.io/panel"; + } + + const auto current_webui = m_config->opt_string("print_host_webui"); + if (!current_webui.empty()) { + if (Field* printhost_webui_field = m_optgroup->get_field("print_host_webui"); printhost_webui_field) { + if (wxTextCtrl* temp = dynamic_cast(printhost_webui_field)->text_ctrl(); temp) { + temp->SetValue("https://simplyprint.io/panel"); + } + } m_config->opt_string("print_host_webui") = "https://simplyprint.io/panel"; } + + // For bbl printers, show option to control the device tab + if (wxGetApp().preset_bundle->is_bbl_vendor()) { + m_optgroup->show_field("bbl_use_print_host_webui"); + const bool use_print_host_webui = !current_webui.empty(); + if (Field* printhost_webui_field = m_optgroup->get_field("bbl_use_print_host_webui"); printhost_webui_field) { + if (CheckBox* temp = dynamic_cast(printhost_webui_field); temp) { + temp->set_value(use_print_host_webui); + } + } + } + + m_optgroup->hide_field("print_host_webui"); m_optgroup->hide_field("printhost_apikey"); m_optgroup->disable_field("printhost_cafile"); m_optgroup->disable_field("printhost_ssl_ignore_revoke"); diff --git a/src/slic3r/GUI/PhysicalPrinterDialog.hpp b/src/slic3r/GUI/PhysicalPrinterDialog.hpp index 855370568f..b6faff82f9 100644 --- a/src/slic3r/GUI/PhysicalPrinterDialog.hpp +++ b/src/slic3r/GUI/PhysicalPrinterDialog.hpp @@ -63,6 +63,7 @@ public: void update_printhost_buttons(); void update_printers(); void update_ports(); + void update_webui(); protected: void on_dpi_changed(const wxRect& suggested_rect) override; diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 514b76faac..ec76af21be 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -1,22 +1,3 @@ -///|/ Copyright (c) Prusa Research 2018 - 2023 Vojtěch Bubník @bubnikv, Lukáš Matěna @lukasmatena, Oleksandra Iushchenko @YuSanka, Enrico Turri @enricoturri1966, Tomáš Mészáros @tamasmeszaros, David Kocík @kocikdav, Lukáš Hejl @hejllukas, Pavel Mikuš @Godrak, Filip Sykala @Jony01, Vojtěch Král @vojtechkral -///|/ Copyright (c) 2022 Michael Kirsch -///|/ Copyright (c) 2021 Boleslaw Ciesielski -///|/ Copyright (c) 2019 John Drake @foxox -///|/ -///|/ ported from lib/Slic3r/GUI/Plater.pm: -///|/ Copyright (c) Prusa Research 2016 - 2019 Vojtěch Bubník @bubnikv, Vojtěch Král @vojtechkral, Enrico Turri @enricoturri1966, Oleksandra Iushchenko @YuSanka, Lukáš Matěna @lukasmatena, Tomáš Mészáros @tamasmeszaros -///|/ Copyright (c) 2018 Martin Loidl @LoidlM -///|/ Copyright (c) 2017 Matthias Gazzari @qtux -///|/ Copyright (c) Slic3r 2012 - 2016 Alessandro Ranellucci @alranel -///|/ Copyright (c) 2017 Joseph Lenox @lordofhyphens -///|/ Copyright (c) 2015 Daren Schwenke -///|/ Copyright (c) 2014 Mark Hindess -///|/ Copyright (c) 2012 Mike Sheldrake @mesheldrake -///|/ Copyright (c) 2012 Henrik Brix Andersen @henrikbrixandersen -///|/ Copyright (c) 2012 Sam Wong -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "Plater.hpp" #include "libslic3r/Config.hpp" #include "libslic3r_version.h" @@ -1200,12 +1181,11 @@ void Sidebar::update_all_preset_comboboxes() const auto print_tech = preset_bundle.printers.get_edited_preset().printer_technology(); bool is_bbl_vendor = preset_bundle.is_bbl_vendor(); - const bool use_bbl_network = preset_bundle.use_bbl_network(); auto p_mainframe = wxGetApp().mainframe; auto cfg = preset_bundle.printers.get_edited_preset().config; - if (use_bbl_network) { + if (preset_bundle.use_bbl_network()) { //only show connection button for not-BBL printer connection_btn->Hide(); //only show sync-ams button for BBL printer @@ -1223,9 +1203,10 @@ void Sidebar::update_all_preset_comboboxes() else { if (!url.Lower().starts_with("http")) url = wxString::Format("http://%s", url); - if (cfg.has("printhost_apikey")) + const auto host_type = cfg.option>("host_type")->value; + if (cfg.has("printhost_apikey") && (host_type != htSimplyPrint)) apikey = cfg.opt_string("printhost_apikey"); - print_btn_type = MainFrame::PrintSelectType::eSendGcode; + print_btn_type = preset_bundle.is_bbl_vendor() ? MainFrame::PrintSelectType::ePrintPlate : MainFrame::PrintSelectType::eSendGcode; } p_mainframe->load_printer_url(url, apikey); @@ -1269,7 +1250,7 @@ void Sidebar::update_all_preset_comboboxes() p->combo_printer->update(); // Orca:: show device tab based on vendor type - p_mainframe->show_device(use_bbl_network); + p_mainframe->show_device(preset_bundle.use_bbl_device_tab()); p_mainframe->m_tabpanel->SetSelection(p_mainframe->m_tabpanel->GetSelection()); } @@ -2574,7 +2555,7 @@ struct Plater::priv //BBS: add plate_id for thumbnail void generate_thumbnail(ThumbnailData& data, unsigned int w, unsigned int h, const ThumbnailsParams& thumbnail_params, - Camera::EType camera_type, bool use_top_view = false, bool for_picking = false); + Camera::EType camera_type, bool use_top_view = false, bool for_picking = false,bool ban_light = false); ThumbnailsList generate_thumbnails(const ThumbnailsParams& params, Camera::EType camera_type); //BBS void generate_calibration_thumbnail(ThumbnailData& data, unsigned int w, unsigned int h, const ThumbnailsParams& thumbnail_params); @@ -5814,7 +5795,12 @@ void Plater::priv::reload_from_disk() // load one file at a time for (size_t i = 0; i < input_paths.size(); ++i) { const auto& path = input_paths[i].string(); - + auto obj_color_fun = [this, &path](std::vector &input_colors, bool is_single_color, std::vector &filament_ids, unsigned char &first_extruder_id) { + if (!boost::iends_with(path, ".obj")) { return; } + const std::vector extruder_colours = wxGetApp().plater()->get_extruder_colors_from_plater_config(); + ObjColorDialog color_dlg(nullptr, input_colors, is_single_color, extruder_colours, filament_ids, first_extruder_id); + if (color_dlg.ShowModal() != wxID_OK) { filament_ids.clear(); } + }; wxBusyCursor wait; wxBusyInfo info(_L("Reload from:") + " " + from_u8(path), q->get_current_canvas3D()->get_wxglcanvas()); @@ -5827,7 +5813,8 @@ void Plater::priv::reload_from_disk() std::vector project_presets; // BBS: backup - new_model = Model::read_from_file(path, nullptr, nullptr, LoadStrategy::AddDefaultInstances | LoadStrategy::LoadModel, &plate_data, &project_presets); + new_model = Model::read_from_file(path, nullptr, nullptr, LoadStrategy::AddDefaultInstances | LoadStrategy::LoadModel, &plate_data, &project_presets, nullptr, + nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, 0, obj_color_fun); for (ModelObject* model_object : new_model.objects) { model_object->center_around_origin(); @@ -7085,12 +7072,18 @@ void Plater::priv::on_action_print_plate(SimpleEvent&) BOOST_LOG_TRIVIAL(debug) << __FUNCTION__ << ":received print plate event\n" ; } - //BBS - if (!m_select_machine_dlg) m_select_machine_dlg = new SelectMachineDialog(q); - m_select_machine_dlg->set_print_type(PrintFromType::FROM_NORMAL); - m_select_machine_dlg->prepare(partplate_list.get_curr_plate_index()); - m_select_machine_dlg->ShowModal(); - record_start_print_preset("print_plate"); + PresetBundle& preset_bundle = *wxGetApp().preset_bundle; + if (preset_bundle.use_bbl_network()) { + // BBS + if (!m_select_machine_dlg) + m_select_machine_dlg = new SelectMachineDialog(q); + m_select_machine_dlg->set_print_type(PrintFromType::FROM_NORMAL); + m_select_machine_dlg->prepare(partplate_list.get_curr_plate_index()); + m_select_machine_dlg->ShowModal(); + record_start_print_preset("print_plate"); + } else { + q->send_gcode_legacy(PLATE_CURRENT_IDX, nullptr, true); + } } void Plater::priv::on_action_send_to_multi_machine(SimpleEvent&) @@ -7120,7 +7113,7 @@ void Plater::priv::on_tab_selection_changing(wxBookCtrlEvent& e) sidebar_layout.show = new_sel == MainFrame::tp3DEditor || new_sel == MainFrame::tpPreview; update_sidebar(); int old_sel = e.GetOldSelection(); - if (wxGetApp().preset_bundle && wxGetApp().preset_bundle->use_bbl_network() && new_sel == MainFrame::tpMonitor) { + if (wxGetApp().preset_bundle && wxGetApp().preset_bundle->use_bbl_device_tab() && new_sel == MainFrame::tpMonitor) { if (!wxGetApp().getAgent()) { e.Veto(); BOOST_LOG_TRIVIAL(info) << boost::format("skipped tab switch from %1% to %2%, lack of network plugins") % old_sel % new_sel; @@ -7175,12 +7168,18 @@ void Plater::priv::on_action_print_all(SimpleEvent&) BOOST_LOG_TRIVIAL(debug) << __FUNCTION__ << ":received print all event\n" ; } - //BBS - if (!m_select_machine_dlg) m_select_machine_dlg = new SelectMachineDialog(q); - m_select_machine_dlg->set_print_type(PrintFromType::FROM_NORMAL); - m_select_machine_dlg->prepare(PLATE_ALL_IDX); - m_select_machine_dlg->ShowModal(); - record_start_print_preset("print_all"); + PresetBundle& preset_bundle = *wxGetApp().preset_bundle; + if (preset_bundle.use_bbl_network()) { + // BBS + if (!m_select_machine_dlg) + m_select_machine_dlg = new SelectMachineDialog(q); + m_select_machine_dlg->set_print_type(PrintFromType::FROM_NORMAL); + m_select_machine_dlg->prepare(PLATE_ALL_IDX); + m_select_machine_dlg->ShowModal(); + record_start_print_preset("print_all"); + } else { + q->send_gcode_legacy(PLATE_ALL_IDX, nullptr, true); + } } void Plater::priv::on_action_export_gcode(SimpleEvent&) @@ -7498,10 +7497,9 @@ void Plater::priv::on_3dcanvas_mouse_dragging_finished(SimpleEvent&) } //BBS: add plate id for thumbnail generate param -void Plater::priv::generate_thumbnail(ThumbnailData& data, unsigned int w, unsigned int h, const ThumbnailsParams& thumbnail_params, - Camera::EType camera_type, bool use_top_view, bool for_picking) +void Plater::priv::generate_thumbnail(ThumbnailData& data, unsigned int w, unsigned int h, const ThumbnailsParams& thumbnail_params, Camera::EType camera_type, bool use_top_view, bool for_picking, bool ban_light) { - view3D->get_canvas3d()->render_thumbnail(data, w, h, thumbnail_params, camera_type, use_top_view, for_picking); + view3D->get_canvas3d()->render_thumbnail(data, w, h, thumbnail_params, camera_type, use_top_view, for_picking, ban_light); } //BBS: add plate id for thumbnail generate param @@ -7614,9 +7612,9 @@ wxString Plater::priv::get_export_gcode_filename(const wxString& extension, bool } } else { if (export_all) - return m_project_name + from_u8(plate_index_str) + extension; - else return m_project_name + extension; + else + return m_project_name + from_u8(plate_index_str) + extension; } } else { if (only_filename) { @@ -9363,11 +9361,6 @@ void Plater::_calib_pa_pattern(const Calib_Params& params) new ConfigOptionFloat(opt.second) ); } - print_config.set_key_value( - "outer_wall_speed", - new ConfigOptionFloat(CalibPressureAdvance::find_optimal_PA_speed( - wxGetApp().preset_bundle->full_config(), (fabs(print_config.get_abs_value("line_width", nozzle_diameter)) <= DBL_EPSILON)? (nozzle_diameter*1.125) : print_config.get_abs_value("line_width", nozzle_diameter), - print_config.get_abs_value("layer_height"), 0))); for (const auto opt : SuggestedConfigCalibPAPattern().nozzle_ratio_pairs) { print_config.set_key_value( @@ -9388,6 +9381,14 @@ void Plater::_calib_pa_pattern(const Calib_Params& params) new ConfigOptionEnum(SuggestedConfigCalibPAPattern().brim_pair.second) ); + // Orca: Set the outer wall speed to the optimal speed for the test, cap it with max volumetric speed + print_config.set_key_value("outer_wall_speed", new ConfigOptionFloat(CalibPressureAdvance::find_optimal_PA_speed( + wxGetApp().preset_bundle->full_config(), + (fabs(print_config.get_abs_value("line_width", nozzle_diameter)) <= DBL_EPSILON) ? + (nozzle_diameter * 1.125) : + print_config.get_abs_value("line_width", nozzle_diameter), + print_config.get_abs_value("layer_height"), 0))); + wxGetApp().get_tab(Preset::TYPE_PRINT)->update_dirty(); wxGetApp().get_tab(Preset::TYPE_FILAMENT)->update_dirty(); wxGetApp().get_tab(Preset::TYPE_PRINTER)->update_dirty(); @@ -9991,6 +9992,10 @@ void Plater::update_all_plate_thumbnails(bool force_update) if (force_update || !plate->thumbnail_data.is_valid()) { get_view3D_canvas3D()->render_thumbnail(plate->thumbnail_data, plate->plate_thumbnail_width, plate->plate_thumbnail_height, thumbnail_params, Camera::EType::Ortho); } + if (force_update || !plate->no_light_thumbnail_data.is_valid()) { + get_view3D_canvas3D()->render_thumbnail(plate->no_light_thumbnail_data, plate->plate_thumbnail_width, plate->plate_thumbnail_height, thumbnail_params, + Camera::EType::Ortho,false,false,true); + } } } @@ -10003,6 +10008,7 @@ void Plater::invalid_all_plate_thumbnails() for (int i = 0; i < get_partplate_list().get_plate_count(); i++) { PartPlate* plate = get_partplate_list().get_plate(i); plate->thumbnail_data.reset(); + plate->no_light_thumbnail_data.reset(); } } @@ -11832,6 +11838,7 @@ int Plater::export_3mf(const boost::filesystem::path& output_path, SaveStrategy //BBS: add plate logic for thumbnail generate std::vector thumbnails; + std::vector no_light_thumbnails; std::vector calibration_thumbnails; std::vector top_thumbnails; std::vector picking_thumbnails; @@ -11852,6 +11859,17 @@ int Plater::export_3mf(const boost::filesystem::path& output_path, SaveStrategy } thumbnails.push_back(thumbnail_data); + ThumbnailData *no_light_thumbnail_data = &p->partplate_list.get_plate(i)->no_light_thumbnail_data; + if (p->partplate_list.get_plate(i)->no_light_thumbnail_data.is_valid() && using_exported_file()) { + // no need to generate thumbnail + BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format(": non need to re-generate thumbnail for gcode/exported mode of plate %1%") % i; + } else { + BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format(": re-generate thumbnail for plate %1%") % i; + const ThumbnailsParams thumbnail_params = {{}, false, true, true, true, i}; + p->generate_thumbnail(p->partplate_list.get_plate(i)->no_light_thumbnail_data, THUMBNAIL_SIZE_3MF.first, THUMBNAIL_SIZE_3MF.second, + thumbnail_params, Camera::EType::Ortho,false,false,true); + } + no_light_thumbnails.push_back(no_light_thumbnail_data); //ThumbnailData* calibration_data = &p->partplate_list.get_plate(i)->cali_thumbnail_data; //calibration_thumbnails.push_back(calibration_data); PlateBBoxData* plate_bbox_data = &p->partplate_list.get_plate(i)->cali_bboxes_data; @@ -11915,6 +11933,7 @@ int Plater::export_3mf(const boost::filesystem::path& output_path, SaveStrategy store_params.project_presets = project_presets; store_params.config = export_config ? &cfg : nullptr; store_params.thumbnail_data = thumbnails; + store_params.no_light_thumbnail_data = no_light_thumbnails; store_params.top_thumbnail_data = top_thumbnails; store_params.pick_thumbnail_data = picking_thumbnails; store_params.calibration_thumbnail_data = calibration_thumbnails; @@ -12008,6 +12027,10 @@ int Plater::export_3mf(const boost::filesystem::path& output_path, SaveStrategy //release the data here, as it will always be generated when export calibration_thumbnails[i]->reset(); } + for (unsigned int i = 0; i < no_light_thumbnails.size(); i++) { + // release the data here, as it will always be generated when export + no_light_thumbnails[i]->reset(); + } for (unsigned int i = 0; i < top_thumbnails.size(); i++) { //release the data here, as it will always be generated when export @@ -12324,7 +12347,7 @@ void Plater::reslice_SLA_until_step(SLAPrintObjectStep step, const ModelObject & // and let the background processing start. this->p->restart_background_process(state | priv::UPDATE_BACKGROUND_PROCESS_FORCE_RESTART); } -void Plater::send_gcode_legacy(int plate_idx, Export3mfProgressFn proFn) +void Plater::send_gcode_legacy(int plate_idx, Export3mfProgressFn proFn, bool use_3mf) { // if physical_printer is selected, send gcode for this printer // DynamicPrintConfig* physical_printer_config = wxGetApp().preset_bundle->physical_printers.get_selected_printer_config(); @@ -12336,6 +12359,8 @@ void Plater::send_gcode_legacy(int plate_idx, Export3mfProgressFn proFn) if (upload_job.empty()) return; + upload_job.upload_data.use_3mf = use_3mf; + // Obtain default output path fs::path default_output_file; try { @@ -12354,6 +12379,9 @@ void Plater::send_gcode_legacy(int plate_idx, Export3mfProgressFn proFn) return; } default_output_file = fs::path(Slic3r::fold_utf8_to_ascii(default_output_file.string())); + if (use_3mf) { + default_output_file.replace_extension("3mf"); + } // Repetier specific: Query the server for the list of file groups. wxArrayString groups; @@ -12375,8 +12403,11 @@ void Plater::send_gcode_legacy(int plate_idx, Export3mfProgressFn proFn) } } - PrintHostSendDialog dlg(default_output_file, upload_job.printhost->get_post_upload_actions(), groups, storage_paths, storage_names); + 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(); @@ -12389,6 +12420,19 @@ void Plater::send_gcode_legacy(int plate_idx, Export3mfProgressFn proFn) 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)); } } diff --git a/src/slic3r/GUI/Plater.hpp b/src/slic3r/GUI/Plater.hpp index dd9c58fd57..66d63fd54a 100644 --- a/src/slic3r/GUI/Plater.hpp +++ b/src/slic3r/GUI/Plater.hpp @@ -1,19 +1,3 @@ -///|/ Copyright (c) Prusa Research 2018 - 2023 Tomáš Mészáros @tamasmeszaros, Oleksandra Iushchenko @YuSanka, Enrico Turri @enricoturri1966, David Kocík @kocikdav, Lukáš Hejl @hejllukas, Vojtěch Bubník @bubnikv, Lukáš Matěna @lukasmatena, Pavel Mikuš @Godrak, Filip Sykala @Jony01, Vojtěch Král @vojtechkral -///|/ -///|/ ported from lib/Slic3r/GUI/Plater.pm: -///|/ Copyright (c) Prusa Research 2016 - 2019 Vojtěch Bubník @bubnikv, Vojtěch Král @vojtechkral, Enrico Turri @enricoturri1966, Oleksandra Iushchenko @YuSanka, Lukáš Matěna @lukasmatena, Tomáš Mészáros @tamasmeszaros -///|/ Copyright (c) 2018 Martin Loidl @LoidlM -///|/ Copyright (c) 2017 Matthias Gazzari @qtux -///|/ Copyright (c) Slic3r 2012 - 2016 Alessandro Ranellucci @alranel -///|/ Copyright (c) 2017 Joseph Lenox @lordofhyphens -///|/ Copyright (c) 2015 Daren Schwenke -///|/ Copyright (c) 2014 Mark Hindess -///|/ Copyright (c) 2012 Mike Sheldrake @mesheldrake -///|/ Copyright (c) 2012 Henrik Brix Andersen @henrikbrixandersen -///|/ Copyright (c) 2012 Sam Wong -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_Plater_hpp_ #define slic3r_Plater_hpp_ @@ -447,7 +431,7 @@ public: /* -1: send current gcode if not specified * -2: send all gcode to target machine */ int send_gcode(int plate_idx = -1, Export3mfProgressFn proFn = nullptr); - void send_gcode_legacy(int plate_idx = -1, Export3mfProgressFn proFn = nullptr); + void send_gcode_legacy(int plate_idx = -1, Export3mfProgressFn proFn = nullptr, bool use_3mf = false); int export_config_3mf(int plate_idx = -1, Export3mfProgressFn proFn = nullptr); //BBS jump to nonitor after print job finished void send_calibration_job_finished(wxCommandEvent &evt); diff --git a/src/slic3r/GUI/Preferences.cpp b/src/slic3r/GUI/Preferences.cpp index 8ad3742ca0..79b3cd2646 100644 --- a/src/slic3r/GUI/Preferences.cpp +++ b/src/slic3r/GUI/Preferences.cpp @@ -862,6 +862,85 @@ wxWindow *PreferencesDialog ::create_item_radiobox(wxString title, wxWindow *par return item; } +#ifdef WIN32 +wxBoxSizer* PreferencesDialog::create_item_link_association(wxWindow* parent, wxString url_prefix, wxString website_name) +{ + wxString title = _L("Associate") + (boost::format(" %1%://") % url_prefix.c_str()).str(); + wxString tooltip = _L("Associate") + " " + url_prefix + ":// " + _L("with OrcaSlicer so that Orca can open models from") + " " + website_name; + + std::wstring registered_bin; // not used, just here to provide a ref to check fn + bool reg_to_current_instance = wxGetApp().check_url_association(url_prefix.ToStdWstring(), registered_bin); + + auto* h_sizer = new wxBoxSizer(wxHORIZONTAL); // contains checkbox and other elements on the first line + h_sizer->Add(0, 0, 0, wxEXPAND | wxLEFT, 23); + + // build checkbox + auto checkbox = new ::CheckBox(parent); + checkbox->SetToolTip(tooltip); + checkbox->SetValue(reg_to_current_instance); // If registered to the current instance, checkbox should be checked + checkbox->Enable(!reg_to_current_instance); // Since unregistering isn't supported, checkbox is disabled when checked + + h_sizer->Add(checkbox, 0, wxALIGN_CENTER, 0); + h_sizer->Add(0, 0, 0, wxEXPAND | wxLEFT, 8); + + // build text next to checkbox + auto checkbox_title = new wxStaticText(parent, wxID_ANY, title); + checkbox_title->SetToolTip(tooltip); + checkbox_title->SetForegroundColour(DESIGN_GRAY900_COLOR); + checkbox_title->SetFont(::Label::Body_13); + auto size = checkbox_title->GetTextExtent(title); + checkbox_title->SetMinSize({ size.x + FromDIP(5), -1 }); + checkbox_title->Wrap(-1); + h_sizer->Add(checkbox_title, 0, wxALIGN_CENTER | wxALL, 3); + + auto* v_sizer = new wxBoxSizer(wxVERTICAL); + v_sizer->Add(h_sizer); + + // build text below checkbox that indicates the instance currently registered to handle the link type + auto* registered_instance_title = new wxStaticText(parent, wxID_ANY, ""); + registered_instance_title->SetForegroundColour(DESIGN_GRAY900_COLOR); + registered_instance_title->SetFont(::Label::Body_13); + registered_instance_title->Wrap(-1); + + // update the text below checkbox + auto update_current_association_str = [=, ®_to_current_instance](){ + // get registered binary for given link type + std::wstring registered_bin; + reg_to_current_instance = wxGetApp().check_url_association(url_prefix.wc_str(), registered_bin); + + // format registered binary to get only the path and remove excess chars + if (!registered_bin.empty()) + // skip idx 0 because it is the first quotation mark + registered_bin = registered_bin.substr(1, registered_bin.find(L'\"', 1) - 1); + + wxString current_association_str = _L("Current Association: "); + if (reg_to_current_instance) { + current_association_str += _L("Current Instance"); + registered_instance_title->SetToolTip(_L("Current Instance Path: ") + registered_bin); + } else if (registered_bin.empty()) + current_association_str += _L("None"); + else + current_association_str += registered_bin; + + registered_instance_title->SetLabel(current_association_str); + auto size = registered_instance_title->GetTextExtent(current_association_str); + registered_instance_title->SetMinSize({ size.x + FromDIP(5), -1 }); + }; + update_current_association_str(); + + v_sizer->Add(registered_instance_title, 0, wxALIGN_CENTER_VERTICAL | wxLEFT, 60); + + checkbox->Bind(wxEVT_TOGGLEBUTTON, [=](wxCommandEvent& e) { + wxGetApp().associate_url(url_prefix.ToStdWstring()); + checkbox->Disable(); + update_current_association_str(); + e.Skip(); + }); + + return v_sizer; +} +#endif // WIN32 + PreferencesDialog::PreferencesDialog(wxWindow *parent, wxWindowID id, const wxString &title, const wxPoint &pos, const wxSize &size, long style) : DPIDialog(parent, id, _L("Preferences"), pos, size, style) { @@ -1072,28 +1151,13 @@ wxWindow* PreferencesDialog::create_general_page() _L("If enabled, sets OrcaSlicer as default application to open .stl files"), 50, "associate_stl"); auto item_associate_step = create_item_checkbox(_L("Associate .step/.stp files to OrcaSlicer"), page, _L("If enabled, sets OrcaSlicer as default application to open .step files"), 50, "associate_step"); -#endif // _WIN32 -#if !defined(__APPLE__) auto title_associate_url = create_item_title(_L("Associate web links to OrcaSlicer"), page, _L("Associate URLs to OrcaSlicer")); - std::wstring reg_bin; - wxGetApp().check_url_association(L"prusaslicer", reg_bin); - auto associate_url_prusaslicer = create_item_button(_L("Current association: ") + reg_bin, _L("Associate prusaslicer://"), page, - reg_bin.empty() ? _L("Not associated to any application") : reg_bin, - _L("Associate OrcaSlicer with prusaslicer:// links so that Orca can open models from Printable.com"), - []() { wxGetApp().associate_url(L"prusaslicer"); }, false); - wxGetApp().check_url_association(L"bambustudio", reg_bin); - auto associate_url_bambustudio = create_item_button(_L("Current association: ") + reg_bin, _L("Associate bambustudio://"), page, - reg_bin.empty() ? _L("Not associated to any application") : reg_bin, - _L("Associate OrcaSlicer with bambustudio:// links so that Orca can open models from makerworld.com"), - []() { wxGetApp().associate_url(L"bambustudio"); }, false); - wxGetApp().check_url_association(L"cura", reg_bin); - auto associate_url_cura = create_item_button(_L("Current association: ") + reg_bin, _L("Associate cura://"), page, - reg_bin.empty() ? _L("Not associated to any application") : reg_bin, - _L("Associate OrcaSlicer with cura:// links so that Orca can open models from thingiverse.com"), - []() { wxGetApp().associate_url(L"cura"); }, false); -#endif + auto associate_url_prusaslicer = create_item_link_association(page, L"prusaslicer", "Printables.com"); + auto associate_url_bambustudio = create_item_link_association(page, L"bambustudio", "Makerworld.com"); + auto associate_url_cura = create_item_link_association(page, L"cura", "Thingiverse.com"); +#endif // _WIN32 // auto title_modelmall = create_item_title(_L("Online Models"), page, _L("Online Models")); // auto item_backup = create_item_switch(_L("Backup switch"), page, _L("Backup switch"), "units"); @@ -1156,13 +1220,11 @@ wxWindow* PreferencesDialog::create_general_page() sizer_page->Add(item_associate_3mf, 0, wxTOP, FromDIP(3)); sizer_page->Add(item_associate_stl, 0, wxTOP, FromDIP(3)); sizer_page->Add(item_associate_step, 0, wxTOP, FromDIP(3)); -#endif // _WIN32 -#if !defined(__APPLE__) sizer_page->Add(title_associate_url, 0, wxTOP| wxEXPAND, FromDIP(20)); sizer_page->Add(associate_url_prusaslicer, 0, wxTOP, FromDIP(3)); sizer_page->Add(associate_url_bambustudio, 0, wxTOP, FromDIP(3)); sizer_page->Add(associate_url_cura, 0, wxTOP, FromDIP(3)); -#endif +#endif // _WIN32 // auto item_title_modelmall = sizer_page->Add(title_modelmall, 0, wxTOP | wxEXPAND, FromDIP(20)); // auto item_item_modelmall = sizer_page->Add(item_modelmall, 0, wxTOP, FromDIP(3)); // auto update_modelmall = [this, item_title_modelmall, item_item_modelmall] (wxEvent & e) { diff --git a/src/slic3r/GUI/Preferences.hpp b/src/slic3r/GUI/Preferences.hpp index 6cf6deaf66..29649be719 100644 --- a/src/slic3r/GUI/Preferences.hpp +++ b/src/slic3r/GUI/Preferences.hpp @@ -119,6 +119,9 @@ public: wxString title, wxWindow *parent, wxString tooltip, int padding_left, std::string parama, std::vector vlista, std::vector vlistb); wxBoxSizer *create_item_switch(wxString title, wxWindow *parent, wxString tooltip, std::string param); wxWindow * create_item_radiobox(wxString title, wxWindow *parent, wxString tooltip, int padding_left, int groupid, std::string param); +#ifdef WIN32 + wxBoxSizer* create_item_link_association(wxWindow* parent, wxString url_prefix, wxString website_name); +#endif // WIN32 wxWindow* create_general_page(); void create_gui_page(); diff --git a/src/slic3r/GUI/PrintHostDialogs.cpp b/src/slic3r/GUI/PrintHostDialogs.cpp index 338b60eae0..14a5866635 100644 --- a/src/slic3r/GUI/PrintHostDialogs.cpp +++ b/src/slic3r/GUI/PrintHostDialogs.cpp @@ -38,7 +38,7 @@ static const char *CONFIG_KEY_PATH = "printhost_path"; static const char *CONFIG_KEY_GROUP = "printhost_group"; static const char* CONFIG_KEY_STORAGE = "printhost_storage"; -PrintHostSendDialog::PrintHostSendDialog(const fs::path &path, PrintHostPostUploadActions post_actions, const wxArrayString &groups, const wxArrayString& storage_paths, const wxArrayString& storage_names) +PrintHostSendDialog::PrintHostSendDialog(const fs::path &path, PrintHostPostUploadActions post_actions, const wxArrayString &groups, const wxArrayString& storage_paths, const wxArrayString& storage_names, bool switch_to_device_tab) : MsgDialog(static_cast(wxGetApp().mainframe), _L("Send G-Code to printer host"), _L("Upload to Printer Host with the following filename:"), 0) // Set style = 0 to avoid default creation of the "OK" button. // All buttons will be added later in this constructor , txt_filename(new wxTextCtrl(this, wxID_ANY)) @@ -46,6 +46,7 @@ PrintHostSendDialog::PrintHostSendDialog(const fs::path &path, PrintHostPostUplo , combo_storage(storage_names.GetCount() > 1 ? new wxComboBox(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, storage_names, wxCB_READONLY) : nullptr) , post_upload_action(PrintHostPostUploadAction::None) , m_paths(storage_paths) + , m_switch_to_device_tab(switch_to_device_tab) { #ifdef __APPLE__ txt_filename->OSXDisableAllSmartSubstitutions(); @@ -97,6 +98,22 @@ PrintHostSendDialog::PrintHostSendDialog(const fs::path &path, PrintHostPostUplo 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); + 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 diff --git a/src/slic3r/GUI/PrintHostDialogs.hpp b/src/slic3r/GUI/PrintHostDialogs.hpp index b3f5504050..8befa21d98 100644 --- a/src/slic3r/GUI/PrintHostDialogs.hpp +++ b/src/slic3r/GUI/PrintHostDialogs.hpp @@ -26,11 +26,12 @@ namespace GUI { 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); + 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); boost::filesystem::path filename() const; PrintHostPostUploadAction post_action() const; std::string group() const; std::string storage() const; + bool switch_to_device_tab() const {return m_switch_to_device_tab;} virtual void EndModal(int ret) override; private: @@ -41,6 +42,7 @@ private: wxString m_valid_suffix; wxString m_preselected_storage; wxArrayString m_paths; + bool m_switch_to_device_tab; }; diff --git a/src/slic3r/GUI/SceneRaycaster.cpp b/src/slic3r/GUI/SceneRaycaster.cpp index 96be46de29..08c3407632 100644 --- a/src/slic3r/GUI/SceneRaycaster.cpp +++ b/src/slic3r/GUI/SceneRaycaster.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2022 - 2023 Oleksandra Iushchenko @YuSanka, Enrico Turri @enricoturri1966, Tomáš Mészáros @tamasmeszaros -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "libslic3r/libslic3r.h" #include "SceneRaycaster.hpp" diff --git a/src/slic3r/GUI/SceneRaycaster.hpp b/src/slic3r/GUI/SceneRaycaster.hpp index 778ec0ab43..8102e20de4 100644 --- a/src/slic3r/GUI/SceneRaycaster.hpp +++ b/src/slic3r/GUI/SceneRaycaster.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2022 - 2023 Oleksandra Iushchenko @YuSanka, Enrico Turri @enricoturri1966, Tomáš Mészáros @tamasmeszaros -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_SceneRaycaster_hpp_ #define slic3r_SceneRaycaster_hpp_ diff --git a/src/slic3r/GUI/SelectMachine.cpp b/src/slic3r/GUI/SelectMachine.cpp index 1043037144..416f047e19 100644 --- a/src/slic3r/GUI/SelectMachine.cpp +++ b/src/slic3r/GUI/SelectMachine.cpp @@ -24,6 +24,7 @@ #include #include #include "Plater.hpp" +#include "Notebook.hpp" #include "BitmapCache.hpp" #include "BindDialog.hpp" @@ -1448,7 +1449,8 @@ void SelectMachineDialog::init_bind() if (obj->dev_id == e.GetString()) { m_comboBox_printer->SetValue(obj->dev_name + "(LAN)"); } - }else if(e.GetInt() == 1 && (m_print_type == PrintFromType::FROM_SDCARD_VIEW)){ + } + /*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)) { @@ -1471,7 +1473,7 @@ void SelectMachineDialog::init_bind() this->connect_printer_mqtt(); } } - } + }*/ }); m_bitmap_last_plate->Bind(wxEVT_LEFT_DOWN, [this](auto& e) { @@ -1824,6 +1826,10 @@ void SelectMachineDialog::sync_ams_mapping_result(std::vector &res iter++; } } + auto tab_index = (MainFrame::TabPosition) dynamic_cast(wxGetApp().tab_panel())->GetSelection(); + if (tab_index == MainFrame::TabPosition::tp3DEditor || tab_index == MainFrame::TabPosition::tpPreview) { + updata_thumbnail_data_after_connected_printer(); + } } void print_ams_mapping_result(std::vector& result) @@ -1842,7 +1848,7 @@ void print_ams_mapping_result(std::vector& result) bool SelectMachineDialog::do_ams_mapping(MachineObject *obj_) { if (!obj_) return false; - + obj_->get_ams_colors(m_cur_colors_in_thumbnail); // try color and type mapping int result = obj_->ams_filament_mapping(m_filaments, m_ams_mapping_result); if (result == 0) { @@ -2573,6 +2579,7 @@ void SelectMachineDialog::on_ok_btn(wxCommandEvent &event) if (!obj_->nozzle_type.empty() && (m_print_type == PrintFromType::FROM_NORMAL)) { if (!is_same_nozzle_diameters(tag_nozzle_type, nozzle_diameter)) { has_slice_warnings = true; + is_printing_block = true; wxString nozzle_in_preset = wxString::Format(_L("nozzle in preset: %s %s"),nozzle_diameter, ""); wxString nozzle_in_printer = wxString::Format(_L("nozzle memorized: %.2f %s"), obj_->nozzle_diameter, ""); @@ -2609,12 +2616,12 @@ void SelectMachineDialog::on_ok_btn(wxCommandEvent &event) confirm_dlg.Bind(EVT_SECONDARY_CHECK_CONFIRM, [this, &confirm_dlg](wxCommandEvent& e) { confirm_dlg.on_hide(); - if (m_print_type == PrintFromType::FROM_SDCARD_VIEW) { + /* if (m_print_type == PrintFromType::FROM_SDCARD_VIEW) { this->connect_printer_mqtt(); } - else { + else {*/ this->on_send_print(); - } + //} }); //confirm_dlg.Bind(EVT_UPDATE_NOZZLE, [this, obj_, tag_nozzle_type, nozzle_diameter, &confirm_dlg](wxCommandEvent& e) { @@ -2648,12 +2655,12 @@ void SelectMachineDialog::on_ok_btn(wxCommandEvent &event) confirm_dlg.on_show(); } else { - if (m_print_type == PrintFromType::FROM_SDCARD_VIEW) { - this->connect_printer_mqtt(); - } - else { + /* if (m_print_type == PrintFromType::FROM_SDCARD_VIEW) { + this->connect_printer_mqtt(); + } + else {*/ this->on_send_print(); - } + //} } } @@ -2824,7 +2831,7 @@ void SelectMachineDialog::on_send_print() else if(m_print_type == PrintFromType::FROM_SDCARD_VIEW){ BOOST_LOG_TRIVIAL(info) << "print_job: m_print_type = from_sdcard_view"; m_print_job->m_print_type = "from_sdcard_view"; - m_print_job->connection_type = "lan"; + //m_print_job->connection_type = "lan"; try { m_print_job->m_print_from_sdc_plate_idx = m_required_data_plate_data_list[m_print_plate_idx]->plate_index + 1; @@ -2944,6 +2951,14 @@ void SelectMachineDialog::on_set_finish_mapping(wxCommandEvent &evt) BOOST_LOG_TRIVIAL(info) << "The ams mapping selection result: data is " << selection_data; if (selection_data_arr.size() == 6) { + auto ams_colour = wxColour(wxAtoi(selection_data_arr[0]), wxAtoi(selection_data_arr[1]), wxAtoi(selection_data_arr[2]), wxAtoi(selection_data_arr[3])); + int old_filament_id = (int) wxAtoi(selection_data_arr[5]); + if (m_print_type == PrintFromType::FROM_NORMAL) {//todo:support sd card + change_default_normal(old_filament_id, ams_colour); + final_deal_edge_pixels_data(m_preview_thumbnail_data); + set_default_normal(m_preview_thumbnail_data); // do't reset ams + } + int ctype = 0; std::vector material_cols; std::vector tray_cols; @@ -3349,8 +3364,6 @@ void SelectMachineDialog::on_selection_changed(wxCommandEvent &event) show_status(PrintDialogStatus::PrintStatusInit); - reset_ams_material(); - update_show_status(); } @@ -3925,20 +3938,399 @@ void SelectMachineDialog::set_default() m_checkbox_list["use_ams"]->SetValue(true); if (m_print_type == PrintFromType::FROM_NORMAL) { - set_default_normal(); + reset_and_sync_ams_list(); + set_default_normal(m_plater->get_partplate_list().get_curr_plate()->thumbnail_data); } else if (m_print_type == PrintFromType::FROM_SDCARD_VIEW) { + //todo:unify_deal_thumbnail_data(input_data, no_light_data);this include m_print_type = PrintFromType::FROM_SDCARD_VIEW + //and notice update_page_turn_state(true) set_default_from_sdcard(); } - + Layout(); Fit(); } -void SelectMachineDialog::set_default_normal() +void SelectMachineDialog::reset_and_sync_ams_list() +{ + // for black list + std::vector materials; + std::vector brands; + std::vector display_materials; + std::vector m_filaments_id; + auto preset_bundle = wxGetApp().preset_bundle; + + for (auto filament_name : preset_bundle->filament_presets) { + for (int f_index = 0; f_index < preset_bundle->filaments.size(); f_index++) { + PresetCollection *filament_presets = &wxGetApp().preset_bundle->filaments; + Preset * preset = &filament_presets->preset(f_index); + + if (preset && filament_name.compare(preset->name) == 0) { + std::string display_filament_type; + std::string filament_type = preset->config.get_filament_type(display_filament_type); + std::string m_filament_id = preset->filament_id; + display_materials.push_back(display_filament_type); + materials.push_back(filament_type); + m_filaments_id.push_back(m_filament_id); + + std::string m_vendor_name = ""; + auto vendor = dynamic_cast(preset->config.option("filament_vendor")); + if (vendor && (vendor->values.size() > 0)) { + std::string vendor_name = vendor->values[0]; + m_vendor_name = vendor_name; + } + brands.push_back(m_vendor_name); + } + } + } + + auto extruders = wxGetApp().plater()->get_partplate_list().get_curr_plate()->get_used_extruders(); + BitmapCache bmcache; + MaterialHash::iterator iter = m_materialList.begin(); + while (iter != m_materialList.end()) { + int id = iter->first; + Material *item = iter->second; + item->item->Destroy(); + delete item; + iter++; + } + + m_sizer_material->Clear(); + m_materialList.clear(); + m_filaments.clear(); + + for (auto i = 0; i < extruders.size(); i++) { + auto extruder = extruders[i] - 1; + auto colour = wxGetApp().preset_bundle->project_config.opt_string("filament_colour", (unsigned int) extruder); + unsigned char rgb[4]; + bmcache.parse_color4(colour, rgb); + + auto colour_rgb = wxColour((int) rgb[0], (int) rgb[1], (int) rgb[2], (int) rgb[3]); + if (extruder >= materials.size() || extruder < 0 || extruder >= display_materials.size()) continue; + + MaterialItem *item = new MaterialItem(m_scrollable_region, colour_rgb, _L(display_materials[extruder])); + m_sizer_material->Add(item, 0, wxALL, FromDIP(4)); + + item->Bind(wxEVT_LEFT_UP, [this, item, materials, extruder](wxMouseEvent &e) {}); + item->Bind(wxEVT_LEFT_DOWN, [this, item, materials, extruder](wxMouseEvent &e) { + MaterialHash::iterator iter = m_materialList.begin(); + while (iter != m_materialList.end()) { + int id = iter->first; + Material * item = iter->second; + MaterialItem *m = item->item; + m->on_normal(); + iter++; + } + + m_current_filament_id = extruder; + item->on_selected(); + + auto mouse_pos = ClientToScreen(e.GetPosition()); + wxPoint rect = item->ClientToScreen(wxPoint(0, 0)); + + // update ams data + DeviceManager *dev_manager = Slic3r::GUI::wxGetApp().getDeviceManager(); + if (!dev_manager) return; + MachineObject *obj_ = dev_manager->get_selected_machine(); + + if (obj_ && obj_->is_support_ams_mapping()) { + if (m_mapping_popup.IsShown()) return; + wxPoint pos = item->ClientToScreen(wxPoint(0, 0)); + pos.y += item->GetRect().height; + m_mapping_popup.Move(pos); + + if (obj_ && obj_->has_ams() && m_checkbox_list["use_ams"]->GetValue() && obj_->dev_id == m_printer_last_select) { + m_mapping_popup.set_parent_item(item); + m_mapping_popup.set_current_filament_id(extruder); + m_mapping_popup.set_tag_texture(materials[extruder]); + m_mapping_popup.update_ams_data(obj_->amsList); + m_mapping_popup.Popup(); + } + } + }); + + Material *material_item = new Material(); + material_item->id = extruder; + material_item->item = item; + m_materialList[i] = material_item; + + // build for ams mapping + if (extruder < materials.size() && extruder >= 0) { + FilamentInfo info; + info.id = extruder; + info.type = materials[extruder]; + info.brand = brands[extruder]; + info.filament_id = m_filaments_id[extruder]; + info.color = wxString::Format("#%02X%02X%02X%02X", colour_rgb.Red(), colour_rgb.Green(), colour_rgb.Blue(), colour_rgb.Alpha()).ToStdString(); + m_filaments.push_back(info); + } + } + + if (extruders.size() <= 4) { + m_sizer_material->SetCols(extruders.size()); + } else { + m_sizer_material->SetCols(4); + } + + // reset_ams_material();//show "-" +} + +void SelectMachineDialog::clone_thumbnail_data() { + //record preview_colors + MaterialHash::iterator iter = m_materialList.begin(); + if (m_preview_colors_in_thumbnail.size() != m_materialList.size()) { + m_preview_colors_in_thumbnail.resize(m_materialList.size()); + } + while (iter != m_materialList.end()) { + int id = iter->first; + Material * item = iter->second; + MaterialItem *m = item->item; + m_preview_colors_in_thumbnail[id] = m->m_material_coloul; + if (item->id < m_cur_colors_in_thumbnail.size()) { + m_cur_colors_in_thumbnail[item->id] = m->m_ams_coloul; + } + else {//exist empty or unrecognized type ams in machine + m_cur_colors_in_thumbnail.resize(item->id + 1); + m_cur_colors_in_thumbnail[item->id] = m->m_ams_coloul; + } + iter++; + } + //copy data + auto &data = m_cur_input_thumbnail_data; + m_preview_thumbnail_data.reset(); + m_preview_thumbnail_data.set(data.width, data.height); + if (data.width > 0 && data.height > 0) { + for (unsigned int r = 0; r < data.height; ++r) { + unsigned int rr = (data.height - 1 - r) * data.width; + for (unsigned int c = 0; c < data.width; ++c) { + unsigned char *origin_px = (unsigned char *) data.pixels.data() + 4 * (rr + c); + unsigned char *new_px = (unsigned char *) m_preview_thumbnail_data.pixels.data() + 4 * (rr + c); + for (size_t i = 0; i < 4; i++) { + new_px[i] = origin_px[i]; + } + } + } + } + //record_edge_pixels_data + record_edge_pixels_data(); +} + +void SelectMachineDialog::record_edge_pixels_data() +{ + auto is_not_in_preview_colors = [this](unsigned char r, unsigned char g , unsigned char b , unsigned char a) { + for (size_t i = 0; i < m_preview_colors_in_thumbnail.size(); i++) { + wxColour render_color = adjust_color_for_render(m_preview_colors_in_thumbnail[i]); + if (render_color.Red() == r && render_color.Green() == g && render_color.Blue() == b /*&& render_color.Alpha() == a*/) { + return false; + } + } + return true; + }; + ThumbnailData &data = m_cur_no_light_thumbnail_data; + ThumbnailData &origin_data = m_cur_input_thumbnail_data; + if (data.width > 0 && data.height > 0) { + m_edge_pixels.resize(data.width * data.height); + for (unsigned int r = 0; r < data.height; ++r) { + unsigned int rr = (data.height - 1 - r) * data.width; + for (unsigned int c = 0; c < data.width; ++c) { + unsigned char *no_light_px = (unsigned char *) data.pixels.data() + 4 * (rr + c); + unsigned char *origin_px = (unsigned char *) origin_data.pixels.data() + 4 * (rr + c); + m_edge_pixels[r * data.width + c] = false; + if (origin_px[3] > 0) { + if (is_not_in_preview_colors(no_light_px[0], no_light_px[1], no_light_px[2], origin_px[3])) { + m_edge_pixels[r * data.width + c] = true; + } + } + } + } + } +} + +wxColour SelectMachineDialog::adjust_color_for_render(const wxColour &color) +{ + ColorRGBA _temp_color_color(color.Red() / 255.0f, color.Green() / 255.0f, color.Blue() / 255.0f, color.Alpha() / 255.0f); + auto _temp_color_color_ = adjust_color_for_rendering(_temp_color_color); + wxColour render_color((int) (_temp_color_color_[0] * 255.0f), (int) (_temp_color_color_[1] * 255.0f), (int) (_temp_color_color_[2] * 255.0f), + (int) (_temp_color_color_[3] * 255.0f)); + return render_color; +} + +void SelectMachineDialog::final_deal_edge_pixels_data(ThumbnailData &data) +{ + if (data.width > 0 && data.height > 0 && m_edge_pixels.size() >0 ) { + for (unsigned int r = 0; r < data.height; ++r) { + unsigned int rr = (data.height - 1 - r) * data.width; + bool exist_rr_up = r >= 1 ? true : false; + bool exist_rr_down = r <= data.height - 2 ? true : false; + unsigned int rr_up = exist_rr_up ? (data.height - 1 - (r - 1)) * data.width : 0; + unsigned int rr_down = exist_rr_down ? (data.height - 1 - (r + 1)) * data.width : 0; + for (unsigned int c = 0; c < data.width; ++c) { + bool exist_c_left = c >= 1 ? true : false; + bool exist_c_right = c <= data.width - 2 ? true : false; + unsigned int c_left = exist_c_left ? c - 1 : 0; + unsigned int c_right = exist_c_right ? c + 1 : 0; + unsigned char *cur_px = (unsigned char *) data.pixels.data() + 4 * (rr + c); + unsigned char *relational_pxs[8] = {nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr}; + if (exist_rr_up && exist_c_left) { relational_pxs[0] = (unsigned char *) data.pixels.data() + 4 * (rr_up + c_left); } + if (exist_rr_up) { relational_pxs[1] = (unsigned char *) data.pixels.data() + 4 * (rr_up + c); } + if (exist_rr_up && exist_c_right) { relational_pxs[2] = (unsigned char *) data.pixels.data() + 4 * (rr_up + c_right); } + if (exist_c_left) { relational_pxs[3] = (unsigned char *) data.pixels.data() + 4 * (rr + c_left); } + if (exist_c_right) { relational_pxs[4] = (unsigned char *) data.pixels.data() + 4 * (rr + c_right); } + if (exist_rr_down && exist_c_left) { relational_pxs[5] = (unsigned char *) data.pixels.data() + 4 * (rr_down + c_left); } + if (exist_rr_down) { relational_pxs[6] = (unsigned char *) data.pixels.data() + 4 * (rr_down + c); } + if (exist_rr_down && exist_c_right) { relational_pxs[7] = (unsigned char *) data.pixels.data() + 4 * (rr_down + c_right); } + if (cur_px[3] > 0 && m_edge_pixels[r * data.width + c]) { + int rgba_sum[4] = {0, 0, 0, 0}; + int valid_count = 0; + for (size_t k = 0; k < 8; k++) { + if (relational_pxs[k]) { + if (k == 0 && m_edge_pixels[(r - 1) * data.width + c_left]) { + continue; + } + if (k == 1 && m_edge_pixels[(r - 1) * data.width + c]) { + continue; + } + if (k == 2 && m_edge_pixels[(r - 1) * data.width + c_right]) { + continue; + } + if (k == 3 && m_edge_pixels[r * data.width + c_left]) { + continue; + } + if (k == 4 && m_edge_pixels[r * data.width + c_right]) { + continue; + } + if (k == 5 && m_edge_pixels[(r + 1) * data.width + c_left]) { + continue; + } + if (k == 6 && m_edge_pixels[(r + 1) * data.width + c]) { + continue; + } + if (k == 7 && m_edge_pixels[(r + 1) * data.width + c_right]) { + continue; + } + for (size_t m = 0; m < 4; m++) { + rgba_sum[m] += relational_pxs[k][m]; + } + valid_count++; + } + } + if (valid_count > 0) { + for (size_t m = 0; m < 4; m++) { + cur_px[m] = std::clamp(int(rgba_sum[m] / (float)valid_count), 0, 255); + } + } + } + } + } + } +} + +void SelectMachineDialog::updata_thumbnail_data_after_connected_printer() +{ + // change thumbnail_data + ThumbnailData &input_data = m_plater->get_partplate_list().get_curr_plate()->thumbnail_data; + ThumbnailData &no_light_data = m_plater->get_partplate_list().get_curr_plate()->no_light_thumbnail_data; + if (input_data.width == 0 || input_data.height == 0 || no_light_data.width == 0 || no_light_data.height == 0) { + wxGetApp().plater()->update_all_plate_thumbnails(false); + } + unify_deal_thumbnail_data(input_data, no_light_data); +} + +void SelectMachineDialog::unify_deal_thumbnail_data(ThumbnailData &input_data, ThumbnailData &no_light_data) { + if (input_data.width == 0 || input_data.height == 0 || no_light_data.width == 0 || no_light_data.height == 0) { + BOOST_LOG_TRIVIAL(error) << "SelectMachineDialog::no_light_data is empty,error"; + return; + } + m_cur_input_thumbnail_data = input_data; + m_cur_no_light_thumbnail_data = no_light_data; + clone_thumbnail_data(); + MaterialHash::iterator iter = m_materialList.begin(); + bool is_connect_printer = true; + while (iter != m_materialList.end()) { + int id = iter->first; + Material * item = iter->second; + MaterialItem *m = item->item; + if (m->m_ams_name == "-") { + is_connect_printer = false; + break; + } + iter++; + } + if (is_connect_printer) { + change_default_normal(-1, wxColour()); + final_deal_edge_pixels_data(m_preview_thumbnail_data); + set_default_normal(m_preview_thumbnail_data); + } +} + +void SelectMachineDialog::change_default_normal(int old_filament_id, wxColour temp_ams_color) +{ + if (m_cur_colors_in_thumbnail.size() == 0) { + BOOST_LOG_TRIVIAL(error) << "SelectMachineDialog::change_default_normal:error:m_cur_colors_in_thumbnail.size() == 0"; + return; + } + if (old_filament_id >= 0) { + if (old_filament_id < m_cur_colors_in_thumbnail.size()) { + m_cur_colors_in_thumbnail[old_filament_id] = temp_ams_color; + } + else { + BOOST_LOG_TRIVIAL(error) << "SelectMachineDialog::change_default_normal:error:old_filament_id > m_cur_colors_in_thumbnail.size()"; + return; + } + } + ThumbnailData& data = m_cur_input_thumbnail_data; + ThumbnailData& no_light_data = m_cur_no_light_thumbnail_data; + if (data.width > 0 && data.height > 0 && data.width == no_light_data.width && data.height == no_light_data.height) { + for (unsigned int r = 0; r < data.height; ++r) { + unsigned int rr = (data.height - 1 - r) * data.width; + for (unsigned int c = 0; c < data.width; ++c) { + unsigned char *no_light_px = (unsigned char *) no_light_data.pixels.data() + 4 * (rr + c); + unsigned char *origin_px = (unsigned char *) data.pixels.data() + 4 * (rr + c); + unsigned char *new_px = (unsigned char *) m_preview_thumbnail_data.pixels.data() + 4 * (rr + c); + if (origin_px[3] > 0 && m_edge_pixels[r * data.width + c] == false) { + auto filament_id = 255 - no_light_px[3]; + if (filament_id >= m_cur_colors_in_thumbnail.size()) { + continue; + } + wxColour temp_ams_color_in_loop = m_cur_colors_in_thumbnail[filament_id]; + wxColour ams_color = adjust_color_for_render(temp_ams_color_in_loop); + //change color + new_px[3] = origin_px[3]; // alpha + int origin_rgb = origin_px[0] + origin_px[1] + origin_px[2]; + int no_light_px_rgb = no_light_px[0] + no_light_px[1] + no_light_px[2]; + unsigned char i = 0; + if (origin_rgb >= no_light_px_rgb) {//Brighten up + unsigned char cur_single_color = ams_color.Red(); + new_px[i] = std::clamp(cur_single_color + (origin_px[i] - no_light_px[i]), 0, 255); + i++; + cur_single_color = ams_color.Green(); + new_px[i] = std::clamp(cur_single_color + (origin_px[i] - no_light_px[i]), 0, 255); + i++; + cur_single_color = ams_color.Blue(); + new_px[i] = std::clamp(cur_single_color + (origin_px[i] - no_light_px[i]), 0, 255); + } else {//Dimming + float ratio = origin_rgb / (float) no_light_px_rgb; + unsigned char cur_single_color = ams_color.Red(); + new_px[i] = std::clamp((int)(cur_single_color * ratio), 0, 255); + i++; + cur_single_color = ams_color.Green(); + new_px[i] = std::clamp((int) (cur_single_color * ratio), 0, 255); + i++; + cur_single_color = ams_color.Blue(); + new_px[i] = std::clamp((int) (cur_single_color * ratio), 0, 255); + } + } + } + } + } + else { + BOOST_LOG_TRIVIAL(error) << "SelectMachineDialog::change_defa:no_light_data is empty,error"; + } +} + +void SelectMachineDialog::set_default_normal(const ThumbnailData &data) { update_page_turn_state(false); - ThumbnailData& data = m_plater->get_partplate_list().get_curr_plate()->thumbnail_data; if (data.is_valid()) { wxImage image(data.width, data.height); image.InitAlpha(); @@ -3954,135 +4346,6 @@ void SelectMachineDialog::set_default_normal() m_thumbnailPanel->set_thumbnail(image); } - //for black list - std::vector materials; - std::vector brands; - std::vector display_materials; - std::vector m_filaments_id; - - - auto preset_bundle = wxGetApp().preset_bundle; - - for (auto filament_name : preset_bundle->filament_presets) { - for (int f_index = 0; f_index < preset_bundle->filaments.size(); f_index++) { - PresetCollection* filament_presets = &wxGetApp().preset_bundle->filaments; - Preset* preset = &filament_presets->preset(f_index); - - if (preset && filament_name.compare(preset->name) == 0) { - std::string display_filament_type; - std::string filament_type = preset->config.get_filament_type(display_filament_type); - std::string m_filament_id=preset->filament_id; - display_materials.push_back(display_filament_type); - materials.push_back(filament_type); - m_filaments_id.push_back(m_filament_id); - - std::string m_vendor_name = ""; - auto vendor = dynamic_cast (preset->config.option("filament_vendor")); - if (vendor && (vendor->values.size() > 0)) { - std::string vendor_name = vendor->values[0]; - m_vendor_name = vendor_name; - } - brands.push_back(m_vendor_name); - } - } - } - - //init MaterialItem - auto extruders = wxGetApp().plater()->get_partplate_list().get_curr_plate()->get_used_extruders(); - - MaterialHash::iterator iter = m_materialList.begin(); - while (iter != m_materialList.end()) { - int id = iter->first; - Material* item = iter->second; - item->item->Destroy(); - delete item; - iter++; - } - - m_sizer_material->Clear(); - m_materialList.clear(); - m_filaments.clear(); - - for (auto i = 0; i < extruders.size(); i++) { - auto extruder = extruders[i] - 1; - auto colour = wxGetApp().preset_bundle->project_config.opt_string("filament_colour", (unsigned int) extruder); - ColorRGBA rgb; - decode_color(colour, rgb); - - auto colour_rgb = wxColour((int) rgb.r_uchar(), (int) rgb.g_uchar(), (int) rgb.b_uchar(), (int) rgb.a_uchar()); - if (extruder >= materials.size() || extruder < 0 || extruder >= display_materials.size()) - continue; - - MaterialItem* item = new MaterialItem(m_scrollable_region, colour_rgb, _L(display_materials[extruder])); - m_sizer_material->Add(item, 0, wxALL, FromDIP(4)); - - item->Bind(wxEVT_LEFT_UP, [this, item, materials, extruder](wxMouseEvent& e) {}); - item->Bind(wxEVT_LEFT_DOWN, [this, item, materials, extruder](wxMouseEvent& e) { - MaterialHash::iterator iter = m_materialList.begin(); - while (iter != m_materialList.end()) { - int id = iter->first; - Material* item = iter->second; - MaterialItem* m = item->item; - m->on_normal(); - iter++; - } - - m_current_filament_id = extruder; - item->on_selected(); - - - auto mouse_pos = ClientToScreen(e.GetPosition()); - wxPoint rect = item->ClientToScreen(wxPoint(0, 0)); - - // update ams data - DeviceManager* dev_manager = Slic3r::GUI::wxGetApp().getDeviceManager(); - if (!dev_manager) return; - MachineObject* obj_ = dev_manager->get_selected_machine(); - - if (obj_ && obj_->is_support_ams_mapping()) { - if (m_mapping_popup.IsShown()) return; - wxPoint pos = item->ClientToScreen(wxPoint(0, 0)); - pos.y += item->GetRect().height; - m_mapping_popup.Move(pos); - - if (obj_ && - obj_->has_ams() && - m_checkbox_list["use_ams"]->GetValue() && - obj_->dev_id == m_printer_last_select) - { - m_mapping_popup.set_parent_item(item); - m_mapping_popup.set_current_filament_id(extruder); - m_mapping_popup.set_tag_texture(materials[extruder]); - m_mapping_popup.update_ams_data(obj_->amsList); - m_mapping_popup.Popup(); - } - } - }); - - Material* material_item = new Material(); - material_item->id = extruder; - material_item->item = item; - m_materialList[i] = material_item; - - // build for ams mapping - if (extruder < materials.size() && extruder >= 0) { - FilamentInfo info; - info.id = extruder; - info.type = materials[extruder]; - info.brand = brands[extruder]; - info.filament_id=m_filaments_id[extruder]; - info.color = wxString::Format("#%02X%02X%02X%02X", colour_rgb.Red(), colour_rgb.Green(), colour_rgb.Blue(), colour_rgb.Alpha()).ToStdString(); - m_filaments.push_back(info); - } - } - - if (extruders.size() <= 4) { - m_sizer_material->SetCols(extruders.size()); - } - else { - m_sizer_material->SetCols(4); - } - m_scrollable_region->Layout(); m_scrollable_region->Fit(); @@ -4111,10 +4374,6 @@ void SelectMachineDialog::set_default_normal() m_scrollable_view->SetScrollRate(0, 0); } #endif // __WXOSX_MAC__ - - - reset_ams_material(); - // basic info auto aprint_stats = m_plater->get_partplate_list().get_current_fff_print().print_statistics(); wxString time; @@ -4148,7 +4407,7 @@ void SelectMachineDialog::set_default_from_sdcard() image = image.Rescale(FromDIP(256), FromDIP(256)); m_thumbnailPanel->set_thumbnail(image); } - + //for black list std::vector materials; std::vector brands; @@ -4333,7 +4592,7 @@ bool SelectMachineDialog::Show(bool show) DeviceManager* dev = Slic3r::GUI::wxGetApp().getDeviceManager(); if (dev) { MachineObject* obj_ = dev->get_selected_machine(); - if (obj_ && obj_->connection_type() == "cloud" && m_print_type == FROM_SDCARD_VIEW) { + if (obj_ && obj_->connection_type() == "cloud" /*&& m_print_type == FROM_SDCARD_VIEW*/) { if (obj_->is_connected()) { obj_->disconnect(); } @@ -4555,9 +4814,10 @@ void EditDevNameDialog::on_edit_name(wxCommandEvent &e) Fit(); } - void ThumbnailPanel::set_thumbnail(wxImage img) + void ThumbnailPanel::set_thumbnail(wxImage &img) { - m_bitmap = img; + m_brightness_value = get_brightness_value(img); + m_bitmap = img; //Paint the background bitmap to the thumbnail bitmap with wxMemoryDC wxMemoryDC dc; bitmap_with_background.Create(wxSize(m_bitmap.GetWidth(), m_bitmap.GetHeight())); @@ -4576,7 +4836,7 @@ void EditDevNameDialog::on_edit_name(wxCommandEvent &e) void ThumbnailPanel::render(wxDC& dc) { - if (wxGetApp().dark_mode()) { + if (wxGetApp().dark_mode() && m_brightness_value < SHOW_BACKGROUND_BITMAP_PIXEL_THRESHOLD) { #ifdef __WXMSW__ wxMemoryDC memdc; wxBitmap bmp(GetSize()); diff --git a/src/slic3r/GUI/SelectMachine.hpp b/src/slic3r/GUI/SelectMachine.hpp index bab4d3d4e9..16da5e05d5 100644 --- a/src/slic3r/GUI/SelectMachine.hpp +++ b/src/slic3r/GUI/SelectMachine.hpp @@ -445,6 +445,12 @@ protected: wxStaticBitmap * img_use_ams_tip{nullptr}; wxStaticBitmap * img_ams_backup{nullptr}; ScalableBitmap * enable_ams{nullptr}; + ThumbnailData m_cur_input_thumbnail_data; + ThumbnailData m_cur_no_light_thumbnail_data; + ThumbnailData m_preview_thumbnail_data;//when ams map change + std::vector m_preview_colors_in_thumbnail; + std::vector m_cur_colors_in_thumbnail; + std::vector m_edge_pixels; public: SelectMachineDialog(Plater *plater = nullptr); @@ -483,7 +489,15 @@ public: void on_set_finish_mapping(wxCommandEvent& evt); void on_print_job_cancel(wxCommandEvent& evt); void set_default(); - void set_default_normal(); + void reset_and_sync_ams_list(); + void clone_thumbnail_data(); + void record_edge_pixels_data(); + wxColour adjust_color_for_render(const wxColour& color); + void final_deal_edge_pixels_data(ThumbnailData& data); + void updata_thumbnail_data_after_connected_printer(); + void unify_deal_thumbnail_data(ThumbnailData &input_data, ThumbnailData &no_light_data); + void change_default_normal(int old_filament_id, wxColour temp_ams_color); + void set_default_normal(const ThumbnailData&); void set_default_from_sdcard(); void update_page_turn_state(bool show); void on_timer(wxTimerEvent& event); @@ -567,12 +581,12 @@ public: void OnPaint(wxPaintEvent &event); void PaintBackground(wxDC &dc); void OnEraseBackground(wxEraseEvent &event); - void set_thumbnail(wxImage img); + void set_thumbnail(wxImage &img); void render(wxDC &dc); private: ScalableBitmap m_background_bitmap; wxBitmap bitmap_with_background; - + int m_brightness_value{ -1 }; }; }} // namespace Slic3r::GUI diff --git a/src/slic3r/GUI/Selection.cpp b/src/slic3r/GUI/Selection.cpp index 4b06c543b8..b952420b0d 100644 --- a/src/slic3r/GUI/Selection.cpp +++ b/src/slic3r/GUI/Selection.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2019 - 2023 Enrico Turri @enricoturri1966, Oleksandra Iushchenko @YuSanka, Vojtěch Bubník @bubnikv, Tomáš Mészáros @tamasmeszaros, Lukáš Matěna @lukasmatena, Filip Sykala @Jony01 -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "libslic3r/libslic3r.h" #include "Selection.hpp" diff --git a/src/slic3r/GUI/Selection.hpp b/src/slic3r/GUI/Selection.hpp index 10954488df..52b1a81851 100644 --- a/src/slic3r/GUI/Selection.hpp +++ b/src/slic3r/GUI/Selection.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2019 - 2023 Enrico Turri @enricoturri1966, Oleksandra Iushchenko @YuSanka, Filip Sykala @Jony01, Lukáš Matěna @lukasmatena, Vojtěch Bubník @bubnikv -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_GUI_Selection_hpp_ #define slic3r_GUI_Selection_hpp_ diff --git a/src/slic3r/GUI/StatusPanel.cpp b/src/slic3r/GUI/StatusPanel.cpp index 80fe7199a7..2a7ff21b76 100644 --- a/src/slic3r/GUI/StatusPanel.cpp +++ b/src/slic3r/GUI/StatusPanel.cpp @@ -561,11 +561,19 @@ void PrintingTaskPanel::create_panel(wxWindow* parent) void PrintingTaskPanel::paint(wxPaintEvent&) { wxPaintDC dc(m_bitmap_thumbnail); - if (wxGetApp().dark_mode()) - dc.DrawBitmap(m_bitmap_background.bmp(), 0, 0); + if (wxGetApp().dark_mode()) { + if (m_brightness_value > 0 && m_brightness_value < SHOW_BACKGROUND_BITMAP_PIXEL_THRESHOLD) { + dc.DrawBitmap(m_bitmap_background.bmp(), 0, 0); + dc.SetTextForeground(*wxBLACK); + } + else + dc.SetTextForeground(*wxWHITE); + } + else + dc.SetTextForeground(*wxBLACK); dc.DrawBitmap(m_thumbnail_bmp_display, wxPoint(0, 0)); - dc.SetTextForeground(*wxBLACK); dc.SetFont(Label::Body_12); + if (m_plate_index >= 0) { wxString plate_id_str = wxString::Format("%d", m_plate_index); dc.DrawText(plate_id_str, wxPoint(4, 4)); @@ -1990,6 +1998,7 @@ void StatusPanel::on_webrequest_state(wxWebRequestEvent &evt) img_list.insert(std::make_pair(m_request_url, img)); wxImage resize_img = img.Scale(m_project_task_panel->get_bitmap_thumbnail()->GetSize().x, m_project_task_panel->get_bitmap_thumbnail()->GetSize().y, wxIMAGE_QUALITY_HIGH); m_project_task_panel->set_thumbnail_img(resize_img); + m_project_task_panel->set_brightness_value(get_brightness_value(resize_img)); } if (obj) { m_project_task_panel->set_plate_index(obj->m_plate_index); @@ -3229,6 +3238,7 @@ void StatusPanel::update_cloud_subtask(MachineObject *obj) img = it->second; wxImage resize_img = img.Scale(m_project_task_panel->get_bitmap_thumbnail()->GetSize().x, m_project_task_panel->get_bitmap_thumbnail()->GetSize().y); m_project_task_panel->set_thumbnail_img(resize_img); + m_project_task_panel->set_brightness_value(get_brightness_value(resize_img)); } if (this->obj) { m_project_task_panel->set_plate_index(obj->m_plate_index); diff --git a/src/slic3r/GUI/StatusPanel.hpp b/src/slic3r/GUI/StatusPanel.hpp index eee2fafdfe..517367d7f3 100644 --- a/src/slic3r/GUI/StatusPanel.hpp +++ b/src/slic3r/GUI/StatusPanel.hpp @@ -206,6 +206,7 @@ private: ProgressBar* m_gauge_progress; Label* m_error_text; PrintingTaskType m_type; + int m_brightness_value{ -1 }; public: void init_bitmaps(); @@ -227,6 +228,7 @@ public: void show_priting_use_info(bool show, wxString time = wxEmptyString, wxString weight = wxEmptyString); void show_profile_info(bool show, wxString profile = wxEmptyString); void set_thumbnail_img(const wxBitmap& bmp); + void set_brightness_value(int value) { m_brightness_value = value; } void set_plate_index(int plate_idx = -1); void market_scoring_show(); void market_scoring_hide(); @@ -246,7 +248,6 @@ public: void set_star_count_dirty(bool dirty) { m_star_count_dirty = dirty; } void set_has_reted_text(bool has_rated); void paint(wxPaintEvent&); - }; class StatusBasePanel : public wxScrolledWindow diff --git a/src/slic3r/GUI/SurfaceDrag.cpp b/src/slic3r/GUI/SurfaceDrag.cpp index 3d69522fd4..6547c8d8c5 100644 --- a/src/slic3r/GUI/SurfaceDrag.cpp +++ b/src/slic3r/GUI/SurfaceDrag.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2023 Oleksandra Iushchenko @YuSanka -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "SurfaceDrag.hpp" #include // ModelVolume diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index a1168bee3a..16a6e08b61 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -1,22 +1,3 @@ -///|/ Copyright (c) Prusa Research 2017 - 2023 Oleksandra Iushchenko @YuSanka, Lukáš Matěna @lukasmatena, Lukáš Hejl @hejllukas, Vojtěch Bubník @bubnikv, Pavel Mikuš @Godrak, Tomáš Mészáros @tamasmeszaros, David Kocík @kocikdav, Enrico Turri @enricoturri1966, Vojtěch Král @vojtechkral -///|/ Copyright (c) 2021 Martin Budden -///|/ Copyright (c) 2021 Ilya @xorza -///|/ Copyright (c) 2019 John Drake @foxox -///|/ Copyright (c) 2019 Matthias Urlichs @smurfix -///|/ Copyright (c) 2019 Thomas Moore -///|/ Copyright (c) 2019 Sijmen Schoon -///|/ Copyright (c) 2018 Martin Loidl @LoidlM -///|/ -///|/ ported from lib/Slic3r/GUI/Tab.pm: -///|/ Copyright (c) Prusa Research 2016 - 2018 Vojtěch Bubník @bubnikv, Lukáš Matěna @lukasmatena -///|/ Copyright (c) 2015 - 2017 Joseph Lenox @lordofhyphens -///|/ Copyright (c) Slic3r 2012 - 2016 Alessandro Ranellucci @alranel -///|/ Copyright (c) 2016 Chow Loong Jin @hyperair -///|/ Copyright (c) 2012 QuantumConcepts -///|/ Copyright (c) 2012 Henrik Brix Andersen @henrikbrixandersen -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ // #include "libslic3r/GCodeSender.hpp" //#include "slic3r/Utils/Serial.hpp" #include "Tab.hpp" @@ -3362,6 +3343,7 @@ void TabFilament::build() optgroup->append_line(line); optgroup->append_single_option_line("reduce_fan_stop_start_freq"); optgroup->append_single_option_line("slow_down_for_layer_cooling", "auto-cooling"); + optgroup->append_single_option_line("dont_slow_down_outer_wall"); optgroup->append_single_option_line("slow_down_min_speed"); optgroup->append_single_option_line("enable_overhang_bridge_fan", "auto-cooling"); @@ -3603,6 +3585,10 @@ void TabFilament::toggle_options() toggle_option(el, has_enable_overhang_bridge_fan); toggle_option("additional_cooling_fan_speed", cfg.opt_bool("auxiliary_fan")); + + // Orca: toggle dont slow down for external perimeters if + bool has_slow_down_for_layer_cooling = m_config->opt_bool("slow_down_for_layer_cooling", 0); + toggle_option("dont_slow_down_outer_wall", has_slow_down_for_layer_cooling); } if (m_active_page->title() == L("Filament")) { @@ -5127,12 +5113,12 @@ void Tab::clear_pages() { // invalidated highlighter, if any exists m_highlighter.invalidate(); - //BBS: clear page in Parent - //m_page_sizer->Clear(true); - m_parent->clear_page(); // clear pages from the controlls for (auto p : m_pages) p->clear(); + //BBS: clear page in Parent + //m_page_sizer->Clear(true); + m_parent->clear_page(); // nulling pointers m_parent_preset_description_line = nullptr; diff --git a/src/slic3r/GUI/Tab.hpp b/src/slic3r/GUI/Tab.hpp index 7ad32a9398..d5648a267b 100644 --- a/src/slic3r/GUI/Tab.hpp +++ b/src/slic3r/GUI/Tab.hpp @@ -1,17 +1,3 @@ -///|/ Copyright (c) Prusa Research 2017 - 2023 Oleksandra Iushchenko @YuSanka, Tomáš Mészáros @tamasmeszaros, Vojtěch Bubník @bubnikv, Lukáš Matěna @lukasmatena, Enrico Turri @enricoturri1966, Vojtěch Král @vojtechkral -///|/ Copyright (c) 2019 John Drake @foxox -///|/ Copyright (c) 2018 Martin Loidl @LoidlM -///|/ -///|/ ported from lib/Slic3r/GUI/Tab.pm: -///|/ Copyright (c) Prusa Research 2016 - 2018 Vojtěch Bubník @bubnikv, Lukáš Matěna @lukasmatena -///|/ Copyright (c) 2015 - 2017 Joseph Lenox @lordofhyphens -///|/ Copyright (c) Slic3r 2012 - 2016 Alessandro Ranellucci @alranel -///|/ Copyright (c) 2016 Chow Loong Jin @hyperair -///|/ Copyright (c) 2012 QuantumConcepts -///|/ Copyright (c) 2012 Henrik Brix Andersen @henrikbrixandersen -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_Tab_hpp_ #define slic3r_Tab_hpp_ diff --git a/src/slic3r/GUI/UnsavedChangesDialog.cpp b/src/slic3r/GUI/UnsavedChangesDialog.cpp index 48084bd5bf..b47f3c0389 100644 --- a/src/slic3r/GUI/UnsavedChangesDialog.cpp +++ b/src/slic3r/GUI/UnsavedChangesDialog.cpp @@ -1,9 +1,3 @@ -///|/ Copyright (c) Prusa Research 2020 - 2023 Oleksandra Iushchenko @YuSanka, Lukáš Matěna @lukasmatena, Vojtěch Bubník @bubnikv, Enrico Turri @enricoturri1966, David Kocík @kocikdav -///|/ Copyright (c) 2021 Pascal de Bruijn @pmjdebruijn -///|/ Copyright (c) 2021 Sebastian Hammerl -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "UnsavedChangesDialog.hpp" #include diff --git a/src/slic3r/GUI/UnsavedChangesDialog.hpp b/src/slic3r/GUI/UnsavedChangesDialog.hpp index c60eabe193..4597e2cc54 100644 --- a/src/slic3r/GUI/UnsavedChangesDialog.hpp +++ b/src/slic3r/GUI/UnsavedChangesDialog.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2020 - 2023 Oleksandra Iushchenko @YuSanka, Lukáš Hejl @hejllukas, Vojtěch Bubník @bubnikv, David Kocík @kocikdav -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_UnsavedChangesDialog_hpp_ #define slic3r_UnsavedChangesDialog_hpp_ diff --git a/src/slic3r/GUI/WebGuideDialog.cpp b/src/slic3r/GUI/WebGuideDialog.cpp index fa5bd9f6ce..cdc2cb4ea7 100644 --- a/src/slic3r/GUI/WebGuideDialog.cpp +++ b/src/slic3r/GUI/WebGuideDialog.cpp @@ -57,7 +57,7 @@ static wxString update_custom_filaments() bool not_need_show = false; std::string filament_name; for (const Preset *preset : filament_id_to_presets.second) { - if (preset->is_system) { + if (preset->is_system || preset->is_project_embedded) { not_need_show = true; break; } diff --git a/src/slic3r/GUI/Widgets/ComboBox.cpp b/src/slic3r/GUI/Widgets/ComboBox.cpp index 38471ddbe7..79ae2fc8ba 100644 --- a/src/slic3r/GUI/Widgets/ComboBox.cpp +++ b/src/slic3r/GUI/Widgets/ComboBox.cpp @@ -166,6 +166,7 @@ int ComboBox::Append(const wxString &item, void ComboBox::DoClear() { + SetIcon("drop_down"); texts.clear(); tips.clear(); icons.clear(); diff --git a/src/slic3r/GUI/Widgets/TabCtrl.cpp b/src/slic3r/GUI/Widgets/TabCtrl.cpp index 25835c8858..36778f6816 100644 --- a/src/slic3r/GUI/Widgets/TabCtrl.cpp +++ b/src/slic3r/GUI/Widgets/TabCtrl.cpp @@ -106,10 +106,6 @@ int TabCtrl::AppendItem(const wxString &item, btn->SetBackgroundColor(StateColor()); btn->SetCornerRadius(0); btn->SetPaddingSize({TAB_BUTTON_PADDING}); - wxClientDC dc(this); // ORCA calculate tab width from bold font to prevent tab movements on tab change - dc.SetFont(this->bold); - btn->SetMinSize(wxSize(dc.GetTextExtent(item).x + TAB_BUTTON_PADDING_X * 2, btn->GetSize().GetHeight())); - dc.Clear(); btns.push_back(btn); if (btns.size() > 1) sizer->GetItem(sizer->GetItemCount() - 1)->SetMinSize({0, 0}); @@ -308,7 +304,7 @@ void TabCtrl::doRender(wxDC& dc) #else dc.SetPen(wxPen(border_color.colorForStates(states), border_width)); dc.DrawLine(0, size.y - BS2, size.x, size.y - BS2); - wxColour c = wxColour("#009688"); // ORCA: Controls under line color on selected tab + wxColour c(0xf2, 0x75, 0x4e, 0xff); dc.SetPen(wxPen(c, 1)); dc.SetBrush(c); dc.DrawRoundedRectangle(x1 - radius, size.y - BS2 - border_width * 3, x2 + radius * 2 - x1, border_width * 3, radius); diff --git a/src/slic3r/GUI/Widgets/TextInput.cpp b/src/slic3r/GUI/Widgets/TextInput.cpp index f8fb92939f..6e1c0f11e2 100644 --- a/src/slic3r/GUI/Widgets/TextInput.cpp +++ b/src/slic3r/GUI/Widgets/TextInput.cpp @@ -102,6 +102,14 @@ void TextInput::SetIcon(const wxBitmap &icon) Rescale(); } +void TextInput::SetIcon(const wxString &icon) +{ + if (this->icon.name() == icon.ToStdString()) + return; + this->icon = ScalableBitmap(this, icon.ToStdString(), 16); + Rescale(); +} + void TextInput::SetLabelColor(StateColor const &color) { label_color = color; diff --git a/src/slic3r/GUI/Widgets/TextInput.hpp b/src/slic3r/GUI/Widgets/TextInput.hpp index 152fb88f3d..61f729506c 100644 --- a/src/slic3r/GUI/Widgets/TextInput.hpp +++ b/src/slic3r/GUI/Widgets/TextInput.hpp @@ -42,6 +42,8 @@ public: void SetIcon(const wxBitmap & icon); + void SetIcon(const wxString & icon); + void SetLabelColor(StateColor const &color); void SetTextColor(StateColor const &color); diff --git a/src/slic3r/GUI/calib_dlg.cpp b/src/slic3r/GUI/calib_dlg.cpp index 8367d91bd2..2b9b87236a 100644 --- a/src/slic3r/GUI/calib_dlg.cpp +++ b/src/slic3r/GUI/calib_dlg.cpp @@ -240,7 +240,7 @@ Temp_Calibration_Dlg::Temp_Calibration_Dlg(wxWindow* parent, wxWindowID id, Plat SetSizer(v_sizer); wxBoxSizer* choice_sizer = new wxBoxSizer(wxHORIZONTAL); - wxString m_rbFilamentTypeChoices[] = { _L("PLA"), _L("ABS/ASA"), _L("PETG"), _L("TPU"), _L("PA-CF"), _L("PET-CF"), _L("Custom") }; + wxString m_rbFilamentTypeChoices[] = { _L("PLA"), _L("ABS/ASA"), _L("PETG"), _L("PCTG"), _L("TPU"), _L("PA-CF"), _L("PET-CF"), _L("Custom") }; int m_rbFilamentTypeNChoices = sizeof(m_rbFilamentTypeChoices) / sizeof(wxString); m_rbFilamentType = new wxRadioBox(this, wxID_ANY, _L("Filament type"), wxDefaultPosition, wxDefaultSize, m_rbFilamentTypeNChoices, m_rbFilamentTypeChoices, 2, wxRA_SPECIFY_COLS); m_rbFilamentType->SetSelection(0); diff --git a/src/slic3r/Utils/CalibUtils.cpp b/src/slic3r/Utils/CalibUtils.cpp index 878f71eb58..b5f9aaf0ed 100644 --- a/src/slic3r/Utils/CalibUtils.cpp +++ b/src/slic3r/Utils/CalibUtils.cpp @@ -14,6 +14,9 @@ namespace Slic3r { namespace GUI { +const float MIN_PA_K_VALUE = 0.0; +const float MAX_PA_K_VALUE = 1.0; + std::unique_ptr CalibUtils::print_worker; wxString wxstr_temp_dir = fs::path(fs::temp_directory_path() / "calib").wstring(); static const std::string temp_dir = wxstr_temp_dir.utf8_string(); diff --git a/src/slic3r/Utils/CalibUtils.hpp b/src/slic3r/Utils/CalibUtils.hpp index e470efa62a..2fd42a2547 100644 --- a/src/slic3r/Utils/CalibUtils.hpp +++ b/src/slic3r/Utils/CalibUtils.hpp @@ -10,6 +10,9 @@ class ProgressIndicator; class Preset; namespace GUI { +extern const float MIN_PA_K_VALUE; +extern const float MAX_PA_K_VALUE; + class CalibInfo { public: diff --git a/src/slic3r/Utils/EmbossStyleManager.cpp b/src/slic3r/Utils/EmbossStyleManager.cpp index 9966847a88..a4b33227ba 100644 --- a/src/slic3r/Utils/EmbossStyleManager.cpp +++ b/src/slic3r/Utils/EmbossStyleManager.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2022 Filip Sykala @Jony01 -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "EmbossStyleManager.hpp" #include #include // Imgui texture diff --git a/src/slic3r/Utils/EmbossStyleManager.hpp b/src/slic3r/Utils/EmbossStyleManager.hpp index 462336ebc9..ace24b3ec8 100644 --- a/src/slic3r/Utils/EmbossStyleManager.hpp +++ b/src/slic3r/Utils/EmbossStyleManager.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2022 Filip Sykala @Jony01 -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_EmbossStyleManager_hpp_ #define slic3r_EmbossStyleManager_hpp_ diff --git a/src/slic3r/Utils/FixModelByWin10.cpp b/src/slic3r/Utils/FixModelByWin10.cpp index 70823e23d6..ea76a59ce6 100644 --- a/src/slic3r/Utils/FixModelByWin10.cpp +++ b/src/slic3r/Utils/FixModelByWin10.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2018 - 2023 Oleksandra Iushchenko @YuSanka, Lukáš Matěna @lukasmatena, Pavel Mikuš @Godrak, Enrico Turri @enricoturri1966, Vojtěch Bubník @bubnikv -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifdef HAS_WIN10SDK #ifndef NOMINMAX diff --git a/src/slic3r/Utils/FontConfigHelp.cpp b/src/slic3r/Utils/FontConfigHelp.cpp index 2746b0c000..15beca07ba 100644 --- a/src/slic3r/Utils/FontConfigHelp.cpp +++ b/src/slic3r/Utils/FontConfigHelp.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2021 - 2022 Filip Sykala @Jony01 -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "FontConfigHelp.hpp" #ifdef EXIST_FONT_CONFIG_INCLUDE diff --git a/src/slic3r/Utils/FontConfigHelp.hpp b/src/slic3r/Utils/FontConfigHelp.hpp index d60c7e7f07..d2d7738767 100644 --- a/src/slic3r/Utils/FontConfigHelp.hpp +++ b/src/slic3r/Utils/FontConfigHelp.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2021 - 2022 Filip Sykala @Jony01 -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_FontConfigHelp_hpp_ #define slic3r_FontConfigHelp_hpp_ diff --git a/src/slic3r/Utils/Http.cpp b/src/slic3r/Utils/Http.cpp index 88d9acf934..995bf19374 100644 --- a/src/slic3r/Utils/Http.cpp +++ b/src/slic3r/Utils/Http.cpp @@ -86,6 +86,13 @@ std::unique_ptr CurlGlobalInit::instance; std::map extra_headers; std::mutex g_mutex; +struct form_file +{ + fs::ifstream ifs; + boost::filesystem::ifstream::off_type init_offset; + size_t content_length; +}; + struct Http::priv { enum { @@ -103,7 +110,7 @@ struct Http::priv std::string buffer; // Used for storing file streams added as multipart form parts // Using a deque here because unlike vector it doesn't ivalidate pointers on insertion - std::deque form_files; + std::deque form_files; std::string postfields; std::string error_buffer; // Used for CURLOPT_ERRORBUFFER std::string headers; @@ -130,7 +137,7 @@ struct Http::priv void set_timeout_connect(long timeout); void set_timeout_max(long timeout); - void form_add_file(const char *name, const fs::path &path, const char* filename); + void form_add_file(const char *name, const fs::path &path, const char* filename, boost::filesystem::ifstream::off_type offset, size_t length); /* mime */ void mime_form_add_text(const char* name, const char* value); void mime_form_add_file(const char* name, const char* path); @@ -254,15 +261,27 @@ int Http::priv::xfercb_legacy(void *userp, double dltotal, double dlnow, double size_t Http::priv::form_file_read_cb(char *buffer, size_t size, size_t nitems, void *userp) { - auto stream = reinterpret_cast(userp); + auto f = reinterpret_cast(userp); try { - stream->read(buffer, size * nitems); + size_t max_read_size = size * nitems; + if (f->content_length == 0) { + // Unlimited + f->ifs.read(buffer, max_read_size); + } else { + unsigned long long read_size = f->ifs.tellg() - f->init_offset; + if (read_size >= f->content_length) { + return 0; + } + + max_read_size = std::min(max_read_size, size_t(f->content_length - read_size)); + f->ifs.read(buffer, max_read_size); + } } catch (const std::exception &) { return CURL_READFUNC_ABORT; } - return stream->gcount(); + return f->ifs.gcount(); } size_t Http::priv::headers_cb(char *buffer, size_t size, size_t nitems, void *userp) @@ -286,7 +305,7 @@ void Http::priv::set_timeout_max(long timeout) ::curl_easy_setopt(curl, CURLOPT_TIMEOUT, timeout); } -void Http::priv::form_add_file(const char *name, const fs::path &path, const char* filename) +void Http::priv::form_add_file(const char *name, const fs::path &path, const char* filename, boost::filesystem::ifstream::off_type offset, size_t length) { // We can't use CURLFORM_FILECONTENT, because curl doesn't support Unicode filenames on Windows // and so we use CURLFORM_STREAM with boost ifstream to read the file. @@ -295,18 +314,21 @@ void Http::priv::form_add_file(const char *name, const fs::path &path, const cha filename = path.string().c_str(); } - form_files.emplace_back(path, std::ios::in | std::ios::binary); - auto &stream = form_files.back(); - stream.seekg(0, std::ios::end); - size_t size = stream.tellg(); - stream.seekg(0); + form_files.emplace_back(form_file{{path, std::ios::in | std::ios::binary}, offset, length}); + auto &f = form_files.back(); + size_t size = length; + if (length == 0) { + f.ifs.seekg(0, std::ios::end); + size = f.ifs.tellg() - offset; + } + f.ifs.seekg(offset); if (filename != nullptr) { ::curl_formadd(&form, &form_end, CURLFORM_COPYNAME, name, CURLFORM_FILENAME, filename, CURLFORM_CONTENTTYPE, "application/octet-stream", - CURLFORM_STREAM, static_cast(&stream), + CURLFORM_STREAM, static_cast(&f), CURLFORM_CONTENTSLENGTH, static_cast(size), CURLFORM_END ); @@ -587,9 +609,9 @@ Http& Http::form_add(const std::string &name, const std::string &contents) return *this; } -Http& Http::form_add_file(const std::string &name, const fs::path &path) +Http& Http::form_add_file(const std::string &name, const fs::path &path, boost::filesystem::ifstream::off_type offset, size_t length) { - if (p) { p->form_add_file(name.c_str(), path.c_str(), nullptr); } + if (p) { p->form_add_file(name.c_str(), path.c_str(), nullptr, offset, length); } return *this; } @@ -607,15 +629,15 @@ Http& Http::mime_form_add_file(std::string &name, const char* path) } -Http& Http::form_add_file(const std::wstring& name, const fs::path& path) +Http& Http::form_add_file(const std::wstring& name, const fs::path& path, boost::filesystem::ifstream::off_type offset, size_t length) { - if (p) { p->form_add_file((char*)name.c_str(), path.c_str(), nullptr); } + if (p) { p->form_add_file((char*)name.c_str(), path.c_str(), nullptr, offset, length); } return *this; } -Http& Http::form_add_file(const std::string &name, const fs::path &path, const std::string &filename) +Http& Http::form_add_file(const std::string &name, const fs::path &path, const std::string &filename, boost::filesystem::ifstream::off_type offset, size_t length) { - if (p) { p->form_add_file(name.c_str(), path.c_str(), filename.c_str()); } + if (p) { p->form_add_file(name.c_str(), path.c_str(), filename.c_str(), offset, length); } return *this; } diff --git a/src/slic3r/Utils/Http.hpp b/src/slic3r/Utils/Http.hpp index 1218a562a6..51a49d44e0 100644 --- a/src/slic3r/Utils/Http.hpp +++ b/src/slic3r/Utils/Http.hpp @@ -121,15 +121,15 @@ public: // 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 - Http& form_add_file(const std::string &name, const boost::filesystem::path &path); + Http& form_add_file(const std::string &name, const boost::filesystem::path &path, boost::filesystem::ifstream::off_type offset = 0, size_t length = 0); // Add a HTTP mime form field Http& mime_form_add_text(std::string& name, std::string& value); // Add a HTTP mime form file Http& mime_form_add_file(std::string& name, const char* path); // Same as above except also override the file's filename with a wstring type - Http& form_add_file(const std::wstring& name, const boost::filesystem::path& path); + Http& form_add_file(const std::wstring& name, const boost::filesystem::path& path, boost::filesystem::ifstream::off_type offset = 0, size_t length = 0); // Same as above except also override the file's filename with a custom one - Http& form_add_file(const std::string &name, const boost::filesystem::path &path, const std::string &filename); + Http& form_add_file(const std::string &name, const boost::filesystem::path &path, const std::string &filename, boost::filesystem::ifstream::off_type offset = 0, size_t length = 0); #ifdef WIN32 // Tells libcurl to ignore certificate revocation checks in case of missing or offline distribution points for those SSL backends where such behavior is present. diff --git a/src/slic3r/Utils/NetworkAgent.cpp b/src/slic3r/Utils/NetworkAgent.cpp index 57f3b02877..1ffdf0464e 100644 --- a/src/slic3r/Utils/NetworkAgent.cpp +++ b/src/slic3r/Utils/NetworkAgent.cpp @@ -84,6 +84,7 @@ func_start_print NetworkAgent::start_print_ptr = nullptr; func_start_local_print_with_record NetworkAgent::start_local_print_with_record_ptr = nullptr; func_start_send_gcode_to_sdcard NetworkAgent::start_send_gcode_to_sdcard_ptr = nullptr; func_start_local_print NetworkAgent::start_local_print_ptr = nullptr; +func_start_sdcard_print NetworkAgent::start_sdcard_print_ptr = nullptr; func_get_user_presets NetworkAgent::get_user_presets_ptr = nullptr; func_request_setting_id NetworkAgent::request_setting_id_ptr = nullptr; func_put_setting NetworkAgent::put_setting_ptr = nullptr; @@ -255,6 +256,7 @@ int NetworkAgent::initialize_network_module(bool using_backup) start_local_print_with_record_ptr = reinterpret_cast(get_network_function("bambu_network_start_local_print_with_record")); start_send_gcode_to_sdcard_ptr = reinterpret_cast(get_network_function("bambu_network_start_send_gcode_to_sdcard")); start_local_print_ptr = reinterpret_cast(get_network_function("bambu_network_start_local_print")); + start_sdcard_print_ptr = reinterpret_cast(get_network_function("bambu_network_start_sdcard_print")); get_user_presets_ptr = reinterpret_cast(get_network_function("bambu_network_get_user_presets")); request_setting_id_ptr = reinterpret_cast(get_network_function("bambu_network_request_setting_id")); put_setting_ptr = reinterpret_cast(get_network_function("bambu_network_put_setting")); @@ -376,6 +378,7 @@ int NetworkAgent::unload_network_module() start_local_print_with_record_ptr = nullptr; start_send_gcode_to_sdcard_ptr = nullptr; start_local_print_ptr = nullptr; + start_sdcard_print_ptr = nullptr; get_user_presets_ptr = nullptr; request_setting_id_ptr = nullptr; put_setting_ptr = nullptr; @@ -1072,6 +1075,17 @@ int NetworkAgent::start_local_print(PrintParams params, OnUpdateStatusFn update_ return ret; } +int NetworkAgent::start_sdcard_print(PrintParams params, OnUpdateStatusFn update_fn, WasCancelledFn cancel_fn) +{ + int ret = 0; + if (network_agent && start_sdcard_print_ptr) { + ret = start_sdcard_print_ptr(network_agent, params, update_fn, cancel_fn); + BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format(" : network_agent=%1%, ret=%2%, dev_id=%3%, task_name=%4%, project_name=%5%") + % network_agent % ret % params.dev_id % params.task_name % params.project_name; + } + return ret; +} + int NetworkAgent::get_user_presets(std::map>* user_presets) { int ret = 0; diff --git a/src/slic3r/Utils/NetworkAgent.hpp b/src/slic3r/Utils/NetworkAgent.hpp index d62fa1a7a5..59663fcb0b 100644 --- a/src/slic3r/Utils/NetworkAgent.hpp +++ b/src/slic3r/Utils/NetworkAgent.hpp @@ -64,6 +64,7 @@ typedef int (*func_start_print)(void *agent, PrintParams params, OnUpdateStatusF typedef int (*func_start_local_print_with_record)(void *agent, PrintParams params, OnUpdateStatusFn update_fn, WasCancelledFn cancel_fn, OnWaitFn wait_fn); typedef int (*func_start_send_gcode_to_sdcard)(void *agent, PrintParams params, OnUpdateStatusFn update_fn, WasCancelledFn cancel_fn, OnWaitFn wait_fn); typedef int (*func_start_local_print)(void *agent, PrintParams params, OnUpdateStatusFn update_fn, WasCancelledFn cancel_fn); +typedef int (*func_start_sdcard_print)(void *agent, PrintParams params, OnUpdateStatusFn update_fn, WasCancelledFn cancel_fn); typedef int (*func_get_user_presets)(void *agent, std::map>* user_presets); typedef std::string (*func_request_setting_id)(void *agent, std::string name, std::map* values_map, unsigned int* http_code); typedef int (*func_put_setting)(void *agent, std::string setting_id, std::string name, std::map* values_map, unsigned int* http_code); @@ -179,6 +180,7 @@ public: int start_local_print_with_record(PrintParams params, OnUpdateStatusFn update_fn, WasCancelledFn cancel_fn, OnWaitFn wait_fn); int start_send_gcode_to_sdcard(PrintParams params, OnUpdateStatusFn update_fn, WasCancelledFn cancel_fn, OnWaitFn wait_fn); int start_local_print(PrintParams params, OnUpdateStatusFn update_fn, WasCancelledFn cancel_fn); + int start_sdcard_print(PrintParams params, OnUpdateStatusFn update_fn, WasCancelledFn cancel_fn); int get_user_presets(std::map>* user_presets); std::string request_setting_id(std::string name, std::map* values_map, unsigned int* http_code); int put_setting(std::string setting_id, std::string name, std::map* values_map, unsigned int* http_code); @@ -284,6 +286,7 @@ private: static func_start_local_print_with_record start_local_print_with_record_ptr; static func_start_send_gcode_to_sdcard start_send_gcode_to_sdcard_ptr; static func_start_local_print start_local_print_ptr; + static func_start_sdcard_print start_sdcard_print_ptr; static func_get_user_presets get_user_presets_ptr; static func_request_setting_id request_setting_id_ptr; static func_put_setting put_setting_ptr; diff --git a/src/slic3r/Utils/PresetUpdater.cpp b/src/slic3r/Utils/PresetUpdater.cpp index da61528793..cdd91eb22e 100644 --- a/src/slic3r/Utils/PresetUpdater.cpp +++ b/src/slic3r/Utils/PresetUpdater.cpp @@ -815,19 +815,24 @@ bool PresetUpdater::priv::get_cached_plugins_version(std::string& cached_version live555_library = cache_folder.string() + "/liblive555.so"; #endif + std::string changelog_file = cache_folder.string() + "/network_plugins.json"; if (boost::filesystem::exists(network_library) && boost::filesystem::exists(player_library) - && boost::filesystem::exists(live555_library)) + && boost::filesystem::exists(live555_library) + && boost::filesystem::exists(changelog_file)) { - std::string changelog_file = cache_folder.string() + "/network_plugins.json"; has_plugins = true; try { boost::nowide::ifstream ifs(changelog_file); json j; ifs >> j; - cached_version = j["version"]; - force = j["force"]; + if (j.contains("version")) + cached_version = j["version"]; + if (j.contains("force")) + force = j["force"]; + + BOOST_LOG_TRIVIAL(info) << __FUNCTION__<< ": cached_version = "<request_select_tab(MainFrame::TabPosition::tpMonitor); + } } } diff --git a/src/slic3r/Utils/PrintHost.hpp b/src/slic3r/Utils/PrintHost.hpp index 50699cb4d8..83bd730e42 100644 --- a/src/slic3r/Utils/PrintHost.hpp +++ b/src/slic3r/Utils/PrintHost.hpp @@ -29,6 +29,7 @@ ENABLE_ENUM_BITMASK_OPERATORS(PrintHostPostUploadAction); struct PrintHostUpload { + bool use_3mf; boost::filesystem::path source_path; boost::filesystem::path upload_path; @@ -85,6 +86,7 @@ struct PrintHostJob { PrintHostUpload upload_data; std::unique_ptr printhost; + bool switch_to_device_tab{false}; bool cancelled = false; PrintHostJob() {} @@ -92,6 +94,7 @@ struct PrintHostJob PrintHostJob(PrintHostJob &&other) : upload_data(std::move(other.upload_data)) , printhost(std::move(other.printhost)) + , switch_to_device_tab(other.switch_to_device_tab) , cancelled(other.cancelled) {} @@ -103,7 +106,8 @@ struct PrintHostJob PrintHostJob& operator=(PrintHostJob &&other) { upload_data = std::move(other.upload_data); - printhost = std::move(other.printhost); + printhost = std::move(other.printhost); + switch_to_device_tab = other.switch_to_device_tab; cancelled = other.cancelled; return *this; } diff --git a/src/slic3r/Utils/RaycastManager.cpp b/src/slic3r/Utils/RaycastManager.cpp index 1594a1451e..e3200a1317 100644 --- a/src/slic3r/Utils/RaycastManager.cpp +++ b/src/slic3r/Utils/RaycastManager.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2022 Enrico Turri @enricoturri1966, Filip Sykala @Jony01 -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "RaycastManager.hpp" #include diff --git a/src/slic3r/Utils/RaycastManager.hpp b/src/slic3r/Utils/RaycastManager.hpp index 16563e61a8..4e143ba5dd 100644 --- a/src/slic3r/Utils/RaycastManager.hpp +++ b/src/slic3r/Utils/RaycastManager.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2022 Filip Sykala @Jony01 -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_RaycastManager_hpp_ #define slic3r_RaycastManager_hpp_ diff --git a/src/slic3r/Utils/SimplyPrint.cpp b/src/slic3r/Utils/SimplyPrint.cpp index 2fc72fb9ef..d3f9ddc083 100644 --- a/src/slic3r/Utils/SimplyPrint.cpp +++ b/src/slic3r/Utils/SimplyPrint.cpp @@ -9,17 +9,36 @@ #include "libslic3r/Utils.hpp" #include "slic3r/GUI/I18N.hpp" #include "slic3r/GUI/format.hpp" +#include "slic3r/GUI/GUI_App.hpp" +#include "slic3r/GUI/MainFrame.hpp" namespace Slic3r { +// to make testing easier +//#define SIMPLYPRINT_TEST + +#ifdef SIMPLYPRINT_TEST +#define URL_BASE_HOME "https://test.simplyprint.io" +#define URL_BASE_API "https://testapi.simplyprint.io" +#else +#define URL_BASE_HOME "https://simplyprint.io" +#define URL_BASE_API "https://api.simplyprint.io" +#endif + static constexpr boost::asio::ip::port_type CALLBACK_PORT = 21328; static const std::string CALLBACK_URL = "http://localhost:21328/callback"; static const std::string RESPONSE_TYPE = "code"; static const std::string CLIENT_ID = "simplyprintorcaslicer"; static const std::string CLIENT_SCOPES = "user.read files.temp_upload"; static const std::string OAUTH_CREDENTIAL_PATH = "simplyprint_oauth.json"; -static const std::string TOKEN_URL = "https://simplyprint.io/api/oauth2/Token"; +static const std::string TOKEN_URL = URL_BASE_API"/oauth2/Token"; +#ifdef SIMPLYPRINT_TEST +static constexpr uint64_t MAX_SINGLE_UPLOAD_FILE_SIZE = 100000ull; // Max file size that can be uploaded in a single http request +#else +static constexpr uint64_t MAX_SINGLE_UPLOAD_FILE_SIZE = 100000000ull; // Max file size that can be uploaded in a single http request +#endif +static const std::string CHUNCK_RECEIVE_URL = URL_BASE_API"/0/files/ChunkReceive"; static std::string generate_verification_code(int code_length = 32) { @@ -57,6 +76,9 @@ static std::string url_encode(const std::vectoruse_bbl_device_tab()) { + // When using bbl device tab, we always need to open external browser + return true; + } + + // Otherwise, if user choose to switch to device tab, then don't bother opening external browser + return !app.app_config->get_bool("open_device_tab_post_upload"); +} + SimplyPrint::SimplyPrint(DynamicPrintConfig* config) { cred_file = (boost::filesystem::path(data_dir()) / OAUTH_CREDENTIAL_PATH).make_preferred().string(); @@ -87,7 +122,7 @@ GUI::OAuthParams SimplyPrint::get_oauth_params() const {"code_challenge", code_challenge}, {"code_challenge_method", "S256"}, }; - const auto login_url = (boost::format("https://simplyprint.io/panel/oauth2/authorize?%s") % url_encode(query_parameters)).str(); + const auto login_url = (boost::format(URL_BASE_HOME"/panel/oauth2/authorize?%s") % url_encode(query_parameters)).str(); return GUI::OAuthParams{ login_url, @@ -96,8 +131,8 @@ GUI::OAuthParams SimplyPrint::get_oauth_params() const CALLBACK_URL, CLIENT_SCOPES, RESPONSE_TYPE, - "https://simplyprint.io/login-success", - "https://simplyprint.io/login-success", + URL_BASE_HOME"/login-success", + URL_BASE_HOME"/login-success", TOKEN_URL, verification_code, state, @@ -226,7 +261,7 @@ bool SimplyPrint::test(wxString& curl_msg) const return do_api_call( [](bool is_retry) { - auto http = Http::get("https://api.simplyprint.io/oauth2/TokenInfo"); + auto http = Http::get(URL_BASE_API"/oauth2/TokenInfo"); http.header("Accept", "application/json"); return http; }, @@ -241,30 +276,31 @@ bool SimplyPrint::test(wxString& curl_msg) const }); } -bool SimplyPrint::upload(PrintHostUpload upload_data, ProgressFn prorgess_fn, ErrorFn error_fn, InfoFn info_fn) const +bool SimplyPrint::do_temp_upload(const boost::filesystem::path& file_path, + const std::string& chunk_id, + const std::string& filename, + ProgressFn prorgess_fn, + ErrorFn error_fn) const { - if (cred.find("access_token") == cred.end()) { - error_fn(_L("SimplyPrint account not linked. Go to Connect options to set it up.")); + if (file_path.empty() == chunk_id.empty()) { + BOOST_LOG_TRIVIAL(error) << "SimplyPrint: Invalid arguments: both file_path and chunk_id are set or not provided"; + error_fn(_L("Internel error")); return false; } - // If file is over 100 MB, fail - if (boost::filesystem::file_size(upload_data.source_path) > 104857600ull) { - error_fn(_L("File size exceeds the 100MB upload limit. Please upload your file through the panel.")); - return false; - } - - const auto filename = upload_data.upload_path.filename().string(); - return do_api_call( - [&upload_data, &prorgess_fn, &filename](bool is_retry) { - auto http = Http::post("https://simplyprint.io/api/files/TempUpload"); - http.form_add_file("file", upload_data.source_path.string(), filename) - .on_progress([&prorgess_fn](Http::Progress progress, bool& cancel) { prorgess_fn(std::move(progress), cancel); }); + [&file_path, &chunk_id, &prorgess_fn, &filename](bool is_retry) { + auto http = Http::post(URL_BASE_HOME"/api/files/TempUpload"); + if (!file_path.empty()) { + http.form_add_file("file", file_path, filename); + } else { + http.form_add("chunkId", chunk_id); + } + http.on_progress([&prorgess_fn](Http::Progress progress, bool& cancel) { prorgess_fn(std::move(progress), cancel); }); return http; }, - [&error_fn, &filename](std::string body, unsigned status) { + [&error_fn, &filename, this](std::string body, unsigned status) { BOOST_LOG_TRIVIAL(info) << boost::format("SimplyPrint: File uploaded: HTTP %1%: %2%") % status % body; // Get file UUID @@ -283,8 +319,15 @@ bool SimplyPrint::upload(PrintHostUpload upload_data, ProgressFn prorgess_fn, Er const std::string uuid = j["uuid"]; // Launch external browser for file importing after uploading - const auto url = "https://simplyprint.io/panel?" + url_encode({{"import", "tmp:" + uuid}, {"filename", filename}}); - wxLaunchDefaultBrowser(url); + const auto url = URL_BASE_HOME"/panel?" + url_encode({{"import", "tmp:" + uuid}, {"filename", filename}}); + + if (should_open_in_external_browser()) { + wxLaunchDefaultBrowser(url); + } else { + const auto mainframe = GUI::wxGetApp().mainframe; + mainframe->request_select_tab(MainFrame::TabPosition::tpMonitor); + mainframe->load_printer_url(url); + } return true; }, @@ -295,4 +338,155 @@ bool SimplyPrint::upload(PrintHostUpload upload_data, ProgressFn prorgess_fn, Er }); } +bool SimplyPrint::do_chunk_upload(const boost::filesystem::path& file_path, const std::string& filename, ProgressFn prorgess_fn, ErrorFn error_fn) const +{ + const auto file_size = boost::filesystem::file_size(file_path); +#ifdef SIMPLYPRINT_TEST + constexpr auto buffer_size = MAX_SINGLE_UPLOAD_FILE_SIZE; +#else + constexpr auto buffer_size = MAX_SINGLE_UPLOAD_FILE_SIZE - 1000000; +#endif + + const auto chunk_amount = (size_t)ceil((double) file_size / buffer_size); + + std::string chunk_id; + std::string delete_token; + + // Tell SimplyPrint that the upload has failed and the chunks should be deleted + // Note: any error happens here won't be notified to the user + const auto clean_up = [this, &chunk_id, &delete_token]() { + if (chunk_id.empty()) { + // The initial upload failed, do nothing + BOOST_LOG_TRIVIAL(warning) << "SimplyPrint: Initial chunk upload failed, skip delete"; + return; + } + + assert(!delete_token.empty()); + + BOOST_LOG_TRIVIAL(info) << boost::format("SimplyPrint: Deleting file chunk %s...") % chunk_id; + const std::vector> query_parameters{ + {"id", chunk_id}, + {"temp", "true"}, + {"delete", delete_token}, + }; + const auto url = (boost::format("%s?%s") % CHUNCK_RECEIVE_URL % url_encode(query_parameters)).str(); + do_api_call( + [&url](bool is_retry) { + auto http = Http::get(url); + return http; + }, + [&chunk_id](std::string body, unsigned status) { + BOOST_LOG_TRIVIAL(info) << boost::format("SimplyPrint: File chunk %1% deleted: HTTP %2%: %3%") % chunk_id % status % body; + return true; + }, + [&chunk_id](std::string body, std::string error, unsigned status) { + BOOST_LOG_TRIVIAL(warning) << boost::format("SimplyPrint: Error deleting file chunk %1%: %2%, HTTP %3%, body: `%4%`") % + chunk_id % error % status % body; + return false; + }); + }; + + // Do chunk upload + for (size_t i = 0; i < chunk_amount; i++) { + std::string url; + { + std::vector> query_parameters{ + {"i", std::to_string(i)}, + {"temp", "true"}, + }; + if (i == 0) { + query_parameters.emplace_back("filename", filename); + query_parameters.emplace_back("chunks", std::to_string(chunk_amount)); + query_parameters.emplace_back("totalsize", std::to_string(file_size)); + } else { + query_parameters.emplace_back("id", chunk_id); + } + url = (boost::format("%s?%s") % CHUNCK_RECEIVE_URL % url_encode(query_parameters)).str(); + } + + // Calculate the offset and length of current chunk + const boost::filesystem::ifstream::off_type offset = i * buffer_size; + const size_t length = i == (chunk_amount - 1) ? file_size - offset : buffer_size; + + const bool succ = do_api_call( + [&url, &file_path, &filename, i, chunk_amount, file_size, offset, length, prorgess_fn](bool is_retry) { + BOOST_LOG_TRIVIAL(info) << boost::format("SimplyPrint: Start uploading file chunk [%1%/%2%]...") % (i + 1) % chunk_amount; + auto http = Http::post(url); + http.form_add_file("file", file_path, filename, offset, length); + + http.on_progress([&prorgess_fn, file_size, offset](Http::Progress progress, bool& cancel) { + progress.ultotal = file_size; + progress.ulnow += offset; + + prorgess_fn(std::move(progress), cancel); + }); + + return http; + }, + [&error_fn, i, chunk_amount, this, &chunk_id, &delete_token](std::string body, unsigned status) { + BOOST_LOG_TRIVIAL(info) << boost::format("SimplyPrint: File chunk [%1%/%2%] uploaded: HTTP %3%: %4%") % (i + 1) % chunk_amount % status % body; + if (i == 0) { + // First chunk, parse chunk id + const auto j = nlohmann::json::parse(body, nullptr, false, true); + if (j.is_discarded()) { + BOOST_LOG_TRIVIAL(error) << "SimplyPrint: Invalid or no JSON data on ChunkReceive: " << body; + error_fn(_L("Unknown error")); + return false; + } + + if (j.find("id") == j.end() || j.find("delete_token") == j.end()) { + BOOST_LOG_TRIVIAL(error) << "SimplyPrint: Invalid or no JSON data on ChunkReceive: " << body; + error_fn(_L("Unknown error")); + return false; + } + + const unsigned long id = j["id"]; + + chunk_id = std::to_string(id); + delete_token = j["delete_token"]; + } + return true; + }, + [this, &error_fn, i, chunk_amount](std::string body, std::string error, unsigned status) { + BOOST_LOG_TRIVIAL(error) << boost::format("SimplyPrint: Error uploading file chunk [%1%/%2%]: %3%, HTTP %4%, body: `%5%`") % + (i + 1) % chunk_amount % error % status % body; + error_fn(format_error(body, error, status)); + return false; + }); + + if (!succ) { + clean_up(); + return false; + } + } + + assert(!chunk_id.empty()); + + // Finally, complete the upload using the chunk id + const bool succ = do_temp_upload({}, chunk_id, filename, prorgess_fn, error_fn); + if (!succ) { + clean_up(); + } + + return succ; +} + + +bool SimplyPrint::upload(PrintHostUpload upload_data, ProgressFn prorgess_fn, ErrorFn error_fn, InfoFn info_fn) const +{ + if (cred.find("access_token") == cred.end()) { + error_fn(_L("SimplyPrint account not linked. Go to Connect options to set it up.")); + return false; + } + const auto filename = upload_data.upload_path.filename().string(); + + if (boost::filesystem::file_size(upload_data.source_path) > MAX_SINGLE_UPLOAD_FILE_SIZE) { + // If file is over 100 MB, do chunk upload + return do_chunk_upload(upload_data.source_path, filename, prorgess_fn, error_fn); + } else { + // Normal upload + return do_temp_upload(upload_data.source_path, {}, filename, prorgess_fn, error_fn); + } +} + } // namespace Slic3r diff --git a/src/slic3r/Utils/SimplyPrint.hpp b/src/slic3r/Utils/SimplyPrint.hpp index 2b56764d7c..3804324724 100644 --- a/src/slic3r/Utils/SimplyPrint.hpp +++ b/src/slic3r/Utils/SimplyPrint.hpp @@ -15,10 +15,37 @@ class SimplyPrint : public PrintHost void load_oauth_credential(); + /** + * \brief Call the given SimplyPrint API, and if the token expired do a token refresh then retry + * \param build_request the http request builder + * \param on_complete + * \param on_error + * \return whether the API call succeeded + */ bool do_api_call(std::function build_request, std::function on_complete, std::function on_error) const; + /** + * \brief Upload a temp file and open SimplyPrint panel for file importing + * \param file_path for file smaller than 100MB, this is the file path, otherwise must left empty + * \param chunk_id for file greater than 100MB, this is the chunk id returned by the ChunkReceive API, otherwise must left empty + * \param filename the target file name + * \param prorgess_fn + * \param error_fn + * \return whether upload succeeded + */ + bool do_temp_upload(const boost::filesystem::path& file_path, + const std::string& chunk_id, + const std::string& filename, + ProgressFn prorgess_fn, + ErrorFn error_fn) const; + + bool do_chunk_upload(const boost::filesystem::path& file_path, + const std::string& filename, + ProgressFn prorgess_fn, + ErrorFn error_fn) const; + public: SimplyPrint(DynamicPrintConfig* config); ~SimplyPrint() override = default; diff --git a/src/slic3r/Utils/WxFontUtils.cpp b/src/slic3r/Utils/WxFontUtils.cpp index 9dcf163fe6..deb95de942 100644 --- a/src/slic3r/Utils/WxFontUtils.cpp +++ b/src/slic3r/Utils/WxFontUtils.cpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2021 - 2022 Filip Sykala @Jony01, Vojtěch Bubník @bubnikv -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #include "WxFontUtils.hpp" #include #include diff --git a/src/slic3r/Utils/WxFontUtils.hpp b/src/slic3r/Utils/WxFontUtils.hpp index 1ccd320b96..3845a1085c 100644 --- a/src/slic3r/Utils/WxFontUtils.hpp +++ b/src/slic3r/Utils/WxFontUtils.hpp @@ -1,7 +1,3 @@ -///|/ Copyright (c) Prusa Research 2021 - 2022 Filip Sykala @Jony01 -///|/ -///|/ PrusaSlicer is released under the terms of the AGPLv3 or higher -///|/ #ifndef slic3r_WxFontUtils_hpp_ #define slic3r_WxFontUtils_hpp_ diff --git a/src/slic3r/Utils/bambu_networking.hpp b/src/slic3r/Utils/bambu_networking.hpp index 8fcf374730..c4d992bcf1 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.01.06" +#define BAMBU_NETWORK_AGENT_VERSION "01.09.02.05" //iot preset type strings #define IOT_PRINTER_TYPE_STRING "printer" diff --git a/version.inc b/version.inc index 619c8795c7..8b40194f4d 100644 --- a/version.inc +++ b/version.inc @@ -10,11 +10,11 @@ endif() if(NOT DEFINED BBL_INTERNAL_TESTING) set(BBL_INTERNAL_TESTING "0") endif() -set(SoftFever_VERSION "2.1.0-beta") +set(SoftFever_VERSION "2.1.0") string(REGEX MATCH "^([0-9]+)\\.([0-9]+)\\.([0-9]+)" SoftFever_VERSION_MATCH ${SoftFever_VERSION}) 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.01.66") +set(SLIC3R_VERSION "01.09.03.50")