Merge branch 'SoftFever' into feature/small_perimeter
							
								
								
									
										136
									
								
								README.md
									
										
									
									
									
								
							
							
						
						|  | @ -1,5 +1,139 @@ | |||
|  | ||||
| 
 | ||||
| # Bambu Studio - SoftFever | ||||
| A modified version of Bambu Studio with many handy features.    | ||||
| It's fully compatible with Bambulab X1/X1-C printers. | ||||
| It also supports Voron and Prusa MK3S printers.   | ||||
| You can download it here: https://github.com/SoftFever/BambuStudio-SoftFever/releases | ||||
| 
 | ||||
| ## BambuStudio SoftFever change notes: | ||||
| 
 | ||||
| ### [V1.3.1 changes](https://github.com/SoftFever/BambuStudio-SoftFever/releases/tag/v1.3.1-sf): | ||||
| 1. Support change bed size and nozzle diameter | ||||
| 2. Allow users to specify the bridge infill direction | ||||
| 3. bridge_infill_direction1 | ||||
| 4. bridge_infill_direction2 | ||||
| 5. Change to ISO view angle for preview image | ||||
| 6. Add an option to change Z Hop action: NormalLift/SpiralLift | ||||
| 7. Optimise g-code generation for both Bambu printers and 3rd party printers | ||||
| 8. Support Klipper Exclude Objects | ||||
| 9. Better support for Moonraker's metadata. | ||||
| 
 | ||||
| ### [V1.2.5.3 changes](https://github.com/SoftFever/BambuStudio-SoftFever/releases/tag/v1.2.5.3-sf): | ||||
| 1. Label objects to support Klipper Exclude Objects feature | ||||
| 2. Allow users to change output file name format | ||||
| 3. Fix a bug that pressure advance value was not saved in the profile | ||||
| 4. Optimize non-Bambu printer profiles | ||||
| 5. Remove M900 S0 which is not necessary. | ||||
| 
 | ||||
| ### [V1.2.5 changes](https://github.com/SoftFever/BambuStudio-SoftFever/releases/tag/v1.2.5-sf): | ||||
| 1. Add options to adjust jerk for different line types | ||||
| 2. Add an option to adjust acceleration for travel. Higher acceleration for travel and lower acceleration for the outer wall makes it possible to print faster and nicer. | ||||
| 3. Add an option to manually override the Pressure Advance / Linear Advance for each filament. | ||||
| 
 | ||||
| ### [V1.2.4 changes](https://github.com/SoftFever/BambuStudio-SoftFever/releases/tag/v1.2.4-sf): | ||||
| 1. Allow users to adjust accelerations for inner/outer walls separately. | ||||
| 2. Allow users to adjust the bottom surface flow-rate | ||||
| 3. Fix an issue that bed temperature for other layers is not set properly. This bug exists in the upstream as well. My PR here(bambulab#319) | ||||
| 
 | ||||
| ### [V1.2 changes](https://github.com/SoftFever/BambuStudio-SoftFever/releases/tag/v1.2-sf): | ||||
| 1. Allow user to change machine limits | ||||
| 2. Allow users to adjust the top surface flow-rate. | ||||
| 3. Unlock some cool hidden features in BambuStudio. | ||||
| 4. Fix an issue that the software connected to Bambulab's staging server by default. (Only Bambulab machines were affected) | ||||
| 
 | ||||
| ### [V1.1 changes](https://github.com/SoftFever/BambuStudio-SoftFever/releases/tag/v1.1): | ||||
| 1. Support third-party printers: | ||||
|    - Voron 2.4 | ||||
|    - Voron Trident | ||||
|    - Voron 0.1 | ||||
|    - Prusa MK3S | ||||
| 2. Export to to .gcode file. | ||||
| 3. Send gcode file to printer | ||||
| 4. Support single wall mode on first layer | ||||
| 5. Support Chamber temperature. This setting can be use in machine start G-Gcode | ||||
| 6. Support thumbview for third-party printers | ||||
| 
 | ||||
| Demo video: https://youtu.be/vSNE9iGj2II   | ||||
|   | ||||
| ## NOTE:  | ||||
| ## - If you have troubles to run the build, you might need to install following runtimes:   | ||||
| - [MicrosoftEdgeWebView2RuntimeInstallerX64](https://github.com/SoftFever/BambuStudio-SoftFever/releases/download/v1.0.10-sf2/MicrosoftEdgeWebView2RuntimeInstallerX64.exe)   | ||||
| - [vcredist2019_x64](https://github.com/SoftFever/BambuStudio-SoftFever/releases/download/v1.0.10-sf2/vcredist2019_x64.exe)   | ||||
| 
 | ||||
| ## - BambuStudio use G2/G3 commands by default. You need to turn on ARC support in your printer's firmware use with this slicer. | ||||
| - For Voron and any Klipper based printers:   | ||||
| You can enable gcode_arcs(G2/G3) support by adding following section into you printer.cfg file:   | ||||
| ``` | ||||
| [gcode_arcs] | ||||
| resolution: 0.1 | ||||
| 
 | ||||
| [gcode_macro m201] | ||||
| gcode: | ||||
|   {% if 'X' in params or 'Y' in params %} | ||||
|     {% set accel = (params.X|default(params.Y)|float, | ||||
|                     params.Y|default(params.X)|float)|min %} | ||||
|       SET_VELOCITY_LIMIT ACCEL={accel} ACCEL_TO_DECEL={accel * 0.5} | ||||
|   {% else %} | ||||
|     SET_VELOCITY_LIMIT | ||||
|   {% endif %} | ||||
| 
 | ||||
| [gcode_macro m203] | ||||
| gcode: | ||||
|   {% if 'X' in params or 'Y' in params %} | ||||
|     {% set speed = (params.X|default(params.Y)|float, | ||||
|                        params.Y|default(params.X)|float)|min %} | ||||
|     SET_VELOCITY_LIMIT VELOCITY={speed} | ||||
|   {% else %} | ||||
|     SET_VELOCITY_LIMIT | ||||
|   {% endif %} | ||||
| 
 | ||||
| [gcode_macro M205] | ||||
| gcode: | ||||
|   {% if 'X' in params or 'Y' in params %} | ||||
|     {% set corner_speed = (params.X|default(params.Y)|float, | ||||
|                        params.Y|default(params.X)|float)|min %} | ||||
|     SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={corner_speed} | ||||
|   {% else %} | ||||
|     SET_VELOCITY_LIMIT | ||||
|   {% endif %} | ||||
| 
 | ||||
| [gcode_macro M900] | ||||
| gcode: | ||||
|       SET_PRESSURE_ADVANCE ADVANCE={params.K} | ||||
| 
 | ||||
| ``` | ||||
| 
 | ||||
| It's also recommended to add followinging dummy macros to make Klipper happy | ||||
| ``` | ||||
| # Make BambuStudio happy | ||||
| [gcode_macro G17] | ||||
| gcode: | ||||
| 
 | ||||
| ``` | ||||
| 
 | ||||
| - For Prusa MK3S:   | ||||
| ARC movement are supported by default. | ||||
| 
 | ||||
| 
 | ||||
| # Gallery | ||||
|  | ||||
|    | ||||
|    | ||||
|    | ||||
|    | ||||
|    | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| Image credits:  | ||||
|  1. Voron 2.4 and Trident: vorondesign.com | ||||
|  3. Voron 0.1: myself | ||||
|  4. Prusa MK3S: Prusa3d   | ||||
| 
 | ||||
| 
 | ||||
| =========================SPLIT=========================      | ||||
| 
 | ||||
|  | ||||
| # BambuStudio | ||||
| Bambu Studio is a cutting-edge, feature-rich slicing software.   | ||||
| It contains project-based workflows, systematically optimized slicing algorithms, and an easy-to-use graphic interface, bringing users an incredibly smooth printing experience. | ||||
|  |  | |||
							
								
								
									
										
											BIN
										
									
								
								SoftFever_doc/1.2.5_feature1.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 98 KiB | 
							
								
								
									
										
											BIN
										
									
								
								SoftFever_doc/1.2.5_feature2.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 136 KiB | 
							
								
								
									
										
											BIN
										
									
								
								SoftFever_doc/accelerations.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 211 KiB | 
							
								
								
									
										
											BIN
										
									
								
								SoftFever_doc/chamber_temperature.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 26 KiB | 
							
								
								
									
										
											BIN
										
									
								
								SoftFever_doc/chamber_temperature_custom_gcode.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 75 KiB | 
							
								
								
									
										
											BIN
										
									
								
								SoftFever_doc/export_gcode.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 62 KiB | 
							
								
								
									
										
											BIN
										
									
								
								SoftFever_doc/hidden_features.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 729 KiB | 
							
								
								
									
										
											BIN
										
									
								
								SoftFever_doc/machine_limits.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 48 KiB | 
							
								
								
									
										
											BIN
										
									
								
								SoftFever_doc/print_host.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 83 KiB | 
							
								
								
									
										
											BIN
										
									
								
								SoftFever_doc/printers1.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 59 KiB | 
							
								
								
									
										
											BIN
										
									
								
								SoftFever_doc/printers2.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 72 KiB | 
							
								
								
									
										
											BIN
										
									
								
								SoftFever_doc/printers3.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 94 KiB | 
							
								
								
									
										
											BIN
										
									
								
								SoftFever_doc/printers4.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 105 KiB | 
							
								
								
									
										
											BIN
										
									
								
								SoftFever_doc/send_to_print.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 353 KiB | 
							
								
								
									
										
											BIN
										
									
								
								SoftFever_doc/single_wall_first_layer.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 217 KiB | 
							
								
								
									
										
											BIN
										
									
								
								SoftFever_doc/topsurface_flowrate.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 305 KiB | 
							
								
								
									
										
											BIN
										
									
								
								SoftFever_doc/voron.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 158 KiB | 
|  | @ -5140,6 +5140,20 @@ msgstr "" | |||
| msgid "Bridge flow" | ||||
| msgstr "" | ||||
| 
 | ||||
| msgid "Top surface flow ratio" | ||||
| msgstr "" | ||||
| 
 | ||||
| msgid "Bottom surface flow ratio" | ||||
| msgstr "" | ||||
| 
 | ||||
| msgid "This factor affects the amount of material for bottom solid infill" | ||||
| msgstr "" | ||||
| 
 | ||||
| msgid "" | ||||
| "This factor affects the amount of material for top solid infill. " | ||||
| "You can decrease it slightly to have smooth surface finish" | ||||
| msgstr "" | ||||
| 
 | ||||
| msgid "" | ||||
| "Decrease this value slightly(for example 0.9) to reduce the amount of " | ||||
| "material for bridge, to improve sag" | ||||
|  | @ -5148,11 +5162,19 @@ msgstr "" | |||
| msgid "Only one wall on top surfaces" | ||||
| msgstr "" | ||||
| 
 | ||||
| msgid "Only one wall on first layer" | ||||
| msgstr "" | ||||
| 
 | ||||
| msgid "" | ||||
| "Use only one wall on flat top surface, to give more space to the top infill " | ||||
| "pattern" | ||||
| msgstr "" | ||||
| 
 | ||||
| msgid "" | ||||
| "Use only one wall on first layer, to give more space to the bottom infill " | ||||
| "pattern" | ||||
| msgstr "" | ||||
| 
 | ||||
| msgid "Slow down for overhang" | ||||
| msgstr "" | ||||
| 
 | ||||
|  |  | |||
|  | @ -3065,7 +3065,7 @@ msgid "Click to edit preset" | |||
| msgstr "点击编辑配置" | ||||
| 
 | ||||
| msgid "Connection" | ||||
| msgstr "" | ||||
| msgstr "连接打印机" | ||||
| 
 | ||||
| msgid "Bed type" | ||||
| msgstr "热床类型" | ||||
|  | @ -5267,19 +5267,41 @@ msgstr "" | |||
| msgid "Bridge flow" | ||||
| msgstr "桥接流量" | ||||
| 
 | ||||
| msgid "Top surface flow ratio" | ||||
| msgstr "顶面流量" | ||||
| 
 | ||||
| msgid "Bottom surface flow ratio" | ||||
| msgstr "首层流量" | ||||
| 
 | ||||
| msgid "This factor affects the amount of material for bottom solid infill" | ||||
| msgstr "首层流量调整系数,默认为1.0" | ||||
| 
 | ||||
| msgid "" | ||||
| "This factor affects the amount of material for top solid infill. " | ||||
| "You can decrease it slightly to have smooth surface finish" | ||||
| msgstr "稍微减小这个数值(比如0.97)可以来改善顶面的光滑程度。" | ||||
| 
 | ||||
| msgid "" | ||||
| "Decrease this value slightly(for example 0.9) to reduce the amount of " | ||||
| "material for bridge, to improve sag" | ||||
| msgstr "稍微减小这个数值(比如0.9)可以减小桥接的材料量,来改善下垂。" | ||||
| 
 | ||||
| msgid "Only one wall on top surfaces" | ||||
| msgstr "顶面单层墙" | ||||
| msgid "Only one wall on first layer" | ||||
| msgstr "首层单层墙" | ||||
| 
 | ||||
| msgid "" | ||||
| "Use only one wall on flat top surface, to give more space to the top infill " | ||||
| "pattern" | ||||
| msgstr "顶面只使用单层墙,从而更多的空间能够使用顶部填充图案" | ||||
| 
 | ||||
| msgid "Only one wall on top surfaces" | ||||
| msgstr "顶面单层墙" | ||||
| 
 | ||||
| msgid "" | ||||
| "Use only one wall on first layer, to give more space to the bottom infill " | ||||
| "pattern" | ||||
| msgstr "首层只使用单层墙,从而更多的空间能够使用底部填充图案" | ||||
| 
 | ||||
| msgid "Slow down for overhang" | ||||
| msgstr "悬垂降速" | ||||
| 
 | ||||
|  | @ -5655,6 +5677,9 @@ msgstr "(未定义)" | |||
| msgid "Infill direction" | ||||
| msgstr "填充方向" | ||||
| 
 | ||||
| msgid "Bridge infill direction" | ||||
| msgstr "拉桥填充方向" | ||||
| 
 | ||||
| msgid "" | ||||
| "Angle for sparse infill pattern, which controls the start or main direction " | ||||
| "of line" | ||||
|  | @ -5707,6 +5732,45 @@ msgid "" | |||
| "adhensive" | ||||
| msgstr "首层加速度。使用较低值可以改善和构建板的粘接。" | ||||
| 
 | ||||
| msgid "Acceleration of outer walls" | ||||
| msgstr "外墙的加速度。它通常使用比内壁速度慢的加速度,以获得更好的质量" | ||||
| 
 | ||||
| msgid "Acceleration of inner walls" | ||||
| msgstr "内圈墙加速度,使用较低值可以改善质量。" | ||||
| 
 | ||||
| msgid "Acceleration of travel moves" | ||||
| msgstr "空驶加速度" | ||||
| 
 | ||||
| msgid "Jerk(XY)" | ||||
| msgstr "抖动(XY)" | ||||
| 
 | ||||
| msgid "Jerk of outer walls" | ||||
| msgstr "外墙抖动值" | ||||
| 
 | ||||
| msgid "Jerk of inner walls" | ||||
| msgstr "内墙抖动值" | ||||
| 
 | ||||
| msgid "Jerk for top surface" | ||||
| msgstr "顶面抖动值" | ||||
| 
 | ||||
| msgid "Jerk for initial layer" | ||||
| msgstr "首层抖动值" | ||||
| 
 | ||||
| msgid "Jerk for travel" | ||||
| msgstr "空驶抖动值" | ||||
| 
 | ||||
| msgid "Enable pressure advance" | ||||
| msgstr "启用压力提前" | ||||
| 
 | ||||
| msgid "Pressure advance" | ||||
| msgstr "压力提前" | ||||
| 
 | ||||
| msgid "Pressure advnce(Klipper) AKA Linear advance factor(Marlin)" | ||||
| msgstr "压力提前(Klipper)或者线性提前(Marlin)" | ||||
| 
 | ||||
| msgid "Enable pressure advance, auto calibration result will be overwriten once enabled." | ||||
| msgstr "启用压力提前,一旦启用会覆盖自动检测的结果" | ||||
| 
 | ||||
| msgid "Line width of initial layer" | ||||
| msgstr "首层的线宽" | ||||
| 
 | ||||
|  | @ -5831,6 +5895,9 @@ msgstr "如果机器有辅助部件冷却风扇,勾选该选项" | |||
| msgid "G-code flavor" | ||||
| msgstr "G-code风格" | ||||
| 
 | ||||
| msgid "G-code thumbnails" | ||||
| msgstr "G-code缩略图尺寸" | ||||
| 
 | ||||
| msgid "What kind of gcode the printer is compatible with" | ||||
| msgstr "打印机兼容的G-code风格'" | ||||
| 
 | ||||
|  | @ -6210,6 +6277,15 @@ msgstr "" | |||
| msgid "Z hop when retract" | ||||
| msgstr "回抽时抬升Z" | ||||
| 
 | ||||
| msgid "Z hop type" | ||||
| msgstr "抬Z类型" | ||||
| 
 | ||||
| msgid "NormalLift" | ||||
| msgstr "直接抬Z" | ||||
| 
 | ||||
| msgid "SpiralLift" | ||||
| msgstr "螺旋抬Z" | ||||
| 
 | ||||
| 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 " | ||||
|  | @ -6539,6 +6615,9 @@ msgstr "除首层外的其它层的喷嘴温度" | |||
| msgid "Nozzle temperature" | ||||
| msgstr "喷嘴温度" | ||||
| 
 | ||||
| msgid "Chamber temperature" | ||||
| msgstr "机箱温度" | ||||
| 
 | ||||
| msgid "Bed temperature difference" | ||||
| msgstr "热床温差" | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										14
									
								
								build_release.bat
									
										
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,14 @@ | |||
| set WP=%CD% | ||||
| cd deps | ||||
| mkdir build | ||||
| cd build | ||||
| set DEPS=%CD%/BambuStudio_dep | ||||
| cmake ../ -G "Visual Studio 16 2019" -DDESTDIR="%CD%/BambuStudio_dep" -DCMAKE_BUILD_TYPE=Release | ||||
| cmake --build . --config Release --target ALL_BUILD -- -m | ||||
| 
 | ||||
| cd %WP% | ||||
| mkdir build  | ||||
| cd build | ||||
| cmake .. -G "Visual Studio 16 2019" -DBBL_RELEASE_TO_PUBLIC=0 -DCMAKE_PREFIX_PATH="%DEPS%/usr/local" -DCMAKE_INSTALL_PREFIX="./BambuStudio-SoftFever" -DCMAKE_BUILD_TYPE=Release -DWIN10SDK_PATH="C:/Program Files (x86)/Windows Kits/10/Include/10.0.19041.0" | ||||
| cmake --build . --config Release --target ALL_BUILD -- -m | ||||
| cmake --build . --target install --config Release | ||||
							
								
								
									
										20
									
								
								build_release_macos.sh
									
										
									
									
									
										Executable file
									
								
							
							
						
						|  | @ -0,0 +1,20 @@ | |||
| #!/bin/sh | ||||
| 
 | ||||
| WD=$(pwd) | ||||
| cd deps | ||||
| mkdir -p build | ||||
| cd build | ||||
| DEPS=$PWD/BambuStudio_dep | ||||
| mkdir -p $DEPS | ||||
| cmake ../ -DDESTDIR="$DEPS" -DOPENSSL_ARCH="darwin64-$(uname -m)-cc" -DCMAKE_BUILD_TYPE=Release | ||||
| make -j10 | ||||
| 
 | ||||
| cd $WD | ||||
| mkdir -p build | ||||
| cd build | ||||
| cmake .. -DBBL_RELEASE_TO_PUBLIC=0 -DCMAKE_PREFIX_PATH="$DEPS/usr/local" -DCMAKE_INSTALL_PREFIX="$PWD/BambuStudio-SoftFever" -DCMAKE_BUILD_TYPE=Release -DCMAKE_MACOSX_RPATH=ON -DCMAKE_INSTALL_RPATH="$DEPS/usr/local" -DCMAKE_MACOSX_BUNDLE=ON | ||||
| cmake --build . --config Release --target all -j10 | ||||
| cmake --build . --target install --config Release -j10 | ||||
| cd BambuStudio-SoftFever | ||||
| cp -r bin/BambuStudio.app/Contents/MacOS BambuStudio.app/Contents | ||||
| cp -r bin/BambuStudio.app/Contents/Info.plist BambuStudio.app/Contents/ | ||||
							
								
								
									
										14
									
								
								build_relwithdebinfo.bat
									
										
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,14 @@ | |||
| set WP=%CD% | ||||
| cd deps | ||||
| mkdir build | ||||
| cd build | ||||
| set DEPS=%CD%/BambuStudio_dep | ||||
| cmake ../ -G "Visual Studio 16 2019" -DDESTDIR="%CD%/BambuStudio_dep" -DCMAKE_BUILD_TYPE=Release | ||||
| cmake --build . --config Release --target ALL_BUILD -- -m | ||||
| 
 | ||||
| cd %WP% | ||||
| mkdir build  | ||||
| cd build | ||||
| cmake .. -G "Visual Studio 16 2019" -DBBL_RELEASE_TO_PUBLIC=0 -DCMAKE_PREFIX_PATH="%DEPS%/usr/local" -DCMAKE_INSTALL_PREFIX="./BambuStudio-SoftFever" -DCMAKE_BUILD_TYPE=RelWithDebInfo -DWIN10SDK_PATH="C:/Program Files (x86)/Windows Kits/10/Include/10.0.19041.0" | ||||
| cmake --build . --config RelWithDebInfo --target ALL_BUILD -- -m | ||||
| @REM cmake --build . --target install --config RelWithDebInfo | ||||
							
								
								
									
										22
									
								
								resources/images/add.svg
									
										
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,22 @@ | |||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| <!-- Generator: Adobe Illustrator 24.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  --> | ||||
| <svg version="1.0" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" | ||||
| 	 viewBox="0 0 128 128" enable-background="new 0 0 128 128" xml:space="preserve"> | ||||
| <g id="ADD"> | ||||
| 	<path fill="#FFFFFF" d="M72.3,117.5H10.5v-75h75v23.27c1.61-0.56,3.28-0.99,5-1.29V41.04l27-27V72.3c1.89,1.71,3.57,3.65,5,5.76V8 | ||||
| 		c0-0.05-0.01-0.1-0.02-0.15c0-0.06-0.01-0.11-0.02-0.17c-0.03-0.22-0.08-0.43-0.15-0.62c0,0,0-0.01,0-0.01c0,0,0,0,0,0 | ||||
| 		c-0.01-0.03-0.03-0.05-0.04-0.08c-0.05-0.11-0.11-0.21-0.17-0.31c-0.03-0.04-0.05-0.08-0.08-0.11c-0.06-0.08-0.13-0.16-0.2-0.24 | ||||
| 		c-0.03-0.03-0.06-0.07-0.09-0.1c-0.09-0.09-0.19-0.17-0.3-0.25c-0.01-0.01-0.02-0.02-0.04-0.03c-0.12-0.08-0.24-0.15-0.38-0.2 | ||||
| 		c-0.04-0.02-0.09-0.03-0.13-0.05c-0.1-0.04-0.2-0.07-0.3-0.09c-0.05-0.01-0.09-0.02-0.14-0.03c-0.15-0.03-0.3-0.05-0.45-0.05H48 | ||||
| 		c-0.57,0-1.12,0.19-1.56,0.55l-40,32c-0.03,0.03-0.06,0.06-0.09,0.09c-0.07,0.06-0.13,0.12-0.19,0.19 | ||||
| 		c-0.05,0.06-0.1,0.12-0.15,0.18c-0.05,0.07-0.09,0.13-0.14,0.2c-0.04,0.07-0.08,0.14-0.12,0.21c-0.03,0.07-0.07,0.15-0.09,0.22 | ||||
| 		c-0.03,0.08-0.05,0.16-0.07,0.24c-0.02,0.08-0.04,0.15-0.05,0.23c-0.01,0.09-0.02,0.18-0.03,0.27c0,0.04-0.01,0.08-0.01,0.13v80 | ||||
| 		c0,1.38,1.12,2.5,2.5,2.5h70.06C75.95,121.07,74.01,119.39,72.3,117.5z M48.88,10.5h65.09l-27,27H15.13L48.88,10.5z"/> | ||||
| 	<g> | ||||
| 		<path fill="#ED6B21" d="M96,69.5c-14.61,0-26.5,11.89-26.5,26.5s11.89,26.5,26.5,26.5s26.5-11.89,26.5-26.5S110.61,69.5,96,69.5z | ||||
| 			 M96,117.5c-11.86,0-21.5-9.64-21.5-21.5S84.14,74.5,96,74.5s21.5,9.64,21.5,21.5S107.86,117.5,96,117.5z"/> | ||||
| 		<path fill="#ED6B21" d="M112,93.5H98.5V80c0-1.38-1.12-2.5-2.5-2.5s-2.5,1.12-2.5,2.5v13.5H80c-1.38,0-2.5,1.12-2.5,2.5 | ||||
| 			s1.12,2.5,2.5,2.5h13.5V112c0,1.38,1.12,2.5,2.5,2.5s2.5-1.12,2.5-2.5V98.5H112c1.38,0,2.5-1.12,2.5-2.5S113.38,93.5,112,93.5z"/> | ||||
| 	</g> | ||||
| </g> | ||||
| </svg> | ||||
| After Width: | Height: | Size: 1.9 KiB | 
							
								
								
									
										19
									
								
								resources/images/add_copies.svg
									
										
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,19 @@ | |||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| <!-- Generator: Adobe Illustrator 23.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  --> | ||||
| <svg version="1.0" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" | ||||
| 	 viewBox="0 0 16 16" enable-background="new 0 0 16 16" xml:space="preserve"> | ||||
| <g id="add_x5F_copies"> | ||||
| 	<g> | ||||
| 		<path fill="#808080" d="M8,2c3.31,0,6,2.69,6,6s-2.69,6-6,6s-6-2.69-6-6S4.69,2,8,2 M8,1C4.13,1,1,4.13,1,8s3.13,7,7,7s7-3.13,7-7 | ||||
| 			S11.87,1,8,1L8,1z"/> | ||||
| 	</g> | ||||
| 	<g> | ||||
| 		<path fill="#ED6B21" d="M12,8.75H4C3.59,8.75,3.25,8.41,3.25,8S3.59,7.25,4,7.25h8c0.41,0,0.75,0.34,0.75,0.75S12.41,8.75,12,8.75 | ||||
| 			z"/> | ||||
| 	</g> | ||||
| 	<g> | ||||
| 		<path fill="#ED6B21" d="M8,12.75c-0.41,0-0.75-0.34-0.75-0.75V4c0-0.41,0.34-0.75,0.75-0.75S8.75,3.59,8.75,4v8 | ||||
| 			C8.75,12.41,8.41,12.75,8,12.75z"/> | ||||
| 	</g> | ||||
| </g> | ||||
| </svg> | ||||
| After Width: | Height: | Size: 846 B | 
							
								
								
									
										11
									
								
								resources/images/browse.svg
									
										
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,11 @@ | |||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| <!-- Generator: Adobe Illustrator 23.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  --> | ||||
| <svg version="1.0" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" | ||||
| 	 viewBox="0 0 16 16" enable-background="new 0 0 16 16" xml:space="preserve"> | ||||
| <g id="browse"> | ||||
| 	<path fill="#ED6B21" d="M8.49,2.43c-1.71-1.71-4.49-1.71-6.2,0s-1.71,4.49,0,6.2c1.59,1.59,4.1,1.7,5.82,0.34l1.48,1.48 | ||||
| 		c0,0-0.36,0.36,0,0.73s3.65,3.65,3.65,3.65s0.36,0.36,0.73,0c0.36-0.36,0.73-0.73,0.73-0.73s0.36-0.36,0-0.73s-3.65-3.65-3.65-3.65 | ||||
| 		c-0.36-0.36-0.73,0-0.73,0L8.83,8.25C10.19,6.52,10.08,4.02,8.49,2.43z M8.1,8.25c-1.5,1.5-3.93,1.5-5.43,0s-1.5-3.93,0-5.43 | ||||
| 		s3.93-1.5,5.43,0S9.6,6.75,8.1,8.25z"/> | ||||
| </g> | ||||
| </svg> | ||||
| After Width: | Height: | Size: 777 B | 
							
								
								
									
										110
									
								
								resources/profiles/Anycubic.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,110 @@ | |||
| { | ||||
|     "name": "Anycubic", | ||||
|     "version": "01.02.00.03", | ||||
|     "force_update": "0", | ||||
|     "description": "Anycubic configurations", | ||||
|     "machine_model_list": [ | ||||
|         { | ||||
|             "name": "Anycubic 4Max Pro", | ||||
|             "sub_path": "machine/Anycubic 4Max Pro.json" | ||||
|         } | ||||
|     ], | ||||
|     "process_list": [ | ||||
|         { | ||||
|             "name": "fdm_process_common", | ||||
|             "sub_path": "process/fdm_process_common.json" | ||||
|         }, | ||||
|         { | ||||
|             "name": "0.20mm Standard @4MaxPro", | ||||
|             "sub_path": "process/0.20mm Standard @4MaxPro.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": "Anycubic Generic PLA", | ||||
|             "sub_path": "filament/Anycubic Generic PLA.json" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Anycubic Generic PLA-CF", | ||||
|             "sub_path": "filament/Anycubic Generic PLA-CF.json" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Anycubic Generic PETG", | ||||
|             "sub_path": "filament/Anycubic Generic PETG.json" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Anycubic Generic ABS", | ||||
|             "sub_path": "filament/Anycubic Generic ABS.json" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Anycubic Generic TPU", | ||||
|             "sub_path": "filament/Anycubic Generic TPU.json" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Anycubic Generic ASA", | ||||
|             "sub_path": "filament/Anycubic Generic ASA.json" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Anycubic Generic PC", | ||||
|             "sub_path": "filament/Anycubic Generic PC.json" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Anycubic Generic PVA", | ||||
|             "sub_path": "filament/Anycubic Generic PVA.json" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Anycubic Generic PA", | ||||
|             "sub_path": "filament/Anycubic Generic PA.json" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Anycubic Generic PA-CF", | ||||
|             "sub_path": "filament/Anycubic Generic PA-CF.json" | ||||
|         } | ||||
|     ], | ||||
|     "machine_list": [ | ||||
|         { | ||||
|             "name": "fdm_machine_common", | ||||
|             "sub_path": "machine/fdm_machine_common.json" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Anycubic 4Max Pro 0.4 nozzle", | ||||
|             "sub_path": "machine/Anycubic 4Max Pro 0.4 nozzle.json" | ||||
|         } | ||||
|     ] | ||||
| } | ||||
|  | @ -0,0 +1,18 @@ | |||
| { | ||||
|     "type": "filament", | ||||
|     "filament_id": "GFB99", | ||||
|     "setting_id": "GFSB99", | ||||
|     "name": "Anycubic Generic ABS", | ||||
|     "from": "system", | ||||
|     "instantiation": "true", | ||||
|     "inherits": "fdm_filament_abs", | ||||
|     "filament_flow_ratio": [ | ||||
|         "0.926" | ||||
|     ], | ||||
|     "filament_max_volumetric_speed": [ | ||||
|         "12" | ||||
|     ], | ||||
|     "compatible_printers": [ | ||||
|       "Anycubic 4Max Pro 0.4 nozzle" | ||||
|     ] | ||||
| } | ||||
|  | @ -0,0 +1,18 @@ | |||
| { | ||||
|     "type": "filament", | ||||
|     "filament_id": "GFB98", | ||||
|     "setting_id": "GFSB98", | ||||
|     "name": "Anycubic Generic ASA", | ||||
|     "from": "system", | ||||
|     "instantiation": "true", | ||||
|     "inherits": "fdm_filament_asa", | ||||
|     "filament_flow_ratio": [ | ||||
|         "0.93" | ||||
|     ], | ||||
|     "filament_max_volumetric_speed": [ | ||||
|         "12" | ||||
|     ], | ||||
|     "compatible_printers": [ | ||||
|       "Anycubic 4Max Pro 0.4 nozzle" | ||||
|     ] | ||||
| } | ||||
|  | @ -0,0 +1,24 @@ | |||
| { | ||||
|     "type": "filament", | ||||
|     "filament_id": "GFN98", | ||||
|     "setting_id": "GFSN99", | ||||
|     "name": "Anycubic 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": [ | ||||
|         "Anycubic 4Max Pro 0.4 nozzle" | ||||
|     ] | ||||
| } | ||||
|  | @ -0,0 +1,21 @@ | |||
| { | ||||
|     "type": "filament", | ||||
|     "filament_id": "GFN99", | ||||
|     "setting_id": "GFSN98", | ||||
|     "name": "Anycubic 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": [ | ||||
|         "Anycubic 4Max Pro 0.4 nozzle" | ||||
|     ] | ||||
| } | ||||
|  | @ -0,0 +1,18 @@ | |||
| { | ||||
|     "type": "filament", | ||||
|     "filament_id": "GFC99", | ||||
|     "setting_id": "GFSC99", | ||||
|     "name": "Anycubic Generic PC", | ||||
|     "from": "system", | ||||
|     "instantiation": "true", | ||||
|     "inherits": "fdm_filament_pc", | ||||
|     "filament_max_volumetric_speed": [ | ||||
|         "12" | ||||
|     ], | ||||
|     "filament_flow_ratio": [ | ||||
|         "0.94" | ||||
|     ], | ||||
|     "compatible_printers": [ | ||||
|         "Anycubic 4Max Pro 0.4 nozzle" | ||||
|     ] | ||||
| } | ||||
|  | @ -0,0 +1,48 @@ | |||
| { | ||||
|     "type": "filament", | ||||
|     "filament_id": "GFG99", | ||||
|     "setting_id": "GFSG99", | ||||
|     "name": "Anycubic 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": [ | ||||
|         "20" | ||||
|     ], | ||||
|     "slow_down_layer_time": [ | ||||
|         "8" | ||||
|     ], | ||||
|     "filament_flow_ratio": [ | ||||
|         "0.95" | ||||
|     ], | ||||
|     "filament_max_volumetric_speed": [ | ||||
|         "10" | ||||
|     ], | ||||
|     "filament_start_gcode": [ | ||||
|         "; filament start gcode\n" | ||||
|     ], | ||||
|     "compatible_printers": [ | ||||
|       "Anycubic 4Max Pro 0.4 nozzle" | ||||
|     ] | ||||
| } | ||||
|  | @ -0,0 +1,24 @@ | |||
| { | ||||
|     "type": "filament", | ||||
|     "filament_id": "GFL98", | ||||
|     "setting_id": "GFSL98", | ||||
|     "name": "Anycubic 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": [ | ||||
|         "Anycubic 4Max Pro 0.4 nozzle" | ||||
|     ] | ||||
| } | ||||
|  | @ -0,0 +1,21 @@ | |||
| { | ||||
|     "type": "filament", | ||||
|     "filament_id": "GFL99", | ||||
|     "setting_id": "GFSL99", | ||||
|     "name": "Anycubic 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": [ | ||||
|       "Anycubic 4Max Pro 0.4 nozzle" | ||||
|     ] | ||||
| } | ||||
|  | @ -0,0 +1,24 @@ | |||
| { | ||||
|     "type": "filament", | ||||
|     "filament_id": "GFS99", | ||||
|     "setting_id": "GFSS99", | ||||
|     "name": "Anycubic 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": [ | ||||
|         "20" | ||||
|     ], | ||||
|     "compatible_printers": [ | ||||
|       "Anycubic 4Max Pro 0.4 nozzle" | ||||
|     ] | ||||
| } | ||||
|  | @ -0,0 +1,15 @@ | |||
| { | ||||
|     "type": "filament", | ||||
|     "filament_id": "GFU99", | ||||
|     "setting_id": "GFSR99", | ||||
|     "name": "Anycubic Generic TPU", | ||||
|     "from": "system", | ||||
|     "instantiation": "true", | ||||
|     "inherits": "fdm_filament_tpu", | ||||
|     "filament_max_volumetric_speed": [ | ||||
|         "3.2" | ||||
|     ], | ||||
|     "compatible_printers": [ | ||||
|       "Anycubic 4Max Pro 0.4 nozzle" | ||||
|     ] | ||||
| } | ||||
							
								
								
									
										82
									
								
								resources/profiles/Anycubic/filament/fdm_filament_abs.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,82 @@ | |||
| { | ||||
|     "type": "filament", | ||||
|     "name": "fdm_filament_abs", | ||||
|     "from": "system", | ||||
|     "instantiation": "false", | ||||
|     "inherits": "fdm_filament_common", | ||||
|     "cool_plate_temp" : [ | ||||
|         "105" | ||||
|     ], | ||||
|     "eng_plate_temp" : [ | ||||
|         "105" | ||||
|     ], | ||||
|     "hot_plate_temp" : [ | ||||
|         "105" | ||||
|     ], | ||||
|     "cool_plate_temp_initial_layer" : [ | ||||
|         "105" | ||||
|     ], | ||||
|     "eng_plate_temp_initial_layer" : [ | ||||
|         "105" | ||||
|     ], | ||||
|     "hot_plate_temp_initial_layer" : [ | ||||
|         "105" | ||||
|     ], | ||||
|     "slow_down_for_layer_cooling": [ | ||||
|         "1" | ||||
|     ], | ||||
|     "close_fan_the_first_x_layers": [ | ||||
|         "3" | ||||
|     ], | ||||
|     "fan_cooling_layer_time": [ | ||||
|         "30" | ||||
|     ], | ||||
|     "filament_max_volumetric_speed": [ | ||||
|         "28.6" | ||||
|     ], | ||||
|     "filament_type": [ | ||||
|         "ABS" | ||||
|     ], | ||||
|     "filament_density": [ | ||||
|         "1.04" | ||||
|     ], | ||||
|     "filament_cost": [ | ||||
|         "20" | ||||
|     ], | ||||
|     "nozzle_temperature_initial_layer": [ | ||||
|         "260" | ||||
|     ], | ||||
|     "reduce_fan_stop_start_freq": [ | ||||
|         "1" | ||||
|     ], | ||||
|     "fan_max_speed": [ | ||||
|         "80" | ||||
|     ], | ||||
|     "fan_min_speed": [ | ||||
|         "10" | ||||
|     ], | ||||
|     "overhang_fan_threshold": [ | ||||
|         "25%" | ||||
|     ], | ||||
|     "overhang_fan_speed": [ | ||||
|         "80" | ||||
|     ], | ||||
|     "nozzle_temperature": [ | ||||
|         "260" | ||||
|     ], | ||||
|     "temperature_vitrification": [ | ||||
|         "110" | ||||
|     ], | ||||
|     "nozzle_temperature_range_low": [ | ||||
|         "240" | ||||
|     ], | ||||
|     "nozzle_temperature_range_high": [ | ||||
|         "270" | ||||
|     ], | ||||
|     "slow_down_min_speed": [ | ||||
|         "20" | ||||
|     ], | ||||
|     "slow_down_layer_time": [ | ||||
|         "3" | ||||
|     ] | ||||
| } | ||||
							
								
								
									
										82
									
								
								resources/profiles/Anycubic/filament/fdm_filament_asa.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,82 @@ | |||
| { | ||||
|     "type": "filament", | ||||
|     "name": "fdm_filament_asa", | ||||
|     "from": "system", | ||||
|     "instantiation": "false", | ||||
|     "inherits": "fdm_filament_common", | ||||
|     "cool_plate_temp" : [ | ||||
|         "105" | ||||
|     ], | ||||
|     "eng_plate_temp" : [ | ||||
|         "105" | ||||
|     ], | ||||
|     "hot_plate_temp" : [ | ||||
|         "105" | ||||
|     ], | ||||
|     "cool_plate_temp_initial_layer" : [ | ||||
|         "105" | ||||
|     ], | ||||
|     "eng_plate_temp_initial_layer" : [ | ||||
|         "105" | ||||
|     ], | ||||
|     "hot_plate_temp_initial_layer" : [ | ||||
|         "105" | ||||
|     ], | ||||
|     "slow_down_for_layer_cooling": [ | ||||
|         "1" | ||||
|     ], | ||||
|     "close_fan_the_first_x_layers": [ | ||||
|         "3" | ||||
|     ], | ||||
|     "fan_cooling_layer_time": [ | ||||
|         "35" | ||||
|     ], | ||||
|     "filament_max_volumetric_speed": [ | ||||
|         "28.6" | ||||
|     ], | ||||
|     "filament_type": [ | ||||
|         "ASA" | ||||
|     ], | ||||
|     "filament_density": [ | ||||
|         "1.04" | ||||
|     ], | ||||
|     "filament_cost": [ | ||||
|         "20" | ||||
|     ], | ||||
|     "nozzle_temperature_initial_layer": [ | ||||
|         "260" | ||||
|     ], | ||||
|     "reduce_fan_stop_start_freq": [ | ||||
|         "1" | ||||
|     ], | ||||
|     "fan_max_speed": [ | ||||
|         "80" | ||||
|     ], | ||||
|     "fan_min_speed": [ | ||||
|         "10" | ||||
|     ], | ||||
|     "overhang_fan_threshold": [ | ||||
|         "25%" | ||||
|     ], | ||||
|     "overhang_fan_speed": [ | ||||
|         "80" | ||||
|     ], | ||||
|     "nozzle_temperature": [ | ||||
|         "260" | ||||
|     ], | ||||
|     "temperature_vitrification": [ | ||||
|         "110" | ||||
|     ], | ||||
|     "nozzle_temperature_range_low": [ | ||||
|         "240" | ||||
|     ], | ||||
|     "nozzle_temperature_range_high": [ | ||||
|         "270" | ||||
|     ], | ||||
|     "slow_down_min_speed": [ | ||||
|         "20" | ||||
|     ], | ||||
|     "slow_down_layer_time": [ | ||||
|         "3" | ||||
|     ] | ||||
| } | ||||
							
								
								
									
										135
									
								
								resources/profiles/Anycubic/filament/fdm_filament_common.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,135 @@ | |||
| { | ||||
|     "type": "filament", | ||||
|     "name": "fdm_filament_common", | ||||
|     "from": "system", | ||||
|     "instantiation": "false", | ||||
|     "cool_plate_temp" : [ | ||||
|         "60" | ||||
|     ], | ||||
|     "eng_plate_temp" : [ | ||||
|         "60" | ||||
|     ], | ||||
|     "hot_plate_temp" : [ | ||||
|         "60" | ||||
|     ], | ||||
|     "cool_plate_temp_initial_layer" : [ | ||||
|         "60" | ||||
|     ], | ||||
|     "eng_plate_temp_initial_layer" : [ | ||||
|         "60" | ||||
|     ], | ||||
|     "hot_plate_temp_initial_layer" : [ | ||||
|         "60" | ||||
|     ], | ||||
|     "overhang_fan_threshold": [ | ||||
|         "95%" | ||||
|     ], | ||||
|     "overhang_fan_speed": [ | ||||
|         "100" | ||||
|     ], | ||||
|     "slow_down_for_layer_cooling": [ | ||||
|         "1" | ||||
|     ], | ||||
|     "close_fan_the_first_x_layers": [ | ||||
|         "3" | ||||
|     ], | ||||
|     "filament_end_gcode": [ | ||||
|         "; filament end gcode \n" | ||||
|     ], | ||||
|     "filament_flow_ratio": [ | ||||
|         "1" | ||||
|     ], | ||||
|     "reduce_fan_stop_start_freq": [ | ||||
|         "0" | ||||
|     ], | ||||
|     "fan_cooling_layer_time": [ | ||||
|         "60" | ||||
|     ], | ||||
|     "filament_cost": [ | ||||
|         "0" | ||||
|     ], | ||||
|     "filament_density": [ | ||||
|         "0" | ||||
|     ], | ||||
|     "filament_deretraction_speed": [ | ||||
|         "nil" | ||||
|     ], | ||||
|     "filament_diameter": [ | ||||
|         "1.75" | ||||
|     ], | ||||
|     "filament_max_volumetric_speed": [ | ||||
|         "0" | ||||
|     ], | ||||
|     "filament_minimal_purge_on_wipe_tower": [ | ||||
|         "15" | ||||
|     ], | ||||
|     "filament_retraction_minimum_travel": [ | ||||
|         "nil" | ||||
|     ], | ||||
|     "filament_retract_before_wipe": [ | ||||
|         "nil" | ||||
|     ], | ||||
|     "filament_retract_when_changing_layer": [ | ||||
|         "nil" | ||||
|     ], | ||||
|     "filament_retraction_length": [ | ||||
|         "nil" | ||||
|     ], | ||||
|     "filament_z_hop": [ | ||||
|         "nil" | ||||
|     ], | ||||
|     "filament_retract_restart_extra": [ | ||||
|         "nil" | ||||
|     ], | ||||
|     "filament_retraction_speed": [ | ||||
|         "nil" | ||||
|     ], | ||||
|     "filament_settings_id": [ | ||||
|         "" | ||||
|     ], | ||||
|     "filament_soluble": [ | ||||
|         "0" | ||||
|     ], | ||||
|     "filament_type": [ | ||||
|         "PLA" | ||||
|     ], | ||||
|     "filament_vendor": [ | ||||
|         "Generic" | ||||
|     ], | ||||
|     "filament_wipe": [ | ||||
|         "nil" | ||||
|     ], | ||||
|     "filament_wipe_distance": [ | ||||
|         "nil" | ||||
|     ], | ||||
|     "bed_type": [ | ||||
|         "Cool Plate" | ||||
|     ], | ||||
|     "nozzle_temperature_initial_layer": [ | ||||
|         "200" | ||||
|     ], | ||||
|     "full_fan_speed_layer": [ | ||||
|         "0" | ||||
|     ], | ||||
|     "fan_max_speed": [ | ||||
|         "100" | ||||
|     ], | ||||
|     "fan_min_speed": [ | ||||
|         "35" | ||||
|     ], | ||||
|     "slow_down_min_speed": [ | ||||
|         "10" | ||||
|     ], | ||||
|     "slow_down_layer_time": [ | ||||
|         "8" | ||||
|     ], | ||||
|     "filament_start_gcode": [ | ||||
|         "; Filament gcode\n" | ||||
|     ], | ||||
|     "nozzle_temperature": [ | ||||
|         "200" | ||||
|     ], | ||||
|     "temperature_vitrification": [ | ||||
|         "100" | ||||
|     ] | ||||
| } | ||||
							
								
								
									
										79
									
								
								resources/profiles/Anycubic/filament/fdm_filament_pa.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,79 @@ | |||
| { | ||||
|     "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" | ||||
|     ], | ||||
|     "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": [ | ||||
|         "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": [ | ||||
|         "20" | ||||
|     ], | ||||
|     "slow_down_layer_time": [ | ||||
|         "2" | ||||
|     ] | ||||
| } | ||||
							
								
								
									
										82
									
								
								resources/profiles/Anycubic/filament/fdm_filament_pc.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,82 @@ | |||
| { | ||||
|     "type": "filament", | ||||
|     "name": "fdm_filament_pc", | ||||
|     "from": "system", | ||||
|     "instantiation": "false", | ||||
|     "inherits": "fdm_filament_common", | ||||
|     "cool_plate_temp" : [ | ||||
|         "0" | ||||
|     ], | ||||
|     "eng_plate_temp" : [ | ||||
|         "110" | ||||
|     ], | ||||
|     "hot_plate_temp" : [ | ||||
|         "110" | ||||
|     ], | ||||
|     "cool_plate_temp_initial_layer" : [ | ||||
|         "0" | ||||
|     ], | ||||
|     "eng_plate_temp_initial_layer" : [ | ||||
|         "110" | ||||
|     ], | ||||
|     "hot_plate_temp_initial_layer" : [ | ||||
|         "110" | ||||
|     ], | ||||
|     "slow_down_for_layer_cooling": [ | ||||
|         "1" | ||||
|     ], | ||||
|     "close_fan_the_first_x_layers": [ | ||||
|         "3" | ||||
|     ], | ||||
|     "fan_cooling_layer_time": [ | ||||
|         "30" | ||||
|     ], | ||||
|     "filament_max_volumetric_speed": [ | ||||
|         "23.2" | ||||
|     ], | ||||
|     "filament_type": [ | ||||
|         "PC" | ||||
|     ], | ||||
|     "filament_density": [ | ||||
|         "1.04" | ||||
|     ], | ||||
|     "filament_cost": [ | ||||
|         "20" | ||||
|     ], | ||||
|     "nozzle_temperature_initial_layer": [ | ||||
|         "270" | ||||
|     ], | ||||
|     "reduce_fan_stop_start_freq": [ | ||||
|         "1" | ||||
|     ], | ||||
|     "fan_max_speed": [ | ||||
|         "60" | ||||
|     ], | ||||
|     "fan_min_speed": [ | ||||
|         "10" | ||||
|     ], | ||||
|     "overhang_fan_threshold": [ | ||||
|         "25%" | ||||
|     ], | ||||
|     "overhang_fan_speed": [ | ||||
|         "60" | ||||
|     ], | ||||
|     "nozzle_temperature": [ | ||||
|         "280" | ||||
|     ], | ||||
|     "temperature_vitrification": [ | ||||
|         "140" | ||||
|     ], | ||||
|     "nozzle_temperature_range_low": [ | ||||
|         "260" | ||||
|     ], | ||||
|     "nozzle_temperature_range_high": [ | ||||
|         "280" | ||||
|     ], | ||||
|     "slow_down_min_speed": [ | ||||
|         "20" | ||||
|     ], | ||||
|     "slow_down_layer_time": [ | ||||
|         "2" | ||||
|     ] | ||||
| } | ||||
							
								
								
									
										76
									
								
								resources/profiles/Anycubic/filament/fdm_filament_pet.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,76 @@ | |||
| { | ||||
|     "type": "filament", | ||||
|     "name": "fdm_filament_pet", | ||||
|     "from": "system", | ||||
|     "instantiation": "false", | ||||
|     "inherits": "fdm_filament_common", | ||||
|     "cool_plate_temp" : [ | ||||
|         "60" | ||||
|     ], | ||||
|     "eng_plate_temp" : [ | ||||
|         "0" | ||||
|     ], | ||||
|     "hot_plate_temp" : [ | ||||
|         "80" | ||||
|     ], | ||||
|     "cool_plate_temp_initial_layer" : [ | ||||
|         "60" | ||||
|     ], | ||||
|     "eng_plate_temp_initial_layer" : [ | ||||
|         "0" | ||||
|     ], | ||||
|     "hot_plate_temp_initial_layer" : [ | ||||
|         "80" | ||||
|     ], | ||||
|     "slow_down_for_layer_cooling": [ | ||||
|         "1" | ||||
|     ], | ||||
|     "close_fan_the_first_x_layers": [ | ||||
|         "3" | ||||
|     ], | ||||
|     "fan_cooling_layer_time": [ | ||||
|         "20" | ||||
|     ], | ||||
|     "filament_max_volumetric_speed": [ | ||||
|         "25" | ||||
|     ], | ||||
|     "filament_type": [ | ||||
|         "PETG" | ||||
|     ], | ||||
|     "filament_density": [ | ||||
|         "1.27" | ||||
|     ], | ||||
|     "filament_cost": [ | ||||
|         "30" | ||||
|     ], | ||||
|     "nozzle_temperature_initial_layer": [ | ||||
|         "255" | ||||
|     ], | ||||
|     "reduce_fan_stop_start_freq": [ | ||||
|         "1" | ||||
|     ], | ||||
|     "fan_max_speed": [ | ||||
|         "100" | ||||
|     ], | ||||
|     "fan_min_speed": [ | ||||
|         "20" | ||||
|     ], | ||||
|     "overhang_fan_speed": [ | ||||
|         "100" | ||||
|     ], | ||||
|     "nozzle_temperature": [ | ||||
|         "255" | ||||
|     ], | ||||
|     "temperature_vitrification": [ | ||||
|         "80" | ||||
|     ], | ||||
|     "nozzle_temperature_range_low": [ | ||||
|         "220" | ||||
|     ], | ||||
|     "nozzle_temperature_range_high": [ | ||||
|         "260" | ||||
|     ], | ||||
|     "filament_start_gcode": [ | ||||
|         "; filament start gcode\n" | ||||
|     ] | ||||
| } | ||||
							
								
								
									
										88
									
								
								resources/profiles/Anycubic/filament/fdm_filament_pla.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,88 @@ | |||
| { | ||||
|     "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" : [ | ||||
|         "35" | ||||
|     ], | ||||
|     "eng_plate_temp" : [ | ||||
|         "0" | ||||
|     ], | ||||
|     "hot_plate_temp" : [ | ||||
|         "45" | ||||
|     ], | ||||
|     "cool_plate_temp_initial_layer" : [ | ||||
|         "35" | ||||
|     ], | ||||
|     "eng_plate_temp_initial_layer" : [ | ||||
|         "0" | ||||
|     ], | ||||
|     "hot_plate_temp_initial_layer" : [ | ||||
|         "45" | ||||
|     ], | ||||
|     "nozzle_temperature_initial_layer": [ | ||||
|         "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": [ | ||||
|         "20" | ||||
|     ], | ||||
|     "slow_down_layer_time": [ | ||||
|         "4" | ||||
|     ], | ||||
|     "additional_cooling_fan_speed": [ | ||||
|         "70" | ||||
|     ], | ||||
|     "filament_start_gcode": [ | ||||
|         "; filament start gcode\n" | ||||
|     ] | ||||
| } | ||||
							
								
								
									
										94
									
								
								resources/profiles/Anycubic/filament/fdm_filament_pva.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,94 @@ | |||
| { | ||||
|     "type": "filament", | ||||
|     "name": "fdm_filament_pva", | ||||
|     "from": "system", | ||||
|     "instantiation": "false", | ||||
|     "inherits": "fdm_filament_common", | ||||
|     "cool_plate_temp" : [ | ||||
|         "35" | ||||
|     ], | ||||
|     "eng_plate_temp" : [ | ||||
|         "0" | ||||
|     ], | ||||
|     "hot_plate_temp" : [ | ||||
|         "45" | ||||
|     ], | ||||
|     "cool_plate_temp_initial_layer" : [ | ||||
|         "35" | ||||
|     ], | ||||
|     "eng_plate_temp_initial_layer" : [ | ||||
|         "0" | ||||
|     ], | ||||
|     "hot_plate_temp_initial_layer" : [ | ||||
|         "45" | ||||
|     ], | ||||
|     "fan_cooling_layer_time": [ | ||||
|         "100" | ||||
|     ], | ||||
|     "filament_max_volumetric_speed": [ | ||||
|         "15" | ||||
|     ], | ||||
|     "filament_soluble": [ | ||||
|         "1" | ||||
|     ], | ||||
|     "filament_is_support": [ | ||||
|         "1" | ||||
|     ], | ||||
|     "filament_type": [ | ||||
|         "PVA" | ||||
|     ], | ||||
|     "filament_density": [ | ||||
|         "1.24" | ||||
|     ], | ||||
|     "filament_cost": [ | ||||
|         "20" | ||||
|     ], | ||||
|     "nozzle_temperature_initial_layer": [ | ||||
|         "220" | ||||
|     ], | ||||
|     "reduce_fan_stop_start_freq": [ | ||||
|         "1" | ||||
|     ], | ||||
|     "slow_down_for_layer_cooling": [ | ||||
|         "1" | ||||
|     ], | ||||
|     "fan_max_speed": [ | ||||
|         "100" | ||||
|     ], | ||||
|     "fan_min_speed": [ | ||||
|         "100" | ||||
|     ], | ||||
|     "overhang_fan_speed": [ | ||||
|         "100" | ||||
|     ], | ||||
|     "overhang_fan_threshold": [ | ||||
|         "50%" | ||||
|     ], | ||||
|     "close_fan_the_first_x_layers": [ | ||||
|         "1" | ||||
|     ], | ||||
|     "nozzle_temperature": [ | ||||
|         "220" | ||||
|     ], | ||||
|     "temperature_vitrification": [ | ||||
|         "50" | ||||
|     ], | ||||
|     "nozzle_temperature_range_low": [ | ||||
|         "190" | ||||
|     ], | ||||
|     "nozzle_temperature_range_high": [ | ||||
|         "250" | ||||
|     ], | ||||
|     "slow_down_min_speed": [ | ||||
|         "50" | ||||
|     ], | ||||
|     "slow_down_layer_time": [ | ||||
|         "4" | ||||
|     ], | ||||
|     "additional_cooling_fan_speed": [ | ||||
|         "70" | ||||
|     ], | ||||
|     "filament_start_gcode": [ | ||||
|         "; filament start gcode\n" | ||||
|     ] | ||||
| } | ||||
							
								
								
									
										82
									
								
								resources/profiles/Anycubic/filament/fdm_filament_tpu.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,82 @@ | |||
| { | ||||
|     "type": "filament", | ||||
|     "name": "fdm_filament_tpu", | ||||
|     "from": "system", | ||||
|     "instantiation": "false", | ||||
|     "inherits": "fdm_filament_common", | ||||
|     "cool_plate_temp" : [ | ||||
|         "30" | ||||
|     ], | ||||
|     "eng_plate_temp" : [ | ||||
|         "30" | ||||
|     ], | ||||
|     "hot_plate_temp" : [ | ||||
|         "35" | ||||
|     ], | ||||
|     "cool_plate_temp_initial_layer" : [ | ||||
|         "30" | ||||
|     ], | ||||
|     "eng_plate_temp_initial_layer" : [ | ||||
|         "30" | ||||
|     ], | ||||
|     "hot_plate_temp_initial_layer" : [ | ||||
|         "35" | ||||
|     ], | ||||
|     "fan_cooling_layer_time": [ | ||||
|         "100" | ||||
|     ], | ||||
|     "filament_max_volumetric_speed": [ | ||||
|         "15" | ||||
|     ], | ||||
|     "filament_type": [ | ||||
|         "TPU" | ||||
|     ], | ||||
|     "filament_density": [ | ||||
|         "1.24" | ||||
|     ], | ||||
|     "filament_cost": [ | ||||
|         "20" | ||||
|     ], | ||||
|     "filament_retraction_length": [ | ||||
|         "0.4" | ||||
|     ], | ||||
|     "nozzle_temperature_initial_layer": [ | ||||
|         "240" | ||||
|     ], | ||||
|     "reduce_fan_stop_start_freq": [ | ||||
|         "1" | ||||
|     ], | ||||
|     "slow_down_for_layer_cooling": [ | ||||
|         "1" | ||||
|     ], | ||||
|     "fan_max_speed": [ | ||||
|         "100" | ||||
|     ], | ||||
|     "fan_min_speed": [ | ||||
|         "100" | ||||
|     ], | ||||
|     "overhang_fan_speed": [ | ||||
|         "100" | ||||
|     ], | ||||
|     "additional_cooling_fan_speed": [ | ||||
|         "70" | ||||
|     ], | ||||
|     "close_fan_the_first_x_layers": [ | ||||
|         "1" | ||||
|     ], | ||||
|     "nozzle_temperature": [ | ||||
|         "240" | ||||
|     ], | ||||
|     "temperature_vitrification": [ | ||||
|         "60" | ||||
|     ], | ||||
|     "nozzle_temperature_range_low": [ | ||||
|         "200" | ||||
|     ], | ||||
|     "nozzle_temperature_range_high": [ | ||||
|         "250" | ||||
|     ], | ||||
|     "filament_start_gcode": [ | ||||
|         "; filament start gcode\n" | ||||
|     ] | ||||
| } | ||||
|  | @ -0,0 +1,30 @@ | |||
| { | ||||
|     "type": "machine", | ||||
|     "setting_id": "GM003", | ||||
|     "name": "Anycubic 4Max Pro 0.4 nozzle", | ||||
|     "from": "system", | ||||
|     "instantiation": "true", | ||||
|     "inherits": "fdm_machine_common", | ||||
|     "printer_model": "Anycubic 4Max Pro", | ||||
|     "default_print_profile": "0.20mm Standard @4MaxPro", | ||||
|     "nozzle_diameter": [ | ||||
|         "0.4" | ||||
|     ], | ||||
|     "bed_exclude_area": [ | ||||
|       "0x0" | ||||
|     ], | ||||
|     "printable_area": [ | ||||
|       "0x0", | ||||
|       "270x0", | ||||
|       "270x205", | ||||
|       "0x205" | ||||
|     ], | ||||
|     "printable_height": "200", | ||||
|     "machine_start_gcode": ";M190 S0\n;M104 S0\nPRINT_START EXTRUDER=[nozzle_temperature_initial_layer] BED=[bed_temperature_initial_layer_single]\n; You can use following code instead if your PRINT_START macro support Chamber and print area bedmesh\n; PRINT_START EXTRUDER=[nozzle_temperature_initial_layer] BED=[bed_temperature_initial_layer_single] Chamber=[chamber_temperature] PRINT_MIN={first_layer_print_min[0]},{first_layer_print_min[1]} PRINT_MAX={first_layer_print_max[0]},{first_layer_print_max[1]}", | ||||
|     "machine_end_gcode": "PRINT_END", | ||||
|     "layer_change_gcode": "", | ||||
|     "scan_first_layer": "0", | ||||
|     "nozzle_type": "hardened_steel", | ||||
|     "auxiliary_fan": "0" | ||||
|   } | ||||
|    | ||||
							
								
								
									
										12
									
								
								resources/profiles/Anycubic/machine/Anycubic 4Max Pro.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,12 @@ | |||
| { | ||||
|     "type": "machine_model", | ||||
|     "name": "Anycubic 4Max Pro", | ||||
|     "model_id": "AC-4maxpro", | ||||
|     "nozzle_diameter": "0.4", | ||||
|     "machine_tech": "FFF", | ||||
|     "family": "Anycubic", | ||||
|     "bed_model": "", | ||||
|     "bed_texture": "", | ||||
|     "hotend_model": "bbl-3dp-hotend.stl", | ||||
|     "default_materials": "Anycubic Generic ABS;Anycubic Generic PLA;Anycubic Generic PLA-CF;Anycubic Generic PETG;Anycubic Generic TPU;Anycubic Generic ASA;Anycubic Generic PC;Anycubic Generic PVA;Anycubic Generic PA;Anycubic Generic PA-CF" | ||||
| } | ||||
							
								
								
									
										139
									
								
								resources/profiles/Anycubic/machine/fdm_machine_common.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,139 @@ | |||
| { | ||||
|     "type": "machine", | ||||
|     "name": "fdm_machine_common", | ||||
|     "from": "system", | ||||
|     "instantiation": "false", | ||||
|     "gcode_flavor": "marlin", | ||||
|     "machine_start_gcode": "", | ||||
|     "machine_end_gcode": "", | ||||
|     "extruder_colour": [ | ||||
|         "#018001" | ||||
|     ], | ||||
|     "extruder_offset": [ | ||||
|         "0x0" | ||||
|     ], | ||||
|     "machine_max_acceleration_e": [ | ||||
|         "5000", | ||||
|         "5000" | ||||
|     ], | ||||
|     "machine_max_acceleration_extruding": [ | ||||
|         "2000", | ||||
|         "2000" | ||||
|     ], | ||||
|     "machine_max_acceleration_retracting": [ | ||||
|         "5000", | ||||
|         "5000" | ||||
|     ], | ||||
|     "machine_max_acceleration_travel": [ | ||||
|         "3000", | ||||
|         "3000" | ||||
|     ], | ||||
|     "machine_max_acceleration_x": [ | ||||
|         "2000", | ||||
|         "2000" | ||||
|     ], | ||||
|     "machine_max_acceleration_y": [ | ||||
|         "2000", | ||||
|         "2000" | ||||
|     ], | ||||
|     "machine_max_acceleration_z": [ | ||||
|         "300", | ||||
|         "200" | ||||
|     ], | ||||
|     "machine_max_speed_e": [ | ||||
|         "25", | ||||
|         "25" | ||||
|     ], | ||||
|     "machine_max_speed_x": [ | ||||
|         "300", | ||||
|         "200" | ||||
|     ], | ||||
|     "machine_max_speed_y": [ | ||||
|         "300", | ||||
|         "200" | ||||
|     ], | ||||
|     "machine_max_speed_z": [ | ||||
|         "12", | ||||
|         "12" | ||||
|     ], | ||||
|     "machine_max_jerk_e": [ | ||||
|         "2.5", | ||||
|         "2.5" | ||||
|     ], | ||||
|     "machine_max_jerk_x": [ | ||||
|         "9", | ||||
|         "9" | ||||
|     ], | ||||
|     "machine_max_jerk_y": [ | ||||
|         "9", | ||||
|         "9" | ||||
|     ], | ||||
|     "machine_max_jerk_z": [ | ||||
|         "0.2", | ||||
|         "0.4" | ||||
|     ], | ||||
|     "machine_min_extruding_rate": [ | ||||
|         "0", | ||||
|         "0" | ||||
|     ], | ||||
|     "machine_min_travel_rate": [ | ||||
|         "0", | ||||
|         "0" | ||||
|     ], | ||||
|     "max_layer_height": [ | ||||
|         "0.3" | ||||
|     ], | ||||
|     "min_layer_height": [ | ||||
|         "0.08" | ||||
|     ], | ||||
|     "printable_height": "250", | ||||
|     "extruder_clearance_radius": "65", | ||||
|     "extruder_clearance_height_to_rod": "36", | ||||
|     "extruder_clearance_height_to_lid": "140", | ||||
|     "nozzle_diameter": [ | ||||
|         "0.4" | ||||
|     ], | ||||
|     "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": [ | ||||
|         "0.8" | ||||
|     ], | ||||
|     "retract_length_toolchange": [ | ||||
|         "2" | ||||
|     ], | ||||
|     "z_hop": [ | ||||
|         "0.4" | ||||
|     ], | ||||
|     "retract_restart_extra": [ | ||||
|         "0" | ||||
|     ], | ||||
|     "retract_restart_extra_toolchange": [ | ||||
|         "0" | ||||
|     ], | ||||
|     "retraction_speed": [ | ||||
|         "30" | ||||
|     ], | ||||
|     "deretraction_speed": [ | ||||
|         "30" | ||||
|     ], | ||||
|     "silent_mode": "0", | ||||
|     "single_extruder_multi_material": "1", | ||||
|     "change_filament_gcode": "", | ||||
|     "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n", | ||||
|     "layer_change_gcode": "", | ||||
|     "machine_pause_gcode": "M400 U1\n", | ||||
|     "wipe": [ | ||||
|         "1" | ||||
|     ], | ||||
|     "z_lift_type": "NormalLift" | ||||
| } | ||||
|  | @ -0,0 +1,20 @@ | |||
| { | ||||
|   "type": "process", | ||||
|   "setting_id": "Anycubic-1", | ||||
|   "name": "0.20mm Standard @4MaxPro", | ||||
|   "from": "system", | ||||
|   "instantiation": "true", | ||||
|   "inherits": "fdm_process_common", | ||||
|   "initial_layer_speed": "40", | ||||
|   "initial_layer_infill_speed": "50", | ||||
|   "outer_wall_speed": "35", | ||||
|   "inner_wall_speed": "60", | ||||
|   "sparse_infill_speed": "200", | ||||
|   "internal_solid_infill_speed": "200", | ||||
|   "top_surface_speed": "50", | ||||
|   "gap_infill_speed": "40", | ||||
|   "travel_speed": "180", | ||||
|   "compatible_printers": [ | ||||
|     "Anycubic 4Max Pro 0.4 nozzle" | ||||
|   ] | ||||
| } | ||||
							
								
								
									
										107
									
								
								resources/profiles/Anycubic/process/fdm_process_common.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,107 @@ | |||
| { | ||||
|     "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": "800", | ||||
|     "travel_acceleration": "1000", | ||||
|     "inner_wall_acceleration": "900", | ||||
|     "outer_wall_acceleration": "700", | ||||
|     "bridge_no_support": "0", | ||||
|     "draft_shield": "disabled", | ||||
|     "elefant_foot_compensation": "0", | ||||
|     "enable_arc_fitting": "1", | ||||
|     "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": "grid", | ||||
|     "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", | ||||
|     "reduce_infill_retraction": "1", | ||||
|     "filename_format": "{input_filename_base}_{filament_type[0]}_{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": "2", | ||||
|     "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_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": "30", | ||||
|     "tree_support_wall_count": "0", | ||||
|     "tree_support_with_infill": "0", | ||||
|     "detect_thin_wall": "0", | ||||
|     "top_surface_pattern": "monotonicline", | ||||
|     "top_surface_line_width": "0.4", | ||||
|     "top_shell_thickness": "0.8", | ||||
|     "enable_prime_tower": "1", | ||||
|     "wipe_tower_no_sparse_layers": "0", | ||||
|     "prime_tower_width": "35", | ||||
|     "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", | ||||
|     "enable_arc_fitting": "0" | ||||
| 
 | ||||
| } | ||||
|  | @ -1,6 +1,6 @@ | |||
| { | ||||
|     "name": "Creality", | ||||
|     "version": "01.02.01.03", | ||||
|     "version": "01.02.01.04", | ||||
|     "force_update": "0", | ||||
|     "description": "Creality configurations", | ||||
|     "machine_model_list": [ | ||||
|  |  | |||
|  | @ -102,7 +102,7 @@ | |||
|     "2" | ||||
|   ], | ||||
|   "z_hop": [ | ||||
|     "0" | ||||
|     "0.4" | ||||
|   ], | ||||
|   "retract_restart_extra": [ | ||||
|     "0" | ||||
|  |  | |||
|  | @ -110,6 +110,7 @@ | |||
|     "wipe": [ | ||||
|         "1" | ||||
|     ], | ||||
|     "z_lift_type": "NormalLift", | ||||
|     "default_print_profile": "0.16mm Optimal @Bambu Lab X1 Carbon 0.4 nozzle", | ||||
|     "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" | ||||
|  |  | |||
							
								
								
									
										110
									
								
								resources/profiles/Prusa.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,110 @@ | |||
| { | ||||
|     "name": "Prusa", | ||||
|     "version": "01.02.00.02", | ||||
|     "force_update": "0", | ||||
|     "description": "Prusa configurations", | ||||
|     "machine_model_list": [ | ||||
|         { | ||||
|             "name": "Prusa MK3S", | ||||
|             "sub_path": "machine/Prusa MK3S.json" | ||||
|         } | ||||
|     ], | ||||
|     "process_list": [ | ||||
|         { | ||||
|             "name": "fdm_process_common", | ||||
|             "sub_path": "process/fdm_process_common.json" | ||||
|         }, | ||||
|         { | ||||
|             "name": "0.20mm Standard @MK3S", | ||||
|             "sub_path": "process/0.20mm Standard @MK3S.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": "Prusa Generic PLA", | ||||
|             "sub_path": "filament/Prusa Generic PLA.json" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Prusa Generic PLA-CF", | ||||
|             "sub_path": "filament/Prusa Generic PLA-CF.json" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Prusa Generic PETG", | ||||
|             "sub_path": "filament/Prusa Generic PETG.json" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Prusa Generic ABS", | ||||
|             "sub_path": "filament/Prusa Generic ABS.json" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Prusa Generic TPU", | ||||
|             "sub_path": "filament/Prusa Generic TPU.json" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Prusa Generic ASA", | ||||
|             "sub_path": "filament/Prusa Generic ASA.json" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Prusa Generic PC", | ||||
|             "sub_path": "filament/Prusa Generic PC.json" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Prusa Generic PVA", | ||||
|             "sub_path": "filament/Prusa Generic PVA.json" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Prusa Generic PA", | ||||
|             "sub_path": "filament/Prusa Generic PA.json" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Prusa Generic PA-CF", | ||||
|             "sub_path": "filament/Prusa Generic PA-CF.json" | ||||
|         } | ||||
|     ], | ||||
|     "machine_list": [ | ||||
|         { | ||||
|             "name": "fdm_machine_common", | ||||
|             "sub_path": "machine/fdm_machine_common.json" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Prusa MK3S 0.4 nozzle", | ||||
|             "sub_path": "machine/Prusa MK3S 0.4 nozzle.json" | ||||
|         } | ||||
|     ] | ||||
| } | ||||
							
								
								
									
										18
									
								
								resources/profiles/Prusa/filament/Prusa Generic ABS.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,18 @@ | |||
| { | ||||
|     "type": "filament", | ||||
|     "filament_id": "GFB99", | ||||
|     "setting_id": "GFSB99", | ||||
|     "name": "Prusa Generic ABS", | ||||
|     "from": "system", | ||||
|     "instantiation": "true", | ||||
|     "inherits": "fdm_filament_abs", | ||||
|     "filament_flow_ratio": [ | ||||
|         "0.926" | ||||
|     ], | ||||
|     "filament_max_volumetric_speed": [ | ||||
|         "12" | ||||
|     ], | ||||
|     "compatible_printers": [ | ||||
|       "Prusa MK3S 0.4 nozzle" | ||||
|     ] | ||||
| } | ||||
							
								
								
									
										18
									
								
								resources/profiles/Prusa/filament/Prusa Generic ASA.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,18 @@ | |||
| { | ||||
|     "type": "filament", | ||||
|     "filament_id": "GFB98", | ||||
|     "setting_id": "GFSB98", | ||||
|     "name": "Prusa Generic ASA", | ||||
|     "from": "system", | ||||
|     "instantiation": "true", | ||||
|     "inherits": "fdm_filament_asa", | ||||
|     "filament_flow_ratio": [ | ||||
|         "0.93" | ||||
|     ], | ||||
|     "filament_max_volumetric_speed": [ | ||||
|         "12" | ||||
|     ], | ||||
|     "compatible_printers": [ | ||||
|       "Prusa MK3S 0.4 nozzle" | ||||
|     ] | ||||
| } | ||||
							
								
								
									
										24
									
								
								resources/profiles/Prusa/filament/Prusa Generic PA-CF.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,24 @@ | |||
| { | ||||
|     "type": "filament", | ||||
|     "filament_id": "GFN98", | ||||
|     "setting_id": "GFSN99", | ||||
|     "name": "Prusa 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": [ | ||||
|         "Prusa MK3S 0.4 nozzle" | ||||
|     ] | ||||
| } | ||||
							
								
								
									
										21
									
								
								resources/profiles/Prusa/filament/Prusa Generic PA.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,21 @@ | |||
| { | ||||
|     "type": "filament", | ||||
|     "filament_id": "GFN99", | ||||
|     "setting_id": "GFSN98", | ||||
|     "name": "Prusa 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": [ | ||||
|         "Prusa MK3S 0.4 nozzle" | ||||
|     ] | ||||
| } | ||||
							
								
								
									
										18
									
								
								resources/profiles/Prusa/filament/Prusa Generic PC.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,18 @@ | |||
| { | ||||
|     "type": "filament", | ||||
|     "filament_id": "GFC99", | ||||
|     "setting_id": "GFSC99", | ||||
|     "name": "Prusa Generic PC", | ||||
|     "from": "system", | ||||
|     "instantiation": "true", | ||||
|     "inherits": "fdm_filament_pc", | ||||
|     "filament_max_volumetric_speed": [ | ||||
|         "12" | ||||
|     ], | ||||
|     "filament_flow_ratio": [ | ||||
|         "0.94" | ||||
|     ], | ||||
|     "compatible_printers": [ | ||||
|         "Prusa MK3S 0.4 nozzle" | ||||
|     ] | ||||
| } | ||||
							
								
								
									
										48
									
								
								resources/profiles/Prusa/filament/Prusa Generic PETG.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,48 @@ | |||
| { | ||||
|     "type": "filament", | ||||
|     "filament_id": "GFG99", | ||||
|     "setting_id": "GFSG99", | ||||
|     "name": "Prusa 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": [ | ||||
|         "20" | ||||
|     ], | ||||
|     "slow_down_layer_time": [ | ||||
|         "8" | ||||
|     ], | ||||
|     "filament_flow_ratio": [ | ||||
|         "0.95" | ||||
|     ], | ||||
|     "filament_max_volumetric_speed": [ | ||||
|         "10" | ||||
|     ], | ||||
|     "filament_start_gcode": [ | ||||
|         "; filament start gcode\n" | ||||
|     ], | ||||
|     "compatible_printers": [ | ||||
|       "Prusa MK3S 0.4 nozzle" | ||||
|     ] | ||||
| } | ||||
							
								
								
									
										24
									
								
								resources/profiles/Prusa/filament/Prusa Generic PLA-CF.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,24 @@ | |||
| { | ||||
|     "type": "filament", | ||||
|     "filament_id": "GFL98", | ||||
|     "setting_id": "GFSL98", | ||||
|     "name": "Prusa 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": [ | ||||
|         "Prusa MK3S 0.4 nozzle" | ||||
|     ] | ||||
| } | ||||
							
								
								
									
										21
									
								
								resources/profiles/Prusa/filament/Prusa Generic PLA.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,21 @@ | |||
| { | ||||
|     "type": "filament", | ||||
|     "filament_id": "GFL99", | ||||
|     "setting_id": "GFSL99", | ||||
|     "name": "Prusa 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": [ | ||||
|       "Prusa MK3S 0.4 nozzle" | ||||
|     ] | ||||
| } | ||||
							
								
								
									
										24
									
								
								resources/profiles/Prusa/filament/Prusa Generic PVA.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,24 @@ | |||
| { | ||||
|     "type": "filament", | ||||
|     "filament_id": "GFS99", | ||||
|     "setting_id": "GFSS99", | ||||
|     "name": "Prusa 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": [ | ||||
|         "20" | ||||
|     ], | ||||
|     "compatible_printers": [ | ||||
|       "Prusa MK3S 0.4 nozzle" | ||||
|     ] | ||||
| } | ||||
							
								
								
									
										15
									
								
								resources/profiles/Prusa/filament/Prusa Generic TPU.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,15 @@ | |||
| { | ||||
|     "type": "filament", | ||||
|     "filament_id": "GFU99", | ||||
|     "setting_id": "GFSR99", | ||||
|     "name": "Prusa Generic TPU", | ||||
|     "from": "system", | ||||
|     "instantiation": "true", | ||||
|     "inherits": "fdm_filament_tpu", | ||||
|     "filament_max_volumetric_speed": [ | ||||
|         "3.2" | ||||
|     ], | ||||
|     "compatible_printers": [ | ||||
|       "Prusa MK3S 0.4 nozzle" | ||||
|     ] | ||||
| } | ||||
							
								
								
									
										82
									
								
								resources/profiles/Prusa/filament/fdm_filament_abs.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,82 @@ | |||
| { | ||||
|     "type": "filament", | ||||
|     "name": "fdm_filament_abs", | ||||
|     "from": "system", | ||||
|     "instantiation": "false", | ||||
|     "inherits": "fdm_filament_common", | ||||
|     "cool_plate_temp" : [ | ||||
|         "105" | ||||
|     ], | ||||
|     "eng_plate_temp" : [ | ||||
|         "105" | ||||
|     ], | ||||
|     "hot_plate_temp" : [ | ||||
|         "105" | ||||
|     ], | ||||
|     "cool_plate_temp_initial_layer" : [ | ||||
|         "105" | ||||
|     ], | ||||
|     "eng_plate_temp_initial_layer" : [ | ||||
|         "105" | ||||
|     ], | ||||
|     "hot_plate_temp_initial_layer" : [ | ||||
|         "105" | ||||
|     ], | ||||
|     "slow_down_for_layer_cooling": [ | ||||
|         "1" | ||||
|     ], | ||||
|     "close_fan_the_first_x_layers": [ | ||||
|         "3" | ||||
|     ], | ||||
|     "fan_cooling_layer_time": [ | ||||
|         "30" | ||||
|     ], | ||||
|     "filament_max_volumetric_speed": [ | ||||
|         "28.6" | ||||
|     ], | ||||
|     "filament_type": [ | ||||
|         "ABS" | ||||
|     ], | ||||
|     "filament_density": [ | ||||
|         "1.04" | ||||
|     ], | ||||
|     "filament_cost": [ | ||||
|         "20" | ||||
|     ], | ||||
|     "nozzle_temperature_initial_layer": [ | ||||
|         "260" | ||||
|     ], | ||||
|     "reduce_fan_stop_start_freq": [ | ||||
|         "1" | ||||
|     ], | ||||
|     "fan_max_speed": [ | ||||
|         "80" | ||||
|     ], | ||||
|     "fan_min_speed": [ | ||||
|         "10" | ||||
|     ], | ||||
|     "overhang_fan_threshold": [ | ||||
|         "25%" | ||||
|     ], | ||||
|     "overhang_fan_speed": [ | ||||
|         "80" | ||||
|     ], | ||||
|     "nozzle_temperature": [ | ||||
|         "260" | ||||
|     ], | ||||
|     "temperature_vitrification": [ | ||||
|         "110" | ||||
|     ], | ||||
|     "nozzle_temperature_range_low": [ | ||||
|         "240" | ||||
|     ], | ||||
|     "nozzle_temperature_range_high": [ | ||||
|         "270" | ||||
|     ], | ||||
|     "slow_down_min_speed": [ | ||||
|         "20" | ||||
|     ], | ||||
|     "slow_down_layer_time": [ | ||||
|         "3" | ||||
|     ] | ||||
| } | ||||
							
								
								
									
										82
									
								
								resources/profiles/Prusa/filament/fdm_filament_asa.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,82 @@ | |||
| { | ||||
|     "type": "filament", | ||||
|     "name": "fdm_filament_asa", | ||||
|     "from": "system", | ||||
|     "instantiation": "false", | ||||
|     "inherits": "fdm_filament_common", | ||||
|     "cool_plate_temp" : [ | ||||
|         "105" | ||||
|     ], | ||||
|     "eng_plate_temp" : [ | ||||
|         "105" | ||||
|     ], | ||||
|     "hot_plate_temp" : [ | ||||
|         "105" | ||||
|     ], | ||||
|     "cool_plate_temp_initial_layer" : [ | ||||
|         "105" | ||||
|     ], | ||||
|     "eng_plate_temp_initial_layer" : [ | ||||
|         "105" | ||||
|     ], | ||||
|     "hot_plate_temp_initial_layer" : [ | ||||
|         "105" | ||||
|     ], | ||||
|     "slow_down_for_layer_cooling": [ | ||||
|         "1" | ||||
|     ], | ||||
|     "close_fan_the_first_x_layers": [ | ||||
|         "3" | ||||
|     ], | ||||
|     "fan_cooling_layer_time": [ | ||||
|         "35" | ||||
|     ], | ||||
|     "filament_max_volumetric_speed": [ | ||||
|         "28.6" | ||||
|     ], | ||||
|     "filament_type": [ | ||||
|         "ASA" | ||||
|     ], | ||||
|     "filament_density": [ | ||||
|         "1.04" | ||||
|     ], | ||||
|     "filament_cost": [ | ||||
|         "20" | ||||
|     ], | ||||
|     "nozzle_temperature_initial_layer": [ | ||||
|         "260" | ||||
|     ], | ||||
|     "reduce_fan_stop_start_freq": [ | ||||
|         "1" | ||||
|     ], | ||||
|     "fan_max_speed": [ | ||||
|         "80" | ||||
|     ], | ||||
|     "fan_min_speed": [ | ||||
|         "10" | ||||
|     ], | ||||
|     "overhang_fan_threshold": [ | ||||
|         "25%" | ||||
|     ], | ||||
|     "overhang_fan_speed": [ | ||||
|         "80" | ||||
|     ], | ||||
|     "nozzle_temperature": [ | ||||
|         "260" | ||||
|     ], | ||||
|     "temperature_vitrification": [ | ||||
|         "110" | ||||
|     ], | ||||
|     "nozzle_temperature_range_low": [ | ||||
|         "240" | ||||
|     ], | ||||
|     "nozzle_temperature_range_high": [ | ||||
|         "270" | ||||
|     ], | ||||
|     "slow_down_min_speed": [ | ||||
|         "20" | ||||
|     ], | ||||
|     "slow_down_layer_time": [ | ||||
|         "3" | ||||
|     ] | ||||
| } | ||||
							
								
								
									
										135
									
								
								resources/profiles/Prusa/filament/fdm_filament_common.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,135 @@ | |||
| { | ||||
|     "type": "filament", | ||||
|     "name": "fdm_filament_common", | ||||
|     "from": "system", | ||||
|     "instantiation": "false", | ||||
|     "cool_plate_temp" : [ | ||||
|         "60" | ||||
|     ], | ||||
|     "eng_plate_temp" : [ | ||||
|         "60" | ||||
|     ], | ||||
|     "hot_plate_temp" : [ | ||||
|         "60" | ||||
|     ], | ||||
|     "cool_plate_temp_initial_layer" : [ | ||||
|         "60" | ||||
|     ], | ||||
|     "eng_plate_temp_initial_layer" : [ | ||||
|         "60" | ||||
|     ], | ||||
|     "hot_plate_temp_initial_layer" : [ | ||||
|         "60" | ||||
|     ], | ||||
|     "overhang_fan_threshold": [ | ||||
|         "95%" | ||||
|     ], | ||||
|     "overhang_fan_speed": [ | ||||
|         "100" | ||||
|     ], | ||||
|     "slow_down_for_layer_cooling": [ | ||||
|         "1" | ||||
|     ], | ||||
|     "close_fan_the_first_x_layers": [ | ||||
|         "3" | ||||
|     ], | ||||
|     "filament_end_gcode": [ | ||||
|         "; filament end gcode \n" | ||||
|     ], | ||||
|     "filament_flow_ratio": [ | ||||
|         "1" | ||||
|     ], | ||||
|     "reduce_fan_stop_start_freq": [ | ||||
|         "0" | ||||
|     ], | ||||
|     "fan_cooling_layer_time": [ | ||||
|         "60" | ||||
|     ], | ||||
|     "filament_cost": [ | ||||
|         "0" | ||||
|     ], | ||||
|     "filament_density": [ | ||||
|         "0" | ||||
|     ], | ||||
|     "filament_deretraction_speed": [ | ||||
|         "nil" | ||||
|     ], | ||||
|     "filament_diameter": [ | ||||
|         "1.75" | ||||
|     ], | ||||
|     "filament_max_volumetric_speed": [ | ||||
|         "0" | ||||
|     ], | ||||
|     "filament_minimal_purge_on_wipe_tower": [ | ||||
|         "15" | ||||
|     ], | ||||
|     "filament_retraction_minimum_travel": [ | ||||
|         "nil" | ||||
|     ], | ||||
|     "filament_retract_before_wipe": [ | ||||
|         "nil" | ||||
|     ], | ||||
|     "filament_retract_when_changing_layer": [ | ||||
|         "nil" | ||||
|     ], | ||||
|     "filament_retraction_length": [ | ||||
|         "nil" | ||||
|     ], | ||||
|     "filament_z_hop": [ | ||||
|         "nil" | ||||
|     ], | ||||
|     "filament_retract_restart_extra": [ | ||||
|         "nil" | ||||
|     ], | ||||
|     "filament_retraction_speed": [ | ||||
|         "nil" | ||||
|     ], | ||||
|     "filament_settings_id": [ | ||||
|         "" | ||||
|     ], | ||||
|     "filament_soluble": [ | ||||
|         "0" | ||||
|     ], | ||||
|     "filament_type": [ | ||||
|         "PLA" | ||||
|     ], | ||||
|     "filament_vendor": [ | ||||
|         "Generic" | ||||
|     ], | ||||
|     "filament_wipe": [ | ||||
|         "nil" | ||||
|     ], | ||||
|     "filament_wipe_distance": [ | ||||
|         "nil" | ||||
|     ], | ||||
|     "bed_type": [ | ||||
|         "Cool Plate" | ||||
|     ], | ||||
|     "nozzle_temperature_initial_layer": [ | ||||
|         "200" | ||||
|     ], | ||||
|     "full_fan_speed_layer": [ | ||||
|         "0" | ||||
|     ], | ||||
|     "fan_max_speed": [ | ||||
|         "100" | ||||
|     ], | ||||
|     "fan_min_speed": [ | ||||
|         "35" | ||||
|     ], | ||||
|     "slow_down_min_speed": [ | ||||
|         "10" | ||||
|     ], | ||||
|     "slow_down_layer_time": [ | ||||
|         "8" | ||||
|     ], | ||||
|     "filament_start_gcode": [ | ||||
|         "; Filament gcode\n" | ||||
|     ], | ||||
|     "nozzle_temperature": [ | ||||
|         "200" | ||||
|     ], | ||||
|     "temperature_vitrification": [ | ||||
|         "100" | ||||
|     ] | ||||
| } | ||||
							
								
								
									
										79
									
								
								resources/profiles/Prusa/filament/fdm_filament_pa.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,79 @@ | |||
| { | ||||
|     "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" | ||||
|     ], | ||||
|     "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": [ | ||||
|         "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": [ | ||||
|         "20" | ||||
|     ], | ||||
|     "slow_down_layer_time": [ | ||||
|         "2" | ||||
|     ] | ||||
| } | ||||
							
								
								
									
										82
									
								
								resources/profiles/Prusa/filament/fdm_filament_pc.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,82 @@ | |||
| { | ||||
|     "type": "filament", | ||||
|     "name": "fdm_filament_pc", | ||||
|     "from": "system", | ||||
|     "instantiation": "false", | ||||
|     "inherits": "fdm_filament_common", | ||||
|     "cool_plate_temp" : [ | ||||
|         "0" | ||||
|     ], | ||||
|     "eng_plate_temp" : [ | ||||
|         "110" | ||||
|     ], | ||||
|     "hot_plate_temp" : [ | ||||
|         "110" | ||||
|     ], | ||||
|     "cool_plate_temp_initial_layer" : [ | ||||
|         "0" | ||||
|     ], | ||||
|     "eng_plate_temp_initial_layer" : [ | ||||
|         "110" | ||||
|     ], | ||||
|     "hot_plate_temp_initial_layer" : [ | ||||
|         "110" | ||||
|     ], | ||||
|     "slow_down_for_layer_cooling": [ | ||||
|         "1" | ||||
|     ], | ||||
|     "close_fan_the_first_x_layers": [ | ||||
|         "3" | ||||
|     ], | ||||
|     "fan_cooling_layer_time": [ | ||||
|         "30" | ||||
|     ], | ||||
|     "filament_max_volumetric_speed": [ | ||||
|         "23.2" | ||||
|     ], | ||||
|     "filament_type": [ | ||||
|         "PC" | ||||
|     ], | ||||
|     "filament_density": [ | ||||
|         "1.04" | ||||
|     ], | ||||
|     "filament_cost": [ | ||||
|         "20" | ||||
|     ], | ||||
|     "nozzle_temperature_initial_layer": [ | ||||
|         "270" | ||||
|     ], | ||||
|     "reduce_fan_stop_start_freq": [ | ||||
|         "1" | ||||
|     ], | ||||
|     "fan_max_speed": [ | ||||
|         "60" | ||||
|     ], | ||||
|     "fan_min_speed": [ | ||||
|         "10" | ||||
|     ], | ||||
|     "overhang_fan_threshold": [ | ||||
|         "25%" | ||||
|     ], | ||||
|     "overhang_fan_speed": [ | ||||
|         "60" | ||||
|     ], | ||||
|     "nozzle_temperature": [ | ||||
|         "280" | ||||
|     ], | ||||
|     "temperature_vitrification": [ | ||||
|         "140" | ||||
|     ], | ||||
|     "nozzle_temperature_range_low": [ | ||||
|         "260" | ||||
|     ], | ||||
|     "nozzle_temperature_range_high": [ | ||||
|         "280" | ||||
|     ], | ||||
|     "slow_down_min_speed": [ | ||||
|         "20" | ||||
|     ], | ||||
|     "slow_down_layer_time": [ | ||||
|         "2" | ||||
|     ] | ||||
| } | ||||
							
								
								
									
										76
									
								
								resources/profiles/Prusa/filament/fdm_filament_pet.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,76 @@ | |||
| { | ||||
|     "type": "filament", | ||||
|     "name": "fdm_filament_pet", | ||||
|     "from": "system", | ||||
|     "instantiation": "false", | ||||
|     "inherits": "fdm_filament_common", | ||||
|     "cool_plate_temp" : [ | ||||
|         "60" | ||||
|     ], | ||||
|     "eng_plate_temp" : [ | ||||
|         "0" | ||||
|     ], | ||||
|     "hot_plate_temp" : [ | ||||
|         "80" | ||||
|     ], | ||||
|     "cool_plate_temp_initial_layer" : [ | ||||
|         "60" | ||||
|     ], | ||||
|     "eng_plate_temp_initial_layer" : [ | ||||
|         "0" | ||||
|     ], | ||||
|     "hot_plate_temp_initial_layer" : [ | ||||
|         "80" | ||||
|     ], | ||||
|     "slow_down_for_layer_cooling": [ | ||||
|         "1" | ||||
|     ], | ||||
|     "close_fan_the_first_x_layers": [ | ||||
|         "3" | ||||
|     ], | ||||
|     "fan_cooling_layer_time": [ | ||||
|         "20" | ||||
|     ], | ||||
|     "filament_max_volumetric_speed": [ | ||||
|         "25" | ||||
|     ], | ||||
|     "filament_type": [ | ||||
|         "PETG" | ||||
|     ], | ||||
|     "filament_density": [ | ||||
|         "1.27" | ||||
|     ], | ||||
|     "filament_cost": [ | ||||
|         "30" | ||||
|     ], | ||||
|     "nozzle_temperature_initial_layer": [ | ||||
|         "255" | ||||
|     ], | ||||
|     "reduce_fan_stop_start_freq": [ | ||||
|         "1" | ||||
|     ], | ||||
|     "fan_max_speed": [ | ||||
|         "100" | ||||
|     ], | ||||
|     "fan_min_speed": [ | ||||
|         "20" | ||||
|     ], | ||||
|     "overhang_fan_speed": [ | ||||
|         "100" | ||||
|     ], | ||||
|     "nozzle_temperature": [ | ||||
|         "255" | ||||
|     ], | ||||
|     "temperature_vitrification": [ | ||||
|         "80" | ||||
|     ], | ||||
|     "nozzle_temperature_range_low": [ | ||||
|         "220" | ||||
|     ], | ||||
|     "nozzle_temperature_range_high": [ | ||||
|         "260" | ||||
|     ], | ||||
|     "filament_start_gcode": [ | ||||
|         "; filament start gcode\n" | ||||
|     ] | ||||
| } | ||||
							
								
								
									
										88
									
								
								resources/profiles/Prusa/filament/fdm_filament_pla.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,88 @@ | |||
| { | ||||
|     "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" : [ | ||||
|         "35" | ||||
|     ], | ||||
|     "eng_plate_temp" : [ | ||||
|         "0" | ||||
|     ], | ||||
|     "hot_plate_temp" : [ | ||||
|         "45" | ||||
|     ], | ||||
|     "cool_plate_temp_initial_layer" : [ | ||||
|         "35" | ||||
|     ], | ||||
|     "eng_plate_temp_initial_layer" : [ | ||||
|         "0" | ||||
|     ], | ||||
|     "hot_plate_temp_initial_layer" : [ | ||||
|         "45" | ||||
|     ], | ||||
|     "nozzle_temperature_initial_layer": [ | ||||
|         "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": [ | ||||
|         "20" | ||||
|     ], | ||||
|     "slow_down_layer_time": [ | ||||
|         "4" | ||||
|     ], | ||||
|     "additional_cooling_fan_speed": [ | ||||
|         "70" | ||||
|     ], | ||||
|     "filament_start_gcode": [ | ||||
|         "; filament start gcode\n" | ||||
|     ] | ||||
| } | ||||
							
								
								
									
										94
									
								
								resources/profiles/Prusa/filament/fdm_filament_pva.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,94 @@ | |||
| { | ||||
|     "type": "filament", | ||||
|     "name": "fdm_filament_pva", | ||||
|     "from": "system", | ||||
|     "instantiation": "false", | ||||
|     "inherits": "fdm_filament_common", | ||||
|     "cool_plate_temp" : [ | ||||
|         "35" | ||||
|     ], | ||||
|     "eng_plate_temp" : [ | ||||
|         "0" | ||||
|     ], | ||||
|     "hot_plate_temp" : [ | ||||
|         "45" | ||||
|     ], | ||||
|     "cool_plate_temp_initial_layer" : [ | ||||
|         "35" | ||||
|     ], | ||||
|     "eng_plate_temp_initial_layer" : [ | ||||
|         "0" | ||||
|     ], | ||||
|     "hot_plate_temp_initial_layer" : [ | ||||
|         "45" | ||||
|     ], | ||||
|     "fan_cooling_layer_time": [ | ||||
|         "100" | ||||
|     ], | ||||
|     "filament_max_volumetric_speed": [ | ||||
|         "15" | ||||
|     ], | ||||
|     "filament_soluble": [ | ||||
|         "1" | ||||
|     ], | ||||
|     "filament_is_support": [ | ||||
|         "1" | ||||
|     ], | ||||
|     "filament_type": [ | ||||
|         "PVA" | ||||
|     ], | ||||
|     "filament_density": [ | ||||
|         "1.24" | ||||
|     ], | ||||
|     "filament_cost": [ | ||||
|         "20" | ||||
|     ], | ||||
|     "nozzle_temperature_initial_layer": [ | ||||
|         "220" | ||||
|     ], | ||||
|     "reduce_fan_stop_start_freq": [ | ||||
|         "1" | ||||
|     ], | ||||
|     "slow_down_for_layer_cooling": [ | ||||
|         "1" | ||||
|     ], | ||||
|     "fan_max_speed": [ | ||||
|         "100" | ||||
|     ], | ||||
|     "fan_min_speed": [ | ||||
|         "100" | ||||
|     ], | ||||
|     "overhang_fan_speed": [ | ||||
|         "100" | ||||
|     ], | ||||
|     "overhang_fan_threshold": [ | ||||
|         "50%" | ||||
|     ], | ||||
|     "close_fan_the_first_x_layers": [ | ||||
|         "1" | ||||
|     ], | ||||
|     "nozzle_temperature": [ | ||||
|         "220" | ||||
|     ], | ||||
|     "temperature_vitrification": [ | ||||
|         "50" | ||||
|     ], | ||||
|     "nozzle_temperature_range_low": [ | ||||
|         "190" | ||||
|     ], | ||||
|     "nozzle_temperature_range_high": [ | ||||
|         "250" | ||||
|     ], | ||||
|     "slow_down_min_speed": [ | ||||
|         "50" | ||||
|     ], | ||||
|     "slow_down_layer_time": [ | ||||
|         "4" | ||||
|     ], | ||||
|     "additional_cooling_fan_speed": [ | ||||
|         "70" | ||||
|     ], | ||||
|     "filament_start_gcode": [ | ||||
|         "; filament start gcode\n" | ||||
|     ] | ||||
| } | ||||
							
								
								
									
										82
									
								
								resources/profiles/Prusa/filament/fdm_filament_tpu.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,82 @@ | |||
| { | ||||
|     "type": "filament", | ||||
|     "name": "fdm_filament_tpu", | ||||
|     "from": "system", | ||||
|     "instantiation": "false", | ||||
|     "inherits": "fdm_filament_common", | ||||
|     "cool_plate_temp" : [ | ||||
|         "30" | ||||
|     ], | ||||
|     "eng_plate_temp" : [ | ||||
|         "30" | ||||
|     ], | ||||
|     "hot_plate_temp" : [ | ||||
|         "35" | ||||
|     ], | ||||
|     "cool_plate_temp_initial_layer" : [ | ||||
|         "30" | ||||
|     ], | ||||
|     "eng_plate_temp_initial_layer" : [ | ||||
|         "30" | ||||
|     ], | ||||
|     "hot_plate_temp_initial_layer" : [ | ||||
|         "35" | ||||
|     ], | ||||
|     "fan_cooling_layer_time": [ | ||||
|         "100" | ||||
|     ], | ||||
|     "filament_max_volumetric_speed": [ | ||||
|         "15" | ||||
|     ], | ||||
|     "filament_type": [ | ||||
|         "TPU" | ||||
|     ], | ||||
|     "filament_density": [ | ||||
|         "1.24" | ||||
|     ], | ||||
|     "filament_cost": [ | ||||
|         "20" | ||||
|     ], | ||||
|     "filament_retraction_length": [ | ||||
|         "0.4" | ||||
|     ], | ||||
|     "nozzle_temperature_initial_layer": [ | ||||
|         "240" | ||||
|     ], | ||||
|     "reduce_fan_stop_start_freq": [ | ||||
|         "1" | ||||
|     ], | ||||
|     "slow_down_for_layer_cooling": [ | ||||
|         "1" | ||||
|     ], | ||||
|     "fan_max_speed": [ | ||||
|         "100" | ||||
|     ], | ||||
|     "fan_min_speed": [ | ||||
|         "100" | ||||
|     ], | ||||
|     "overhang_fan_speed": [ | ||||
|         "100" | ||||
|     ], | ||||
|     "additional_cooling_fan_speed": [ | ||||
|         "70" | ||||
|     ], | ||||
|     "close_fan_the_first_x_layers": [ | ||||
|         "1" | ||||
|     ], | ||||
|     "nozzle_temperature": [ | ||||
|         "240" | ||||
|     ], | ||||
|     "temperature_vitrification": [ | ||||
|         "60" | ||||
|     ], | ||||
|     "nozzle_temperature_range_low": [ | ||||
|         "200" | ||||
|     ], | ||||
|     "nozzle_temperature_range_high": [ | ||||
|         "250" | ||||
|     ], | ||||
|     "filament_start_gcode": [ | ||||
|         "; filament start gcode\n" | ||||
|     ] | ||||
| } | ||||
							
								
								
									
										34
									
								
								resources/profiles/Prusa/machine/Prusa MK3S 0.4 nozzle.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,34 @@ | |||
| { | ||||
|   "type": "machine", | ||||
|   "setting_id": "GM003", | ||||
|   "name": "Prusa MK3S 0.4 nozzle", | ||||
|   "from": "system", | ||||
|   "instantiation": "true", | ||||
|   "inherits": "fdm_machine_common", | ||||
|   "printer_model": "Prusa MK3S", | ||||
|   "default_filament_profile": [ | ||||
|       "Prusa Generic PLA" | ||||
|   ], | ||||
|   "default_print_profile": "0.20mm Standard @MK3S", | ||||
|   "nozzle_diameter": [ | ||||
|       "0.4" | ||||
|   ], | ||||
|   "bed_exclude_area": [ | ||||
|     "0x0" | ||||
|   ], | ||||
|   "printable_area": [ | ||||
|     "0x0", | ||||
|     "250x0", | ||||
|     "250x210", | ||||
|     "0x210" | ||||
|   ], | ||||
|   "printable_height": "210", | ||||
|   "machine_start_gcode": "M862.3 P \"[printer_model]\" ; printer model check\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S170 ; set extruder temp for bed leveling\nM140 S[bed_temperature_initial_layer_single] ; set bed temp\nM109 R170 ; wait for bed leveling temp\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp\nM204 T1250 ; set travel acceleration\nG28 ; home all without mesh bed level\nG29 ; mesh bed leveling \nM204 T[machine_max_acceleration_travel] ; restore travel acceleration\nM104 S[nozzle_temperature_initial_layer] ; set extruder temp\nG92 E0\nG1 Y-2 X179 F2400\nG1 Z3 F720\nM109 S[nozzle_temperature_initial_layer] ; wait for extruder temp\n\n; intro line\nG1 X170 F1000\nG1 Z0.2 F720\nG1 X110 E8 F900\nG1 X40 E10 F700\nG92 E0\n\nM221 S95 ; set flow", | ||||
|   "machine_end_gcode": "G1 E-1 F2100 ; retract\n{if max_layer_z < 210}G1 Z{min(max_layer_z+2, 210)} F720 ; Move print head up{endif}\nG1 X178 Y178 F4200 ; park print head\n{if max_layer_z < 210}G1 Z{min(max_layer_z+30, 210)} 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\nM900 K0 ; reset LA\nM84 ; disable motors", | ||||
|   "layer_change_gcode": "", | ||||
|   "scan_first_layer": "0", | ||||
|   "machine_load_filament_time": "17", | ||||
|   "machine_unload_filament_time": "16", | ||||
|   "nozzle_type": "hardened_steel", | ||||
|   "auxiliary_fan": "0" | ||||
| } | ||||
							
								
								
									
										12
									
								
								resources/profiles/Prusa/machine/Prusa MK3S.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,12 @@ | |||
| { | ||||
|     "type": "machine_model", | ||||
|     "name": "Prusa MK3S", | ||||
|     "model_id": "MK3S", | ||||
|     "nozzle_diameter": "0.4", | ||||
|     "machine_tech": "FFF", | ||||
|     "family": "Prusa", | ||||
|     "bed_model": "mk3_bed.stl", | ||||
|     "bed_texture": "mk3.svg", | ||||
|     "hotend_model": "bbl-3dp-hotend.stl", | ||||
|     "default_materials": "Prusa Generic ABS;Prusa Generic PLA;Prusa Generic PLA-CF;Prusa Generic PETG;Prusa Generic TPU;Prusa Generic ASA;Prusa Generic PC;Prusa Generic PVA;Prusa Generic PA;Prusa Generic PA-CF" | ||||
| } | ||||
							
								
								
									
										137
									
								
								resources/profiles/Prusa/machine/fdm_machine_common.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,137 @@ | |||
| { | ||||
|     "type": "machine", | ||||
|     "name": "fdm_machine_common", | ||||
|     "from": "system", | ||||
|     "instantiation": "false", | ||||
|     "gcode_flavor": "marlin", | ||||
|     "machine_start_gcode": "", | ||||
|     "machine_end_gcode": "", | ||||
|     "extruder_colour": [ | ||||
|         "#018001" | ||||
|     ], | ||||
|     "extruder_offset": [ | ||||
|         "0x0" | ||||
|     ], | ||||
|     "machine_max_acceleration_e": [ | ||||
|         "5000", | ||||
|         "5000" | ||||
|     ], | ||||
|     "machine_max_acceleration_extruding": [ | ||||
|         "2000", | ||||
|         "2000" | ||||
|     ], | ||||
|     "machine_max_acceleration_retracting": [ | ||||
|         "5000", | ||||
|         "5000" | ||||
|     ], | ||||
|     "machine_max_acceleration_travel": [ | ||||
|         "3000", | ||||
|         "3000" | ||||
|     ], | ||||
|     "machine_max_acceleration_x": [ | ||||
|         "2000", | ||||
|         "2000" | ||||
|     ], | ||||
|     "machine_max_acceleration_y": [ | ||||
|         "2000", | ||||
|         "2000" | ||||
|     ], | ||||
|     "machine_max_acceleration_z": [ | ||||
|         "300", | ||||
|         "200" | ||||
|     ], | ||||
|     "machine_max_speed_e": [ | ||||
|         "25", | ||||
|         "25" | ||||
|     ], | ||||
|     "machine_max_speed_x": [ | ||||
|         "300", | ||||
|         "200" | ||||
|     ], | ||||
|     "machine_max_speed_y": [ | ||||
|         "300", | ||||
|         "200" | ||||
|     ], | ||||
|     "machine_max_speed_z": [ | ||||
|         "12", | ||||
|         "12" | ||||
|     ], | ||||
|     "machine_max_jerk_e": [ | ||||
|         "2.5", | ||||
|         "2.5" | ||||
|     ], | ||||
|     "machine_max_jerk_x": [ | ||||
|         "9", | ||||
|         "9" | ||||
|     ], | ||||
|     "machine_max_jerk_y": [ | ||||
|         "9", | ||||
|         "9" | ||||
|     ], | ||||
|     "machine_max_jerk_z": [ | ||||
|         "0.2", | ||||
|         "0.4" | ||||
|     ], | ||||
|     "machine_min_extruding_rate": [ | ||||
|         "0", | ||||
|         "0" | ||||
|     ], | ||||
|     "machine_min_travel_rate": [ | ||||
|         "0", | ||||
|         "0" | ||||
|     ], | ||||
|     "max_layer_height": [ | ||||
|         "0.3" | ||||
|     ], | ||||
|     "min_layer_height": [ | ||||
|         "0.08" | ||||
|     ], | ||||
|     "printable_height": "250", | ||||
|     "extruder_clearance_radius": "65", | ||||
|     "extruder_clearance_height_to_rod": "36", | ||||
|     "extruder_clearance_height_to_lid": "140", | ||||
|     "nozzle_diameter": [ | ||||
|         "0.4" | ||||
|     ], | ||||
|     "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": [ | ||||
|         "0.8" | ||||
|     ], | ||||
|     "retract_length_toolchange": [ | ||||
|         "2" | ||||
|     ], | ||||
|     "z_hop": [ | ||||
|         "0.4" | ||||
|     ], | ||||
|     "retract_restart_extra": [ | ||||
|         "0" | ||||
|     ], | ||||
|     "retract_restart_extra_toolchange": [ | ||||
|         "0" | ||||
|     ], | ||||
|     "retraction_speed": [ | ||||
|         "30" | ||||
|     ], | ||||
|     "deretraction_speed": [ | ||||
|         "30" | ||||
|     ], | ||||
|     "silent_mode": "0", | ||||
|     "single_extruder_multi_material": "1", | ||||
|     "change_filament_gcode": "", | ||||
|     "layer_change_gcode": "", | ||||
|     "machine_pause_gcode": "M400 U1\n", | ||||
|     "wipe": [ | ||||
|         "1" | ||||
|     ] | ||||
| } | ||||
							
								
								
									
										930
									
								
								resources/profiles/Prusa/mk3.svg
									
										
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,930 @@ | |||
| <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||||
| <svg | ||||
|    xmlns:dc="http://purl.org/dc/elements/1.1/" | ||||
|    xmlns:cc="http://creativecommons.org/ns#" | ||||
|    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | ||||
|    xmlns:svg="http://www.w3.org/2000/svg" | ||||
|    xmlns="http://www.w3.org/2000/svg" | ||||
|    width="710.08" | ||||
|    height="596.69" | ||||
|    viewBox="0 0 710.08 596.69" | ||||
|    version="1.1" | ||||
|    id="svg3128"> | ||||
|   <metadata | ||||
|      id="metadata3134"> | ||||
|     <rdf:RDF> | ||||
|       <cc:Work | ||||
|          rdf:about=""> | ||||
|         <dc:format>image/svg+xml</dc:format> | ||||
|         <dc:type | ||||
|            rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | ||||
|         <dc:title>MK3_bottom</dc:title> | ||||
|       </cc:Work> | ||||
|     </rdf:RDF> | ||||
|   </metadata> | ||||
|   <defs | ||||
|      id="defs3132" /> | ||||
|   <title | ||||
|      id="title2792">MK3_bottom</title> | ||||
|   <line | ||||
|      x1="0.71" | ||||
|      y1="0.71" | ||||
|      x2="0.71" | ||||
|      y2="595.98" | ||||
|      fill="none" | ||||
|      stroke="#fff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="1.42" | ||||
|      id="line2794" | ||||
|      style="stroke-width:1.42;stroke-miterlimit:4;stroke-dasharray:none" /> | ||||
|   <line | ||||
|      x1="142.44833" | ||||
|      y1="0.71833557" | ||||
|      x2="142.44833" | ||||
|      y2="595.61292" | ||||
|      fill="none" | ||||
|      stroke="#ffffff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="1.43667" | ||||
|      id="line2796" | ||||
|      style="stroke-width:1.433;stroke-miterlimit:4;stroke-dasharray:none" /> | ||||
|   <line | ||||
|      x1="284.16168" | ||||
|      y1="0.71833557" | ||||
|      x2="284.16168" | ||||
|      y2="595.61292" | ||||
|      fill="none" | ||||
|      stroke="#ffffff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="1.43667" | ||||
|      id="line2798" | ||||
|      style="stroke-width:1.433;stroke-miterlimit:4;stroke-dasharray:none" /> | ||||
|   <line | ||||
|      x1="709.37" | ||||
|      y1="595.97998" | ||||
|      x2="709.37" | ||||
|      y2="0.70999998" | ||||
|      fill="none" | ||||
|      stroke="#ffffff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="1.43721" | ||||
|      id="line2800" | ||||
|      style="stroke-width:1.42;stroke-miterlimit:4;stroke-dasharray:none" /> | ||||
|   <line | ||||
|      x1="1.1709223" | ||||
|      y1="581.81" | ||||
|      x2="709.37" | ||||
|      y2="581.81" | ||||
|      fill="none" | ||||
|      stroke="#ffffff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="1.4333" | ||||
|      id="line2802" /> | ||||
|   <line | ||||
|      x1="0.71" | ||||
|      y1="595.98" | ||||
|      x2="709.37" | ||||
|      y2="595.98" | ||||
|      fill="none" | ||||
|      stroke="#fff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="1.42" | ||||
|      id="line2804" /> | ||||
|   <line | ||||
|      x1="1.1709223" | ||||
|      y1="440.07999" | ||||
|      x2="709.37" | ||||
|      y2="440.07999" | ||||
|      fill="none" | ||||
|      stroke="#ffffff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="1.4333" | ||||
|      id="line2806" /> | ||||
|   <line | ||||
|      x1="1.1709223" | ||||
|      y1="298.35001" | ||||
|      x2="709.37" | ||||
|      y2="298.35001" | ||||
|      fill="none" | ||||
|      stroke="#ffffff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="1.4333" | ||||
|      id="line2808" /> | ||||
|   <line | ||||
|      x1="1.1709223" | ||||
|      y1="156.61" | ||||
|      x2="709.37" | ||||
|      y2="156.61" | ||||
|      fill="none" | ||||
|      stroke="#ffffff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="1.4333" | ||||
|      id="line2810" /> | ||||
|   <line | ||||
|      x1="1.1709223" | ||||
|      y1="14.88" | ||||
|      x2="709.37" | ||||
|      y2="14.88" | ||||
|      fill="none" | ||||
|      stroke="#ffffff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="1.4333" | ||||
|      id="line2812" /> | ||||
|   <line | ||||
|      x1="709.37" | ||||
|      y1="0.71" | ||||
|      x2="0.71" | ||||
|      y2="0.71" | ||||
|      fill="none" | ||||
|      stroke="#fff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="1.42" | ||||
|      id="line2814" /> | ||||
|   <line | ||||
|      x1="425.91" | ||||
|      y1="0.71" | ||||
|      x2="425.91" | ||||
|      y2="499.35" | ||||
|      fill="none" | ||||
|      stroke="#fff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="1.42" | ||||
|      id="line2816" | ||||
|      style="stroke-width:1.433;stroke-miterlimit:4;stroke-dasharray:none" /> | ||||
|   <line | ||||
|      x1="425.91" | ||||
|      y1="522.54852" | ||||
|      x2="425.91" | ||||
|      y2="595.72882" | ||||
|      fill="none" | ||||
|      stroke="#ffffff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="1.11117" | ||||
|      id="line2818" | ||||
|      style="stroke-width:1.433;stroke-miterlimit:4;stroke-dasharray:none" /> | ||||
|   <line | ||||
|      x1="567.64" | ||||
|      y1="0.71" | ||||
|      x2="567.64" | ||||
|      y2="499.35" | ||||
|      fill="none" | ||||
|      stroke="#fff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="1.42" | ||||
|      id="line2820" | ||||
|      style="stroke-width:1.433;stroke-miterlimit:4;stroke-dasharray:none" /> | ||||
|   <line | ||||
|      x1="567.64" | ||||
|      y1="522.54" | ||||
|      x2="567.64" | ||||
|      y2="527.69" | ||||
|      fill="none" | ||||
|      stroke="#fff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="1.42" | ||||
|      id="line2822" | ||||
|      style="stroke-width:1.433;stroke-miterlimit:4;stroke-dasharray:none" /> | ||||
|   <line | ||||
|      x1="567.64001" | ||||
|      y1="548.59186" | ||||
|      x2="567.64001" | ||||
|      y2="595.39081" | ||||
|      fill="none" | ||||
|      stroke="#ffffff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="1.67836" | ||||
|      id="line2824" | ||||
|      style="stroke-width:1.433;stroke-miterlimit:4;stroke-dasharray:none" /> | ||||
|   <line | ||||
|      x1="85.751419" | ||||
|      y1="0.71222502" | ||||
|      x2="85.751419" | ||||
|      y2="595.883" | ||||
|      fill="none" | ||||
|      stroke="#ffffff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="0.37445" | ||||
|      id="line2826" /> | ||||
|   <line | ||||
|      x1="114.09101" | ||||
|      y1="0.71222502" | ||||
|      x2="114.09101" | ||||
|      y2="595.883" | ||||
|      fill="none" | ||||
|      stroke="#ffffff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="0.37445" | ||||
|      id="line2828" /> | ||||
|   <line | ||||
|      x1="170.79019" | ||||
|      y1="0.71222502" | ||||
|      x2="170.79019" | ||||
|      y2="595.883" | ||||
|      fill="none" | ||||
|      stroke="#ffffff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="0.37445" | ||||
|      id="line2830" /> | ||||
|   <line | ||||
|      x1="199.12981" | ||||
|      y1="0.71222502" | ||||
|      x2="199.12981" | ||||
|      y2="595.883" | ||||
|      fill="none" | ||||
|      stroke="#ffffff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="0.37445" | ||||
|      id="line2832" /> | ||||
|   <line | ||||
|      x1="227.47939" | ||||
|      y1="0.71222502" | ||||
|      x2="227.47939" | ||||
|      y2="595.883" | ||||
|      fill="none" | ||||
|      stroke="#ffffff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="0.37445" | ||||
|      id="line2834" /> | ||||
|   <line | ||||
|      x1="255.82899" | ||||
|      y1="0.71222502" | ||||
|      x2="255.82899" | ||||
|      y2="595.883" | ||||
|      fill="none" | ||||
|      stroke="#ffffff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="0.37445" | ||||
|      id="line2836" /> | ||||
|   <line | ||||
|      x1="312.51816" | ||||
|      y1="0.71222502" | ||||
|      x2="312.51816" | ||||
|      y2="595.883" | ||||
|      fill="none" | ||||
|      stroke="#ffffff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="0.37445" | ||||
|      id="line2838" /> | ||||
|   <line | ||||
|      x1="340.86777" | ||||
|      y1="0.71222502" | ||||
|      x2="340.86777" | ||||
|      y2="595.883" | ||||
|      fill="none" | ||||
|      stroke="#ffffff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="0.37445" | ||||
|      id="line2840" /> | ||||
|   <line | ||||
|      x1="681.02002" | ||||
|      y1="0.71449536" | ||||
|      x2="681.02002" | ||||
|      y2="595.93481" | ||||
|      fill="none" | ||||
|      stroke="#ffffff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="0.374468" | ||||
|      id="line2842" /> | ||||
|   <line | ||||
|      x1="29.062225" | ||||
|      y1="0.71222502" | ||||
|      x2="29.062225" | ||||
|      y2="595.883" | ||||
|      fill="none" | ||||
|      stroke="#ffffff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="0.37445" | ||||
|      id="line2844" | ||||
|      style="stroke-width:0.374;stroke-miterlimit:4;stroke-dasharray:none" /> | ||||
|   <line | ||||
|      x1="57.401821" | ||||
|      y1="0.71222502" | ||||
|      x2="57.401821" | ||||
|      y2="595.883" | ||||
|      fill="none" | ||||
|      stroke="#ffffff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="0.37445" | ||||
|      id="line2846" /> | ||||
|   <line | ||||
|      x1="1.4567798" | ||||
|      y1="468.42999" | ||||
|      x2="709.37" | ||||
|      y2="468.42999" | ||||
|      fill="none" | ||||
|      stroke="#ffffff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="0.373389" | ||||
|      id="line2848" | ||||
|      style="stroke-width:0.374;stroke-miterlimit:4;stroke-dasharray:none" /> | ||||
|   <line | ||||
|      x1="1.4567798" | ||||
|      y1="496.76999" | ||||
|      x2="709.37" | ||||
|      y2="496.76999" | ||||
|      fill="none" | ||||
|      stroke="#ffffff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="0.373389" | ||||
|      id="line2850" | ||||
|      style="stroke-width:0.374;stroke-miterlimit:4;stroke-dasharray:none" /> | ||||
|   <line | ||||
|      x1="1.4567798" | ||||
|      y1="525.12" | ||||
|      x2="709.37" | ||||
|      y2="525.12" | ||||
|      fill="none" | ||||
|      stroke="#ffffff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="0.373389" | ||||
|      id="line2852" | ||||
|      style="stroke-width:0.374;stroke-miterlimit:4;stroke-dasharray:none" /> | ||||
|   <line | ||||
|      x1="1.4567798" | ||||
|      y1="553.46002" | ||||
|      x2="709.37" | ||||
|      y2="553.46002" | ||||
|      fill="none" | ||||
|      stroke="#ffffff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="0.373389" | ||||
|      id="line2854" | ||||
|      style="stroke-width:0.374;stroke-miterlimit:4;stroke-dasharray:none" /> | ||||
|   <line | ||||
|      x1="1.4567798" | ||||
|      y1="411.73001" | ||||
|      x2="709.37" | ||||
|      y2="411.73001" | ||||
|      fill="none" | ||||
|      stroke="#ffffff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="0.373389" | ||||
|      id="line2856" | ||||
|      style="stroke-width:0.374;stroke-miterlimit:4;stroke-dasharray:none" /> | ||||
|   <line | ||||
|      x1="1.4567798" | ||||
|      y1="383.39001" | ||||
|      x2="709.37" | ||||
|      y2="383.39001" | ||||
|      fill="none" | ||||
|      stroke="#ffffff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="0.373389" | ||||
|      id="line2858" | ||||
|      style="stroke-width:0.374;stroke-miterlimit:4;stroke-dasharray:none" /> | ||||
|   <line | ||||
|      x1="1.4567798" | ||||
|      y1="355.04001" | ||||
|      x2="709.37" | ||||
|      y2="355.04001" | ||||
|      fill="none" | ||||
|      stroke="#ffffff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="0.373389" | ||||
|      id="line2860" | ||||
|      style="stroke-width:0.374;stroke-miterlimit:4;stroke-dasharray:none" /> | ||||
|   <line | ||||
|      x1="1.4567798" | ||||
|      y1="326.69" | ||||
|      x2="709.37" | ||||
|      y2="326.69" | ||||
|      fill="none" | ||||
|      stroke="#ffffff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="0.373389" | ||||
|      id="line2862" | ||||
|      style="stroke-width:0.374;stroke-miterlimit:4;stroke-dasharray:none" /> | ||||
|   <line | ||||
|      x1="1.4567798" | ||||
|      y1="270" | ||||
|      x2="709.37" | ||||
|      y2="270" | ||||
|      fill="none" | ||||
|      stroke="#ffffff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="0.373389" | ||||
|      id="line2864" | ||||
|      style="stroke-width:0.374;stroke-miterlimit:4;stroke-dasharray:none" /> | ||||
|   <line | ||||
|      x1="1.4567798" | ||||
|      y1="241.64999" | ||||
|      x2="709.37" | ||||
|      y2="241.64999" | ||||
|      fill="none" | ||||
|      stroke="#ffffff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="0.373389" | ||||
|      id="line2866" | ||||
|      style="stroke-width:0.374;stroke-miterlimit:4;stroke-dasharray:none" /> | ||||
|   <line | ||||
|      x1="1.4567798" | ||||
|      y1="213.31" | ||||
|      x2="709.37" | ||||
|      y2="213.31" | ||||
|      fill="none" | ||||
|      stroke="#ffffff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="0.373389" | ||||
|      id="line2868" | ||||
|      style="stroke-width:0.374;stroke-miterlimit:4;stroke-dasharray:none" /> | ||||
|   <line | ||||
|      x1="1.4567798" | ||||
|      y1="184.96001" | ||||
|      x2="709.37" | ||||
|      y2="184.96001" | ||||
|      fill="none" | ||||
|      stroke="#ffffff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="0.373389" | ||||
|      id="line2870" | ||||
|      style="stroke-width:0.374;stroke-miterlimit:4;stroke-dasharray:none" /> | ||||
|   <line | ||||
|      x1="1.4567798" | ||||
|      y1="128.27" | ||||
|      x2="709.37" | ||||
|      y2="128.27" | ||||
|      fill="none" | ||||
|      stroke="#ffffff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="0.373389" | ||||
|      id="line2872" | ||||
|      style="stroke-width:0.374;stroke-miterlimit:4;stroke-dasharray:none" /> | ||||
|   <line | ||||
|      x1="1.4567798" | ||||
|      y1="99.919998" | ||||
|      x2="709.37" | ||||
|      y2="99.919998" | ||||
|      fill="none" | ||||
|      stroke="#ffffff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="0.373389" | ||||
|      id="line2874" | ||||
|      style="stroke-width:0.374;stroke-miterlimit:4;stroke-dasharray:none" /> | ||||
|   <line | ||||
|      x1="1.4567798" | ||||
|      y1="71.57" | ||||
|      x2="709.37" | ||||
|      y2="71.57" | ||||
|      fill="none" | ||||
|      stroke="#ffffff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="0.373389" | ||||
|      id="line2876" | ||||
|      style="stroke-width:0.374;stroke-miterlimit:4;stroke-dasharray:none" /> | ||||
|   <line | ||||
|      x1="1.4567798" | ||||
|      y1="43.23" | ||||
|      x2="709.37" | ||||
|      y2="43.23" | ||||
|      fill="none" | ||||
|      stroke="#ffffff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="0.373389" | ||||
|      id="line2878" | ||||
|      style="stroke-width:0.374;stroke-miterlimit:4;stroke-dasharray:none" /> | ||||
|   <line | ||||
|      x1="369.21" | ||||
|      y1="0.71" | ||||
|      x2="369.21" | ||||
|      y2="499.35" | ||||
|      fill="none" | ||||
|      stroke="#fff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="0.37" | ||||
|      id="line2880" | ||||
|      style="stroke-width:0.374;stroke-miterlimit:4;stroke-dasharray:none" /> | ||||
|   <line | ||||
|      x1="369.23029" | ||||
|      y1="522.5603" | ||||
|      x2="369.23029" | ||||
|      y2="595.6524" | ||||
|      fill="none" | ||||
|      stroke="#ffffff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="0.41059" | ||||
|      id="line2882" | ||||
|      style="stroke-width:0.374;stroke-miterlimit:4;stroke-dasharray:none" /> | ||||
|   <line | ||||
|      x1="397.56" | ||||
|      y1="0.71" | ||||
|      x2="397.56" | ||||
|      y2="499.35" | ||||
|      fill="none" | ||||
|      stroke="#fff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="0.37" | ||||
|      id="line2884" | ||||
|      style="stroke-width:0.374;stroke-miterlimit:4;stroke-dasharray:none" /> | ||||
|   <line | ||||
|      x1="397.5397" | ||||
|      y1="522.5603" | ||||
|      x2="397.5397" | ||||
|      y2="595.6524" | ||||
|      fill="none" | ||||
|      stroke="#ffffff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="0.41059" | ||||
|      id="line2886" | ||||
|      style="stroke-width:0.374;stroke-miterlimit:4;stroke-dasharray:none" /> | ||||
|   <line | ||||
|      x1="454.25" | ||||
|      y1="0.71" | ||||
|      x2="454.25" | ||||
|      y2="499.35" | ||||
|      fill="none" | ||||
|      stroke="#fff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="0.37" | ||||
|      id="line2888" | ||||
|      style="stroke-width:0.374;stroke-miterlimit:4;stroke-dasharray:none" /> | ||||
|   <line | ||||
|      x1="454.27032" | ||||
|      y1="522.5603" | ||||
|      x2="454.27032" | ||||
|      y2="595.61359" | ||||
|      fill="none" | ||||
|      stroke="#ffffff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="0.410677" | ||||
|      id="line2890" | ||||
|      style="stroke-width:0.374;stroke-miterlimit:4;stroke-dasharray:none" /> | ||||
|   <line | ||||
|      x1="482.6" | ||||
|      y1="0.71" | ||||
|      x2="482.6" | ||||
|      y2="499.35" | ||||
|      fill="none" | ||||
|      stroke="#fff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="0.37" | ||||
|      id="line2892" | ||||
|      style="stroke-width:0.374;stroke-miterlimit:4;stroke-dasharray:none" /> | ||||
|   <line | ||||
|      x1="482.60678" | ||||
|      y1="522.5603" | ||||
|      x2="482.60678" | ||||
|      y2="595.61359" | ||||
|      fill="none" | ||||
|      stroke="#ffffff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="0.410677" | ||||
|      id="line2894" | ||||
|      style="stroke-width:0.374;stroke-miterlimit:4;stroke-dasharray:none" /> | ||||
|   <line | ||||
|      x1="510.94" | ||||
|      y1="0.71" | ||||
|      x2="510.94" | ||||
|      y2="499.35" | ||||
|      fill="none" | ||||
|      stroke="#fff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="0.37" | ||||
|      id="line2896" | ||||
|      style="stroke-width:0.374;stroke-miterlimit:4;stroke-dasharray:none" /> | ||||
|   <line | ||||
|      x1="510.93323" | ||||
|      y1="522.5603" | ||||
|      x2="510.93323" | ||||
|      y2="595.61359" | ||||
|      fill="none" | ||||
|      stroke="#ffffff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="0.410677" | ||||
|      id="line2898" | ||||
|      style="stroke-width:0.374;stroke-miterlimit:4;stroke-dasharray:none" /> | ||||
|   <line | ||||
|      x1="539.29" | ||||
|      y1="0.71" | ||||
|      x2="539.29" | ||||
|      y2="499.35" | ||||
|      fill="none" | ||||
|      stroke="#fff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="0.37" | ||||
|      id="line2900" | ||||
|      style="stroke-width:0.374;stroke-miterlimit:4;stroke-dasharray:none" /> | ||||
|   <line | ||||
|      x1="539.26965" | ||||
|      y1="522.5603" | ||||
|      x2="539.26965" | ||||
|      y2="595.61359" | ||||
|      fill="none" | ||||
|      stroke="#ffffff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="0.410677" | ||||
|      id="line2902" | ||||
|      style="stroke-width:0.374;stroke-miterlimit:4;stroke-dasharray:none" /> | ||||
|   <line | ||||
|      x1="595.98" | ||||
|      y1="0.71" | ||||
|      x2="595.98" | ||||
|      y2="499.35" | ||||
|      fill="none" | ||||
|      stroke="#fff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="0.37" | ||||
|      id="line2904" | ||||
|      style="stroke-width:0.374;stroke-miterlimit:4;stroke-dasharray:none" /> | ||||
|   <line | ||||
|      x1="624.33" | ||||
|      y1="0.71" | ||||
|      x2="624.33" | ||||
|      y2="499.35" | ||||
|      fill="none" | ||||
|      stroke="#fff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="0.37" | ||||
|      id="line2906" | ||||
|      style="stroke-width:0.374;stroke-miterlimit:4;stroke-dasharray:none" /> | ||||
|   <line | ||||
|      x1="652.68" | ||||
|      y1="0.71" | ||||
|      x2="652.68" | ||||
|      y2="499.35" | ||||
|      fill="none" | ||||
|      stroke="#fff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="0.37" | ||||
|      id="line2908" | ||||
|      style="stroke-width:0.374;stroke-miterlimit:4;stroke-dasharray:none" /> | ||||
|   <line | ||||
|      x1="652.68" | ||||
|      y1="522.54" | ||||
|      x2="652.68" | ||||
|      y2="527.69" | ||||
|      fill="none" | ||||
|      stroke="#fff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="0.37" | ||||
|      id="line2910" | ||||
|      style="stroke-width:0.374;stroke-miterlimit:4;stroke-dasharray:none" /> | ||||
|   <line | ||||
|      x1="652.64447" | ||||
|      y1="548.34552" | ||||
|      x2="652.64447" | ||||
|      y2="595.99268" | ||||
|      fill="none" | ||||
|      stroke="#ffffff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="0.440987" | ||||
|      id="line2912" | ||||
|      style="stroke-width:0.374;stroke-miterlimit:4;stroke-dasharray:none" /> | ||||
|   <line | ||||
|      x1="624.33" | ||||
|      y1="522.54" | ||||
|      x2="624.33" | ||||
|      y2="527.69" | ||||
|      fill="none" | ||||
|      stroke="#fff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="0.37" | ||||
|      id="line2914" | ||||
|      style="stroke-width:0.374;stroke-miterlimit:4;stroke-dasharray:none" /> | ||||
|   <line | ||||
|      x1="624.33002" | ||||
|      y1="548.34552" | ||||
|      x2="624.33002" | ||||
|      y2="595.99268" | ||||
|      fill="none" | ||||
|      stroke="#ffffff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="0.440987" | ||||
|      id="line2916" | ||||
|      style="stroke-width:0.374;stroke-miterlimit:4;stroke-dasharray:none" /> | ||||
|   <line | ||||
|      x1="595.98" | ||||
|      y1="522.54" | ||||
|      x2="595.98" | ||||
|      y2="527.69" | ||||
|      fill="none" | ||||
|      stroke="#fff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="0.37" | ||||
|      id="line2918" | ||||
|      style="stroke-width:0.374;stroke-miterlimit:4;stroke-dasharray:none" /> | ||||
|   <line | ||||
|      x1="596.0155" | ||||
|      y1="548.34552" | ||||
|      x2="596.0155" | ||||
|      y2="595.99268" | ||||
|      fill="none" | ||||
|      stroke="#ffffff" | ||||
|      stroke-linecap="round" | ||||
|      stroke-linejoin="round" | ||||
|      stroke-width="0.440987" | ||||
|      id="line2920" | ||||
|      style="stroke-width:0.374;stroke-miterlimit:4;stroke-dasharray:none" /> | ||||
|   <path | ||||
|      d="M377.71,502.59a8,8,0,0,1,3.44.72,7.6,7.6,0,0,1,2.58,1.95,8.78,8.78,0,0,1,1.62,2.85,10.85,10.85,0,0,1,0,6.94,8.67,8.67,0,0,1-1.62,2.85,7.45,7.45,0,0,1-2.58,1.94,8.71,8.71,0,0,1-6.89,0,7.64,7.64,0,0,1-2.58-1.94,8.67,8.67,0,0,1-1.62-2.85,11,11,0,0,1,0-6.94,8.78,8.78,0,0,1,1.62-2.85,7.8,7.8,0,0,1,2.58-1.95A8,8,0,0,1,377.71,502.59Zm0,2.45a4.94,4.94,0,0,0-2.37.55,4.7,4.7,0,0,0-1.62,1.48,6.87,6.87,0,0,0-.92,2.1,9.75,9.75,0,0,0,0,4.8,6.87,6.87,0,0,0,.92,2.1,4.7,4.7,0,0,0,1.62,1.48,4.94,4.94,0,0,0,2.37.55,4.87,4.87,0,0,0,2.36-.55,4.7,4.7,0,0,0,1.62-1.48,6.64,6.64,0,0,0,.92-2.1,9.45,9.45,0,0,0,0-4.8,6.64,6.64,0,0,0-.92-2.1,4.7,4.7,0,0,0-1.62-1.48A4.87,4.87,0,0,0,377.71,505Z" | ||||
|      transform="translate(0.14 0.14)" | ||||
|      fill="#fff" | ||||
|      id="path3068" /> | ||||
|   <path | ||||
|      d="M388.65,503h8.18a6.32,6.32,0,0,1,4.25,1.23,4.23,4.23,0,0,1,1.42,3.4,5,5,0,0,1-.36,2,4.42,4.42,0,0,1-.84,1.3,3.4,3.4,0,0,1-.95.71c-.31.14-.54.23-.68.28V512a2.88,2.88,0,0,1,.82.24,2.38,2.38,0,0,1,.83.61,3.38,3.38,0,0,1,.64,1.09,4.82,4.82,0,0,1,.25,1.69,15.32,15.32,0,0,0,.23,2.74,3.59,3.59,0,0,0,.71,1.77h-3.22a2.88,2.88,0,0,1-.4-1.23c0-.44-.06-.88-.06-1.29a12,12,0,0,0-.14-2,3.57,3.57,0,0,0-.53-1.42,2.18,2.18,0,0,0-1-.82,4.53,4.53,0,0,0-1.69-.27h-4.42v7.06h-3Zm3,7.8h4.92a3.17,3.17,0,0,0,2.19-.68,2.68,2.68,0,0,0,.74-2.05,3.21,3.21,0,0,0-.24-1.34,1.94,1.94,0,0,0-.66-.8,2.39,2.39,0,0,0-1-.38,5.83,5.83,0,0,0-1.12-.1h-4.87Z" | ||||
|      transform="translate(0.14 0.14)" | ||||
|      fill="#fff" | ||||
|      id="path3070" /> | ||||
|   <path | ||||
|      d="M405.55,503h3v17.14h-3Z" | ||||
|      transform="translate(0.14 0.14)" | ||||
|      fill="#fff" | ||||
|      id="path3072" /> | ||||
|   <path | ||||
|      d="M427.17,520.14h-1.92l-.46-2a7.15,7.15,0,0,1-2.4,1.9,6.83,6.83,0,0,1-2.76.53,8.11,8.11,0,0,1-3.44-.71,7.45,7.45,0,0,1-2.58-1.94,8.67,8.67,0,0,1-1.62-2.85,11,11,0,0,1,0-6.94,8.78,8.78,0,0,1,1.62-2.85,7.6,7.6,0,0,1,2.58-1.95,8,8,0,0,1,3.44-.72,9.3,9.3,0,0,1,2.66.38,6.89,6.89,0,0,1,2.24,1.1,6.1,6.1,0,0,1,1.63,1.83,6.49,6.49,0,0,1,.82,2.55h-2.93a3.73,3.73,0,0,0-1.51-2.55,4.42,4.42,0,0,0-1.35-.64,5.3,5.3,0,0,0-1.56-.22,4.87,4.87,0,0,0-2.36.55,4.7,4.7,0,0,0-1.62,1.48,6.64,6.64,0,0,0-.92,2.1,9.75,9.75,0,0,0,0,4.8,6.64,6.64,0,0,0,.92,2.1,4.7,4.7,0,0,0,1.62,1.48,4.87,4.87,0,0,0,2.36.55,5.84,5.84,0,0,0,2-.3,3.91,3.91,0,0,0,2.43-2.44,6.11,6.11,0,0,0,.33-2h-4.56v-2.28h7.3Z" | ||||
|      transform="translate(0.14 0.14)" | ||||
|      fill="#fff" | ||||
|      id="path3074" /> | ||||
|   <path | ||||
|      d="M430.43,503h3v17.14h-3Z" | ||||
|      transform="translate(0.14 0.14)" | ||||
|      fill="#fff" | ||||
|      id="path3076" /> | ||||
|   <path | ||||
|      d="M437,503h3.16L448,515.63h0V503h2.85v17.14h-3.17l-7.8-12.6h-.07v12.6H437Z" | ||||
|      transform="translate(0.14 0.14)" | ||||
|      fill="#fff" | ||||
|      id="path3078" /> | ||||
|   <path | ||||
|      d="M459,503h3.19l6.6,17.14h-3.22L464,515.6h-6.84l-1.61,4.54h-3.1ZM458,513.32h5.23L460.63,506h-.08Z" | ||||
|      transform="translate(0.14 0.14)" | ||||
|      fill="#fff" | ||||
|      id="path3080" /> | ||||
|   <path | ||||
|      d="M470.44,503h3v14.55h8.71v2.59H470.44Z" | ||||
|      transform="translate(0.14 0.14)" | ||||
|      fill="#fff" | ||||
|      id="path3082" /> | ||||
|   <path | ||||
|      d="M490.89,503h7.56a7.15,7.15,0,0,1,3,.53,4.61,4.61,0,0,1,1.78,1.32,4.38,4.38,0,0,1,.85,1.73,6.93,6.93,0,0,1,.23,1.73,6.78,6.78,0,0,1-.23,1.71,4.4,4.4,0,0,1-.85,1.72,4.59,4.59,0,0,1-1.78,1.31,7.34,7.34,0,0,1-3,.51h-4.56v6.58h-3Zm3,8.11h4.39a3.7,3.7,0,0,0,1-.14,3,3,0,0,0,1-.47,2.45,2.45,0,0,0,.72-.86,3,3,0,0,0,.27-1.36,3.5,3.5,0,0,0-.24-1.39,2.18,2.18,0,0,0-.65-.88,2.35,2.35,0,0,0-.93-.44,5.09,5.09,0,0,0-1.13-.12h-4.44Z" | ||||
|      transform="translate(0.14 0.14)" | ||||
|      fill="#fff" | ||||
|      id="path3084" /> | ||||
|   <path | ||||
|      d="M506.9,503h8.18a6.34,6.34,0,0,1,4.25,1.23,4.26,4.26,0,0,1,1.42,3.4,4.78,4.78,0,0,1-.37,2,4.41,4.41,0,0,1-.83,1.3,3.55,3.55,0,0,1-.95.71c-.31.14-.54.23-.69.28V512a2.94,2.94,0,0,1,.83.24,2.47,2.47,0,0,1,.83.61,3.38,3.38,0,0,1,.64,1.09,5.06,5.06,0,0,1,.25,1.69,15.36,15.36,0,0,0,.22,2.74,3.68,3.68,0,0,0,.71,1.77h-3.21a2.75,2.75,0,0,1-.4-1.23c0-.44-.06-.88-.06-1.29a13.09,13.09,0,0,0-.14-2,3.72,3.72,0,0,0-.53-1.42,2.23,2.23,0,0,0-1-.82,4.59,4.59,0,0,0-1.7-.27H509.9v7.06h-3Zm3,7.8h4.92a3.13,3.13,0,0,0,2.18-.68,2.64,2.64,0,0,0,.75-2.05,3.21,3.21,0,0,0-.24-1.34,2,2,0,0,0-.67-.8,2.33,2.33,0,0,0-1-.38,5.73,5.73,0,0,0-1.11-.1H509.9Z" | ||||
|      transform="translate(0.14 0.14)" | ||||
|      fill="#fff" | ||||
|      id="path3086" /> | ||||
|   <path | ||||
|      d="M523.6,503h3v10c0,.58,0,1.17.08,1.76a4,4,0,0,0,.49,1.59,3,3,0,0,0,1.2,1.17,5.93,5.93,0,0,0,4.53,0,3,3,0,0,0,1.2-1.17,3.94,3.94,0,0,0,.48-1.59,17.44,17.44,0,0,0,.09-1.76V503h3v11a7.48,7.48,0,0,1-.51,2.88,5.38,5.38,0,0,1-1.43,2,5.87,5.87,0,0,1-2.22,1.24,10.32,10.32,0,0,1-5.76,0,6,6,0,0,1-2.22-1.24,5.47,5.47,0,0,1-1.42-2,7.48,7.48,0,0,1-.51-2.88Z" | ||||
|      transform="translate(0.14 0.14)" | ||||
|      fill="#fff" | ||||
|      id="path3088" /> | ||||
|   <path | ||||
|      d="M543.09,514.43a3.93,3.93,0,0,0,.33,1.68,3.17,3.17,0,0,0,.94,1.14,4,4,0,0,0,1.38.64,6.47,6.47,0,0,0,1.69.21,5.45,5.45,0,0,0,1.68-.23,3.34,3.34,0,0,0,1.13-.59,2,2,0,0,0,.62-.83,2.41,2.41,0,0,0,.2-.94,2,2,0,0,0-.45-1.46,2.54,2.54,0,0,0-1-.66c-.61-.22-1.32-.43-2.12-.63s-1.81-.46-3-.78a6.41,6.41,0,0,1-1.84-.76,4.38,4.38,0,0,1-1.16-1,3.63,3.63,0,0,1-.61-1.23,4.89,4.89,0,0,1-.18-1.32,4.45,4.45,0,0,1,.54-2.24,4.68,4.68,0,0,1,1.43-1.57,6.18,6.18,0,0,1,2-.93,8.81,8.81,0,0,1,2.28-.3,9,9,0,0,1,2.53.35,6.3,6.3,0,0,1,2.09,1,5.17,5.17,0,0,1,1.43,1.72,5.11,5.11,0,0,1,.53,2.37h-3a2.88,2.88,0,0,0-1.13-2.34,4.45,4.45,0,0,0-2.57-.69,5.82,5.82,0,0,0-1.08.11,3.37,3.37,0,0,0-1,.36,2.22,2.22,0,0,0-.75.68,1.86,1.86,0,0,0-.3,1.08,1.82,1.82,0,0,0,.56,1.43,3.54,3.54,0,0,0,1.48.78l.75.21,1.48.39,1.59.42,1.12.3a5.1,5.1,0,0,1,1.46.72,4.55,4.55,0,0,1,1.05,1.05,4.11,4.11,0,0,1,.62,1.26,4.41,4.41,0,0,1,.21,1.34,4.87,4.87,0,0,1-.59,2.46,5.06,5.06,0,0,1-1.55,1.67,6.81,6.81,0,0,1-2.18,1,11,11,0,0,1-2.5.3,10.23,10.23,0,0,1-2.76-.36,6.63,6.63,0,0,1-2.26-1.11,5.37,5.37,0,0,1-1.53-1.91,6.15,6.15,0,0,1-.6-2.74Z" | ||||
|      transform="translate(0.14 0.14)" | ||||
|      fill="#fff" | ||||
|      id="path3090" /> | ||||
|   <path | ||||
|      d="M561.26,503h3.19l6.6,17.14h-3.22l-1.61-4.54h-6.84l-1.6,4.54h-3.1Zm-1.06,10.32h5.23L562.86,506h-.07Z" | ||||
|      transform="translate(0.14 0.14)" | ||||
|      fill="#fff" | ||||
|      id="path3092" /> | ||||
|   <path | ||||
|      d="M579,503h2.74v2.59H579Zm0,4.73h2.74v12.41H579Z" | ||||
|      transform="translate(0.14 0.14)" | ||||
|      fill="#fff" | ||||
|      id="path3094" /> | ||||
|   <path | ||||
|      d="M588.78,510.3a6.82,6.82,0,0,0,1.35-.1,3.71,3.71,0,0,0,1.2-.42,2.33,2.33,0,0,0,.85-.83,2.38,2.38,0,0,0,.32-1.29,2.19,2.19,0,0,0-.73-1.73,2.74,2.74,0,0,0-1.88-.65,2.59,2.59,0,0,0-1.25.29,2.63,2.63,0,0,0-.88.78,3.57,3.57,0,0,0-.51,1.1,4.44,4.44,0,0,0-.15,1.26h-2.73a7,7,0,0,1,.45-2.27,6.06,6.06,0,0,1,1.12-1.81,4.93,4.93,0,0,1,1.72-1.2,5.87,5.87,0,0,1,2.28-.43,6.69,6.69,0,0,1,1.93.29,5.51,5.51,0,0,1,1.7.84,4.08,4.08,0,0,1,1.21,1.4,4,4,0,0,1,.46,2,4.13,4.13,0,0,1-.58,2.22,3.28,3.28,0,0,1-1.8,1.38v.05a3.49,3.49,0,0,1,2.25,1.43,4.72,4.72,0,0,1,.8,2.77,4.65,4.65,0,0,1-.48,2.14,4.84,4.84,0,0,1-1.29,1.61,6.09,6.09,0,0,1-1.9,1,7.71,7.71,0,0,1-4.84-.06,4.88,4.88,0,0,1-1.82-1.19,5.12,5.12,0,0,1-1.12-1.84,7.54,7.54,0,0,1-.4-2.4h2.73a3.78,3.78,0,0,0,.76,2.55,2.87,2.87,0,0,0,2.41,1,3.42,3.42,0,0,0,2.29-.78,2.74,2.74,0,0,0,.93-2.22,2.77,2.77,0,0,0-.39-1.56,2.44,2.44,0,0,0-1-.87,3.85,3.85,0,0,0-1.4-.37,12.06,12.06,0,0,0-1.6,0Z" | ||||
|      transform="translate(0.14 0.14)" | ||||
|      fill="#fff" | ||||
|      id="path3096" /> | ||||
|   <path | ||||
|      d="M548.43,531.91h2.06v4.75h0a3.05,3.05,0,0,1,.52-.61,3.13,3.13,0,0,1,.68-.46,3.58,3.58,0,0,1,.77-.29,3.19,3.19,0,0,1,.8-.1,4.42,4.42,0,0,1,1.92.39,3.77,3.77,0,0,1,1.36,1.06,4.64,4.64,0,0,1,.81,1.58,6.65,6.65,0,0,1,.27,1.92,6.89,6.89,0,0,1-.24,1.82,4.89,4.89,0,0,1-.74,1.56,3.57,3.57,0,0,1-3,1.48,7.57,7.57,0,0,1-.95-.06,3.93,3.93,0,0,1-.91-.24,3.06,3.06,0,0,1-.78-.47,2.28,2.28,0,0,1-.59-.76h0v1.28h-2Zm7.17,8.21a5.06,5.06,0,0,0-.16-1.23,3.27,3.27,0,0,0-.49-1,2.6,2.6,0,0,0-.81-.74,2.17,2.17,0,0,0-1.12-.28,2.26,2.26,0,0,0-1.95.9,4,4,0,0,0-.66,2.4,4.54,4.54,0,0,0,.18,1.3,2.89,2.89,0,0,0,.51,1,2.69,2.69,0,0,0,.82.68,2.26,2.26,0,0,0,1.1.25,2.21,2.21,0,0,0,1.19-.29,2.47,2.47,0,0,0,.8-.74,3.09,3.09,0,0,0,.45-1.05A5.3,5.3,0,0,0,555.6,540.12Z" | ||||
|      transform="translate(0.14 0.14)" | ||||
|      fill="#fff" | ||||
|      id="path3098" /> | ||||
|   <path | ||||
|      d="M558.35,535.45h2.25L563,542.4h0l2.36-6.95h2.14l-3.64,9.81c-.17.42-.33.83-.49,1.21a4.62,4.62,0,0,1-.59,1,2.61,2.61,0,0,1-.87.7,3,3,0,0,1-1.32.26,9.73,9.73,0,0,1-1.43-.11v-1.73l.49.08a2.63,2.63,0,0,0,.49,0,1.66,1.66,0,0,0,.59-.09,1,1,0,0,0,.39-.26,1.69,1.69,0,0,0,.26-.41,3.65,3.65,0,0,0,.2-.54l.23-.72Z" | ||||
|      transform="translate(0.14 0.14)" | ||||
|      fill="#fff" | ||||
|      id="path3100" /> | ||||
|   <path | ||||
|      d="M580.94,540.62a9.81,9.81,0,0,1-.14,1.64,3.52,3.52,0,0,1-.59,1.42,3,3,0,0,1-1.28,1,5.47,5.47,0,0,1-2.22.38,4.33,4.33,0,0,1-1.74-.32,3.29,3.29,0,0,1-1.19-.86,3.57,3.57,0,0,1-.69-1.31,6.08,6.08,0,0,1-.21-1.64v-.68h2.25v.67a3.25,3.25,0,0,0,.37,1.7,1.49,1.49,0,0,0,1.39.6,2.08,2.08,0,0,0,.89-.16,1.31,1.31,0,0,0,.56-.48,2,2,0,0,0,.28-.78,6.81,6.81,0,0,0,.07-1.06v-8.84h2.25Z" | ||||
|      transform="translate(0.14 0.14)" | ||||
|      fill="#fff" | ||||
|      id="path3102" /> | ||||
|   <path | ||||
|      d="M587.66,545a5,5,0,0,1-2-.37,4.1,4.1,0,0,1-1.48-1,4.46,4.46,0,0,1-.92-1.55,6,6,0,0,1-.31-2,5.88,5.88,0,0,1,.31-2,4.37,4.37,0,0,1,.92-1.55,4.25,4.25,0,0,1,1.48-1,5.51,5.51,0,0,1,4,0,4.25,4.25,0,0,1,1.48,1,4.37,4.37,0,0,1,.92,1.55,5.88,5.88,0,0,1,.31,2,6,6,0,0,1-.31,2,4.46,4.46,0,0,1-.92,1.55,4.1,4.1,0,0,1-1.48,1A5,5,0,0,1,587.66,545Zm0-1.62a2.25,2.25,0,0,0,1.18-.29,2.4,2.4,0,0,0,.83-.75,3.2,3.2,0,0,0,.48-1.06,4.73,4.73,0,0,0,.15-1.19,4.85,4.85,0,0,0-.15-1.19,3,3,0,0,0-.48-1,2.4,2.4,0,0,0-.83-.75,2.57,2.57,0,0,0-2.37,0,2.49,2.49,0,0,0-.83.75,3,3,0,0,0-.48,1,4.85,4.85,0,0,0-.15,1.19,4.73,4.73,0,0,0,.15,1.19,3.2,3.2,0,0,0,.48,1.06,2.49,2.49,0,0,0,.83.75A2.26,2.26,0,0,0,587.66,543.39Z" | ||||
|      transform="translate(0.14 0.14)" | ||||
|      fill="#fff" | ||||
|      id="path3104" /> | ||||
|   <path | ||||
|      d="M595.61,541.77a1.54,1.54,0,0,0,.69,1.26,2.68,2.68,0,0,0,1.42.36,5.25,5.25,0,0,0,.65,0,3.12,3.12,0,0,0,.7-.17,1.45,1.45,0,0,0,.53-.37,1,1,0,0,0-.1-1.29,2.11,2.11,0,0,0-.69-.41,9,9,0,0,0-1-.26l-1.09-.23a9,9,0,0,1-1.11-.31,3.75,3.75,0,0,1-1-.48A2.34,2.34,0,0,1,594,539a2.44,2.44,0,0,1-.25-1.17,2.08,2.08,0,0,1,.37-1.27,2.66,2.66,0,0,1,.93-.83,4,4,0,0,1,1.26-.44,6.88,6.88,0,0,1,1.33-.13,6.12,6.12,0,0,1,1.37.15,3.84,3.84,0,0,1,1.19.5,2.88,2.88,0,0,1,.88.89,3,3,0,0,1,.44,1.32h-2.14a1.27,1.27,0,0,0-.67-1,3,3,0,0,0-1.22-.25,3.44,3.44,0,0,0-.51,0,2.42,2.42,0,0,0-.56.13,1.21,1.21,0,0,0-.44.29.7.7,0,0,0-.18.5.8.8,0,0,0,.26.61,2.14,2.14,0,0,0,.69.38,6.55,6.55,0,0,0,1,.27l1.12.23a9.92,9.92,0,0,1,1.1.31,3.66,3.66,0,0,1,1,.48,2.47,2.47,0,0,1,.69.78,2.36,2.36,0,0,1,.26,1.15,2.5,2.5,0,0,1-.38,1.4,2.94,2.94,0,0,1-1,.94,4.68,4.68,0,0,1-1.35.52,6.66,6.66,0,0,1-1.46.16,6.44,6.44,0,0,1-1.63-.2,3.79,3.79,0,0,1-1.3-.6,2.91,2.91,0,0,1-.87-1,3.18,3.18,0,0,1-.33-1.43Z" | ||||
|      transform="translate(0.14 0.14)" | ||||
|      fill="#fff" | ||||
|      id="path3106" /> | ||||
|   <path | ||||
|      d="M605,540.64a3.58,3.58,0,0,0,.15,1,2.54,2.54,0,0,0,.46.88,2.11,2.11,0,0,0,.77.61,2.6,2.6,0,0,0,1.12.22A2.46,2.46,0,0,0,609,543a2.27,2.27,0,0,0,.82-1.16h1.94a3.71,3.71,0,0,1-.56,1.35,3.78,3.78,0,0,1-.95,1,3.93,3.93,0,0,1-1.25.61,5,5,0,0,1-1.45.21,4.9,4.9,0,0,1-1.94-.36,3.91,3.91,0,0,1-1.44-1,4.25,4.25,0,0,1-.88-1.54,6.23,6.23,0,0,1-.29-2,5.68,5.68,0,0,1,.31-1.89,4.83,4.83,0,0,1,.9-1.56,4.23,4.23,0,0,1,3.29-1.47,4.15,4.15,0,0,1,2,.46,4.4,4.4,0,0,1,1.45,1.22,4.87,4.87,0,0,1,.83,1.73,5.31,5.31,0,0,1,.14,2Zm4.79-1.35a3.67,3.67,0,0,0-.21-.94,2.54,2.54,0,0,0-.47-.78,2.43,2.43,0,0,0-.72-.54,2.09,2.09,0,0,0-.94-.21,2.43,2.43,0,0,0-1,.19,2.34,2.34,0,0,0-.75.52,2.68,2.68,0,0,0-.51.79,2.8,2.8,0,0,0-.2,1Z" | ||||
|      transform="translate(0.14 0.14)" | ||||
|      fill="#fff" | ||||
|      id="path3108" /> | ||||
|   <path | ||||
|      d="M612.5,535.45H614v-.77a4,4,0,0,1,.22-1.43,2,2,0,0,1,.58-.85,1.79,1.79,0,0,1,.82-.39,4.22,4.22,0,0,1,1-.1A6.16,6.16,0,0,1,618,532v1.61a2.59,2.59,0,0,0-.42-.09l-.53,0a1.22,1.22,0,0,0-.72.2.88.88,0,0,0-.29.77v1h1.74V537h-1.74v7.78H614V537H612.5Z" | ||||
|      transform="translate(0.14 0.14)" | ||||
|      fill="#fff" | ||||
|      id="path3110" /> | ||||
|   <path | ||||
|      d="M624.38,531.91h5.67a5.47,5.47,0,0,1,2.23.39,3.68,3.68,0,0,1,1.33,1,3.51,3.51,0,0,1,.64,1.3,5.74,5.74,0,0,1,.17,1.3,5.57,5.57,0,0,1-.17,1.28,3.55,3.55,0,0,1-.64,1.29,3.45,3.45,0,0,1-1.33,1,5.47,5.47,0,0,1-2.23.39h-3.42v4.93h-2.25Zm2.25,6.08h3.29a2.61,2.61,0,0,0,.77-.11,2.14,2.14,0,0,0,.73-.35,1.83,1.83,0,0,0,.54-.65,2.16,2.16,0,0,0,.21-1,2.67,2.67,0,0,0-.18-1,1.7,1.7,0,0,0-1.19-1,3.73,3.73,0,0,0-.84-.09h-3.33Z" | ||||
|      transform="translate(0.14 0.14)" | ||||
|      fill="#fff" | ||||
|      id="path3112" /> | ||||
|   <path | ||||
|      d="M636.09,535.45H638v1.8h0a2,2,0,0,1,.36-.73,3.26,3.26,0,0,1,.63-.66,3,3,0,0,1,.81-.48,2.47,2.47,0,0,1,.92-.18l.5,0,.28,0v2l-.44-.06a3.39,3.39,0,0,0-.45,0,2.25,2.25,0,0,0-1.78.81,3,3,0,0,0-.54,1,4.44,4.44,0,0,0-.2,1.37v4.43h-2Z" | ||||
|      transform="translate(0.14 0.14)" | ||||
|      fill="#fff" | ||||
|      id="path3114" /> | ||||
|   <path | ||||
|      d="M650.6,544.76h-2v-1.3h0a2.79,2.79,0,0,1-1.13,1.13,3,3,0,0,1-1.52.42,3.39,3.39,0,0,1-2.65-.91,4,4,0,0,1-.82-2.74v-5.91h2.05v5.71a2.54,2.54,0,0,0,.47,1.73,1.72,1.72,0,0,0,1.31.5,2.48,2.48,0,0,0,1.08-.2,1.88,1.88,0,0,0,.7-.53,2.06,2.06,0,0,0,.39-.8,4.05,4.05,0,0,0,.12-1v-5.4h2.05Z" | ||||
|      transform="translate(0.14 0.14)" | ||||
|      fill="#fff" | ||||
|      id="path3116" /> | ||||
|   <path | ||||
|      d="M654.31,541.77A1.56,1.56,0,0,0,655,543a2.7,2.7,0,0,0,1.42.36,5.29,5.29,0,0,0,.66,0,2.91,2.91,0,0,0,.69-.17,1.41,1.41,0,0,0,.54-.37.9.9,0,0,0,.18-.64.89.89,0,0,0-.28-.65,2.06,2.06,0,0,0-.7-.41,8.18,8.18,0,0,0-1-.26l-1.1-.23a9.34,9.34,0,0,1-1.1-.31,3.6,3.6,0,0,1-1-.48,2.23,2.23,0,0,1-.67-.79,2.44,2.44,0,0,1-.26-1.17,2.14,2.14,0,0,1,.37-1.27,2.78,2.78,0,0,1,.94-.83,4,4,0,0,1,1.26-.44,6.86,6.86,0,0,1,1.32-.13,6.21,6.21,0,0,1,1.38.15,4,4,0,0,1,1.19.5,3,3,0,0,1,.88.89,3.17,3.17,0,0,1,.44,1.32h-2.14a1.28,1.28,0,0,0-.68-1,2.9,2.9,0,0,0-1.21-.25,3.46,3.46,0,0,0-.52,0,2.45,2.45,0,0,0-.55.13,1.13,1.13,0,0,0-.44.29.7.7,0,0,0-.18.5.77.77,0,0,0,.26.61,2.09,2.09,0,0,0,.68.38,7.08,7.08,0,0,0,1,.27l1.12.23a10.57,10.57,0,0,1,1.1.31,3.82,3.82,0,0,1,1,.48,2.33,2.33,0,0,1,.68.78,2.25,2.25,0,0,1,.26,1.15,2.42,2.42,0,0,1-.38,1.4,2.94,2.94,0,0,1-1,.94,4.51,4.51,0,0,1-1.34.52,6.73,6.73,0,0,1-1.46.16,6.52,6.52,0,0,1-1.64-.2,3.74,3.74,0,0,1-1.29-.6,2.91,2.91,0,0,1-.87-1,3.18,3.18,0,0,1-.33-1.43Z" | ||||
|      transform="translate(0.14 0.14)" | ||||
|      fill="#fff" | ||||
|      id="path3118" /> | ||||
|   <path | ||||
|      d="M669.9,542.69a1.05,1.05,0,0,0,.1.54.4.4,0,0,0,.38.16h.22l.29,0v1.42l-.28.08-.35.08-.36,0a1.84,1.84,0,0,1-.31,0,1.93,1.93,0,0,1-1-.25,1.23,1.23,0,0,1-.54-.88,3.69,3.69,0,0,1-1.51.86,5.86,5.86,0,0,1-1.72.27,4.3,4.3,0,0,1-1.2-.17,3.13,3.13,0,0,1-1-.5,2.52,2.52,0,0,1-.7-.85,2.65,2.65,0,0,1-.26-1.2,2.77,2.77,0,0,1,.31-1.4,2.42,2.42,0,0,1,.83-.85,3.87,3.87,0,0,1,1.15-.44,11.51,11.51,0,0,1,1.29-.2,8.81,8.81,0,0,1,1.06-.16,5,5,0,0,0,.89-.15,1.42,1.42,0,0,0,.62-.33.93.93,0,0,0,.22-.68,1,1,0,0,0-.19-.65,1.26,1.26,0,0,0-.47-.38,2,2,0,0,0-.62-.18,5,5,0,0,0-.65,0,2.58,2.58,0,0,0-1.42.36,1.41,1.41,0,0,0-.63,1.12h-2a3.19,3.19,0,0,1,.43-1.5,3,3,0,0,1,1-.95,3.74,3.74,0,0,1,1.32-.5,7.51,7.51,0,0,1,1.51-.15,6.07,6.07,0,0,1,1.35.15,3.94,3.94,0,0,1,1.2.46,2.62,2.62,0,0,1,.85.84,2.26,2.26,0,0,1,.33,1.25Zm-2.06-2.59a2.6,2.6,0,0,1-1.15.37,13.25,13.25,0,0,0-1.37.19,3.6,3.6,0,0,0-.63.15,1.71,1.71,0,0,0-.54.27,1.16,1.16,0,0,0-.36.45,1.51,1.51,0,0,0-.14.67.89.89,0,0,0,.2.58,1.35,1.35,0,0,0,.48.37,2.29,2.29,0,0,0,.61.19,4.54,4.54,0,0,0,.6,0,3.39,3.39,0,0,0,.74-.09,2.68,2.68,0,0,0,.75-.3,2.17,2.17,0,0,0,.58-.55,1.39,1.39,0,0,0,.23-.82Z" | ||||
|      transform="translate(0.14 0.14)" | ||||
|      fill="#fff" | ||||
|      id="path3120" /> | ||||
|   <path | ||||
|      d="M606.38,507.28h3.16l3.55,10.07h0l3.45-10.07h3.13v12.86h-2.14v-9.92h0L614,520.14h-1.85l-3.57-9.92h0v9.92h-2.14Z" | ||||
|      transform="translate(0.14 0.14)" | ||||
|      fill="#fff" | ||||
|      id="path3122" /> | ||||
|   <path | ||||
|      d="M622.41,507.28h2.25v5.85l5.73-5.85h2.77L628,512.41l5.49,7.73h-2.81L626.5,514l-1.84,1.82v4.32h-2.25Z" | ||||
|      transform="translate(0.14 0.14)" | ||||
|      fill="#fff" | ||||
|      id="path3124" /> | ||||
|   <path | ||||
|      d="M637.48,512.76a4.92,4.92,0,0,0,1-.08,2.9,2.9,0,0,0,.9-.31,1.81,1.81,0,0,0,.64-.62,1.86,1.86,0,0,0,.24-1,1.64,1.64,0,0,0-.55-1.3,2.07,2.07,0,0,0-1.41-.49,2,2,0,0,0-.94.22,1.84,1.84,0,0,0-.65.59,2.39,2.39,0,0,0-.39.82,3,3,0,0,0-.11.95h-2.05a5.19,5.19,0,0,1,.34-1.7,4.1,4.1,0,0,1,.84-1.36,3.54,3.54,0,0,1,1.28-.9,4.27,4.27,0,0,1,1.71-.33,5,5,0,0,1,1.45.22,4,4,0,0,1,1.28.63,3.18,3.18,0,0,1,.91,1.05,3.07,3.07,0,0,1,.34,1.47,3.15,3.15,0,0,1-.43,1.67,2.52,2.52,0,0,1-1.35,1v0a2.57,2.57,0,0,1,1.68,1.07,3.46,3.46,0,0,1,.61,2.08,3.53,3.53,0,0,1-.36,1.61,3.67,3.67,0,0,1-1,1.2,4.41,4.41,0,0,1-1.42.77,5.37,5.37,0,0,1-1.71.27,5.27,5.27,0,0,1-1.91-.32,3.54,3.54,0,0,1-1.37-.89,3.71,3.71,0,0,1-.84-1.38,6,6,0,0,1-.31-1.8H636a2.82,2.82,0,0,0,.56,1.91,2.18,2.18,0,0,0,1.81.77,2.56,2.56,0,0,0,1.72-.59,2.05,2.05,0,0,0,.69-1.66,2.11,2.11,0,0,0-.28-1.17,1.93,1.93,0,0,0-.76-.66,3.12,3.12,0,0,0-1.05-.28,11.87,11.87,0,0,0-1.2,0Z" | ||||
|      transform="translate(0.14 0.14)" | ||||
|      fill="#fff" | ||||
|      id="path3126" /> | ||||
| </svg> | ||||
| After Width: | Height: | Size: 35 KiB | 
							
								
								
									
										
											BIN
										
									
								
								resources/profiles/Prusa/mk3_bed.stl
									
										
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										20
									
								
								resources/profiles/Prusa/process/0.20mm Standard @MK3S.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,20 @@ | |||
| { | ||||
|   "type": "process", | ||||
|   "setting_id": "MK3S-2", | ||||
|   "name": "0.20mm Standard @MK3S", | ||||
|   "from": "system", | ||||
|   "instantiation": "true", | ||||
|   "inherits": "fdm_process_common", | ||||
|   "initial_layer_speed": "20", | ||||
|   "initial_layer_infill_speed": "25", | ||||
|   "outer_wall_speed": "35", | ||||
|   "inner_wall_speed": "60", | ||||
|   "sparse_infill_speed": "200", | ||||
|   "internal_solid_infill_speed": "200", | ||||
|   "top_surface_speed": "50", | ||||
|   "gap_infill_speed": "40", | ||||
|   "travel_speed": "180", | ||||
|   "compatible_printers": [ | ||||
|     "Prusa MK3S 0.4 nozzle" | ||||
|   ] | ||||
| } | ||||
							
								
								
									
										105
									
								
								resources/profiles/Prusa/process/fdm_process_common.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,105 @@ | |||
| { | ||||
|     "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": "1", | ||||
|     "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": "grid", | ||||
|     "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", | ||||
|     "reduce_infill_retraction": "1", | ||||
|     "filename_format": "{input_filename_base}_{filament_type[0]}_{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": "2", | ||||
|     "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_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": "30", | ||||
|     "tree_support_wall_count": "0", | ||||
|     "tree_support_with_infill": "0", | ||||
|     "detect_thin_wall": "0", | ||||
|     "top_surface_pattern": "monotonicline", | ||||
|     "top_surface_line_width": "0.4", | ||||
|     "top_shell_thickness": "0.8", | ||||
|     "enable_prime_tower": "1", | ||||
|     "wipe_tower_no_sparse_layers": "0", | ||||
|     "prime_tower_width": "35", | ||||
|     "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" | ||||
| } | ||||
|  | @ -116,6 +116,7 @@ | |||
|   "deretraction_speed": [ | ||||
|     "30" | ||||
|   ], | ||||
|   "z_lift_type": "NormalLift", | ||||
|   "silent_mode": "0", | ||||
|   "single_extruder_multi_material": "1", | ||||
|   "change_filament_gcode": "", | ||||
|  | @ -130,9 +131,10 @@ | |||
|   "bed_exclude_area": [ | ||||
|     "0x0" | ||||
|   ], | ||||
|   "machine_start_gcode": "; M190 S0\n; M104 S0\nPRINT_START EXTRUDER=[nozzle_temperature_initial_layer] BED=[bed_temperature_initial_layer_single]\n; You can use following code instead if your PRINT_START macro support Chamber and print area bedmesh\n; PRINT_START EXTRUDER=[nozzle_temperature_initial_layer] BED=[bed_temperature_initial_layer_single] PRINT_MIN={first_layer_print_min[0]},{first_layer_print_min[1]} PRINT_MAX={first_layer_print_max[0]},{first_layer_print_max[1]}", | ||||
|   "machine_start_gcode": ";M190 S0\n;M104 S0\nPRINT_START EXTRUDER=[nozzle_temperature_initial_layer] BED=[bed_temperature_initial_layer_single]\n; You can use following code instead if your PRINT_START macro support Chamber and print area bedmesh\n; PRINT_START EXTRUDER=[nozzle_temperature_initial_layer] BED=[bed_temperature_initial_layer_single] Chamber=[chamber_temperature] PRINT_MIN={first_layer_print_min[0]},{first_layer_print_min[1]} PRINT_MAX={first_layer_print_max[0]},{first_layer_print_max[1]}", | ||||
|   "machine_end_gcode": "PRINT_END", | ||||
|   "layer_change_gcode": "", | ||||
|   "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n", | ||||
|   "scan_first_layer": "0", | ||||
|   "nozzle_type": "undefine", | ||||
|   "auxiliary_fan": "0" | ||||
|  |  | |||
|  | @ -0,0 +1,35 @@ | |||
| { | ||||
|     "type": "process", | ||||
|     "setting_id": "GP008", | ||||
|     "name": "0.20mm Bambu Support W @Voron", | ||||
|     "from": "system", | ||||
|     "instantiation": "true", | ||||
|     "inherits": "fdm_process_bbl_0.20", | ||||
|     "enable_support": "1", | ||||
|     "support_interface_top_layers": "3", | ||||
|     "support_top_z_distance": "0.2", | ||||
|     "support_interface_loop_pattern": "1", | ||||
|     "support_interface_spacing": "0", | ||||
|     "support_interface_speed": "80", | ||||
|     "support_filament": "0", | ||||
|     "support_interface_filament": "0", | ||||
|     "enable_prime_tower": "1", | ||||
|     "initial_layer_speed": "50", | ||||
|     "initial_layer_infill_speed": "105", | ||||
|     "outer_wall_speed": "120", | ||||
|     "inner_wall_speed": "200", | ||||
|     "sparse_infill_speed": "300", | ||||
|     "internal_solid_infill_speed": "200", | ||||
|     "top_surface_speed": "100", | ||||
|     "gap_infill_speed": "100", | ||||
|     "travel_speed": "350", | ||||
|     "compatible_printers": [ | ||||
|       "Voron 2.4 250 0.4 nozzle", | ||||
|       "Voron 2.4 300 0.4 nozzle", | ||||
|       "Voron 2.4 350 0.4 nozzle", | ||||
|       "Voron Trident 250 0.4 nozzle", | ||||
|       "Voron Trident 300 0.4 nozzle", | ||||
|       "Voron Trident 350 0.4 nozzle", | ||||
|       "Voron 0.1 0.4 nozzle" | ||||
|     ] | ||||
| } | ||||
|  | @ -16,8 +16,11 @@ | |||
|     "brim_object_gap": "0.1", | ||||
|     "compatible_printers_condition": "", | ||||
|     "print_sequence": "by layer", | ||||
|     "default_acceleration": "7000", | ||||
|     "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", | ||||
|  | @ -99,6 +102,7 @@ | |||
|     "prime_tower_width": "35", | ||||
|     "xy_hole_compensation": "0", | ||||
|     "xy_contour_compensation": "0", | ||||
|     "enable_arc_fitting": "0", | ||||
|     "compatible_printers": [ | ||||
|       "Voron 2.4 250 0.4 nozzle", | ||||
|       "Voron 2.4 300 0.4 nozzle", | ||||
|  |  | |||
							
								
								
									
										
											BIN
										
									
								
								resources/web/image/printer/Anycubic 4Max Pro_cover.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 278 KiB | 
							
								
								
									
										
											BIN
										
									
								
								resources/web/image/printer/Prusa MK3S_cover.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 58 KiB | 
|  | @ -65,19 +65,19 @@ std::string AppConfig::get_hms_host() | |||
| { | ||||
|     std::string sel = get("iot_environment"); | ||||
|     std::string host = ""; | ||||
| #if !BBL_RELEASE_TO_PUBLIC | ||||
|     if (sel == ENV_DEV_HOST) | ||||
|         host = "e-dev.bambu-lab.com"; | ||||
|     else if (sel == ENV_QAT_HOST) | ||||
|         host = "e-qa.bambu-lab.com"; | ||||
|     else if (sel == ENV_PRE_HOST) | ||||
|         host = "e-pre.bambu-lab.com"; | ||||
|     else if (sel == ENV_PRODUCT_HOST) | ||||
|         host = "e.bambulab.com"; | ||||
|     return host; | ||||
| #else | ||||
| // #if !BBL_RELEASE_TO_PUBLIC
 | ||||
| //     if (sel == ENV_DEV_HOST)
 | ||||
| //         host = "e-dev.bambu-lab.com";
 | ||||
| //     else if (sel == ENV_QAT_HOST)
 | ||||
| //         host = "e-qa.bambu-lab.com";
 | ||||
| //     else if (sel == ENV_PRE_HOST)
 | ||||
| //         host = "e-pre.bambu-lab.com";
 | ||||
| //     else if (sel == ENV_PRODUCT_HOST)
 | ||||
| //         host = "e.bambulab.com";
 | ||||
| //     return host;
 | ||||
| // #else
 | ||||
|     return "e.bambulab.com"; | ||||
| #endif | ||||
| // #endif
 | ||||
| } | ||||
| 
 | ||||
| void AppConfig::reset() | ||||
|  | @ -293,15 +293,15 @@ void AppConfig::set_defaults() | |||
|         set("curr_bed_type", "0"); | ||||
|     } | ||||
| 
 | ||||
| #if BBL_RELEASE_TO_PUBLIC | ||||
| // #if BBL_RELEASE_TO_PUBLIC
 | ||||
|     if (get("iot_environment").empty()) { | ||||
|         set("iot_environment", "3"); | ||||
|     } | ||||
| #else | ||||
|     if (get("iot_environment").empty()) { | ||||
|         set("iot_environment", "1"); | ||||
|     } | ||||
| #endif | ||||
| // #else
 | ||||
| //     if (get("iot_environment").empty()) {
 | ||||
| //         set("iot_environment", "1");
 | ||||
| //     }
 | ||||
| // #endif
 | ||||
| 
 | ||||
|     // Remove legacy window positions/sizes
 | ||||
|     erase("app", "main_frame_maximized"); | ||||
|  | @ -1030,29 +1030,29 @@ void AppConfig::update_last_backup_dir(const std::string& dir) | |||
| 
 | ||||
| std::string AppConfig::get_region() | ||||
| { | ||||
| #if BBL_RELEASE_TO_PUBLIC | ||||
| // #if BBL_RELEASE_TO_PUBLIC
 | ||||
|     return this->get("region"); | ||||
| #else | ||||
|     std::string sel = get("iot_environment"); | ||||
|     std::string region; | ||||
|     if (sel == ENV_DEV_HOST) | ||||
|         region = "ENV_CN_DEV"; | ||||
|     else if (sel == ENV_QAT_HOST) | ||||
|         region = "ENV_CN_QA"; | ||||
|     else if (sel == ENV_PRE_HOST) | ||||
|         region = "ENV_CN_PRE"; | ||||
|     if (region.empty()) | ||||
|         return this->get("region"); | ||||
|     return region; | ||||
| #endif | ||||
| // #else
 | ||||
| //     std::string sel = get("iot_environment");
 | ||||
| //     std::string region;
 | ||||
| //     if (sel == ENV_DEV_HOST)
 | ||||
| //         region = "ENV_CN_DEV";
 | ||||
| //     else if (sel == ENV_QAT_HOST)
 | ||||
| //         region = "ENV_CN_QA";
 | ||||
| //     else if (sel == ENV_PRE_HOST)
 | ||||
| //         region = "ENV_CN_PRE";
 | ||||
| //     if (region.empty())
 | ||||
| //         return this->get("region");
 | ||||
| //     return region;
 | ||||
| // #endif
 | ||||
| } | ||||
| 
 | ||||
| std::string AppConfig::get_country_code() | ||||
| { | ||||
|     std::string region = get_region(); | ||||
| #if !BBL_RELEASE_TO_PUBLIC | ||||
|     if (is_engineering_region()) { return region; } | ||||
| #endif | ||||
| // #if !BBL_RELEASE_TO_PUBLIC
 | ||||
| //     if (is_engineering_region()) { return region; }
 | ||||
| // #endif
 | ||||
|     if (region == "CHN" || region == "China") | ||||
|         return "CN"; | ||||
|     else if (region == "USA") | ||||
|  |  | |||
|  | @ -55,6 +55,16 @@ inline bool is_perimeter(ExtrusionRole role) | |||
|         || role == erOverhangPerimeter; | ||||
| } | ||||
| 
 | ||||
| inline bool is_internal_perimeter(ExtrusionRole role) | ||||
| { | ||||
|     return role == erPerimeter; | ||||
| } | ||||
| 
 | ||||
| inline bool is_external_perimeter(ExtrusionRole role) | ||||
| { | ||||
|     return role == erExternalPerimeter; | ||||
| } | ||||
| 
 | ||||
| inline bool is_infill(ExtrusionRole role) | ||||
| { | ||||
|     return role == erBridgeInfill | ||||
|  |  | |||
|  | @ -92,7 +92,7 @@ struct SurfaceFillParams | |||
| 				this->overlap 			== rhs.overlap 			&& | ||||
| 				this->angle   			== rhs.angle   			&& | ||||
| 				this->bridge   			== rhs.bridge   		&& | ||||
| //				this->bridge_angle 		== rhs.bridge_angle		&&
 | ||||
| 				this->bridge_angle 		== rhs.bridge_angle		&& | ||||
| 				this->density   		== rhs.density   		&& | ||||
| //				this->dont_adjust   	== rhs.dont_adjust 		&&
 | ||||
| 				this->anchor_length  	== rhs.anchor_length    && | ||||
|  |  | |||
|  | @ -14,7 +14,7 @@ | |||
| #include "libslic3r.h" | ||||
| #include "LocalesUtils.hpp" | ||||
| #include "libslic3r/format.hpp" | ||||
| 
 | ||||
| #include "Time.hpp" | ||||
| #include <algorithm> | ||||
| #include <cstdlib> | ||||
| #include <chrono> | ||||
|  | @ -79,7 +79,7 @@ static const float g_min_purge_volume = 100.f; | |||
| static const float g_purge_volume_one_time = 135.f; | ||||
| static const int g_max_flush_count = 4; | ||||
| 
 | ||||
| bool GCode::gcode_label_objects = false; | ||||
| bool GCode::gcode_label_objects = true; | ||||
| 
 | ||||
| // Only add a newline in case the current G-code does not end with a newline.
 | ||||
|     static inline void check_add_eol(std::string& gcode) | ||||
|  | @ -908,6 +908,11 @@ void GCode::do_export(Print* print, const char* path, GCodeProcessorResult* resu | |||
|     BOOST_LOG_TRIVIAL(info) << boost::format("Will export G-code to %1% soon")%path; | ||||
|     print->set_started(psGCodeExport); | ||||
| 
 | ||||
|     if (print->is_BBL_printer()) | ||||
|       gcode_label_objects = false; | ||||
|     else | ||||
|       gcode_label_objects = true; | ||||
| 
 | ||||
|     // check if any custom gcode contains keywords used by the gcode processor to
 | ||||
|     // produce time estimation and gcode toolpaths
 | ||||
|     std::vector<std::pair<std::string, std::string>> validation_res = DoExport::validate_custom_gcode(*print); | ||||
|  | @ -1164,10 +1169,10 @@ namespace DoExport { | |||
| 	    print_statistics.clear(); | ||||
|         print_statistics.total_toolchanges = std::max(0, wipe_tower_data.number_of_toolchanges); | ||||
| 	    if (! extruders.empty()) { | ||||
| 	        //std::pair<std::string, unsigned int> out_filament_used_mm ("; filament used [mm] = ", 0);
 | ||||
| 	        //std::pair<std::string, unsigned int> out_filament_used_cm3("; filament used [cm3] = ", 0);
 | ||||
| 	        //std::pair<std::string, unsigned int> out_filament_used_g  ("; filament used [g] = ", 0);
 | ||||
| 	        //std::pair<std::string, unsigned int> out_filament_cost    ("; filament cost = ", 0);
 | ||||
| 	        std::pair<std::string, unsigned int> out_filament_used_mm ("; filament used [mm] = ", 0); | ||||
| 	        std::pair<std::string, unsigned int> out_filament_used_cm3("; filament used [cm3] = ", 0); | ||||
| 	        std::pair<std::string, unsigned int> out_filament_used_g  ("; filament used [g] = ", 0); | ||||
| 	        std::pair<std::string, unsigned int> out_filament_cost    ("; filament cost = ", 0); | ||||
| 	        for (const Extruder &extruder : extruders) { | ||||
| 	            double used_filament   = extruder.used_filament() + (has_wipe_tower ? wipe_tower_data.used_filament[extruder.id()] : 0.f); | ||||
| 	            double extruded_volume = extruder.extruded_volume() + (has_wipe_tower ? wipe_tower_data.used_filament[extruder.id()] * 2.4052f : 0.f); // assumes 1.75mm filament diameter
 | ||||
|  | @ -1187,14 +1192,14 @@ namespace DoExport { | |||
| 	                dst.first += buf; | ||||
| 	                ++ dst.second; | ||||
| 	            }; | ||||
| 	            //append(out_filament_used_mm,  "%.2lf", used_filament);
 | ||||
| 	            //append(out_filament_used_cm3, "%.2lf", extruded_volume * 0.001);
 | ||||
| 	            append(out_filament_used_mm,  "%.2lf", used_filament); | ||||
| 	            append(out_filament_used_cm3, "%.2lf", extruded_volume * 0.001); | ||||
| 	            if (filament_weight > 0.) { | ||||
| 	                print_statistics.total_weight = print_statistics.total_weight + filament_weight; | ||||
| 	                //append(out_filament_used_g, "%.2lf", filament_weight);
 | ||||
| 	                append(out_filament_used_g, "%.2lf", filament_weight); | ||||
| 	                if (filament_cost > 0.) { | ||||
| 	                    print_statistics.total_cost = print_statistics.total_cost + filament_cost; | ||||
| 	                    //append(out_filament_cost, "%.2lf", filament_cost);
 | ||||
| 	                    append(out_filament_cost, "%.2lf", filament_cost); | ||||
| 	                } | ||||
| 	            } | ||||
| 	            print_statistics.total_used_filament += used_filament; | ||||
|  | @ -1202,12 +1207,12 @@ namespace DoExport { | |||
| 	            print_statistics.total_wipe_tower_filament += has_wipe_tower ? used_filament - extruder.used_filament() : 0.; | ||||
| 	            print_statistics.total_wipe_tower_cost += has_wipe_tower ? (extruded_volume - extruder.extruded_volume())* extruder.filament_density() * 0.001 * extruder.filament_cost() * 0.001 : 0.; | ||||
| 	        } | ||||
| 	        //filament_stats_string_out += out_filament_used_mm.first;
 | ||||
|             //filament_stats_string_out += "\n" + out_filament_used_cm3.first;
 | ||||
|             //if (out_filament_used_g.second)
 | ||||
|                 //filament_stats_string_out += "\n" + out_filament_used_g.first;
 | ||||
|             //if (out_filament_cost.second)
 | ||||
|             //    filament_stats_string_out += "\n" + out_filament_cost.first;
 | ||||
| 	        filament_stats_string_out += out_filament_used_mm.first; | ||||
|             filament_stats_string_out += "\n" + out_filament_used_cm3.first; | ||||
|             if (out_filament_used_g.second) | ||||
|                 filament_stats_string_out += "\n" + out_filament_used_g.first; | ||||
|             if (out_filament_cost.second) | ||||
|                filament_stats_string_out += "\n" + out_filament_cost.first; | ||||
|         } | ||||
|         return filament_stats_string_out; | ||||
|     } | ||||
|  | @ -1285,7 +1290,7 @@ void GCode::_do_export(Print& print, GCodeOutputStream &file, ThumbnailsGenerato | |||
| 
 | ||||
|     // modifies m_silent_time_estimator_enabled
 | ||||
|     DoExport::init_gcode_processor(print.config(), m_processor, m_silent_time_estimator_enabled); | ||||
| 
 | ||||
|     const bool is_bbl_printers = print.is_BBL_printer(); | ||||
|     // resets analyzer's tracking data
 | ||||
|     m_last_height  = 0.f; | ||||
|     m_last_layer_z = 0.f; | ||||
|  | @ -1349,30 +1354,65 @@ void GCode::_do_export(Print& print, GCodeOutputStream &file, ThumbnailsGenerato | |||
|     file.write_format(";%s\n", GCodeProcessor::reserved_tag(GCodeProcessor::ETags::Estimated_Printing_Time_Placeholder).c_str()); | ||||
|     file.write_format("; HEADER_BLOCK_END\n\n"); | ||||
| 
 | ||||
|     //BBS: write global config at the beginning of gcode file because printer need these config information
 | ||||
|     // Append full config, delimited by two 'phony' configuration keys CONFIG_BLOCK_START and CONFIG_BLOCK_END.
 | ||||
|     // The delimiters are structured as configuration key / value pairs to be parsable by older versions of PrusaSlicer G-code viewer.
 | ||||
|      | ||||
|       // BBS: write global config at the beginning of gcode file because printer
 | ||||
|       // need these config information
 | ||||
|       // Append full config, delimited by two 'phony' configuration keys
 | ||||
|       // CONFIG_BLOCK_START and CONFIG_BLOCK_END. The delimiters are structured
 | ||||
|       // as configuration key / value pairs to be parsable by older versions of
 | ||||
|       // PrusaSlicer G-code viewer.
 | ||||
|     { | ||||
|       if (is_bbl_printers) { | ||||
|         file.write("; CONFIG_BLOCK_START\n"); | ||||
|         std::string full_config; | ||||
|         append_full_config(print, full_config); | ||||
|         if (!full_config.empty()) | ||||
|             file.write(full_config); | ||||
|         file.write("; CONFIG_BLOCK_END\n\n"); | ||||
|     } | ||||
|           file.write(full_config); | ||||
| 
 | ||||
|     //BBS: add plate id into thumbnail render logic
 | ||||
|     //DoExport::export_thumbnails_to_file(thumbnail_cb, print.get_plate_index(), THUMBNAIL_SIZE,
 | ||||
|     //    [&file](const char* sz) { file.write(sz); },
 | ||||
|     //    [&print]() { print.throw_if_canceled(); });
 | ||||
|         // SoftFever: write compatiple image
 | ||||
|         std::vector<int> temps_per_bed; | ||||
|         int first_layer_bed_temperature = 0; | ||||
|         get_bed_temperature(0, true, temps_per_bed, | ||||
|                             first_layer_bed_temperature); | ||||
|         file.write_format("; first_layer_bed_temperature = %d\n", | ||||
|                           first_layer_bed_temperature); | ||||
|         file.write_format( | ||||
|             "; first_layer_temperature = %d\n", | ||||
|             print.config().nozzle_temperature_initial_layer.get_at(0)); | ||||
|         file.write("; CONFIG_BLOCK_END\n\n"); | ||||
|       } else { | ||||
|         file.write_format("; hack-fix: write fake slicer info here so that " | ||||
|                           "Moonraker will extract thumbs.\n"); | ||||
|         file.write_format( | ||||
|             "; %s\n\n", | ||||
|             std::string( | ||||
|                 std::string("generated by SuperSlicer " SLIC3R_VERSION " on ") + | ||||
|                 Slic3r::Utils::utc_timestamp()) | ||||
|                 .c_str()); | ||||
| 
 | ||||
|         // BBS: add plate id into thumbnail render logic
 | ||||
|         //     if (const auto [thumbnails, thumbnails_format] = std::make_pair(
 | ||||
|         //     print.full_print_config().option<ConfigOptionPoints>("thumbnails"),
 | ||||
|         //     print.full_print_config().option<ConfigOptionEnum<GCodeThumbnailsFormat>>("thumbnails_format"));
 | ||||
|         // thumbnails)
 | ||||
|         // GCodeThumbnails::export_thumbnails_to_file(
 | ||||
|         //     thumbnail_cb, thumbnails->values, thumbnails_format ? thumbnails_format->value : GCodeThumbnailsFormat::PNG,
 | ||||
|         //     [&file](const char* sz) { file.write(sz); },
 | ||||
|         //     [&print]() { print.throw_if_canceled(); });
 | ||||
| 
 | ||||
| 
 | ||||
|         DoExport::export_thumbnails_to_file( | ||||
|             thumbnail_cb, print.get_plate_index(), print.full_print_config().option<ConfigOptionPoints>("thumbnails")->values, | ||||
|             [&file](const char *sz) { file.write(sz); }, | ||||
|             [&print]() { print.throw_if_canceled(); }); | ||||
|       } | ||||
|     } | ||||
|      | ||||
| 
 | ||||
|     // Write some terse information on the slicing parameters.
 | ||||
|     const PrintObject *first_object         = print.objects().front(); | ||||
|     const double       layer_height         = first_object->config().layer_height.value; | ||||
|     const double       initial_layer_print_height   = print.config().initial_layer_print_height.value; | ||||
|     //BBS: remove useless information in gcode file
 | ||||
| #if 0 | ||||
|     for (size_t region_id = 0; region_id < print.num_print_regions(); ++ region_id) { | ||||
|         const PrintRegion ®ion = print.get_print_region(region_id); | ||||
|         file.write_format("; external perimeters extrusion width = %.2fmm\n", region.flow(*first_object, frExternalPerimeter, layer_height).width()); | ||||
|  | @ -1386,8 +1426,6 @@ void GCode::_do_export(Print& print, GCodeOutputStream &file, ThumbnailsGenerato | |||
|             file.write_format("; first layer extrusion width = %.2fmm\n",   region.flow(*first_object, frPerimeter, initial_layer_print_height, true).width()); | ||||
|         file.write_format("\n"); | ||||
|     } | ||||
|     print.throw_if_canceled(); | ||||
| #endif | ||||
| 
 | ||||
|     file.write_format("; EXECUTABLE_BLOCK_START\n"); | ||||
|     // adds tags for time estimators
 | ||||
|  | @ -1512,7 +1550,7 @@ void GCode::_do_export(Print& print, GCodeOutputStream &file, ThumbnailsGenerato | |||
|         m_placeholder_parser.set("first_layer_print_max",  new ConfigOptionFloats({ bbox.max.x(), bbox.max.y() })); | ||||
|         m_placeholder_parser.set("first_layer_print_size", new ConfigOptionFloats({ bbox.size().x(), bbox.size().y() })); | ||||
|     } | ||||
| 
 | ||||
|     float outer_wall_volumetric_speed = 0.0f; | ||||
|     { | ||||
|         int curr_bed_type = m_config.curr_bed_type.getInt(); | ||||
| 
 | ||||
|  | @ -1524,6 +1562,7 @@ void GCode::_do_export(Print& print, GCodeOutputStream &file, ThumbnailsGenerato | |||
|         m_placeholder_parser.set("bed_temperature", new ConfigOptionInts(*bed_temp_opt)); | ||||
|         m_placeholder_parser.set("bed_temperature_initial_layer_single", new ConfigOptionInt(first_bed_temp_opt->get_at(initial_extruder_id))); | ||||
|         m_placeholder_parser.set("bed_temperature_initial_layer_vector", new ConfigOptionString("")); | ||||
|         m_placeholder_parser.set("chamber_temperature",new ConfigOptionInt(m_config.chamber_temperature)); | ||||
| 
 | ||||
|         //BBS: calculate the volumetric speed of outer wall. Ignore pre-object setting and multi-filament, and just use the default setting
 | ||||
|         { | ||||
|  | @ -1535,7 +1574,7 @@ void GCode::_do_export(Print& print, GCodeOutputStream &file, ThumbnailsGenerato | |||
|             } | ||||
|             Flow outer_wall_flow = Flow(outer_wall_line_width, m_config.layer_height, m_config.nozzle_diameter.get_at(initial_extruder_id)); | ||||
|             float outer_wall_speed = print.default_region_config().outer_wall_speed.value; | ||||
|             float outer_wall_volumetric_speed = outer_wall_speed * outer_wall_flow.mm3_per_mm(); | ||||
|             outer_wall_volumetric_speed = outer_wall_speed * outer_wall_flow.mm3_per_mm(); | ||||
|             if (outer_wall_volumetric_speed > filament_max_volumetric_speed) | ||||
|                 outer_wall_volumetric_speed = filament_max_volumetric_speed; | ||||
|             m_placeholder_parser.set("outer_wall_volumetric_speed", new ConfigOptionFloat(outer_wall_volumetric_speed)); | ||||
|  | @ -1598,8 +1637,23 @@ void GCode::_do_export(Print& print, GCodeOutputStream &file, ThumbnailsGenerato | |||
|     if (this->m_objsWithBrim.empty() && this->m_objSupportsWithBrim.empty()) m_brim_done = true; | ||||
| 
 | ||||
|     //BBS: open spaghetti detector
 | ||||
|     // if (print.config().spaghetti_detector.value)
 | ||||
|         file.write("M981 S1 P20000 ;open spaghetti detector\n"); | ||||
|     if (is_bbl_printers) { | ||||
|       // if (print.config().spaghetti_detector.value)
 | ||||
|       file.write("M981 S1 P20000 ;open spaghetti detector\n"); | ||||
|       file.write_format("M900 K%.3f M%0.3f ; Override pressure advance value\n", | ||||
|                         m_config.pressure_advance.values.front(), | ||||
|                         outer_wall_volumetric_speed / (1.75 * 1.75 / 4 * 3.14) * | ||||
|                             m_config.pressure_advance.values.front()); | ||||
|     } else { | ||||
|       if (m_config.enable_pressure_advance.value) { | ||||
|         if(print.config().gcode_flavor.value == gcfKlipper) | ||||
|             file.write_format("SET_PRESSURE_ADVANCE ADVANCE=%.3f ; Override pressure advance value\n", | ||||
|                           m_config.pressure_advance.values.front()); | ||||
|         else | ||||
|             file.write_format("M900 K%.3f ; Override pressure advance value\n", | ||||
|                           m_config.pressure_advance.values.front()); | ||||
|       } | ||||
|     } | ||||
| 
 | ||||
|     // Do all objects for each layer.
 | ||||
|     if (print.config().print_sequence == PrintSequence::ByObject) { | ||||
|  | @ -1663,7 +1717,7 @@ void GCode::_do_export(Print& print, GCodeOutputStream &file, ThumbnailsGenerato | |||
|             this->process_layers(print, tool_ordering, collect_layers_to_print(object), *print_object_instance_sequential_active - object.instances().data(), file, prime_extruder); | ||||
|             //BBS: close powerlost recovery
 | ||||
|             { | ||||
|                 if (m_second_layer_things_done) { | ||||
|                 if (is_bbl_printers && m_second_layer_things_done) { | ||||
|                     file.write("; close powerlost recovery\n"); | ||||
|                     file.write("M1003 S0\n"); | ||||
|                 } | ||||
|  | @ -1734,7 +1788,7 @@ void GCode::_do_export(Print& print, GCodeOutputStream &file, ThumbnailsGenerato | |||
|         this->process_layers(print, tool_ordering, print_object_instances_ordering, layers_to_print, file); | ||||
|         //BBS: close powerlost recovery
 | ||||
|         { | ||||
|             if (m_second_layer_things_done) { | ||||
|             if (is_bbl_printers && m_second_layer_things_done) { | ||||
|                 file.write("; close powerlost recovery\n"); | ||||
|                 file.write("M1003 S0\n"); | ||||
|             } | ||||
|  | @ -1754,10 +1808,12 @@ void GCode::_do_export(Print& print, GCodeOutputStream &file, ThumbnailsGenerato | |||
|     file.write(m_writer.set_fan(0)); | ||||
|     //BBS: make sure the additional fan is closed when end
 | ||||
|     file.write(m_writer.set_additional_fan(0)); | ||||
|     //BBS: close spaghetti detector
 | ||||
|     //Note: M981 is also used to tell xcam the last layer is finished, so we need always send it even if spaghetti option is disabled.
 | ||||
|     //if (print.config().spaghetti_detector.value)
 | ||||
|     file.write("M981 S0 P20000 ; close spaghetti detector\n"); | ||||
|     if (is_bbl_printers) { | ||||
|         //BBS: close spaghetti detector
 | ||||
|         //Note: M981 is also used to tell xcam the last layer is finished, so we need always send it even if spaghetti option is disabled.
 | ||||
|         //if (print.config().spaghetti_detector.value)
 | ||||
|         file.write("M981 S0 P20000 ; close spaghetti detector\n"); | ||||
|     } | ||||
| 
 | ||||
|     // adds tag for processor
 | ||||
|     file.write_format(";%s%s\n", GCodeProcessor::reserved_tag(GCodeProcessor::ETags::Role).c_str(), ExtrusionEntity::role_to_string(erCustom).c_str()); | ||||
|  | @ -1800,11 +1856,41 @@ void GCode::_do_export(Print& print, GCodeOutputStream &file, ThumbnailsGenerato | |||
|         m_writer.extruders(), | ||||
|         // Modifies
 | ||||
|         print.m_print_statistics)); | ||||
|     //file.write("\n");
 | ||||
|     //file.write_format("; total filament weight [g] = %.2lf\n", print.m_print_statistics.total_weight);
 | ||||
|     //file.write_format("; total filament cost = %.2lf\n", print.m_print_statistics.total_cost);
 | ||||
|     //if (print.m_print_statistics.total_toolchanges > 0)
 | ||||
|     //	file.write_format("; total filament change = %i\n", print.m_print_statistics.total_toolchanges);
 | ||||
|     if (!is_bbl_printers) { | ||||
|       file.write("\n"); | ||||
|       file.write("; CONFIG_BLOCK_START\n"); | ||||
|       std::string full_config; | ||||
|       append_full_config(print, full_config); | ||||
|       if (!full_config.empty()) | ||||
|         file.write(full_config); | ||||
| 
 | ||||
|       // SoftFever: write compatiple info
 | ||||
|       std::vector<int> temps_per_bed; | ||||
|       int first_layer_bed_temperature = 0; | ||||
|       get_bed_temperature(0, true, temps_per_bed, first_layer_bed_temperature); | ||||
|       file.write_format("; first_layer_bed_temperature = %d\n", | ||||
|                         first_layer_bed_temperature); | ||||
|       file.write_format( | ||||
|           "; first_layer_temperature = %d\n", | ||||
|           print.config().nozzle_temperature_initial_layer.get_at(0)); | ||||
|       file.write("; CONFIG_BLOCK_END\n\n"); | ||||
|       file.write_format("; total filament used [g] = %.2lf\n", | ||||
|                         print.m_print_statistics.total_weight); | ||||
|       file.write_format("; total filament cost = %.2lf\n", | ||||
|                         print.m_print_statistics.total_cost); | ||||
|       if (print.m_print_statistics.total_toolchanges > 0) | ||||
|         file.write_format("; total filament change = %i\n", | ||||
|                           print.m_print_statistics.total_toolchanges); | ||||
| 
 | ||||
|       file.write_format("; total layers count = %i\n", m_layer_count); | ||||
|       file.write_format( | ||||
|           ";%s\n", | ||||
|           GCodeProcessor::reserved_tag( | ||||
|               GCodeProcessor::ETags::Estimated_Printing_Time_Placeholder) | ||||
|               .c_str()); | ||||
| 
 | ||||
|     } | ||||
|     file.write("\n"); | ||||
| 
 | ||||
|     print.throw_if_canceled(); | ||||
| } | ||||
|  | @ -2501,28 +2587,41 @@ GCode::LayerResult GCode::process_layer( | |||
|             double acceleration = m_config.initial_layer_acceleration.value; | ||||
|             gcode += m_writer.set_acceleration((unsigned int)floor(acceleration + 0.5)); | ||||
|         } | ||||
| 
 | ||||
|         if (m_config.default_jerk.value > 0 && m_config.initial_layer_jerk.value > 0) { | ||||
|             double jerk = m_config.initial_layer_jerk.value; | ||||
|             gcode += m_writer.set_jerk_xy((unsigned int)floor(jerk + 0.5)); | ||||
|         } | ||||
| 
 | ||||
|     } | ||||
| 
 | ||||
|     if (! first_layer && ! m_second_layer_things_done) { | ||||
|         //BBS: open powerlost recovery
 | ||||
|       if (print.is_BBL_printer()) { | ||||
|         // BBS: open powerlost recovery
 | ||||
|         { | ||||
|             gcode += "; open powerlost recovery\n"; | ||||
|             gcode += "M1003 S1\n"; | ||||
|           gcode += "; open powerlost recovery\n"; | ||||
|           gcode += "M1003 S1\n"; | ||||
|         } | ||||
|         // BBS: open first layer inspection at second layer
 | ||||
|         if (print.config().scan_first_layer.value) { | ||||
|             // BBS: retract first to avoid droping when scan model
 | ||||
|             gcode += this->retract(); | ||||
|             gcode += "M976 S1 P1 ; scan model before printing 2nd layer\n"; | ||||
|             gcode += "M400 P100\n"; | ||||
|             gcode += this->unretract(); | ||||
|           // BBS: retract first to avoid droping when scan model
 | ||||
|           gcode += this->retract(); | ||||
|           gcode += "M976 S1 P1 ; scan model before printing 2nd layer\n"; | ||||
|           gcode += "M400 P100\n"; | ||||
|           gcode += this->unretract(); | ||||
|         } | ||||
| 
 | ||||
|       } | ||||
|         //BBS:  reset acceleration at sencond layer
 | ||||
|         if (m_config.default_acceleration.value > 0 && m_config.initial_layer_acceleration.value > 0) { | ||||
|             double acceleration = m_config.default_acceleration.value; | ||||
|             gcode += m_writer.set_acceleration((unsigned int)floor(acceleration + 0.5)); | ||||
|         } | ||||
| 
 | ||||
|         if (m_config.default_jerk.value > 0 && m_config.initial_layer_jerk.value > 0) { | ||||
|             double jerk = m_config.default_jerk.value; | ||||
|             gcode += m_writer.set_jerk_xy((unsigned int)floor(jerk + 0.5)); | ||||
|         } | ||||
| 
 | ||||
|         // Transition from 1st to 2nd layer. Adjust nozzle temperatures as prescribed by the nozzle dependent
 | ||||
|         // nozzle_temperature_initial_layer vs. temperature settings.
 | ||||
|         for (const Extruder &extruder : m_writer.extruders()) { | ||||
|  | @ -3237,9 +3336,13 @@ std::string GCode::extrude_loop(ExtrusionLoop loop, std::string description, dou | |||
|     } | ||||
| 
 | ||||
|     //BBS: don't reset acceleration when printing first layer. During first layer, acceleration is always same value.
 | ||||
|     if (!this->on_first_layer()) | ||||
|     if (!this->on_first_layer()){ | ||||
|         // reset acceleration
 | ||||
|         gcode += m_writer.set_acceleration((unsigned int)(m_config.default_acceleration.value + 0.5)); | ||||
|         if(m_config.default_acceleration.value > 0) | ||||
|             gcode += m_writer.set_acceleration((unsigned int)(m_config.default_acceleration.value + 0.5)); | ||||
|         if(m_config.default_jerk.value > 0) | ||||
|             gcode += m_writer.set_jerk_xy((unsigned int)(m_config.default_jerk.value + 0.5)); | ||||
|         } | ||||
| 
 | ||||
|     // BBS
 | ||||
|     if (m_wipe.enable) { | ||||
|  | @ -3312,9 +3415,12 @@ std::string GCode::extrude_multi_path(ExtrusionMultiPath multipath, std::string | |||
|         m_wipe.path.reverse(); | ||||
|     } | ||||
|     //BBS: don't reset acceleration when printing first layer. During first layer, acceleration is always same value.
 | ||||
|     if (!this->on_first_layer()) | ||||
|     if (!this->on_first_layer()) { | ||||
|         // reset acceleration
 | ||||
|         gcode += m_writer.set_acceleration((unsigned int)floor(m_config.default_acceleration.value + 0.5)); | ||||
|         if(m_config.default_jerk.value > 0) | ||||
|             gcode += m_writer.set_jerk_xy((unsigned int)floor(m_config.default_jerk.value + 0.5)); | ||||
|         } | ||||
|     return gcode; | ||||
| } | ||||
| 
 | ||||
|  | @ -3340,9 +3446,13 @@ std::string GCode::extrude_path(ExtrusionPath path, std::string description, dou | |||
|         m_wipe.path.reverse(); | ||||
|     } | ||||
|     //BBS: don't reset acceleration when printing first layer. During first layer, acceleration is always same value.
 | ||||
|     if (!this->on_first_layer()) | ||||
|     if (!this->on_first_layer()){ | ||||
|         // reset acceleration
 | ||||
|         gcode += m_writer.set_acceleration((unsigned int)floor(m_config.default_acceleration.value + 0.5)); | ||||
|         if(m_config.default_jerk.value > 0) | ||||
|             gcode += m_writer.set_jerk_xy((unsigned int)floor(m_config.default_jerk.value + 0.5)); | ||||
| 
 | ||||
|         } | ||||
|     return gcode; | ||||
| } | ||||
| 
 | ||||
|  | @ -3541,6 +3651,10 @@ std::string GCode::_extrude(const ExtrusionPath &path, std::string description, | |||
|         } else if (m_config.perimeter_acceleration.value > 0 && is_perimeter(path.role())) { | ||||
|             acceleration = m_config.perimeter_acceleration.value; | ||||
| #endif | ||||
|         } else if (m_config.outer_wall_acceleration.value > 0 && is_external_perimeter(path.role())) { | ||||
|              acceleration = m_config.outer_wall_acceleration.value; | ||||
|         } else if (m_config.inner_wall_acceleration.value > 0 && is_internal_perimeter(path.role())) { | ||||
|             acceleration = m_config.inner_wall_acceleration.value; | ||||
|         } else if (m_config.top_surface_acceleration.value > 0 && is_top_surface(path.role())) { | ||||
|             acceleration = m_config.top_surface_acceleration.value; | ||||
|         } else { | ||||
|  | @ -3549,6 +3663,23 @@ std::string GCode::_extrude(const ExtrusionPath &path, std::string description, | |||
|         gcode += m_writer.set_acceleration((unsigned int)floor(acceleration + 0.5)); | ||||
|     } | ||||
| 
 | ||||
|     // adjust X Y jerk
 | ||||
|     if (m_config.default_jerk.value > 0) { | ||||
|         double jerk; | ||||
|         if (this->on_first_layer() && m_config.initial_layer_jerk.value > 0) { | ||||
|             jerk = m_config.initial_layer_jerk.value; | ||||
|         } else if (m_config.outer_wall_jerk.value > 0 && is_external_perimeter(path.role())) { | ||||
|              jerk = m_config.outer_wall_jerk.value; | ||||
|         } else if (m_config.inner_wall_jerk.value > 0 && is_internal_perimeter(path.role())) { | ||||
|             jerk = m_config.inner_wall_jerk.value; | ||||
|         } else if (m_config.top_surface_jerk.value > 0 && is_top_surface(path.role())) { | ||||
|             jerk = m_config.top_surface_jerk.value; | ||||
|         } else { | ||||
|             jerk = m_config.default_jerk.value; | ||||
|         } | ||||
|         gcode += m_writer.set_jerk_xy((unsigned int)floor(jerk + 0.5)); | ||||
|     } | ||||
| 
 | ||||
|     // calculate extrusion length per distance unit
 | ||||
|     double e_per_mm = m_writer.extruder()->e_per_mm3() * path.mm3_per_mm; | ||||
| 
 | ||||
|  | @ -3761,7 +3892,34 @@ std::string GCode::travel_to(const Point &point, ExtrusionRole role, std::string | |||
|     bool could_be_wipe_disabled       = false; | ||||
|     // Save state of use_external_mp_once for the case that will be needed to call twice m_avoid_crossing_perimeters.travel_to.
 | ||||
|     const bool used_external_mp_once  = m_avoid_crossing_perimeters.used_external_mp_once(); | ||||
|     std::string gcode; | ||||
| 
 | ||||
|     // SoftFever
 | ||||
|     if (this->on_first_layer()) { | ||||
|         if(m_config.default_acceleration.value > 0) | ||||
|         {         | ||||
|             auto jerk = (unsigned int)floor(m_config.initial_layer_jerk.value + 0.5); | ||||
|             auto accel = (unsigned int)floor(m_config.initial_layer_acceleration.value + 0.5); | ||||
|             if(jerk > 0) | ||||
|                 gcode += m_writer.set_jerk_xy(jerk); | ||||
|              | ||||
|             if(accel > 0) | ||||
|                 gcode += m_writer.set_acceleration(accel); | ||||
|         } | ||||
|     } | ||||
|     else | ||||
|     { | ||||
|         if(m_config.default_jerk.value > 0) | ||||
|         { | ||||
|             auto jerk = (unsigned int)floor(m_config.travel_jerk.value + 0.5); | ||||
|             auto accel = (unsigned int)floor(m_config.travel_acceleration.value + 0.5); | ||||
|             if(jerk > 0) | ||||
|                 gcode += m_writer.set_jerk_xy(jerk); | ||||
|              | ||||
|             if(accel > 0) | ||||
|                 gcode += m_writer.set_acceleration(accel); | ||||
|         } | ||||
|     } | ||||
|     // if a retraction would be needed, try to use reduce_crossing_wall to plan a
 | ||||
|     // multi-hop travel path inside the configuration space
 | ||||
|     if (needs_retraction | ||||
|  | @ -3777,7 +3935,6 @@ std::string GCode::travel_to(const Point &point, ExtrusionRole role, std::string | |||
|     m_avoid_crossing_perimeters.reset_once_modifiers(); | ||||
| 
 | ||||
|     // generate G-code for the travel move
 | ||||
|     std::string gcode; | ||||
|     if (needs_retraction) { | ||||
|         if (m_config.reduce_crossing_wall && could_be_wipe_disabled) | ||||
|             m_wipe.reset_path(); | ||||
|  | @ -3808,9 +3965,9 @@ std::string GCode::travel_to(const Point &point, ExtrusionRole role, std::string | |||
|             if (i == travel.size() - 1 && !m_spiral_vase) { | ||||
|                 Vec2d dest2d = this->point_to_gcode(travel.points[i]); | ||||
|                 Vec3d dest3d(dest2d(0), dest2d(1), m_nominal_z); | ||||
|                 gcode += m_writer.travel_to_xyz(dest3d, comment); | ||||
|                 gcode += m_writer.travel_to_xyz(dest3d, comment+" travel_to_xyz"); | ||||
|             } else { | ||||
|                 gcode += m_writer.travel_to_xy(this->point_to_gcode(travel.points[i]), comment); | ||||
|                 gcode += m_writer.travel_to_xy(this->point_to_gcode(travel.points[i]), comment+" travel_to_xy"); | ||||
|             } | ||||
|         } | ||||
|         this->set_last_pos(travel.points.back()); | ||||
|  | @ -3884,7 +4041,11 @@ std::string GCode::retract(bool toolchange, bool is_last_retraction) | |||
|     if (m_writer.extruder()->retraction_length() > 0) { | ||||
|         // BBS: don't do lazy_lift when enable spiral vase
 | ||||
|         size_t extruder_id = m_writer.extruder()->id(); | ||||
|         gcode += m_writer.lift(!m_spiral_vase ?  LiftType::SpiralLift : LiftType::NormalLift); | ||||
|         auto _lift = m_config.z_lift_type.value; | ||||
|         if(m_spiral_vase) | ||||
|             _lift = NormalLift; | ||||
| 
 | ||||
|         gcode += m_writer.lift(_lift); | ||||
|     } | ||||
| 
 | ||||
|     return gcode; | ||||
|  |  | |||
|  | @ -453,10 +453,7 @@ void GCodeProcessor::TimeProcessor::post_process(const std::string& filename, st | |||
|                     PrintEstimatedStatistics::ETimeMode mode = static_cast<PrintEstimatedStatistics::ETimeMode>(i); | ||||
|                     if (mode == PrintEstimatedStatistics::ETimeMode::Normal || machine.enabled) { | ||||
|                         char buf[128]; | ||||
|                         //sprintf(buf, "; estimated printing time (%s mode) = %s\n",
 | ||||
|                         //    (mode == PrintEstimatedStatistics::ETimeMode::Normal) ? "normal" : "silent",
 | ||||
|                         //    get_time_dhms(machine.time).c_str());
 | ||||
|                         sprintf(buf, "; total estimated time: %s\n", get_time_dhms(machine.time).c_str()); | ||||
|                         sprintf(buf, "; estimated printing time: %s\n", get_time_dhms(machine.time).c_str()); | ||||
|                         ret += buf; | ||||
|                     } | ||||
|                 } | ||||
|  |  | |||
|  | @ -99,8 +99,7 @@ public: | |||
|     } | ||||
| 
 | ||||
|     WipeTowerWriter&            disable_linear_advance() { | ||||
|         m_gcode += (m_gcode_flavor == gcfRepRapSprinter || m_gcode_flavor == gcfRepRapFirmware | ||||
|                         ? (std::string("M572 D") + std::to_string(m_current_tool) + " S0\n") | ||||
|         m_gcode += (m_gcode_flavor == gcfKlipper ? (std::string("SET_PRESSURE_ADVANCE ADVANCE=0\n")) | ||||
|                         : std::string("M900 K0\n")); | ||||
|         return *this; | ||||
|     } | ||||
|  |  | |||
|  | @ -15,15 +15,16 @@ | |||
| 
 | ||||
| namespace Slic3r { | ||||
| 
 | ||||
| const bool GCodeWriter::full_gcode_comment = false; | ||||
| const bool GCodeWriter::full_gcode_comment = true; | ||||
| const double GCodeWriter::slope_threshold = 3 * PI / 180; | ||||
| 
 | ||||
| void GCodeWriter::apply_print_config(const PrintConfig &print_config) | ||||
| { | ||||
|     this->config.apply(print_config, true); | ||||
|     m_single_extruder_multi_material = print_config.single_extruder_multi_material.value; | ||||
|     bool is_marlin = print_config.gcode_flavor.value == gcfMarlinLegacy || print_config.gcode_flavor.value == gcfMarlinFirmware; | ||||
|     bool is_marlin = print_config.gcode_flavor.value == gcfMarlinLegacy || print_config.gcode_flavor.value == gcfMarlinFirmware || print_config.gcode_flavor.value == gcfKlipper; | ||||
|     m_max_acceleration = std::lrint(is_marlin ? print_config.machine_max_acceleration_extruding.values.front() : 0); | ||||
|     m_max_jerk = std::lrint(is_marlin ? std::min(print_config.machine_max_jerk_x.values.front(), print_config.machine_max_jerk_y.values.front()) : 0); | ||||
| } | ||||
| 
 | ||||
| void GCodeWriter::set_extruders(std::vector<unsigned int> extruder_ids) | ||||
|  | @ -54,7 +55,8 @@ std::string GCodeWriter::preamble() | |||
|         FLAVOR_IS(gcfMarlinFirmware) || | ||||
|         FLAVOR_IS(gcfTeacup) || | ||||
|         FLAVOR_IS(gcfRepetier) || | ||||
|         FLAVOR_IS(gcfSmoothie)) | ||||
|         FLAVOR_IS(gcfSmoothie) || | ||||
|         FLAVOR_IS(gcfKlipper)) | ||||
|     { | ||||
|         if (RELATIVE_E_AXIS) { | ||||
|             gcode << "M83 ; only support relative e\n"; | ||||
|  | @ -183,6 +185,30 @@ std::string GCodeWriter::set_acceleration(unsigned int acceleration) | |||
|     return gcode.str(); | ||||
| } | ||||
| 
 | ||||
| std::string GCodeWriter::set_jerk_xy(unsigned int jerk) | ||||
| { | ||||
|     // Clamp the jerk to the allowed maximum.
 | ||||
|     if (m_max_jerk > 0 && jerk > m_max_jerk) | ||||
|         jerk = m_max_jerk; | ||||
| 
 | ||||
|     if (jerk < 1 || jerk == m_last_jerk) | ||||
|         return std::string(); | ||||
|      | ||||
|     m_last_jerk = jerk; | ||||
|      | ||||
|     std::ostringstream gcode; | ||||
|     if(FLAVOR_IS(gcfKlipper)) | ||||
|         gcode << "SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=" << jerk; | ||||
|     else | ||||
|         gcode << "M205 X" << jerk << " Y" << jerk; | ||||
|          | ||||
|     if (GCodeWriter::full_gcode_comment) gcode << " ; adjust jerk"; | ||||
|     gcode << "\n"; | ||||
| 
 | ||||
|     return gcode.str(); | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| std::string GCodeWriter::reset_e(bool force) | ||||
| { | ||||
|     if (FLAVOR_IS(gcfMach3) | ||||
|  |  | |||
|  | @ -11,12 +11,6 @@ | |||
| 
 | ||||
| namespace Slic3r { | ||||
| 
 | ||||
| enum class LiftType { | ||||
|     NormalLift, | ||||
|     LazyLift, | ||||
|     SpiralLift | ||||
| }; | ||||
| 
 | ||||
| class GCodeWriter { | ||||
| public: | ||||
|     GCodeConfig config; | ||||
|  | @ -26,6 +20,7 @@ public: | |||
|         multiple_extruders(false), m_extruder(nullptr), | ||||
|         m_single_extruder_multi_material(false), | ||||
|         m_last_acceleration(0), m_max_acceleration(0), | ||||
|         m_last_jerk(0), m_max_jerk(0), | ||||
|         /*m_last_bed_temperature(0), */m_last_bed_temperature_reached(true), | ||||
|         m_lifted(0), | ||||
|         m_to_lift(0), | ||||
|  | @ -51,6 +46,7 @@ public: | |||
|     // BBS
 | ||||
|     std::string set_bed_temperature(std::vector<int> temps_per_bed, int default_temp, bool wait = false); | ||||
|     std::string set_acceleration(unsigned int acceleration); | ||||
|     std::string set_jerk_xy(unsigned int jerk); | ||||
|     std::string reset_e(bool force = false); | ||||
|     std::string update_progress(unsigned int num, unsigned int tot, bool allow_100 = false) const; | ||||
|     // return false if this extruder was already selected
 | ||||
|  | @ -104,6 +100,13 @@ private: | |||
|     // Limit for setting the acceleration, to respect the machine limits set for the Marlin firmware.
 | ||||
|     // If set to zero, the limit is not in action.
 | ||||
|     unsigned int    m_max_acceleration; | ||||
|     unsigned int    m_max_jerk; | ||||
|     unsigned int    m_last_jerk; | ||||
| 
 | ||||
|     unsigned int  m_travel_acceleration; | ||||
|     unsigned int  m_travel_jerk; | ||||
| 
 | ||||
| 
 | ||||
|     //BBS
 | ||||
|     unsigned int    m_last_additional_fan_speed; | ||||
|     // BBS
 | ||||
|  |  | |||
|  | @ -296,8 +296,10 @@ void LayerRegion::process_external_surfaces(const Layer *lower_layer, const Poly | |||
|                 printf("Processing bridge at layer %zu:\n", this->layer()->id()); | ||||
|                 #endif | ||||
|                 //BBS: use 0 as custom angle to enable auto detection all the time
 | ||||
| 				double custom_angle = Geometry::deg2rad(0.0); | ||||
| 				if (bd.detect_angle(custom_angle)) { | ||||
|                 double custom_angle = Geometry::deg2rad(this->region().config().bridge_angle.value); | ||||
|                 if(custom_angle > 0) | ||||
|                         bridges[idx_last].bridge_angle = custom_angle; | ||||
| 				else if (bd.detect_angle(custom_angle)) { | ||||
|                     bridges[idx_last].bridge_angle = bd.angle; | ||||
|                     if (this->layer()->object()->has_support()) { | ||||
| //                        polygons_append(this->bridged, bd.coverage());
 | ||||
|  |  | |||
|  | @ -412,6 +412,8 @@ void PerimeterGenerator::process() | |||
|     for (const Surface &surface : this->slices->surfaces) { | ||||
|         // detect how many perimeters must be generated for this island
 | ||||
|         int        loop_number = this->config->wall_loops + surface.extra_perimeters - 1;  // 0-indexed loops
 | ||||
|         if (this->layer_id == 0 && this->config->only_one_wall_first_layer) | ||||
|             loop_number = 0; | ||||
|         //BBS: set the topmost layer to be one wall
 | ||||
|         if (loop_number > 0 && config->only_one_wall_top && this->upper_slices == nullptr) | ||||
|             loop_number = 0; | ||||
|  |  | |||
|  | @ -697,8 +697,9 @@ static std::vector<std::string> s_Preset_print_options { | |||
| #endif /* HAS_PRESSURE_EQUALIZER */ | ||||
|     "inner_wall_speed", "outer_wall_speed", "small_perimeter_speed", "sparse_infill_speed", "internal_solid_infill_speed", | ||||
|     "top_surface_speed", "support_speed", "support_object_xy_distance", "support_interface_speed", | ||||
|     "bridge_speed", "gap_infill_speed", "travel_speed", "travel_speed_z", "initial_layer_speed", | ||||
|     "initial_layer_acceleration", "top_surface_acceleration", "default_acceleration", "skirt_loops", "skirt_distance", "skirt_height", "draft_shield", | ||||
|     "bridge_speed", "bridge_angle", "gap_infill_speed", "travel_speed", "travel_speed_z", "initial_layer_speed", | ||||
|     "outer_wall_acceleration", "inner_wall_acceleration", "initial_layer_acceleration", "top_surface_acceleration", "default_acceleration", "travel_acceleration", "skirt_loops", "skirt_distance", "skirt_height", "draft_shield", | ||||
|     "default_jerk", "outer_wall_jerk", "inner_wall_jerk", "top_surface_jerk", "initial_layer_jerk","travel_jerk", | ||||
|     "brim_width", "brim_object_gap", "brim_type", "enable_support", "support_type", "support_threshold_angle", "enforce_support_layers", | ||||
|     "raft_layers", "raft_first_layer_density", "raft_first_layer_expansion", "raft_contact_distance", "raft_expansion", | ||||
|     "support_base_pattern", "support_base_pattern_spacing", "support_style", | ||||
|  | @ -722,14 +723,17 @@ static std::vector<std::string> s_Preset_print_options { | |||
|      "detect_narrow_internal_solid_infill", | ||||
|      "gcode_add_line_number", "enable_arc_fitting", "infill_combination", "adaptive_layer_height", | ||||
|      "support_bottom_interface_spacing", "enable_overhang_speed", "overhang_1_4_speed", "overhang_2_4_speed", "overhang_3_4_speed", "overhang_4_4_speed", | ||||
|      "initial_layer_infill_speed", "only_one_wall_top",  | ||||
|      "timelapse_type" | ||||
|      "initial_layer_infill_speed", "only_one_wall_top", "only_one_wall_first_layer", | ||||
|      "timelapse_type", | ||||
|      //SoftFever
 | ||||
|      "top_solid_infill_flow_ratio","bottom_solid_infill_flow_ratio" | ||||
| 
 | ||||
| }; | ||||
| 
 | ||||
| static std::vector<std::string> s_Preset_filament_options { | ||||
|     /*"filament_colour", */"filament_diameter", "filament_type", "filament_soluble", "filament_is_support", "filament_max_volumetric_speed", | ||||
|     "filament_flow_ratio", "filament_density", "filament_cost", "filament_minimal_purge_on_wipe_tower", | ||||
|     "nozzle_temperature", "nozzle_temperature_initial_layer", | ||||
|     "filament_flow_ratio", "enable_pressure_advance", "pressure_advance", "filament_density", "filament_cost", "filament_minimal_purge_on_wipe_tower", | ||||
|     "chamber_temperature", "nozzle_temperature", "nozzle_temperature_initial_layer", | ||||
|     // BBS
 | ||||
|     "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",
 | ||||
|  | @ -757,18 +761,20 @@ static std::vector<std::string> s_Preset_machine_limits_options { | |||
| 
 | ||||
| static std::vector<std::string> s_Preset_printer_options { | ||||
|     "printer_technology", | ||||
|     "printable_area", "bed_exclude_area", "gcode_flavor", | ||||
|     "printable_area", "bed_exclude_area", "gcode_flavor","z_lift_type", | ||||
|     "single_extruder_multi_material", "machine_start_gcode", "machine_end_gcode", "before_layer_change_gcode", "layer_change_gcode", "change_filament_gcode", | ||||
|     "printer_model", "printer_variant", "printable_height", "extruder_clearance_radius", "extruder_clearance_height_to_lid", "extruder_clearance_height_to_rod", | ||||
|     "default_print_profile", "inherits", | ||||
|     "silent_mode", | ||||
|     // BBS
 | ||||
|     "scan_first_layer", "machine_load_filament_time", "machine_unload_filament_time", "machine_pause_gcode", "template_custom_gcode", | ||||
|     "nozzle_type", "auxiliary_fan", "nozzle_volume", | ||||
|     "nozzle_type", "nozzle_diameter", "auxiliary_fan", "nozzle_volume", | ||||
|     //SoftFever
 | ||||
|     "host_type", "print_host", "printhost_apikey",  | ||||
|     "printhost_cafile","printhost_port","printhost_authorization_type", | ||||
|     "printhost_user", "printhost_password", "printhost_ssl_ignore_revoke" | ||||
|         "printhost_user", | ||||
|     "printhost_password", | ||||
|     "printhost_ssl_ignore_revoke", "thumbnails" | ||||
| }; | ||||
| 
 | ||||
| static std::vector<std::string> s_Preset_sla_print_options { | ||||
|  | @ -2238,6 +2244,21 @@ void add_correct_opts_to_diff(const std::string &opt_key, t_config_option_keys& | |||
|     } | ||||
| } | ||||
| 
 | ||||
| // template<class T>
 | ||||
| // void add_correct_opt_to_diff(const std::string &opt_key, t_config_option_keys& vec, const ConfigBase &other, const ConfigBase &this_c)
 | ||||
| // {
 | ||||
| //     const T* opt_init = static_cast<const T*>(other.option(opt_key));
 | ||||
| //     const T* opt_cur = static_cast<const T*>(this_c.option(opt_key));
 | ||||
| //     int opt_init_max_id = opt_init->values.size() - 1;
 | ||||
| //     for (int i = 0; i < int(opt_cur->values.size()); i++)
 | ||||
| //     {
 | ||||
| //         int init_id = i <= opt_init_max_id ? i : 0;
 | ||||
| //         if (opt_cur->values[i] != opt_init->values[init_id])
 | ||||
| //             vec.emplace_back(opt_key + "#" + std::to_string(i));
 | ||||
| //     }
 | ||||
| // }
 | ||||
| 
 | ||||
| 
 | ||||
| // Use deep_diff to correct return of changed options, considering individual options for each extruder.
 | ||||
| inline t_config_option_keys deep_diff(const ConfigBase &config_this, const ConfigBase &config_other) | ||||
| { | ||||
|  | @ -2248,7 +2269,7 @@ inline t_config_option_keys deep_diff(const ConfigBase &config_this, const Confi | |||
|         if (this_opt != nullptr && other_opt != nullptr && *this_opt != *other_opt) | ||||
|         { | ||||
|             //BBS: add bed_exclude_area
 | ||||
|             if (opt_key == "printable_area" || opt_key == "bed_exclude_area" || opt_key == "compatible_prints" || opt_key == "compatible_printers") { | ||||
|             if (opt_key == "printable_area" || opt_key == "bed_exclude_area" || opt_key == "compatible_prints" || opt_key == "compatible_printers" || opt_key == "thumbnails") { | ||||
|                 // Scalar variable, or a vector variable, which is independent from number of extruders,
 | ||||
|                 // thus the vector is presented to the user as a single input.
 | ||||
|                 diff.emplace_back(opt_key); | ||||
|  | @ -2261,6 +2282,7 @@ inline t_config_option_keys deep_diff(const ConfigBase &config_this, const Confi | |||
|                 case coBools:   add_correct_opts_to_diff<ConfigOptionBools      >(opt_key, diff, config_other, config_this);  break; | ||||
|                 case coFloats:  add_correct_opts_to_diff<ConfigOptionFloats     >(opt_key, diff, config_other, config_this);  break; | ||||
|                 case coStrings: add_correct_opts_to_diff<ConfigOptionStrings    >(opt_key, diff, config_other, config_this);  break; | ||||
|                 // case coString:  add_correct_opts_to_diff<ConfigOptionString     >(opt_key, diff, config_other, config_this);  break;
 | ||||
|                 case coPercents:add_correct_opts_to_diff<ConfigOptionPercents   >(opt_key, diff, config_other, config_this);  break; | ||||
|                 case coPoints:  add_correct_opts_to_diff<ConfigOptionPoints     >(opt_key, diff, config_other, config_this);  break; | ||||
|                 // BBS
 | ||||
|  | @ -2741,6 +2763,8 @@ void PhysicalPrinterCollection::load_printers( | |||
|     // see https://github.com/prusa3d/PrusaSlicer/issues/732
 | ||||
|     boost::filesystem::path dir = boost::filesystem::absolute(boost::filesystem::path(dir_path) / subdir).make_preferred(); | ||||
|     m_dir_path = dir.string(); | ||||
|     if(!boost::filesystem::exists(dir)) | ||||
|         return; | ||||
|     std::string errors_cummulative; | ||||
|     // Store the loaded printers into a new vector, otherwise the binary search for already existing presets would be broken.
 | ||||
|     std::deque<PhysicalPrinter> printers_loaded; | ||||
|  |  | |||
|  | @ -38,9 +38,9 @@ static std::vector<std::string> s_project_options { | |||
|     "wipe_tower_y", | ||||
|     "wipe_tower_rotation_angle", | ||||
|     "curr_bed_type", | ||||
| #if !BBL_RELEASE_TO_PUBLIC | ||||
| // #if !BBL_RELEASE_TO_PUBLIC
 | ||||
|     "flush_multiplier", | ||||
| #endif | ||||
| // #endif
 | ||||
| }; | ||||
| 
 | ||||
| //BBS: add BBL as default
 | ||||
|  | @ -90,7 +90,7 @@ PresetBundle::PresetBundle() | |||
|     for (size_t i = 0; i < 1; ++i) { | ||||
|         // The following ugly switch is to avoid printers.preset(0) to return the edited instance, as the 0th default is the current one.
 | ||||
|         Preset &preset = this->printers.default_preset(i); | ||||
|         for (const char *key : {"printer_settings_id", "printer_model", "printer_variant"}) preset.config.optptr(key, true); | ||||
|         for (const char *key : {"printer_settings_id", "printer_model", "printer_variant", "thumbnails"}) preset.config.optptr(key, true); | ||||
|         //if (i == 0) {
 | ||||
|             preset.config.optptr("default_print_profile", true); | ||||
|             preset.config.option<ConfigOptionStrings>("default_filament_profile", true); | ||||
|  | @ -1419,8 +1419,10 @@ DynamicPrintConfig PresetBundle::full_config() const | |||
| DynamicPrintConfig PresetBundle::full_config_secure() const | ||||
| { | ||||
|     DynamicPrintConfig config = this->full_config(); | ||||
|     //BBS example: config.erase("print_host");
 | ||||
|     return config; | ||||
|     //FIXME legacy, the keys should not be there after conversion to a Physical Printer profile.
 | ||||
|     config.erase("print_host"); | ||||
|     config.erase("printhost_apikey"); | ||||
|     config.erase("printhost_cafile");    return config; | ||||
| } | ||||
| 
 | ||||
| const std::set<std::string> ignore_settings_list ={ | ||||
|  | @ -2960,7 +2962,7 @@ std::pair<PresetsConfigSubstitutions, size_t> PresetBundle::load_vendor_configs_ | |||
|             //parse error
 | ||||
|             std::string subfile_path = path + "/" + vendor_name + "/" + subfile.second; | ||||
|             BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << boost::format(", got error when parse process setting from %1%") % subfile_path; | ||||
|             throw ConfigurationError((boost::format("Failed loading configuration file %1%\nSuggest cleaning the directory %2% firstly") % subfile_path %vendor_system_path).str()); | ||||
|             throw ConfigurationError((boost::format("Failed loading configuration file %1%\nSuggest cleaning the directory %2% firstly.\nReason: %3%") % subfile_path %vendor_system_path %reason).str()); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|  |  | |||
|  | @ -68,7 +68,9 @@ bool Print::invalidate_state_by_config_options(const ConfigOptionResolver & /* n | |||
|         //BBS: add bed_exclude_area
 | ||||
|         "bed_exclude_area", | ||||
|         "before_layer_change_gcode", | ||||
|         "enable_overhang_bridge_fan" | ||||
|         "enable_pressure_advance", | ||||
|         "pressure_advance", | ||||
|         "enable_overhang_bridge_fan", | ||||
|         "overhang_fan_speed", | ||||
|         "overhang_fan_threshold", | ||||
|         "slow_down_for_layer_cooling", | ||||
|  | @ -90,8 +92,11 @@ bool Print::invalidate_state_by_config_options(const ConfigOptionResolver & /* n | |||
|         "filament_diameter", | ||||
|         "filament_density", | ||||
|         "filament_cost", | ||||
|         "outer_wall_acceleration", | ||||
|         "inner_wall_acceleration", | ||||
|         "initial_layer_acceleration", | ||||
|         "top_surface_acceleration", | ||||
|         "travel_acceleration", | ||||
|         // BBS
 | ||||
|         "cool_plate_temp_initial_layer", | ||||
|         "eng_plate_temp_initial_layer", | ||||
|  | @ -124,10 +129,13 @@ bool Print::invalidate_state_by_config_options(const ConfigOptionResolver & /* n | |||
|         "filament_start_gcode", | ||||
|         "change_filament_gcode", | ||||
|         "wipe", | ||||
|         "z_lift_type", | ||||
|         // BBS
 | ||||
|         "wipe_distance", | ||||
|         "curr_bed_type", | ||||
|         "nozzle_volume" | ||||
|         "nozzle_volume", | ||||
|         "chamber_temperature", | ||||
|         "thumbnails" | ||||
|     }; | ||||
| 
 | ||||
|     static std::unordered_set<std::string> steps_ignore; | ||||
|  | @ -164,6 +172,7 @@ bool Print::invalidate_state_by_config_options(const ConfigOptionResolver & /* n | |||
|         } else if ( | ||||
|                opt_key == "print_sequence" | ||||
|             || opt_key == "filament_type" | ||||
|             || opt_key == "chamber_temperature" | ||||
|             || opt_key == "nozzle_temperature_initial_layer" | ||||
|             || opt_key == "filament_minimal_purge_on_wipe_tower" | ||||
|             || opt_key == "filament_max_volumetric_speed" | ||||
|  |  | |||
 SoftFever
						SoftFever