any2orca-profiles 0.1.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/NOTICE +2 -2
  3. package/README.md +10 -5
  4. package/data/index.json +103 -7
  5. package/data/profiles/snapmaker-u1-0.2-0.12std.json +52 -11
  6. package/data/profiles/snapmaker-u1-0.2-hq.json +52 -11
  7. package/data/profiles/snapmaker-u1-0.2-standard.json +52 -11
  8. package/data/profiles/snapmaker-u1-0.4-0.08hq.json +49 -11
  9. package/data/profiles/snapmaker-u1-0.4-0.12fin.json +49 -11
  10. package/data/profiles/snapmaker-u1-0.4-0.16hq.json +49 -11
  11. package/data/profiles/snapmaker-u1-0.4-0.20hq.json +49 -11
  12. package/data/profiles/snapmaker-u1-0.4-0.28ed.json +49 -11
  13. package/data/profiles/snapmaker-u1-0.4-colormix.json +49 -11
  14. package/data/profiles/snapmaker-u1-0.4-draft.json +49 -11
  15. package/data/profiles/snapmaker-u1-0.4-standard.json +51 -13
  16. package/data/profiles/snapmaker-u1-0.6-0.18std.json +51 -16
  17. package/data/profiles/snapmaker-u1-0.6-fine.json +51 -16
  18. package/data/profiles/snapmaker-u1-0.6-standard.json +51 -16
  19. package/data/profiles/snapmaker-u1-0.8-0.32std.json +51 -16
  20. package/data/profiles/snapmaker-u1-0.8-0.40str.json +51 -16
  21. package/data/profiles/snapmaker-u1-0.8-fine.json +51 -16
  22. package/data/profiles/snapmaker-u1-0.8-standard.json +51 -16
  23. package/data/releases/2.4.0/index.json +1288 -0
  24. package/data/releases/2.4.0/profiles/snapmaker-u1-0.2-0.12std.json +1772 -0
  25. package/data/releases/2.4.0/profiles/snapmaker-u1-0.2-hq.json +1772 -0
  26. package/data/releases/2.4.0/profiles/snapmaker-u1-0.2-standard.json +1772 -0
  27. package/data/releases/2.4.0/profiles/snapmaker-u1-0.4-0.08hq.json +1843 -0
  28. package/data/releases/2.4.0/profiles/snapmaker-u1-0.4-0.12fin.json +1843 -0
  29. package/data/releases/2.4.0/profiles/snapmaker-u1-0.4-0.16hq.json +1843 -0
  30. package/data/releases/2.4.0/profiles/snapmaker-u1-0.4-0.20hq.json +1843 -0
  31. package/data/releases/2.4.0/profiles/snapmaker-u1-0.4-0.28ed.json +1843 -0
  32. package/data/releases/2.4.0/profiles/snapmaker-u1-0.4-colormix.json +1843 -0
  33. package/data/releases/2.4.0/profiles/snapmaker-u1-0.4-draft.json +1843 -0
  34. package/data/releases/2.4.0/profiles/snapmaker-u1-0.4-standard.json +1848 -0
  35. package/data/releases/2.4.0/profiles/snapmaker-u1-0.6-0.18std.json +1775 -0
  36. package/data/releases/2.4.0/profiles/snapmaker-u1-0.6-fine.json +1775 -0
  37. package/data/releases/2.4.0/profiles/snapmaker-u1-0.6-standard.json +1775 -0
  38. package/data/releases/2.4.0/profiles/snapmaker-u1-0.8-0.32std.json +1775 -0
  39. package/data/releases/2.4.0/profiles/snapmaker-u1-0.8-0.40str.json +1775 -0
  40. package/data/releases/2.4.0/profiles/snapmaker-u1-0.8-fine.json +1775 -0
  41. package/data/releases/2.4.0/profiles/snapmaker-u1-0.8-standard.json +1775 -0
  42. package/data/sources/prusaslicer/PrusaResearch-2.2.0.json +1921 -0
  43. package/data/sources/prusaslicer/PrusaResearch-2.3.1.json +2068 -0
  44. package/data/sources/prusaslicer/PrusaResearch-2.4.0.json +2201 -0
  45. package/data/sources/prusaslicer/PrusaResearch-2.4.2.json +2202 -0
  46. package/data/sources/prusaslicer/PrusaResearch-2.6.0.json +4885 -0
  47. package/data/sources/prusaslicer/PrusaResearch-2.6.1.json +5788 -0
  48. package/data/sources/prusaslicer/PrusaResearch-2.7.0.json +7406 -0
  49. package/data/sources/prusaslicer/PrusaResearch-2.7.1.json +7440 -0
  50. package/data/sources/prusaslicer/PrusaResearch-2.8.1.json +9447 -0
  51. package/data/sources/prusaslicer/PrusaResearch-2.9.6.json +11670 -0
  52. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,25 @@
1
1
  # any2orca-profiles
2
2
 
3
+ ## 0.3.0
4
+
5
+ ### Output-affecting
6
+
7
+ - **Prusa Research's print presets, for PrusaSlicer conversions.** `data/sources/prusaslicer/PrusaResearch-<version>.json`, one per PrusaSlicer release from 2.2.0 to 2.9.6 (ten), each the bundle PrusaSlicer ships in its own repository at that release tag (AGPL-3.0, like this package) with the release's built-in defaults from its source: the print presets as the bundle has them, own keys and `inherits`, unresolved. Listed in the top `index.json` under `sources`. any2orca 0.7.0 uses them to carry only the print settings a PrusaSlicer project's creator changed, so converted PrusaSlicer files change; nothing else in the catalog changes.
8
+
9
+ ## 0.2.0
10
+
11
+ ### Output-affecting
12
+
13
+ - **Snapmaker Orca 2.4.1's U1 profiles are added and are the default.** Generated from Snapmaker's v2.4.1 profiles and checked against stock projects saved in 2.4.1, so files converted with the default carry 2.4.1's stock values, its 16 new settings and its version line. The same 18 profiles as 2.4.0; none renamed or retired. Filament settings no filament preset sets, but which Snapmaker Orca writes once per filament (2.4.1's prime tower interface settings), are in the filament template, so a project carries one value per filament.
14
+
15
+ ### Profiles
16
+
17
+ - **Snapmaker Orca 2.4.0's profiles stay available** in `data/releases/2.4.0/`, unchanged.
18
+
19
+ ### Features
20
+
21
+ - **One folder per Snapmaker Orca release.** The newest is at the top of `data/`, so a copy made for an older any2orca keeps working and gets it; each older release is in `data/releases/<version>/`, laid out the same way. The top `index.json` lists them all in a new `releases` field (`version`, `application`, `path`).
22
+
3
23
  ## 0.1.0
4
24
 
5
25
  ### Profiles
package/NOTICE CHANGED
@@ -2,11 +2,11 @@ any2orca-profiles: third-party data attribution
2
2
 
3
3
  This is not legal advice; see LICENSE for the terms that apply to this package.
4
4
 
5
- The profile catalog (templates/ and the generated data/) is derived from preset
5
+ The profile catalog (releases/ and the generated data/) is derived from preset
6
6
  data published by each supported printer vendor's own OrcaSlicer-family fork,
7
7
  today Snapmaker Orca (github.com/Snapmaker/OrcaSlicer), which is
8
8
  AGPL-3.0-or-later. That provenance is why this package is AGPL-3.0-or-later.
9
- data/index.json names the upstream release the catalog tracks.
9
+ data/index.json names the upstream releases the catalog holds.
10
10
 
11
11
  "Snapmaker," "OrcaSlicer," and other printer and slicer names used in this
12
12
  package are trademarks of their respective owners. any2orca is an independent
package/README.md CHANGED
@@ -1,10 +1,13 @@
1
1
  # any2orca-profiles
2
2
 
3
- The printer profile catalog for [any2orca](https://www.npmjs.com/package/any2orca): data only, no code. It holds the Snapmaker U1 profiles, tracking Snapmaker Orca's own presets (`data/index.json` says which release).
3
+ The printer profile catalog for [any2orca](https://www.npmjs.com/package/any2orca): data only, no code. It holds the Snapmaker U1 profiles, Snapmaker Orca's own presets, for each Snapmaker Orca release it supports (`data/index.json` lists them). The newest release is at the top of `data/` and is the default; each older one is in a folder of its own, laid out the same way.
4
4
 
5
5
  ```
6
- data/index.json versions, printers, profiles, retired profile ids, filament names
7
- data/profiles/<id>.json one self-contained file per profile
6
+ data/index.json the newest release: versions, printers, profiles, retired ids, filament names, and every release held
7
+ data/profiles/<id>.json one self-contained file per profile
8
+ data/releases/<version>/index.json an older release's index
9
+ data/releases/<version>/profiles/ its profiles
10
+ data/sources/prusaslicer/<Vendor>-<version>.json a PrusaSlicer vendor's print presets as that PrusaSlicer release shipped them (own keys and `inherits`, unresolved) and the release's built-in defaults, for telling what a PrusaSlicer project's creator changed
8
11
  ```
9
12
 
10
13
  `any2orca` installs this package and its CLI uses it automatically. In a browser, copy `data/` into your site's static files and point `fetchProfileSource()` or the Web Worker's `profilesUrl` at it.
@@ -25,6 +28,8 @@ Both files are JSON with `"schema": 1`, and `any2orca` checks them when it loads
25
28
  | `profiles` | One entry per profile: `id`, `printerId`, `displayName`, `nozzleDiameter`, `layerHeight`, `autoSelectable` (false for a profile only chosen by hand) and `highFlowSpeeds`. |
26
29
  | `retired` | Old profile ids that still convert: `id`, the `successorId` used instead, and the old `displayName`. |
27
30
  | `filamentNames` | The filament presets Snapmaker installs per nozzle size, for the Snapmaker and Generic naming options. |
31
+ | `sources` | Only in the top `index.json`, optional: `prusaslicer`, the PrusaSlicer vendor bundles the package holds, one per PrusaSlicer release (`vendor`, `name`, `path`, `slicerVersion`, `configVersion`, `slicerTag`). Each is the bundle PrusaSlicer ships in its own repository at that release tag, AGPL-3.0 like this package, with the release's built-in defaults from its source. |
32
+ | `releases` | Only in the top `index.json`: every Snapmaker Orca release the package holds, newest first. Each has `version`, `application` and `path`, the folder it's in (`.` for the top one, `releases/<version>` for the others). |
28
33
 
29
34
  **`data/profiles/<id>.json`**: `id` and `displayName`; `printer` (its `id`, `printableArea`, `extruderClearanceRadius`, `highFlowSupported` and the stock `machineSettings`); `baselineProjectSettings`, the profile's stock print settings; `filamentShape`, the layout filament settings are written in; and `highFlowOverrides`, the speeds the profile uses with high-flow hotends (empty when it has none).
30
35
 
@@ -32,11 +37,11 @@ To try your own profiles, edit a copy of these files and point `--profiles-dir`,
32
37
 
33
38
  ## Where the data comes from
34
39
 
35
- The profiles are Snapmaker's own stock U1 presets at the Snapmaker Orca release named in `data/index.json` (`source`: repository, release tag and commit). `data/index.json` also lists the filament presets Snapmaker installs for each nozzle size, which the Snapmaker and Generic filament naming options use, so they only ever write a preset Snapmaker Orca has. The maintainers update the catalog when Snapmaker publishes a new release.
40
+ The profiles are Snapmaker's own stock U1 presets at each Snapmaker Orca release the catalog holds (each index's `source`: repository, release tag and commit). `data/index.json` also lists the filament presets Snapmaker installs for each nozzle size, which the Snapmaker and Generic filament naming options use, so they only ever write a preset Snapmaker Orca has. The maintainers add a release when Snapmaker publishes one; it becomes the default, and the earlier ones stay available.
36
41
 
37
42
  ## Changing the data
38
43
 
39
- `data/` is built from `templates/` (the settings files) and `catalog.json` (which templates make up which profile, plus retired ids). To change a profile, edit those and rebuild (`high_flow.json` and `filament_names.json` are generated by the maintainers from Snapmaker's release; open an issue for those instead):
44
+ `data/` is built from `releases/<version>/`, one folder per Snapmaker Orca release, each with its `templates/` (the settings files) and `catalog.json` (which templates make up which profile, plus retired ids). To change a profile, edit those and rebuild (`high_flow.json` and `filament_names.json` are generated by the maintainers from Snapmaker's release; open an issue for those instead):
40
45
 
41
46
  ```sh
42
47
  npm run generate -w any2orca-profiles # rebuild data/
package/data/index.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "schema": 1,
3
- "dataVersion": "0.1.0",
3
+ "dataVersion": "0.3.0",
4
4
  "slicer": {
5
5
  "name": "Snapmaker Orca",
6
- "version": "2.4.0",
7
- "application": "Snapmaker_Orca-2.4.0"
6
+ "version": "2.4.1",
7
+ "application": "Snapmaker_Orca-2.4.1"
8
8
  },
9
9
  "defaultProfileId": "snapmaker-u1-0.4-standard",
10
10
  "printers": [
@@ -291,14 +291,14 @@
291
291
  ],
292
292
  "source": {
293
293
  "repository": "Snapmaker/OrcaSlicer",
294
- "tag": "v2.4.0",
295
- "commit": "b1831e5dcb464172de33783142425aafda834fbc"
294
+ "tag": "v2.4.1",
295
+ "commit": "bac6fd5c1e1c23ddf057cf6471ba4ed7ed621c4c"
296
296
  },
297
297
  "filamentNames": {
298
298
  "profileSet": {
299
299
  "repository": "Snapmaker/OrcaSlicer",
300
- "version": "02.03.03.03",
301
- "commit": "b1831e5dcb464172de33783142425aafda834fbc"
300
+ "version": "02.03.04.04",
301
+ "commit": "bac6fd5c1e1c23ddf057cf6471ba4ed7ed621c4c"
302
302
  },
303
303
  "materialAliases": {
304
304
  "PETG-HF": "PETG",
@@ -1284,5 +1284,101 @@
1284
1284
  }
1285
1285
  }
1286
1286
  }
1287
+ },
1288
+ "releases": [
1289
+ {
1290
+ "version": "2.4.1",
1291
+ "application": "Snapmaker_Orca-2.4.1",
1292
+ "path": "."
1293
+ },
1294
+ {
1295
+ "version": "2.4.0",
1296
+ "application": "Snapmaker_Orca-2.4.0",
1297
+ "path": "releases/2.4.0"
1298
+ }
1299
+ ],
1300
+ "sources": {
1301
+ "prusaslicer": [
1302
+ {
1303
+ "vendor": "PrusaResearch",
1304
+ "name": "Prusa Research",
1305
+ "path": "sources/prusaslicer/PrusaResearch-2.2.0.json",
1306
+ "slicerVersion": "2.2.0",
1307
+ "configVersion": "1.1.2",
1308
+ "slicerTag": "version_2.2.0"
1309
+ },
1310
+ {
1311
+ "vendor": "PrusaResearch",
1312
+ "name": "Prusa Research",
1313
+ "path": "sources/prusaslicer/PrusaResearch-2.3.1.json",
1314
+ "slicerVersion": "2.3.1",
1315
+ "configVersion": "1.2.4",
1316
+ "slicerTag": "version_2.3.1"
1317
+ },
1318
+ {
1319
+ "vendor": "PrusaResearch",
1320
+ "name": "Prusa Research",
1321
+ "path": "sources/prusaslicer/PrusaResearch-2.4.0.json",
1322
+ "slicerVersion": "2.4.0",
1323
+ "configVersion": "1.4.0",
1324
+ "slicerTag": "version_2.4.0"
1325
+ },
1326
+ {
1327
+ "vendor": "PrusaResearch",
1328
+ "name": "Prusa Research",
1329
+ "path": "sources/prusaslicer/PrusaResearch-2.4.2.json",
1330
+ "slicerVersion": "2.4.2",
1331
+ "configVersion": "1.4.4",
1332
+ "slicerTag": "version_2.4.2"
1333
+ },
1334
+ {
1335
+ "vendor": "PrusaResearch",
1336
+ "name": "Prusa Research",
1337
+ "path": "sources/prusaslicer/PrusaResearch-2.6.0.json",
1338
+ "slicerVersion": "2.6.0",
1339
+ "configVersion": "1.9.1",
1340
+ "slicerTag": "version_2.6.0"
1341
+ },
1342
+ {
1343
+ "vendor": "PrusaResearch",
1344
+ "name": "Prusa Research",
1345
+ "path": "sources/prusaslicer/PrusaResearch-2.6.1.json",
1346
+ "slicerVersion": "2.6.1",
1347
+ "configVersion": "1.9.8",
1348
+ "slicerTag": "version_2.6.1"
1349
+ },
1350
+ {
1351
+ "vendor": "PrusaResearch",
1352
+ "name": "Prusa Research",
1353
+ "path": "sources/prusaslicer/PrusaResearch-2.7.0.json",
1354
+ "slicerVersion": "2.7.0",
1355
+ "configVersion": "1.11.2",
1356
+ "slicerTag": "version_2.7.0"
1357
+ },
1358
+ {
1359
+ "vendor": "PrusaResearch",
1360
+ "name": "Prusa Research",
1361
+ "path": "sources/prusaslicer/PrusaResearch-2.7.1.json",
1362
+ "slicerVersion": "2.7.1",
1363
+ "configVersion": "1.11.7",
1364
+ "slicerTag": "version_2.7.1"
1365
+ },
1366
+ {
1367
+ "vendor": "PrusaResearch",
1368
+ "name": "Prusa Research",
1369
+ "path": "sources/prusaslicer/PrusaResearch-2.8.1.json",
1370
+ "slicerVersion": "2.8.1",
1371
+ "configVersion": "2.1.0",
1372
+ "slicerTag": "version_2.8.1"
1373
+ },
1374
+ {
1375
+ "vendor": "PrusaResearch",
1376
+ "name": "Prusa Research",
1377
+ "path": "sources/prusaslicer/PrusaResearch-2.9.6.json",
1378
+ "slicerVersion": "2.9.6",
1379
+ "configVersion": "2.4.14",
1380
+ "slicerTag": "version_2.9.6"
1381
+ }
1382
+ ]
1287
1383
  }
1288
1384
  }
@@ -178,7 +178,7 @@
178
178
  "30"
179
179
  ],
180
180
  "single_extruder_multi_material": "0",
181
- "change_filament_gcode": ";===== date: 20251213=====================\n; Change Tool[previous_extruder] -> Tool[next_extruder] (layer [layer_num])\n{\nlocal max_speed_toolchange = 350.0;\nlocal wait_for_extruder_temp = true;\nposition[2] = position[2] + 2.0;\nlocal speed_toolchange = max_speed_toolchange;\nif travel_speed < max_speed_toolchange then\n speed_toolchange = travel_speed;\nendif\n\"G91\nG1 Z1.5 F1800\nG90\n\";\n\"G1 F\" + (speed_toolchange * 60) + \"\n\";\nif wait_for_extruder_temp and not((layer_num < 0) and (next_extruder == initial_tool)) then\n \"\n\";\n \"; \" + layer_num + \"\n\";\n if layer_num == 0 then\n \"M109 S\" + first_layer_temperature[next_extruder] + \" T\" + next_extruder + \"\n\";\n else\n \"M109 S\" + temperature[next_extruder] + \" T\" + next_extruder + \"\n\";\n endif\nendif\n\"M400\" + \"\n\";\n\"T\" + next_extruder + \"\n\";\nif filament_type[next_extruder] == \"PVA\" then\n\"SET_VELOCITY_LIMIT ACCEL=3000\n\";\nelse\nendif\nif previous_extruder != next_extruder and initial_extruder != next_extruder then\n\"SM_PRINT_PREEXTRUDE_FILAMENT INDEX=\" + next_extruder + \"\n\";\nendif\n\"G90\n\";\n}\n",
181
+ "change_filament_gcode": ";===== date: 20261003 =====================\n; Change Tool[previous_extruder] -> Tool[next_extruder] (layer [layer_num])\n; max_layer_z [max_layer_z]\n; max_print_height [max_print_height]\n; print_sequence [print_sequence]\n\n{\nlocal move_z = 1.5;\nlocal max_speed_toolchange = 350.0;\nlocal wait_for_extruder_temp = true;\nposition[2] = position[2] + 2.0;\nlocal speed_toolchange = max_speed_toolchange;\n\nif travel_speed < max_speed_toolchange then\n speed_toolchange = travel_speed;\nendif\n\nif print_sequence == \"by object\" then\n\n move_z = max_print_height;\n if max_layer_z < ((max_print_height - z_offset) - 2) then\n move_z = z_offset + min(((max_layer_z - z_offset) + 2), max_print_height);\n endif\n\n\"G90\nG1 Z\" + move_z + \" F600\n\";\n\nelse\n\n\"G91\nG1 Z\" + move_z + \" F600\nG90\n\";\n\nendif\n\"G1 F\" + (speed_toolchange * 60) + \"\n\";\nif wait_for_extruder_temp and not((layer_num < 0) and (next_extruder == initial_tool)) then\n \"\n\";\n \"; \" + layer_num + \"\n\";\n if layer_num == 0 then\n \"M104 S\" + first_layer_temperature[next_extruder] + \" T\" + next_extruder + \"\n\";\n else\n \"M104 S\" + temperature[next_extruder] + \" T\" + next_extruder + \"\n\";\n endif\nendif\n\"M400\" + \"\n\";\n\"T\" + next_extruder + \"\n\";\nif filament_type[next_extruder] == \"PVA\" then\n\"SET_VELOCITY_LIMIT ACCEL=3000\n\";\nelse\nendif\nif previous_extruder != next_extruder and initial_extruder != next_extruder then\n\"SM_PRINT_PREEXTRUDE_FILAMENT INDEX=\" + next_extruder + \"\n\";\nendif\n\"G90\n\";\n}",
182
182
  "wipe": [
183
183
  "1",
184
184
  "1",
@@ -186,8 +186,8 @@
186
186
  "1"
187
187
  ],
188
188
  "default_print_profile": "0.10 Standard @Snapmaker U1 (0.2 nozzle)",
189
- "machine_start_gcode": ";===== date: 20260128 =====================\n\nPRINT_START\nDEFECT_DETECTION_START\nSET_PRINT_STATS_INFO TOTAL_LAYER={total_layer_count} CURRENT_LAYER=0\nTIMELAPSE_START\nM140 S{bed_temperature_initial_layer_single}\nM104 T{initial_extruder} S140\nM204 S10000\n\n{if chamber_cooling_mode==0}\n; 保温\nSET_PURIFIER_MODE MODE=3 DESIRE_TEMP=45 FAN_SPEED=0.6 DELAY_OFF=600\n{elsif chamber_cooling_mode==2}\n; 强冷\nSET_PURIFIER_MODE MODE=1 DESIRE_TEMP=42 ALARM_TEMP=45 FAN_SPEED=0.6 DELAY_OFF=0\n{else}\n; 弱冷\nSET_PURIFIER_MODE MODE=3 DESIRE_TEMP=0 FAN_SPEED=0.6 DELAY_OFF=600\n{endif}\n\nG28 X Y\nDEFECT_DETECT_NOODLE_FIRST\n;===== 床面异物检测 ========\nT{initial_extruder}\nG90\nDEFECT_DETECTION_DETECT_BED\n;===== 取放头检测 =================\nSM_PRINT_CHECK_SWITCH_EXTRUDER\n\n;===== 自动进料 & 挤出流量 & 预挤出 ======================\nSM_PRINT_EXTRUDER_PREHEAT EXTRUDER=1 TEMP=140\nSM_PRINT_AUTO_FEED EXTRUDER=0\nSM_PRINT_FLOW_CALIBRATE EXTRUDER=0\nSM_PRINT_EXTRUDER_PREHEAT EXTRUDER=2 TEMP=140\nSM_PRINT_AUTO_FEED EXTRUDER=1\nSM_PRINT_FLOW_CALIBRATE EXTRUDER=1\nSM_PRINT_EXTRUDER_PREHEAT EXTRUDER=3 TEMP=140\nSM_PRINT_AUTO_FEED EXTRUDER=2\nSM_PRINT_FLOW_CALIBRATE EXTRUDER=2\nSM_PRINT_AUTO_FEED EXTRUDER=3\nSM_PRINT_FLOW_CALIBRATE EXTRUDER=3\nM104 S0 T0 A0\nM104 S0 T1 A0\nM104 S0 T2 A0\nM104 S0 T3 A0\nM104 T{initial_extruder} S{nozzle_temperature[initial_extruder] - 90}\n\n;===== 粗回零 =================\nT{initial_extruder}\nM106 S255\nM106 P2 S0\nMOVE_TO_DISCARD_FILAMENT_POSITION\nM109 T{initial_extruder} S{nozzle_temperature[initial_extruder] - 90}\nROUGHLY_CLEAN_NOZZLE_WITH_DISCARD\nMOVE_TO_XY_IDLE_POSITION_EXTRUDER\nG28 Z I140 J140\n\n;===== 检测钢板 =================\nDETECT_BED_PLATE\n\n;===== 深度清洁喷嘴 =================\nG90\nG0 Z5 F10000\nMOVE_TO_DISCARD_FILAMENT_POSITION\nM109 S{nozzle_temperature[initial_extruder] - 50}\nROUGHLY_CLEAN_NOZZLE\nMOVE_TO_XY_IDLE_POSITION_EXTRUDER\nFINELY_CLEAN_NOZZLE_STAGE_1\nM104 S{nozzle_temperature[initial_extruder] - 90}\nG0 Z5 F10000\nMOVE_TO_DISCARD_FILAMENT_POSITION\nROUGHLY_CLEAN_NOZZLE\nMOVE_TO_XY_IDLE_POSITION_EXTRUDER\nFINELY_CLEAN_NOZZLE_STAGE_2\n\n;===== 精回零 =================\nM106 S255\nM109 S{nozzle_temperature[initial_extruder] - 90}\nM190 S{bed_temperature_initial_layer_single}\nM107 P2\nG90\nG0 Z5 F10000\nWAIT_CHAMBER_TEMP TIMEOUT=180\n{if curr_bed_type==\"High Temp Plate\"} \nG28 Z Z_OFFSET -0.07 \n{elsif curr_bed_type==\"Graphic Effect Plate\"} \nG28 Z Z_OFFSET -0.07 \n{else} \nG28 Z \n{endif} \n\n\n;===== 热床调平 =================\n{if curr_bed_type==\"High Temp Plate\"} \nBED_MESH_CALIBRATE PROBE_COUNT=11,11 Z_OFFSET=-0.07 \n{elsif curr_bed_type==\"Graphic Effect Plate\"} \nBED_MESH_CALIBRATE PROBE_COUNT=11,11 Z_OFFSET=-0.07 \n{else} \nBED_MESH_CALIBRATE PROBE_COUNT=11,11 \n{endif} \n\n\n;===== 画起始线 =================\nG90\nG1 Z1.5\nG0 X85 Y1 Z2 F18000\nM109 S{nozzle_temperature_initial_layer[initial_extruder]}\nG1 Z0.2\nM83\nG1 X185 E15 F360\nG1 Z1.5\n\nG90\nM106 S0",
190
- "machine_end_gcode": "{if print_sequence == \"by object\"}\nG91\nG1 X2 Y2 Z1 F24000\nG90\nG1 Z{max_layer_z+2} F600\n{endif}\nPRINT_END\nTIMELAPSE_STOP",
189
+ "machine_start_gcode": ";===== date: 20260128 =====================\n\nPRINT_START\nDEFECT_DETECTION_START\nSET_PRINT_STATS_INFO TOTAL_LAYER={total_layer_count} CURRENT_LAYER=0\nTIMELAPSE_START\nM140 S{bed_temperature_initial_layer_single}\nM104 T{initial_extruder} S140\nM204 S10000\n\n{if chamber_cooling_mode==0}\n; 保温\nSET_PURIFIER_MODE MODE=3 DESIRE_TEMP=45 FAN_SPEED=0.6 DELAY_OFF=600\n{elsif chamber_cooling_mode==2}\n; 强冷\nSET_PURIFIER_MODE MODE=1 DESIRE_TEMP=42 ALARM_TEMP=48 FAN_SPEED=0.6 DELAY_OFF=0\n{else}\n; 弱冷\nSET_PURIFIER_MODE MODE=1 DESIRE_TEMP=45 ALARM_TEMP=51 FAN_SPEED=0.6 DELAY_OFF=0\n{endif}\n\nG28 X Y\nDEFECT_DETECT_NOODLE_FIRST\n;===== 床面异物检测 ========\nT{initial_extruder}\nG90\nDEFECT_DETECTION_DETECT_BED\n;===== 取放头检测 =================\nSM_PRINT_CHECK_SWITCH_EXTRUDER\n\n;===== 自动进料 & 挤出流量 & 预挤出 ======================\nSM_PRINT_EXTRUDER_PREHEAT EXTRUDER=1 TEMP=140\nSM_PRINT_AUTO_FEED EXTRUDER=0\nSM_PRINT_FLOW_CALIBRATE EXTRUDER=0\nSM_PRINT_EXTRUDER_PREHEAT EXTRUDER=2 TEMP=140\nSM_PRINT_AUTO_FEED EXTRUDER=1\nSM_PRINT_FLOW_CALIBRATE EXTRUDER=1\nSM_PRINT_EXTRUDER_PREHEAT EXTRUDER=3 TEMP=140\nSM_PRINT_AUTO_FEED EXTRUDER=2\nSM_PRINT_FLOW_CALIBRATE EXTRUDER=2\nSM_PRINT_AUTO_FEED EXTRUDER=3\nSM_PRINT_FLOW_CALIBRATE EXTRUDER=3\nM104 S0 T0 A0\nM104 S0 T1 A0\nM104 S0 T2 A0\nM104 S0 T3 A0\n\n;==== 预挤出耗材 =====\nM104 T{initial_extruder} S{nozzle_temperature[initial_extruder]}\nT{initial_extruder}\nM109 T{initial_extruder} S{nozzle_temperature[initial_extruder]}\nSM_PRINT_PREEXTRUDE_FILAMENT INDEX={initial_extruder}\nM104 T{initial_extruder} S{nozzle_temperature[initial_extruder] - 90}\n\n;===== 粗回零 =================\nT{initial_extruder}\nM106 S255\nM106 P2 S0\nMOVE_TO_DISCARD_FILAMENT_POSITION\nM109 T{initial_extruder} S{nozzle_temperature[initial_extruder] - 90}\nROUGHLY_CLEAN_NOZZLE_WITH_DISCARD\nMOVE_TO_XY_IDLE_POSITION_EXTRUDER\nM107\nG28 Z I140 J140\n\n;===== 检测钢板 =================\nM107\nDETECT_BED_PLATE\n\n;===== 深度清洁喷嘴 =================\nM106 S255\nG90\nG0 Z5 F10000\nMOVE_TO_DISCARD_FILAMENT_POSITION\nM109 S{nozzle_temperature[initial_extruder] - 50}\nROUGHLY_CLEAN_NOZZLE\nMOVE_TO_XY_IDLE_POSITION_EXTRUDER\nFINELY_CLEAN_NOZZLE_STAGE_1\nM104 S{nozzle_temperature[initial_extruder] - 90}\nG0 Z5 F10000\nMOVE_TO_DISCARD_FILAMENT_POSITION\nROUGHLY_CLEAN_NOZZLE\nMOVE_TO_XY_IDLE_POSITION_EXTRUDER\nFINELY_CLEAN_NOZZLE_STAGE_2\n\n;===== 精回零 =================\nM106 S255\nM109 S{nozzle_temperature[initial_extruder] - 90}\nM190 S{bed_temperature_initial_layer_single}\nM107 P2\nG90\nG0 Z5 F10000\nWAIT_CHAMBER_TEMP TIMEOUT=180\nM107\n{if curr_bed_type==\"High Temp Plate\"} \nG28 Z Z_OFFSET -0.07 \n{elsif curr_bed_type==\"Graphic Effect Plate\"} \nG28 Z Z_OFFSET -0.07 \n{else} \nG28 Z \n{endif} \n\n\n;===== 热床调平 =================\nM107\n{if curr_bed_type==\"Smooth PEI Plate\"} \nBED_MESH_CALIBRATE PROBE_COUNT=11,11 Z_OFFSET=-0.07 \n{elsif curr_bed_type==\"Graphic Effect Plate\"} \nBED_MESH_CALIBRATE PROBE_COUNT=11,11 Z_OFFSET=-0.07 \n{else} \nBED_MESH_CALIBRATE PROBE_COUNT=11,11 \n{endif} \n\n\n;===== 画起始线 =================\nG90\nG1 Z1.5\nG0 X85 Y1 Z2 F18000\nM109 S{nozzle_temperature_initial_layer[initial_extruder]}\nG1 Z0.2\nM83\nG1 X185 E15 F360\nG1 Z1.5\n\nG90\nM106 S0",
190
+ "machine_end_gcode": ";===== date: 20261003 =====================\n; layer [layer_num]\n; max_layer_z [max_layer_z]\n; print_sequence [print_sequence]\n\n{if print_sequence == \"by object\"}\n{\nlocal move_z = 0.0;\nmove_z = max_print_height;\n\nif max_layer_z < ((max_print_height - z_offset) - 2) then\n move_z = z_offset + min(((max_layer_z - z_offset) + 2), max_print_height);\nendif\n}\n\nG91\nG1 X2 Y2 Z1 F24000\nG90\nG1 Z{move_z} F600\n{endif}\n\nPRINT_END\nTIMELAPSE_STOP",
191
191
  "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]\nSET_PRINT_STATS_INFO TOTAL_LAYER={total_layer_count} CURRENT_LAYER={layer_num+1}",
192
192
  "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\nTIMELAPSE_TAKE_FRAME\nDEFECT_DETECTION_DETECT",
193
193
  "machine_pause_gcode": "M600",
@@ -327,6 +327,7 @@
327
327
  "bed_mesh_probe_distance": "50,50",
328
328
  "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\nTIMELAPSE_TAKE_FRAME\nDEFECT_DETECTION_DETECT",
329
329
  "best_object_pos": "0.5,0.5",
330
+ "bottom_color_penetration_layers": "4",
330
331
  "bottom_shell_layers": "5",
331
332
  "bottom_shell_thickness": "0",
332
333
  "bottom_solid_infill_flow_ratio": "1",
@@ -352,7 +353,7 @@
352
353
  "0"
353
354
  ],
354
355
  "change_extrusion_role_gcode": "",
355
- "change_filament_gcode": ";===== date: 20251213=====================\n; Change Tool[previous_extruder] -> Tool[next_extruder] (layer [layer_num])\n{\nlocal max_speed_toolchange = 350.0;\nlocal wait_for_extruder_temp = true;\nposition[2] = position[2] + 2.0;\nlocal speed_toolchange = max_speed_toolchange;\nif travel_speed < max_speed_toolchange then\n speed_toolchange = travel_speed;\nendif\n\"G91\nG1 Z1.5 F1800\nG90\n\";\n\"G1 F\" + (speed_toolchange * 60) + \"\n\";\nif wait_for_extruder_temp and not((layer_num < 0) and (next_extruder == initial_tool)) then\n \"\n\";\n \"; \" + layer_num + \"\n\";\n if layer_num == 0 then\n \"M109 S\" + first_layer_temperature[next_extruder] + \" T\" + next_extruder + \"\n\";\n else\n \"M109 S\" + temperature[next_extruder] + \" T\" + next_extruder + \"\n\";\n endif\nendif\n\"M400\" + \"\n\";\n\"T\" + next_extruder + \"\n\";\nif filament_type[next_extruder] == \"PVA\" then\n\"SET_VELOCITY_LIMIT ACCEL=3000\n\";\nelse\nendif\nif previous_extruder != next_extruder and initial_extruder != next_extruder then\n\"SM_PRINT_PREEXTRUDE_FILAMENT INDEX=\" + next_extruder + \"\n\";\nendif\n\"G90\n\";\n}\n",
356
+ "change_filament_gcode": ";===== date: 20261003 =====================\n; Change Tool[previous_extruder] -> Tool[next_extruder] (layer [layer_num])\n; max_layer_z [max_layer_z]\n; max_print_height [max_print_height]\n; print_sequence [print_sequence]\n\n{\nlocal move_z = 1.5;\nlocal max_speed_toolchange = 350.0;\nlocal wait_for_extruder_temp = true;\nposition[2] = position[2] + 2.0;\nlocal speed_toolchange = max_speed_toolchange;\n\nif travel_speed < max_speed_toolchange then\n speed_toolchange = travel_speed;\nendif\n\nif print_sequence == \"by object\" then\n\n move_z = max_print_height;\n if max_layer_z < ((max_print_height - z_offset) - 2) then\n move_z = z_offset + min(((max_layer_z - z_offset) + 2), max_print_height);\n endif\n\n\"G90\nG1 Z\" + move_z + \" F600\n\";\n\nelse\n\n\"G91\nG1 Z\" + move_z + \" F600\nG90\n\";\n\nendif\n\"G1 F\" + (speed_toolchange * 60) + \"\n\";\nif wait_for_extruder_temp and not((layer_num < 0) and (next_extruder == initial_tool)) then\n \"\n\";\n \"; \" + layer_num + \"\n\";\n if layer_num == 0 then\n \"M104 S\" + first_layer_temperature[next_extruder] + \" T\" + next_extruder + \"\n\";\n else\n \"M104 S\" + temperature[next_extruder] + \" T\" + next_extruder + \"\n\";\n endif\nendif\n\"M400\" + \"\n\";\n\"T\" + next_extruder + \"\n\";\nif filament_type[next_extruder] == \"PVA\" then\n\"SET_VELOCITY_LIMIT ACCEL=3000\n\";\nelse\nendif\nif previous_extruder != next_extruder and initial_extruder != next_extruder then\n\"SM_PRINT_PREEXTRUDE_FILAMENT INDEX=\" + next_extruder + \"\n\";\nendif\n\"G90\n\";\n}",
356
357
  "close_fan_the_first_x_layers": [
357
358
  "1"
358
359
  ],
@@ -430,6 +431,8 @@
430
431
  ],
431
432
  "enable_prime_tower": "1",
432
433
  "enable_support": "0",
434
+ "enable_tower_interface_cooldown_during_tower": "0",
435
+ "enable_tower_interface_features": "0",
433
436
  "enforce_support_layers": "0",
434
437
  "eng_plate_temp": [
435
438
  "45"
@@ -472,6 +475,9 @@
472
475
  ],
473
476
  "fan_speedup_overhangs": "1",
474
477
  "fan_speedup_time": "0",
478
+ "filament_adhesiveness_category": [
479
+ "100"
480
+ ],
475
481
  "filament_colour": [
476
482
  "#F2754E"
477
483
  ],
@@ -614,6 +620,15 @@
614
620
  "filament_toolchange_delay": [
615
621
  "0"
616
622
  ],
623
+ "filament_tower_interface_pre_extrusion_dist": [
624
+ "10"
625
+ ],
626
+ "filament_tower_interface_pre_extrusion_length": [
627
+ "0"
628
+ ],
629
+ "filament_tower_interface_print_temp": [
630
+ "-1"
631
+ ],
617
632
  "filament_tower_ironing_area": [
618
633
  "4"
619
634
  ],
@@ -630,6 +645,9 @@
630
645
  "snapmaker"
631
646
  ],
632
647
  "filament_volume_type": [
648
+ "standard",
649
+ "standard",
650
+ "standard",
633
651
  "standard"
634
652
  ],
635
653
  "filament_wipe": [
@@ -644,12 +662,14 @@
644
662
  "filament_z_hop_types": [
645
663
  "Slope Lift"
646
664
  ],
647
- "filename_format": "{input_filename_base}_{filament_type[0]}_{print_time}.gcode",
665
+ "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode",
648
666
  "fill_multiline": "1",
649
667
  "filter_out_gap_fill": "0",
650
668
  "first_layer_print_sequence": [
651
669
  "0"
652
670
  ],
671
+ "first_layer_travel_acceleration": "100%",
672
+ "first_layer_travel_jerk": "100%",
653
673
  "flush_into_infill": "0",
654
674
  "flush_into_objects": "0",
655
675
  "flush_into_support": "1",
@@ -814,7 +834,7 @@
814
834
  "0",
815
835
  "0"
816
836
  ],
817
- "machine_end_gcode": "{if print_sequence == \"by object\"}\nG91\nG1 X2 Y2 Z1 F24000\nG90\nG1 Z{max_layer_z+2} F600\n{endif}\nPRINT_END\nTIMELAPSE_STOP",
837
+ "machine_end_gcode": ";===== date: 20261003 =====================\n; layer [layer_num]\n; max_layer_z [max_layer_z]\n; print_sequence [print_sequence]\n\n{if print_sequence == \"by object\"}\n{\nlocal move_z = 0.0;\nmove_z = max_print_height;\n\nif max_layer_z < ((max_print_height - z_offset) - 2) then\n move_z = z_offset + min(((max_layer_z - z_offset) + 2), max_print_height);\nendif\n}\n\nG91\nG1 X2 Y2 Z1 F24000\nG90\nG1 Z{move_z} F600\n{endif}\n\nPRINT_END\nTIMELAPSE_STOP",
818
838
  "machine_load_filament_time": "0",
819
839
  "machine_max_acceleration_e": [
820
840
  "5000",
@@ -889,14 +909,14 @@
889
909
  "0"
890
910
  ],
891
911
  "machine_pause_gcode": "M600",
892
- "machine_start_gcode": ";===== date: 20260128 =====================\n\nPRINT_START\nDEFECT_DETECTION_START\nSET_PRINT_STATS_INFO TOTAL_LAYER={total_layer_count} CURRENT_LAYER=0\nTIMELAPSE_START\nM140 S{bed_temperature_initial_layer_single}\nM104 T{initial_extruder} S140\nM204 S10000\n\n{if chamber_cooling_mode==0}\n; 保温\nSET_PURIFIER_MODE MODE=3 DESIRE_TEMP=45 FAN_SPEED=0.6 DELAY_OFF=600\n{elsif chamber_cooling_mode==2}\n; 强冷\nSET_PURIFIER_MODE MODE=1 DESIRE_TEMP=42 ALARM_TEMP=45 FAN_SPEED=0.6 DELAY_OFF=0\n{else}\n; 弱冷\nSET_PURIFIER_MODE MODE=3 DESIRE_TEMP=0 FAN_SPEED=0.6 DELAY_OFF=600\n{endif}\n\nG28 X Y\nDEFECT_DETECT_NOODLE_FIRST\n;===== 床面异物检测 ========\nT{initial_extruder}\nG90\nDEFECT_DETECTION_DETECT_BED\n;===== 取放头检测 =================\nSM_PRINT_CHECK_SWITCH_EXTRUDER\n\n;===== 自动进料 & 挤出流量 & 预挤出 ======================\nSM_PRINT_EXTRUDER_PREHEAT EXTRUDER=1 TEMP=140\nSM_PRINT_AUTO_FEED EXTRUDER=0\nSM_PRINT_FLOW_CALIBRATE EXTRUDER=0\nSM_PRINT_EXTRUDER_PREHEAT EXTRUDER=2 TEMP=140\nSM_PRINT_AUTO_FEED EXTRUDER=1\nSM_PRINT_FLOW_CALIBRATE EXTRUDER=1\nSM_PRINT_EXTRUDER_PREHEAT EXTRUDER=3 TEMP=140\nSM_PRINT_AUTO_FEED EXTRUDER=2\nSM_PRINT_FLOW_CALIBRATE EXTRUDER=2\nSM_PRINT_AUTO_FEED EXTRUDER=3\nSM_PRINT_FLOW_CALIBRATE EXTRUDER=3\nM104 S0 T0 A0\nM104 S0 T1 A0\nM104 S0 T2 A0\nM104 S0 T3 A0\nM104 T{initial_extruder} S{nozzle_temperature[initial_extruder] - 90}\n\n;===== 粗回零 =================\nT{initial_extruder}\nM106 S255\nM106 P2 S0\nMOVE_TO_DISCARD_FILAMENT_POSITION\nM109 T{initial_extruder} S{nozzle_temperature[initial_extruder] - 90}\nROUGHLY_CLEAN_NOZZLE_WITH_DISCARD\nMOVE_TO_XY_IDLE_POSITION_EXTRUDER\nG28 Z I140 J140\n\n;===== 检测钢板 =================\nDETECT_BED_PLATE\n\n;===== 深度清洁喷嘴 =================\nG90\nG0 Z5 F10000\nMOVE_TO_DISCARD_FILAMENT_POSITION\nM109 S{nozzle_temperature[initial_extruder] - 50}\nROUGHLY_CLEAN_NOZZLE\nMOVE_TO_XY_IDLE_POSITION_EXTRUDER\nFINELY_CLEAN_NOZZLE_STAGE_1\nM104 S{nozzle_temperature[initial_extruder] - 90}\nG0 Z5 F10000\nMOVE_TO_DISCARD_FILAMENT_POSITION\nROUGHLY_CLEAN_NOZZLE\nMOVE_TO_XY_IDLE_POSITION_EXTRUDER\nFINELY_CLEAN_NOZZLE_STAGE_2\n\n;===== 精回零 =================\nM106 S255\nM109 S{nozzle_temperature[initial_extruder] - 90}\nM190 S{bed_temperature_initial_layer_single}\nM107 P2\nG90\nG0 Z5 F10000\nWAIT_CHAMBER_TEMP TIMEOUT=180\n{if curr_bed_type==\"High Temp Plate\"} \nG28 Z Z_OFFSET -0.07 \n{elsif curr_bed_type==\"Graphic Effect Plate\"} \nG28 Z Z_OFFSET -0.07 \n{else} \nG28 Z \n{endif} \n\n\n;===== 热床调平 =================\n{if curr_bed_type==\"High Temp Plate\"} \nBED_MESH_CALIBRATE PROBE_COUNT=11,11 Z_OFFSET=-0.07 \n{elsif curr_bed_type==\"Graphic Effect Plate\"} \nBED_MESH_CALIBRATE PROBE_COUNT=11,11 Z_OFFSET=-0.07 \n{else} \nBED_MESH_CALIBRATE PROBE_COUNT=11,11 \n{endif} \n\n\n;===== 画起始线 =================\nG90\nG1 Z1.5\nG0 X85 Y1 Z2 F18000\nM109 S{nozzle_temperature_initial_layer[initial_extruder]}\nG1 Z0.2\nM83\nG1 X185 E15 F360\nG1 Z1.5\n\nG90\nM106 S0",
912
+ "machine_start_gcode": ";===== date: 20260128 =====================\n\nPRINT_START\nDEFECT_DETECTION_START\nSET_PRINT_STATS_INFO TOTAL_LAYER={total_layer_count} CURRENT_LAYER=0\nTIMELAPSE_START\nM140 S{bed_temperature_initial_layer_single}\nM104 T{initial_extruder} S140\nM204 S10000\n\n{if chamber_cooling_mode==0}\n; 保温\nSET_PURIFIER_MODE MODE=3 DESIRE_TEMP=45 FAN_SPEED=0.6 DELAY_OFF=600\n{elsif chamber_cooling_mode==2}\n; 强冷\nSET_PURIFIER_MODE MODE=1 DESIRE_TEMP=42 ALARM_TEMP=48 FAN_SPEED=0.6 DELAY_OFF=0\n{else}\n; 弱冷\nSET_PURIFIER_MODE MODE=1 DESIRE_TEMP=45 ALARM_TEMP=51 FAN_SPEED=0.6 DELAY_OFF=0\n{endif}\n\nG28 X Y\nDEFECT_DETECT_NOODLE_FIRST\n;===== 床面异物检测 ========\nT{initial_extruder}\nG90\nDEFECT_DETECTION_DETECT_BED\n;===== 取放头检测 =================\nSM_PRINT_CHECK_SWITCH_EXTRUDER\n\n;===== 自动进料 & 挤出流量 & 预挤出 ======================\nSM_PRINT_EXTRUDER_PREHEAT EXTRUDER=1 TEMP=140\nSM_PRINT_AUTO_FEED EXTRUDER=0\nSM_PRINT_FLOW_CALIBRATE EXTRUDER=0\nSM_PRINT_EXTRUDER_PREHEAT EXTRUDER=2 TEMP=140\nSM_PRINT_AUTO_FEED EXTRUDER=1\nSM_PRINT_FLOW_CALIBRATE EXTRUDER=1\nSM_PRINT_EXTRUDER_PREHEAT EXTRUDER=3 TEMP=140\nSM_PRINT_AUTO_FEED EXTRUDER=2\nSM_PRINT_FLOW_CALIBRATE EXTRUDER=2\nSM_PRINT_AUTO_FEED EXTRUDER=3\nSM_PRINT_FLOW_CALIBRATE EXTRUDER=3\nM104 S0 T0 A0\nM104 S0 T1 A0\nM104 S0 T2 A0\nM104 S0 T3 A0\n\n;==== 预挤出耗材 =====\nM104 T{initial_extruder} S{nozzle_temperature[initial_extruder]}\nT{initial_extruder}\nM109 T{initial_extruder} S{nozzle_temperature[initial_extruder]}\nSM_PRINT_PREEXTRUDE_FILAMENT INDEX={initial_extruder}\nM104 T{initial_extruder} S{nozzle_temperature[initial_extruder] - 90}\n\n;===== 粗回零 =================\nT{initial_extruder}\nM106 S255\nM106 P2 S0\nMOVE_TO_DISCARD_FILAMENT_POSITION\nM109 T{initial_extruder} S{nozzle_temperature[initial_extruder] - 90}\nROUGHLY_CLEAN_NOZZLE_WITH_DISCARD\nMOVE_TO_XY_IDLE_POSITION_EXTRUDER\nM107\nG28 Z I140 J140\n\n;===== 检测钢板 =================\nM107\nDETECT_BED_PLATE\n\n;===== 深度清洁喷嘴 =================\nM106 S255\nG90\nG0 Z5 F10000\nMOVE_TO_DISCARD_FILAMENT_POSITION\nM109 S{nozzle_temperature[initial_extruder] - 50}\nROUGHLY_CLEAN_NOZZLE\nMOVE_TO_XY_IDLE_POSITION_EXTRUDER\nFINELY_CLEAN_NOZZLE_STAGE_1\nM104 S{nozzle_temperature[initial_extruder] - 90}\nG0 Z5 F10000\nMOVE_TO_DISCARD_FILAMENT_POSITION\nROUGHLY_CLEAN_NOZZLE\nMOVE_TO_XY_IDLE_POSITION_EXTRUDER\nFINELY_CLEAN_NOZZLE_STAGE_2\n\n;===== 精回零 =================\nM106 S255\nM109 S{nozzle_temperature[initial_extruder] - 90}\nM190 S{bed_temperature_initial_layer_single}\nM107 P2\nG90\nG0 Z5 F10000\nWAIT_CHAMBER_TEMP TIMEOUT=180\nM107\n{if curr_bed_type==\"High Temp Plate\"} \nG28 Z Z_OFFSET -0.07 \n{elsif curr_bed_type==\"Graphic Effect Plate\"} \nG28 Z Z_OFFSET -0.07 \n{else} \nG28 Z \n{endif} \n\n\n;===== 热床调平 =================\nM107\n{if curr_bed_type==\"Smooth PEI Plate\"} \nBED_MESH_CALIBRATE PROBE_COUNT=11,11 Z_OFFSET=-0.07 \n{elsif curr_bed_type==\"Graphic Effect Plate\"} \nBED_MESH_CALIBRATE PROBE_COUNT=11,11 Z_OFFSET=-0.07 \n{else} \nBED_MESH_CALIBRATE PROBE_COUNT=11,11 \n{endif} \n\n\n;===== 画起始线 =================\nG90\nG1 Z1.5\nG0 X85 Y1 Z2 F18000\nM109 S{nozzle_temperature_initial_layer[initial_extruder]}\nG1 Z0.2\nM83\nG1 X185 E15 F360\nG1 Z1.5\n\nG90\nM106 S0",
893
913
  "machine_tool_change_time": "5",
894
914
  "machine_unload_filament_time": "0",
895
915
  "make_overhang_printable": "0",
896
916
  "make_overhang_printable_angle": "55",
897
917
  "make_overhang_printable_hole_size": "0",
898
918
  "manual_filament_change": "0",
899
- "max_bridge_length": "10",
919
+ "max_bridge_length": "0",
900
920
  "max_layer_height": [
901
921
  "0.14",
902
922
  "0.14",
@@ -1023,6 +1043,7 @@
1023
1043
  "prime_tower_brim_chamfer": "1",
1024
1044
  "prime_tower_brim_chamfer_max_width": "4",
1025
1045
  "prime_tower_brim_width": "5",
1046
+ "prime_tower_enable_framework": "0",
1026
1047
  "prime_tower_width": "28",
1027
1048
  "prime_volume": "27",
1028
1049
  "print_compatible_printers": [
@@ -1058,7 +1079,7 @@
1058
1079
  "raft_contact_distance": "0.1",
1059
1080
  "raft_expansion": "1.5",
1060
1081
  "raft_first_layer_density": "90%",
1061
- "raft_first_layer_expansion": "2",
1082
+ "raft_first_layer_expansion": "-1",
1062
1083
  "raft_layers": "0",
1063
1084
  "ramming_line_width_ratio": "2",
1064
1085
  "ramming_pressure_advance_value": "0.02",
@@ -1254,6 +1275,7 @@
1254
1275
  "support_interface_bottom_layers": "2",
1255
1276
  "support_interface_filament": "0",
1256
1277
  "support_interface_loop_pattern": "0",
1278
+ "support_interface_min_area": "0.25",
1257
1279
  "support_interface_not_for_body": "1",
1258
1280
  "support_interface_pattern": "auto",
1259
1281
  "support_interface_spacing": "0.5",
@@ -1281,6 +1303,11 @@
1281
1303
  "support_threshold_angle": "30",
1282
1304
  "support_threshold_overlap": "50%",
1283
1305
  "support_top_z_distance": "0.12",
1306
+ "support_transition_flow_ratio": "1",
1307
+ "support_transition_perimeter": "1",
1308
+ "support_transition_speed": [
1309
+ "50"
1310
+ ],
1284
1311
  "support_type": "tree(auto)",
1285
1312
  "symmetric_infill_y_axis": "0",
1286
1313
  "temperature_vitrification": [
@@ -1308,6 +1335,7 @@
1308
1335
  "timelapse_type": "0",
1309
1336
  "tool_change_temprature_wait": "0",
1310
1337
  "top_bottom_infill_wall_overlap": "25%",
1338
+ "top_color_penetration_layers": "6",
1311
1339
  "top_shell_layers": "7",
1312
1340
  "top_shell_thickness": "0.8",
1313
1341
  "top_solid_infill_flow_ratio": "1",
@@ -1343,7 +1371,7 @@
1343
1371
  "tree_support_angle_slow": "25",
1344
1372
  "tree_support_auto_brim": "1",
1345
1373
  "tree_support_branch_angle": "45",
1346
- "tree_support_branch_angle_organic": "40",
1374
+ "tree_support_branch_angle_organic": "45",
1347
1375
  "tree_support_branch_diameter": "2",
1348
1376
  "tree_support_branch_diameter_angle": "5",
1349
1377
  "tree_support_branch_diameter_organic": "2",
@@ -1352,6 +1380,7 @@
1352
1380
  "tree_support_brim_width": "3",
1353
1381
  "tree_support_tip_diameter": "0.8",
1354
1382
  "tree_support_top_rate": "30%",
1383
+ "tree_support_transition_layers": "2",
1355
1384
  "tree_support_wall_count": "0",
1356
1385
  "upward_compatible_machine": [],
1357
1386
  "use_firmware_retraction": "0",
@@ -1433,7 +1462,7 @@
1433
1462
  ],
1434
1463
  "z_offset": "0",
1435
1464
  "from": "project",
1436
- "version": "2.4.0"
1465
+ "version": "2.4.1"
1437
1466
  },
1438
1467
  "filamentShape": {
1439
1468
  "name": "Snapmaker PLA SnapSpeed @U1",
@@ -1470,6 +1499,9 @@
1470
1499
  "enable_overhang_bridge_fan": [
1471
1500
  "1"
1472
1501
  ],
1502
+ "filament_adhesiveness_category": [
1503
+ "100"
1504
+ ],
1473
1505
  "filament_diameter": [
1474
1506
  "1.75"
1475
1507
  ],
@@ -1766,6 +1798,15 @@
1766
1798
  ],
1767
1799
  "filament_unload_time": [
1768
1800
  "2"
1801
+ ],
1802
+ "filament_tower_interface_pre_extrusion_dist": [
1803
+ "10"
1804
+ ],
1805
+ "filament_tower_interface_pre_extrusion_length": [
1806
+ "0"
1807
+ ],
1808
+ "filament_tower_interface_print_temp": [
1809
+ "-1"
1769
1810
  ]
1770
1811
  },
1771
1812
  "highFlowOverrides": {}