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 | # BambuStudio | ||||||
| Bambu Studio is a cutting-edge, feature-rich slicing software.   | 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. | 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" | msgid "Bridge flow" | ||||||
| msgstr "" | 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 "" | msgid "" | ||||||
| "Decrease this value slightly(for example 0.9) to reduce the amount of " | "Decrease this value slightly(for example 0.9) to reduce the amount of " | ||||||
| "material for bridge, to improve sag" | "material for bridge, to improve sag" | ||||||
|  | @ -5148,11 +5162,19 @@ msgstr "" | ||||||
| msgid "Only one wall on top surfaces" | msgid "Only one wall on top surfaces" | ||||||
| msgstr "" | msgstr "" | ||||||
| 
 | 
 | ||||||
|  | msgid "Only one wall on first layer" | ||||||
|  | msgstr "" | ||||||
|  | 
 | ||||||
| msgid "" | msgid "" | ||||||
| "Use only one wall on flat top surface, to give more space to the top infill " | "Use only one wall on flat top surface, to give more space to the top infill " | ||||||
| "pattern" | "pattern" | ||||||
| msgstr "" | msgstr "" | ||||||
| 
 | 
 | ||||||
|  | msgid "" | ||||||
|  | "Use only one wall on first layer, to give more space to the bottom infill " | ||||||
|  | "pattern" | ||||||
|  | msgstr "" | ||||||
|  | 
 | ||||||
| msgid "Slow down for overhang" | msgid "Slow down for overhang" | ||||||
| msgstr "" | msgstr "" | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -3065,7 +3065,7 @@ msgid "Click to edit preset" | ||||||
| msgstr "点击编辑配置" | msgstr "点击编辑配置" | ||||||
| 
 | 
 | ||||||
| msgid "Connection" | msgid "Connection" | ||||||
| msgstr "" | msgstr "连接打印机" | ||||||
| 
 | 
 | ||||||
| msgid "Bed type" | msgid "Bed type" | ||||||
| msgstr "热床类型" | msgstr "热床类型" | ||||||
|  | @ -5267,19 +5267,41 @@ msgstr "" | ||||||
| msgid "Bridge flow" | msgid "Bridge flow" | ||||||
| msgstr "桥接流量" | 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 "" | msgid "" | ||||||
| "Decrease this value slightly(for example 0.9) to reduce the amount of " | "Decrease this value slightly(for example 0.9) to reduce the amount of " | ||||||
| "material for bridge, to improve sag" | "material for bridge, to improve sag" | ||||||
| msgstr "稍微减小这个数值(比如0.9)可以减小桥接的材料量,来改善下垂。" | msgstr "稍微减小这个数值(比如0.9)可以减小桥接的材料量,来改善下垂。" | ||||||
| 
 | 
 | ||||||
| msgid "Only one wall on top surfaces" | msgid "Only one wall on first layer" | ||||||
| msgstr "顶面单层墙" | msgstr "首层单层墙" | ||||||
| 
 | 
 | ||||||
| msgid "" | msgid "" | ||||||
| "Use only one wall on flat top surface, to give more space to the top infill " | "Use only one wall on flat top surface, to give more space to the top infill " | ||||||
| "pattern" | "pattern" | ||||||
| msgstr "顶面只使用单层墙,从而更多的空间能够使用顶部填充图案" | 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" | msgid "Slow down for overhang" | ||||||
| msgstr "悬垂降速" | msgstr "悬垂降速" | ||||||
| 
 | 
 | ||||||
|  | @ -5655,6 +5677,9 @@ msgstr "(未定义)" | ||||||
| msgid "Infill direction" | msgid "Infill direction" | ||||||
| msgstr "填充方向" | msgstr "填充方向" | ||||||
| 
 | 
 | ||||||
|  | msgid "Bridge infill direction" | ||||||
|  | msgstr "拉桥填充方向" | ||||||
|  | 
 | ||||||
| msgid "" | msgid "" | ||||||
| "Angle for sparse infill pattern, which controls the start or main direction " | "Angle for sparse infill pattern, which controls the start or main direction " | ||||||
| "of line" | "of line" | ||||||
|  | @ -5707,6 +5732,45 @@ msgid "" | ||||||
| "adhensive" | "adhensive" | ||||||
| msgstr "首层加速度。使用较低值可以改善和构建板的粘接。" | 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" | msgid "Line width of initial layer" | ||||||
| msgstr "首层的线宽" | msgstr "首层的线宽" | ||||||
| 
 | 
 | ||||||
|  | @ -5831,6 +5895,9 @@ msgstr "如果机器有辅助部件冷却风扇,勾选该选项" | ||||||
| msgid "G-code flavor" | msgid "G-code flavor" | ||||||
| msgstr "G-code风格" | msgstr "G-code风格" | ||||||
| 
 | 
 | ||||||
|  | msgid "G-code thumbnails" | ||||||
|  | msgstr "G-code缩略图尺寸" | ||||||
|  | 
 | ||||||
| msgid "What kind of gcode the printer is compatible with" | msgid "What kind of gcode the printer is compatible with" | ||||||
| msgstr "打印机兼容的G-code风格'" | msgstr "打印机兼容的G-code风格'" | ||||||
| 
 | 
 | ||||||
|  | @ -6210,6 +6277,15 @@ msgstr "" | ||||||
| msgid "Z hop when retract" | msgid "Z hop when retract" | ||||||
| msgstr "回抽时抬升Z" | msgstr "回抽时抬升Z" | ||||||
| 
 | 
 | ||||||
|  | msgid "Z hop type" | ||||||
|  | msgstr "抬Z类型" | ||||||
|  | 
 | ||||||
|  | msgid "NormalLift" | ||||||
|  | msgstr "直接抬Z" | ||||||
|  | 
 | ||||||
|  | msgid "SpiralLift" | ||||||
|  | msgstr "螺旋抬Z" | ||||||
|  | 
 | ||||||
| msgid "" | msgid "" | ||||||
| "Whenever the retraction is done, the nozzle is lifted a little to create " | "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 " | "clearance between nozzle and the print. It prevents nozzle from hitting the " | ||||||
|  | @ -6539,6 +6615,9 @@ msgstr "除首层外的其它层的喷嘴温度" | ||||||
| msgid "Nozzle temperature" | msgid "Nozzle temperature" | ||||||
| msgstr "喷嘴温度" | msgstr "喷嘴温度" | ||||||
| 
 | 
 | ||||||
|  | msgid "Chamber temperature" | ||||||
|  | msgstr "机箱温度" | ||||||
|  | 
 | ||||||
| msgid "Bed temperature difference" | msgid "Bed temperature difference" | ||||||
| msgstr "热床温差" | 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", |     "name": "Creality", | ||||||
|     "version": "01.02.01.03", |     "version": "01.02.01.04", | ||||||
|     "force_update": "0", |     "force_update": "0", | ||||||
|     "description": "Creality configurations", |     "description": "Creality configurations", | ||||||
|     "machine_model_list": [ |     "machine_model_list": [ | ||||||
|  |  | ||||||
|  | @ -102,7 +102,7 @@ | ||||||
|     "2" |     "2" | ||||||
|   ], |   ], | ||||||
|   "z_hop": [ |   "z_hop": [ | ||||||
|     "0" |     "0.4" | ||||||
|   ], |   ], | ||||||
|   "retract_restart_extra": [ |   "retract_restart_extra": [ | ||||||
|     "0" |     "0" | ||||||
|  |  | ||||||
|  | @ -110,6 +110,7 @@ | ||||||
|     "wipe": [ |     "wipe": [ | ||||||
|         "1" |         "1" | ||||||
|     ], |     ], | ||||||
|  |     "z_lift_type": "NormalLift", | ||||||
|     "default_print_profile": "0.16mm Optimal @Bambu Lab X1 Carbon 0.4 nozzle", |     "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_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" |     "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": [ |   "deretraction_speed": [ | ||||||
|     "30" |     "30" | ||||||
|   ], |   ], | ||||||
|  |   "z_lift_type": "NormalLift", | ||||||
|   "silent_mode": "0", |   "silent_mode": "0", | ||||||
|   "single_extruder_multi_material": "1", |   "single_extruder_multi_material": "1", | ||||||
|   "change_filament_gcode": "", |   "change_filament_gcode": "", | ||||||
|  | @ -130,9 +131,10 @@ | ||||||
|   "bed_exclude_area": [ |   "bed_exclude_area": [ | ||||||
|     "0x0" |     "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", |   "machine_end_gcode": "PRINT_END", | ||||||
|   "layer_change_gcode": "", |   "layer_change_gcode": "", | ||||||
|  |   "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n", | ||||||
|   "scan_first_layer": "0", |   "scan_first_layer": "0", | ||||||
|   "nozzle_type": "undefine", |   "nozzle_type": "undefine", | ||||||
|   "auxiliary_fan": "0" |   "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", |     "brim_object_gap": "0.1", | ||||||
|     "compatible_printers_condition": "", |     "compatible_printers_condition": "", | ||||||
|     "print_sequence": "by layer", |     "print_sequence": "by layer", | ||||||
|     "default_acceleration": "7000", |     "default_acceleration": "5000", | ||||||
|     "top_surface_acceleration": "3000", |     "top_surface_acceleration": "3000", | ||||||
|  |     "travel_acceleration": "7000", | ||||||
|  |     "inner_wall_acceleration": "5000", | ||||||
|  |     "outer_wall_acceleration": "3000", | ||||||
|     "bridge_no_support": "0", |     "bridge_no_support": "0", | ||||||
|     "draft_shield": "disabled", |     "draft_shield": "disabled", | ||||||
|     "elefant_foot_compensation": "0", |     "elefant_foot_compensation": "0", | ||||||
|  | @ -99,6 +102,7 @@ | ||||||
|     "prime_tower_width": "35", |     "prime_tower_width": "35", | ||||||
|     "xy_hole_compensation": "0", |     "xy_hole_compensation": "0", | ||||||
|     "xy_contour_compensation": "0", |     "xy_contour_compensation": "0", | ||||||
|  |     "enable_arc_fitting": "0", | ||||||
|     "compatible_printers": [ |     "compatible_printers": [ | ||||||
|       "Voron 2.4 250 0.4 nozzle", |       "Voron 2.4 250 0.4 nozzle", | ||||||
|       "Voron 2.4 300 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 sel = get("iot_environment"); | ||||||
|     std::string host = ""; |     std::string host = ""; | ||||||
| #if !BBL_RELEASE_TO_PUBLIC | // #if !BBL_RELEASE_TO_PUBLIC
 | ||||||
|     if (sel == ENV_DEV_HOST) | //     if (sel == ENV_DEV_HOST)
 | ||||||
|         host = "e-dev.bambu-lab.com"; | //         host = "e-dev.bambu-lab.com";
 | ||||||
|     else if (sel == ENV_QAT_HOST) | //     else if (sel == ENV_QAT_HOST)
 | ||||||
|         host = "e-qa.bambu-lab.com"; | //         host = "e-qa.bambu-lab.com";
 | ||||||
|     else if (sel == ENV_PRE_HOST) | //     else if (sel == ENV_PRE_HOST)
 | ||||||
|         host = "e-pre.bambu-lab.com"; | //         host = "e-pre.bambu-lab.com";
 | ||||||
|     else if (sel == ENV_PRODUCT_HOST) | //     else if (sel == ENV_PRODUCT_HOST)
 | ||||||
|         host = "e.bambulab.com"; | //         host = "e.bambulab.com";
 | ||||||
|     return host; | //     return host;
 | ||||||
| #else | // #else
 | ||||||
|     return "e.bambulab.com"; |     return "e.bambulab.com"; | ||||||
| #endif | // #endif
 | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void AppConfig::reset() | void AppConfig::reset() | ||||||
|  | @ -293,15 +293,15 @@ void AppConfig::set_defaults() | ||||||
|         set("curr_bed_type", "0"); |         set("curr_bed_type", "0"); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| #if BBL_RELEASE_TO_PUBLIC | // #if BBL_RELEASE_TO_PUBLIC
 | ||||||
|     if (get("iot_environment").empty()) { |     if (get("iot_environment").empty()) { | ||||||
|         set("iot_environment", "3"); |         set("iot_environment", "3"); | ||||||
|     } |     } | ||||||
| #else | // #else
 | ||||||
|     if (get("iot_environment").empty()) { | //     if (get("iot_environment").empty()) {
 | ||||||
|         set("iot_environment", "1"); | //         set("iot_environment", "1");
 | ||||||
|     } | //     }
 | ||||||
| #endif | // #endif
 | ||||||
| 
 | 
 | ||||||
|     // Remove legacy window positions/sizes
 |     // Remove legacy window positions/sizes
 | ||||||
|     erase("app", "main_frame_maximized"); |     erase("app", "main_frame_maximized"); | ||||||
|  | @ -1030,29 +1030,29 @@ void AppConfig::update_last_backup_dir(const std::string& dir) | ||||||
| 
 | 
 | ||||||
| std::string AppConfig::get_region() | std::string AppConfig::get_region() | ||||||
| { | { | ||||||
| #if BBL_RELEASE_TO_PUBLIC | // #if BBL_RELEASE_TO_PUBLIC
 | ||||||
|     return this->get("region"); |     return this->get("region"); | ||||||
| #else | // #else
 | ||||||
|     std::string sel = get("iot_environment"); | //     std::string sel = get("iot_environment");
 | ||||||
|     std::string region; | //     std::string region;
 | ||||||
|     if (sel == ENV_DEV_HOST) | //     if (sel == ENV_DEV_HOST)
 | ||||||
|         region = "ENV_CN_DEV"; | //         region = "ENV_CN_DEV";
 | ||||||
|     else if (sel == ENV_QAT_HOST) | //     else if (sel == ENV_QAT_HOST)
 | ||||||
|         region = "ENV_CN_QA"; | //         region = "ENV_CN_QA";
 | ||||||
|     else if (sel == ENV_PRE_HOST) | //     else if (sel == ENV_PRE_HOST)
 | ||||||
|         region = "ENV_CN_PRE"; | //         region = "ENV_CN_PRE";
 | ||||||
|     if (region.empty()) | //     if (region.empty())
 | ||||||
|         return this->get("region"); | //         return this->get("region");
 | ||||||
|     return region; | //     return region;
 | ||||||
| #endif | // #endif
 | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| std::string AppConfig::get_country_code() | std::string AppConfig::get_country_code() | ||||||
| { | { | ||||||
|     std::string region = get_region(); |     std::string region = get_region(); | ||||||
| #if !BBL_RELEASE_TO_PUBLIC | // #if !BBL_RELEASE_TO_PUBLIC
 | ||||||
|     if (is_engineering_region()) { return region; } | //     if (is_engineering_region()) { return region; }
 | ||||||
| #endif | // #endif
 | ||||||
|     if (region == "CHN" || region == "China") |     if (region == "CHN" || region == "China") | ||||||
|         return "CN"; |         return "CN"; | ||||||
|     else if (region == "USA") |     else if (region == "USA") | ||||||
|  |  | ||||||
|  | @ -55,6 +55,16 @@ inline bool is_perimeter(ExtrusionRole role) | ||||||
|         || role == erOverhangPerimeter; |         || 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) | inline bool is_infill(ExtrusionRole role) | ||||||
| { | { | ||||||
|     return role == erBridgeInfill |     return role == erBridgeInfill | ||||||
|  |  | ||||||
|  | @ -92,7 +92,7 @@ struct SurfaceFillParams | ||||||
| 				this->overlap 			== rhs.overlap 			&& | 				this->overlap 			== rhs.overlap 			&& | ||||||
| 				this->angle   			== rhs.angle   			&& | 				this->angle   			== rhs.angle   			&& | ||||||
| 				this->bridge   			== rhs.bridge   		&& | 				this->bridge   			== rhs.bridge   		&& | ||||||
| //				this->bridge_angle 		== rhs.bridge_angle		&&
 | 				this->bridge_angle 		== rhs.bridge_angle		&& | ||||||
| 				this->density   		== rhs.density   		&& | 				this->density   		== rhs.density   		&& | ||||||
| //				this->dont_adjust   	== rhs.dont_adjust 		&&
 | //				this->dont_adjust   	== rhs.dont_adjust 		&&
 | ||||||
| 				this->anchor_length  	== rhs.anchor_length    && | 				this->anchor_length  	== rhs.anchor_length    && | ||||||
|  |  | ||||||
|  | @ -14,7 +14,7 @@ | ||||||
| #include "libslic3r.h" | #include "libslic3r.h" | ||||||
| #include "LocalesUtils.hpp" | #include "LocalesUtils.hpp" | ||||||
| #include "libslic3r/format.hpp" | #include "libslic3r/format.hpp" | ||||||
| 
 | #include "Time.hpp" | ||||||
| #include <algorithm> | #include <algorithm> | ||||||
| #include <cstdlib> | #include <cstdlib> | ||||||
| #include <chrono> | #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 float g_purge_volume_one_time = 135.f; | ||||||
| static const int g_max_flush_count = 4; | 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.
 | // 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) |     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; |     BOOST_LOG_TRIVIAL(info) << boost::format("Will export G-code to %1% soon")%path; | ||||||
|     print->set_started(psGCodeExport); |     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
 |     // check if any custom gcode contains keywords used by the gcode processor to
 | ||||||
|     // produce time estimation and gcode toolpaths
 |     // produce time estimation and gcode toolpaths
 | ||||||
|     std::vector<std::pair<std::string, std::string>> validation_res = DoExport::validate_custom_gcode(*print); |     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.clear(); | ||||||
|         print_statistics.total_toolchanges = std::max(0, wipe_tower_data.number_of_toolchanges); |         print_statistics.total_toolchanges = std::max(0, wipe_tower_data.number_of_toolchanges); | ||||||
| 	    if (! extruders.empty()) { | 	    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_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_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_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_cost    ("; filament cost = ", 0); | ||||||
| 	        for (const Extruder &extruder : extruders) { | 	        for (const Extruder &extruder : extruders) { | ||||||
| 	            double used_filament   = extruder.used_filament() + (has_wipe_tower ? wipe_tower_data.used_filament[extruder.id()] : 0.f); | 	            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
 | 	            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.first += buf; | ||||||
| 	                ++ dst.second; | 	                ++ dst.second; | ||||||
| 	            }; | 	            }; | ||||||
| 	            //append(out_filament_used_mm,  "%.2lf", used_filament);
 | 	            append(out_filament_used_mm,  "%.2lf", used_filament); | ||||||
| 	            //append(out_filament_used_cm3, "%.2lf", extruded_volume * 0.001);
 | 	            append(out_filament_used_cm3, "%.2lf", extruded_volume * 0.001); | ||||||
| 	            if (filament_weight > 0.) { | 	            if (filament_weight > 0.) { | ||||||
| 	                print_statistics.total_weight = print_statistics.total_weight + filament_weight; | 	                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.) { | 	                if (filament_cost > 0.) { | ||||||
| 	                    print_statistics.total_cost = print_statistics.total_cost + filament_cost; | 	                    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; | 	            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_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.; | 	            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 += out_filament_used_mm.first; | ||||||
|             //filament_stats_string_out += "\n" + out_filament_used_cm3.first;
 |             filament_stats_string_out += "\n" + out_filament_used_cm3.first; | ||||||
|             //if (out_filament_used_g.second)
 |             if (out_filament_used_g.second) | ||||||
|                 //filament_stats_string_out += "\n" + out_filament_used_g.first;
 |                 filament_stats_string_out += "\n" + out_filament_used_g.first; | ||||||
|             //if (out_filament_cost.second)
 |             if (out_filament_cost.second) | ||||||
|             //    filament_stats_string_out += "\n" + out_filament_cost.first;
 |                filament_stats_string_out += "\n" + out_filament_cost.first; | ||||||
|         } |         } | ||||||
|         return filament_stats_string_out; |         return filament_stats_string_out; | ||||||
|     } |     } | ||||||
|  | @ -1285,7 +1290,7 @@ void GCode::_do_export(Print& print, GCodeOutputStream &file, ThumbnailsGenerato | ||||||
| 
 | 
 | ||||||
|     // modifies m_silent_time_estimator_enabled
 |     // modifies m_silent_time_estimator_enabled
 | ||||||
|     DoExport::init_gcode_processor(print.config(), m_processor, 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
 |     // resets analyzer's tracking data
 | ||||||
|     m_last_height  = 0.f; |     m_last_height  = 0.f; | ||||||
|     m_last_layer_z = 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(";%s\n", GCodeProcessor::reserved_tag(GCodeProcessor::ETags::Estimated_Printing_Time_Placeholder).c_str()); | ||||||
|     file.write_format("; HEADER_BLOCK_END\n\n"); |     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.
 |       // BBS: write global config at the beginning of gcode file because printer
 | ||||||
|     // The delimiters are structured as configuration key / value pairs to be parsable by older versions of PrusaSlicer G-code viewer.
 |       // 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"); |         file.write("; CONFIG_BLOCK_START\n"); | ||||||
|         std::string full_config; |         std::string full_config; | ||||||
|         append_full_config(print, full_config); |         append_full_config(print, full_config); | ||||||
|         if (!full_config.empty()) |         if (!full_config.empty()) | ||||||
|             file.write(full_config); |           file.write(full_config); | ||||||
|  | 
 | ||||||
|  |         // 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"); |         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(); }); | ||||||
|  |       } | ||||||
|     } |     } | ||||||
| 
 |      | ||||||
|     //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(); });
 |  | ||||||
| 
 |  | ||||||
| 
 | 
 | ||||||
|     // Write some terse information on the slicing parameters.
 |     // Write some terse information on the slicing parameters.
 | ||||||
|     const PrintObject *first_object         = print.objects().front(); |     const PrintObject *first_object         = print.objects().front(); | ||||||
|     const double       layer_height         = first_object->config().layer_height.value; |     const double       layer_height         = first_object->config().layer_height.value; | ||||||
|     const double       initial_layer_print_height   = print.config().initial_layer_print_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) { |     for (size_t region_id = 0; region_id < print.num_print_regions(); ++ region_id) { | ||||||
|         const PrintRegion ®ion = print.get_print_region(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()); |         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("; first layer extrusion width = %.2fmm\n",   region.flow(*first_object, frPerimeter, initial_layer_print_height, true).width()); | ||||||
|         file.write_format("\n"); |         file.write_format("\n"); | ||||||
|     } |     } | ||||||
|     print.throw_if_canceled(); |  | ||||||
| #endif |  | ||||||
| 
 | 
 | ||||||
|     file.write_format("; EXECUTABLE_BLOCK_START\n"); |     file.write_format("; EXECUTABLE_BLOCK_START\n"); | ||||||
|     // adds tags for time estimators
 |     // 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_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() })); |         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(); |         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", 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_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("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
 |         //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)); |             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_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) |             if (outer_wall_volumetric_speed > filament_max_volumetric_speed) | ||||||
|                 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)); |             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; |     if (this->m_objsWithBrim.empty() && this->m_objSupportsWithBrim.empty()) m_brim_done = true; | ||||||
| 
 | 
 | ||||||
|     //BBS: open spaghetti detector
 |     //BBS: open spaghetti detector
 | ||||||
|     // if (print.config().spaghetti_detector.value)
 |     if (is_bbl_printers) { | ||||||
|         file.write("M981 S1 P20000 ;open spaghetti detector\n"); |       // 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.
 |     // Do all objects for each layer.
 | ||||||
|     if (print.config().print_sequence == PrintSequence::ByObject) { |     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); |             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
 |             //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("; close powerlost recovery\n"); | ||||||
|                     file.write("M1003 S0\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); |         this->process_layers(print, tool_ordering, print_object_instances_ordering, layers_to_print, file); | ||||||
|         //BBS: close powerlost recovery
 |         //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("; close powerlost recovery\n"); | ||||||
|                 file.write("M1003 S0\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)); |     file.write(m_writer.set_fan(0)); | ||||||
|     //BBS: make sure the additional fan is closed when end
 |     //BBS: make sure the additional fan is closed when end
 | ||||||
|     file.write(m_writer.set_additional_fan(0)); |     file.write(m_writer.set_additional_fan(0)); | ||||||
|     //BBS: close spaghetti detector
 |     if (is_bbl_printers) { | ||||||
|     //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.
 |         //BBS: close spaghetti detector
 | ||||||
|     //if (print.config().spaghetti_detector.value)
 |         //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.
 | ||||||
|     file.write("M981 S0 P20000 ; close spaghetti detector\n"); |         //if (print.config().spaghetti_detector.value)
 | ||||||
|  |         file.write("M981 S0 P20000 ; close spaghetti detector\n"); | ||||||
|  |     } | ||||||
| 
 | 
 | ||||||
|     // adds tag for processor
 |     // 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()); |     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(), |         m_writer.extruders(), | ||||||
|         // Modifies
 |         // Modifies
 | ||||||
|         print.m_print_statistics)); |         print.m_print_statistics)); | ||||||
|     //file.write("\n");
 |     if (!is_bbl_printers) { | ||||||
|     //file.write_format("; total filament weight [g] = %.2lf\n", print.m_print_statistics.total_weight);
 |       file.write("\n"); | ||||||
|     //file.write_format("; total filament cost = %.2lf\n", print.m_print_statistics.total_cost);
 |       file.write("; CONFIG_BLOCK_START\n"); | ||||||
|     //if (print.m_print_statistics.total_toolchanges > 0)
 |       std::string full_config; | ||||||
|     //	file.write_format("; total filament change = %i\n", print.m_print_statistics.total_toolchanges);
 |       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(); |     print.throw_if_canceled(); | ||||||
| } | } | ||||||
|  | @ -2501,28 +2587,41 @@ GCode::LayerResult GCode::process_layer( | ||||||
|             double acceleration = m_config.initial_layer_acceleration.value; |             double acceleration = m_config.initial_layer_acceleration.value; | ||||||
|             gcode += m_writer.set_acceleration((unsigned int)floor(acceleration + 0.5)); |             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) { |     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 += "; open powerlost recovery\n"; | ||||||
|             gcode += "M1003 S1\n"; |           gcode += "M1003 S1\n"; | ||||||
|         } |         } | ||||||
|         // BBS: open first layer inspection at second layer
 |         // BBS: open first layer inspection at second layer
 | ||||||
|         if (print.config().scan_first_layer.value) { |         if (print.config().scan_first_layer.value) { | ||||||
|             // BBS: retract first to avoid droping when scan model
 |           // BBS: retract first to avoid droping when scan model
 | ||||||
|             gcode += this->retract(); |           gcode += this->retract(); | ||||||
|             gcode += "M976 S1 P1 ; scan model before printing 2nd layer\n"; |           gcode += "M976 S1 P1 ; scan model before printing 2nd layer\n"; | ||||||
|             gcode += "M400 P100\n"; |           gcode += "M400 P100\n"; | ||||||
|             gcode += this->unretract(); |           gcode += this->unretract(); | ||||||
|         } |         } | ||||||
| 
 |       } | ||||||
|         //BBS:  reset acceleration at sencond layer
 |         //BBS:  reset acceleration at sencond layer
 | ||||||
|         if (m_config.default_acceleration.value > 0 && m_config.initial_layer_acceleration.value > 0) { |         if (m_config.default_acceleration.value > 0 && m_config.initial_layer_acceleration.value > 0) { | ||||||
|             double acceleration = m_config.default_acceleration.value; |             double acceleration = m_config.default_acceleration.value; | ||||||
|             gcode += m_writer.set_acceleration((unsigned int)floor(acceleration + 0.5)); |             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
 |         // Transition from 1st to 2nd layer. Adjust nozzle temperatures as prescribed by the nozzle dependent
 | ||||||
|         // nozzle_temperature_initial_layer vs. temperature settings.
 |         // nozzle_temperature_initial_layer vs. temperature settings.
 | ||||||
|         for (const Extruder &extruder : m_writer.extruders()) { |         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.
 |     //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
 |         // 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
 |     // BBS
 | ||||||
|     if (m_wipe.enable) { |     if (m_wipe.enable) { | ||||||
|  | @ -3312,9 +3415,12 @@ std::string GCode::extrude_multi_path(ExtrusionMultiPath multipath, std::string | ||||||
|         m_wipe.path.reverse(); |         m_wipe.path.reverse(); | ||||||
|     } |     } | ||||||
|     //BBS: don't reset acceleration when printing first layer. During first layer, acceleration is always same value.
 |     //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
 |         // reset acceleration
 | ||||||
|         gcode += m_writer.set_acceleration((unsigned int)floor(m_config.default_acceleration.value + 0.5)); |         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; |     return gcode; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | @ -3340,9 +3446,13 @@ std::string GCode::extrude_path(ExtrusionPath path, std::string description, dou | ||||||
|         m_wipe.path.reverse(); |         m_wipe.path.reverse(); | ||||||
|     } |     } | ||||||
|     //BBS: don't reset acceleration when printing first layer. During first layer, acceleration is always same value.
 |     //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
 |         // reset acceleration
 | ||||||
|         gcode += m_writer.set_acceleration((unsigned int)floor(m_config.default_acceleration.value + 0.5)); |         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; |     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())) { |         } else if (m_config.perimeter_acceleration.value > 0 && is_perimeter(path.role())) { | ||||||
|             acceleration = m_config.perimeter_acceleration.value; |             acceleration = m_config.perimeter_acceleration.value; | ||||||
| #endif | #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())) { |         } else if (m_config.top_surface_acceleration.value > 0 && is_top_surface(path.role())) { | ||||||
|             acceleration = m_config.top_surface_acceleration.value; |             acceleration = m_config.top_surface_acceleration.value; | ||||||
|         } else { |         } 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)); |         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
 |     // calculate extrusion length per distance unit
 | ||||||
|     double e_per_mm = m_writer.extruder()->e_per_mm3() * path.mm3_per_mm; |     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; |     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.
 |     // 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(); |     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
 |     // if a retraction would be needed, try to use reduce_crossing_wall to plan a
 | ||||||
|     // multi-hop travel path inside the configuration space
 |     // multi-hop travel path inside the configuration space
 | ||||||
|     if (needs_retraction |     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(); |     m_avoid_crossing_perimeters.reset_once_modifiers(); | ||||||
| 
 | 
 | ||||||
|     // generate G-code for the travel move
 |     // generate G-code for the travel move
 | ||||||
|     std::string gcode; |  | ||||||
|     if (needs_retraction) { |     if (needs_retraction) { | ||||||
|         if (m_config.reduce_crossing_wall && could_be_wipe_disabled) |         if (m_config.reduce_crossing_wall && could_be_wipe_disabled) | ||||||
|             m_wipe.reset_path(); |             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) { |             if (i == travel.size() - 1 && !m_spiral_vase) { | ||||||
|                 Vec2d dest2d = this->point_to_gcode(travel.points[i]); |                 Vec2d dest2d = this->point_to_gcode(travel.points[i]); | ||||||
|                 Vec3d dest3d(dest2d(0), dest2d(1), m_nominal_z); |                 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 { |             } 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()); |         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) { |     if (m_writer.extruder()->retraction_length() > 0) { | ||||||
|         // BBS: don't do lazy_lift when enable spiral vase
 |         // BBS: don't do lazy_lift when enable spiral vase
 | ||||||
|         size_t extruder_id = m_writer.extruder()->id(); |         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; |     return gcode; | ||||||
|  |  | ||||||
|  | @ -453,10 +453,7 @@ void GCodeProcessor::TimeProcessor::post_process(const std::string& filename, st | ||||||
|                     PrintEstimatedStatistics::ETimeMode mode = static_cast<PrintEstimatedStatistics::ETimeMode>(i); |                     PrintEstimatedStatistics::ETimeMode mode = static_cast<PrintEstimatedStatistics::ETimeMode>(i); | ||||||
|                     if (mode == PrintEstimatedStatistics::ETimeMode::Normal || machine.enabled) { |                     if (mode == PrintEstimatedStatistics::ETimeMode::Normal || machine.enabled) { | ||||||
|                         char buf[128]; |                         char buf[128]; | ||||||
|                         //sprintf(buf, "; estimated printing time (%s mode) = %s\n",
 |                         sprintf(buf, "; estimated printing time: %s\n", get_time_dhms(machine.time).c_str()); | ||||||
|                         //    (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()); |  | ||||||
|                         ret += buf; |                         ret += buf; | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
|  |  | ||||||
|  | @ -99,8 +99,7 @@ public: | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     WipeTowerWriter&            disable_linear_advance() { |     WipeTowerWriter&            disable_linear_advance() { | ||||||
|         m_gcode += (m_gcode_flavor == gcfRepRapSprinter || m_gcode_flavor == gcfRepRapFirmware |         m_gcode += (m_gcode_flavor == gcfKlipper ? (std::string("SET_PRESSURE_ADVANCE ADVANCE=0\n")) | ||||||
|                         ? (std::string("M572 D") + std::to_string(m_current_tool) + " S0\n") |  | ||||||
|                         : std::string("M900 K0\n")); |                         : std::string("M900 K0\n")); | ||||||
|         return *this; |         return *this; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  | @ -15,15 +15,16 @@ | ||||||
| 
 | 
 | ||||||
| namespace Slic3r { | namespace Slic3r { | ||||||
| 
 | 
 | ||||||
| const bool GCodeWriter::full_gcode_comment = false; | const bool GCodeWriter::full_gcode_comment = true; | ||||||
| const double GCodeWriter::slope_threshold = 3 * PI / 180; | const double GCodeWriter::slope_threshold = 3 * PI / 180; | ||||||
| 
 | 
 | ||||||
| void GCodeWriter::apply_print_config(const PrintConfig &print_config) | void GCodeWriter::apply_print_config(const PrintConfig &print_config) | ||||||
| { | { | ||||||
|     this->config.apply(print_config, true); |     this->config.apply(print_config, true); | ||||||
|     m_single_extruder_multi_material = print_config.single_extruder_multi_material.value; |     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_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) | void GCodeWriter::set_extruders(std::vector<unsigned int> extruder_ids) | ||||||
|  | @ -54,7 +55,8 @@ std::string GCodeWriter::preamble() | ||||||
|         FLAVOR_IS(gcfMarlinFirmware) || |         FLAVOR_IS(gcfMarlinFirmware) || | ||||||
|         FLAVOR_IS(gcfTeacup) || |         FLAVOR_IS(gcfTeacup) || | ||||||
|         FLAVOR_IS(gcfRepetier) || |         FLAVOR_IS(gcfRepetier) || | ||||||
|         FLAVOR_IS(gcfSmoothie)) |         FLAVOR_IS(gcfSmoothie) || | ||||||
|  |         FLAVOR_IS(gcfKlipper)) | ||||||
|     { |     { | ||||||
|         if (RELATIVE_E_AXIS) { |         if (RELATIVE_E_AXIS) { | ||||||
|             gcode << "M83 ; only support relative e\n"; |             gcode << "M83 ; only support relative e\n"; | ||||||
|  | @ -183,6 +185,30 @@ std::string GCodeWriter::set_acceleration(unsigned int acceleration) | ||||||
|     return gcode.str(); |     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) | std::string GCodeWriter::reset_e(bool force) | ||||||
| { | { | ||||||
|     if (FLAVOR_IS(gcfMach3) |     if (FLAVOR_IS(gcfMach3) | ||||||
|  |  | ||||||
|  | @ -11,12 +11,6 @@ | ||||||
| 
 | 
 | ||||||
| namespace Slic3r { | namespace Slic3r { | ||||||
| 
 | 
 | ||||||
| enum class LiftType { |  | ||||||
|     NormalLift, |  | ||||||
|     LazyLift, |  | ||||||
|     SpiralLift |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| class GCodeWriter { | class GCodeWriter { | ||||||
| public: | public: | ||||||
|     GCodeConfig config; |     GCodeConfig config; | ||||||
|  | @ -26,6 +20,7 @@ public: | ||||||
|         multiple_extruders(false), m_extruder(nullptr), |         multiple_extruders(false), m_extruder(nullptr), | ||||||
|         m_single_extruder_multi_material(false), |         m_single_extruder_multi_material(false), | ||||||
|         m_last_acceleration(0), m_max_acceleration(0), |         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_last_bed_temperature(0), */m_last_bed_temperature_reached(true), | ||||||
|         m_lifted(0), |         m_lifted(0), | ||||||
|         m_to_lift(0), |         m_to_lift(0), | ||||||
|  | @ -51,6 +46,7 @@ public: | ||||||
|     // BBS
 |     // BBS
 | ||||||
|     std::string set_bed_temperature(std::vector<int> temps_per_bed, int default_temp, bool wait = false); |     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_acceleration(unsigned int acceleration); | ||||||
|  |     std::string set_jerk_xy(unsigned int jerk); | ||||||
|     std::string reset_e(bool force = false); |     std::string reset_e(bool force = false); | ||||||
|     std::string update_progress(unsigned int num, unsigned int tot, bool allow_100 = false) const; |     std::string update_progress(unsigned int num, unsigned int tot, bool allow_100 = false) const; | ||||||
|     // return false if this extruder was already selected
 |     // 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.
 |     // 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.
 |     // If set to zero, the limit is not in action.
 | ||||||
|     unsigned int    m_max_acceleration; |     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
 |     //BBS
 | ||||||
|     unsigned int    m_last_additional_fan_speed; |     unsigned int    m_last_additional_fan_speed; | ||||||
|     // BBS
 |     // 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()); |                 printf("Processing bridge at layer %zu:\n", this->layer()->id()); | ||||||
|                 #endif |                 #endif | ||||||
|                 //BBS: use 0 as custom angle to enable auto detection all the time
 |                 //BBS: use 0 as custom angle to enable auto detection all the time
 | ||||||
| 				double custom_angle = Geometry::deg2rad(0.0); |                 double custom_angle = Geometry::deg2rad(this->region().config().bridge_angle.value); | ||||||
| 				if (bd.detect_angle(custom_angle)) { |                 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; |                     bridges[idx_last].bridge_angle = bd.angle; | ||||||
|                     if (this->layer()->object()->has_support()) { |                     if (this->layer()->object()->has_support()) { | ||||||
| //                        polygons_append(this->bridged, bd.coverage());
 | //                        polygons_append(this->bridged, bd.coverage());
 | ||||||
|  |  | ||||||
|  | @ -412,6 +412,8 @@ void PerimeterGenerator::process() | ||||||
|     for (const Surface &surface : this->slices->surfaces) { |     for (const Surface &surface : this->slices->surfaces) { | ||||||
|         // detect how many perimeters must be generated for this island
 |         // detect how many perimeters must be generated for this island
 | ||||||
|         int        loop_number = this->config->wall_loops + surface.extra_perimeters - 1;  // 0-indexed loops
 |         int        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
 |         //BBS: set the topmost layer to be one wall
 | ||||||
|         if (loop_number > 0 && config->only_one_wall_top && this->upper_slices == nullptr) |         if (loop_number > 0 && config->only_one_wall_top && this->upper_slices == nullptr) | ||||||
|             loop_number = 0; |             loop_number = 0; | ||||||
|  |  | ||||||
|  | @ -697,8 +697,9 @@ static std::vector<std::string> s_Preset_print_options { | ||||||
| #endif /* HAS_PRESSURE_EQUALIZER */ | #endif /* HAS_PRESSURE_EQUALIZER */ | ||||||
|     "inner_wall_speed", "outer_wall_speed", "small_perimeter_speed", "sparse_infill_speed", "internal_solid_infill_speed", |     "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", |     "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", |     "bridge_speed", "bridge_angle", "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", |     "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", |     "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", |     "raft_layers", "raft_first_layer_density", "raft_first_layer_expansion", "raft_contact_distance", "raft_expansion", | ||||||
|     "support_base_pattern", "support_base_pattern_spacing", "support_style", |     "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", |      "detect_narrow_internal_solid_infill", | ||||||
|      "gcode_add_line_number", "enable_arc_fitting", "infill_combination", "adaptive_layer_height", |      "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", |      "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",  |      "initial_layer_infill_speed", "only_one_wall_top", "only_one_wall_first_layer", | ||||||
|      "timelapse_type" |      "timelapse_type", | ||||||
|  |      //SoftFever
 | ||||||
|  |      "top_solid_infill_flow_ratio","bottom_solid_infill_flow_ratio" | ||||||
|  | 
 | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| static std::vector<std::string> s_Preset_filament_options { | 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_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", |     "filament_flow_ratio", "enable_pressure_advance", "pressure_advance", "filament_density", "filament_cost", "filament_minimal_purge_on_wipe_tower", | ||||||
|     "nozzle_temperature", "nozzle_temperature_initial_layer", |     "chamber_temperature", "nozzle_temperature", "nozzle_temperature_initial_layer", | ||||||
|     // BBS
 |     // 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", |     "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",
 |     // "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 { | static std::vector<std::string> s_Preset_printer_options { | ||||||
|     "printer_technology", |     "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", |     "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", |     "printer_model", "printer_variant", "printable_height", "extruder_clearance_radius", "extruder_clearance_height_to_lid", "extruder_clearance_height_to_rod", | ||||||
|     "default_print_profile", "inherits", |     "default_print_profile", "inherits", | ||||||
|     "silent_mode", |     "silent_mode", | ||||||
|     // BBS
 |     // BBS
 | ||||||
|     "scan_first_layer", "machine_load_filament_time", "machine_unload_filament_time", "machine_pause_gcode", "template_custom_gcode", |     "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
 |     //SoftFever
 | ||||||
|     "host_type", "print_host", "printhost_apikey",  |     "host_type", "print_host", "printhost_apikey",  | ||||||
|     "printhost_cafile","printhost_port","printhost_authorization_type", |     "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 { | 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.
 | // 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) | 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) |         if (this_opt != nullptr && other_opt != nullptr && *this_opt != *other_opt) | ||||||
|         { |         { | ||||||
|             //BBS: add bed_exclude_area
 |             //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,
 |                 // 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.
 |                 // thus the vector is presented to the user as a single input.
 | ||||||
|                 diff.emplace_back(opt_key); |                 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 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 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 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 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; |                 case coPoints:  add_correct_opts_to_diff<ConfigOptionPoints     >(opt_key, diff, config_other, config_this);  break; | ||||||
|                 // BBS
 |                 // BBS
 | ||||||
|  | @ -2741,6 +2763,8 @@ void PhysicalPrinterCollection::load_printers( | ||||||
|     // see https://github.com/prusa3d/PrusaSlicer/issues/732
 |     // see https://github.com/prusa3d/PrusaSlicer/issues/732
 | ||||||
|     boost::filesystem::path dir = boost::filesystem::absolute(boost::filesystem::path(dir_path) / subdir).make_preferred(); |     boost::filesystem::path dir = boost::filesystem::absolute(boost::filesystem::path(dir_path) / subdir).make_preferred(); | ||||||
|     m_dir_path = dir.string(); |     m_dir_path = dir.string(); | ||||||
|  |     if(!boost::filesystem::exists(dir)) | ||||||
|  |         return; | ||||||
|     std::string errors_cummulative; |     std::string errors_cummulative; | ||||||
|     // Store the loaded printers into a new vector, otherwise the binary search for already existing presets would be broken.
 |     // Store the loaded printers into a new vector, otherwise the binary search for already existing presets would be broken.
 | ||||||
|     std::deque<PhysicalPrinter> printers_loaded; |     std::deque<PhysicalPrinter> printers_loaded; | ||||||
|  |  | ||||||
|  | @ -38,9 +38,9 @@ static std::vector<std::string> s_project_options { | ||||||
|     "wipe_tower_y", |     "wipe_tower_y", | ||||||
|     "wipe_tower_rotation_angle", |     "wipe_tower_rotation_angle", | ||||||
|     "curr_bed_type", |     "curr_bed_type", | ||||||
| #if !BBL_RELEASE_TO_PUBLIC | // #if !BBL_RELEASE_TO_PUBLIC
 | ||||||
|     "flush_multiplier", |     "flush_multiplier", | ||||||
| #endif | // #endif
 | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| //BBS: add BBL as default
 | //BBS: add BBL as default
 | ||||||
|  | @ -90,7 +90,7 @@ PresetBundle::PresetBundle() | ||||||
|     for (size_t i = 0; i < 1; ++i) { |     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.
 |         // 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); |         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) {
 |         //if (i == 0) {
 | ||||||
|             preset.config.optptr("default_print_profile", true); |             preset.config.optptr("default_print_profile", true); | ||||||
|             preset.config.option<ConfigOptionStrings>("default_filament_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 PresetBundle::full_config_secure() const | ||||||
| { | { | ||||||
|     DynamicPrintConfig config = this->full_config(); |     DynamicPrintConfig config = this->full_config(); | ||||||
|     //BBS example: config.erase("print_host");
 |     //FIXME legacy, the keys should not be there after conversion to a Physical Printer profile.
 | ||||||
|     return config; |     config.erase("print_host"); | ||||||
|  |     config.erase("printhost_apikey"); | ||||||
|  |     config.erase("printhost_cafile");    return config; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| const std::set<std::string> ignore_settings_list ={ | const std::set<std::string> ignore_settings_list ={ | ||||||
|  | @ -2960,7 +2962,7 @@ std::pair<PresetsConfigSubstitutions, size_t> PresetBundle::load_vendor_configs_ | ||||||
|             //parse error
 |             //parse error
 | ||||||
|             std::string subfile_path = path + "/" + vendor_name + "/" + subfile.second; |             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; |             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()); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  | @ -3435,4 +3437,4 @@ void PresetBundle::set_default_suppressed(bool default_suppressed) | ||||||
|     printers.set_default_suppressed(default_suppressed); |     printers.set_default_suppressed(default_suppressed); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| } // namespace Slic3r
 | } // namespace Slic3r
 | ||||||
|  | @ -68,7 +68,9 @@ bool Print::invalidate_state_by_config_options(const ConfigOptionResolver & /* n | ||||||
|         //BBS: add bed_exclude_area
 |         //BBS: add bed_exclude_area
 | ||||||
|         "bed_exclude_area", |         "bed_exclude_area", | ||||||
|         "before_layer_change_gcode", |         "before_layer_change_gcode", | ||||||
|         "enable_overhang_bridge_fan" |         "enable_pressure_advance", | ||||||
|  |         "pressure_advance", | ||||||
|  |         "enable_overhang_bridge_fan", | ||||||
|         "overhang_fan_speed", |         "overhang_fan_speed", | ||||||
|         "overhang_fan_threshold", |         "overhang_fan_threshold", | ||||||
|         "slow_down_for_layer_cooling", |         "slow_down_for_layer_cooling", | ||||||
|  | @ -90,8 +92,11 @@ bool Print::invalidate_state_by_config_options(const ConfigOptionResolver & /* n | ||||||
|         "filament_diameter", |         "filament_diameter", | ||||||
|         "filament_density", |         "filament_density", | ||||||
|         "filament_cost", |         "filament_cost", | ||||||
|  |         "outer_wall_acceleration", | ||||||
|  |         "inner_wall_acceleration", | ||||||
|         "initial_layer_acceleration", |         "initial_layer_acceleration", | ||||||
|         "top_surface_acceleration", |         "top_surface_acceleration", | ||||||
|  |         "travel_acceleration", | ||||||
|         // BBS
 |         // BBS
 | ||||||
|         "cool_plate_temp_initial_layer", |         "cool_plate_temp_initial_layer", | ||||||
|         "eng_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", |         "filament_start_gcode", | ||||||
|         "change_filament_gcode", |         "change_filament_gcode", | ||||||
|         "wipe", |         "wipe", | ||||||
|  |         "z_lift_type", | ||||||
|         // BBS
 |         // BBS
 | ||||||
|         "wipe_distance", |         "wipe_distance", | ||||||
|         "curr_bed_type", |         "curr_bed_type", | ||||||
|         "nozzle_volume" |         "nozzle_volume", | ||||||
|  |         "chamber_temperature", | ||||||
|  |         "thumbnails" | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     static std::unordered_set<std::string> steps_ignore; |     static std::unordered_set<std::string> steps_ignore; | ||||||
|  | @ -164,6 +172,7 @@ bool Print::invalidate_state_by_config_options(const ConfigOptionResolver & /* n | ||||||
|         } else if ( |         } else if ( | ||||||
|                opt_key == "print_sequence" |                opt_key == "print_sequence" | ||||||
|             || opt_key == "filament_type" |             || opt_key == "filament_type" | ||||||
|  |             || opt_key == "chamber_temperature" | ||||||
|             || opt_key == "nozzle_temperature_initial_layer" |             || opt_key == "nozzle_temperature_initial_layer" | ||||||
|             || opt_key == "filament_minimal_purge_on_wipe_tower" |             || opt_key == "filament_minimal_purge_on_wipe_tower" | ||||||
|             || opt_key == "filament_max_volumetric_speed" |             || opt_key == "filament_max_volumetric_speed" | ||||||
|  |  | ||||||
 SoftFever
						SoftFever